metronome-sdk 3.7.0 → 3.9.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 (99) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +46 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +4 -1
  5. data/lib/metronome_sdk/models/commit.rb +10 -1
  6. data/lib/metronome_sdk/models/contract.rb +46 -16
  7. data/lib/metronome_sdk/models/contract_v2.rb +645 -16
  8. data/lib/metronome_sdk/models/contract_without_amendments.rb +178 -4
  9. data/lib/metronome_sdk/models/credit.rb +10 -1
  10. data/lib/metronome_sdk/models/override.rb +7 -1
  11. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +10 -2
  12. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +3 -1
  13. data/lib/metronome_sdk/models/subscription.rb +90 -2
  14. data/lib/metronome_sdk/models/v1/alert_create_params.rb +127 -1
  15. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +17 -4
  16. data/lib/metronome_sdk/models/v1/contract_create_params.rb +290 -10
  17. data/lib/metronome_sdk/models/v1/contract_create_response.rb +243 -17
  18. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rb +88 -0
  19. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rb +62 -0
  20. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +10 -1
  21. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +127 -1
  22. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +130 -3
  23. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +10 -1
  24. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  25. data/lib/metronome_sdk/models/v1/package_create_params.rb +279 -10
  26. data/lib/metronome_sdk/models/v1/package_list_response.rb +264 -7
  27. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +264 -7
  28. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +517 -9
  29. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +456 -8
  30. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +456 -8
  31. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  32. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +4 -0
  33. data/lib/metronome_sdk/resources/v1/contracts.rb +68 -1
  34. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +4 -2
  35. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +3 -1
  36. data/lib/metronome_sdk/resources/v1/dashboards.rb +7 -2
  37. data/lib/metronome_sdk/version.rb +1 -1
  38. data/lib/metronome_sdk.rb +2 -0
  39. data/rbi/metronome_sdk/models/commit.rbi +13 -0
  40. data/rbi/metronome_sdk/models/contract.rbi +47 -22
  41. data/rbi/metronome_sdk/models/contract_v2.rbi +1472 -96
  42. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +463 -0
  43. data/rbi/metronome_sdk/models/credit.rbi +13 -0
  44. data/rbi/metronome_sdk/models/override.rbi +9 -0
  45. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +11 -1
  46. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +4 -0
  47. data/rbi/metronome_sdk/models/subscription.rbi +212 -3
  48. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +373 -0
  49. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +27 -6
  50. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +719 -9
  51. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +523 -32
  52. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbi +112 -0
  53. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbi +119 -0
  54. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +13 -0
  55. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +360 -0
  56. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +379 -2
  57. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +13 -0
  58. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  59. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +706 -9
  60. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +693 -3
  61. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +693 -3
  62. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +1372 -69
  63. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +1204 -67
  64. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1204 -67
  65. data/rbi/metronome_sdk/resources/v1/alerts.rbi +8 -0
  66. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +4 -0
  67. data/rbi/metronome_sdk/resources/v1/contracts.rbi +70 -0
  68. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +8 -1
  69. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +4 -0
  70. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +7 -2
  71. data/sig/metronome_sdk/models/commit.rbs +7 -0
  72. data/sig/metronome_sdk/models/contract.rbs +22 -11
  73. data/sig/metronome_sdk/models/contract_v2.rbs +559 -8
  74. data/sig/metronome_sdk/models/contract_without_amendments.rbs +169 -2
  75. data/sig/metronome_sdk/models/credit.rbs +7 -0
  76. data/sig/metronome_sdk/models/override.rbs +7 -0
  77. data/sig/metronome_sdk/models/subscription.rbs +88 -3
  78. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +144 -0
  79. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +7 -0
  80. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +278 -5
  81. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +197 -17
  82. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbs +63 -0
  83. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbs +59 -0
  84. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +7 -0
  85. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +141 -0
  86. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +150 -0
  87. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +8 -1
  88. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  89. data/sig/metronome_sdk/models/v1/package_create_params.rbs +271 -5
  90. data/sig/metronome_sdk/models/v1/package_list_response.rbs +265 -5
  91. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +263 -5
  92. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +472 -7
  93. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +428 -5
  94. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +427 -5
  95. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  96. data/sig/metronome_sdk/resources/v1/contracts.rbs +13 -0
  97. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  98. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -0
  99. metadata +8 -2
@@ -427,6 +427,7 @@ module MetronomeSDK
427
427
  extend MetronomeSDK::Internal::Type::Enum
428
428
 
429
429
  START_OF_CURRENT_PERIOD = :START_OF_CURRENT_PERIOD
430
+ START_OF_NEXT_PERIOD = :START_OF_NEXT_PERIOD
430
431
 
431
432
  # @!method self.values
432
433
  # @return [Array<Symbol>]
@@ -1585,6 +1586,16 @@ module MetronomeSDK
1585
1586
  # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::Type] Overwrites are prioritized over multipliers and tiered overrides.
1586
1587
 
1587
1588
  class OverrideSpecifier < MetronomeSDK::Internal::Type::BaseModel
1589
+ # @!attribute any_commit_or_credit_ids
1590
+ # Can only be used for commit specific overrides. Must be used in conjunction with
1591
+ # one of `product_id`, `product_tags`, `pricing_group_values`, or
1592
+ # `presentation_group_values`. Must be used instead of both `commit_ids` and
1593
+ # `recurring_commit_ids` If provided, the override will apply to any specified
1594
+ # commit, credit, recurring commit or recurring credit IDs.
1595
+ #
1596
+ # @return [Array<String>, nil]
1597
+ optional :any_commit_or_credit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1598
+
1588
1599
  # @!attribute billing_frequency
1589
1600
  #
1590
1601
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier::BillingFrequency, nil]
@@ -1636,11 +1647,13 @@ module MetronomeSDK
1636
1647
  # @return [Array<String>, nil]
1637
1648
  optional :recurring_commit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1638
1649
 
1639
- # @!method initialize(billing_frequency: nil, commit_ids: nil, presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil, recurring_commit_ids: nil)
1650
+ # @!method initialize(any_commit_or_credit_ids: nil, billing_frequency: nil, commit_ids: nil, presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil, recurring_commit_ids: nil)
1640
1651
  # Some parameter documentations has been truncated, see
1641
1652
  # {MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier}
1642
1653
  # for more details.
1643
1654
  #
1655
+ # @param any_commit_or_credit_ids [Array<String>] Can only be used for commit specific overrides. Must be used in conjunction with
1656
+ #
1644
1657
  # @param billing_frequency [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier::BillingFrequency]
1645
1658
  #
1646
1659
  # @param commit_ids [Array<String>] If provided, the override will only apply to the specified commits. Can only be
@@ -1948,6 +1961,13 @@ module MetronomeSDK
1948
1961
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Proration, nil]
1949
1962
  optional :proration, enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration }
1950
1963
 
1964
+ # @!attribute proration_rounding
1965
+ # Optional rounding configuration for prorated recurring commit amounts.
1966
+ #
1967
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::ProrationRounding, nil]
1968
+ optional :proration_rounding,
1969
+ -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::ProrationRounding }
1970
+
1951
1971
  # @!attribute rate_type
1952
1972
  # Whether the created commits will use the commit rate or list rate
1953
1973
  #
@@ -1998,7 +2018,7 @@ module MetronomeSDK
1998
2018
  # @return [String, nil]
1999
2019
  optional :temporary_id, String
2000
2020
 
2001
- # @!method initialize(access_amount:, commit_duration:, priority:, product_id:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, invoice_amount: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, rate_type: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil, temporary_id: nil)
2021
+ # @!method initialize(access_amount:, commit_duration:, priority:, product_id:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, invoice_amount: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, proration_rounding: nil, rate_type: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil, temporary_id: nil)
2002
2022
  # Some parameter documentations has been truncated, see
2003
2023
  # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit} for more
2004
2024
  # details.
@@ -2031,6 +2051,8 @@ module MetronomeSDK
2031
2051
  #
2032
2052
  # @param proration [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Proration] Determines whether the first and last commit will be prorated. If not provided,
2033
2053
  #
2054
+ # @param proration_rounding [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::ProrationRounding] Optional rounding configuration for prorated recurring commit amounts.
2055
+ #
2034
2056
  # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::RateType] Whether the created commits will use the commit rate or list rate
2035
2057
  #
2036
2058
  # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
@@ -2149,6 +2171,103 @@ module MetronomeSDK
2149
2171
  # @return [Array<Symbol>]
2150
2172
  end
2151
2173
 
2174
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#proration_rounding
2175
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
2176
+ # @!attribute access
2177
+ #
2178
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::ProrationRounding::Access, nil]
2179
+ optional :access,
2180
+ -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::ProrationRounding::Access }
2181
+
2182
+ # @!attribute invoice
2183
+ #
2184
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::ProrationRounding::Invoice, nil]
2185
+ optional :invoice,
2186
+ -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::ProrationRounding::Invoice }
2187
+
2188
+ # @!method initialize(access: nil, invoice: nil)
2189
+ # Optional rounding configuration for prorated recurring commit amounts.
2190
+ #
2191
+ # @param access [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::ProrationRounding::Access]
2192
+ # @param invoice [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::ProrationRounding::Invoice]
2193
+
2194
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::ProrationRounding#access
2195
+ class Access < MetronomeSDK::Internal::Type::BaseModel
2196
+ # @!attribute decimal_places
2197
+ # Number of decimal places to round to. Applied directly to the stored monetary
2198
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
2199
+ # nearest 100 in the stored unit).
2200
+ #
2201
+ # @return [Float]
2202
+ required :decimal_places, Float
2203
+
2204
+ # @!attribute rounding_method
2205
+ #
2206
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::ProrationRounding::Access::RoundingMethod]
2207
+ required :rounding_method,
2208
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::ProrationRounding::Access::RoundingMethod }
2209
+
2210
+ # @!method initialize(decimal_places:, rounding_method:)
2211
+ # Some parameter documentations has been truncated, see
2212
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::ProrationRounding::Access}
2213
+ # for more details.
2214
+ #
2215
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
2216
+ #
2217
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::ProrationRounding::Access::RoundingMethod]
2218
+
2219
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::ProrationRounding::Access#rounding_method
2220
+ module RoundingMethod
2221
+ extend MetronomeSDK::Internal::Type::Enum
2222
+
2223
+ HALF_UP = :HALF_UP
2224
+ FLOOR = :FLOOR
2225
+ CEILING = :CEILING
2226
+
2227
+ # @!method self.values
2228
+ # @return [Array<Symbol>]
2229
+ end
2230
+ end
2231
+
2232
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::ProrationRounding#invoice
2233
+ class Invoice < MetronomeSDK::Internal::Type::BaseModel
2234
+ # @!attribute decimal_places
2235
+ # Number of decimal places to round to. Applied directly to the stored monetary
2236
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
2237
+ # nearest 100 in the stored unit).
2238
+ #
2239
+ # @return [Float]
2240
+ required :decimal_places, Float
2241
+
2242
+ # @!attribute rounding_method
2243
+ #
2244
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::ProrationRounding::Invoice::RoundingMethod]
2245
+ required :rounding_method,
2246
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::ProrationRounding::Invoice::RoundingMethod }
2247
+
2248
+ # @!method initialize(decimal_places:, rounding_method:)
2249
+ # Some parameter documentations has been truncated, see
2250
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::ProrationRounding::Invoice}
2251
+ # for more details.
2252
+ #
2253
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
2254
+ #
2255
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::ProrationRounding::Invoice::RoundingMethod]
2256
+
2257
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::ProrationRounding::Invoice#rounding_method
2258
+ module RoundingMethod
2259
+ extend MetronomeSDK::Internal::Type::Enum
2260
+
2261
+ HALF_UP = :HALF_UP
2262
+ FLOOR = :FLOOR
2263
+ CEILING = :CEILING
2264
+
2265
+ # @!method self.values
2266
+ # @return [Array<Symbol>]
2267
+ end
2268
+ end
2269
+ end
2270
+
2152
2271
  # Whether the created commits will use the commit rate or list rate
2153
2272
  #
2154
2273
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#rate_type
@@ -2176,6 +2295,7 @@ module MetronomeSDK
2176
2295
  QUARTERLY = :QUARTERLY
2177
2296
  ANNUAL = :ANNUAL
2178
2297
  WEEKLY = :WEEKLY
2298
+ DAILY = :DAILY
2179
2299
 
2180
2300
  # @!method self.values
2181
2301
  # @return [Array<Symbol>]
@@ -2325,6 +2445,13 @@ module MetronomeSDK
2325
2445
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Proration, nil]
2326
2446
  optional :proration, enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::Proration }
2327
2447
 
2448
+ # @!attribute proration_rounding
2449
+ # Optional rounding configuration for prorated recurring credit amounts.
2450
+ #
2451
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::ProrationRounding, nil]
2452
+ optional :proration_rounding,
2453
+ -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::ProrationRounding }
2454
+
2328
2455
  # @!attribute rate_type
2329
2456
  # Whether the created commits will use the commit rate or list rate
2330
2457
  #
@@ -2375,7 +2502,7 @@ module MetronomeSDK
2375
2502
  # @return [String, nil]
2376
2503
  optional :temporary_id, String
2377
2504
 
2378
- # @!method initialize(access_amount:, commit_duration:, priority:, product_id:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, rate_type: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil, temporary_id: nil)
2505
+ # @!method initialize(access_amount:, commit_duration:, priority:, product_id:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, proration_rounding: nil, rate_type: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil, temporary_id: nil)
2379
2506
  # Some parameter documentations has been truncated, see
2380
2507
  # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit} for more
2381
2508
  # details.
@@ -2406,6 +2533,8 @@ module MetronomeSDK
2406
2533
  #
2407
2534
  # @param proration [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Proration] Determines whether the first and last commit will be prorated. If not provided,
2408
2535
  #
2536
+ # @param proration_rounding [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::ProrationRounding] Optional rounding configuration for prorated recurring credit amounts.
2537
+ #
2409
2538
  # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::RateType] Whether the created commits will use the commit rate or list rate
2410
2539
  #
2411
2540
  # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
@@ -2499,6 +2628,58 @@ module MetronomeSDK
2499
2628
  # @return [Array<Symbol>]
2500
2629
  end
2501
2630
 
2631
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#proration_rounding
2632
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
2633
+ # @!attribute access
2634
+ #
2635
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::ProrationRounding::Access, nil]
2636
+ optional :access,
2637
+ -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::ProrationRounding::Access }
2638
+
2639
+ # @!method initialize(access: nil)
2640
+ # Optional rounding configuration for prorated recurring credit amounts.
2641
+ #
2642
+ # @param access [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::ProrationRounding::Access]
2643
+
2644
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::ProrationRounding#access
2645
+ class Access < MetronomeSDK::Internal::Type::BaseModel
2646
+ # @!attribute decimal_places
2647
+ # Number of decimal places to round to. Applied directly to the stored monetary
2648
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
2649
+ # nearest 100 in the stored unit).
2650
+ #
2651
+ # @return [Float]
2652
+ required :decimal_places, Float
2653
+
2654
+ # @!attribute rounding_method
2655
+ #
2656
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::ProrationRounding::Access::RoundingMethod]
2657
+ required :rounding_method,
2658
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::ProrationRounding::Access::RoundingMethod }
2659
+
2660
+ # @!method initialize(decimal_places:, rounding_method:)
2661
+ # Some parameter documentations has been truncated, see
2662
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::ProrationRounding::Access}
2663
+ # for more details.
2664
+ #
2665
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
2666
+ #
2667
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::ProrationRounding::Access::RoundingMethod]
2668
+
2669
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::ProrationRounding::Access#rounding_method
2670
+ module RoundingMethod
2671
+ extend MetronomeSDK::Internal::Type::Enum
2672
+
2673
+ HALF_UP = :HALF_UP
2674
+ FLOOR = :FLOOR
2675
+ CEILING = :CEILING
2676
+
2677
+ # @!method self.values
2678
+ # @return [Array<Symbol>]
2679
+ end
2680
+ end
2681
+ end
2682
+
2502
2683
  # Whether the created commits will use the commit rate or list rate
2503
2684
  #
2504
2685
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#rate_type
@@ -2526,6 +2707,7 @@ module MetronomeSDK
2526
2707
  QUARTERLY = :QUARTERLY
2527
2708
  ANNUAL = :ANNUAL
2528
2709
  WEEKLY = :WEEKLY
2710
+ DAILY = :DAILY
2529
2711
 
2530
2712
  # @!method self.values
2531
2713
  # @return [Array<Symbol>]
@@ -2817,6 +2999,7 @@ module MetronomeSDK
2817
2999
  extend MetronomeSDK::Internal::Type::Enum
2818
3000
 
2819
3001
  START_OF_CURRENT_PERIOD = :START_OF_CURRENT_PERIOD
3002
+ START_OF_NEXT_PERIOD = :START_OF_NEXT_PERIOD
2820
3003
 
2821
3004
  # @!method self.values
2822
3005
  # @return [Array<Symbol>]
@@ -3182,6 +3365,12 @@ module MetronomeSDK
3182
3365
  required :subscription_rate,
3183
3366
  -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::SubscriptionRate }
3184
3367
 
3368
+ # @!attribute billing_cycle_config
3369
+ #
3370
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::BillingCycleConfig, nil]
3371
+ optional :billing_cycle_config,
3372
+ -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::BillingCycleConfig }
3373
+
3185
3374
  # @!attribute custom_fields
3186
3375
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
3187
3376
  #
@@ -3246,7 +3435,7 @@ module MetronomeSDK
3246
3435
  # @return [String, nil]
3247
3436
  optional :temporary_id, String
3248
3437
 
3249
- # @!method initialize(collection_schedule:, proration:, subscription_rate:, custom_fields: nil, description: nil, ending_before: nil, initial_quantity: nil, name: nil, quantity_management_mode: nil, seat_config: nil, starting_at: nil, temporary_id: nil)
3438
+ # @!method initialize(collection_schedule:, proration:, subscription_rate:, billing_cycle_config: nil, custom_fields: nil, description: nil, ending_before: nil, initial_quantity: nil, name: nil, quantity_management_mode: nil, seat_config: nil, starting_at: nil, temporary_id: nil)
3250
3439
  # Some parameter documentations has been truncated, see
3251
3440
  # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription} for more
3252
3441
  # details.
@@ -3257,6 +3446,8 @@ module MetronomeSDK
3257
3446
  #
3258
3447
  # @param subscription_rate [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SubscriptionRate]
3259
3448
  #
3449
+ # @param billing_cycle_config [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::BillingCycleConfig]
3450
+ #
3260
3451
  # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
3261
3452
  #
3262
3453
  # @param description [String]
@@ -3305,7 +3496,12 @@ module MetronomeSDK
3305
3496
  # @return [Boolean, nil]
3306
3497
  optional :is_prorated, MetronomeSDK::Internal::Type::Boolean
3307
3498
 
3308
- # @!method initialize(invoice_behavior: nil, is_prorated: nil)
3499
+ # @!attribute rounding
3500
+ #
3501
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration::Rounding, nil]
3502
+ optional :rounding, -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::Proration::Rounding }
3503
+
3504
+ # @!method initialize(invoice_behavior: nil, is_prorated: nil, rounding: nil)
3309
3505
  # Some parameter documentations has been truncated, see
3310
3506
  # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration} for
3311
3507
  # more details.
@@ -3313,6 +3509,8 @@ module MetronomeSDK
3313
3509
  # @param invoice_behavior [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration::InvoiceBehavior] Indicates how mid-period quantity adjustments are invoiced.
3314
3510
  #
3315
3511
  # @param is_prorated [Boolean] Indicates if the partial period will be prorated or charged a full amount.
3512
+ #
3513
+ # @param rounding [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration::Rounding]
3316
3514
 
3317
3515
  # Indicates how mid-period quantity adjustments are invoiced.
3318
3516
  # **BILL_IMMEDIATELY**: Only available when collection schedule is `ADVANCE`. The
@@ -3330,6 +3528,44 @@ module MetronomeSDK
3330
3528
  # @!method self.values
3331
3529
  # @return [Array<Symbol>]
3332
3530
  end
3531
+
3532
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration#rounding
3533
+ class Rounding < MetronomeSDK::Internal::Type::BaseModel
3534
+ # @!attribute decimal_places
3535
+ # Number of decimal places to round to. Applied directly to the stored monetary
3536
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
3537
+ # nearest 100 in the stored unit).
3538
+ #
3539
+ # @return [Float]
3540
+ required :decimal_places, Float
3541
+
3542
+ # @!attribute rounding_method
3543
+ #
3544
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration::Rounding::RoundingMethod]
3545
+ required :rounding_method,
3546
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::Proration::Rounding::RoundingMethod }
3547
+
3548
+ # @!method initialize(decimal_places:, rounding_method:)
3549
+ # Some parameter documentations has been truncated, see
3550
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration::Rounding}
3551
+ # for more details.
3552
+ #
3553
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
3554
+ #
3555
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration::Rounding::RoundingMethod]
3556
+
3557
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration::Rounding#rounding_method
3558
+ module RoundingMethod
3559
+ extend MetronomeSDK::Internal::Type::Enum
3560
+
3561
+ HALF_UP = :HALF_UP
3562
+ FLOOR = :FLOOR
3563
+ CEILING = :CEILING
3564
+
3565
+ # @!method self.values
3566
+ # @return [Array<Symbol>]
3567
+ end
3568
+ end
3333
3569
  end
3334
3570
 
3335
3571
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription#subscription_rate
@@ -3374,6 +3610,47 @@ module MetronomeSDK
3374
3610
  end
3375
3611
  end
3376
3612
 
3613
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription#billing_cycle_config
3614
+ class BillingCycleConfig < MetronomeSDK::Internal::Type::BaseModel
3615
+ # @!attribute anchor_date
3616
+ # The date to anchor the billing cycle to. If omitted, defaults to the contract's
3617
+ # usage invoice billing cycle anchor date.
3618
+ #
3619
+ # @return [Time, nil]
3620
+ optional :anchor_date, Time
3621
+
3622
+ # @!attribute invoice_placement
3623
+ # Controls whether this subscription consolidates onto usage invoices or gets its
3624
+ # own scheduled invoice. Defaults to ON_USAGE_INVOICE if omitted.
3625
+ #
3626
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::BillingCycleConfig::InvoicePlacement, nil]
3627
+ optional :invoice_placement,
3628
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::BillingCycleConfig::InvoicePlacement }
3629
+
3630
+ # @!method initialize(anchor_date: nil, invoice_placement: nil)
3631
+ # Some parameter documentations has been truncated, see
3632
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::BillingCycleConfig}
3633
+ # for more details.
3634
+ #
3635
+ # @param anchor_date [Time] The date to anchor the billing cycle to. If omitted, defaults to the contract's
3636
+ #
3637
+ # @param invoice_placement [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::BillingCycleConfig::InvoicePlacement] Controls whether this subscription consolidates onto usage invoices or gets its
3638
+
3639
+ # Controls whether this subscription consolidates onto usage invoices or gets its
3640
+ # own scheduled invoice. Defaults to ON_USAGE_INVOICE if omitted.
3641
+ #
3642
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::BillingCycleConfig#invoice_placement
3643
+ module InvoicePlacement
3644
+ extend MetronomeSDK::Internal::Type::Enum
3645
+
3646
+ ON_SCHEDULED_INVOICE = :ON_SCHEDULED_INVOICE
3647
+ ON_USAGE_INVOICE = :ON_USAGE_INVOICE
3648
+
3649
+ # @!method self.values
3650
+ # @return [Array<Symbol>]
3651
+ end
3652
+ end
3653
+
3377
3654
  # Determines how the subscription's quantity is controlled. Defaults to
3378
3655
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
3379
3656
  # directly on the subscription. `initial_quantity` must be provided with this
@@ -4030,6 +4307,8 @@ module MetronomeSDK
4030
4307
  optional :threshold_amount, Float
4031
4308
 
4032
4309
  # @!attribute threshold_balance_specifiers
4310
+ # Determines which balances are excluded from remaining balance calculation for
4311
+ # threshold billing.
4033
4312
  #
4034
4313
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier>, nil]
4035
4314
  optional :threshold_balance_specifiers,
@@ -4059,7 +4338,7 @@ module MetronomeSDK
4059
4338
  #
4060
4339
  # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's balance
4061
4340
  #
4062
- # @param threshold_balance_specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier>, nil]
4341
+ # @param threshold_balance_specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier>, nil] Determines which balances are excluded from remaining balance calculation for th
4063
4342
 
4064
4343
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration#commit
4065
4344
  class Commit < MetronomeSDK::Models::UpdateBaseThresholdCommit
@@ -4243,6 +4522,15 @@ module MetronomeSDK
4243
4522
  optional :invoice_amount,
4244
4523
  -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit::InvoiceAmount }
4245
4524
 
4525
+ # @!attribute proration_rounding
4526
+ # If provided, updates the rounding config on the recurring commit. Set to null to
4527
+ # clear rounding. Omit to leave unchanged.
4528
+ #
4529
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::ProrationRounding, nil]
4530
+ optional :proration_rounding,
4531
+ -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit::ProrationRounding },
4532
+ nil?: true
4533
+
4246
4534
  # @!attribute rate_type
4247
4535
  # If provided, updates the recurring commit to use the specified rate type when
4248
4536
  # generating future commits.
@@ -4250,7 +4538,7 @@ module MetronomeSDK
4250
4538
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::RateType, nil]
4251
4539
  optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit::RateType }
4252
4540
 
4253
- # @!method initialize(recurring_commit_id:, access_amount: nil, ending_before: nil, invoice_amount: nil, rate_type: nil)
4541
+ # @!method initialize(recurring_commit_id:, access_amount: nil, ending_before: nil, invoice_amount: nil, proration_rounding: nil, rate_type: nil)
4254
4542
  # Some parameter documentations has been truncated, see
4255
4543
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit} for more
4256
4544
  # details.
@@ -4263,6 +4551,8 @@ module MetronomeSDK
4263
4551
  #
4264
4552
  # @param invoice_amount [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::InvoiceAmount]
4265
4553
  #
4554
+ # @param proration_rounding [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::ProrationRounding, nil] If provided, updates the rounding config on the recurring commit. Set to null to
4555
+ #
4266
4556
  # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::RateType] If provided, updates the recurring commit to use the specified rate type when ge
4267
4557
 
4268
4558
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit#access_amount
@@ -4299,6 +4589,110 @@ module MetronomeSDK
4299
4589
  # @param unit_price [Float]
4300
4590
  end
4301
4591
 
4592
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit#proration_rounding
4593
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
4594
+ # @!attribute access
4595
+ #
4596
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::ProrationRounding::Access, nil]
4597
+ optional :access,
4598
+ -> {
4599
+ MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit::ProrationRounding::Access
4600
+ },
4601
+ nil?: true
4602
+
4603
+ # @!attribute invoice
4604
+ #
4605
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::ProrationRounding::Invoice, nil]
4606
+ optional :invoice,
4607
+ -> {
4608
+ MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit::ProrationRounding::Invoice
4609
+ },
4610
+ nil?: true
4611
+
4612
+ # @!method initialize(access: nil, invoice: nil)
4613
+ # If provided, updates the rounding config on the recurring commit. Set to null to
4614
+ # clear rounding. Omit to leave unchanged.
4615
+ #
4616
+ # @param access [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::ProrationRounding::Access, nil]
4617
+ # @param invoice [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::ProrationRounding::Invoice, nil]
4618
+
4619
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::ProrationRounding#access
4620
+ class Access < MetronomeSDK::Internal::Type::BaseModel
4621
+ # @!attribute decimal_places
4622
+ # Number of decimal places to round to. Applied directly to the stored monetary
4623
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4624
+ # nearest 100 in the stored unit).
4625
+ #
4626
+ # @return [Float]
4627
+ required :decimal_places, Float
4628
+
4629
+ # @!attribute rounding_method
4630
+ #
4631
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::ProrationRounding::Access::RoundingMethod]
4632
+ required :rounding_method,
4633
+ enum: -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit::ProrationRounding::Access::RoundingMethod }
4634
+
4635
+ # @!method initialize(decimal_places:, rounding_method:)
4636
+ # Some parameter documentations has been truncated, see
4637
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::ProrationRounding::Access}
4638
+ # for more details.
4639
+ #
4640
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
4641
+ #
4642
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::ProrationRounding::Access::RoundingMethod]
4643
+
4644
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::ProrationRounding::Access#rounding_method
4645
+ module RoundingMethod
4646
+ extend MetronomeSDK::Internal::Type::Enum
4647
+
4648
+ HALF_UP = :HALF_UP
4649
+ FLOOR = :FLOOR
4650
+ CEILING = :CEILING
4651
+
4652
+ # @!method self.values
4653
+ # @return [Array<Symbol>]
4654
+ end
4655
+ end
4656
+
4657
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::ProrationRounding#invoice
4658
+ class Invoice < MetronomeSDK::Internal::Type::BaseModel
4659
+ # @!attribute decimal_places
4660
+ # Number of decimal places to round to. Applied directly to the stored monetary
4661
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4662
+ # nearest 100 in the stored unit).
4663
+ #
4664
+ # @return [Float]
4665
+ required :decimal_places, Float
4666
+
4667
+ # @!attribute rounding_method
4668
+ #
4669
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::ProrationRounding::Invoice::RoundingMethod]
4670
+ required :rounding_method,
4671
+ enum: -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit::ProrationRounding::Invoice::RoundingMethod }
4672
+
4673
+ # @!method initialize(decimal_places:, rounding_method:)
4674
+ # Some parameter documentations has been truncated, see
4675
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::ProrationRounding::Invoice}
4676
+ # for more details.
4677
+ #
4678
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
4679
+ #
4680
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::ProrationRounding::Invoice::RoundingMethod]
4681
+
4682
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::ProrationRounding::Invoice#rounding_method
4683
+ module RoundingMethod
4684
+ extend MetronomeSDK::Internal::Type::Enum
4685
+
4686
+ HALF_UP = :HALF_UP
4687
+ FLOOR = :FLOOR
4688
+ CEILING = :CEILING
4689
+
4690
+ # @!method self.values
4691
+ # @return [Array<Symbol>]
4692
+ end
4693
+ end
4694
+ end
4695
+
4302
4696
  # If provided, updates the recurring commit to use the specified rate type when
4303
4697
  # generating future commits.
4304
4698
  #
@@ -4330,6 +4724,15 @@ module MetronomeSDK
4330
4724
  # @return [Time, nil]
4331
4725
  optional :ending_before, Time, nil?: true
4332
4726
 
4727
+ # @!attribute proration_rounding
4728
+ # If provided, updates the rounding config on the recurring credit. Set to null to
4729
+ # clear rounding. Omit to leave unchanged.
4730
+ #
4731
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::ProrationRounding, nil]
4732
+ optional :proration_rounding,
4733
+ -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCredit::ProrationRounding },
4734
+ nil?: true
4735
+
4333
4736
  # @!attribute rate_type
4334
4737
  # If provided, updates the recurring credit to use the specified rate type when
4335
4738
  # generating future credits.
@@ -4337,7 +4740,7 @@ module MetronomeSDK
4337
4740
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::RateType, nil]
4338
4741
  optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCredit::RateType }
4339
4742
 
4340
- # @!method initialize(recurring_credit_id:, access_amount: nil, ending_before: nil, rate_type: nil)
4743
+ # @!method initialize(recurring_credit_id:, access_amount: nil, ending_before: nil, proration_rounding: nil, rate_type: nil)
4341
4744
  # Some parameter documentations has been truncated, see
4342
4745
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit} for more
4343
4746
  # details.
@@ -4348,6 +4751,8 @@ module MetronomeSDK
4348
4751
  #
4349
4752
  # @param ending_before [Time, nil]
4350
4753
  #
4754
+ # @param proration_rounding [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::ProrationRounding, nil] If provided, updates the rounding config on the recurring credit. Set to null to
4755
+ #
4351
4756
  # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::RateType] If provided, updates the recurring credit to use the specified rate type when ge
4352
4757
 
4353
4758
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit#access_amount
@@ -4367,6 +4772,62 @@ module MetronomeSDK
4367
4772
  # @param unit_price [Float]
4368
4773
  end
4369
4774
 
4775
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit#proration_rounding
4776
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
4777
+ # @!attribute access
4778
+ #
4779
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::ProrationRounding::Access, nil]
4780
+ optional :access,
4781
+ -> {
4782
+ MetronomeSDK::V2::ContractEditParams::UpdateRecurringCredit::ProrationRounding::Access
4783
+ },
4784
+ nil?: true
4785
+
4786
+ # @!method initialize(access: nil)
4787
+ # If provided, updates the rounding config on the recurring credit. Set to null to
4788
+ # clear rounding. Omit to leave unchanged.
4789
+ #
4790
+ # @param access [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::ProrationRounding::Access, nil]
4791
+
4792
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::ProrationRounding#access
4793
+ class Access < MetronomeSDK::Internal::Type::BaseModel
4794
+ # @!attribute decimal_places
4795
+ # Number of decimal places to round to. Applied directly to the stored monetary
4796
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4797
+ # nearest 100 in the stored unit).
4798
+ #
4799
+ # @return [Float]
4800
+ required :decimal_places, Float
4801
+
4802
+ # @!attribute rounding_method
4803
+ #
4804
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::ProrationRounding::Access::RoundingMethod]
4805
+ required :rounding_method,
4806
+ enum: -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCredit::ProrationRounding::Access::RoundingMethod }
4807
+
4808
+ # @!method initialize(decimal_places:, rounding_method:)
4809
+ # Some parameter documentations has been truncated, see
4810
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::ProrationRounding::Access}
4811
+ # for more details.
4812
+ #
4813
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
4814
+ #
4815
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::ProrationRounding::Access::RoundingMethod]
4816
+
4817
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::ProrationRounding::Access#rounding_method
4818
+ module RoundingMethod
4819
+ extend MetronomeSDK::Internal::Type::Enum
4820
+
4821
+ HALF_UP = :HALF_UP
4822
+ FLOOR = :FLOOR
4823
+ CEILING = :CEILING
4824
+
4825
+ # @!method self.values
4826
+ # @return [Array<Symbol>]
4827
+ end
4828
+ end
4829
+ end
4830
+
4370
4831
  # If provided, updates the recurring credit to use the specified rate type when
4371
4832
  # generating future credits.
4372
4833
  #
@@ -4617,6 +5078,13 @@ module MetronomeSDK
4617
5078
  # @return [Time, nil]
4618
5079
  optional :ending_before, Time, nil?: true
4619
5080
 
5081
+ # @!attribute proration_rounding
5082
+ #
5083
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::ProrationRounding, nil]
5084
+ optional :proration_rounding,
5085
+ -> { MetronomeSDK::V2::ContractEditParams::UpdateSubscription::ProrationRounding },
5086
+ nil?: true
5087
+
4620
5088
  # @!attribute quantity_management_mode_update
4621
5089
  # Update the subscription's quantity management mode from QUANTITY_ONLY to
4622
5090
  # SEAT_BASED with the provided seat_group_key.
@@ -4639,7 +5107,7 @@ module MetronomeSDK
4639
5107
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates, nil]
4640
5108
  optional :seat_updates, -> { MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates }
4641
5109
 
4642
- # @!method initialize(subscription_id:, ending_before: nil, quantity_management_mode_update: nil, quantity_updates: nil, seat_updates: nil)
5110
+ # @!method initialize(subscription_id:, ending_before: nil, proration_rounding: nil, quantity_management_mode_update: nil, quantity_updates: nil, seat_updates: nil)
4643
5111
  # Some parameter documentations has been truncated, see
4644
5112
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription} for more
4645
5113
  # details.
@@ -4648,12 +5116,52 @@ module MetronomeSDK
4648
5116
  #
4649
5117
  # @param ending_before [Time, nil]
4650
5118
  #
5119
+ # @param proration_rounding [MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::ProrationRounding, nil]
5120
+ #
4651
5121
  # @param quantity_management_mode_update [MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate] Update the subscription's quantity management mode from QUANTITY_ONLY to SEAT_BA
4652
5122
  #
4653
5123
  # @param quantity_updates [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityUpdate>] Quantity changes are applied on the effective date based on the order which they
4654
5124
  #
4655
5125
  # @param seat_updates [MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates]
4656
5126
 
5127
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription#proration_rounding
5128
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
5129
+ # @!attribute decimal_places
5130
+ # Number of decimal places to round to. Applied directly to the stored monetary
5131
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
5132
+ # nearest 100 in the stored unit).
5133
+ #
5134
+ # @return [Float]
5135
+ required :decimal_places, Float
5136
+
5137
+ # @!attribute rounding_method
5138
+ #
5139
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::ProrationRounding::RoundingMethod]
5140
+ required :rounding_method,
5141
+ enum: -> { MetronomeSDK::V2::ContractEditParams::UpdateSubscription::ProrationRounding::RoundingMethod }
5142
+
5143
+ # @!method initialize(decimal_places:, rounding_method:)
5144
+ # Some parameter documentations has been truncated, see
5145
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::ProrationRounding}
5146
+ # for more details.
5147
+ #
5148
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
5149
+ #
5150
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::ProrationRounding::RoundingMethod]
5151
+
5152
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::ProrationRounding#rounding_method
5153
+ module RoundingMethod
5154
+ extend MetronomeSDK::Internal::Type::Enum
5155
+
5156
+ HALF_UP = :HALF_UP
5157
+ FLOOR = :FLOOR
5158
+ CEILING = :CEILING
5159
+
5160
+ # @!method self.values
5161
+ # @return [Array<Symbol>]
5162
+ end
5163
+ end
5164
+
4657
5165
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription#quantity_management_mode_update
4658
5166
  class QuantityManagementModeUpdate < MetronomeSDK::Internal::Type::BaseModel
4659
5167
  # @!attribute quantity_management_mode