metronome-sdk 3.6.0 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +54 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +4 -1
  5. data/lib/metronome_sdk/internal/type/enum.rb +0 -25
  6. data/lib/metronome_sdk/models/commit.rb +36 -1
  7. data/lib/metronome_sdk/models/contract.rb +140 -1
  8. data/lib/metronome_sdk/models/contract_v2.rb +457 -8
  9. data/lib/metronome_sdk/models/contract_without_amendments.rb +320 -5
  10. data/lib/metronome_sdk/models/credit.rb +10 -1
  11. data/lib/metronome_sdk/models/override.rb +7 -1
  12. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +113 -2
  13. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +105 -2
  14. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +33 -1
  15. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +33 -1
  16. data/lib/metronome_sdk/models/subscription.rb +90 -2
  17. data/lib/metronome_sdk/models/v1/alert_create_params.rb +127 -1
  18. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +46 -5
  19. data/lib/metronome_sdk/models/v1/contract_create_params.rb +436 -12
  20. data/lib/metronome_sdk/models/v1/contract_create_response.rb +1308 -3
  21. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rb +88 -0
  22. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rb +62 -0
  23. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +10 -1
  24. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +127 -1
  25. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +130 -3
  26. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +10 -1
  27. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  28. data/lib/metronome_sdk/models/v1/package_create_params.rb +394 -11
  29. data/lib/metronome_sdk/models/v1/package_list_response.rb +374 -8
  30. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +378 -8
  31. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +817 -13
  32. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +4310 -3
  33. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +600 -10
  34. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  35. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +4 -0
  36. data/lib/metronome_sdk/resources/v1/contracts.rb +71 -2
  37. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +4 -2
  38. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +3 -1
  39. data/lib/metronome_sdk/resources/v1/dashboards.rb +7 -2
  40. data/lib/metronome_sdk/resources/v1/packages.rb +6 -5
  41. data/lib/metronome_sdk/resources/v1.rb +0 -4
  42. data/lib/metronome_sdk/resources/v2/contracts.rb +5 -1
  43. data/lib/metronome_sdk/version.rb +1 -1
  44. data/lib/metronome_sdk.rb +2 -8
  45. data/rbi/metronome_sdk/models/commit.rbi +61 -0
  46. data/rbi/metronome_sdk/models/contract.rbi +354 -0
  47. data/rbi/metronome_sdk/models/contract_v2.rbi +1132 -11
  48. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +831 -0
  49. data/rbi/metronome_sdk/models/credit.rbi +13 -0
  50. data/rbi/metronome_sdk/models/override.rbi +9 -0
  51. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +299 -6
  52. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +287 -6
  53. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +78 -3
  54. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -3
  55. data/rbi/metronome_sdk/models/subscription.rbi +212 -3
  56. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +373 -0
  57. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +81 -6
  58. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1095 -17
  59. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +2911 -4
  60. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbi +112 -0
  61. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbi +119 -0
  62. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +13 -0
  63. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +360 -0
  64. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +379 -2
  65. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +13 -0
  66. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  67. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +1049 -42
  68. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +1051 -54
  69. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +1051 -54
  70. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +2130 -114
  71. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +9749 -4
  72. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1567 -82
  73. data/rbi/metronome_sdk/resources/v1/alerts.rbi +8 -0
  74. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +4 -0
  75. data/rbi/metronome_sdk/resources/v1/contracts.rbi +77 -0
  76. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +8 -1
  77. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +4 -0
  78. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +7 -2
  79. data/rbi/metronome_sdk/resources/v1/packages.rbi +8 -4
  80. data/rbi/metronome_sdk/resources/v1.rbi +0 -3
  81. data/rbi/metronome_sdk/resources/v2/contracts.rbi +10 -0
  82. data/sig/metronome_sdk/models/commit.rbs +26 -0
  83. data/sig/metronome_sdk/models/contract.rbs +151 -0
  84. data/sig/metronome_sdk/models/contract_v2.rbs +448 -5
  85. data/sig/metronome_sdk/models/contract_without_amendments.rbs +320 -2
  86. data/sig/metronome_sdk/models/credit.rbs +7 -0
  87. data/sig/metronome_sdk/models/override.rbs +7 -0
  88. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +116 -6
  89. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +116 -6
  90. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +31 -3
  91. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +31 -3
  92. data/sig/metronome_sdk/models/subscription.rbs +88 -3
  93. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +144 -0
  94. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +26 -0
  95. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +412 -5
  96. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +1210 -4
  97. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbs +63 -0
  98. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbs +59 -0
  99. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +7 -0
  100. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +141 -0
  101. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +150 -0
  102. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +8 -1
  103. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  104. data/sig/metronome_sdk/models/v1/package_create_params.rbs +386 -5
  105. data/sig/metronome_sdk/models/v1/package_list_response.rbs +380 -5
  106. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +378 -5
  107. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +751 -14
  108. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +4215 -4
  109. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +569 -14
  110. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  111. data/sig/metronome_sdk/resources/v1/contracts.rbs +14 -0
  112. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  113. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -0
  114. data/sig/metronome_sdk/resources/v1/packages.rbs +1 -0
  115. data/sig/metronome_sdk/resources/v1.rbs +0 -2
  116. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  117. metadata +8 -26
  118. data/lib/metronome_sdk/models/v1/payment.rb +0 -196
  119. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +0 -28
  120. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +0 -18
  121. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +0 -28
  122. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +0 -18
  123. data/lib/metronome_sdk/models/v1/payment_list_params.rb +0 -53
  124. data/lib/metronome_sdk/models/v1/payment_status.rb +0 -19
  125. data/lib/metronome_sdk/resources/v1/payments.rb +0 -102
  126. data/rbi/metronome_sdk/models/v1/payment.rbi +0 -403
  127. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +0 -48
  128. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +0 -35
  129. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +0 -48
  130. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +0 -35
  131. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +0 -91
  132. data/rbi/metronome_sdk/models/v1/payment_status.rbi +0 -33
  133. data/rbi/metronome_sdk/resources/v1/payments.rbi +0 -72
  134. data/sig/metronome_sdk/models/v1/payment.rbs +0 -243
  135. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +0 -30
  136. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +0 -15
  137. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +0 -30
  138. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +0 -15
  139. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +0 -56
  140. data/sig/metronome_sdk/models/v1/payment_status.rbs +0 -19
  141. data/sig/metronome_sdk/resources/v1/payments.rbs +0 -30
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d4d5355d04639b7153cfe94271378797fceaff008c386c001c6450f66674a584
4
- data.tar.gz: 25c993147e97e4acead3048b17b7328e67b4e95274bef1893723bf806ddd9bec
3
+ metadata.gz: 97f31a567a1ed13359a6db7517a0a31b47f7ab157d92e417fdfb60050869737a
4
+ data.tar.gz: b17e2f57bd7d2db609f95f5dcf5b165d6e050dd05eb717bab10148b450b19bb0
5
5
  SHA512:
6
- metadata.gz: 653c76e15fba1881dcc6e344161a61f7c0c061aba2603bdb26a3f489986c23e31d1fe77bb2134070f53333efe9efa5d37b73f206abb30b4cba33eb05f967c771
7
- data.tar.gz: 3d6505e8bd6767e3873ba2d70c28bc93eac7280ae2ca126eba43a18eca5e4a113704574909e5c0a26f503204675bc407582190dd9d1f20afa91ecc98cc30def0
6
+ metadata.gz: 771169e3edf3cbd87d0ce517fa9999c1303af4ad003ad278c58ad7239545f7157224e52646b1db43fc7b17db0af0d038cdda41d66bc6115038cb39ba48123843
7
+ data.tar.gz: 8b0180525f48ed9bf872de4bf2f29c6b504f20eef0dd1acc013d526115dfb34b3839dca5c0e20d0a8ec2248ea6968678b919a2881c7ab801b637eb72f2abd17f
data/CHANGELOG.md CHANGED
@@ -1,5 +1,59 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.8.0 (2026-06-29)
4
+
5
+ Full Changelog: [v3.7.0...v3.8.0](https://github.com/Metronome-Industries/metronome-ruby/compare/v3.7.0...v3.8.0)
6
+
7
+ ### Features
8
+
9
+ * [🪿] Remove `allow-subscriptions-custom-billing-anchor` feature flag ([4a67399](https://github.com/Metronome-Industries/metronome-ruby/commit/4a673991f9369fe744bc3a5a2f854c14c9b497ac))
10
+ * Add `Action` and `Action_hover` theme color options to embeddable dashboard ([ad6641d](https://github.com/Metronome-Industries/metronome-ruby/commit/ad6641d4ff8118e8acc920c143adb6e57bfd4201))
11
+ * Add alert specifiers to for `low_remaining_contract_credit_and_commit_balance_reached` threshold notification creation payload ([8dccadf](https://github.com/Metronome-Industries/metronome-ruby/commit/8dccadf1cc4077759e004a8802cb603971b6f978))
12
+ * Add any_commit_and_credit_ids to override specifier fields ([797cfca](https://github.com/Metronome-Industries/metronome-ruby/commit/797cfca1e8f5179b99887b99ccbf8391366cdb74))
13
+ * add getSubscriptionSeatsHistory to Node SDK ([d288a2a](https://github.com/Metronome-Industries/metronome-ruby/commit/d288a2a109b6f0d6e0c45cdd4d3a8ab64ec9732c))
14
+ * Add notification_metadata to four API endpoints (Anthropic-only) ([fb4e252](https://github.com/Metronome-Industries/metronome-ruby/commit/fb4e252118ebc3ce523e12074af87a90dadf712a))
15
+ * added created by to commits ([a11cb6f](https://github.com/Metronome-Industries/metronome-ruby/commit/a11cb6fe06264f5d348818e77c8b1b1bb560b339))
16
+ * **CONN-980:** add contract_id, invoice_type, show_unbillable_invoices to embeddable dashboard API ([cccf877](https://github.com/Metronome-Industries/metronome-ruby/commit/cccf877456c646c28569fbf9e4e86cec7b32faf6))
17
+ * createdBy description specifies excluding system created commits ([d492e50](https://github.com/Metronome-Industries/metronome-ruby/commit/d492e5019a404dd6cfd0606a7fa959e45e79d42c))
18
+ * daily recurrence frequency for recurring commits ([b143c69](https://github.com/Metronome-Industries/metronome-ruby/commit/b143c690a98329e91830210aebb56d9fd910b8d3))
19
+ * Docs: Update v1.yml ([2b13cb9](https://github.com/Metronome-Industries/metronome-ruby/commit/2b13cb9e673f4af7a8413c581e8b0722f98905c2))
20
+ * Revert "[pgs] Remove `allow-subscriptions-custom-billing-anchor` and proration rounding feature flags" ([804fc62](https://github.com/Metronome-Industries/metronome-ruby/commit/804fc62384bd67a65e9f022349d8af18e7faf3e8))
21
+ * Revert "Revert "[pgs] Remove `allow-subscriptions-custom-billing-anchor` and proration rounding feature flags"" ([b5532d9](https://github.com/Metronome-Industries/metronome-ruby/commit/b5532d9ec1866c08629b7f7616bdb7eb12a2f541))
22
+ * skip seat IDs from balances ([242fa91](https://github.com/Metronome-Industries/metronome-ruby/commit/242fa91291d812744c214497ee2f87e03c20e048))
23
+ * Update copy ([911d292](https://github.com/Metronome-Industries/metronome-ruby/commit/911d2924cef101ec49077fe8a859e7b9a9d3f083))
24
+
25
+
26
+ ### Bug Fixes
27
+
28
+ * **client:** send content-type header for requests with an omitted optional body ([4d4e05a](https://github.com/Metronome-Industries/metronome-ruby/commit/4d4e05aa6c499bc6f51e60d134225cccc49767d0))
29
+
30
+
31
+ ### Chores
32
+
33
+ * (internal) Add description for threshold balance specifiers fields ([bbc523a](https://github.com/Metronome-Industries/metronome-ruby/commit/bbc523aae016d1a9d907bdae0a656164ffd242de))
34
+ * **internal:** bound formatter parallelism to CPU count ([b497f47](https://github.com/Metronome-Industries/metronome-ruby/commit/b497f478f4d039c50d4cf2366bd2d492d0489002))
35
+
36
+
37
+ ### Documentation
38
+
39
+ * add RPS limit and batch recommendation to addRate endpoint ([aad17f7](https://github.com/Metronome-Industries/metronome-ruby/commit/aad17f7960f3caad7db5c4e4d3d78e1308b92676))
40
+
41
+ ## 3.7.0 (2026-05-29)
42
+
43
+ Full Changelog: [v3.6.0...v3.7.0](https://github.com/Metronome-Industries/metronome-ruby/compare/v3.6.0...v3.7.0)
44
+
45
+ ### Features
46
+
47
+ * [LAUNCH-2814] editContract returns full edit in the response ([fd684bc](https://github.com/Metronome-Industries/metronome-ruby/commit/fd684bc491dc2083911a144ba0a455385eaf315d))
48
+ * [orch-1860] remove all deprecated `/payments/*` endpoints from API ([1c6cdb1](https://github.com/Metronome-Industries/metronome-ruby/commit/1c6cdb1d7629e6a29adc78a1dbd460eebbbab08b))
49
+ * create contract returns contract data ([16469e5](https://github.com/Metronome-Industries/metronome-ruby/commit/16469e57c6563dd35b5b2f3cf05893a69ec7d406))
50
+ * nikku-orch-1723-update-create-contract ([a5de974](https://github.com/Metronome-Industries/metronome-ruby/commit/a5de9740f141a211e0435fff858ceca62d2b5359))
51
+
52
+
53
+ ### Chores
54
+
55
+ * (internal) Add threshold balance specifier to contract create & edit, package create and both contract and package retrievals ([eb1049d](https://github.com/Metronome-Industries/metronome-ruby/commit/eb1049d2826865a29710c274e13cc311005a0e91))
56
+
3
57
  ## 3.6.0 (2026-05-18)
4
58
 
5
59
  Full Changelog: [v3.5.0...v3.6.0](https://github.com/Metronome-Industries/metronome-ruby/compare/v3.5.0...v3.6.0)
data/README.md CHANGED
@@ -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.6.0"
29
+ gem "metronome-sdk", "~> 3.8.0"
30
30
  ```
31
31
 
32
32
  <!-- x-release-please-end -->
@@ -306,7 +306,10 @@ module MetronomeSDK
306
306
  MetronomeSDK::Internal::Util.deep_merge(*[req[:body], opts[:extra_body]].compact)
307
307
  end
308
308
 
309
- headers.delete("content-type") if body.nil?
309
+ # Generated methods always pass `req[:body]` for operations that define a
310
+ # request body, so only elide the content-type header when the operation
311
+ # has no body at all, not when an optional body param was omitted.
312
+ headers.delete("content-type") if body.nil? && !req.key?(:body)
310
313
 
311
314
  url = MetronomeSDK::Internal::Util.join_parsed_uri(
312
315
  @base_url_components,
@@ -15,31 +15,6 @@ module MetronomeSDK
15
15
  #
16
16
  # We can therefore convert string values to Symbols, but can't convert other
17
17
  # values safely.
18
- #
19
- # @example
20
- # # `payment_status` is a `MetronomeSDK::V1::PaymentStatus`
21
- # case payment_status
22
- # when MetronomeSDK::V1::PaymentStatus::PENDING
23
- # # ...
24
- # when MetronomeSDK::V1::PaymentStatus::REQUIRES_INTERVENTION
25
- # # ...
26
- # when MetronomeSDK::V1::PaymentStatus::PAID
27
- # # ...
28
- # else
29
- # puts(payment_status)
30
- # end
31
- #
32
- # @example
33
- # case payment_status
34
- # in :pending
35
- # # ...
36
- # in :requires_intervention
37
- # # ...
38
- # in :paid
39
- # # ...
40
- # else
41
- # puts(payment_status)
42
- # end
43
18
  module Enum
44
19
  include MetronomeSDK::Internal::Type::Converter
45
20
  include MetronomeSDK::Internal::Util::SorbetRuntimeSupport
@@ -81,6 +81,13 @@ module MetronomeSDK
81
81
  # @return [MetronomeSDK::Models::Commit::Contract, nil]
82
82
  optional :contract, -> { MetronomeSDK::Commit::Contract }
83
83
 
84
+ # @!attribute created_by
85
+ # The actor who created this commit. Omitted for system-generated commits such as
86
+ # recurring commits, rollover commits, and threshold commits.
87
+ #
88
+ # @return [String, nil]
89
+ optional :created_by, String
90
+
84
91
  # @!attribute custom_fields
85
92
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
86
93
  #
@@ -171,6 +178,12 @@ module MetronomeSDK
171
178
  # @return [Array<MetronomeSDK::Models::CommitSpecifier>, nil]
172
179
  optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifier] }
173
180
 
181
+ # @!attribute spend_tracker_attributes
182
+ # Optional attributes controlling how this commit interacts with spend trackers.
183
+ #
184
+ # @return [MetronomeSDK::Models::Commit::SpendTrackerAttributes, nil]
185
+ optional :spend_tracker_attributes, -> { MetronomeSDK::Commit::SpendTrackerAttributes }
186
+
174
187
  # @!attribute subscription_config
175
188
  # The subscription configuration for this commit, if it was generated from a
176
189
  # recurring commit with a subscription attached.
@@ -187,7 +200,7 @@ module MetronomeSDK
187
200
  # @return [String, nil]
188
201
  optional :uniqueness_key, String
189
202
 
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)
203
+ # @!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, created_by: 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, spend_tracker_attributes: nil, subscription_config: nil, uniqueness_key: nil)
191
204
  # Some parameter documentations has been truncated, see
192
205
  # {MetronomeSDK::Models::Commit} for more details.
193
206
  #
@@ -215,6 +228,8 @@ module MetronomeSDK
215
228
  #
216
229
  # @param contract [MetronomeSDK::Models::Commit::Contract]
217
230
  #
231
+ # @param created_by [String] The actor who created this commit. Omitted for system-generated commits such as
232
+ #
218
233
  # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
219
234
  #
220
235
  # @param description [String]
@@ -245,6 +260,8 @@ module MetronomeSDK
245
260
  #
246
261
  # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifier>] List of filters that determine what kind of customer usage draws down a commit o
247
262
  #
263
+ # @param spend_tracker_attributes [MetronomeSDK::Models::Commit::SpendTrackerAttributes] Optional attributes controlling how this commit interacts with spend trackers.
264
+ #
248
265
  # @param subscription_config [MetronomeSDK::Models::Commit::SubscriptionConfig] The subscription configuration for this commit, if it was generated from a recur
249
266
  #
250
267
  # @param uniqueness_key [String] Prevents the creation of duplicates. If a request to create a commit or credit i
@@ -953,6 +970,24 @@ module MetronomeSDK
953
970
  # @param contract_id [String]
954
971
  end
955
972
 
973
+ # @see MetronomeSDK::Models::Commit#spend_tracker_attributes
974
+ class SpendTrackerAttributes < MetronomeSDK::Internal::Type::BaseModel
975
+ # @!attribute counts_as_discounted
976
+ # If true, this commit is included in spend trackers with discounted set to
977
+ # DISCOUNTED_ONLY
978
+ #
979
+ # @return [Boolean]
980
+ required :counts_as_discounted, MetronomeSDK::Internal::Type::Boolean
981
+
982
+ # @!method initialize(counts_as_discounted:)
983
+ # Some parameter documentations has been truncated, see
984
+ # {MetronomeSDK::Models::Commit::SpendTrackerAttributes} for more details.
985
+ #
986
+ # Optional attributes controlling how this commit interacts with spend trackers.
987
+ #
988
+ # @param counts_as_discounted [Boolean] If true, this commit is included in spend trackers with discounted set to DISCOU
989
+ end
990
+
956
991
  # @see MetronomeSDK::Models::Commit#subscription_config
957
992
  class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
958
993
  # @!attribute allocation
@@ -76,6 +76,13 @@ module MetronomeSDK
76
76
  # @return [MetronomeSDK::Models::SpendThresholdConfiguration, nil]
77
77
  optional :spend_threshold_configuration, -> { MetronomeSDK::SpendThresholdConfiguration }
78
78
 
79
+ # @!attribute spend_trackers
80
+ # Spend trackers attached to this contract.
81
+ #
82
+ # @return [Array<MetronomeSDK::Models::Contract::SpendTracker>, nil]
83
+ optional :spend_trackers,
84
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Contract::SpendTracker] }
85
+
79
86
  # @!attribute subscriptions
80
87
  # List of subscriptions on the contract.
81
88
  #
@@ -90,7 +97,7 @@ module MetronomeSDK
90
97
  # @return [String, nil]
91
98
  optional :uniqueness_key, String
92
99
 
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)
100
+ # @!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, spend_trackers: nil, subscriptions: nil, uniqueness_key: nil)
94
101
  # Some parameter documentations has been truncated, see
95
102
  # {MetronomeSDK::Models::Contract} for more details.
96
103
  #
@@ -118,6 +125,8 @@ module MetronomeSDK
118
125
  #
119
126
  # @param spend_threshold_configuration [MetronomeSDK::Models::SpendThresholdConfiguration]
120
127
  #
128
+ # @param spend_trackers [Array<MetronomeSDK::Models::Contract::SpendTracker>] Spend trackers attached to this contract.
129
+ #
121
130
  # @param subscriptions [Array<MetronomeSDK::Models::Subscription>] List of subscriptions on the contract.
122
131
  #
123
132
  # @param uniqueness_key [String] Prevents the creation of duplicates. If a request to create a record is made wit
@@ -400,6 +409,136 @@ module MetronomeSDK
400
409
  # @!method self.values
401
410
  # @return [Array<Symbol>]
402
411
  end
412
+
413
+ class SpendTracker < MetronomeSDK::Internal::Type::BaseModel
414
+ # @!attribute alias_
415
+ # Human-readable identifier, unique per contract.
416
+ #
417
+ # @return [String]
418
+ required :alias_, String, api_name: :alias
419
+
420
+ # @!attribute applicable_spend_specifiers
421
+ #
422
+ # @return [Array<MetronomeSDK::Models::Contract::SpendTracker::ApplicableSpendSpecifier>]
423
+ required :applicable_spend_specifiers,
424
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Contract::SpendTracker::ApplicableSpendSpecifier] }
425
+
426
+ # @!attribute credit_type_id
427
+ #
428
+ # @return [String]
429
+ required :credit_type_id, String
430
+
431
+ # @!attribute reset_frequency
432
+ #
433
+ # @return [Symbol, MetronomeSDK::Models::Contract::SpendTracker::ResetFrequency]
434
+ required :reset_frequency, enum: -> { MetronomeSDK::Contract::SpendTracker::ResetFrequency }
435
+
436
+ # @!attribute accumulated_spend
437
+ #
438
+ # @return [MetronomeSDK::Models::Contract::SpendTracker::AccumulatedSpend, nil]
439
+ optional :accumulated_spend, -> { MetronomeSDK::Contract::SpendTracker::AccumulatedSpend }
440
+
441
+ # @!method initialize(alias_:, applicable_spend_specifiers:, credit_type_id:, reset_frequency:, accumulated_spend: nil)
442
+ # @param alias_ [String] Human-readable identifier, unique per contract.
443
+ #
444
+ # @param applicable_spend_specifiers [Array<MetronomeSDK::Models::Contract::SpendTracker::ApplicableSpendSpecifier>]
445
+ #
446
+ # @param credit_type_id [String]
447
+ #
448
+ # @param reset_frequency [Symbol, MetronomeSDK::Models::Contract::SpendTracker::ResetFrequency]
449
+ #
450
+ # @param accumulated_spend [MetronomeSDK::Models::Contract::SpendTracker::AccumulatedSpend]
451
+
452
+ class ApplicableSpendSpecifier < MetronomeSDK::Internal::Type::BaseModel
453
+ # @!attribute sources
454
+ #
455
+ # @return [Array<Symbol, MetronomeSDK::Models::Contract::SpendTracker::ApplicableSpendSpecifier::Source>]
456
+ required :sources,
457
+ -> { MetronomeSDK::Internal::Type::ArrayOf[enum: MetronomeSDK::Contract::SpendTracker::ApplicableSpendSpecifier::Source] }
458
+
459
+ # @!attribute spend_type
460
+ #
461
+ # @return [Symbol, MetronomeSDK::Models::Contract::SpendTracker::ApplicableSpendSpecifier::SpendType]
462
+ required :spend_type,
463
+ enum: -> { MetronomeSDK::Contract::SpendTracker::ApplicableSpendSpecifier::SpendType }
464
+
465
+ # @!attribute discounted
466
+ #
467
+ # @return [Symbol, MetronomeSDK::Models::Contract::SpendTracker::ApplicableSpendSpecifier::Discounted, nil]
468
+ optional :discounted,
469
+ enum: -> { MetronomeSDK::Contract::SpendTracker::ApplicableSpendSpecifier::Discounted }
470
+
471
+ # @!method initialize(sources:, spend_type:, discounted: nil)
472
+ # @param sources [Array<Symbol, MetronomeSDK::Models::Contract::SpendTracker::ApplicableSpendSpecifier::Source>]
473
+ # @param spend_type [Symbol, MetronomeSDK::Models::Contract::SpendTracker::ApplicableSpendSpecifier::SpendType]
474
+ # @param discounted [Symbol, MetronomeSDK::Models::Contract::SpendTracker::ApplicableSpendSpecifier::Discounted]
475
+
476
+ module Source
477
+ extend MetronomeSDK::Internal::Type::Enum
478
+
479
+ THRESHOLD_RECHARGE = :THRESHOLD_RECHARGE
480
+ MANUAL = :MANUAL
481
+
482
+ # @!method self.values
483
+ # @return [Array<Symbol>]
484
+ end
485
+
486
+ # @see MetronomeSDK::Models::Contract::SpendTracker::ApplicableSpendSpecifier#spend_type
487
+ module SpendType
488
+ extend MetronomeSDK::Internal::Type::Enum
489
+
490
+ COMMIT_PURCHASE = :COMMIT_PURCHASE
491
+
492
+ # @!method self.values
493
+ # @return [Array<Symbol>]
494
+ end
495
+
496
+ # @see MetronomeSDK::Models::Contract::SpendTracker::ApplicableSpendSpecifier#discounted
497
+ module Discounted
498
+ extend MetronomeSDK::Internal::Type::Enum
499
+
500
+ ANY = :ANY
501
+ DISCOUNTED_ONLY = :DISCOUNTED_ONLY
502
+ UNDISCOUNTED_ONLY = :UNDISCOUNTED_ONLY
503
+
504
+ # @!method self.values
505
+ # @return [Array<Symbol>]
506
+ end
507
+ end
508
+
509
+ # @see MetronomeSDK::Models::Contract::SpendTracker#reset_frequency
510
+ module ResetFrequency
511
+ extend MetronomeSDK::Internal::Type::Enum
512
+
513
+ BILLING_PERIOD = :BILLING_PERIOD
514
+
515
+ # @!method self.values
516
+ # @return [Array<Symbol>]
517
+ end
518
+
519
+ # @see MetronomeSDK::Models::Contract::SpendTracker#accumulated_spend
520
+ class AccumulatedSpend < MetronomeSDK::Internal::Type::BaseModel
521
+ # @!attribute amount
522
+ #
523
+ # @return [Float]
524
+ required :amount, Float
525
+
526
+ # @!attribute period_ending_before
527
+ #
528
+ # @return [Time]
529
+ required :period_ending_before, Time
530
+
531
+ # @!attribute period_starting_at
532
+ #
533
+ # @return [Time]
534
+ required :period_starting_at, Time
535
+
536
+ # @!method initialize(amount:, period_ending_before:, period_starting_at:)
537
+ # @param amount [Float]
538
+ # @param period_ending_before [Time]
539
+ # @param period_starting_at [Time]
540
+ end
541
+ end
403
542
  end
404
543
  end
405
544
  end