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