metronome-sdk 0.2.0 → 1.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 (321) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +61 -0
  3. data/README.md +9 -9
  4. data/lib/metronome_sdk/internal/body_cursor_page.rb +86 -0
  5. data/lib/metronome_sdk/internal/cursor_page_without_limit.rb +86 -0
  6. data/lib/metronome_sdk/internal/transport/base_client.rb +1 -4
  7. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +1 -9
  8. data/lib/metronome_sdk/internal/type/array_of.rb +1 -0
  9. data/lib/metronome_sdk/internal/type/base_model.rb +9 -14
  10. data/lib/metronome_sdk/internal/type/converter.rb +27 -0
  11. data/lib/metronome_sdk/internal/type/hash_of.rb +1 -0
  12. data/lib/metronome_sdk/internal/type/union.rb +20 -7
  13. data/lib/metronome_sdk/internal/util.rb +1 -1
  14. data/lib/metronome_sdk/models/base_threshold_commit.rb +36 -0
  15. data/lib/metronome_sdk/models/commit.rb +26 -170
  16. data/lib/metronome_sdk/models/commit_hierarchy_configuration.rb +98 -0
  17. data/lib/metronome_sdk/models/commit_rate.rb +48 -0
  18. data/lib/metronome_sdk/models/commit_specifier.rb +42 -0
  19. data/lib/metronome_sdk/models/commit_specifier_input.rb +42 -0
  20. data/lib/metronome_sdk/models/contract.rb +404 -0
  21. data/lib/metronome_sdk/models/contract_v2.rb +2919 -0
  22. data/lib/metronome_sdk/models/contract_without_amendments.rb +36 -1126
  23. data/lib/metronome_sdk/models/credit.rb +9 -156
  24. data/lib/metronome_sdk/models/discount.rb +2 -1
  25. data/lib/metronome_sdk/models/hierarchy_configuration.rb +76 -0
  26. data/lib/metronome_sdk/models/override.rb +6 -101
  27. data/lib/metronome_sdk/models/override_tier.rb +21 -0
  28. data/lib/metronome_sdk/models/overwrite_rate.rb +82 -0
  29. data/lib/metronome_sdk/models/payment_gate_config.rb +149 -0
  30. data/lib/metronome_sdk/models/payment_gate_config_v2.rb +149 -0
  31. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +100 -0
  32. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +102 -0
  33. data/lib/metronome_sdk/models/pro_service.rb +2 -1
  34. data/lib/metronome_sdk/models/recurring_commit_subscription_config.rb +51 -0
  35. data/lib/metronome_sdk/models/schedule_point_in_time.rb +14 -1
  36. data/lib/metronome_sdk/models/scheduled_charge.rb +2 -1
  37. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +44 -0
  38. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +44 -0
  39. data/lib/metronome_sdk/models/subscription.rb +227 -0
  40. data/lib/metronome_sdk/models/update_base_threshold_commit.rb +36 -0
  41. data/lib/metronome_sdk/models/v1/alert_create_params.rb +4 -6
  42. data/lib/metronome_sdk/models/v1/billable_metric_create_params.rb +1 -2
  43. data/lib/metronome_sdk/models/v1/billable_metric_list_response.rb +3 -3
  44. data/lib/metronome_sdk/models/v1/billable_metric_retrieve_response.rb +4 -7
  45. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +110 -415
  46. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_params.rb +7 -16
  47. data/lib/metronome_sdk/models/v1/contract_create_params.rb +287 -1480
  48. data/lib/metronome_sdk/models/v1/contract_list_balances_response.rb +6 -23
  49. data/lib/metronome_sdk/models/v1/contract_list_response.rb +3 -1153
  50. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rb +2 -6
  51. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rb +5 -50
  52. data/lib/metronome_sdk/models/v1/contract_retrieve_response.rb +3 -1154
  53. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_params.rb +1 -3
  54. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +9 -1
  55. data/lib/metronome_sdk/models/v1/contracts/product_list_response.rb +8 -1
  56. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_response.rb +8 -1
  57. data/lib/metronome_sdk/models/v1/contracts/quantity_rounding.rb +1 -4
  58. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_params.rb +4 -7
  59. data/lib/metronome_sdk/models/v1/contracts/rate_card_list_response.rb +10 -1
  60. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rb +2 -6
  61. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rb +5 -50
  62. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rb +10 -1
  63. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_params.rb +1 -3
  64. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_params.rb +1 -3
  65. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +6 -61
  66. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +3 -49
  67. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +4 -51
  68. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rb +2 -6
  69. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rb +5 -49
  70. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_response.rb +103 -123
  71. data/lib/metronome_sdk/models/v1/credit_grant_list_response.rb +3 -5
  72. data/lib/metronome_sdk/models/v1/custom_field_list_keys_params.rb +1 -3
  73. data/lib/metronome_sdk/models/v1/custom_field_list_keys_response.rb +41 -58
  74. data/lib/metronome_sdk/models/v1/custom_field_set_values_params.rb +5 -1
  75. data/lib/metronome_sdk/models/v1/customer.rb +2 -1
  76. data/lib/metronome_sdk/models/v1/customer_create_params.rb +37 -11
  77. data/lib/metronome_sdk/models/v1/customer_detail.rb +2 -1
  78. data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_response.rb +3 -3
  79. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +1 -3
  80. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rb +28 -0
  81. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rb +128 -0
  82. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb +143 -0
  83. data/lib/metronome_sdk/models/v1/customers/alert_list_params.rb +1 -3
  84. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +30 -1
  85. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +2 -0
  86. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +2 -0
  87. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +20 -61
  88. data/lib/metronome_sdk/models/v1/customers/credit_create_params.rb +6 -48
  89. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +8 -16
  90. data/lib/metronome_sdk/models/v1/customers/invoice.rb +68 -43
  91. data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_params.rb +1 -4
  92. data/lib/metronome_sdk/models/v1/customers/plan_add_params.rb +2 -6
  93. data/lib/metronome_sdk/models/v1/customers/plan_list_response.rb +2 -1
  94. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +4 -11
  95. data/lib/metronome_sdk/models/v1/plan_detail.rb +9 -5
  96. data/lib/metronome_sdk/models/v1/plan_list_charges_response.rb +2 -1
  97. data/lib/metronome_sdk/models/v1/plan_list_customers_response.rb +2 -1
  98. data/lib/metronome_sdk/models/v1/plan_list_response.rb +5 -1
  99. data/lib/metronome_sdk/models/v1/usage_ingest_params.rb +1 -4
  100. data/lib/metronome_sdk/models/v1/usage_list_params.rb +1 -3
  101. data/lib/metronome_sdk/models/v1/usage_list_response.rb +45 -62
  102. data/lib/metronome_sdk/models/v1/usage_search_response.rb +4 -7
  103. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +38 -58
  104. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +35 -49
  105. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +469 -2302
  106. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +358 -2414
  107. data/lib/metronome_sdk/models/v2/contract_list_response.rb +3 -4520
  108. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +3 -4528
  109. data/lib/metronome_sdk/models.rb +38 -0
  110. data/lib/metronome_sdk/resources/v1/alerts.rb +72 -2
  111. data/lib/metronome_sdk/resources/v1/audit_logs.rb +39 -4
  112. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +54 -4
  113. data/lib/metronome_sdk/resources/v1/contracts/products.rb +27 -6
  114. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rb +7 -2
  115. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +10 -2
  116. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +109 -10
  117. data/lib/metronome_sdk/resources/v1/contracts.rb +254 -18
  118. data/lib/metronome_sdk/resources/v1/credit_grants.rb +2 -1
  119. data/lib/metronome_sdk/resources/v1/custom_fields.rb +51 -14
  120. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +103 -8
  121. data/lib/metronome_sdk/resources/v1/customers/commits.rb +119 -9
  122. data/lib/metronome_sdk/resources/v1/customers/credits.rb +104 -8
  123. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +124 -8
  124. data/lib/metronome_sdk/resources/v1/customers.rb +169 -12
  125. data/lib/metronome_sdk/resources/v1/dashboards.rb +29 -3
  126. data/lib/metronome_sdk/resources/v1/invoices.rb +23 -2
  127. data/lib/metronome_sdk/resources/v1/pricing_units.rb +6 -1
  128. data/lib/metronome_sdk/resources/v1/services.rb +6 -4
  129. data/lib/metronome_sdk/resources/v1/usage.rb +185 -12
  130. data/lib/metronome_sdk/resources/v2/contracts.rb +118 -18
  131. data/lib/metronome_sdk/version.rb +1 -1
  132. data/lib/metronome_sdk.rb +24 -3
  133. data/rbi/metronome_sdk/errors.rbi +2 -2
  134. data/rbi/metronome_sdk/internal/body_cursor_page.rbi +22 -0
  135. data/rbi/metronome_sdk/internal/cursor_page_without_limit.rbi +22 -0
  136. data/rbi/metronome_sdk/internal/type/converter.rbi +58 -0
  137. data/rbi/metronome_sdk/internal/type/union.rbi +9 -2
  138. data/rbi/metronome_sdk/models/base_threshold_commit.rbi +58 -0
  139. data/rbi/metronome_sdk/models/commit.rbi +26 -348
  140. data/rbi/metronome_sdk/models/commit_hierarchy_configuration.rbi +280 -0
  141. data/rbi/metronome_sdk/models/commit_rate.rbi +85 -0
  142. data/rbi/metronome_sdk/models/commit_specifier.rbi +71 -0
  143. data/rbi/metronome_sdk/models/commit_specifier_input.rbi +74 -0
  144. data/rbi/metronome_sdk/models/contract.rbi +768 -0
  145. data/rbi/metronome_sdk/models/contract_v2.rbi +5822 -0
  146. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +184 -2507
  147. data/rbi/metronome_sdk/models/credit.rbi +10 -348
  148. data/rbi/metronome_sdk/models/discount.rbi +2 -0
  149. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +180 -0
  150. data/rbi/metronome_sdk/models/override.rbi +8 -193
  151. data/rbi/metronome_sdk/models/override_tier.rbi +29 -0
  152. data/rbi/metronome_sdk/models/overwrite_rate.rbi +137 -0
  153. data/rbi/metronome_sdk/models/payment_gate_config.rbi +312 -0
  154. data/rbi/metronome_sdk/models/payment_gate_config_v2.rbi +321 -0
  155. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +183 -0
  156. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +188 -0
  157. data/rbi/metronome_sdk/models/pro_service.rbi +2 -0
  158. data/rbi/metronome_sdk/models/recurring_commit_subscription_config.rbi +125 -0
  159. data/rbi/metronome_sdk/models/schedule_point_in_time.rbi +17 -1
  160. data/rbi/metronome_sdk/models/scheduled_charge.rbi +2 -0
  161. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +76 -0
  162. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -0
  163. data/rbi/metronome_sdk/models/subscription.rbi +460 -0
  164. data/rbi/metronome_sdk/models/update_base_threshold_commit.rbi +61 -0
  165. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +6 -3
  166. data/rbi/metronome_sdk/models/v1/billable_metric_list_response.rbi +2 -0
  167. data/rbi/metronome_sdk/models/v1/billable_metric_retrieve_response.rbi +2 -0
  168. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +120 -771
  169. data/rbi/metronome_sdk/models/v1/contract_create_historical_invoices_params.rbi +2 -0
  170. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1613 -4069
  171. data/rbi/metronome_sdk/models/v1/contract_list_balances_response.rbi +8 -59
  172. data/rbi/metronome_sdk/models/v1/contract_list_response.rbi +5 -2420
  173. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbi +6 -129
  174. data/rbi/metronome_sdk/models/v1/contract_retrieve_response.rbi +4 -2419
  175. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +11 -0
  176. data/rbi/metronome_sdk/models/v1/contracts/product_list_response.rbi +2 -0
  177. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_response.rbi +2 -0
  178. data/rbi/metronome_sdk/models/v1/contracts/rate_card_create_params.rbi +2 -0
  179. data/rbi/metronome_sdk/models/v1/contracts/rate_card_list_response.rbi +2 -0
  180. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbi +6 -129
  181. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbi +2 -0
  182. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +4 -129
  183. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +4 -129
  184. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +4 -129
  185. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbi +6 -129
  186. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_response.rbi +147 -198
  187. data/rbi/metronome_sdk/models/v1/credit_grant_list_response.rbi +2 -0
  188. data/rbi/metronome_sdk/models/v1/custom_field_list_keys_response.rbi +117 -165
  189. data/rbi/metronome_sdk/models/v1/custom_field_set_values_params.rbi +8 -1
  190. data/rbi/metronome_sdk/models/v1/customer.rbi +2 -0
  191. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +88 -3
  192. data/rbi/metronome_sdk/models/v1/customer_detail.rbi +2 -0
  193. data/rbi/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbi +2 -0
  194. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbi +51 -0
  195. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbi +265 -0
  196. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbi +348 -0
  197. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +60 -0
  198. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +10 -0
  199. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +10 -0
  200. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +19 -90
  201. data/rbi/metronome_sdk/models/v1/customers/credit_create_params.rbi +6 -90
  202. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +6 -3
  203. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +76 -0
  204. data/rbi/metronome_sdk/models/v1/customers/plan_list_response.rbi +2 -0
  205. data/rbi/metronome_sdk/models/v1/plan_detail.rbi +2 -0
  206. data/rbi/metronome_sdk/models/v1/plan_list_charges_response.rbi +2 -0
  207. data/rbi/metronome_sdk/models/v1/plan_list_customers_response.rbi +2 -0
  208. data/rbi/metronome_sdk/models/v1/plan_list_response.rbi +8 -1
  209. data/rbi/metronome_sdk/models/v1/usage_list_response.rbi +45 -86
  210. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +2 -0
  211. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +66 -76
  212. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +66 -76
  213. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +3563 -7329
  214. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1181 -6070
  215. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +5 -9867
  216. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +6 -9866
  217. data/rbi/metronome_sdk/models.rbi +44 -0
  218. data/rbi/metronome_sdk/resources/v1/alerts.rbi +72 -2
  219. data/rbi/metronome_sdk/resources/v1/audit_logs.rbi +39 -4
  220. data/rbi/metronome_sdk/resources/v1/billable_metrics.rbi +54 -4
  221. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +27 -5
  222. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rbi +7 -2
  223. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +10 -3
  224. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards.rbi +109 -9
  225. data/rbi/metronome_sdk/resources/v1/contracts.rbi +257 -16
  226. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +5 -1
  227. data/rbi/metronome_sdk/resources/v1/custom_fields.rbi +57 -14
  228. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +108 -5
  229. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +119 -10
  230. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +104 -9
  231. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +123 -7
  232. data/rbi/metronome_sdk/resources/v1/customers.rbi +156 -11
  233. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +29 -3
  234. data/rbi/metronome_sdk/resources/v1/invoices.rbi +23 -2
  235. data/rbi/metronome_sdk/resources/v1/pricing_units.rbi +6 -1
  236. data/rbi/metronome_sdk/resources/v1/services.rbi +6 -4
  237. data/rbi/metronome_sdk/resources/v1/usage.rbi +188 -12
  238. data/rbi/metronome_sdk/resources/v2/contracts.rbi +128 -23
  239. data/sig/metronome_sdk/internal/body_cursor_page.rbs +13 -0
  240. data/sig/metronome_sdk/internal/cursor_page_without_limit.rbs +13 -0
  241. data/sig/metronome_sdk/internal/type/converter.rbs +17 -0
  242. data/sig/metronome_sdk/internal/type/union.rbs +2 -2
  243. data/sig/metronome_sdk/models/base_threshold_commit.rbs +26 -0
  244. data/sig/metronome_sdk/models/commit.rbs +17 -170
  245. data/sig/metronome_sdk/models/commit_hierarchy_configuration.rbs +117 -0
  246. data/sig/metronome_sdk/models/commit_rate.rbs +48 -0
  247. data/sig/metronome_sdk/models/commit_specifier.rbs +47 -0
  248. data/sig/metronome_sdk/models/commit_specifier_input.rbs +47 -0
  249. data/sig/metronome_sdk/models/contract.rbs +398 -0
  250. data/sig/metronome_sdk/models/contract_v2.rbs +2881 -0
  251. data/sig/metronome_sdk/models/contract_without_amendments.rbs +54 -976
  252. data/sig/metronome_sdk/models/credit.rbs +12 -170
  253. data/sig/metronome_sdk/models/hierarchy_configuration.rbs +71 -0
  254. data/sig/metronome_sdk/models/override.rbs +12 -101
  255. data/sig/metronome_sdk/models/override_tier.rbs +17 -0
  256. data/sig/metronome_sdk/models/overwrite_rate.rbs +78 -0
  257. data/sig/metronome_sdk/models/payment_gate_config.rbs +123 -0
  258. data/sig/metronome_sdk/models/payment_gate_config_v2.rbs +123 -0
  259. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +82 -0
  260. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +82 -0
  261. data/sig/metronome_sdk/models/recurring_commit_subscription_config.rbs +51 -0
  262. data/sig/metronome_sdk/models/schedule_point_in_time.rbs +7 -0
  263. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +35 -0
  264. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +35 -0
  265. data/sig/metronome_sdk/models/subscription.rbs +215 -0
  266. data/sig/metronome_sdk/models/update_base_threshold_commit.rbs +28 -0
  267. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +4 -2
  268. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +62 -343
  269. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +218 -1234
  270. data/sig/metronome_sdk/models/v1/contract_list_balances_response.rbs +4 -25
  271. data/sig/metronome_sdk/models/v1/contract_list_response.rbs +4 -1041
  272. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbs +6 -54
  273. data/sig/metronome_sdk/models/v1/contract_retrieve_response.rbs +4 -1041
  274. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +7 -0
  275. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbs +6 -54
  276. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +6 -54
  277. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +6 -54
  278. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +6 -54
  279. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbs +6 -54
  280. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_response.rbs +72 -94
  281. data/sig/metronome_sdk/models/v1/custom_field_list_keys_response.rbs +53 -75
  282. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +31 -4
  283. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbs +32 -0
  284. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbs +113 -0
  285. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbs +133 -0
  286. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +21 -0
  287. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +7 -1
  288. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +6 -1
  289. data/sig/metronome_sdk/models/v1/customers/commit_create_params.rbs +13 -50
  290. data/sig/metronome_sdk/models/v1/customers/credit_create_params.rbs +6 -50
  291. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +4 -2
  292. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +5 -0
  293. data/sig/metronome_sdk/models/v1/usage_list_response.rbs +33 -55
  294. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +24 -43
  295. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +24 -43
  296. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +400 -1911
  297. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +256 -2249
  298. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +4 -4426
  299. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +4 -4426
  300. data/sig/metronome_sdk/models.rbs +38 -0
  301. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +1 -0
  302. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -1
  303. data/sig/metronome_sdk/resources/v1/contracts.rbs +3 -3
  304. data/sig/metronome_sdk/resources/v1/credit_grants.rbs +1 -1
  305. data/sig/metronome_sdk/resources/v1/custom_fields.rbs +1 -1
  306. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +2 -1
  307. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +2 -2
  308. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +2 -2
  309. data/sig/metronome_sdk/resources/v1/customers.rbs +11 -0
  310. data/sig/metronome_sdk/resources/v1/usage.rbs +1 -1
  311. data/sig/metronome_sdk/resources/v2/contracts.rbs +9 -4
  312. metadata +74 -11
  313. data/lib/metronome_sdk/models/v1/customers/alert_list_response.rb +0 -29
  314. data/lib/metronome_sdk/models/v1/customers/commit_list_response.rb +0 -26
  315. data/lib/metronome_sdk/models/v1/customers/credit_list_response.rb +0 -26
  316. data/rbi/metronome_sdk/models/v1/customers/alert_list_response.rbi +0 -46
  317. data/rbi/metronome_sdk/models/v1/customers/commit_list_response.rbi +0 -45
  318. data/rbi/metronome_sdk/models/v1/customers/credit_list_response.rbi +0 -45
  319. data/sig/metronome_sdk/models/v1/customers/alert_list_response.rbs +0 -29
  320. data/sig/metronome_sdk/models/v1/customers/commit_list_response.rbs +0 -26
  321. data/sig/metronome_sdk/models/v1/customers/credit_list_response.rbs +0 -26
@@ -1,10 +1,25 @@
1
1
  # typed: strong
2
2
 
3
3
  module MetronomeSDK
4
+ BaseThresholdCommit = MetronomeSDK::Models::BaseThresholdCommit
5
+
4
6
  BaseUsageFilter = MetronomeSDK::Models::BaseUsageFilter
5
7
 
6
8
  Commit = MetronomeSDK::Models::Commit
7
9
 
10
+ CommitHierarchyConfiguration =
11
+ MetronomeSDK::Models::CommitHierarchyConfiguration
12
+
13
+ CommitRate = MetronomeSDK::Models::CommitRate
14
+
15
+ CommitSpecifier = MetronomeSDK::Models::CommitSpecifier
16
+
17
+ CommitSpecifierInput = MetronomeSDK::Models::CommitSpecifierInput
18
+
19
+ Contract = MetronomeSDK::Models::Contract
20
+
21
+ ContractV2 = MetronomeSDK::Models::ContractV2
22
+
8
23
  ContractWithoutAmendments = MetronomeSDK::Models::ContractWithoutAmendments
9
24
 
10
25
  Credit = MetronomeSDK::Models::Credit
@@ -15,24 +30,53 @@ module MetronomeSDK
15
30
 
16
31
  EventTypeFilter = MetronomeSDK::Models::EventTypeFilter
17
32
 
33
+ HierarchyConfiguration = MetronomeSDK::Models::HierarchyConfiguration
34
+
18
35
  ID = MetronomeSDK::Models::ID
19
36
 
20
37
  Override = MetronomeSDK::Models::Override
21
38
 
39
+ OverrideTier = MetronomeSDK::Models::OverrideTier
40
+
41
+ OverwriteRate = MetronomeSDK::Models::OverwriteRate
42
+
43
+ PaymentGateConfig = MetronomeSDK::Models::PaymentGateConfig
44
+
45
+ PaymentGateConfigV2 = MetronomeSDK::Models::PaymentGateConfigV2
46
+
47
+ PrepaidBalanceThresholdConfiguration =
48
+ MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration
49
+
50
+ PrepaidBalanceThresholdConfigurationV2 =
51
+ MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2
52
+
22
53
  PropertyFilter = MetronomeSDK::Models::PropertyFilter
23
54
 
24
55
  ProService = MetronomeSDK::Models::ProService
25
56
 
26
57
  Rate = MetronomeSDK::Models::Rate
27
58
 
59
+ RecurringCommitSubscriptionConfig =
60
+ MetronomeSDK::Models::RecurringCommitSubscriptionConfig
61
+
28
62
  ScheduledCharge = MetronomeSDK::Models::ScheduledCharge
29
63
 
30
64
  ScheduleDuration = MetronomeSDK::Models::ScheduleDuration
31
65
 
32
66
  SchedulePointInTime = MetronomeSDK::Models::SchedulePointInTime
33
67
 
68
+ SpendThresholdConfiguration =
69
+ MetronomeSDK::Models::SpendThresholdConfiguration
70
+
71
+ SpendThresholdConfigurationV2 =
72
+ MetronomeSDK::Models::SpendThresholdConfigurationV2
73
+
74
+ Subscription = MetronomeSDK::Models::Subscription
75
+
34
76
  Tier = MetronomeSDK::Models::Tier
35
77
 
78
+ UpdateBaseThresholdCommit = MetronomeSDK::Models::UpdateBaseThresholdCommit
79
+
36
80
  V1 = MetronomeSDK::Models::V1
37
81
 
38
82
  V2 = MetronomeSDK::Models::V2
@@ -4,7 +4,51 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Alerts
7
- # Create a new alert
7
+ # Create a new alert to monitor customer spending, balances, and billing metrics
8
+ # in real-time. Metronome's alert system provides industry-leading speed with
9
+ # immediate evaluation capabilities, enabling you to proactively manage customer
10
+ # accounts and prevent revenue leakage.
11
+ #
12
+ # This endpoint creates configurable alerts that continuously monitor various
13
+ # billing thresholds including spend limits, credit balances, commitment
14
+ # utilization, and invoice totals. Alerts can be configured globally for all
15
+ # customers or targeted to specific customer accounts. Custom fields can be used
16
+ # on certain alert types to further target alerts to groups of customers.
17
+ #
18
+ # ### Use this endpoint to:
19
+ #
20
+ # - Proactively monitor customer spending patterns to prevent unexpected overages
21
+ # or credit exhaustion
22
+ # - Automate notifications when customers approach commitment limits or credit
23
+ # thresholds
24
+ # - Enable real-time intervention for accounts at risk of churn or payment issues
25
+ # - Scale billing operations by automating threshold-based workflows and
26
+ # notifications
27
+ #
28
+ # ### Key response fields:
29
+ #
30
+ # A successful response returns a CustomerAlert object containing:
31
+ #
32
+ # - The alert configuration with its unique ID and current status
33
+ # - The customer's evaluation status (ok, in_alarm, or evaluating)
34
+ # - Alert metadata including type, threshold values, and update timestamps
35
+ #
36
+ # ### Usage guidelines:
37
+ #
38
+ # - Immediate evaluation: Set `evaluate_on_create` : `true` (default) for instant
39
+ # evaluation against existing customers
40
+ # - Uniqueness constraints: Each alert must have a unique `uniqueness_key` within
41
+ # your organization. Use `release_uniqueness_key` : `true` when archiving to
42
+ # reuse keys
43
+ # - Alert type requirements: Different alert types require specific fields (e.g.,
44
+ # `billable_metric_id` for usage alerts, `credit_type_id` for credit-based
45
+ # alerts)
46
+ # - Webhook delivery: Alerts trigger webhook notifications for real-time
47
+ # integration with your systems. Configure webhook endpoints before creating
48
+ # alerts
49
+ # - Performance at scale: Metronome's event-driven architecture processes alert
50
+ # evaluations in real-time as usage events stream in, unlike competitors who
51
+ # rely on periodic polling or batch evaluation cycles
8
52
  sig do
9
53
  params(
10
54
  alert_type:
@@ -74,7 +118,33 @@ module MetronomeSDK
74
118
  )
75
119
  end
76
120
 
77
- # Archive an existing alert
121
+ # Permanently disable an alert and remove it from active monitoring across all
122
+ # customers. Archived alerts stop evaluating immediately and can optionally
123
+ # release their uniqueness key for reuse in future alert configurations.
124
+ #
125
+ # ### Use this endpoint to:
126
+ #
127
+ # - Decommission alerts that are no longer needed
128
+ # - Clean up test or deprecated alert configurations
129
+ # - Free up uniqueness keys for reuse with new alerts
130
+ # - Stop alert evaluations without losing historical configuration data
131
+ # - Disable outdated monitoring rules during pricing model transitions
132
+ #
133
+ # ### Key response fields:
134
+ #
135
+ # - data: Object containing the archived alert's ID
136
+ # - Alert evaluation stops immediately for all affected customers
137
+ # - Historical alert data and configurations remain accessible for audit purposes
138
+ #
139
+ # ### Usage guidelines:
140
+ #
141
+ # - Irreversible for evaluation: Archived alerts cannot be re-enabled; create a
142
+ # new alert to resume monitoring
143
+ # - Uniqueness key handling: Set `release_uniqueness_key` : `true` to reuse the
144
+ # key in future alerts
145
+ # - Immediate effect: Alert evaluation stops instantly across all customers
146
+ # - Historical preservation: Archive operation maintains alert history and
147
+ # configuration for compliance and auditing
78
148
  sig do
79
149
  params(
80
150
  id: String,
@@ -4,10 +4,45 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class AuditLogs
7
- # Retrieves a range of audit logs. If no further audit logs are currently
8
- # available, the data array will be empty. As new audit logs are created,
9
- # subsequent requests using the same next_page value will be in the returned data
10
- # array, ensuring a continuous and uninterrupted reading of audit logs.
7
+ # Get a comprehensive audit trail of all operations performed in your Metronome
8
+ # account, whether initiated through the API, web interface, or automated
9
+ # processes. This endpoint provides detailed logs of who did what and when,
10
+ # enabling compliance reporting, security monitoring, and operational
11
+ # troubleshooting across all interaction channels.
12
+ #
13
+ # ### Use this endpoint to:
14
+ #
15
+ # - Monitor all account activity for security and compliance purposes
16
+ # - Track configuration changes regardless of source (API, UI, or system)
17
+ # - Investigate issues by reviewing historical operations
18
+ #
19
+ # ### Key response fields:
20
+ #
21
+ # An array of AuditLog objects containing:
22
+ #
23
+ # - id: Unique identifier for the audit log entry
24
+ # - timestamp: When the action occurred (RFC 3339 format)
25
+ # - actor: Information about who performed the action
26
+ # - request: Details including request ID, IP address, and user agent
27
+ # - `resource_type`: The type of resource affected (e.g., customer, contract,
28
+ # invoice)
29
+ # - `resource_id`: The specific resource identifier
30
+ # - `action`: The operation performed
31
+ # - `next_page`: Cursor for continuous log retrieval
32
+ #
33
+ # ### Usage guidelines:
34
+ #
35
+ # - Continuous retrieval: The next_page token enables uninterrupted log
36
+ # streaming—save it between requests to ensure no logs are missed
37
+ # - Empty responses: An empty data array means no new logs yet; continue polling
38
+ # with the same next_page token
39
+ # - Date filtering:
40
+ # - `starting_on`: Earliest logs to return (inclusive)
41
+ # - `ending_before`: Latest logs to return (exclusive)
42
+ # - Cannot be used with `next_page`
43
+ # - Resource filtering: Must specify both `resource_type` and `resource_id`
44
+ # together
45
+ # - Sort order: Default is `date_asc`; use `date_desc` for newest first
11
46
  sig do
12
47
  params(
13
48
  ending_before: Time,
@@ -4,7 +4,35 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class BillableMetrics
7
- # Creates a new Billable Metric.
7
+ # Create billable metrics programmatically with this endpoint—an essential step in
8
+ # configuring your pricing and packaging in Metronome.
9
+ #
10
+ # A billable metric is a customizable query that filters and aggregates events
11
+ # from your event stream. These metrics are continuously tracked as usage data
12
+ # enters Metronome through the ingestion pipeline. The ingestion process
13
+ # transforms raw usage data into actionable pricing metrics, enabling accurate
14
+ # metering and billing for your products.
15
+ #
16
+ # ### Use this endpoint to:
17
+ #
18
+ # - Create individual or multiple billable metrics as part of a setup workflow.
19
+ # - Automate the entire pricing configuration process, from metric creation to
20
+ # customer contract setup.
21
+ # - Define metrics using either standard filtering/aggregation or a custom SQL
22
+ # query.
23
+ #
24
+ # ### Key response fields:
25
+ #
26
+ # - The ID of the billable metric that was created
27
+ # - The created billable metric will be available to be used in Products, usage
28
+ # endpoints, and alerts.
29
+ #
30
+ # ### Usage guidelines:
31
+ #
32
+ # - Metrics defined using standard filtering and aggregation are Streaming
33
+ # billable metrics, which have been optimized for ultra low latency and high
34
+ # throughput workflows.
35
+ # - Use SQL billable metrics if you require more flexible aggregation options.
8
36
  sig do
9
37
  params(
10
38
  name: String,
@@ -47,7 +75,17 @@ module MetronomeSDK
47
75
  )
48
76
  end
49
77
 
50
- # Get a billable metric.
78
+ # Retrieves the complete configuration for a specific billable metric by its ID.
79
+ # Use this to review billable metric setup before associating it with products.
80
+ # Returns the metric's `name`, `event_type_filter`, `property_filters`,
81
+ # `aggregation_type`, `aggregation_key`, `group_keys`, `custom fields`, and
82
+ # `SQL query` (if it's a SQL billable metric).
83
+ #
84
+ # Important:
85
+ #
86
+ # - Archived billable metrics will include an `archived_at` timestamp; they no
87
+ # longer process new usage events but remain accessible for historical
88
+ # reference.
51
89
  sig do
52
90
  params(
53
91
  billable_metric_id: String,
@@ -57,7 +95,11 @@ module MetronomeSDK
57
95
  def retrieve(billable_metric_id:, request_options: {})
58
96
  end
59
97
 
60
- # List all billable metrics.
98
+ # Retrieves all billable metrics with their complete configurations. Use this for
99
+ # programmatic discovery and management of billable metrics, such as associating
100
+ # metrics to products and auditing for orphaned or archived metrics. Important:
101
+ # Archived metrics are excluded by default; use `include_archived`=`true`
102
+ # parameter to include them.
61
103
  sig do
62
104
  params(
63
105
  include_archived: T::Boolean,
@@ -81,7 +123,15 @@ module MetronomeSDK
81
123
  )
82
124
  end
83
125
 
84
- # Archive an existing billable metric.
126
+ # Use this endpoint to retire billable metrics that are no longer used. After a
127
+ # billable metric is archived, that billable metric can no longer be used in any
128
+ # new Products to define how that product should be metered. If you archive a
129
+ # billable metric that is already associated with a Product, the Product will
130
+ # continue to function as usual, metering based on the definition of the archived
131
+ # billable metric.
132
+ #
133
+ # Archived billable metrics will be returned on the `getBillableMetric` and
134
+ # `listBillableMetrics` endpoints with a populated `archived_at` field.
85
135
  sig do
86
136
  params(
87
137
  id: String,
@@ -5,7 +5,11 @@ module MetronomeSDK
5
5
  class V1
6
6
  class Contracts
7
7
  class Products
8
- # Create a new product
8
+ # Create a new product object. Products in Metronome represent your company's
9
+ # individual product or service offerings. A Product can be thought of as the
10
+ # basic unit of a line item on the invoice. This is analogous to SKUs or items in
11
+ # an ERP system. Give the product a meaningful name as they will appear on
12
+ # customer invoices.
9
13
  sig do
10
14
  params(
11
15
  name: String,
@@ -14,6 +18,7 @@ module MetronomeSDK
14
18
  billable_metric_id: String,
15
19
  composite_product_ids: T::Array[String],
16
20
  composite_tags: T::Array[String],
21
+ custom_fields: T::Hash[Symbol, String],
17
22
  exclude_free_usage: T::Boolean,
18
23
  is_refundable: T::Boolean,
19
24
  netsuite_internal_item_id: String,
@@ -44,6 +49,8 @@ module MetronomeSDK
44
49
  composite_product_ids: nil,
45
50
  # Required for COMPOSITE products
46
51
  composite_tags: nil,
52
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
53
+ custom_fields: nil,
47
54
  # Beta feature only available for composite products. If true, products with $0
48
55
  # will not be included when computing composite usage. Defaults to false
49
56
  exclude_free_usage: nil,
@@ -81,7 +88,7 @@ module MetronomeSDK
81
88
  )
82
89
  end
83
90
 
84
- # Get a specific product
91
+ # Retrieve a product by its ID, including all metadata and historical changes.
85
92
  sig do
86
93
  params(
87
94
  id: String,
@@ -93,7 +100,17 @@ module MetronomeSDK
93
100
  def retrieve(id:, request_options: {})
94
101
  end
95
102
 
96
- # Update a product
103
+ # Updates a product's configuration while maintaining billing continuity for
104
+ # active customers. Use this endpoint to modify product names, metrics, pricing
105
+ # rules, and composite settings without disrupting ongoing billing cycles. Changes
106
+ # are scheduled using the starting_at timestamp, which must be on an hour
107
+ # boundary—set future dates to schedule updates ahead of time, or past dates for
108
+ # retroactive changes. Returns the updated product ID upon success.
109
+ #
110
+ # ### Usage guidance:
111
+ #
112
+ # - Product type cannot be changed after creation. For incorrect product types,
113
+ # create a new product and archive the original instead.
97
114
  sig do
98
115
  params(
99
116
  product_id: String,
@@ -180,7 +197,9 @@ module MetronomeSDK
180
197
  )
181
198
  end
182
199
 
183
- # List products
200
+ # Get a paginated list of all products in your organization with their complete
201
+ # configuration, version history, and metadata. By default excludes archived
202
+ # products unless explicitly requested via the `archive_filter` parameter.
184
203
  sig do
185
204
  params(
186
205
  limit: Integer,
@@ -206,7 +225,10 @@ module MetronomeSDK
206
225
  )
207
226
  end
208
227
 
209
- # Archive a product
228
+ # Archive a product. Any current rate cards associated with this product will
229
+ # continue to function as normal. However, it will no longer be available as an
230
+ # option for newly created rates. Once you archive a product, you can still
231
+ # retrieve it in the UI and API, but you cannot unarchive it.
210
232
  sig do
211
233
  params(
212
234
  product_id: String,
@@ -6,7 +6,10 @@ module MetronomeSDK
6
6
  class Contracts
7
7
  class RateCards
8
8
  class ProductOrders
9
- # Updates ordering of specified products
9
+ # The ordering of products on a rate card determines the order in which the
10
+ # products will appear on customers' invoices. Use this endpoint to set the order
11
+ # of specific products on the rate card by moving them relative to their current
12
+ # location.
10
13
  sig do
11
14
  params(
12
15
  product_moves:
@@ -27,7 +30,9 @@ module MetronomeSDK
27
30
  )
28
31
  end
29
32
 
30
- # Sets the ordering of products within a rate card
33
+ # The ordering of products on a rate card determines the order in which the
34
+ # products will appear on customers' invoices. Use this endpoint to set the order
35
+ # of products on the rate card.
31
36
  sig do
32
37
  params(
33
38
  product_order: T::Array[String],
@@ -6,7 +6,15 @@ module MetronomeSDK
6
6
  class Contracts
7
7
  class RateCards
8
8
  class Rates
9
- # Get all rates for a rate card at a point in time
9
+ # Understand the rate schedule at a given timestamp, optionally filtering the list
10
+ # of rates returned based on properties such as `product_id` and
11
+ # `pricing_group_values`. For example, you may want to display the current price
12
+ # for a given product in your product experience - use this endpoint to fetch that
13
+ # information from its source of truth in Metronome.
14
+ #
15
+ # If you want to understand the rates for a specific customer's contract,
16
+ # inclusive of contract-level overrides, use the `getContractRateSchedule`
17
+ # endpoint.
10
18
  sig do
11
19
  params(
12
20
  at: Time,
@@ -52,8 +60,7 @@ module MetronomeSDK
52
60
  starting_at: Time,
53
61
  billing_frequency:
54
62
  MetronomeSDK::V1::Contracts::RateCards::RateAddParams::BillingFrequency::OrSymbol,
55
- commit_rate:
56
- MetronomeSDK::V1::Contracts::RateCards::RateAddParams::CommitRate::OrHash,
63
+ commit_rate: MetronomeSDK::CommitRate::OrHash,
57
64
  credit_type_id: String,
58
65
  custom_rate: T::Hash[Symbol, T.anything],
59
66
  ending_before: Time,
@@ -24,7 +24,39 @@ module MetronomeSDK
24
24
  end
25
25
  attr_reader :named_schedules
26
26
 
27
- # Create a new rate card
27
+ # In Metronome, the rate card is the central location for your pricing. Rate cards
28
+ # were built with new product launches and pricing changes in mind - you can
29
+ # update your products and pricing in one place, and that change will be
30
+ # automatically propagated across your customer cohorts. Most clients need only
31
+ # maintain one or a few rate cards within Metronome.
32
+ #
33
+ # ### Use this endpoint to:
34
+ #
35
+ # - Create a rate card with a name and description
36
+ # - Define the rate card's single underlying fiat currency, and any number of
37
+ # conversion rates between that fiat currency and custom pricing units. You can
38
+ # then add products and associated rates in the fiat currency or custom pricing
39
+ # unit for which you have defined a conversion rate.
40
+ # - Set aliases for the rate card. Aliases are human-readable names that you can
41
+ # use in the place of the id of the rate card when provisioning a customer's
42
+ # contract. By using an alias, you can easily create a contract and provision a
43
+ # customer by choosing the paygo rate card, without storing the rate card id in
44
+ # your internal systems. This is helpful when launching a new rate card for
45
+ # paygo customers, you can update the alias for paygo to be scheduled to be
46
+ # assigned to the new rate card without updating your code.
47
+ #
48
+ # ### Key response fields:
49
+ #
50
+ # - The ID of the rate card you just created
51
+ #
52
+ # ### Usage guidelines:
53
+ #
54
+ # - After creating a rate card, you can now use the addRate or addRates endpoints
55
+ # to add products and their prices to it
56
+ # - A rate card alias can only be used by one rate card at a time. If you create a
57
+ # contract with a rate card alias that is already in use by another rate card,
58
+ # the original rate card's alias schedule will be updated. The alias will
59
+ # reference the rate card to which it was most recently assigned.
28
60
  sig do
29
61
  params(
30
62
  name: String,
@@ -53,6 +85,7 @@ module MetronomeSDK
53
85
  aliases: nil,
54
86
  # Required when using custom pricing units in rates.
55
87
  credit_type_conversions: nil,
88
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
56
89
  custom_fields: nil,
57
90
  description: nil,
58
91
  # The Metronome ID of the credit type to associate with the rate card, defaults to
@@ -62,8 +95,9 @@ module MetronomeSDK
62
95
  )
63
96
  end
64
97
 
65
- # Get a specific rate card NOTE: Use `/contract-pricing/rate-cards/getRates` to
66
- # retrieve rate card rates.
98
+ # Return details for a specific rate card including name, description, and
99
+ # aliases. This endpoint does not return rates - use the dedicated getRates or
100
+ # getRateSchedule endpoints to understand the rates on a rate card.
67
101
  sig do
68
102
  params(
69
103
  id: String,
@@ -75,7 +109,58 @@ module MetronomeSDK
75
109
  def retrieve(id:, request_options: {})
76
110
  end
77
111
 
78
- # Update a rate card
112
+ # Update the metadata properties of an existing rate card, including its name,
113
+ # description, and aliases. This endpoint is designed for managing rate card
114
+ # identity and reference aliases rather than modifying pricing rates.
115
+ #
116
+ # Modifies the descriptive properties and alias configuration of a rate card
117
+ # without affecting the underlying pricing rates or schedules. This allows you to
118
+ # update how a rate card is identified and referenced throughout your system.
119
+ #
120
+ # ### Use this endpoint to:
121
+ #
122
+ # - Rate card renaming: Update display names or descriptions for organizational
123
+ # clarity
124
+ # - Alias management: Add, modify, or schedule alias transitions for seamless rate
125
+ # card migrations
126
+ # - Documentation updates: Keep rate card descriptions current with business
127
+ # context
128
+ # - Self-serve provisioning setup: Configure aliases to enable code-free rate card
129
+ # transitions
130
+ #
131
+ # #### Active contract impact:
132
+ #
133
+ # - Alias changes: Already-created contracts continue using their originally
134
+ # assigned rate cards.
135
+ # - Other changes made using this endpoint will only impact the Metronome UI.
136
+ #
137
+ # #### Grandfathering existing PLG customer pricing:
138
+ #
139
+ # - Rate card aliases support scheduled transitions, enabling seamless rate card
140
+ # migrations for new customers, allowing existing customers to be grandfathered
141
+ # into their existing prices without code. Note that there are multiple
142
+ # mechanisms to support grandfathering in Metronome.
143
+ #
144
+ # #### How scheduled aliases work for PLG grandfathering:
145
+ #
146
+ # Initial setup:
147
+ #
148
+ # - Add alias to current rate card: Assign a stable alias (e.g.,
149
+ # "standard-pricing") to your active rate card
150
+ # - Reference alias during contract creation: Configure your self-serve workflow
151
+ # to create contracts using `rate_card_alias` instead of direct `rate_card_id`
152
+ # - Automatic resolution: New contracts referencing the alias automatically
153
+ # resolve to the rate card associated with the alias at the point in time of
154
+ # provisioning
155
+ #
156
+ # #### Grandfathering process:
157
+ #
158
+ # - Create new rate card: Build your new rate card with updated pricing structure
159
+ # - Schedule alias transition: Add the same alias to the new rate card with a
160
+ # `starting_at` timestamp
161
+ # - Automatic cutover: Starting at the scheduled time, new contracts created in
162
+ # your PLG workflow using that alias will automatically reference the new rate
163
+ # card
79
164
  sig do
80
165
  params(
81
166
  rate_card_id: String,
@@ -104,8 +189,9 @@ module MetronomeSDK
104
189
  )
105
190
  end
106
191
 
107
- # List rate cards NOTE: Use `/contract-pricing/rate-cards/getRates` to retrieve
108
- # rate card rates.
192
+ # List all rate cards. Returns rate card IDs, names, descriptions, aliases, and
193
+ # other details. To view the rates associated with a given rate card, use the
194
+ # getRates or getRateSchedule endpoints.
109
195
  sig do
110
196
  params(
111
197
  limit: Integer,
@@ -129,7 +215,11 @@ module MetronomeSDK
129
215
  )
130
216
  end
131
217
 
132
- # Archive a rate card
218
+ # Permanently disable a rate card by archiving it, preventing use in new contracts
219
+ # while preserving existing contract pricing. Use this when retiring old pricing
220
+ # models, consolidating rate cards, or removing outdated pricing structures.
221
+ # Returns the archived rate card ID and stops the rate card from appearing in
222
+ # contract creation workflows.
133
223
  sig do
134
224
  params(
135
225
  id: String,
@@ -141,8 +231,18 @@ module MetronomeSDK
141
231
  def archive(id:, request_options: {})
142
232
  end
143
233
 
144
- # Get all rates for a rate card from starting_at (either in perpetuity or until
145
- # ending_before, if provided)
234
+ # A rate card defines the prices that you charge for your products. Rate cards
235
+ # support scheduled changes over time, to allow you to easily roll out pricing
236
+ # changes and new product launches across your customer base. Use this endpoint to
237
+ # understand the rate schedule `starting_at` a given date, optionally filtering
238
+ # the list of rates returned based on product id or pricing group values. For
239
+ # example, you may want to display a schedule of upcoming price changes for a
240
+ # given product in your product experience - use this endpoint to fetch that
241
+ # information from its source of truth in Metronome.
242
+ #
243
+ # If you want to understand the rates for a specific customer's contract,
244
+ # inclusive of contract-level overrides, use the `getContractRateSchedule`
245
+ # endpoint.
146
246
  sig do
147
247
  params(
148
248
  rate_card_id: String,