metronome-sdk 2.1.0 → 3.0.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 (148) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +65 -0
  3. data/README.md +10 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +7 -1
  5. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +18 -12
  6. data/lib/metronome_sdk/internal/util.rb +7 -2
  7. data/lib/metronome_sdk/models/commit.rb +69 -1
  8. data/lib/metronome_sdk/models/contract_v2.rb +45 -2
  9. data/lib/metronome_sdk/models/credit.rb +69 -1
  10. data/lib/metronome_sdk/models/rate.rb +1 -11
  11. data/lib/metronome_sdk/models/subscription.rb +32 -5
  12. data/lib/metronome_sdk/models/v1/alert_create_params.rb +33 -1
  13. data/lib/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rb +10 -1
  14. data/lib/metronome_sdk/models/v1/contract_create_params.rb +136 -20
  15. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +1 -11
  16. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +1 -11
  17. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +1 -11
  18. data/lib/metronome_sdk/models/v1/custom_field_add_key_params.rb +4 -0
  19. data/lib/metronome_sdk/models/v1/custom_field_delete_values_params.rb +4 -0
  20. data/lib/metronome_sdk/models/v1/custom_field_list_keys_params.rb +4 -0
  21. data/lib/metronome_sdk/models/v1/custom_field_list_keys_response.rb +4 -0
  22. data/lib/metronome_sdk/models/v1/custom_field_remove_key_params.rb +4 -0
  23. data/lib/metronome_sdk/models/v1/custom_field_set_values_params.rb +4 -0
  24. data/lib/metronome_sdk/models/v1/customer_create_params.rb +94 -2
  25. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_response.rb +111 -0
  26. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +32 -1
  27. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +15 -1
  28. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +15 -1
  29. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +33 -1
  30. data/lib/metronome_sdk/models/v1/customers/invoice.rb +71 -3
  31. data/lib/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rb +8 -1
  32. data/lib/metronome_sdk/models/v1/payment.rb +40 -1
  33. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rb +10 -1
  34. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_params.rb +1 -0
  35. data/lib/metronome_sdk/models/v1/usage_search_response.rb +6 -3
  36. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +17 -1
  37. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +17 -1
  38. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +285 -22
  39. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +177 -3
  40. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  41. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +1 -3
  42. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +1 -1
  43. data/lib/metronome_sdk/resources/v1/contracts.rb +6 -2
  44. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +3 -1
  45. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +8 -4
  46. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +7 -7
  47. data/lib/metronome_sdk/resources/v1/customers/plans.rb +5 -5
  48. data/lib/metronome_sdk/resources/v1/customers.rb +12 -10
  49. data/lib/metronome_sdk/resources/v1/plans.rb +2 -2
  50. data/lib/metronome_sdk/resources/v1/settings.rb +3 -1
  51. data/lib/metronome_sdk/resources/v1/usage.rb +7 -7
  52. data/lib/metronome_sdk/resources/v2/contracts.rb +10 -2
  53. data/lib/metronome_sdk/version.rb +1 -1
  54. data/lib/metronome_sdk.rb +3 -0
  55. data/manifest.yaml +2 -0
  56. data/rbi/metronome_sdk/internal/transport/base_client.rbi +5 -0
  57. data/rbi/metronome_sdk/internal/transport/pooled_net_requester.rbi +6 -2
  58. data/rbi/metronome_sdk/internal/type/base_model.rbi +8 -4
  59. data/rbi/metronome_sdk/models/commit.rbi +171 -0
  60. data/rbi/metronome_sdk/models/contract_v2.rbi +85 -6
  61. data/rbi/metronome_sdk/models/credit.rbi +171 -0
  62. data/rbi/metronome_sdk/models/rate.rbi +3 -18
  63. data/rbi/metronome_sdk/models/subscription.rbi +55 -9
  64. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +69 -0
  65. data/rbi/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbi +13 -0
  66. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +288 -24
  67. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +3 -18
  68. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +0 -15
  69. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +3 -18
  70. data/rbi/metronome_sdk/models/v1/custom_field_add_key_params.rbi +20 -0
  71. data/rbi/metronome_sdk/models/v1/custom_field_delete_values_params.rbi +20 -0
  72. data/rbi/metronome_sdk/models/v1/custom_field_list_keys_params.rbi +20 -0
  73. data/rbi/metronome_sdk/models/v1/custom_field_list_keys_response.rbi +20 -0
  74. data/rbi/metronome_sdk/models/v1/custom_field_remove_key_params.rbi +20 -0
  75. data/rbi/metronome_sdk/models/v1/custom_field_set_values_params.rbi +20 -0
  76. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +204 -0
  77. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbi +281 -0
  78. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +67 -0
  79. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +18 -0
  80. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +18 -0
  81. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +71 -0
  82. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +121 -0
  83. data/rbi/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbi +9 -0
  84. data/rbi/metronome_sdk/models/v1/payment.rbi +79 -0
  85. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbi +13 -0
  86. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_params.rbi +5 -0
  87. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +11 -3
  88. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +22 -0
  89. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +22 -0
  90. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +616 -27
  91. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +367 -3
  92. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -0
  93. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +0 -5
  94. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards.rbi +1 -1
  95. data/rbi/metronome_sdk/resources/v1/contracts.rbi +9 -0
  96. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +5 -0
  97. data/rbi/metronome_sdk/resources/v1/customers/billing_config.rbi +9 -3
  98. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +7 -7
  99. data/rbi/metronome_sdk/resources/v1/customers/plans.rbi +5 -5
  100. data/rbi/metronome_sdk/resources/v1/customers.rbi +15 -8
  101. data/rbi/metronome_sdk/resources/v1/plans.rbi +2 -2
  102. data/rbi/metronome_sdk/resources/v1/settings.rbi +4 -0
  103. data/rbi/metronome_sdk/resources/v1/usage.rbi +7 -7
  104. data/rbi/metronome_sdk/resources/v2/contracts.rbi +12 -0
  105. data/sig/metronome_sdk/internal/transport/base_client.rbs +2 -0
  106. data/sig/metronome_sdk/internal/transport/pooled_net_requester.rbs +4 -1
  107. data/sig/metronome_sdk/models/commit.rbs +74 -0
  108. data/sig/metronome_sdk/models/contract_v2.rbs +45 -6
  109. data/sig/metronome_sdk/models/credit.rbs +74 -0
  110. data/sig/metronome_sdk/models/rate.rbs +3 -10
  111. data/sig/metronome_sdk/models/subscription.rbs +22 -3
  112. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +28 -0
  113. data/sig/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbs +7 -0
  114. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +104 -0
  115. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +3 -10
  116. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +1 -8
  117. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +3 -10
  118. data/sig/metronome_sdk/models/v1/custom_field_add_key_params.rbs +8 -0
  119. data/sig/metronome_sdk/models/v1/custom_field_delete_values_params.rbs +8 -0
  120. data/sig/metronome_sdk/models/v1/custom_field_list_keys_params.rbs +8 -0
  121. data/sig/metronome_sdk/models/v1/custom_field_list_keys_response.rbs +8 -0
  122. data/sig/metronome_sdk/models/v1/custom_field_remove_key_params.rbs +8 -0
  123. data/sig/metronome_sdk/models/v1/custom_field_set_values_params.rbs +8 -0
  124. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +83 -0
  125. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbs +119 -0
  126. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +26 -1
  127. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +14 -0
  128. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +14 -0
  129. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +30 -0
  130. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +64 -0
  131. data/sig/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbs +7 -0
  132. data/sig/metronome_sdk/models/v1/payment.rbs +45 -0
  133. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbs +8 -1
  134. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_params.rbs +3 -1
  135. data/sig/metronome_sdk/models/v1/usage_search_response.rbs +3 -1
  136. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +14 -0
  137. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +14 -0
  138. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +232 -3
  139. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +131 -3
  140. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  141. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +0 -1
  142. data/sig/metronome_sdk/resources/v1/contracts.rbs +2 -0
  143. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  144. data/sig/metronome_sdk/resources/v1/customers/billing_config.rbs +2 -0
  145. data/sig/metronome_sdk/resources/v1/customers.rbs +2 -1
  146. data/sig/metronome_sdk/resources/v1/settings.rbs +1 -0
  147. data/sig/metronome_sdk/resources/v2/contracts.rbs +4 -0
  148. metadata +19 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f70b65323a25a4de65861565a092a6aa70f43d28e5e910acca44d883efe9cf86
4
- data.tar.gz: 4d89458274f95fb69ca5d6bccad455a6ecaf92a3d1a93b8843290166f724e01d
3
+ metadata.gz: a988182a5b3f8a91e63e06cc9ed209042ea94b2b5d93b70767ea7b1af2509e65
4
+ data.tar.gz: 54b423b7428e7994d37133d36b0357032f84db951abe9bb5bb5f424c40247241
5
5
  SHA512:
6
- metadata.gz: '010907bdf574da3664f42af09be522e41a87dfc4ae1280ee4307326c8d62751c1fdc11bfec4214ec22176cbaf0002a2f1a7b6ed3668da3fb3347ab2bdb3b5494'
7
- data.tar.gz: d9be0ec4d10b760064dc84412f78c074258613af6b2ba7e33432ddade4c39d6356ed9d4fc59fb7a89eadc1ce4cd99f893e7c329bbedc27b4dc8e3ac8f76d1c5d
6
+ metadata.gz: 3ea8e0edd4dc7010d06dd66b20834d5673d79fbfb2c76211bf6c9891f5e836858ad3e8a640e21774e0da7cd9cb9276e1029f8b76b0d867a1d5a95ab195a8773e
7
+ data.tar.gz: 8a585909ec60973a81a8daeed7a6c6bb0a3f11cb88c03be03903f173c5a501a88a07ec42ff4e344abd9151291724e88e55156f0b137ec9640dcb1b0a43e9d2b3
data/CHANGELOG.md CHANGED
@@ -1,5 +1,70 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.0.0 (2026-01-17)
4
+
5
+ Full Changelog: [v2.2.0...v3.0.0](https://github.com/Metronome-Industries/metronome-ruby/compare/v2.2.0...v3.0.0)
6
+
7
+ ### Features
8
+
9
+ * [ORCH-739] expose rev rec data in api ([1e5912a](https://github.com/Metronome-Industries/metronome-ruby/commit/1e5912a60dd3bbfb37740057beac9055f96911e4))
10
+ * [ORCH-739] expose rev rec data in api ([ea99ea2](https://github.com/Metronome-Industries/metronome-ruby/commit/ea99ea27275244d1854395b0906bf1402f09308f))
11
+ * add recurring commit ID and subscription config to commit/credit response schema ([87a38ed](https://github.com/Metronome-Industries/metronome-ruby/commit/87a38ed2828cac15073a4650347ff2b6d3c14935))
12
+ * Add support for custom fields on package terms ([e6ca46b](https://github.com/Metronome-Industries/metronome-ruby/commit/e6ca46b3d30e047799c76d5b6e9407622c94f027))
13
+ * remove use list prices config in requests and responses ([44e02d3](https://github.com/Metronome-Industries/metronome-ruby/commit/44e02d367bedd33dca17c34d45006d21ef630abd))
14
+ * Revert [ORCH-739] expose rev rec data in api ([656d322](https://github.com/Metronome-Industries/metronome-ruby/commit/656d322008021add127b8b6a76e70f3576090e2b))
15
+
16
+
17
+ ### Chores
18
+
19
+ * fix typo in descriptions ([fdce90d](https://github.com/Metronome-Industries/metronome-ruby/commit/fdce90df6ae0e1223005482011560ba7eb53821c))
20
+ * **internal:** codegen related update ([64bba19](https://github.com/Metronome-Industries/metronome-ruby/commit/64bba1958c92d4d260271fffc212a7ac904fe881))
21
+ * **internal:** codegen related update ([3237dc8](https://github.com/Metronome-Industries/metronome-ruby/commit/3237dc894931f5a4a4504f545f46be1a0d9b8841))
22
+ * **internal:** update `actions/checkout` version ([5aa0985](https://github.com/Metronome-Industries/metronome-ruby/commit/5aa09854840915a76d003d2e94ea7b25478ca198))
23
+
24
+
25
+ ### Documentation
26
+
27
+ * prominently feature MCP server setup in root SDK readmes ([353dc18](https://github.com/Metronome-Industries/metronome-ruby/commit/353dc181c9ce9b55c3e588849391c257ca6e79d8))
28
+
29
+ ## 2.2.0 (2025-12-18)
30
+
31
+ Full Changelog: [v2.1.0...v2.2.0](https://github.com/Metronome-Industries/metronome-ruby/compare/v2.1.0...v2.2.0)
32
+
33
+ ### Features
34
+
35
+ * [ORCH-605] uses x-mint groups to enable conditional rendering of gated revenue system config apis ([22ceee8](https://github.com/Metronome-Industries/metronome-ruby/commit/22ceee870bf6b1642ff4283b37485be599658e47))
36
+ * [ORCH-752] Update contract creation endpoints to allow setting revenue system configuration ([c2ca4f7](https://github.com/Metronome-Industries/metronome-ruby/commit/c2ca4f7ef46b0ead89b74a6e75a37a2ba55d9dc8))
37
+ * Add `commit_transactions` to the body of `/upsertAvalaraCredentials` endpoint ([d99cab3](https://github.com/Metronome-Industries/metronome-ruby/commit/d99cab3cda4f2da4f80ec925c76583e31ea1763a))
38
+ * Add `seat_filter` field to creation request and response parameters of the alert object ([165e3f0](https://github.com/Metronome-Industries/metronome-ruby/commit/165e3f0deab903b00fb7b4b235179b52a4f8093f))
39
+ * add quantity to plan pricing adjustment response ([cbf2539](https://github.com/Metronome-Industries/metronome-ruby/commit/cbf2539bbab6fac9f0d4984cd0f88c9f6b0ceea2))
40
+ * adds external_payment_id to ExternalInvoice ([ff5f18f](https://github.com/Metronome-Industries/metronome-ruby/commit/ff5f18f6b14e08b4c499689ca329b357a03177a9))
41
+ * everything ([6188141](https://github.com/Metronome-Industries/metronome-ruby/commit/618814115adbe126a1b0b5a330244034a14c98f7))
42
+ * GET-6845 get openapi specs ready for GA ([dc48f09](https://github.com/Metronome-Industries/metronome-ruby/commit/dc48f094c3283251a7f452aa4cc3db917ee7eba6))
43
+ * include aggregation BM info from searchEvents ([ea0dfc0](https://github.com/Metronome-Industries/metronome-ruby/commit/ea0dfc021a244b0e0d3ebfbcdacfc053f5194b61))
44
+ * ORCH-833/948/946/947 - updated the API to accept aws_customer_account_id all gated behind a feature flag ([4c2e292](https://github.com/Metronome-Industries/metronome-ruby/commit/4c2e2926ed8b6d0844b3670312f9780f14df2beb))
45
+ * remove beta language, FF, stainless skip ([b504def](https://github.com/Metronome-Industries/metronome-ruby/commit/b504defa5b97aa3f622bbc746e76ac12691d1e90))
46
+ * Return values for set customer billing configuration endpoint ([1641a74](https://github.com/Metronome-Industries/metronome-ruby/commit/1641a74439ebf507fb85f0478bbd056f6047c173))
47
+ * update create alert api to allow LowRemainingSeatBalanceReached alert ([54a60e6](https://github.com/Metronome-Industries/metronome-ruby/commit/54a60e6027b889e61554b7a006c780e3a9fc4815))
48
+
49
+
50
+ ### Bug Fixes
51
+
52
+ * better thread safety via early initializing SSL store during HTTP client creation ([341992d](https://github.com/Metronome-Industries/metronome-ruby/commit/341992d633b9191d24209713f5f6a734d2229601))
53
+ * calling `break` out of streams should be instantaneous ([0db918b](https://github.com/Metronome-Industries/metronome-ruby/commit/0db918bb075b3420715faf0e73ef96cc01d58697))
54
+ * issue where json.parse errors when receiving HTTP 204 with nobody ([7a27bb6](https://github.com/Metronome-Industries/metronome-ruby/commit/7a27bb648e886deaf33358cde8f5c3c5d80ccf42))
55
+
56
+
57
+ ### Chores
58
+
59
+ * **client:** send user-agent header ([379e4e4](https://github.com/Metronome-Industries/metronome-ruby/commit/379e4e46eb858bce94633dd193fbc1526ea1c42c))
60
+ * explicitly require "base64" gem ([5d4a7dc](https://github.com/Metronome-Industries/metronome-ruby/commit/5d4a7dc568346f2fc33ab39cf1517582923d98d5))
61
+ * **internal:** codegen related update ([9878983](https://github.com/Metronome-Industries/metronome-ruby/commit/9878983e4d67b0d04d543d7a49afdd14e9eb4f73))
62
+
63
+
64
+ ### Documentation
65
+
66
+ * document missing fields for schemas related to recurring credits and commits ([d848e15](https://github.com/Metronome-Industries/metronome-ruby/commit/d848e159b2046aebccea5d2b3915779adf891791))
67
+
3
68
  ## 2.1.0 (2025-10-31)
4
69
 
5
70
  Full Changelog: [v2.0.0...v2.1.0](https://github.com/Metronome-Industries/metronome-ruby/compare/v2.0.0...v2.1.0)
data/README.md CHANGED
@@ -4,6 +4,15 @@ The Metronome Ruby library provides convenient access to the Metronome REST API
4
4
 
5
5
  It is generated with [Stainless](https://www.stainless.com/).
6
6
 
7
+ ## MCP Server
8
+
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
+
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)
13
+
14
+ > Note: You may need to set environment variables in your MCP client.
15
+
7
16
  ## Documentation
8
17
 
9
18
  Documentation for releases of this gem can be found [on RubyDoc](https://gemdocs.org/gems/metronome-sdk).
@@ -17,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application
17
26
  <!-- x-release-please-start-version -->
18
27
 
19
28
  ```ruby
20
- gem "metronome-sdk", "~> 2.1.0"
29
+ gem "metronome-sdk", "~> 3.0.0"
21
30
  ```
22
31
 
23
32
  <!-- x-release-please-end -->
@@ -201,7 +201,8 @@ module MetronomeSDK
201
201
  self.class::PLATFORM_HEADERS,
202
202
  {
203
203
  "accept" => "application/json",
204
- "content-type" => "application/json"
204
+ "content-type" => "application/json",
205
+ "user-agent" => user_agent
205
206
  },
206
207
  headers
207
208
  )
@@ -219,6 +220,11 @@ module MetronomeSDK
219
220
  # @return [Hash{String=>String}]
220
221
  private def auth_headers = {}
221
222
 
223
+ # @api private
224
+ #
225
+ # @return [String]
226
+ private def user_agent = "#{self.class.name}/Ruby #{MetronomeSDK::VERSION}"
227
+
222
228
  # @api private
223
229
  #
224
230
  # @return [String]
@@ -16,10 +16,11 @@ module MetronomeSDK
16
16
  class << self
17
17
  # @api private
18
18
  #
19
+ # @param cert_store [OpenSSL::X509::Store]
19
20
  # @param url [URI::Generic]
20
21
  #
21
22
  # @return [Net::HTTP]
22
- def connect(url)
23
+ def connect(cert_store:, url:)
23
24
  port =
24
25
  case [url.port, url.scheme]
25
26
  in [Integer, _]
@@ -33,6 +34,8 @@ module MetronomeSDK
33
34
  Net::HTTP.new(url.host, port).tap do
34
35
  _1.use_ssl = %w[https wss].include?(url.scheme)
35
36
  _1.max_retries = 0
37
+
38
+ (_1.cert_store = cert_store) if _1.use_ssl?
36
39
  end
37
40
  end
38
41
 
@@ -102,7 +105,7 @@ module MetronomeSDK
102
105
  pool =
103
106
  @mutex.synchronize do
104
107
  @pools[origin] ||= ConnectionPool.new(size: @size) do
105
- self.class.connect(url)
108
+ self.class.connect(cert_store: @cert_store, url: url)
106
109
  end
107
110
  end
108
111
 
@@ -150,17 +153,19 @@ module MetronomeSDK
150
153
  end
151
154
 
152
155
  self.class.calibrate_socket_timeout(conn, deadline)
153
- conn.request(req) do |rsp|
154
- y << [req, rsp]
155
- break if finished
156
-
157
- rsp.read_body do |bytes|
158
- y << bytes.force_encoding(Encoding::BINARY)
159
- break if finished
160
-
161
- self.class.calibrate_socket_timeout(conn, deadline)
156
+ ::Kernel.catch(:jump) do
157
+ conn.request(req) do |rsp|
158
+ y << [req, rsp]
159
+ ::Kernel.throw(:jump) if finished
160
+
161
+ rsp.read_body do |bytes|
162
+ y << bytes.force_encoding(Encoding::BINARY)
163
+ ::Kernel.throw(:jump) if finished
164
+
165
+ self.class.calibrate_socket_timeout(conn, deadline)
166
+ end
167
+ eof = true
162
168
  end
163
- eof = true
164
169
  end
165
170
  end
166
171
  ensure
@@ -192,6 +197,7 @@ module MetronomeSDK
192
197
  def initialize(size: self.class::DEFAULT_MAX_CONNECTIONS)
193
198
  @mutex = Mutex.new
194
199
  @size = size
200
+ @cert_store = OpenSSL::X509::Store.new.tap(&:set_default_paths)
195
201
  @pools = {}
196
202
  end
197
203
 
@@ -657,7 +657,8 @@ module MetronomeSDK
657
657
  def decode_content(headers, stream:, suppress_error: false)
658
658
  case (content_type = headers["content-type"])
659
659
  in MetronomeSDK::Internal::Util::JSON_CONTENT
660
- json = stream.to_a.join
660
+ return nil if (json = stream.to_a.join).empty?
661
+
661
662
  begin
662
663
  JSON.parse(json, symbolize_names: true)
663
664
  rescue JSON::ParserError => e
@@ -667,7 +668,11 @@ module MetronomeSDK
667
668
  in MetronomeSDK::Internal::Util::JSONL_CONTENT
668
669
  lines = decode_lines(stream)
669
670
  chain_fused(lines) do |y|
670
- lines.each { y << JSON.parse(_1, symbolize_names: true) }
671
+ lines.each do
672
+ next if _1.empty?
673
+
674
+ y << JSON.parse(_1, symbolize_names: true)
675
+ end
671
676
  end
672
677
  in %r{^text/event-stream}
673
678
  lines = decode_lines(stream)
@@ -140,6 +140,13 @@ module MetronomeSDK
140
140
  # @return [Symbol, MetronomeSDK::Models::Commit::RateType, nil]
141
141
  optional :rate_type, enum: -> { MetronomeSDK::Commit::RateType }
142
142
 
143
+ # @!attribute recurring_commit_id
144
+ # The ID of the recurring commit that this commit was generated from, if
145
+ # applicable.
146
+ #
147
+ # @return [String, nil]
148
+ optional :recurring_commit_id, String
149
+
143
150
  # @!attribute rolled_over_from
144
151
  #
145
152
  # @return [MetronomeSDK::Models::Commit::RolledOverFrom, nil]
@@ -164,6 +171,13 @@ module MetronomeSDK
164
171
  # @return [Array<MetronomeSDK::Models::CommitSpecifier>, nil]
165
172
  optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifier] }
166
173
 
174
+ # @!attribute subscription_config
175
+ # The subscription configuration for this commit, if it was generated from a
176
+ # recurring commit with a subscription attached.
177
+ #
178
+ # @return [MetronomeSDK::Models::Commit::SubscriptionConfig, nil]
179
+ optional :subscription_config, -> { MetronomeSDK::Commit::SubscriptionConfig }
180
+
167
181
  # @!attribute uniqueness_key
168
182
  # Prevents the creation of duplicates. If a request to create a commit or credit
169
183
  # is made with a uniqueness key that was previously used to create a commit or
@@ -173,7 +187,7 @@ module MetronomeSDK
173
187
  # @return [String, nil]
174
188
  optional :uniqueness_key, String
175
189
 
176
- # @!method initialize(id:, created_at:, product:, type:, access_schedule: nil, amount: nil, applicable_contract_ids: nil, applicable_product_ids: nil, applicable_product_tags: nil, archived_at: nil, balance: nil, contract: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, invoice_contract: nil, invoice_schedule: nil, ledger: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, rolled_over_from: nil, rollover_fraction: nil, salesforce_opportunity_id: nil, specifiers: nil, uniqueness_key: nil)
190
+ # @!method initialize(id:, created_at:, product:, type:, access_schedule: nil, amount: nil, applicable_contract_ids: nil, applicable_product_ids: nil, applicable_product_tags: nil, archived_at: nil, balance: nil, contract: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, invoice_contract: nil, invoice_schedule: nil, ledger: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, recurring_commit_id: nil, rolled_over_from: nil, rollover_fraction: nil, salesforce_opportunity_id: nil, specifiers: nil, subscription_config: nil, uniqueness_key: nil)
177
191
  # Some parameter documentations has been truncated, see
178
192
  # {MetronomeSDK::Models::Commit} for more details.
179
193
  #
@@ -221,6 +235,8 @@ module MetronomeSDK
221
235
  #
222
236
  # @param rate_type [Symbol, MetronomeSDK::Models::Commit::RateType]
223
237
  #
238
+ # @param recurring_commit_id [String] The ID of the recurring commit that this commit was generated from, if applicabl
239
+ #
224
240
  # @param rolled_over_from [MetronomeSDK::Models::Commit::RolledOverFrom]
225
241
  #
226
242
  # @param rollover_fraction [Float]
@@ -229,6 +245,8 @@ module MetronomeSDK
229
245
  #
230
246
  # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifier>] List of filters that determine what kind of customer usage draws down a commit o
231
247
  #
248
+ # @param subscription_config [MetronomeSDK::Models::Commit::SubscriptionConfig] The subscription configuration for this commit, if it was generated from a recur
249
+ #
232
250
  # @param uniqueness_key [String] Prevents the creation of duplicates. If a request to create a commit or credit i
233
251
 
234
252
  # @see MetronomeSDK::Models::Commit#product
@@ -934,6 +952,56 @@ module MetronomeSDK
934
952
  # @param commit_id [String]
935
953
  # @param contract_id [String]
936
954
  end
955
+
956
+ # @see MetronomeSDK::Models::Commit#subscription_config
957
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
958
+ # @!attribute allocation
959
+ #
960
+ # @return [Symbol, MetronomeSDK::Models::Commit::SubscriptionConfig::Allocation, nil]
961
+ optional :allocation, enum: -> { MetronomeSDK::Commit::SubscriptionConfig::Allocation }
962
+
963
+ # @!attribute apply_seat_increase_config
964
+ #
965
+ # @return [MetronomeSDK::Models::Commit::SubscriptionConfig::ApplySeatIncreaseConfig, nil]
966
+ optional :apply_seat_increase_config,
967
+ -> { MetronomeSDK::Commit::SubscriptionConfig::ApplySeatIncreaseConfig }
968
+
969
+ # @!attribute subscription_id
970
+ #
971
+ # @return [String, nil]
972
+ optional :subscription_id, String
973
+
974
+ # @!method initialize(allocation: nil, apply_seat_increase_config: nil, subscription_id: nil)
975
+ # The subscription configuration for this commit, if it was generated from a
976
+ # recurring commit with a subscription attached.
977
+ #
978
+ # @param allocation [Symbol, MetronomeSDK::Models::Commit::SubscriptionConfig::Allocation]
979
+ # @param apply_seat_increase_config [MetronomeSDK::Models::Commit::SubscriptionConfig::ApplySeatIncreaseConfig]
980
+ # @param subscription_id [String]
981
+
982
+ # @see MetronomeSDK::Models::Commit::SubscriptionConfig#allocation
983
+ module Allocation
984
+ extend MetronomeSDK::Internal::Type::Enum
985
+
986
+ INDIVIDUAL = :INDIVIDUAL
987
+ POOLED = :POOLED
988
+
989
+ # @!method self.values
990
+ # @return [Array<Symbol>]
991
+ end
992
+
993
+ # @see MetronomeSDK::Models::Commit::SubscriptionConfig#apply_seat_increase_config
994
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
995
+ # @!attribute is_prorated
996
+ # Indicates whether a mid-period seat increase should be prorated.
997
+ #
998
+ # @return [Boolean]
999
+ required :is_prorated, MetronomeSDK::Internal::Type::Boolean
1000
+
1001
+ # @!method initialize(is_prorated:)
1002
+ # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
1003
+ end
1004
+ end
937
1005
  end
938
1006
  end
939
1007
  end
@@ -421,6 +421,12 @@ module MetronomeSDK
421
421
  # @return [Symbol, MetronomeSDK::Models::ContractV2::Commit::RateType, nil]
422
422
  optional :rate_type, enum: -> { MetronomeSDK::ContractV2::Commit::RateType }
423
423
 
424
+ # @!attribute recurring_commit_id
425
+ # The ID of the recurring commit that created this commit
426
+ #
427
+ # @return [String, nil]
428
+ optional :recurring_commit_id, String
429
+
424
430
  # @!attribute rolled_over_from
425
431
  #
426
432
  # @return [MetronomeSDK::Models::ContractV2::Commit::RolledOverFrom, nil]
@@ -445,7 +451,13 @@ module MetronomeSDK
445
451
  # @return [Array<MetronomeSDK::Models::CommitSpecifier>, nil]
446
452
  optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifier] }
447
453
 
448
- # @!method initialize(id:, created_at:, product:, type:, access_schedule: nil, applicable_contract_ids: nil, applicable_product_ids: nil, applicable_product_tags: nil, archived_at: nil, balance: nil, contract: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, invoice_contract: nil, invoice_schedule: nil, ledger: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, rolled_over_from: nil, rollover_fraction: nil, salesforce_opportunity_id: nil, specifiers: nil)
454
+ # @!attribute subscription_config
455
+ # Attach a subscription to the recurring commit/credit.
456
+ #
457
+ # @return [MetronomeSDK::Models::RecurringCommitSubscriptionConfig, nil]
458
+ optional :subscription_config, -> { MetronomeSDK::RecurringCommitSubscriptionConfig }
459
+
460
+ # @!method initialize(id:, created_at:, product:, type:, access_schedule: nil, applicable_contract_ids: nil, applicable_product_ids: nil, applicable_product_tags: nil, archived_at: nil, balance: nil, contract: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, invoice_contract: nil, invoice_schedule: nil, ledger: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, recurring_commit_id: nil, rolled_over_from: nil, rollover_fraction: nil, salesforce_opportunity_id: nil, specifiers: nil, subscription_config: nil)
449
461
  # Some parameter documentations has been truncated, see
450
462
  # {MetronomeSDK::Models::ContractV2::Commit} for more details.
451
463
  #
@@ -491,6 +503,8 @@ module MetronomeSDK
491
503
  #
492
504
  # @param rate_type [Symbol, MetronomeSDK::Models::ContractV2::Commit::RateType]
493
505
  #
506
+ # @param recurring_commit_id [String] The ID of the recurring commit that created this commit
507
+ #
494
508
  # @param rolled_over_from [MetronomeSDK::Models::ContractV2::Commit::RolledOverFrom]
495
509
  #
496
510
  # @param rollover_fraction [Float]
@@ -498,6 +512,8 @@ module MetronomeSDK
498
512
  # @param salesforce_opportunity_id [String] This field's availability is dependent on your client's configuration.
499
513
  #
500
514
  # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifier>] List of filters that determine what kind of customer usage draws down a commit o
515
+ #
516
+ # @param subscription_config [MetronomeSDK::Models::RecurringCommitSubscriptionConfig] Attach a subscription to the recurring commit/credit.
501
517
 
502
518
  # @see MetronomeSDK::Models::ContractV2::Commit#product
503
519
  class Product < MetronomeSDK::Internal::Type::BaseModel
@@ -1646,6 +1662,15 @@ module MetronomeSDK
1646
1662
  # @return [MetronomeSDK::Models::ContractV2::Credit::Contract, nil]
1647
1663
  optional :contract, -> { MetronomeSDK::ContractV2::Credit::Contract }
1648
1664
 
1665
+ # @!attribute created_at
1666
+ # Timestamp of when the credit was created.
1667
+ #
1668
+ # - Recurring credits: latter of credit service period date and parent credit
1669
+ # start date
1670
+ #
1671
+ # @return [Time, nil]
1672
+ optional :created_at, Time
1673
+
1649
1674
  # @!attribute custom_fields
1650
1675
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
1651
1676
  #
@@ -1689,6 +1714,12 @@ module MetronomeSDK
1689
1714
  # @return [Float, nil]
1690
1715
  optional :priority, Float
1691
1716
 
1717
+ # @!attribute recurring_credit_id
1718
+ # The ID of the recurring credit that created this credit
1719
+ #
1720
+ # @return [String, nil]
1721
+ optional :recurring_credit_id, String
1722
+
1692
1723
  # @!attribute salesforce_opportunity_id
1693
1724
  # This field's availability is dependent on your client's configuration.
1694
1725
  #
@@ -1703,7 +1734,13 @@ module MetronomeSDK
1703
1734
  # @return [Array<MetronomeSDK::Models::CommitSpecifier>, nil]
1704
1735
  optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifier] }
1705
1736
 
1706
- # @!method initialize(id:, product:, type:, access_schedule: nil, applicable_contract_ids: nil, applicable_product_ids: nil, applicable_product_tags: nil, balance: nil, contract: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, ledger: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, salesforce_opportunity_id: nil, specifiers: nil)
1737
+ # @!attribute subscription_config
1738
+ # Attach a subscription to the recurring commit/credit.
1739
+ #
1740
+ # @return [MetronomeSDK::Models::RecurringCommitSubscriptionConfig, nil]
1741
+ optional :subscription_config, -> { MetronomeSDK::RecurringCommitSubscriptionConfig }
1742
+
1743
+ # @!method initialize(id:, product:, type:, access_schedule: nil, applicable_contract_ids: nil, applicable_product_ids: nil, applicable_product_tags: nil, balance: nil, contract: nil, created_at: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, ledger: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, recurring_credit_id: nil, salesforce_opportunity_id: nil, specifiers: nil, subscription_config: nil)
1707
1744
  # Some parameter documentations has been truncated, see
1708
1745
  # {MetronomeSDK::Models::ContractV2::Credit} for more details.
1709
1746
  #
@@ -1725,6 +1762,8 @@ module MetronomeSDK
1725
1762
  #
1726
1763
  # @param contract [MetronomeSDK::Models::ContractV2::Credit::Contract]
1727
1764
  #
1765
+ # @param created_at [Time] Timestamp of when the credit was created.
1766
+ #
1728
1767
  # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
1729
1768
  #
1730
1769
  # @param description [String]
@@ -1739,9 +1778,13 @@ module MetronomeSDK
1739
1778
  #
1740
1779
  # @param priority [Float] If multiple credits or commits are applicable, the one with the lower priority w
1741
1780
  #
1781
+ # @param recurring_credit_id [String] The ID of the recurring credit that created this credit
1782
+ #
1742
1783
  # @param salesforce_opportunity_id [String] This field's availability is dependent on your client's configuration.
1743
1784
  #
1744
1785
  # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifier>] List of filters that determine what kind of customer usage draws down a commit o
1786
+ #
1787
+ # @param subscription_config [MetronomeSDK::Models::RecurringCommitSubscriptionConfig] Attach a subscription to the recurring commit/credit.
1745
1788
 
1746
1789
  # @see MetronomeSDK::Models::ContractV2::Credit#product
1747
1790
  class Product < MetronomeSDK::Internal::Type::BaseModel
@@ -104,6 +104,13 @@ module MetronomeSDK
104
104
  # @return [Symbol, MetronomeSDK::Models::Credit::RateType, nil]
105
105
  optional :rate_type, enum: -> { MetronomeSDK::Credit::RateType }
106
106
 
107
+ # @!attribute recurring_credit_id
108
+ # The ID of the recurring credit that this credit was generated from, if
109
+ # applicable.
110
+ #
111
+ # @return [String, nil]
112
+ optional :recurring_credit_id, String
113
+
107
114
  # @!attribute salesforce_opportunity_id
108
115
  # This field's availability is dependent on your client's configuration.
109
116
  #
@@ -118,6 +125,13 @@ module MetronomeSDK
118
125
  # @return [Array<MetronomeSDK::Models::CommitSpecifier>, nil]
119
126
  optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifier] }
120
127
 
128
+ # @!attribute subscription_config
129
+ # The subscription configuration for this credit, if it was generated from a
130
+ # recurring credit with a subscription attached.
131
+ #
132
+ # @return [MetronomeSDK::Models::Credit::SubscriptionConfig, nil]
133
+ optional :subscription_config, -> { MetronomeSDK::Credit::SubscriptionConfig }
134
+
121
135
  # @!attribute uniqueness_key
122
136
  # Prevents the creation of duplicates. If a request to create a commit or credit
123
137
  # is made with a uniqueness key that was previously used to create a commit or
@@ -127,7 +141,7 @@ module MetronomeSDK
127
141
  # @return [String, nil]
128
142
  optional :uniqueness_key, String
129
143
 
130
- # @!method initialize(id:, product:, type:, access_schedule: nil, applicable_contract_ids: nil, applicable_product_ids: nil, applicable_product_tags: nil, balance: nil, contract: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, ledger: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, salesforce_opportunity_id: nil, specifiers: nil, uniqueness_key: nil)
144
+ # @!method initialize(id:, product:, type:, access_schedule: nil, applicable_contract_ids: nil, applicable_product_ids: nil, applicable_product_tags: nil, balance: nil, contract: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, ledger: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, recurring_credit_id: nil, salesforce_opportunity_id: nil, specifiers: nil, subscription_config: nil, uniqueness_key: nil)
131
145
  # Some parameter documentations has been truncated, see
132
146
  # {MetronomeSDK::Models::Credit} for more details.
133
147
  #
@@ -165,10 +179,14 @@ module MetronomeSDK
165
179
  #
166
180
  # @param rate_type [Symbol, MetronomeSDK::Models::Credit::RateType]
167
181
  #
182
+ # @param recurring_credit_id [String] The ID of the recurring credit that this credit was generated from, if applicabl
183
+ #
168
184
  # @param salesforce_opportunity_id [String] This field's availability is dependent on your client's configuration.
169
185
  #
170
186
  # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifier>] List of filters that determine what kind of customer usage draws down a commit o
171
187
  #
188
+ # @param subscription_config [MetronomeSDK::Models::Credit::SubscriptionConfig] The subscription configuration for this credit, if it was generated from a recur
189
+ #
172
190
  # @param uniqueness_key [String] Prevents the creation of duplicates. If a request to create a commit or credit i
173
191
 
174
192
  # @see MetronomeSDK::Models::Credit#product
@@ -543,6 +561,56 @@ module MetronomeSDK
543
561
  # @!method self.values
544
562
  # @return [Array<Symbol>]
545
563
  end
564
+
565
+ # @see MetronomeSDK::Models::Credit#subscription_config
566
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
567
+ # @!attribute allocation
568
+ #
569
+ # @return [Symbol, MetronomeSDK::Models::Credit::SubscriptionConfig::Allocation, nil]
570
+ optional :allocation, enum: -> { MetronomeSDK::Credit::SubscriptionConfig::Allocation }
571
+
572
+ # @!attribute apply_seat_increase_config
573
+ #
574
+ # @return [MetronomeSDK::Models::Credit::SubscriptionConfig::ApplySeatIncreaseConfig, nil]
575
+ optional :apply_seat_increase_config,
576
+ -> { MetronomeSDK::Credit::SubscriptionConfig::ApplySeatIncreaseConfig }
577
+
578
+ # @!attribute subscription_id
579
+ #
580
+ # @return [String, nil]
581
+ optional :subscription_id, String
582
+
583
+ # @!method initialize(allocation: nil, apply_seat_increase_config: nil, subscription_id: nil)
584
+ # The subscription configuration for this credit, if it was generated from a
585
+ # recurring credit with a subscription attached.
586
+ #
587
+ # @param allocation [Symbol, MetronomeSDK::Models::Credit::SubscriptionConfig::Allocation]
588
+ # @param apply_seat_increase_config [MetronomeSDK::Models::Credit::SubscriptionConfig::ApplySeatIncreaseConfig]
589
+ # @param subscription_id [String]
590
+
591
+ # @see MetronomeSDK::Models::Credit::SubscriptionConfig#allocation
592
+ module Allocation
593
+ extend MetronomeSDK::Internal::Type::Enum
594
+
595
+ INDIVIDUAL = :INDIVIDUAL
596
+ POOLED = :POOLED
597
+
598
+ # @!method self.values
599
+ # @return [Array<Symbol>]
600
+ end
601
+
602
+ # @see MetronomeSDK::Models::Credit::SubscriptionConfig#apply_seat_increase_config
603
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
604
+ # @!attribute is_prorated
605
+ # Indicates whether a mid-period seat increase should be prorated.
606
+ #
607
+ # @return [Boolean]
608
+ required :is_prorated, MetronomeSDK::Internal::Type::Boolean
609
+
610
+ # @!method initialize(is_prorated:)
611
+ # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
612
+ end
613
+ end
546
614
  end
547
615
  end
548
616
  end
@@ -53,15 +53,7 @@ module MetronomeSDK
53
53
  # @return [Array<MetronomeSDK::Models::Tier>, nil]
54
54
  optional :tiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Tier] }
55
55
 
56
- # @!attribute use_list_prices
57
- # Only set for PERCENTAGE rate_type. Defaults to false. If true, rate is computed
58
- # using list prices rather than the standard rates for this product on the
59
- # contract.
60
- #
61
- # @return [Boolean, nil]
62
- optional :use_list_prices, MetronomeSDK::Internal::Type::Boolean
63
-
64
- # @!method initialize(rate_type:, credit_type: nil, custom_rate: nil, is_prorated: nil, price: nil, pricing_group_values: nil, quantity: nil, tiers: nil, use_list_prices: nil)
56
+ # @!method initialize(rate_type:, credit_type: nil, custom_rate: nil, is_prorated: nil, price: nil, pricing_group_values: nil, quantity: nil, tiers: nil)
65
57
  # Some parameter documentations has been truncated, see
66
58
  # {MetronomeSDK::Models::Rate} for more details.
67
59
  #
@@ -80,8 +72,6 @@ module MetronomeSDK
80
72
  # @param quantity [Float] Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
81
73
  #
82
74
  # @param tiers [Array<MetronomeSDK::Models::Tier>] Only set for TIERED rate_type.
83
- #
84
- # @param use_list_prices [Boolean] Only set for PERCENTAGE rate_type. Defaults to false. If true, rate is computed
85
75
 
86
76
  # @see MetronomeSDK::Models::Rate#rate_type
87
77
  module RateType
@@ -24,8 +24,8 @@ module MetronomeSDK
24
24
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
25
25
  # directly on the subscription. `initial_quantity` must be provided with this
26
26
  # option. Compatible with recurring commits/credits that use POOLED allocation.
27
- # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
28
- # add user_123) to increment and decrement a subscription quantity, rather than
27
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
28
+ # user_123) to increment and decrement a subscription quantity, rather than
29
29
  # directly providing the quantity. You must use a **SEAT_BASED** subscription to
30
30
  # use a linked recurring credit with an allocation per seat. `seat_config` must be
31
31
  # provided with this option.
@@ -82,7 +82,12 @@ module MetronomeSDK
82
82
  # @return [String, nil]
83
83
  optional :name, String
84
84
 
85
- # @!method initialize(billing_periods:, collection_schedule:, proration:, quantity_management_mode:, quantity_schedule:, starting_at:, subscription_rate:, id: nil, custom_fields: nil, description: nil, ending_before: nil, fiat_credit_type_id: nil, name: nil)
85
+ # @!attribute seat_config
86
+ #
87
+ # @return [MetronomeSDK::Models::Subscription::SeatConfig, nil]
88
+ optional :seat_config, -> { MetronomeSDK::Subscription::SeatConfig }
89
+
90
+ # @!method initialize(billing_periods:, collection_schedule:, proration:, quantity_management_mode:, quantity_schedule:, starting_at:, subscription_rate:, id: nil, custom_fields: nil, description: nil, ending_before: nil, fiat_credit_type_id: nil, name: nil, seat_config: nil)
86
91
  # Some parameter documentations has been truncated, see
87
92
  # {MetronomeSDK::Models::Subscription} for more details.
88
93
  #
@@ -111,6 +116,8 @@ module MetronomeSDK
111
116
  # @param fiat_credit_type_id [String]
112
117
  #
113
118
  # @param name [String]
119
+ #
120
+ # @param seat_config [MetronomeSDK::Models::Subscription::SeatConfig]
114
121
 
115
122
  # @see MetronomeSDK::Models::Subscription#billing_periods
116
123
  class BillingPeriods < MetronomeSDK::Internal::Type::BaseModel
@@ -231,8 +238,8 @@ module MetronomeSDK
231
238
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
232
239
  # directly on the subscription. `initial_quantity` must be provided with this
233
240
  # option. Compatible with recurring commits/credits that use POOLED allocation.
234
- # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
235
- # add user_123) to increment and decrement a subscription quantity, rather than
241
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
242
+ # user_123) to increment and decrement a subscription quantity, rather than
236
243
  # directly providing the quantity. You must use a **SEAT_BASED** subscription to
237
244
  # use a linked recurring credit with an allocation per seat. `seat_config` must be
238
245
  # provided with this option.
@@ -316,6 +323,26 @@ module MetronomeSDK
316
323
  # @param name [String]
317
324
  end
318
325
  end
326
+
327
+ # @see MetronomeSDK::Models::Subscription#seat_config
328
+ class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
329
+ # @!attribute seat_group_key
330
+ # The property name, sent on usage events, that identifies the seat ID associated
331
+ # with the usage event. For example, the property name might be seat_id or
332
+ # user_id. The property must be set as a group key on billable metrics and a
333
+ # presentation/pricing group key on contract products. This allows linked
334
+ # recurring credits with an allocation per seat to be consumed by only one seat's
335
+ # usage.
336
+ #
337
+ # @return [String]
338
+ required :seat_group_key, String
339
+
340
+ # @!method initialize(seat_group_key:)
341
+ # Some parameter documentations has been truncated, see
342
+ # {MetronomeSDK::Models::Subscription::SeatConfig} for more details.
343
+ #
344
+ # @param seat_group_key [String] The property name, sent on usage events, that identifies the seat ID associated
345
+ end
319
346
  end
320
347
  end
321
348
  end