metronome-sdk 3.6.0 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +54 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +4 -1
  5. data/lib/metronome_sdk/internal/type/enum.rb +0 -25
  6. data/lib/metronome_sdk/models/commit.rb +36 -1
  7. data/lib/metronome_sdk/models/contract.rb +140 -1
  8. data/lib/metronome_sdk/models/contract_v2.rb +457 -8
  9. data/lib/metronome_sdk/models/contract_without_amendments.rb +320 -5
  10. data/lib/metronome_sdk/models/credit.rb +10 -1
  11. data/lib/metronome_sdk/models/override.rb +7 -1
  12. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +113 -2
  13. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +105 -2
  14. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +33 -1
  15. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +33 -1
  16. data/lib/metronome_sdk/models/subscription.rb +90 -2
  17. data/lib/metronome_sdk/models/v1/alert_create_params.rb +127 -1
  18. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +46 -5
  19. data/lib/metronome_sdk/models/v1/contract_create_params.rb +436 -12
  20. data/lib/metronome_sdk/models/v1/contract_create_response.rb +1308 -3
  21. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rb +88 -0
  22. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rb +62 -0
  23. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +10 -1
  24. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +127 -1
  25. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +130 -3
  26. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +10 -1
  27. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  28. data/lib/metronome_sdk/models/v1/package_create_params.rb +394 -11
  29. data/lib/metronome_sdk/models/v1/package_list_response.rb +374 -8
  30. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +378 -8
  31. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +817 -13
  32. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +4310 -3
  33. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +600 -10
  34. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  35. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +4 -0
  36. data/lib/metronome_sdk/resources/v1/contracts.rb +71 -2
  37. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +4 -2
  38. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +3 -1
  39. data/lib/metronome_sdk/resources/v1/dashboards.rb +7 -2
  40. data/lib/metronome_sdk/resources/v1/packages.rb +6 -5
  41. data/lib/metronome_sdk/resources/v1.rb +0 -4
  42. data/lib/metronome_sdk/resources/v2/contracts.rb +5 -1
  43. data/lib/metronome_sdk/version.rb +1 -1
  44. data/lib/metronome_sdk.rb +2 -8
  45. data/rbi/metronome_sdk/models/commit.rbi +61 -0
  46. data/rbi/metronome_sdk/models/contract.rbi +354 -0
  47. data/rbi/metronome_sdk/models/contract_v2.rbi +1132 -11
  48. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +831 -0
  49. data/rbi/metronome_sdk/models/credit.rbi +13 -0
  50. data/rbi/metronome_sdk/models/override.rbi +9 -0
  51. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +299 -6
  52. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +287 -6
  53. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +78 -3
  54. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -3
  55. data/rbi/metronome_sdk/models/subscription.rbi +212 -3
  56. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +373 -0
  57. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +81 -6
  58. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1095 -17
  59. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +2911 -4
  60. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbi +112 -0
  61. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbi +119 -0
  62. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +13 -0
  63. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +360 -0
  64. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +379 -2
  65. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +13 -0
  66. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  67. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +1049 -42
  68. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +1051 -54
  69. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +1051 -54
  70. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +2130 -114
  71. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +9749 -4
  72. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1567 -82
  73. data/rbi/metronome_sdk/resources/v1/alerts.rbi +8 -0
  74. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +4 -0
  75. data/rbi/metronome_sdk/resources/v1/contracts.rbi +77 -0
  76. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +8 -1
  77. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +4 -0
  78. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +7 -2
  79. data/rbi/metronome_sdk/resources/v1/packages.rbi +8 -4
  80. data/rbi/metronome_sdk/resources/v1.rbi +0 -3
  81. data/rbi/metronome_sdk/resources/v2/contracts.rbi +10 -0
  82. data/sig/metronome_sdk/models/commit.rbs +26 -0
  83. data/sig/metronome_sdk/models/contract.rbs +151 -0
  84. data/sig/metronome_sdk/models/contract_v2.rbs +448 -5
  85. data/sig/metronome_sdk/models/contract_without_amendments.rbs +320 -2
  86. data/sig/metronome_sdk/models/credit.rbs +7 -0
  87. data/sig/metronome_sdk/models/override.rbs +7 -0
  88. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +116 -6
  89. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +116 -6
  90. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +31 -3
  91. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +31 -3
  92. data/sig/metronome_sdk/models/subscription.rbs +88 -3
  93. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +144 -0
  94. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +26 -0
  95. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +412 -5
  96. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +1210 -4
  97. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbs +63 -0
  98. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbs +59 -0
  99. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +7 -0
  100. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +141 -0
  101. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +150 -0
  102. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +8 -1
  103. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  104. data/sig/metronome_sdk/models/v1/package_create_params.rbs +386 -5
  105. data/sig/metronome_sdk/models/v1/package_list_response.rbs +380 -5
  106. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +378 -5
  107. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +751 -14
  108. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +4215 -4
  109. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +569 -14
  110. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  111. data/sig/metronome_sdk/resources/v1/contracts.rbs +14 -0
  112. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  113. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -0
  114. data/sig/metronome_sdk/resources/v1/packages.rbs +1 -0
  115. data/sig/metronome_sdk/resources/v1.rbs +0 -2
  116. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  117. metadata +8 -26
  118. data/lib/metronome_sdk/models/v1/payment.rb +0 -196
  119. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +0 -28
  120. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +0 -18
  121. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +0 -28
  122. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +0 -18
  123. data/lib/metronome_sdk/models/v1/payment_list_params.rb +0 -53
  124. data/lib/metronome_sdk/models/v1/payment_status.rb +0 -19
  125. data/lib/metronome_sdk/resources/v1/payments.rb +0 -102
  126. data/rbi/metronome_sdk/models/v1/payment.rbi +0 -403
  127. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +0 -48
  128. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +0 -35
  129. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +0 -48
  130. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +0 -35
  131. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +0 -91
  132. data/rbi/metronome_sdk/models/v1/payment_status.rbi +0 -33
  133. data/rbi/metronome_sdk/resources/v1/payments.rbi +0 -72
  134. data/sig/metronome_sdk/models/v1/payment.rbs +0 -243
  135. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +0 -30
  136. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +0 -15
  137. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +0 -30
  138. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +0 -15
  139. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +0 -56
  140. data/sig/metronome_sdk/models/v1/payment_status.rbs +0 -19
  141. data/sig/metronome_sdk/resources/v1/payments.rbs +0 -30
@@ -104,6 +104,14 @@ module MetronomeSDK
104
104
  # @return [MetronomeSDK::Models::SpendThresholdConfigurationV2, nil]
105
105
  optional :add_spend_threshold_configuration, -> { MetronomeSDK::SpendThresholdConfigurationV2 }
106
106
 
107
+ # @!attribute add_spend_trackers
108
+ # Spend trackers to add to this contract. Aliases must be unique within a
109
+ # contract.
110
+ #
111
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddSpendTracker>, nil]
112
+ optional :add_spend_trackers,
113
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddSpendTracker] }
114
+
107
115
  # @!attribute add_subscriptions
108
116
  # Optional list of
109
117
  # [subscriptions](https://docs.metronome.com/manage-product-access/create-subscription/)
@@ -143,6 +151,12 @@ module MetronomeSDK
143
151
  optional :archive_scheduled_charges,
144
152
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::ArchiveScheduledCharge] }
145
153
 
154
+ # @!attribute archive_spend_trackers
155
+ # Aliases of spend trackers to archive.
156
+ #
157
+ # @return [Array<String>, nil]
158
+ optional :archive_spend_trackers, MetronomeSDK::Internal::Type::ArrayOf[String]
159
+
146
160
  # @!attribute remove_overrides
147
161
  # IDs of overrides to remove
148
162
  #
@@ -231,7 +245,7 @@ module MetronomeSDK
231
245
  optional :update_subscriptions,
232
246
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription] }
233
247
 
234
- # @!method initialize(contract_id:, customer_id:, add_billing_provider_configuration_update: nil, add_commits: nil, add_credits: nil, add_discounts: nil, add_overrides: nil, add_prepaid_balance_threshold_configuration: nil, add_professional_services: nil, add_recurring_commits: nil, add_recurring_credits: nil, add_reseller_royalties: nil, add_revenue_system_configuration_update: nil, add_scheduled_charges: nil, add_spend_threshold_configuration: nil, add_subscriptions: nil, allow_contract_ending_before_finalized_invoice: nil, archive_commits: nil, archive_credits: nil, archive_scheduled_charges: nil, remove_overrides: nil, uniqueness_key: nil, update_commits: nil, update_contract_end_date: nil, update_contract_name: nil, update_credits: nil, update_net_payment_terms_days: nil, update_prepaid_balance_threshold_configuration: nil, update_recurring_commits: nil, update_recurring_credits: nil, update_scheduled_charges: nil, update_spend_threshold_configuration: nil, update_subscriptions: nil, request_options: {})
248
+ # @!method initialize(contract_id:, customer_id:, add_billing_provider_configuration_update: nil, add_commits: nil, add_credits: nil, add_discounts: nil, add_overrides: nil, add_prepaid_balance_threshold_configuration: nil, add_professional_services: nil, add_recurring_commits: nil, add_recurring_credits: nil, add_reseller_royalties: nil, add_revenue_system_configuration_update: nil, add_scheduled_charges: nil, add_spend_threshold_configuration: nil, add_spend_trackers: nil, add_subscriptions: nil, allow_contract_ending_before_finalized_invoice: nil, archive_commits: nil, archive_credits: nil, archive_scheduled_charges: nil, archive_spend_trackers: nil, remove_overrides: nil, uniqueness_key: nil, update_commits: nil, update_contract_end_date: nil, update_contract_name: nil, update_credits: nil, update_net_payment_terms_days: nil, update_prepaid_balance_threshold_configuration: nil, update_recurring_commits: nil, update_recurring_credits: nil, update_scheduled_charges: nil, update_spend_threshold_configuration: nil, update_subscriptions: nil, request_options: {})
235
249
  # Some parameter documentations has been truncated, see
236
250
  # {MetronomeSDK::Models::V2::ContractEditParams} for more details.
237
251
  #
@@ -265,6 +279,8 @@ module MetronomeSDK
265
279
  #
266
280
  # @param add_spend_threshold_configuration [MetronomeSDK::Models::SpendThresholdConfigurationV2]
267
281
  #
282
+ # @param add_spend_trackers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddSpendTracker>] Spend trackers to add to this contract. Aliases must be unique within a contract
283
+ #
268
284
  # @param add_subscriptions [Array<MetronomeSDK::Models::V2::ContractEditParams::AddSubscription>] Optional list of [subscriptions](https://docs.metronome.com/manage-product-acces
269
285
  #
270
286
  # @param allow_contract_ending_before_finalized_invoice [Boolean] If true, allows setting the contract end date earlier than the end_timestamp of
@@ -275,6 +291,8 @@ module MetronomeSDK
275
291
  #
276
292
  # @param archive_scheduled_charges [Array<MetronomeSDK::Models::V2::ContractEditParams::ArchiveScheduledCharge>] IDs of scheduled charges to archive
277
293
  #
294
+ # @param archive_spend_trackers [Array<String>] Aliases of spend trackers to archive.
295
+ #
278
296
  # @param remove_overrides [Array<MetronomeSDK::Models::V2::ContractEditParams::RemoveOverride>] IDs of overrides to remove
279
297
  #
280
298
  # @param uniqueness_key [String] Optional uniqueness key to prevent duplicate contract edits.
@@ -531,6 +549,13 @@ module MetronomeSDK
531
549
  # @return [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil]
532
550
  optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifierInput] }
533
551
 
552
+ # @!attribute spend_tracker_attributes
553
+ # Optional attributes for spend tracker integration. Immutable after creation.
554
+ #
555
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::SpendTrackerAttributes, nil]
556
+ optional :spend_tracker_attributes,
557
+ -> { MetronomeSDK::V2::ContractEditParams::AddCommit::SpendTrackerAttributes }
558
+
534
559
  # @!attribute temporary_id
535
560
  # A temporary ID for the commit that can be used to reference the commit for
536
561
  # commit specific overrides.
@@ -538,7 +563,7 @@ module MetronomeSDK
538
563
  # @return [String, nil]
539
564
  optional :temporary_id, String
540
565
 
541
- # @!method initialize(product_id:, type:, access_schedule: nil, amount: nil, applicable_product_ids: nil, applicable_product_tags: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, invoice_schedule: nil, name: nil, netsuite_sales_order_id: nil, payment_gate_config: nil, priority: nil, rate_type: nil, rollover_fraction: nil, specifiers: nil, temporary_id: nil)
566
+ # @!method initialize(product_id:, type:, access_schedule: nil, amount: nil, applicable_product_ids: nil, applicable_product_tags: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, invoice_schedule: nil, name: nil, netsuite_sales_order_id: nil, payment_gate_config: nil, priority: nil, rate_type: nil, rollover_fraction: nil, specifiers: nil, spend_tracker_attributes: nil, temporary_id: nil)
542
567
  # Some parameter documentations has been truncated, see
543
568
  # {MetronomeSDK::Models::V2::ContractEditParams::AddCommit} for more details.
544
569
  #
@@ -576,6 +601,8 @@ module MetronomeSDK
576
601
  #
577
602
  # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifierInput>] List of filters that determine what kind of customer usage draws down a commit o
578
603
  #
604
+ # @param spend_tracker_attributes [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::SpendTrackerAttributes] Optional attributes for spend tracker integration. Immutable after creation.
605
+ #
579
606
  # @param temporary_id [String] A temporary ID for the commit that can be used to reference the commit for commi
580
607
 
581
608
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit#type
@@ -1011,6 +1038,25 @@ module MetronomeSDK
1011
1038
  # @!method self.values
1012
1039
  # @return [Array<Symbol>]
1013
1040
  end
1041
+
1042
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit#spend_tracker_attributes
1043
+ class SpendTrackerAttributes < MetronomeSDK::Internal::Type::BaseModel
1044
+ # @!attribute counts_as_discounted
1045
+ # If true, this commit will be included in spend trackers with discounted set to
1046
+ # DISCOUNTED_ONLY
1047
+ #
1048
+ # @return [Boolean]
1049
+ required :counts_as_discounted, MetronomeSDK::Internal::Type::Boolean
1050
+
1051
+ # @!method initialize(counts_as_discounted:)
1052
+ # Some parameter documentations has been truncated, see
1053
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddCommit::SpendTrackerAttributes}
1054
+ # for more details.
1055
+ #
1056
+ # Optional attributes for spend tracker integration. Immutable after creation.
1057
+ #
1058
+ # @param counts_as_discounted [Boolean] If true, this commit will be included in spend trackers with discounted set to D
1059
+ end
1014
1060
  end
1015
1061
 
1016
1062
  class AddCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -1539,6 +1585,16 @@ module MetronomeSDK
1539
1585
  # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::Type] Overwrites are prioritized over multipliers and tiered overrides.
1540
1586
 
1541
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
+
1542
1598
  # @!attribute billing_frequency
1543
1599
  #
1544
1600
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier::BillingFrequency, nil]
@@ -1590,11 +1646,13 @@ module MetronomeSDK
1590
1646
  # @return [Array<String>, nil]
1591
1647
  optional :recurring_commit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1592
1648
 
1593
- # @!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)
1594
1650
  # Some parameter documentations has been truncated, see
1595
1651
  # {MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier}
1596
1652
  # for more details.
1597
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
+ #
1598
1656
  # @param billing_frequency [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier::BillingFrequency]
1599
1657
  #
1600
1658
  # @param commit_ids [Array<String>] If provided, the override will only apply to the specified commits. Can only be
@@ -1902,6 +1960,13 @@ module MetronomeSDK
1902
1960
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Proration, nil]
1903
1961
  optional :proration, enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration }
1904
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
+
1905
1970
  # @!attribute rate_type
1906
1971
  # Whether the created commits will use the commit rate or list rate
1907
1972
  #
@@ -1952,7 +2017,7 @@ module MetronomeSDK
1952
2017
  # @return [String, nil]
1953
2018
  optional :temporary_id, String
1954
2019
 
1955
- # @!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)
1956
2021
  # Some parameter documentations has been truncated, see
1957
2022
  # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit} for more
1958
2023
  # details.
@@ -1985,6 +2050,8 @@ module MetronomeSDK
1985
2050
  #
1986
2051
  # @param proration [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Proration] Determines whether the first and last commit will be prorated. If not provided,
1987
2052
  #
2053
+ # @param proration_rounding [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::ProrationRounding] Optional rounding configuration for prorated recurring commit amounts.
2054
+ #
1988
2055
  # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::RateType] Whether the created commits will use the commit rate or list rate
1989
2056
  #
1990
2057
  # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
@@ -2103,6 +2170,103 @@ module MetronomeSDK
2103
2170
  # @return [Array<Symbol>]
2104
2171
  end
2105
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
+
2106
2270
  # Whether the created commits will use the commit rate or list rate
2107
2271
  #
2108
2272
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#rate_type
@@ -2130,6 +2294,7 @@ module MetronomeSDK
2130
2294
  QUARTERLY = :QUARTERLY
2131
2295
  ANNUAL = :ANNUAL
2132
2296
  WEEKLY = :WEEKLY
2297
+ DAILY = :DAILY
2133
2298
 
2134
2299
  # @!method self.values
2135
2300
  # @return [Array<Symbol>]
@@ -2279,6 +2444,13 @@ module MetronomeSDK
2279
2444
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Proration, nil]
2280
2445
  optional :proration, enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::Proration }
2281
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
+
2282
2454
  # @!attribute rate_type
2283
2455
  # Whether the created commits will use the commit rate or list rate
2284
2456
  #
@@ -2329,7 +2501,7 @@ module MetronomeSDK
2329
2501
  # @return [String, nil]
2330
2502
  optional :temporary_id, String
2331
2503
 
2332
- # @!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)
2333
2505
  # Some parameter documentations has been truncated, see
2334
2506
  # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit} for more
2335
2507
  # details.
@@ -2360,6 +2532,8 @@ module MetronomeSDK
2360
2532
  #
2361
2533
  # @param proration [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Proration] Determines whether the first and last commit will be prorated. If not provided,
2362
2534
  #
2535
+ # @param proration_rounding [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::ProrationRounding] Optional rounding configuration for prorated recurring credit amounts.
2536
+ #
2363
2537
  # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::RateType] Whether the created commits will use the commit rate or list rate
2364
2538
  #
2365
2539
  # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
@@ -2453,6 +2627,58 @@ module MetronomeSDK
2453
2627
  # @return [Array<Symbol>]
2454
2628
  end
2455
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
+
2456
2682
  # Whether the created commits will use the commit rate or list rate
2457
2683
  #
2458
2684
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#rate_type
@@ -2480,6 +2706,7 @@ module MetronomeSDK
2480
2706
  QUARTERLY = :QUARTERLY
2481
2707
  ANNUAL = :ANNUAL
2482
2708
  WEEKLY = :WEEKLY
2709
+ DAILY = :DAILY
2483
2710
 
2484
2711
  # @!method self.values
2485
2712
  # @return [Array<Symbol>]
@@ -3012,6 +3239,112 @@ module MetronomeSDK
3012
3239
  end
3013
3240
  end
3014
3241
 
3242
+ class AddSpendTracker < MetronomeSDK::Internal::Type::BaseModel
3243
+ # @!attribute alias_
3244
+ # Human-readable identifier, unique per contract.
3245
+ #
3246
+ # @return [String]
3247
+ required :alias_, String, api_name: :alias
3248
+
3249
+ # @!attribute applicable_spend_specifiers
3250
+ #
3251
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddSpendTracker::ApplicableSpendSpecifier>]
3252
+ required :applicable_spend_specifiers,
3253
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddSpendTracker::ApplicableSpendSpecifier] }
3254
+
3255
+ # @!attribute credit_type_id
3256
+ #
3257
+ # @return [String]
3258
+ required :credit_type_id, String
3259
+
3260
+ # @!attribute reset_frequency
3261
+ #
3262
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendTracker::ResetFrequency]
3263
+ required :reset_frequency,
3264
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddSpendTracker::ResetFrequency }
3265
+
3266
+ # @!method initialize(alias_:, applicable_spend_specifiers:, credit_type_id:, reset_frequency:)
3267
+ # @param alias_ [String] Human-readable identifier, unique per contract.
3268
+ #
3269
+ # @param applicable_spend_specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddSpendTracker::ApplicableSpendSpecifier>]
3270
+ #
3271
+ # @param credit_type_id [String]
3272
+ #
3273
+ # @param reset_frequency [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendTracker::ResetFrequency]
3274
+
3275
+ class ApplicableSpendSpecifier < MetronomeSDK::Internal::Type::BaseModel
3276
+ # @!attribute sources
3277
+ #
3278
+ # @return [Array<Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendTracker::ApplicableSpendSpecifier::Source>]
3279
+ required :sources,
3280
+ -> { MetronomeSDK::Internal::Type::ArrayOf[enum: MetronomeSDK::V2::ContractEditParams::AddSpendTracker::ApplicableSpendSpecifier::Source] }
3281
+
3282
+ # @!attribute spend_type
3283
+ #
3284
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendTracker::ApplicableSpendSpecifier::SpendType]
3285
+ required :spend_type,
3286
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddSpendTracker::ApplicableSpendSpecifier::SpendType }
3287
+
3288
+ # @!attribute discounted
3289
+ # Filter by whether the spend was discounted. Defaults to ANY if omitted.
3290
+ #
3291
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendTracker::ApplicableSpendSpecifier::Discounted, nil]
3292
+ optional :discounted,
3293
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddSpendTracker::ApplicableSpendSpecifier::Discounted }
3294
+
3295
+ # @!method initialize(sources:, spend_type:, discounted: nil)
3296
+ # @param sources [Array<Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendTracker::ApplicableSpendSpecifier::Source>]
3297
+ #
3298
+ # @param spend_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendTracker::ApplicableSpendSpecifier::SpendType]
3299
+ #
3300
+ # @param discounted [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendTracker::ApplicableSpendSpecifier::Discounted] Filter by whether the spend was discounted. Defaults to ANY if omitted.
3301
+
3302
+ module Source
3303
+ extend MetronomeSDK::Internal::Type::Enum
3304
+
3305
+ THRESHOLD_RECHARGE = :THRESHOLD_RECHARGE
3306
+ MANUAL = :MANUAL
3307
+
3308
+ # @!method self.values
3309
+ # @return [Array<Symbol>]
3310
+ end
3311
+
3312
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendTracker::ApplicableSpendSpecifier#spend_type
3313
+ module SpendType
3314
+ extend MetronomeSDK::Internal::Type::Enum
3315
+
3316
+ COMMIT_PURCHASE = :COMMIT_PURCHASE
3317
+
3318
+ # @!method self.values
3319
+ # @return [Array<Symbol>]
3320
+ end
3321
+
3322
+ # Filter by whether the spend was discounted. Defaults to ANY if omitted.
3323
+ #
3324
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendTracker::ApplicableSpendSpecifier#discounted
3325
+ module Discounted
3326
+ extend MetronomeSDK::Internal::Type::Enum
3327
+
3328
+ ANY = :ANY
3329
+ DISCOUNTED_ONLY = :DISCOUNTED_ONLY
3330
+ UNDISCOUNTED_ONLY = :UNDISCOUNTED_ONLY
3331
+
3332
+ # @!method self.values
3333
+ # @return [Array<Symbol>]
3334
+ end
3335
+ end
3336
+
3337
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendTracker#reset_frequency
3338
+ module ResetFrequency
3339
+ extend MetronomeSDK::Internal::Type::Enum
3340
+
3341
+ BILLING_PERIOD = :BILLING_PERIOD
3342
+
3343
+ # @!method self.values
3344
+ # @return [Array<Symbol>]
3345
+ end
3346
+ end
3347
+
3015
3348
  class AddSubscription < MetronomeSDK::Internal::Type::BaseModel
3016
3349
  # @!attribute collection_schedule
3017
3350
  #
@@ -3030,6 +3363,12 @@ module MetronomeSDK
3030
3363
  required :subscription_rate,
3031
3364
  -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::SubscriptionRate }
3032
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
+
3033
3372
  # @!attribute custom_fields
3034
3373
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
3035
3374
  #
@@ -3094,7 +3433,7 @@ module MetronomeSDK
3094
3433
  # @return [String, nil]
3095
3434
  optional :temporary_id, String
3096
3435
 
3097
- # @!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)
3098
3437
  # Some parameter documentations has been truncated, see
3099
3438
  # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription} for more
3100
3439
  # details.
@@ -3105,6 +3444,8 @@ module MetronomeSDK
3105
3444
  #
3106
3445
  # @param subscription_rate [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SubscriptionRate]
3107
3446
  #
3447
+ # @param billing_cycle_config [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::BillingCycleConfig]
3448
+ #
3108
3449
  # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
3109
3450
  #
3110
3451
  # @param description [String]
@@ -3153,7 +3494,12 @@ module MetronomeSDK
3153
3494
  # @return [Boolean, nil]
3154
3495
  optional :is_prorated, MetronomeSDK::Internal::Type::Boolean
3155
3496
 
3156
- # @!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)
3157
3503
  # Some parameter documentations has been truncated, see
3158
3504
  # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration} for
3159
3505
  # more details.
@@ -3161,6 +3507,8 @@ module MetronomeSDK
3161
3507
  # @param invoice_behavior [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration::InvoiceBehavior] Indicates how mid-period quantity adjustments are invoiced.
3162
3508
  #
3163
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]
3164
3512
 
3165
3513
  # Indicates how mid-period quantity adjustments are invoiced.
3166
3514
  # **BILL_IMMEDIATELY**: Only available when collection schedule is `ADVANCE`. The
@@ -3178,6 +3526,44 @@ module MetronomeSDK
3178
3526
  # @!method self.values
3179
3527
  # @return [Array<Symbol>]
3180
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
3181
3567
  end
3182
3568
 
3183
3569
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription#subscription_rate
@@ -3222,6 +3608,47 @@ module MetronomeSDK
3222
3608
  end
3223
3609
  end
3224
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
+
3225
3652
  # Determines how the subscription's quantity is controlled. Defaults to
3226
3653
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
3227
3654
  # directly on the subscription. `initial_quantity` must be provided with this
@@ -3877,7 +4304,20 @@ module MetronomeSDK
3877
4304
  # @return [Float, nil]
3878
4305
  optional :threshold_amount, Float
3879
4306
 
3880
- # @!method initialize(commit: nil, custom_credit_type_id: nil, discount_configuration: nil, is_enabled: nil, payment_gate_config: nil, recharge_to_amount: nil, threshold_amount: nil)
4307
+ # @!attribute threshold_balance_specifiers
4308
+ # Determines which balances are excluded from remaining balance calculation for
4309
+ # threshold billing.
4310
+ #
4311
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier>, nil]
4312
+ optional :threshold_balance_specifiers,
4313
+ -> do
4314
+ MetronomeSDK::Internal::Type::ArrayOf[
4315
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier
4316
+ ]
4317
+ end,
4318
+ nil?: true
4319
+
4320
+ # @!method initialize(commit: nil, custom_credit_type_id: nil, discount_configuration: nil, is_enabled: nil, payment_gate_config: nil, recharge_to_amount: nil, threshold_amount: nil, threshold_balance_specifiers: nil)
3881
4321
  # Some parameter documentations has been truncated, see
3882
4322
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration}
3883
4323
  # for more details.
@@ -3895,6 +4335,8 @@ module MetronomeSDK
3895
4335
  # @param recharge_to_amount [Float] Specify the amount the balance should be recharged to.
3896
4336
  #
3897
4337
  # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's balance
4338
+ #
4339
+ # @param threshold_balance_specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier>, nil] Determines which balances are excluded from remaining balance calculation for th
3898
4340
 
3899
4341
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration#commit
3900
4342
  class Commit < MetronomeSDK::Models::UpdateBaseThresholdCommit
@@ -3940,6 +4382,16 @@ module MetronomeSDK
3940
4382
 
3941
4383
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration#discount_configuration
3942
4384
  class DiscountConfiguration < MetronomeSDK::Internal::Type::BaseModel
4385
+ # @!attribute cap
4386
+ # Update the discount cap. Set to null to remove an existing cap.
4387
+ #
4388
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::DiscountConfiguration::Cap, nil]
4389
+ optional :cap,
4390
+ -> {
4391
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::DiscountConfiguration::Cap
4392
+ },
4393
+ nil?: true
4394
+
3943
4395
  # @!attribute payment_fraction
3944
4396
  # The fraction of the original amount that the customer pays after applying the
3945
4397
  # discount. Set to null to remove the discount fraction. For example, 0.85 means
@@ -3948,12 +4400,101 @@ module MetronomeSDK
3948
4400
  # @return [Float, nil]
3949
4401
  optional :payment_fraction, Float, nil?: true
3950
4402
 
3951
- # @!method initialize(payment_fraction: nil)
4403
+ # @!method initialize(cap: nil, payment_fraction: nil)
3952
4404
  # Some parameter documentations has been truncated, see
3953
4405
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::DiscountConfiguration}
3954
4406
  # for more details.
3955
4407
  #
4408
+ # @param cap [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::DiscountConfiguration::Cap, nil] Update the discount cap. Set to null to remove an existing cap.
4409
+ #
3956
4410
  # @param payment_fraction [Float, nil] The fraction of the original amount that the customer pays after applying the di
4411
+
4412
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::DiscountConfiguration#cap
4413
+ class Cap < MetronomeSDK::Internal::Type::BaseModel
4414
+ # @!attribute amount
4415
+ # Accumulated spend ceiling above which the discount stops applying.
4416
+ #
4417
+ # @return [Float]
4418
+ required :amount, Float
4419
+
4420
+ # @!attribute spend_tracker_alias
4421
+ # Alias of the spend tracker this cap is measured against.
4422
+ #
4423
+ # @return [String]
4424
+ required :spend_tracker_alias, String
4425
+
4426
+ # @!method initialize(amount:, spend_tracker_alias:)
4427
+ # Update the discount cap. Set to null to remove an existing cap.
4428
+ #
4429
+ # @param amount [Float] Accumulated spend ceiling above which the discount stops applying.
4430
+ #
4431
+ # @param spend_tracker_alias [String] Alias of the spend tracker this cap is measured against.
4432
+ end
4433
+ end
4434
+
4435
+ class ThresholdBalanceSpecifier < MetronomeSDK::Internal::Type::BaseModel
4436
+ # @!attribute exclude
4437
+ #
4438
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude>]
4439
+ required :exclude,
4440
+ -> do
4441
+ MetronomeSDK::Internal::Type::ArrayOf[
4442
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude
4443
+ ]
4444
+ end
4445
+
4446
+ # @!method initialize(exclude:)
4447
+ # @param exclude [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude>]
4448
+
4449
+ class Exclude < MetronomeSDK::Internal::Type::BaseModel
4450
+ # @!attribute custom_field_filters
4451
+ #
4452
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter>]
4453
+ required :custom_field_filters,
4454
+ -> do
4455
+ MetronomeSDK::Internal::Type::ArrayOf[
4456
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter
4457
+ ]
4458
+ end
4459
+
4460
+ # @!method initialize(custom_field_filters:)
4461
+ # @param custom_field_filters [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter>]
4462
+
4463
+ class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
4464
+ # @!attribute entity
4465
+ #
4466
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity]
4467
+ required :entity,
4468
+ enum: -> { MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity }
4469
+
4470
+ # @!attribute key
4471
+ #
4472
+ # @return [String]
4473
+ required :key, String
4474
+
4475
+ # @!attribute value
4476
+ #
4477
+ # @return [String]
4478
+ required :value, String
4479
+
4480
+ # @!method initialize(entity:, key:, value:)
4481
+ # @param entity [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity]
4482
+ # @param key [String]
4483
+ # @param value [String]
4484
+
4485
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter#entity
4486
+ module Entity
4487
+ extend MetronomeSDK::Internal::Type::Enum
4488
+
4489
+ COMMIT = :Commit
4490
+ CONTRACT_CREDIT = :ContractCredit
4491
+ CONTRACT_CREDIT_OR_COMMIT = :ContractCreditOrCommit
4492
+
4493
+ # @!method self.values
4494
+ # @return [Array<Symbol>]
4495
+ end
4496
+ end
4497
+ end
3957
4498
  end
3958
4499
  end
3959
4500
 
@@ -3979,6 +4520,15 @@ module MetronomeSDK
3979
4520
  optional :invoice_amount,
3980
4521
  -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit::InvoiceAmount }
3981
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
+
3982
4532
  # @!attribute rate_type
3983
4533
  # If provided, updates the recurring commit to use the specified rate type when
3984
4534
  # generating future commits.
@@ -3986,7 +4536,7 @@ module MetronomeSDK
3986
4536
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::RateType, nil]
3987
4537
  optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit::RateType }
3988
4538
 
3989
- # @!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)
3990
4540
  # Some parameter documentations has been truncated, see
3991
4541
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit} for more
3992
4542
  # details.
@@ -3999,6 +4549,8 @@ module MetronomeSDK
3999
4549
  #
4000
4550
  # @param invoice_amount [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::InvoiceAmount]
4001
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
+ #
4002
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
4003
4555
 
4004
4556
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit#access_amount
@@ -4035,6 +4587,110 @@ module MetronomeSDK
4035
4587
  # @param unit_price [Float]
4036
4588
  end
4037
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
+
4038
4694
  # If provided, updates the recurring commit to use the specified rate type when
4039
4695
  # generating future commits.
4040
4696
  #
@@ -4066,6 +4722,15 @@ module MetronomeSDK
4066
4722
  # @return [Time, nil]
4067
4723
  optional :ending_before, Time, nil?: true
4068
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
+
4069
4734
  # @!attribute rate_type
4070
4735
  # If provided, updates the recurring credit to use the specified rate type when
4071
4736
  # generating future credits.
@@ -4073,7 +4738,7 @@ module MetronomeSDK
4073
4738
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::RateType, nil]
4074
4739
  optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCredit::RateType }
4075
4740
 
4076
- # @!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)
4077
4742
  # Some parameter documentations has been truncated, see
4078
4743
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit} for more
4079
4744
  # details.
@@ -4084,6 +4749,8 @@ module MetronomeSDK
4084
4749
  #
4085
4750
  # @param ending_before [Time, nil]
4086
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
+ #
4087
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
4088
4755
 
4089
4756
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit#access_amount
@@ -4103,6 +4770,62 @@ module MetronomeSDK
4103
4770
  # @param unit_price [Float]
4104
4771
  end
4105
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
+
4106
4829
  # If provided, updates the recurring credit to use the specified rate type when
4107
4830
  # generating future credits.
4108
4831
  #
@@ -4291,6 +5014,16 @@ module MetronomeSDK
4291
5014
 
4292
5015
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration#discount_configuration
4293
5016
  class DiscountConfiguration < MetronomeSDK::Internal::Type::BaseModel
5017
+ # @!attribute cap
5018
+ # Update the discount cap. Set to null to remove an existing cap.
5019
+ #
5020
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::DiscountConfiguration::Cap, nil]
5021
+ optional :cap,
5022
+ -> {
5023
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::DiscountConfiguration::Cap
5024
+ },
5025
+ nil?: true
5026
+
4294
5027
  # @!attribute payment_fraction
4295
5028
  # The fraction of the original amount that the customer pays after applying the
4296
5029
  # discount. Set to null to remove the discount fraction. For example, 0.85 means
@@ -4299,12 +5032,36 @@ module MetronomeSDK
4299
5032
  # @return [Float, nil]
4300
5033
  optional :payment_fraction, Float, nil?: true
4301
5034
 
4302
- # @!method initialize(payment_fraction: nil)
5035
+ # @!method initialize(cap: nil, payment_fraction: nil)
4303
5036
  # Some parameter documentations has been truncated, see
4304
5037
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::DiscountConfiguration}
4305
5038
  # for more details.
4306
5039
  #
5040
+ # @param cap [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::DiscountConfiguration::Cap, nil] Update the discount cap. Set to null to remove an existing cap.
5041
+ #
4307
5042
  # @param payment_fraction [Float, nil] The fraction of the original amount that the customer pays after applying the di
5043
+
5044
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::DiscountConfiguration#cap
5045
+ class Cap < MetronomeSDK::Internal::Type::BaseModel
5046
+ # @!attribute amount
5047
+ # Accumulated spend ceiling above which the discount stops applying.
5048
+ #
5049
+ # @return [Float]
5050
+ required :amount, Float
5051
+
5052
+ # @!attribute spend_tracker_alias
5053
+ # Alias of the spend tracker this cap is measured against.
5054
+ #
5055
+ # @return [String]
5056
+ required :spend_tracker_alias, String
5057
+
5058
+ # @!method initialize(amount:, spend_tracker_alias:)
5059
+ # Update the discount cap. Set to null to remove an existing cap.
5060
+ #
5061
+ # @param amount [Float] Accumulated spend ceiling above which the discount stops applying.
5062
+ #
5063
+ # @param spend_tracker_alias [String] Alias of the spend tracker this cap is measured against.
5064
+ end
4308
5065
  end
4309
5066
  end
4310
5067
 
@@ -4319,6 +5076,13 @@ module MetronomeSDK
4319
5076
  # @return [Time, nil]
4320
5077
  optional :ending_before, Time, nil?: true
4321
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
+
4322
5086
  # @!attribute quantity_management_mode_update
4323
5087
  # Update the subscription's quantity management mode from QUANTITY_ONLY to
4324
5088
  # SEAT_BASED with the provided seat_group_key.
@@ -4341,7 +5105,7 @@ module MetronomeSDK
4341
5105
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates, nil]
4342
5106
  optional :seat_updates, -> { MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates }
4343
5107
 
4344
- # @!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)
4345
5109
  # Some parameter documentations has been truncated, see
4346
5110
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription} for more
4347
5111
  # details.
@@ -4350,12 +5114,52 @@ module MetronomeSDK
4350
5114
  #
4351
5115
  # @param ending_before [Time, nil]
4352
5116
  #
5117
+ # @param proration_rounding [MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::ProrationRounding, nil]
5118
+ #
4353
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
4354
5120
  #
4355
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
4356
5122
  #
4357
5123
  # @param seat_updates [MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates]
4358
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
+
4359
5163
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription#quantity_management_mode_update
4360
5164
  class QuantityManagementModeUpdate < MetronomeSDK::Internal::Type::BaseModel
4361
5165
  # @!attribute quantity_management_mode