metronome-sdk 0.3.0 → 2.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 (363) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +91 -0
  3. data/README.md +9 -9
  4. data/lib/metronome_sdk/errors.rb +25 -11
  5. data/lib/metronome_sdk/file_part.rb +10 -7
  6. data/lib/metronome_sdk/internal/body_cursor_page.rb +86 -0
  7. data/lib/metronome_sdk/internal/cursor_page.rb +1 -1
  8. data/lib/metronome_sdk/internal/cursor_page_without_limit.rb +86 -0
  9. data/lib/metronome_sdk/internal/transport/base_client.rb +12 -11
  10. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +8 -19
  11. data/lib/metronome_sdk/internal/type/base_model.rb +6 -13
  12. data/lib/metronome_sdk/internal/type/base_page.rb +1 -1
  13. data/lib/metronome_sdk/internal/type/enum.rb +25 -0
  14. data/lib/metronome_sdk/internal/type/file_input.rb +7 -4
  15. data/lib/metronome_sdk/internal/type/union.rb +11 -0
  16. data/lib/metronome_sdk/internal/util.rb +9 -8
  17. data/lib/metronome_sdk/models/base_threshold_commit.rb +36 -0
  18. data/lib/metronome_sdk/models/commit.rb +26 -170
  19. data/lib/metronome_sdk/models/commit_hierarchy_configuration.rb +98 -0
  20. data/lib/metronome_sdk/models/commit_rate.rb +48 -0
  21. data/lib/metronome_sdk/models/commit_specifier.rb +42 -0
  22. data/lib/metronome_sdk/models/commit_specifier_input.rb +42 -0
  23. data/lib/metronome_sdk/models/contract.rb +404 -0
  24. data/lib/metronome_sdk/models/contract_v2.rb +3169 -0
  25. data/lib/metronome_sdk/models/contract_without_amendments.rb +38 -1128
  26. data/lib/metronome_sdk/models/credit.rb +9 -156
  27. data/lib/metronome_sdk/models/discount.rb +2 -1
  28. data/lib/metronome_sdk/models/hierarchy_configuration.rb +173 -0
  29. data/lib/metronome_sdk/models/override.rb +6 -101
  30. data/lib/metronome_sdk/models/override_tier.rb +21 -0
  31. data/lib/metronome_sdk/models/overwrite_rate.rb +82 -0
  32. data/lib/metronome_sdk/models/payment_gate_config.rb +150 -0
  33. data/lib/metronome_sdk/models/payment_gate_config_v2.rb +150 -0
  34. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +100 -0
  35. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +102 -0
  36. data/lib/metronome_sdk/models/pro_service.rb +2 -1
  37. data/lib/metronome_sdk/models/recurring_commit_subscription_config.rb +51 -0
  38. data/lib/metronome_sdk/models/scheduled_charge.rb +2 -1
  39. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +44 -0
  40. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +44 -0
  41. data/lib/metronome_sdk/models/subscription.rb +311 -0
  42. data/lib/metronome_sdk/models/update_base_threshold_commit.rb +36 -0
  43. data/lib/metronome_sdk/models/v1/alert_archive_params.rb +8 -4
  44. data/lib/metronome_sdk/models/v1/alert_create_params.rb +42 -42
  45. data/lib/metronome_sdk/models/v1/billable_metric_create_params.rb +1 -2
  46. data/lib/metronome_sdk/models/v1/billable_metric_list_response.rb +3 -3
  47. data/lib/metronome_sdk/models/v1/billable_metric_retrieve_response.rb +4 -7
  48. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +58 -411
  49. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_params.rb +7 -16
  50. data/lib/metronome_sdk/models/v1/contract_create_params.rb +315 -1459
  51. data/lib/metronome_sdk/models/v1/contract_list_balances_response.rb +6 -23
  52. data/lib/metronome_sdk/models/v1/contract_list_response.rb +3 -1153
  53. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rb +2 -6
  54. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rb +5 -50
  55. data/lib/metronome_sdk/models/v1/contract_retrieve_response.rb +3 -1154
  56. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_params.rb +1 -3
  57. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +2 -1
  58. data/lib/metronome_sdk/models/v1/contracts/product_list_response.rb +8 -1
  59. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_response.rb +8 -1
  60. data/lib/metronome_sdk/models/v1/contracts/quantity_rounding.rb +1 -4
  61. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_params.rb +4 -7
  62. data/lib/metronome_sdk/models/v1/contracts/rate_card_list_response.rb +10 -1
  63. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rb +2 -6
  64. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rb +5 -50
  65. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rb +10 -1
  66. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_params.rb +1 -3
  67. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_params.rb +1 -3
  68. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +6 -61
  69. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +3 -49
  70. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +4 -51
  71. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rb +2 -6
  72. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rb +5 -49
  73. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_response.rb +103 -123
  74. data/lib/metronome_sdk/models/v1/credit_grant_list_response.rb +3 -5
  75. data/lib/metronome_sdk/models/v1/custom_field_list_keys_params.rb +1 -3
  76. data/lib/metronome_sdk/models/v1/custom_field_list_keys_response.rb +41 -58
  77. data/lib/metronome_sdk/models/v1/custom_field_set_values_params.rb +5 -1
  78. data/lib/metronome_sdk/models/v1/customer.rb +2 -1
  79. data/lib/metronome_sdk/models/v1/customer_create_params.rb +37 -11
  80. data/lib/metronome_sdk/models/v1/customer_detail.rb +11 -2
  81. data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_response.rb +3 -3
  82. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +6 -18
  83. data/lib/metronome_sdk/models/v1/customer_preview_events_response.rb +3 -3
  84. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rb +28 -0
  85. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rb +128 -0
  86. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb +143 -0
  87. data/lib/metronome_sdk/models/v1/customers/alert_list_params.rb +4 -6
  88. data/lib/metronome_sdk/models/v1/customers/alert_reset_params.rb +2 -2
  89. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +37 -8
  90. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +2 -0
  91. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +2 -0
  92. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +10 -60
  93. data/lib/metronome_sdk/models/v1/customers/credit_create_params.rb +6 -48
  94. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +48 -54
  95. data/lib/metronome_sdk/models/v1/customers/invoice.rb +197 -66
  96. data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_params.rb +1 -4
  97. data/lib/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rb +30 -0
  98. data/lib/metronome_sdk/models/v1/customers/plan_add_params.rb +2 -6
  99. data/lib/metronome_sdk/models/v1/customers/plan_list_response.rb +2 -1
  100. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +4 -11
  101. data/lib/metronome_sdk/models/v1/payment.rb +151 -0
  102. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +28 -0
  103. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +18 -0
  104. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +28 -0
  105. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +18 -0
  106. data/lib/metronome_sdk/models/v1/payment_list_params.rb +53 -0
  107. data/lib/metronome_sdk/models/v1/payment_status.rb +19 -0
  108. data/lib/metronome_sdk/models/v1/plan_detail.rb +9 -5
  109. data/lib/metronome_sdk/models/v1/plan_list_charges_response.rb +2 -1
  110. data/lib/metronome_sdk/models/v1/plan_list_customers_response.rb +2 -1
  111. data/lib/metronome_sdk/models/v1/plan_list_response.rb +5 -1
  112. data/lib/metronome_sdk/models/v1/usage_ingest_params.rb +1 -4
  113. data/lib/metronome_sdk/models/v1/usage_list_params.rb +1 -3
  114. data/lib/metronome_sdk/models/v1/usage_list_response.rb +45 -62
  115. data/lib/metronome_sdk/models/v1/usage_search_response.rb +4 -7
  116. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +37 -58
  117. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +34 -49
  118. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +552 -2265
  119. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +417 -2317
  120. data/lib/metronome_sdk/models/v2/contract_list_response.rb +3 -4520
  121. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +3 -4528
  122. data/lib/metronome_sdk/models.rb +38 -0
  123. data/lib/metronome_sdk/resources/v1/alerts.rb +90 -16
  124. data/lib/metronome_sdk/resources/v1/audit_logs.rb +39 -4
  125. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +54 -4
  126. data/lib/metronome_sdk/resources/v1/contracts/products.rb +25 -6
  127. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rb +7 -2
  128. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +10 -2
  129. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +109 -10
  130. data/lib/metronome_sdk/resources/v1/contracts.rb +255 -18
  131. data/lib/metronome_sdk/resources/v1/credit_grants.rb +2 -1
  132. data/lib/metronome_sdk/resources/v1/custom_fields.rb +51 -14
  133. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +127 -13
  134. data/lib/metronome_sdk/resources/v1/customers/commits.rb +119 -9
  135. data/lib/metronome_sdk/resources/v1/customers/credits.rb +104 -8
  136. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +179 -8
  137. data/lib/metronome_sdk/resources/v1/customers.rb +175 -15
  138. data/lib/metronome_sdk/resources/v1/dashboards.rb +29 -3
  139. data/lib/metronome_sdk/resources/v1/invoices.rb +23 -2
  140. data/lib/metronome_sdk/resources/v1/payments.rb +102 -0
  141. data/lib/metronome_sdk/resources/v1/pricing_units.rb +6 -1
  142. data/lib/metronome_sdk/resources/v1/services.rb +6 -4
  143. data/lib/metronome_sdk/resources/v1/usage.rb +188 -13
  144. data/lib/metronome_sdk/resources/v1.rb +4 -0
  145. data/lib/metronome_sdk/resources/v2/contracts.rb +120 -18
  146. data/lib/metronome_sdk/version.rb +1 -1
  147. data/lib/metronome_sdk.rb +33 -3
  148. data/rbi/metronome_sdk/errors.rbi +31 -4
  149. data/rbi/metronome_sdk/file_part.rbi +1 -1
  150. data/rbi/metronome_sdk/internal/body_cursor_page.rbi +22 -0
  151. data/rbi/metronome_sdk/internal/cursor_page_without_limit.rbi +22 -0
  152. data/rbi/metronome_sdk/internal/transport/base_client.rbi +4 -5
  153. data/rbi/metronome_sdk/internal/type/base_page.rbi +1 -1
  154. data/rbi/metronome_sdk/internal/util.rbi +1 -1
  155. data/rbi/metronome_sdk/models/base_threshold_commit.rbi +58 -0
  156. data/rbi/metronome_sdk/models/commit.rbi +26 -348
  157. data/rbi/metronome_sdk/models/commit_hierarchy_configuration.rbi +280 -0
  158. data/rbi/metronome_sdk/models/commit_rate.rbi +85 -0
  159. data/rbi/metronome_sdk/models/commit_specifier.rbi +71 -0
  160. data/rbi/metronome_sdk/models/commit_specifier_input.rbi +74 -0
  161. data/rbi/metronome_sdk/models/contract.rbi +768 -0
  162. data/rbi/metronome_sdk/models/contract_v2.rbi +6415 -0
  163. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +186 -2509
  164. data/rbi/metronome_sdk/models/credit.rbi +10 -348
  165. data/rbi/metronome_sdk/models/discount.rbi +2 -0
  166. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +424 -0
  167. data/rbi/metronome_sdk/models/override.rbi +8 -193
  168. data/rbi/metronome_sdk/models/override_tier.rbi +29 -0
  169. data/rbi/metronome_sdk/models/overwrite_rate.rbi +137 -0
  170. data/rbi/metronome_sdk/models/payment_gate_config.rbi +317 -0
  171. data/rbi/metronome_sdk/models/payment_gate_config_v2.rbi +326 -0
  172. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +183 -0
  173. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +188 -0
  174. data/rbi/metronome_sdk/models/pro_service.rbi +2 -0
  175. data/rbi/metronome_sdk/models/recurring_commit_subscription_config.rbi +125 -0
  176. data/rbi/metronome_sdk/models/scheduled_charge.rbi +2 -0
  177. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +76 -0
  178. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -0
  179. data/rbi/metronome_sdk/models/subscription.rbi +635 -0
  180. data/rbi/metronome_sdk/models/update_base_threshold_commit.rbi +61 -0
  181. data/rbi/metronome_sdk/models/v1/alert_archive_params.rbi +6 -4
  182. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +57 -50
  183. data/rbi/metronome_sdk/models/v1/billable_metric_list_response.rbi +2 -0
  184. data/rbi/metronome_sdk/models/v1/billable_metric_retrieve_response.rbi +2 -0
  185. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +49 -768
  186. data/rbi/metronome_sdk/models/v1/contract_create_historical_invoices_params.rbi +2 -0
  187. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1843 -4119
  188. data/rbi/metronome_sdk/models/v1/contract_list_balances_response.rbi +8 -59
  189. data/rbi/metronome_sdk/models/v1/contract_list_response.rbi +5 -2420
  190. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbi +6 -129
  191. data/rbi/metronome_sdk/models/v1/contract_retrieve_response.rbi +4 -2419
  192. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +2 -0
  193. data/rbi/metronome_sdk/models/v1/contracts/product_list_response.rbi +2 -0
  194. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_response.rbi +2 -0
  195. data/rbi/metronome_sdk/models/v1/contracts/rate_card_create_params.rbi +2 -0
  196. data/rbi/metronome_sdk/models/v1/contracts/rate_card_list_response.rbi +2 -0
  197. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbi +6 -129
  198. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbi +2 -0
  199. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +4 -129
  200. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +4 -129
  201. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +4 -129
  202. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbi +6 -129
  203. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_response.rbi +147 -198
  204. data/rbi/metronome_sdk/models/v1/credit_grant_list_response.rbi +2 -0
  205. data/rbi/metronome_sdk/models/v1/custom_field_list_keys_response.rbi +117 -165
  206. data/rbi/metronome_sdk/models/v1/custom_field_set_values_params.rbi +8 -1
  207. data/rbi/metronome_sdk/models/v1/customer.rbi +2 -0
  208. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +88 -3
  209. data/rbi/metronome_sdk/models/v1/customer_detail.rbi +10 -0
  210. data/rbi/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbi +2 -0
  211. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +6 -21
  212. data/rbi/metronome_sdk/models/v1/customer_preview_events_response.rbi +10 -9
  213. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbi +51 -0
  214. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbi +265 -0
  215. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbi +348 -0
  216. data/rbi/metronome_sdk/models/v1/customers/alert_list_params.rbi +4 -4
  217. data/rbi/metronome_sdk/models/v1/customers/alert_reset_params.rbi +2 -2
  218. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +68 -8
  219. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +10 -0
  220. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +10 -0
  221. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +6 -90
  222. data/rbi/metronome_sdk/models/v1/customers/credit_create_params.rbi +6 -90
  223. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +54 -47
  224. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +316 -68
  225. data/rbi/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rbi +50 -0
  226. data/rbi/metronome_sdk/models/v1/customers/plan_list_response.rbi +2 -0
  227. data/rbi/metronome_sdk/models/v1/payment.rbi +316 -0
  228. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +48 -0
  229. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +35 -0
  230. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +48 -0
  231. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +35 -0
  232. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +91 -0
  233. data/rbi/metronome_sdk/models/v1/payment_status.rbi +33 -0
  234. data/rbi/metronome_sdk/models/v1/plan_detail.rbi +2 -0
  235. data/rbi/metronome_sdk/models/v1/plan_list_charges_response.rbi +2 -0
  236. data/rbi/metronome_sdk/models/v1/plan_list_customers_response.rbi +2 -0
  237. data/rbi/metronome_sdk/models/v1/plan_list_response.rbi +8 -1
  238. data/rbi/metronome_sdk/models/v1/usage_list_response.rbi +45 -86
  239. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +2 -0
  240. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +74 -76
  241. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +74 -76
  242. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +3875 -7234
  243. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1733 -6207
  244. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +5 -9867
  245. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +6 -9866
  246. data/rbi/metronome_sdk/models.rbi +44 -0
  247. data/rbi/metronome_sdk/resources/v1/alerts.rbi +101 -27
  248. data/rbi/metronome_sdk/resources/v1/audit_logs.rbi +39 -4
  249. data/rbi/metronome_sdk/resources/v1/billable_metrics.rbi +54 -4
  250. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +25 -5
  251. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rbi +7 -2
  252. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +10 -3
  253. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards.rbi +109 -9
  254. data/rbi/metronome_sdk/resources/v1/contracts.rbi +258 -16
  255. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +5 -1
  256. data/rbi/metronome_sdk/resources/v1/custom_fields.rbi +57 -14
  257. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +133 -11
  258. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +119 -10
  259. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +104 -9
  260. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +159 -7
  261. data/rbi/metronome_sdk/resources/v1/customers.rbi +162 -14
  262. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +29 -3
  263. data/rbi/metronome_sdk/resources/v1/invoices.rbi +23 -2
  264. data/rbi/metronome_sdk/resources/v1/payments.rbi +72 -0
  265. data/rbi/metronome_sdk/resources/v1/pricing_units.rbi +6 -1
  266. data/rbi/metronome_sdk/resources/v1/services.rbi +6 -4
  267. data/rbi/metronome_sdk/resources/v1/usage.rbi +191 -13
  268. data/rbi/metronome_sdk/resources/v1.rbi +3 -0
  269. data/rbi/metronome_sdk/resources/v2/contracts.rbi +134 -23
  270. data/sig/metronome_sdk/errors.rbs +7 -0
  271. data/sig/metronome_sdk/file_part.rbs +1 -1
  272. data/sig/metronome_sdk/internal/body_cursor_page.rbs +13 -0
  273. data/sig/metronome_sdk/internal/cursor_page_without_limit.rbs +13 -0
  274. data/sig/metronome_sdk/models/base_threshold_commit.rbs +26 -0
  275. data/sig/metronome_sdk/models/commit.rbs +17 -170
  276. data/sig/metronome_sdk/models/commit_hierarchy_configuration.rbs +117 -0
  277. data/sig/metronome_sdk/models/commit_rate.rbs +48 -0
  278. data/sig/metronome_sdk/models/commit_specifier.rbs +47 -0
  279. data/sig/metronome_sdk/models/commit_specifier_input.rbs +47 -0
  280. data/sig/metronome_sdk/models/contract.rbs +398 -0
  281. data/sig/metronome_sdk/models/contract_v2.rbs +3108 -0
  282. data/sig/metronome_sdk/models/contract_without_amendments.rbs +54 -976
  283. data/sig/metronome_sdk/models/credit.rbs +12 -170
  284. data/sig/metronome_sdk/models/hierarchy_configuration.rbs +152 -0
  285. data/sig/metronome_sdk/models/override.rbs +12 -101
  286. data/sig/metronome_sdk/models/override_tier.rbs +17 -0
  287. data/sig/metronome_sdk/models/overwrite_rate.rbs +78 -0
  288. data/sig/metronome_sdk/models/payment_gate_config.rbs +124 -0
  289. data/sig/metronome_sdk/models/payment_gate_config_v2.rbs +124 -0
  290. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +82 -0
  291. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +82 -0
  292. data/sig/metronome_sdk/models/recurring_commit_subscription_config.rbs +51 -0
  293. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +35 -0
  294. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +35 -0
  295. data/sig/metronome_sdk/models/subscription.rbs +295 -0
  296. data/sig/metronome_sdk/models/update_base_threshold_commit.rbs +28 -0
  297. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +4 -2
  298. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +26 -341
  299. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +219 -1184
  300. data/sig/metronome_sdk/models/v1/contract_list_balances_response.rbs +4 -25
  301. data/sig/metronome_sdk/models/v1/contract_list_response.rbs +4 -1041
  302. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbs +6 -54
  303. data/sig/metronome_sdk/models/v1/contract_retrieve_response.rbs +4 -1041
  304. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbs +6 -54
  305. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +6 -54
  306. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +6 -54
  307. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +6 -54
  308. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbs +6 -54
  309. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_response.rbs +72 -94
  310. data/sig/metronome_sdk/models/v1/custom_field_list_keys_response.rbs +53 -75
  311. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +31 -4
  312. data/sig/metronome_sdk/models/v1/customer_detail.rbs +5 -0
  313. data/sig/metronome_sdk/models/v1/customer_preview_events_params.rbs +0 -7
  314. data/sig/metronome_sdk/models/v1/customer_preview_events_response.rbs +6 -4
  315. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbs +32 -0
  316. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbs +113 -0
  317. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbs +133 -0
  318. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +21 -0
  319. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +7 -1
  320. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +6 -1
  321. data/sig/metronome_sdk/models/v1/customers/commit_create_params.rbs +6 -50
  322. data/sig/metronome_sdk/models/v1/customers/credit_create_params.rbs +6 -50
  323. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +4 -2
  324. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +137 -24
  325. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rbs +32 -0
  326. data/sig/metronome_sdk/models/v1/payment.rbs +191 -0
  327. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +30 -0
  328. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +15 -0
  329. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +30 -0
  330. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +15 -0
  331. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +56 -0
  332. data/sig/metronome_sdk/models/v1/payment_status.rbs +19 -0
  333. data/sig/metronome_sdk/models/v1/usage_list_response.rbs +33 -55
  334. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +28 -43
  335. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +28 -43
  336. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +412 -1793
  337. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +342 -2149
  338. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +4 -4426
  339. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +4 -4426
  340. data/sig/metronome_sdk/models.rbs +38 -0
  341. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -1
  342. data/sig/metronome_sdk/resources/v1/contracts.rbs +3 -3
  343. data/sig/metronome_sdk/resources/v1/credit_grants.rbs +1 -1
  344. data/sig/metronome_sdk/resources/v1/custom_fields.rbs +1 -1
  345. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +2 -1
  346. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +2 -2
  347. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +2 -2
  348. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +6 -0
  349. data/sig/metronome_sdk/resources/v1/customers.rbs +11 -0
  350. data/sig/metronome_sdk/resources/v1/payments.rbs +30 -0
  351. data/sig/metronome_sdk/resources/v1/usage.rbs +1 -1
  352. data/sig/metronome_sdk/resources/v1.rbs +2 -0
  353. data/sig/metronome_sdk/resources/v2/contracts.rbs +10 -4
  354. metadata +101 -11
  355. data/lib/metronome_sdk/models/v1/customers/alert_list_response.rb +0 -29
  356. data/lib/metronome_sdk/models/v1/customers/commit_list_response.rb +0 -26
  357. data/lib/metronome_sdk/models/v1/customers/credit_list_response.rb +0 -26
  358. data/rbi/metronome_sdk/models/v1/customers/alert_list_response.rbi +0 -46
  359. data/rbi/metronome_sdk/models/v1/customers/commit_list_response.rbi +0 -45
  360. data/rbi/metronome_sdk/models/v1/customers/credit_list_response.rbi +0 -45
  361. data/sig/metronome_sdk/models/v1/customers/alert_list_response.rbs +0 -29
  362. data/sig/metronome_sdk/models/v1/customers/commit_list_response.rbs +0 -26
  363. data/sig/metronome_sdk/models/v1/customers/credit_list_response.rbs +0 -26
@@ -4,10 +4,12 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Services
7
- # Fetches a list of services used by Metronome and the associated IP addresses. IP
8
- # addresses are not necessarily unique between services. In most cases, IP
9
- # addresses will appear in the list at least 30 days before they are used for the
10
- # first time.
7
+ # Gets Metronome's service registry with associated IP addresses for security
8
+ # allowlisting and firewall configuration. Use this endpoint to maintain an
9
+ # up-to-date list of IPs that your systems should trust for Metronome
10
+ # communications. Returns service names and their current IP ranges, with new IPs
11
+ # typically appearing 30+ days before first use to ensure smooth allowlist
12
+ # updates.
11
13
  #
12
14
  # @overload list(request_options: {})
13
15
  #
@@ -7,8 +7,39 @@ module MetronomeSDK
7
7
  # Some parameter documentations has been truncated, see
8
8
  # {MetronomeSDK::Models::V1::UsageListParams} for more details.
9
9
  #
10
- # Fetch aggregated usage data for multiple customers and billable-metrics, broken
11
- # into intervals of the specified length.
10
+ # Retrieve aggregated usage data across multiple customers and billable metrics in
11
+ # a single query. This batch endpoint enables you to fetch usage patterns at
12
+ # scale, broken down by time windows, making it ideal for building analytics
13
+ # dashboards, generating reports, and monitoring platform-wide usage trends.
14
+ #
15
+ # ### Use this endpoint to:
16
+ #
17
+ # - Generate platform-wide usage reports for internal teams
18
+ # - Monitor aggregate usage trends across your entire customer base
19
+ # - Create comparative usage analyses between customers or time periods
20
+ # - Support capacity planning with historical usage patterns
21
+ #
22
+ # ### Key response fields:
23
+ #
24
+ # An array of `UsageBatchAggregate` objects containing:
25
+ #
26
+ # - `customer_id`: The customer this usage belongs to
27
+ # - `billable_metric_id` and `billable_metric_name`: What was measured
28
+ # - `start_timestamp` and `end_timestamp`: Time window for this data point
29
+ # - `value`: Aggregated usage amount for the period
30
+ # - `groups` (optional): Usage broken down by group keys with values
31
+ # - `next_page`: Pagination cursor for large result sets
32
+ #
33
+ # ### Usage guidelines:
34
+ #
35
+ # - Time windows: Set `window_size` to `hour`, `day`, or `none` (entire period)
36
+ # - Required parameters: Must specify `starting_on`, `ending_before`, and
37
+ # `window_size`
38
+ # - Filtering options:
39
+ # - `customer_ids`: Limit to specific customers (omit for all customers)
40
+ # - `billable_metrics`: Limit to specific metrics (omit for all metrics)
41
+ # - Pagination: Use `next_page` cursor to retrieve large datasets
42
+ # - Null values: Group values may be null when no usage matches that group
12
43
  #
13
44
  # @overload list(ending_before:, starting_on:, window_size:, next_page: nil, billable_metrics: nil, customer_ids: nil, request_options: {})
14
45
  #
@@ -26,7 +57,7 @@ module MetronomeSDK
26
57
  #
27
58
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
28
59
  #
29
- # @return [MetronomeSDK::Models::V1::UsageListResponse]
60
+ # @return [MetronomeSDK::Internal::CursorPageWithoutLimit<MetronomeSDK::Models::V1::UsageListResponse>]
30
61
  #
31
62
  # @see MetronomeSDK::Models::V1::UsageListParams
32
63
  def list(params)
@@ -37,17 +68,99 @@ module MetronomeSDK
37
68
  path: "v1/usage",
38
69
  query: parsed.slice(*query_params),
39
70
  body: parsed.except(*query_params),
71
+ page: MetronomeSDK::Internal::CursorPageWithoutLimit,
40
72
  model: MetronomeSDK::Models::V1::UsageListResponse,
41
73
  options: options
42
74
  )
43
75
  end
44
76
 
45
- # Send usage events to Metronome. The body of this request is expected to be a
46
- # JSON array of between 1 and 100 usage events. Compressed request bodies are
47
- # supported with a `Content-Encoding: gzip` header. See
48
- # [Getting usage into Metronome](https://docs.metronome.com/connect-metronome/) to
77
+ # The ingest endpoint is the primary method for sending usage events to Metronome,
78
+ # serving as the foundation for all billing calculations in your usage-based
79
+ # pricing model. This high-throughput endpoint is designed for real-time streaming
80
+ # ingestion, supports backdating 34 days, and is built to handle mission-critical
81
+ # usage data with enterprise-grade reliability. Metronome supports 100,000 events
82
+ # per second without requiring pre-aggregation or rollups and can scale up from
83
+ # there. See the [Send usage events](/guides/events/send-usage-events) guide to
49
84
  # learn more about usage events.
50
85
  #
86
+ # ### Use this endpoint to:
87
+ #
88
+ # Create a customer usage pipeline into Metronome that drives billable metrics,
89
+ # credit drawdown, and invoicing. Track customer behavior, resource consumption,
90
+ # and feature usage
91
+ #
92
+ # ### What happens when you send events:
93
+ #
94
+ # - Events are validated and processed in real-time
95
+ # - Events are matched to customers using customer IDs or customer ingest aliases
96
+ # - Events are matched to billable metrics and are immediately available for usage
97
+ # and spend calculations
98
+ #
99
+ # ### Usage guidelines:
100
+ #
101
+ # - Historical events can be backdated up to 34 days and will immediately impact
102
+ # live customer spend
103
+ # - Duplicate events are automatically detected and ignored (34-day deduplication
104
+ # window)
105
+ #
106
+ # #### Event structure:
107
+ #
108
+ # Usage events are simple JSON objects designed for flexibility and ease of
109
+ # integration:
110
+ #
111
+ # ```json
112
+ # {
113
+ # "transaction_id": "2021-01-01T00:00:00Z_cluster42",
114
+ # "customer_id": "team@example.com",
115
+ # "event_type": "api_request",
116
+ # "timestamp": "2021-01-01T00:00:00Z",
117
+ # "properties": {
118
+ # "endpoint": "/v1/users",
119
+ # "method": "POST",
120
+ # "response_time_ms": 45,
121
+ # "region": "us-west-2"
122
+ # }
123
+ # }
124
+ # ```
125
+ #
126
+ # Learn more about
127
+ # [usage event structure definitions](/guides/events/design-usage-events).
128
+ #
129
+ # #### Transaction ID
130
+ #
131
+ # The transaction_id serves as your idempotency key, ensuring events are processed
132
+ # exactly once. Metronome maintains a 34-day deduplication window - significantly
133
+ # longer than typical 12-hour windows - enabling robust backfill scenarios without
134
+ # duplicate billing.
135
+ #
136
+ # - Best Practices:
137
+ # - Use UUIDs for one-time events: uuid4()
138
+ # - For heartbeat events, use deterministic IDs
139
+ # - Include enough context to avoid collisions across different event sources
140
+ #
141
+ # #### Customer ID
142
+ #
143
+ # Identifies which customer should be billed for this usage. Supports two
144
+ # identification methods:
145
+ #
146
+ # - Metronome Customer ID: The UUID returned when creating a customer
147
+ # - Ingest Alias: Your system's identifier (email, account number, etc.)
148
+ #
149
+ # Ingest aliases enable seamless integration without requiring ID mapping, and
150
+ # customers can have multiple aliases for flexibility.
151
+ #
152
+ # #### Event Type:
153
+ #
154
+ # Categorizes the event type for billable metric matching. Choose descriptive
155
+ # names that aligns with the product surface area.
156
+ #
157
+ # #### Properties:
158
+ #
159
+ # Flexible metadata also used to match billable metrics or to be used to serve as
160
+ # group keys to create multiple pricing dimensions or breakdown costs by novel
161
+ # properties for end customers or internal finance teams measuring underlying
162
+ # COGs.
163
+ #
51
164
  # @overload ingest(usage: nil, request_options: {})
52
165
  #
53
166
  # @param usage [Array<MetronomeSDK::Models::V1::UsageIngestParams::Usage>]
@@ -70,8 +183,40 @@ module MetronomeSDK
70
183
  # Some parameter documentations has been truncated, see
71
184
  # {MetronomeSDK::Models::V1::UsageListWithGroupsParams} for more details.
72
185
  #
73
- # Fetch aggregated usage data for the specified customer, billable-metric, and
74
- # optional group, broken into intervals of the specified length.
186
+ # Retrieve granular usage data for a specific customer and billable metric, with
187
+ # the ability to break down usage by custom grouping dimensions. This endpoint
188
+ # enables deep usage analytics by segmenting data across attributes like region,
189
+ # user, model type, or any custom dimension defined in your billable metrics.
190
+ #
191
+ # ### Use this endpoint to:
192
+ #
193
+ # - Analyze usage patterns broken down by specific attributes (region, user,
194
+ # department, etc.)
195
+ # - Build detailed usage dashboards with dimensional filtering
196
+ # - Identify high-usage segments for optimization opportunities
197
+ #
198
+ # ### Key response fields:
199
+ #
200
+ # An array of `PagedUsageAggregate` objects containing:
201
+ #
202
+ # - `starting_on` and `ending_before`: Time window boundaries
203
+ # - `group_key`: The dimension being grouped by (e.g., "region")
204
+ # - `group_value`: The specific value for this group (e.g., "US-East")
205
+ # - `value`: Aggregated usage for this group and time window
206
+ # - `next_page`: Pagination cursor for large datasets
207
+ #
208
+ # ### Usage guidelines:
209
+ #
210
+ # - Required parameters: Must specify `customer_id`, `billable_metric_id`, and
211
+ # `window_size`
212
+ # - Time windows: Set `window_size` to hour, day, or none for different
213
+ # granularities
214
+ # - Group filtering: Use `group_by` to specify:
215
+ # - key: The dimension to group by (must be set on the billable metric as a
216
+ # group key)
217
+ # - values: Optional array to filter to specific values only
218
+ # - Pagination: Use limit and `next_page` for large result sets
219
+ # - Null handling: `group_value` may be null for unmatched data
75
220
  #
76
221
  # @overload list_with_groups(billable_metric_id:, customer_id:, window_size:, limit: nil, next_page: nil, current_period: nil, ending_before: nil, group_by: nil, starting_on: nil, request_options: {})
77
222
  #
@@ -112,10 +257,40 @@ module MetronomeSDK
112
257
  )
113
258
  end
114
259
 
115
- # For a set of events, look up matched billable metrics and customers by
116
- # transaction id. This endpoint looks at transactions that occurred in the last 34
117
- # days, and is intended for sampling-based testing workflows. It is heavily rate
118
- # limited.
260
+ # This endpoint retrieves events by transaction ID for events that occurred within
261
+ # the last 34 days. It is specifically designed for sampling-based testing
262
+ # workflows to detect revenue leakage. The Event Search API provides a critical
263
+ # observability tool that validates the integrity of your usage pipeline by
264
+ # allowing you to sample raw events and verify their matching against active
265
+ # billable metrics.
266
+ #
267
+ # Why event observability matters for revenue leakage: Silent revenue loss occurs
268
+ # when events are dropped, delayed, or fail to match billable metrics due to:
269
+ #
270
+ # - Upstream system failures
271
+ # - Event format changes
272
+ # - Misconfigured billable metrics
273
+ #
274
+ # ### Use this endpoint to:
275
+ #
276
+ # - Sample raw events and validate they match the expected billable metrics
277
+ # - Build custom leakage detection alerts to prevent silent revenue loss
278
+ # - Verify event processing accuracy during system changes or metric updates
279
+ # - Debug event matching issues in real-time
280
+ #
281
+ # ### Key response fields:
282
+ #
283
+ # - Complete event details including transaction ID, customer ID, and properties
284
+ # - Matched Metronome customer (if any)
285
+ # - Matched billable metric information (if any)
286
+ # - Processing status and duplicate detection flags
287
+ #
288
+ # ### Usage guidelines:
289
+ #
290
+ # ⚠️ Important: This endpoint is heavily rate limited and designed for sampling
291
+ # workflows only. Do not use this endpoint to check every event in your system.
292
+ # Instead, implement a sampling strategy to randomly validate a subset of events
293
+ # for observability purposes.
119
294
  #
120
295
  # @overload search(transaction_ids:, request_options: {})
121
296
  #
@@ -42,6 +42,9 @@ module MetronomeSDK
42
42
  # @return [MetronomeSDK::Resources::V1::Contracts]
43
43
  attr_reader :contracts
44
44
 
45
+ # @return [MetronomeSDK::Resources::V1::Payments]
46
+ attr_reader :payments
47
+
45
48
  # @api private
46
49
  #
47
50
  # @param client [MetronomeSDK::Client]
@@ -60,6 +63,7 @@ module MetronomeSDK
60
63
  @services = MetronomeSDK::Resources::V1::Services.new(client: client)
61
64
  @invoices = MetronomeSDK::Resources::V1::Invoices.new(client: client)
62
65
  @contracts = MetronomeSDK::Resources::V1::Contracts.new(client: client)
66
+ @payments = MetronomeSDK::Resources::V1::Payments.new(client: client)
63
67
  end
64
68
  end
65
69
  end
@@ -7,8 +7,23 @@ module MetronomeSDK
7
7
  # Some parameter documentations has been truncated, see
8
8
  # {MetronomeSDK::Models::V2::ContractRetrieveParams} for more details.
9
9
  #
10
- # Get a specific contract. New clients should use this endpoint rather than the v1
11
- # endpoint.
10
+ # Gets the details for a specific contract, including contract term, rate card
11
+ # information, credits and commits, and more.
12
+ #
13
+ # ### Use this endpoint to:
14
+ #
15
+ # - Check the duration of a customer's current contract
16
+ # - Get details on contract terms, including access schedule amounts for
17
+ # commitments and credits
18
+ # - Understand the state of a contract at a past time. As you can evolve the terms
19
+ # of a contract over time through editing, use the `as_of_date` parameter to
20
+ # view the full contract configuration as of that point in time.
21
+ #
22
+ # ### Usage guidelines:
23
+ #
24
+ # - Optionally, use the `include_balance` and `include_ledger` fields to include
25
+ # balances and ledgers in the credit and commit responses. Using these fields
26
+ # will cause the query to be slower.
12
27
  #
13
28
  # @overload retrieve(contract_id:, customer_id:, as_of_date: nil, include_balance: nil, include_ledgers: nil, request_options: {})
14
29
  #
@@ -41,8 +56,21 @@ module MetronomeSDK
41
56
  # Some parameter documentations has been truncated, see
42
57
  # {MetronomeSDK::Models::V2::ContractListParams} for more details.
43
58
  #
44
- # List all contracts for a customer in chronological order. New clients should use
45
- # this endpoint rather than the v1 endpoint.
59
+ # For a given customer, lists all of their contracts in chronological order.
60
+ #
61
+ # ### Use this endpoint to:
62
+ #
63
+ # - Check if a customer is provisioned with any contract, and at which tier
64
+ # - Check the duration and terms of a customer's current contract
65
+ # - Power a page in your end customer experience that shows the customer's history
66
+ # of tiers (e.g. this customer started out on the Pro Plan, then downgraded to
67
+ # the Starter plan).
68
+ #
69
+ # ### Usage guidelines:
70
+ #
71
+ # Use the `starting_at`, `covering_date`, and `include_archived` parameters to
72
+ # filter the list of returned contracts. For example, to list only currently
73
+ # active contracts, pass `covering_date` equal to the current time.
46
74
  #
47
75
  # @overload list(customer_id:, covering_date: nil, include_archived: nil, include_balance: nil, include_ledgers: nil, starting_at: nil, request_options: {})
48
76
  #
@@ -77,14 +105,37 @@ module MetronomeSDK
77
105
  # Some parameter documentations has been truncated, see
78
106
  # {MetronomeSDK::Models::V2::ContractEditParams} for more details.
79
107
  #
80
- # Edit a contract. Contract editing must be enabled to use this endpoint.
108
+ # The ability to edit a contract helps you react quickly to the needs of your
109
+ # customers and your business.
81
110
  #
82
- # @overload edit(contract_id:, customer_id:, add_commits: nil, add_credits: nil, add_discounts: nil, add_overrides: nil, add_prepaid_balance_threshold_configuration: nil, add_professional_services: nil, add_recurring_commits: nil, add_recurring_credits: nil, add_reseller_royalties: nil, add_scheduled_charges: nil, add_spend_threshold_configuration: nil, add_subscriptions: nil, allow_contract_ending_before_finalized_invoice: nil, archive_commits: nil, archive_credits: nil, archive_scheduled_charges: nil, remove_overrides: nil, update_commits: nil, update_contract_end_date: nil, update_contract_name: nil, update_credits: nil, update_prepaid_balance_threshold_configuration: nil, update_recurring_commits: nil, update_recurring_credits: nil, update_scheduled_charges: nil, update_spend_threshold_configuration: nil, update_subscriptions: nil, request_options: {})
111
+ # ### Use this endpoint to:
112
+ #
113
+ # - Encode mid-term commitment and discount changes
114
+ # - Fix configuration mistakes and easily roll back packaging changes
115
+ #
116
+ # ### Key response fields:
117
+ #
118
+ # - The `id` of the edit
119
+ # - Complete edit details. For example, if you edited the contract to add new
120
+ # overrides and credits, you will receive the IDs of those overrides and credits
121
+ # in the response.
122
+ #
123
+ # ### Usage guidelines:
124
+ #
125
+ # - When you edit a contract, any draft invoices update immediately to reflect
126
+ # that edit. Finalized invoices remain unchanged - you must void and regenerate
127
+ # them in the UI or API to reflect the edit.
128
+ # - Contract editing must be enabled to use this endpoint. Reach out to your
129
+ # Metronome representative to learn more.
130
+ #
131
+ # @overload edit(contract_id:, customer_id:, add_billing_provider_configuration_update: nil, add_commits: nil, add_credits: nil, add_discounts: nil, add_overrides: nil, add_prepaid_balance_threshold_configuration: nil, add_professional_services: nil, add_recurring_commits: nil, add_recurring_credits: nil, add_reseller_royalties: nil, add_scheduled_charges: nil, add_spend_threshold_configuration: nil, add_subscriptions: nil, allow_contract_ending_before_finalized_invoice: nil, archive_commits: nil, archive_credits: nil, archive_scheduled_charges: nil, remove_overrides: nil, uniqueness_key: nil, update_commits: nil, update_contract_end_date: nil, update_contract_name: nil, update_credits: nil, update_prepaid_balance_threshold_configuration: nil, update_recurring_commits: nil, update_recurring_credits: nil, update_scheduled_charges: nil, update_spend_threshold_configuration: nil, update_subscriptions: nil, request_options: {})
83
132
  #
84
133
  # @param contract_id [String] ID of the contract being edited
85
134
  #
86
135
  # @param customer_id [String] ID of the customer whose contract is being edited
87
136
  #
137
+ # @param add_billing_provider_configuration_update [MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate] Update the billing provider configuration on the contract. Currently only suppor
138
+ #
88
139
  # @param add_commits [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit>]
89
140
  #
90
141
  # @param add_credits [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCredit>]
@@ -93,7 +144,7 @@ module MetronomeSDK
93
144
  #
94
145
  # @param add_overrides [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride>]
95
146
  #
96
- # @param add_prepaid_balance_threshold_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration]
147
+ # @param add_prepaid_balance_threshold_configuration [MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2]
97
148
  #
98
149
  # @param add_professional_services [Array<MetronomeSDK::Models::V2::ContractEditParams::AddProfessionalService>] This field's availability is dependent on your client's configuration.
99
150
  #
@@ -105,7 +156,7 @@ module MetronomeSDK
105
156
  #
106
157
  # @param add_scheduled_charges [Array<MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge>]
107
158
  #
108
- # @param add_spend_threshold_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration]
159
+ # @param add_spend_threshold_configuration [MetronomeSDK::Models::SpendThresholdConfigurationV2]
109
160
  #
110
161
  # @param add_subscriptions [Array<MetronomeSDK::Models::V2::ContractEditParams::AddSubscription>] Optional list of [subscriptions](https://docs.metronome.com/manage-product-acces
111
162
  #
@@ -119,6 +170,8 @@ module MetronomeSDK
119
170
  #
120
171
  # @param remove_overrides [Array<MetronomeSDK::Models::V2::ContractEditParams::RemoveOverride>] IDs of overrides to remove
121
172
  #
173
+ # @param uniqueness_key [String] Optional uniqueness key to prevent duplicate contract edits.
174
+ #
122
175
  # @param update_commits [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit>]
123
176
  #
124
177
  # @param update_contract_end_date [Time, nil] RFC 3339 timestamp indicating when the contract will end (exclusive).
@@ -158,10 +211,24 @@ module MetronomeSDK
158
211
  # Some parameter documentations has been truncated, see
159
212
  # {MetronomeSDK::Models::V2::ContractEditCommitParams} for more details.
160
213
  #
161
- # Edit a customer or contract commit. Contract commits can only be edited using
162
- # this endpoint if contract editing is enabled.
214
+ # Edit specific details for a contract-level or customer-level commit. Use this
215
+ # endpoint to modify individual commit access schedules, invoice schedules,
216
+ # applicable products, invoicing contracts, or other fields.
217
+ #
218
+ # ### Usage guidelines:
163
219
  #
164
- # @overload edit_commit(commit_id:, customer_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, invoice_contract_id: nil, invoice_schedule: nil, priority: nil, product_id: nil, specifiers: nil, request_options: {})
220
+ # - As with all edits in Metronome, draft invoices will reflect the edit
221
+ # immediately, while finalized invoices are untouched unless voided and
222
+ # regenerated.
223
+ # - If a commit's invoice schedule item is associated with a finalized invoice,
224
+ # you cannot remove or update the invoice schedule item.
225
+ # - If a commit's invoice schedule item is associated with a voided invoice, you
226
+ # cannot remove the invoice schedule item.
227
+ # - You cannot remove an commit access schedule segment that was applied to a
228
+ # finalized invoice. You can void the invoice beforehand and then remove the
229
+ # access schedule segment.
230
+ #
231
+ # @overload edit_commit(commit_id:, customer_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, hierarchy_configuration: nil, invoice_contract_id: nil, invoice_schedule: nil, priority: nil, product_id: nil, rate_type: nil, specifiers: nil, request_options: {})
165
232
  #
166
233
  # @param commit_id [String] ID of the commit to edit
167
234
  #
@@ -173,6 +240,8 @@ module MetronomeSDK
173
240
  #
174
241
  # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If applicable*product_ids, applicable_product*
175
242
  #
243
+ # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for commit hierarchy access control
244
+ #
176
245
  # @param invoice_contract_id [String] ID of contract to use for invoicing
177
246
  #
178
247
  # @param invoice_schedule [MetronomeSDK::Models::V2::ContractEditCommitParams::InvoiceSchedule]
@@ -181,7 +250,9 @@ module MetronomeSDK
181
250
  #
182
251
  # @param product_id [String]
183
252
  #
184
- # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditCommitParams::Specifier>, nil] List of filters that determine what kind of customer usage draws down a commit o
253
+ # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditCommitParams::RateType] If provided, updates the commit to use the specified rate type for current and f
254
+ #
255
+ # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil] List of filters that determine what kind of customer usage draws down a commit o
185
256
  #
186
257
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
187
258
  #
@@ -202,10 +273,24 @@ module MetronomeSDK
202
273
  # Some parameter documentations has been truncated, see
203
274
  # {MetronomeSDK::Models::V2::ContractEditCreditParams} for more details.
204
275
  #
205
- # Edit a customer or contract credit. Contract credits can only be edited using
206
- # this endpoint if contract editing is enabled.
276
+ # Edit details for a contract-level or customer-level credit.
277
+ #
278
+ # ### Use this endpoint to:
279
+ #
280
+ # - Extend the duration or the amount of an existing free credit like a trial
281
+ # - Modify individual credit access schedules, applicable products, priority, or
282
+ # other fields.
283
+ #
284
+ # ### Usage guidelines:
207
285
  #
208
- # @overload edit_credit(credit_id:, customer_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, priority: nil, product_id: nil, specifiers: nil, request_options: {})
286
+ # - As with all edits in Metronome, draft invoices will reflect the edit
287
+ # immediately, while finalized invoices are untouched unless voided and
288
+ # regenerated.
289
+ # - You cannot remove an access schedule segment that was applied to a finalized
290
+ # invoice. You can void the invoice beforehand and then remove the access
291
+ # schedule segment.
292
+ #
293
+ # @overload edit_credit(credit_id:, customer_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, hierarchy_configuration: nil, priority: nil, product_id: nil, rate_type: nil, specifiers: nil, request_options: {})
209
294
  #
210
295
  # @param credit_id [String] ID of the credit to edit
211
296
  #
@@ -217,11 +302,15 @@ module MetronomeSDK
217
302
  #
218
303
  # @param applicable_product_tags [Array<String>, nil] Which tags the credit applies to. If both applicable*product_ids and applicable*
219
304
  #
305
+ # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for credit hierarchy access control
306
+ #
220
307
  # @param priority [Float, nil] If multiple commits are applicable, the one with the lower priority will apply f
221
308
  #
222
309
  # @param product_id [String]
223
310
  #
224
- # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditCreditParams::Specifier>, nil] List of filters that determine what kind of customer usage draws down a commit o
311
+ # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditCreditParams::RateType] If provided, updates the credit to use the specified rate type for current and f
312
+ #
313
+ # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil] List of filters that determine what kind of customer usage draws down a commit o
225
314
  #
226
315
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
227
316
  #
@@ -239,8 +328,21 @@ module MetronomeSDK
239
328
  )
240
329
  end
241
330
 
242
- # Get the edit history of a specific contract. Contract editing must be enabled to
243
- # use this endpoint.
331
+ # List all the edits made to a contract over time. In Metronome, you can edit a
332
+ # contract at any point after it's created to fix mistakes or reflect changes in
333
+ # terms. Metronome stores a full history of all edits that were ever made to a
334
+ # contract, whether through the UI, `editContract` endpoint, or other endpoints
335
+ # like `updateContractEndDate`.
336
+ #
337
+ # ### Use this endpoint to:
338
+ #
339
+ # - Understand what changes were made to a contract, when, and by who
340
+ #
341
+ # ### Key response fields:
342
+ #
343
+ # - An array of every edit ever made to the contract
344
+ # - Details on each individual edit - for example showing that in one edit, a user
345
+ # added two discounts and incremented a subscription quantity.
244
346
  #
245
347
  # @overload get_edit_history(contract_id:, customer_id:, request_options: {})
246
348
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MetronomeSDK
4
- VERSION = "0.3.0"
4
+ VERSION = "2.0.0"
5
5
  end
data/lib/metronome_sdk.rb CHANGED
@@ -50,23 +50,44 @@ require_relative "metronome_sdk/errors"
50
50
  require_relative "metronome_sdk/internal/transport/base_client"
51
51
  require_relative "metronome_sdk/internal/transport/pooled_net_requester"
52
52
  require_relative "metronome_sdk/client"
53
+ require_relative "metronome_sdk/internal/body_cursor_page"
53
54
  require_relative "metronome_sdk/internal/cursor_page"
55
+ require_relative "metronome_sdk/internal/cursor_page_without_limit"
56
+ require_relative "metronome_sdk/models/base_threshold_commit"
57
+ require_relative "metronome_sdk/models/update_base_threshold_commit"
54
58
  require_relative "metronome_sdk/models/id"
55
59
  require_relative "metronome_sdk/models/v1/customers/invoice"
56
60
  require_relative "metronome_sdk/models/base_usage_filter"
57
61
  require_relative "metronome_sdk/models/commit"
62
+ require_relative "metronome_sdk/models/commit_hierarchy_configuration"
63
+ require_relative "metronome_sdk/models/commit_rate"
64
+ require_relative "metronome_sdk/models/commit_specifier"
65
+ require_relative "metronome_sdk/models/commit_specifier_input"
66
+ require_relative "metronome_sdk/models/contract"
67
+ require_relative "metronome_sdk/models/contract_v2"
58
68
  require_relative "metronome_sdk/models/contract_without_amendments"
59
69
  require_relative "metronome_sdk/models/credit"
60
70
  require_relative "metronome_sdk/models/credit_type_data"
61
71
  require_relative "metronome_sdk/models/discount"
62
72
  require_relative "metronome_sdk/models/event_type_filter"
73
+ require_relative "metronome_sdk/models/hierarchy_configuration"
63
74
  require_relative "metronome_sdk/models/override"
75
+ require_relative "metronome_sdk/models/override_tier"
76
+ require_relative "metronome_sdk/models/overwrite_rate"
77
+ require_relative "metronome_sdk/models/payment_gate_config"
78
+ require_relative "metronome_sdk/models/payment_gate_config_v2"
79
+ require_relative "metronome_sdk/models/prepaid_balance_threshold_configuration"
80
+ require_relative "metronome_sdk/models/prepaid_balance_threshold_configuration_v2"
64
81
  require_relative "metronome_sdk/models/property_filter"
65
82
  require_relative "metronome_sdk/models/pro_service"
66
83
  require_relative "metronome_sdk/models/rate"
84
+ require_relative "metronome_sdk/models/recurring_commit_subscription_config"
67
85
  require_relative "metronome_sdk/models/scheduled_charge"
68
86
  require_relative "metronome_sdk/models/schedule_duration"
69
87
  require_relative "metronome_sdk/models/schedule_point_in_time"
88
+ require_relative "metronome_sdk/models/spend_threshold_configuration"
89
+ require_relative "metronome_sdk/models/spend_threshold_configuration_v2"
90
+ require_relative "metronome_sdk/models/subscription"
70
91
  require_relative "metronome_sdk/models/tier"
71
92
  require_relative "metronome_sdk/models/v1/alert_archive_params"
72
93
  require_relative "metronome_sdk/models/v1/alert_archive_response"
@@ -171,10 +192,11 @@ require_relative "metronome_sdk/models/v1/customer_list_costs_response"
171
192
  require_relative "metronome_sdk/models/v1/customer_list_params"
172
193
  require_relative "metronome_sdk/models/v1/customer_preview_events_params"
173
194
  require_relative "metronome_sdk/models/v1/customer_preview_events_response"
195
+ require_relative "metronome_sdk/models/v1/customer_retrieve_billing_configurations_params"
196
+ require_relative "metronome_sdk/models/v1/customer_retrieve_billing_configurations_response"
174
197
  require_relative "metronome_sdk/models/v1/customer_retrieve_params"
175
198
  require_relative "metronome_sdk/models/v1/customer_retrieve_response"
176
199
  require_relative "metronome_sdk/models/v1/customers/alert_list_params"
177
- require_relative "metronome_sdk/models/v1/customers/alert_list_response"
178
200
  require_relative "metronome_sdk/models/v1/customers/alert_reset_params"
179
201
  require_relative "metronome_sdk/models/v1/customers/alert_retrieve_params"
180
202
  require_relative "metronome_sdk/models/v1/customers/alert_retrieve_response"
@@ -185,13 +207,11 @@ require_relative "metronome_sdk/models/v1/customers/billing_config_retrieve_resp
185
207
  require_relative "metronome_sdk/models/v1/customers/commit_create_params"
186
208
  require_relative "metronome_sdk/models/v1/customers/commit_create_response"
187
209
  require_relative "metronome_sdk/models/v1/customers/commit_list_params"
188
- require_relative "metronome_sdk/models/v1/customers/commit_list_response"
189
210
  require_relative "metronome_sdk/models/v1/customers/commit_update_end_date_params"
190
211
  require_relative "metronome_sdk/models/v1/customers/commit_update_end_date_response"
191
212
  require_relative "metronome_sdk/models/v1/customers/credit_create_params"
192
213
  require_relative "metronome_sdk/models/v1/customers/credit_create_response"
193
214
  require_relative "metronome_sdk/models/v1/customers/credit_list_params"
194
- require_relative "metronome_sdk/models/v1/customers/credit_list_response"
195
215
  require_relative "metronome_sdk/models/v1/customers/credit_update_end_date_params"
196
216
  require_relative "metronome_sdk/models/v1/customers/credit_update_end_date_response"
197
217
  require_relative "metronome_sdk/models/v1/customers/customer_alert"
@@ -201,6 +221,7 @@ require_relative "metronome_sdk/models/v1/customers/invoice_list_breakdowns_para
201
221
  require_relative "metronome_sdk/models/v1/customers/invoice_list_breakdowns_response"
202
222
  require_relative "metronome_sdk/models/v1/customers/invoice_list_params"
203
223
  require_relative "metronome_sdk/models/v1/customers/invoice_retrieve_params"
224
+ require_relative "metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params"
204
225
  require_relative "metronome_sdk/models/v1/customers/invoice_retrieve_response"
205
226
  require_relative "metronome_sdk/models/v1/customers/named_schedule_retrieve_params"
206
227
  require_relative "metronome_sdk/models/v1/customers/named_schedule_retrieve_response"
@@ -213,6 +234,7 @@ require_relative "metronome_sdk/models/v1/customers/plan_list_params"
213
234
  require_relative "metronome_sdk/models/v1/customers/plan_list_price_adjustments_params"
214
235
  require_relative "metronome_sdk/models/v1/customers/plan_list_price_adjustments_response"
215
236
  require_relative "metronome_sdk/models/v1/customers/plan_list_response"
237
+ require_relative "metronome_sdk/models/v1/customer_set_billing_configurations_params"
216
238
  require_relative "metronome_sdk/models/v1/customer_set_ingest_aliases_params"
217
239
  require_relative "metronome_sdk/models/v1/customer_set_name_params"
218
240
  require_relative "metronome_sdk/models/v1/customer_set_name_response"
@@ -229,6 +251,13 @@ require_relative "metronome_sdk/models/v1/invoice_regenerate_params"
229
251
  require_relative "metronome_sdk/models/v1/invoice_regenerate_response"
230
252
  require_relative "metronome_sdk/models/v1/invoice_void_params"
231
253
  require_relative "metronome_sdk/models/v1/invoice_void_response"
254
+ require_relative "metronome_sdk/models/v1/payment"
255
+ require_relative "metronome_sdk/models/v1/payment_attempt_params"
256
+ require_relative "metronome_sdk/models/v1/payment_attempt_response"
257
+ require_relative "metronome_sdk/models/v1/payment_cancel_params"
258
+ require_relative "metronome_sdk/models/v1/payment_cancel_response"
259
+ require_relative "metronome_sdk/models/v1/payment_list_params"
260
+ require_relative "metronome_sdk/models/v1/payment_status"
232
261
  require_relative "metronome_sdk/models/v1/plan_detail"
233
262
  require_relative "metronome_sdk/models/v1/plan_get_details_params"
234
263
  require_relative "metronome_sdk/models/v1/plan_get_details_response"
@@ -287,6 +316,7 @@ require_relative "metronome_sdk/resources/v1/customers/plans"
287
316
  require_relative "metronome_sdk/resources/v1/custom_fields"
288
317
  require_relative "metronome_sdk/resources/v1/dashboards"
289
318
  require_relative "metronome_sdk/resources/v1/invoices"
319
+ require_relative "metronome_sdk/resources/v1/payments"
290
320
  require_relative "metronome_sdk/resources/v1/plans"
291
321
  require_relative "metronome_sdk/resources/v1/pricing_units"
292
322
  require_relative "metronome_sdk/resources/v1/services"