metronome-sdk 3.0.0 → 3.2.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 (179) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +59 -0
  3. data/README.md +3 -3
  4. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +1 -1
  5. data/lib/metronome_sdk/internal/type/base_model.rb +5 -5
  6. data/lib/metronome_sdk/internal/util.rb +32 -1
  7. data/lib/metronome_sdk/models/balance_filter.rb +44 -0
  8. data/lib/metronome_sdk/models/commit_rate.rb +30 -3
  9. data/lib/metronome_sdk/models/commit_specifier_input.rb +6 -2
  10. data/lib/metronome_sdk/models/contract.rb +9 -9
  11. data/lib/metronome_sdk/models/contract_v2.rb +40 -18
  12. data/lib/metronome_sdk/models/hierarchy_configuration.rb +13 -15
  13. data/lib/metronome_sdk/models/override.rb +1 -0
  14. data/lib/metronome_sdk/models/overwrite_rate.rb +23 -1
  15. data/lib/metronome_sdk/models/payment_gate_config.rb +0 -1
  16. data/lib/metronome_sdk/models/payment_gate_config_v2.rb +0 -1
  17. data/lib/metronome_sdk/models/rate.rb +23 -1
  18. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +24 -2
  19. data/lib/metronome_sdk/models/v1/contract_create_params.rb +57 -26
  20. data/lib/metronome_sdk/models/v1/contract_get_net_balance_params.rb +69 -0
  21. data/lib/metronome_sdk/models/v1/contract_get_net_balance_response.rb +44 -0
  22. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +24 -1
  23. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +22 -1
  24. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +1 -0
  25. data/lib/metronome_sdk/models/v1/customers/invoice.rb +25 -16
  26. data/lib/metronome_sdk/models/v1/package_archive_params.rb +24 -0
  27. data/lib/metronome_sdk/models/v1/package_archive_response.rb +18 -0
  28. data/lib/metronome_sdk/models/v1/package_create_params.rb +2719 -0
  29. data/lib/metronome_sdk/models/v1/package_create_response.rb +18 -0
  30. data/lib/metronome_sdk/models/v1/package_list_contracts_on_package_params.rb +69 -0
  31. data/lib/metronome_sdk/models/v1/package_list_contracts_on_package_response.rb +42 -0
  32. data/lib/metronome_sdk/models/v1/package_list_params.rb +52 -0
  33. data/lib/metronome_sdk/models/v1/package_list_response.rb +2446 -0
  34. data/lib/metronome_sdk/models/v1/package_retrieve_params.rb +22 -0
  35. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +2479 -0
  36. data/lib/metronome_sdk/models/v1/usage_list_with_groups_params.rb +39 -2
  37. data/lib/metronome_sdk/models/v1/usage_list_with_groups_response.rb +27 -3
  38. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +145 -3
  39. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +24 -1
  40. data/lib/metronome_sdk/models.rb +2 -0
  41. data/lib/metronome_sdk/resources/v1/alerts.rb +5 -0
  42. data/lib/metronome_sdk/resources/v1/audit_logs.rb +4 -1
  43. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +5 -1
  44. data/lib/metronome_sdk/resources/v1/contracts/named_schedules.rb +2 -0
  45. data/lib/metronome_sdk/resources/v1/contracts/products.rb +4 -2
  46. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/named_schedules.rb +2 -0
  47. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rb +1 -0
  48. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +7 -3
  49. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +10 -3
  50. data/lib/metronome_sdk/resources/v1/contracts.rb +88 -5
  51. data/lib/metronome_sdk/resources/v1/credit_grants.rb +9 -4
  52. data/lib/metronome_sdk/resources/v1/custom_fields.rb +6 -2
  53. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +8 -2
  54. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +4 -0
  55. data/lib/metronome_sdk/resources/v1/customers/commits.rb +1 -0
  56. data/lib/metronome_sdk/resources/v1/customers/credits.rb +1 -0
  57. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +10 -3
  58. data/lib/metronome_sdk/resources/v1/customers/named_schedules.rb +2 -0
  59. data/lib/metronome_sdk/resources/v1/customers/plans.rb +8 -2
  60. data/lib/metronome_sdk/resources/v1/customers.rb +27 -3
  61. data/lib/metronome_sdk/resources/v1/dashboards.rb +4 -0
  62. data/lib/metronome_sdk/resources/v1/invoices.rb +4 -0
  63. data/lib/metronome_sdk/resources/v1/packages.rb +269 -0
  64. data/lib/metronome_sdk/resources/v1/plans.rb +10 -3
  65. data/lib/metronome_sdk/resources/v1/pricing_units.rb +4 -1
  66. data/lib/metronome_sdk/resources/v1/services.rb +2 -0
  67. data/lib/metronome_sdk/resources/v1/settings/billing_providers.rb +2 -0
  68. data/lib/metronome_sdk/resources/v1/settings.rb +4 -0
  69. data/lib/metronome_sdk/resources/v1/usage.rb +26 -13
  70. data/lib/metronome_sdk/resources/v1.rb +41 -0
  71. data/lib/metronome_sdk/resources/v2/contracts.rb +5 -1
  72. data/lib/metronome_sdk/version.rb +1 -1
  73. data/lib/metronome_sdk.rb +14 -0
  74. data/rbi/metronome_sdk/internal/util.rbi +21 -1
  75. data/rbi/metronome_sdk/models/balance_filter.rbi +106 -0
  76. data/rbi/metronome_sdk/models/commit_rate.rbi +48 -2
  77. data/rbi/metronome_sdk/models/commit_specifier_input.rbi +8 -0
  78. data/rbi/metronome_sdk/models/contract.rbi +11 -11
  79. data/rbi/metronome_sdk/models/contract_v2.rbi +72 -21
  80. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +15 -18
  81. data/rbi/metronome_sdk/models/override.rbi +5 -0
  82. data/rbi/metronome_sdk/models/overwrite_rate.rbi +42 -0
  83. data/rbi/metronome_sdk/models/payment_gate_config.rbi +0 -5
  84. data/rbi/metronome_sdk/models/payment_gate_config_v2.rbi +0 -5
  85. data/rbi/metronome_sdk/models/rate.rbi +37 -0
  86. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +51 -5
  87. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +94 -34
  88. data/rbi/metronome_sdk/models/v1/contract_get_net_balance_params.rbi +141 -0
  89. data/rbi/metronome_sdk/models/v1/contract_get_net_balance_response.rbi +89 -0
  90. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +51 -0
  91. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +51 -0
  92. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +5 -0
  93. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +32 -19
  94. data/rbi/metronome_sdk/models/v1/package_archive_params.rbi +48 -0
  95. data/rbi/metronome_sdk/models/v1/package_archive_response.rbi +31 -0
  96. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +6362 -0
  97. data/rbi/metronome_sdk/models/v1/package_create_response.rbi +31 -0
  98. data/rbi/metronome_sdk/models/v1/package_list_contracts_on_package_params.rbi +105 -0
  99. data/rbi/metronome_sdk/models/v1/package_list_contracts_on_package_response.rbi +70 -0
  100. data/rbi/metronome_sdk/models/v1/package_list_params.rbi +123 -0
  101. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +5796 -0
  102. data/rbi/metronome_sdk/models/v1/package_retrieve_params.rbi +43 -0
  103. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +5864 -0
  104. data/rbi/metronome_sdk/models/v1/usage_list_with_groups_params.rbi +52 -0
  105. data/rbi/metronome_sdk/models/v1/usage_list_with_groups_response.rbi +24 -3
  106. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +383 -5
  107. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +51 -0
  108. data/rbi/metronome_sdk/models.rbi +2 -0
  109. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -0
  110. data/rbi/metronome_sdk/resources/v1/audit_logs.rbi +2 -0
  111. data/rbi/metronome_sdk/resources/v1/billable_metrics.rbi +3 -0
  112. data/rbi/metronome_sdk/resources/v1/contracts/named_schedules.rbi +2 -0
  113. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +1 -0
  114. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/named_schedules.rbi +2 -0
  115. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rbi +1 -0
  116. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +5 -0
  117. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards.rbi +5 -0
  118. data/rbi/metronome_sdk/resources/v1/contracts.rbi +86 -3
  119. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +3 -0
  120. data/rbi/metronome_sdk/resources/v1/custom_fields.rbi +3 -0
  121. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +5 -0
  122. data/rbi/metronome_sdk/resources/v1/customers/billing_config.rbi +4 -0
  123. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +1 -0
  124. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +1 -0
  125. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +4 -0
  126. data/rbi/metronome_sdk/resources/v1/customers/named_schedules.rbi +2 -0
  127. data/rbi/metronome_sdk/resources/v1/customers/plans.rbi +4 -0
  128. data/rbi/metronome_sdk/resources/v1/customers.rbi +21 -0
  129. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +4 -0
  130. data/rbi/metronome_sdk/resources/v1/invoices.rbi +4 -0
  131. data/rbi/metronome_sdk/resources/v1/packages.rbi +268 -0
  132. data/rbi/metronome_sdk/resources/v1/plans.rbi +4 -0
  133. data/rbi/metronome_sdk/resources/v1/pricing_units.rbi +2 -0
  134. data/rbi/metronome_sdk/resources/v1/services.rbi +2 -0
  135. data/rbi/metronome_sdk/resources/v1/settings/billing_providers.rbi +2 -0
  136. data/rbi/metronome_sdk/resources/v1/settings.rbi +4 -0
  137. data/rbi/metronome_sdk/resources/v1/usage.rbi +35 -8
  138. data/rbi/metronome_sdk/resources/v1.rbi +40 -0
  139. data/rbi/metronome_sdk/resources/v2/contracts.rbi +10 -0
  140. data/sig/metronome_sdk/internal/util.rbs +10 -0
  141. data/sig/metronome_sdk/models/balance_filter.rbs +50 -0
  142. data/sig/metronome_sdk/models/commit_rate.rbs +27 -1
  143. data/sig/metronome_sdk/models/contract.rbs +7 -7
  144. data/sig/metronome_sdk/models/contract_v2.rbs +26 -1
  145. data/sig/metronome_sdk/models/override.rbs +8 -1
  146. data/sig/metronome_sdk/models/overwrite_rate.rbs +27 -1
  147. data/sig/metronome_sdk/models/payment_gate_config.rbs +1 -2
  148. data/sig/metronome_sdk/models/payment_gate_config_v2.rbs +1 -2
  149. data/sig/metronome_sdk/models/rate.rbs +27 -1
  150. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +27 -3
  151. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +41 -10
  152. data/sig/metronome_sdk/models/v1/contract_get_net_balance_params.rbs +64 -0
  153. data/sig/metronome_sdk/models/v1/contract_get_net_balance_response.rbs +32 -0
  154. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +26 -1
  155. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +26 -1
  156. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +7 -1
  157. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +7 -0
  158. data/sig/metronome_sdk/models/v1/package_archive_params.rbs +26 -0
  159. data/sig/metronome_sdk/models/v1/package_archive_response.rbs +15 -0
  160. data/sig/metronome_sdk/models/v1/package_create_params.rbs +2532 -0
  161. data/sig/metronome_sdk/models/v1/package_create_response.rbs +15 -0
  162. data/sig/metronome_sdk/models/v1/package_list_contracts_on_package_params.rbs +63 -0
  163. data/sig/metronome_sdk/models/v1/package_list_contracts_on_package_response.rbs +46 -0
  164. data/sig/metronome_sdk/models/v1/package_list_params.rbs +58 -0
  165. data/sig/metronome_sdk/models/v1/package_list_response.rbs +2441 -0
  166. data/sig/metronome_sdk/models/v1/package_retrieve_params.rbs +26 -0
  167. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +2467 -0
  168. data/sig/metronome_sdk/models/v1/usage_list_with_groups_params.rbs +16 -0
  169. data/sig/metronome_sdk/models/v1/usage_list_with_groups_response.rbs +10 -3
  170. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +151 -3
  171. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +26 -1
  172. data/sig/metronome_sdk/models.rbs +2 -0
  173. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -0
  174. data/sig/metronome_sdk/resources/v1/contracts.rbs +10 -1
  175. data/sig/metronome_sdk/resources/v1/packages.rbs +63 -0
  176. data/sig/metronome_sdk/resources/v1/usage.rbs +2 -0
  177. data/sig/metronome_sdk/resources/v1.rbs +2 -0
  178. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  179. metadata +44 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a988182a5b3f8a91e63e06cc9ed209042ea94b2b5d93b70767ea7b1af2509e65
4
- data.tar.gz: 54b423b7428e7994d37133d36b0357032f84db951abe9bb5bb5f424c40247241
3
+ metadata.gz: 8b3e0209591ded8e63e83f34ddc60fdb12c212f46729e5f9e386bc58f778d93d
4
+ data.tar.gz: 03f73bb384df88bcfbd99f204f873c82a5b60485ef8d21e4810ced69a5dc54ad
5
5
  SHA512:
6
- metadata.gz: 3ea8e0edd4dc7010d06dd66b20834d5673d79fbfb2c76211bf6c9891f5e836858ad3e8a640e21774e0da7cd9cb9276e1029f8b76b0d867a1d5a95ab195a8773e
7
- data.tar.gz: 8a585909ec60973a81a8daeed7a6c6bb0a3f11cb88c03be03903f173c5a501a88a07ec42ff4e344abd9151291724e88e55156f0b137ec9640dcb1b0a43e9d2b3
6
+ metadata.gz: 73be1a42aa2e2b72b750584e217cc98543abe98eee2bf831dc564de9b0f813903ee69eafcd014f444d132be06ba91daea76ee846c522626bef58d36b2e23ac3d
7
+ data.tar.gz: b3171d39686ef1a30a36d5f5f501fc18b4b2652c9eb91130c2255d93a2bec56f3e6efb35ac60e71abe978f6efc297e76283449b1dc1937abd88eb7fb39dd33b5
data/CHANGELOG.md CHANGED
@@ -1,5 +1,64 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.2.0 (2026-03-02)
4
+
5
+ Full Changelog: [v3.1.0...v3.2.0](https://github.com/Metronome-Industries/metronome-ruby/compare/v3.1.0...v3.2.0)
6
+
7
+ ### Features
8
+
9
+ * [ORCH-1333] removes AVALARA enum value from PaymetGateConfig ([ae00dc5](https://github.com/Metronome-Industries/metronome-ruby/commit/ae00dc54be07aa638d65dba0d3ce410ba9ba51f4))
10
+ * [orch-759] add `archiveCustomerRevenueSystemConfigurations` endpoint to API ([947cc3a](https://github.com/Metronome-Industries/metronome-ruby/commit/947cc3a597e726934a13f6493e5cc41c5333dd4b))
11
+ * Add minimum config to percentage and tiered percentage overwrites ([e4f1ac6](https://github.com/Metronome-Industries/metronome-ruby/commit/e4f1ac694574df4b6ff541783a57ec755a39117a))
12
+ * **api:** add minimum_config to rates/commits, specialized override tier types ([53c5cc8](https://github.com/Metronome-Industries/metronome-ruby/commit/53c5cc86ae5654a9a2052a01685f85763d344aaa))
13
+ * **api:** add netsuite billing provider to customers ([612a0b4](https://github.com/Metronome-Industries/metronome-ruby/commit/612a0b415510439e8cab101f449b45560ee5ebcd))
14
+ * **api:** add subscription_id field to invoice line items ([592027f](https://github.com/Metronome-Industries/metronome-ruby/commit/592027fcf304b460c86efdad5b60a62030a5d87f))
15
+ * **api:** support compound group keys in `v1/usage/groups` endpoint ([71d6b72](https://github.com/Metronome-Industries/metronome-ruby/commit/71d6b720f413295fb3cc90611ff8511692ad9ebd))
16
+ * update stainless sdk to include new package endpoints ([8599260](https://github.com/Metronome-Industries/metronome-ruby/commit/8599260388e5aaa5351af677cead0f5367273b5c))
17
+
18
+
19
+ ### Bug Fixes
20
+
21
+ * **client:** loosen json header parsing ([b6a47c9](https://github.com/Metronome-Industries/metronome-ruby/commit/b6a47c9741309acba2d0fc7bcfeff7e8083108c3))
22
+ * **client:** serialize query parameters properly ([b3487d5](https://github.com/Metronome-Industries/metronome-ruby/commit/b3487d50e0477ccc61fb918a607a12eae7b2580d))
23
+ * properly mock time in ruby ci tests ([6469efe](https://github.com/Metronome-Industries/metronome-ruby/commit/6469efe98957025a21c45f8bea123f0862163037))
24
+
25
+
26
+ ### Chores
27
+
28
+ * **api:** remove priority field from contracts ([8b768ca](https://github.com/Metronome-Industries/metronome-ruby/commit/8b768caf4b279de4f5f8e859a60baa1fae85bdea))
29
+ * configure new SDK language ([d029725](https://github.com/Metronome-Industries/metronome-ruby/commit/d0297256192d340b338cb8928708d15b7daa934a))
30
+ * **docs:** add missing descriptions ([67fc1c1](https://github.com/Metronome-Industries/metronome-ruby/commit/67fc1c199518a6e40923d1f31ddd3302980d451a))
31
+ * update mock server docs ([9a1b8ff](https://github.com/Metronome-Industries/metronome-ruby/commit/9a1b8ffc1423b9b038b02c248cfdabb0899a71ca))
32
+
33
+ ## 3.1.0 (2026-02-04)
34
+
35
+ Full Changelog: [v3.0.0...v3.1.0](https://github.com/Metronome-Industries/metronome-ruby/compare/v3.0.0...v3.1.0)
36
+
37
+ ### Features
38
+
39
+ * Add `exclude` field to commit and override specifiers shape in the API ([f84b976](https://github.com/Metronome-Industries/metronome-ruby/commit/f84b9764622bc2eabf82eac2d93d3ca8df6deb75))
40
+ * **api:** Add getNetBalance endpoint ([eea5549](https://github.com/Metronome-Industries/metronome-ruby/commit/eea5549ea2e070596e78b4053eb65bc7a4bf5b04))
41
+ * bump schema version and update code to support TieredPercentage rate ([074cabf](https://github.com/Metronome-Industries/metronome-ruby/commit/074cabf0c588f01a35c0d3052ad8f5fae613d7d0))
42
+ * Expose add revenue config in edit contract api ([0d2838f](https://github.com/Metronome-Industries/metronome-ruby/commit/0d2838fd40981b134a5458fd99fc4ebaf8bf85bb))
43
+ * release account hierarchy ([a65ee30](https://github.com/Metronome-Industries/metronome-ruby/commit/a65ee30e99187f89918b22c8b57c16be395ff8cf))
44
+ * update api to allow editing net payment terms ([07aebe1](https://github.com/Metronome-Industries/metronome-ruby/commit/07aebe12f24e87988d0100ed9f288eb12a6e21a2))
45
+
46
+
47
+ ### Bug Fixes
48
+
49
+ * **client:** always add content-length to post body, even when empty ([58347c8](https://github.com/Metronome-Industries/metronome-ruby/commit/58347c878c115b860e2496fbd10a6a7d3b8db02f))
50
+ * **docs:** fix mcp installation instructions for remote servers ([b1d0986](https://github.com/Metronome-Industries/metronome-ruby/commit/b1d098615709412d777dcbe4f261a14fa708bfe5))
51
+
52
+
53
+ ### Chores
54
+
55
+ * **docs:** remove www prefix ([5b0a241](https://github.com/Metronome-Industries/metronome-ruby/commit/5b0a241f6a7fb97bf298aa830241efcb71681712))
56
+
57
+
58
+ ### Documentation
59
+
60
+ * Update package docs for GA ([861c4a2](https://github.com/Metronome-Industries/metronome-ruby/commit/861c4a2ed4bb0521131079ba2e726b3725f6de0c))
61
+
3
62
  ## 3.0.0 (2026-01-17)
4
63
 
5
64
  Full Changelog: [v2.2.0...v3.0.0](https://github.com/Metronome-Industries/metronome-ruby/compare/v2.2.0...v3.0.0)
data/README.md CHANGED
@@ -8,8 +8,8 @@ It is generated with [Stainless](https://www.stainless.com/).
8
8
 
9
9
  Use the Metronome MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.
10
10
 
11
- [![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=%40metronome%2Fmcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBtZXRyb25vbWUvbWNwIl19)
12
- [![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22%40metronome%2Fmcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40metronome%2Fmcp%22%5D%7D)
11
+ [![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=%40metronome%2Fmcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBtZXRyb25vbWUvbWNwIl0sImVudiI6eyJNRVRST05PTUVfQkVBUkVSX1RPS0VOIjoiTXkgQmVhcmVyIFRva2VuIiwiTUVUUk9OT01FX1dFQkhPT0tfU0VDUkVUIjoiTXkgV2ViaG9vayBTZWNyZXQifX0)
12
+ [![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22%40metronome%2Fmcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40metronome%2Fmcp%22%5D%2C%22env%22%3A%7B%22METRONOME_BEARER_TOKEN%22%3A%22My%20Bearer%20Token%22%2C%22METRONOME_WEBHOOK_SECRET%22%3A%22My%20Webhook%20Secret%22%7D%7D)
13
13
 
14
14
  > Note: You may need to set environment variables in your MCP client.
15
15
 
@@ -26,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application
26
26
  <!-- x-release-please-start-version -->
27
27
 
28
28
  ```ruby
29
- gem "metronome-sdk", "~> 3.0.0"
29
+ gem "metronome-sdk", "~> 3.2.0"
30
30
  ```
31
31
 
32
32
  <!-- x-release-please-end -->
@@ -75,7 +75,7 @@ module MetronomeSDK
75
75
 
76
76
  case body
77
77
  in nil
78
- nil
78
+ req["content-length"] ||= 0 unless req["transfer-encoding"]
79
79
  in String
80
80
  req["content-length"] ||= body.bytesize.to_s unless req["transfer-encoding"]
81
81
  req.body_stream = MetronomeSDK::Internal::Util::ReadIOAdapter.new(body, &blk)
@@ -438,11 +438,11 @@ module MetronomeSDK
438
438
  # @return [Hash{Symbol=>Object}]
439
439
  #
440
440
  # @example
441
- # # `base_threshold_commit` is a `MetronomeSDK::BaseThresholdCommit`
442
- # base_threshold_commit => {
443
- # product_id: product_id,
444
- # description: description,
445
- # name: name
441
+ # # `balance_filter` is a `MetronomeSDK::BalanceFilter`
442
+ # balance_filter => {
443
+ # balance_types: balance_types,
444
+ # custom_fields: custom_fields,
445
+ # ids: ids
446
446
  # }
447
447
  def deconstruct_keys(keys)
448
448
  (keys || self.class.known_fields.keys)
@@ -485,11 +485,42 @@ module MetronomeSDK
485
485
  end
486
486
 
487
487
  # @type [Regexp]
488
- JSON_CONTENT = %r{^application/(?:vnd(?:\.[^.]+)*\+)?json(?!l)}
488
+ JSON_CONTENT = %r{^application/(?:[a-zA-Z0-9.-]+\+)?json(?!l)}
489
489
  # @type [Regexp]
490
490
  JSONL_CONTENT = %r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}
491
491
 
492
492
  class << self
493
+ # @api private
494
+ #
495
+ # @param query [Hash{Symbol=>Object}]
496
+ #
497
+ # @return [Hash{Symbol=>Object}]
498
+ def encode_query_params(query)
499
+ out = {}
500
+ query.each { write_query_param_element!(out, _1, _2) }
501
+ out
502
+ end
503
+
504
+ # @api private
505
+ #
506
+ # @param collection [Hash{Symbol=>Object}]
507
+ # @param key [String]
508
+ # @param element [Object]
509
+ #
510
+ # @return [nil]
511
+ private def write_query_param_element!(collection, key, element)
512
+ case element
513
+ in Hash
514
+ element.each do |name, value|
515
+ write_query_param_element!(collection, "#{key}[#{name}]", value)
516
+ end
517
+ in Array
518
+ collection[key] = element.map(&:to_s).join(",")
519
+ else
520
+ collection[key] = element.to_s
521
+ end
522
+ end
523
+
493
524
  # @api private
494
525
  #
495
526
  # @param y [Enumerator::Yielder]
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ class BalanceFilter < MetronomeSDK::Internal::Type::BaseModel
6
+ # @!attribute balance_types
7
+ # The balance type to filter by.
8
+ #
9
+ # @return [Array<Symbol, MetronomeSDK::Models::BalanceFilter::BalanceType>, nil]
10
+ optional :balance_types,
11
+ -> { MetronomeSDK::Internal::Type::ArrayOf[enum: MetronomeSDK::BalanceFilter::BalanceType] }
12
+
13
+ # @!attribute custom_fields
14
+ # Custom fields to compute balance across. Must match all custom fields
15
+ #
16
+ # @return [Hash{Symbol=>String}, nil]
17
+ optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
18
+
19
+ # @!attribute ids
20
+ # Specific IDs to compute balance across.
21
+ #
22
+ # @return [Array<String>, nil]
23
+ optional :ids, MetronomeSDK::Internal::Type::ArrayOf[String]
24
+
25
+ # @!method initialize(balance_types: nil, custom_fields: nil, ids: nil)
26
+ # @param balance_types [Array<Symbol, MetronomeSDK::Models::BalanceFilter::BalanceType>] The balance type to filter by.
27
+ #
28
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to compute balance across. Must match all custom fields
29
+ #
30
+ # @param ids [Array<String>] Specific IDs to compute balance across.
31
+
32
+ module BalanceType
33
+ extend MetronomeSDK::Internal::Type::Enum
34
+
35
+ PREPAID_COMMIT = :PREPAID_COMMIT
36
+ POSTPAID_COMMIT = :POSTPAID_COMMIT
37
+ CREDIT = :CREDIT
38
+
39
+ # @!method self.values
40
+ # @return [Array<Symbol>]
41
+ end
42
+ end
43
+ end
44
+ end
@@ -8,8 +8,16 @@ module MetronomeSDK
8
8
  # @return [Symbol, MetronomeSDK::Models::CommitRate::RateType]
9
9
  required :rate_type, enum: -> { MetronomeSDK::CommitRate::RateType }
10
10
 
11
+ # @!attribute minimum_config
12
+ # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
13
+ #
14
+ # @return [MetronomeSDK::Models::CommitRate::MinimumConfig, nil]
15
+ optional :minimum_config, -> { MetronomeSDK::CommitRate::MinimumConfig }
16
+
11
17
  # @!attribute price
12
- # Commit rate price. For FLAT rate_type, this must be >=0.
18
+ # Commit rate price. For FLAT rate_type, this must be >=0. For PERCENTAGE
19
+ # rate_type, this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0
20
+ # and <=1.
13
21
  #
14
22
  # @return [Float, nil]
15
23
  optional :price, Float
@@ -20,13 +28,18 @@ module MetronomeSDK
20
28
  # @return [Array<MetronomeSDK::Models::Tier>, nil]
21
29
  optional :tiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Tier] }
22
30
 
23
- # @!method initialize(rate_type:, price: nil, tiers: nil)
31
+ # @!method initialize(rate_type:, minimum_config: nil, price: nil, tiers: nil)
32
+ # Some parameter documentations has been truncated, see
33
+ # {MetronomeSDK::Models::CommitRate} for more details.
34
+ #
24
35
  # A distinct rate on the rate card. You can choose to use this rate rather than
25
36
  # list rate when consuming a credit or commit.
26
37
  #
27
38
  # @param rate_type [Symbol, MetronomeSDK::Models::CommitRate::RateType]
28
39
  #
29
- # @param price [Float] Commit rate price. For FLAT rate_type, this must be >=0.
40
+ # @param minimum_config [MetronomeSDK::Models::CommitRate::MinimumConfig] Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
41
+ #
42
+ # @param price [Float] Commit rate price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_typ
30
43
  #
31
44
  # @param tiers [Array<MetronomeSDK::Models::Tier>] Only set for TIERED rate_type.
32
45
 
@@ -38,11 +51,25 @@ module MetronomeSDK
38
51
  PERCENTAGE = :PERCENTAGE
39
52
  SUBSCRIPTION = :SUBSCRIPTION
40
53
  TIERED = :TIERED
54
+ TIERED_PERCENTAGE = :TIERED_PERCENTAGE
41
55
  CUSTOM = :CUSTOM
42
56
 
43
57
  # @!method self.values
44
58
  # @return [Array<Symbol>]
45
59
  end
60
+
61
+ # @see MetronomeSDK::Models::CommitRate#minimum_config
62
+ class MinimumConfig < MetronomeSDK::Internal::Type::BaseModel
63
+ # @!attribute minimum
64
+ #
65
+ # @return [Float]
66
+ required :minimum, Float
67
+
68
+ # @!method initialize(minimum:)
69
+ # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
70
+ #
71
+ # @param minimum [Float]
72
+ end
46
73
  end
47
74
  end
48
75
  end
@@ -4,11 +4,15 @@ module MetronomeSDK
4
4
  module Models
5
5
  class CommitSpecifierInput < MetronomeSDK::Internal::Type::BaseModel
6
6
  # @!attribute presentation_group_values
7
+ # If provided, the specifier will apply to product usage with these set of
8
+ # presentation group values.
7
9
  #
8
10
  # @return [Hash{Symbol=>String}, nil]
9
11
  optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
10
12
 
11
13
  # @!attribute pricing_group_values
14
+ # If provided, the specifier will apply to product usage with these set of pricing
15
+ # group values.
12
16
  #
13
17
  # @return [Hash{Symbol=>String}, nil]
14
18
  optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
@@ -30,9 +34,9 @@ module MetronomeSDK
30
34
  # Some parameter documentations has been truncated, see
31
35
  # {MetronomeSDK::Models::CommitSpecifierInput} for more details.
32
36
  #
33
- # @param presentation_group_values [Hash{Symbol=>String}]
37
+ # @param presentation_group_values [Hash{Symbol=>String}] If provided, the specifier will apply to product usage with these set of present
34
38
  #
35
- # @param pricing_group_values [Hash{Symbol=>String}]
39
+ # @param pricing_group_values [Hash{Symbol=>String}] If provided, the specifier will apply to product usage with these set of pricing
36
40
  #
37
41
  # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
38
42
  #
@@ -48,18 +48,18 @@ module MetronomeSDK
48
48
  optional :customer_billing_provider_configuration,
49
49
  -> { MetronomeSDK::Contract::CustomerBillingProviderConfiguration }
50
50
 
51
+ # @!attribute package_id
52
+ # ID of the package this contract was created from, if applicable.
53
+ #
54
+ # @return [String, nil]
55
+ optional :package_id, String
56
+
51
57
  # @!attribute prepaid_balance_threshold_configuration
52
58
  #
53
59
  # @return [MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration, nil]
54
60
  optional :prepaid_balance_threshold_configuration,
55
61
  -> { MetronomeSDK::PrepaidBalanceThresholdConfiguration }
56
62
 
57
- # @!attribute priority
58
- # Priority of the contract.
59
- #
60
- # @return [Float, nil]
61
- optional :priority, Float
62
-
63
63
  # @!attribute scheduled_charges_on_usage_invoices
64
64
  # Determines which scheduled and commit charges to consolidate onto the Contract's
65
65
  # usage invoice. The charge's `timestamp` must match the usage invoice's
@@ -90,7 +90,7 @@ module MetronomeSDK
90
90
  # @return [String, nil]
91
91
  optional :uniqueness_key, String
92
92
 
93
- # @!method initialize(id:, amendments:, current:, customer_id:, initial:, archived_at: nil, custom_fields: nil, customer_billing_provider_configuration: nil, prepaid_balance_threshold_configuration: nil, priority: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, subscriptions: nil, uniqueness_key: nil)
93
+ # @!method initialize(id:, amendments:, current:, customer_id:, initial:, archived_at: nil, custom_fields: nil, customer_billing_provider_configuration: nil, package_id: nil, prepaid_balance_threshold_configuration: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, subscriptions: nil, uniqueness_key: nil)
94
94
  # Some parameter documentations has been truncated, see
95
95
  # {MetronomeSDK::Models::Contract} for more details.
96
96
  #
@@ -110,9 +110,9 @@ module MetronomeSDK
110
110
  #
111
111
  # @param customer_billing_provider_configuration [MetronomeSDK::Models::Contract::CustomerBillingProviderConfiguration] The billing provider configuration associated with a contract.
112
112
  #
113
- # @param prepaid_balance_threshold_configuration [MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration]
113
+ # @param package_id [String] ID of the package this contract was created from, if applicable.
114
114
  #
115
- # @param priority [Float] Priority of the contract.
115
+ # @param prepaid_balance_threshold_configuration [MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration]
116
116
  #
117
117
  # @param scheduled_charges_on_usage_invoices [Symbol, MetronomeSDK::Models::Contract::ScheduledChargesOnUsageInvoices] Determines which scheduled and commit charges to consolidate onto the Contract's
118
118
  #
@@ -1411,6 +1411,12 @@ module MetronomeSDK
1411
1411
  # @return [Boolean, nil]
1412
1412
  optional :is_prorated, MetronomeSDK::Internal::Type::Boolean
1413
1413
 
1414
+ # @!attribute minimum_config
1415
+ # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
1416
+ #
1417
+ # @return [MetronomeSDK::Models::ContractV2::Override::OverwriteRate::MinimumConfig, nil]
1418
+ optional :minimum_config, -> { MetronomeSDK::ContractV2::Override::OverwriteRate::MinimumConfig }
1419
+
1414
1420
  # @!attribute price
1415
1421
  # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
1416
1422
  # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
@@ -1430,7 +1436,7 @@ module MetronomeSDK
1430
1436
  # @return [Array<MetronomeSDK::Models::Tier>, nil]
1431
1437
  optional :tiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Tier] }
1432
1438
 
1433
- # @!method initialize(rate_type:, credit_type: nil, custom_rate: nil, is_prorated: nil, price: nil, quantity: nil, tiers: nil)
1439
+ # @!method initialize(rate_type:, credit_type: nil, custom_rate: nil, is_prorated: nil, minimum_config: nil, price: nil, quantity: nil, tiers: nil)
1434
1440
  # Some parameter documentations has been truncated, see
1435
1441
  # {MetronomeSDK::Models::ContractV2::Override::OverwriteRate} for more details.
1436
1442
  #
@@ -1442,6 +1448,8 @@ module MetronomeSDK
1442
1448
  #
1443
1449
  # @param is_prorated [Boolean] Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
1444
1450
  #
1451
+ # @param minimum_config [MetronomeSDK::Models::ContractV2::Override::OverwriteRate::MinimumConfig] Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
1452
+ #
1445
1453
  # @param price [Float] Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type, t
1446
1454
  #
1447
1455
  # @param quantity [Float] Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
@@ -1456,11 +1464,25 @@ module MetronomeSDK
1456
1464
  PERCENTAGE = :PERCENTAGE
1457
1465
  SUBSCRIPTION = :SUBSCRIPTION
1458
1466
  TIERED = :TIERED
1467
+ TIERED_PERCENTAGE = :TIERED_PERCENTAGE
1459
1468
  CUSTOM = :CUSTOM
1460
1469
 
1461
1470
  # @!method self.values
1462
1471
  # @return [Array<Symbol>]
1463
1472
  end
1473
+
1474
+ # @see MetronomeSDK::Models::ContractV2::Override::OverwriteRate#minimum_config
1475
+ class MinimumConfig < MetronomeSDK::Internal::Type::BaseModel
1476
+ # @!attribute minimum
1477
+ #
1478
+ # @return [Float]
1479
+ required :minimum, Float
1480
+
1481
+ # @!method initialize(minimum:)
1482
+ # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
1483
+ #
1484
+ # @param minimum [Float]
1485
+ end
1464
1486
  end
1465
1487
 
1466
1488
  # @see MetronomeSDK::Models::ContractV2::Override#product
@@ -2290,8 +2312,8 @@ module MetronomeSDK
2290
2312
  # @see MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration#parent_behavior
2291
2313
  class ParentBehavior < MetronomeSDK::Internal::Type::BaseModel
2292
2314
  # @!attribute invoice_consolidation_type
2293
- # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
2294
- # generated by the parent in a customer hierarchy
2315
+ # Indicates the desired behavior of consolidated invoices generated by the parent
2316
+ # in a customer hierarchy
2295
2317
  #
2296
2318
  # **CONCATENATE**: Statements on the invoices of child customers will be appended
2297
2319
  # to the consolidated invoice
@@ -2307,10 +2329,10 @@ module MetronomeSDK
2307
2329
  # {MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior}
2308
2330
  # for more details.
2309
2331
  #
2310
- # @param invoice_consolidation_type [Symbol, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType] Account hierarchy M3 - Indicates the desired behavior of consolidated invoices g
2332
+ # @param invoice_consolidation_type [Symbol, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType] Indicates the desired behavior of consolidated invoices generated by the parent
2311
2333
 
2312
- # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
2313
- # generated by the parent in a customer hierarchy
2334
+ # Indicates the desired behavior of consolidated invoices generated by the parent
2335
+ # in a customer hierarchy
2314
2336
  #
2315
2337
  # **CONCATENATE**: Statements on the invoices of child customers will be appended
2316
2338
  # to the consolidated invoice
@@ -2339,17 +2361,17 @@ module MetronomeSDK
2339
2361
  -> { MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent }
2340
2362
 
2341
2363
  # @!attribute payer
2342
- # Account hierarchy M3 - Indicates which customer should pay for the child's
2343
- # invoice charges **SELF**: The child pays for its own invoice charges **PARENT**:
2344
- # The parent pays for the child's invoice charges
2364
+ # Indicates which customer should pay for the child's invoice charges **SELF**:
2365
+ # The child pays for its own invoice charges **PARENT**: The parent pays for the
2366
+ # child's invoice charges
2345
2367
  #
2346
2368
  # @return [Symbol, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer, nil]
2347
2369
  optional :payer,
2348
2370
  enum: -> { MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer }
2349
2371
 
2350
2372
  # @!attribute usage_statement_behavior
2351
- # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
2352
- # on the parent's invoices.
2373
+ # Indicates the behavior of the child's invoice statements on the parent's
2374
+ # invoices.
2353
2375
  #
2354
2376
  # **CONSOLIDATE**: Child's invoice statements will be added to parent's
2355
2377
  # consolidated invoices
@@ -2368,9 +2390,9 @@ module MetronomeSDK
2368
2390
  #
2369
2391
  # @param parent [MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent] The single parent contract/customer for this child.
2370
2392
  #
2371
- # @param payer [Symbol, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer] Account hierarchy M3 - Indicates which customer should pay for the child's invoi
2393
+ # @param payer [Symbol, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer] Indicates which customer should pay for the child's invoice charges **SELF**: Th
2372
2394
  #
2373
- # @param usage_statement_behavior [Symbol, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior] Account hierarchy M3 - Indicates the behavior of the child's invoice statements
2395
+ # @param usage_statement_behavior [Symbol, MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior] Indicates the behavior of the child's invoice statements on the parent's invoice
2374
2396
 
2375
2397
  # @see MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2#parent
2376
2398
  class Parent < MetronomeSDK::Internal::Type::BaseModel
@@ -2391,9 +2413,9 @@ module MetronomeSDK
2391
2413
  # @param customer_id [String]
2392
2414
  end
2393
2415
 
2394
- # Account hierarchy M3 - Indicates which customer should pay for the child's
2395
- # invoice charges **SELF**: The child pays for its own invoice charges **PARENT**:
2396
- # The parent pays for the child's invoice charges
2416
+ # Indicates which customer should pay for the child's invoice charges **SELF**:
2417
+ # The child pays for its own invoice charges **PARENT**: The parent pays for the
2418
+ # child's invoice charges
2397
2419
  #
2398
2420
  # @see MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2#payer
2399
2421
  module Payer
@@ -2406,8 +2428,8 @@ module MetronomeSDK
2406
2428
  # @return [Array<Symbol>]
2407
2429
  end
2408
2430
 
2409
- # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
2410
- # on the parent's invoices.
2431
+ # Indicates the behavior of the child's invoice statements on the parent's
2432
+ # invoices.
2411
2433
  #
2412
2434
  # **CONSOLIDATE**: Child's invoice statements will be added to parent's
2413
2435
  # consolidated invoices
@@ -49,8 +49,8 @@ module MetronomeSDK
49
49
  # @see MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration#parent_behavior
50
50
  class ParentBehavior < MetronomeSDK::Internal::Type::BaseModel
51
51
  # @!attribute invoice_consolidation_type
52
- # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
53
- # generated by the parent in a customer hierarchy
52
+ # Indicates the desired behavior of consolidated invoices generated by the parent
53
+ # in a customer hierarchy
54
54
  #
55
55
  # **CONCATENATE**: Statements on the invoices of child customers will be appended
56
56
  # to the consolidated invoice
@@ -66,10 +66,10 @@ module MetronomeSDK
66
66
  # {MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior}
67
67
  # for more details.
68
68
  #
69
- # @param invoice_consolidation_type [Symbol, MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType] Account hierarchy M3 - Indicates the desired behavior of consolidated invoices g
69
+ # @param invoice_consolidation_type [Symbol, MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType] Indicates the desired behavior of consolidated invoices generated by the parent
70
70
 
71
- # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
72
- # generated by the parent in a customer hierarchy
71
+ # Indicates the desired behavior of consolidated invoices generated by the parent
72
+ # in a customer hierarchy
73
73
  #
74
74
  # **CONCATENATE**: Statements on the invoices of child customers will be appended
75
75
  # to the consolidated invoice
@@ -97,8 +97,7 @@ module MetronomeSDK
97
97
  required :parent, -> { MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Parent }
98
98
 
99
99
  # @!attribute payer
100
- # Account hierarchy M3 - Indicates which customer should pay for the child's
101
- # invoice charges
100
+ # Indicates which customer should pay for the child's invoice charges
102
101
  #
103
102
  # **SELF**: The child pays for its own invoice charges
104
103
  #
@@ -108,8 +107,8 @@ module MetronomeSDK
108
107
  optional :payer, enum: -> { MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Payer }
109
108
 
110
109
  # @!attribute usage_statement_behavior
111
- # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
112
- # on the parent's invoices.
110
+ # Indicates the behavior of the child's invoice statements on the parent's
111
+ # invoices.
113
112
  #
114
113
  # **CONSOLIDATE**: Child's invoice statements will be added to parent's
115
114
  # consolidated invoices
@@ -128,9 +127,9 @@ module MetronomeSDK
128
127
  #
129
128
  # @param parent [MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::Parent] The single parent contract/customer for this child.
130
129
  #
131
- # @param payer [Symbol, MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::Payer] Account hierarchy M3 - Indicates which customer should pay for the child's invoi
130
+ # @param payer [Symbol, MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::Payer] Indicates which customer should pay for the child's invoice charges
132
131
  #
133
- # @param usage_statement_behavior [Symbol, MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior] Account hierarchy M3 - Indicates the behavior of the child's invoice statements
132
+ # @param usage_statement_behavior [Symbol, MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior] Indicates the behavior of the child's invoice statements on the parent's invoice
134
133
 
135
134
  # @see MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration#parent
136
135
  class Parent < MetronomeSDK::Internal::Type::BaseModel
@@ -151,8 +150,7 @@ module MetronomeSDK
151
150
  # @param customer_id [String]
152
151
  end
153
152
 
154
- # Account hierarchy M3 - Indicates which customer should pay for the child's
155
- # invoice charges
153
+ # Indicates which customer should pay for the child's invoice charges
156
154
  #
157
155
  # **SELF**: The child pays for its own invoice charges
158
156
  #
@@ -169,8 +167,8 @@ module MetronomeSDK
169
167
  # @return [Array<Symbol>]
170
168
  end
171
169
 
172
- # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
173
- # on the parent's invoices.
170
+ # Indicates the behavior of the child's invoice statements on the parent's
171
+ # invoices.
174
172
  #
175
173
  # **CONSOLIDATE**: Child's invoice statements will be added to parent's
176
174
  # consolidated invoices
@@ -253,6 +253,7 @@ module MetronomeSDK
253
253
  PERCENTAGE = :PERCENTAGE
254
254
  SUBSCRIPTION = :SUBSCRIPTION
255
255
  TIERED = :TIERED
256
+ TIERED_PERCENTAGE = :TIERED_PERCENTAGE
256
257
  CUSTOM = :CUSTOM
257
258
 
258
259
  # @!method self.values
@@ -27,6 +27,12 @@ module MetronomeSDK
27
27
  # @return [Boolean, nil]
28
28
  optional :is_prorated, MetronomeSDK::Internal::Type::Boolean
29
29
 
30
+ # @!attribute minimum_config
31
+ # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
32
+ #
33
+ # @return [MetronomeSDK::Models::OverwriteRate::MinimumConfig, nil]
34
+ optional :minimum_config, -> { MetronomeSDK::OverwriteRate::MinimumConfig }
35
+
30
36
  # @!attribute price
31
37
  # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
32
38
  # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
@@ -46,7 +52,7 @@ module MetronomeSDK
46
52
  # @return [Array<MetronomeSDK::Models::Tier>, nil]
47
53
  optional :tiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Tier] }
48
54
 
49
- # @!method initialize(rate_type:, credit_type: nil, custom_rate: nil, is_prorated: nil, price: nil, quantity: nil, tiers: nil)
55
+ # @!method initialize(rate_type:, credit_type: nil, custom_rate: nil, is_prorated: nil, minimum_config: nil, price: nil, quantity: nil, tiers: nil)
50
56
  # Some parameter documentations has been truncated, see
51
57
  # {MetronomeSDK::Models::OverwriteRate} for more details.
52
58
  #
@@ -58,6 +64,8 @@ module MetronomeSDK
58
64
  #
59
65
  # @param is_prorated [Boolean] Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
60
66
  #
67
+ # @param minimum_config [MetronomeSDK::Models::OverwriteRate::MinimumConfig] Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
68
+ #
61
69
  # @param price [Float] Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type, t
62
70
  #
63
71
  # @param quantity [Float] Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
@@ -72,11 +80,25 @@ module MetronomeSDK
72
80
  PERCENTAGE = :PERCENTAGE
73
81
  SUBSCRIPTION = :SUBSCRIPTION
74
82
  TIERED = :TIERED
83
+ TIERED_PERCENTAGE = :TIERED_PERCENTAGE
75
84
  CUSTOM = :CUSTOM
76
85
 
77
86
  # @!method self.values
78
87
  # @return [Array<Symbol>]
79
88
  end
89
+
90
+ # @see MetronomeSDK::Models::OverwriteRate#minimum_config
91
+ class MinimumConfig < MetronomeSDK::Internal::Type::BaseModel
92
+ # @!attribute minimum
93
+ #
94
+ # @return [Float]
95
+ required :minimum, Float
96
+
97
+ # @!method initialize(minimum:)
98
+ # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
99
+ #
100
+ # @param minimum [Float]
101
+ end
80
102
  end
81
103
  end
82
104
  end