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
@@ -71,6 +71,7 @@ module MetronomeSDK
71
71
  sig { returns(String) }
72
72
  attr_accessor :id
73
73
 
74
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
74
75
  sig { returns(T::Hash[Symbol, String]) }
75
76
  attr_accessor :custom_fields
76
77
 
@@ -100,6 +101,7 @@ module MetronomeSDK
100
101
  end
101
102
  def self.new(
102
103
  id:,
104
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
103
105
  custom_fields:,
104
106
  customer_plan_id:,
105
107
  name:,
@@ -21,6 +21,7 @@ module MetronomeSDK
21
21
  sig { returns(String) }
22
22
  attr_accessor :name
23
23
 
24
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
24
25
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
25
26
  attr_reader :custom_fields
26
27
 
@@ -35,7 +36,13 @@ module MetronomeSDK
35
36
  custom_fields: T::Hash[Symbol, String]
36
37
  ).returns(T.attached_class)
37
38
  end
38
- def self.new(id:, description:, name:, custom_fields: nil)
39
+ def self.new(
40
+ id:,
41
+ description:,
42
+ name:,
43
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
44
+ custom_fields: nil
45
+ )
39
46
  end
40
47
 
41
48
  sig do
@@ -12,74 +12,59 @@ module MetronomeSDK
12
12
  )
13
13
  end
14
14
 
15
- sig do
16
- returns(T::Array[MetronomeSDK::Models::V1::UsageListResponse::Data])
17
- end
18
- attr_accessor :data
19
-
20
- sig { returns(T.nilable(String)) }
21
- attr_accessor :next_page
22
-
23
- sig do
24
- params(
25
- data:
26
- T::Array[
27
- MetronomeSDK::Models::V1::UsageListResponse::Data::OrHash
28
- ],
29
- next_page: T.nilable(String)
30
- ).returns(T.attached_class)
31
- end
32
- def self.new(data:, next_page:)
33
- end
34
-
35
- sig do
36
- override.returns(
37
- {
38
- data: T::Array[MetronomeSDK::Models::V1::UsageListResponse::Data],
39
- next_page: T.nilable(String)
40
- }
41
- )
42
- end
43
- def to_hash
44
- end
15
+ sig { returns(String) }
16
+ attr_accessor :billable_metric_id
45
17
 
46
- class Data < MetronomeSDK::Internal::Type::BaseModel
47
- OrHash =
48
- T.type_alias do
49
- T.any(
50
- MetronomeSDK::Models::V1::UsageListResponse::Data,
51
- MetronomeSDK::Internal::AnyHash
52
- )
53
- end
18
+ sig { returns(String) }
19
+ attr_accessor :billable_metric_name
54
20
 
55
- sig { returns(String) }
56
- attr_accessor :billable_metric_id
21
+ sig { returns(String) }
22
+ attr_accessor :customer_id
57
23
 
58
- sig { returns(String) }
59
- attr_accessor :billable_metric_name
24
+ sig { returns(Time) }
25
+ attr_accessor :end_timestamp
60
26
 
61
- sig { returns(String) }
62
- attr_accessor :customer_id
27
+ sig { returns(Time) }
28
+ attr_accessor :start_timestamp
63
29
 
64
- sig { returns(Time) }
65
- attr_accessor :end_timestamp
30
+ sig { returns(T.nilable(Float)) }
31
+ attr_accessor :value
66
32
 
67
- sig { returns(Time) }
68
- attr_accessor :start_timestamp
33
+ # Values will be either a number or null. Null indicates that there were no
34
+ # matches for the group_by value.
35
+ sig { returns(T.nilable(T::Hash[Symbol, T.nilable(Float)])) }
36
+ attr_reader :groups
69
37
 
70
- sig { returns(T.nilable(Float)) }
71
- attr_accessor :value
38
+ sig { params(groups: T::Hash[Symbol, T.nilable(Float)]).void }
39
+ attr_writer :groups
72
40
 
41
+ sig do
42
+ params(
43
+ billable_metric_id: String,
44
+ billable_metric_name: String,
45
+ customer_id: String,
46
+ end_timestamp: Time,
47
+ start_timestamp: Time,
48
+ value: T.nilable(Float),
49
+ groups: T::Hash[Symbol, T.nilable(Float)]
50
+ ).returns(T.attached_class)
51
+ end
52
+ def self.new(
53
+ billable_metric_id:,
54
+ billable_metric_name:,
55
+ customer_id:,
56
+ end_timestamp:,
57
+ start_timestamp:,
58
+ value:,
73
59
  # Values will be either a number or null. Null indicates that there were no
74
60
  # matches for the group_by value.
75
- sig { returns(T.nilable(T::Hash[Symbol, T.nilable(Float)])) }
76
- attr_reader :groups
77
-
78
- sig { params(groups: T::Hash[Symbol, T.nilable(Float)]).void }
79
- attr_writer :groups
61
+ groups: nil
62
+ )
63
+ end
80
64
 
81
- sig do
82
- params(
65
+ sig do
66
+ override.returns(
67
+ {
83
68
  billable_metric_id: String,
84
69
  billable_metric_name: String,
85
70
  customer_id: String,
@@ -87,36 +72,10 @@ module MetronomeSDK
87
72
  start_timestamp: Time,
88
73
  value: T.nilable(Float),
89
74
  groups: T::Hash[Symbol, T.nilable(Float)]
90
- ).returns(T.attached_class)
91
- end
92
- def self.new(
93
- billable_metric_id:,
94
- billable_metric_name:,
95
- customer_id:,
96
- end_timestamp:,
97
- start_timestamp:,
98
- value:,
99
- # Values will be either a number or null. Null indicates that there were no
100
- # matches for the group_by value.
101
- groups: nil
75
+ }
102
76
  )
103
- end
104
-
105
- sig do
106
- override.returns(
107
- {
108
- billable_metric_id: String,
109
- billable_metric_name: String,
110
- customer_id: String,
111
- end_timestamp: Time,
112
- start_timestamp: Time,
113
- value: T.nilable(Float),
114
- groups: T::Hash[Symbol, T.nilable(Float)]
115
- }
116
- )
117
- end
118
- def to_hash
119
- end
77
+ end
78
+ def to_hash
120
79
  end
121
80
  end
122
81
  end
@@ -206,6 +206,7 @@ module MetronomeSDK
206
206
  sig { params(archived_at: Time).void }
207
207
  attr_writer :archived_at
208
208
 
209
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
209
210
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
210
211
  attr_reader :custom_fields
211
212
 
@@ -300,6 +301,7 @@ module MetronomeSDK
300
301
  # RFC 3339 timestamp indicating when the billable metric was archived. If not
301
302
  # provided, the billable metric is not archived.
302
303
  archived_at: nil,
304
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
303
305
  custom_fields: nil,
304
306
  # An optional filtering rule to match the 'event_type' property of an event.
305
307
  event_type_filter: nil,
@@ -52,6 +52,18 @@ module MetronomeSDK
52
52
  sig { returns(T.nilable(T::Array[String])) }
53
53
  attr_accessor :applicable_product_tags
54
54
 
55
+ # Optional configuration for commit hierarchy access control
56
+ sig { returns(T.nilable(MetronomeSDK::CommitHierarchyConfiguration)) }
57
+ attr_reader :hierarchy_configuration
58
+
59
+ sig do
60
+ params(
61
+ hierarchy_configuration:
62
+ MetronomeSDK::CommitHierarchyConfiguration::OrHash
63
+ ).void
64
+ end
65
+ attr_writer :hierarchy_configuration
66
+
55
67
  # ID of contract to use for invoicing
56
68
  sig { returns(T.nilable(String)) }
57
69
  attr_reader :invoice_contract_id
@@ -87,19 +99,33 @@ module MetronomeSDK
87
99
  sig { params(product_id: String).void }
88
100
  attr_writer :product_id
89
101
 
90
- # List of filters that determine what kind of customer usage draws down a commit
91
- # or credit. A customer's usage needs to meet the condition of at least one of the
92
- # specifiers to contribute to a commit's or credit's drawdown. This field cannot
93
- # be used together with `applicable_product_ids` or `applicable_product_tags`.
94
- # Instead, to target usage by product or product tag, pass those values in the
95
- # body of `specifiers`.
102
+ # If provided, updates the commit to use the specified rate type for current and
103
+ # future invoices. Previously finalized invoices will need to be voided and
104
+ # regenerated to reflect the rate type change.
96
105
  sig do
97
106
  returns(
98
107
  T.nilable(
99
- T::Array[MetronomeSDK::V2::ContractEditCommitParams::Specifier]
108
+ MetronomeSDK::V2::ContractEditCommitParams::RateType::OrSymbol
100
109
  )
101
110
  )
102
111
  end
112
+ attr_reader :rate_type
113
+
114
+ sig do
115
+ params(
116
+ rate_type:
117
+ MetronomeSDK::V2::ContractEditCommitParams::RateType::OrSymbol
118
+ ).void
119
+ end
120
+ attr_writer :rate_type
121
+
122
+ # List of filters that determine what kind of customer usage draws down a commit
123
+ # or credit. A customer's usage needs to meet the condition of at least one of the
124
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
125
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
126
+ # Instead, to target usage by product or product tag, pass those values in the
127
+ # body of `specifiers`.
128
+ sig { returns(T.nilable(T::Array[MetronomeSDK::CommitSpecifierInput])) }
103
129
  attr_accessor :specifiers
104
130
 
105
131
  sig do
@@ -110,17 +136,17 @@ module MetronomeSDK
110
136
  MetronomeSDK::V2::ContractEditCommitParams::AccessSchedule::OrHash,
111
137
  applicable_product_ids: T.nilable(T::Array[String]),
112
138
  applicable_product_tags: T.nilable(T::Array[String]),
139
+ hierarchy_configuration:
140
+ MetronomeSDK::CommitHierarchyConfiguration::OrHash,
113
141
  invoice_contract_id: String,
114
142
  invoice_schedule:
115
143
  MetronomeSDK::V2::ContractEditCommitParams::InvoiceSchedule::OrHash,
116
144
  priority: T.nilable(Float),
117
145
  product_id: String,
146
+ rate_type:
147
+ MetronomeSDK::V2::ContractEditCommitParams::RateType::OrSymbol,
118
148
  specifiers:
119
- T.nilable(
120
- T::Array[
121
- MetronomeSDK::V2::ContractEditCommitParams::Specifier::OrHash
122
- ]
123
- ),
149
+ T.nilable(T::Array[MetronomeSDK::CommitSpecifierInput::OrHash]),
124
150
  request_options: MetronomeSDK::RequestOptions::OrHash
125
151
  ).returns(T.attached_class)
126
152
  end
@@ -138,6 +164,8 @@ module MetronomeSDK
138
164
  # applicable_product_tags or specifiers are not provided, the commit applies to
139
165
  # all products.
140
166
  applicable_product_tags: nil,
167
+ # Optional configuration for commit hierarchy access control
168
+ hierarchy_configuration: nil,
141
169
  # ID of contract to use for invoicing
142
170
  invoice_contract_id: nil,
143
171
  invoice_schedule: nil,
@@ -145,6 +173,10 @@ module MetronomeSDK
145
173
  # first.
146
174
  priority: nil,
147
175
  product_id: nil,
176
+ # If provided, updates the commit to use the specified rate type for current and
177
+ # future invoices. Previously finalized invoices will need to be voided and
178
+ # regenerated to reflect the rate type change.
179
+ rate_type: nil,
148
180
  # List of filters that determine what kind of customer usage draws down a commit
149
181
  # or credit. A customer's usage needs to meet the condition of at least one of the
150
182
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
@@ -165,17 +197,17 @@ module MetronomeSDK
165
197
  MetronomeSDK::V2::ContractEditCommitParams::AccessSchedule,
166
198
  applicable_product_ids: T.nilable(T::Array[String]),
167
199
  applicable_product_tags: T.nilable(T::Array[String]),
200
+ hierarchy_configuration:
201
+ MetronomeSDK::CommitHierarchyConfiguration,
168
202
  invoice_contract_id: String,
169
203
  invoice_schedule:
170
204
  MetronomeSDK::V2::ContractEditCommitParams::InvoiceSchedule,
171
205
  priority: T.nilable(Float),
172
206
  product_id: String,
207
+ rate_type:
208
+ MetronomeSDK::V2::ContractEditCommitParams::RateType::OrSymbol,
173
209
  specifiers:
174
- T.nilable(
175
- T::Array[
176
- MetronomeSDK::V2::ContractEditCommitParams::Specifier
177
- ]
178
- ),
210
+ T.nilable(T::Array[MetronomeSDK::CommitSpecifierInput]),
179
211
  request_options: MetronomeSDK::RequestOptions
180
212
  }
181
213
  )
@@ -680,74 +712,40 @@ module MetronomeSDK
680
712
  end
681
713
  end
682
714
 
683
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
684
- OrHash =
715
+ # If provided, updates the commit to use the specified rate type for current and
716
+ # future invoices. Previously finalized invoices will need to be voided and
717
+ # regenerated to reflect the rate type change.
718
+ module RateType
719
+ extend MetronomeSDK::Internal::Type::Enum
720
+
721
+ TaggedSymbol =
685
722
  T.type_alias do
686
- T.any(
687
- MetronomeSDK::V2::ContractEditCommitParams::Specifier,
688
- MetronomeSDK::Internal::AnyHash
723
+ T.all(
724
+ Symbol,
725
+ MetronomeSDK::V2::ContractEditCommitParams::RateType
689
726
  )
690
727
  end
728
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
691
729
 
692
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
693
- attr_reader :presentation_group_values
694
-
695
- sig do
696
- params(presentation_group_values: T::Hash[Symbol, String]).void
697
- end
698
- attr_writer :presentation_group_values
699
-
700
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
701
- attr_reader :pricing_group_values
702
-
703
- sig { params(pricing_group_values: T::Hash[Symbol, String]).void }
704
- attr_writer :pricing_group_values
705
-
706
- # If provided, the specifier will only apply to the product with the specified ID.
707
- sig { returns(T.nilable(String)) }
708
- attr_reader :product_id
709
-
710
- sig { params(product_id: String).void }
711
- attr_writer :product_id
712
-
713
- # If provided, the specifier will only apply to products with all the specified
714
- # tags.
715
- sig { returns(T.nilable(T::Array[String])) }
716
- attr_reader :product_tags
717
-
718
- sig { params(product_tags: T::Array[String]).void }
719
- attr_writer :product_tags
720
-
721
- sig do
722
- params(
723
- presentation_group_values: T::Hash[Symbol, String],
724
- pricing_group_values: T::Hash[Symbol, String],
725
- product_id: String,
726
- product_tags: T::Array[String]
727
- ).returns(T.attached_class)
728
- end
729
- def self.new(
730
- presentation_group_values: nil,
731
- pricing_group_values: nil,
732
- # If provided, the specifier will only apply to the product with the specified ID.
733
- product_id: nil,
734
- # If provided, the specifier will only apply to products with all the specified
735
- # tags.
736
- product_tags: nil
737
- )
738
- end
730
+ LIST_RATE =
731
+ T.let(
732
+ :LIST_RATE,
733
+ MetronomeSDK::V2::ContractEditCommitParams::RateType::TaggedSymbol
734
+ )
735
+ COMMIT_RATE =
736
+ T.let(
737
+ :COMMIT_RATE,
738
+ MetronomeSDK::V2::ContractEditCommitParams::RateType::TaggedSymbol
739
+ )
739
740
 
740
741
  sig do
741
742
  override.returns(
742
- {
743
- presentation_group_values: T::Hash[Symbol, String],
744
- pricing_group_values: T::Hash[Symbol, String],
745
- product_id: String,
746
- product_tags: T::Array[String]
747
- }
743
+ T::Array[
744
+ MetronomeSDK::V2::ContractEditCommitParams::RateType::TaggedSymbol
745
+ ]
748
746
  )
749
747
  end
750
- def to_hash
748
+ def self.values
751
749
  end
752
750
  end
753
751
  end
@@ -50,6 +50,18 @@ module MetronomeSDK
50
50
  sig { returns(T.nilable(T::Array[String])) }
51
51
  attr_accessor :applicable_product_tags
52
52
 
53
+ # Optional configuration for credit hierarchy access control
54
+ sig { returns(T.nilable(MetronomeSDK::CommitHierarchyConfiguration)) }
55
+ attr_reader :hierarchy_configuration
56
+
57
+ sig do
58
+ params(
59
+ hierarchy_configuration:
60
+ MetronomeSDK::CommitHierarchyConfiguration::OrHash
61
+ ).void
62
+ end
63
+ attr_writer :hierarchy_configuration
64
+
53
65
  # If multiple commits are applicable, the one with the lower priority will apply
54
66
  # first.
55
67
  sig { returns(T.nilable(Float)) }
@@ -61,19 +73,33 @@ module MetronomeSDK
61
73
  sig { params(product_id: String).void }
62
74
  attr_writer :product_id
63
75
 
64
- # List of filters that determine what kind of customer usage draws down a commit
65
- # or credit. A customer's usage needs to meet the condition of at least one of the
66
- # specifiers to contribute to a commit's or credit's drawdown. This field cannot
67
- # be used together with `applicable_product_ids` or `applicable_product_tags`.
68
- # Instead, to target usage by product or product tag, pass those values in the
69
- # body of `specifiers`.
76
+ # If provided, updates the credit to use the specified rate type for current and
77
+ # future invoices. Previously finalized invoices will need to be voided and
78
+ # regenerated to reflect the rate type change.
70
79
  sig do
71
80
  returns(
72
81
  T.nilable(
73
- T::Array[MetronomeSDK::V2::ContractEditCreditParams::Specifier]
82
+ MetronomeSDK::V2::ContractEditCreditParams::RateType::OrSymbol
74
83
  )
75
84
  )
76
85
  end
86
+ attr_reader :rate_type
87
+
88
+ sig do
89
+ params(
90
+ rate_type:
91
+ MetronomeSDK::V2::ContractEditCreditParams::RateType::OrSymbol
92
+ ).void
93
+ end
94
+ attr_writer :rate_type
95
+
96
+ # List of filters that determine what kind of customer usage draws down a commit
97
+ # or credit. A customer's usage needs to meet the condition of at least one of the
98
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
99
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
100
+ # Instead, to target usage by product or product tag, pass those values in the
101
+ # body of `specifiers`.
102
+ sig { returns(T.nilable(T::Array[MetronomeSDK::CommitSpecifierInput])) }
77
103
  attr_accessor :specifiers
78
104
 
79
105
  sig do
@@ -84,14 +110,14 @@ module MetronomeSDK
84
110
  MetronomeSDK::V2::ContractEditCreditParams::AccessSchedule::OrHash,
85
111
  applicable_product_ids: T.nilable(T::Array[String]),
86
112
  applicable_product_tags: T.nilable(T::Array[String]),
113
+ hierarchy_configuration:
114
+ MetronomeSDK::CommitHierarchyConfiguration::OrHash,
87
115
  priority: T.nilable(Float),
88
116
  product_id: String,
117
+ rate_type:
118
+ MetronomeSDK::V2::ContractEditCreditParams::RateType::OrSymbol,
89
119
  specifiers:
90
- T.nilable(
91
- T::Array[
92
- MetronomeSDK::V2::ContractEditCreditParams::Specifier::OrHash
93
- ]
94
- ),
120
+ T.nilable(T::Array[MetronomeSDK::CommitSpecifierInput::OrHash]),
95
121
  request_options: MetronomeSDK::RequestOptions::OrHash
96
122
  ).returns(T.attached_class)
97
123
  end
@@ -107,10 +133,16 @@ module MetronomeSDK
107
133
  # Which tags the credit applies to. If both applicable_product_ids and
108
134
  # applicable_product_tags are not provided, the credit applies to all products.
109
135
  applicable_product_tags: nil,
136
+ # Optional configuration for credit hierarchy access control
137
+ hierarchy_configuration: nil,
110
138
  # If multiple commits are applicable, the one with the lower priority will apply
111
139
  # first.
112
140
  priority: nil,
113
141
  product_id: nil,
142
+ # If provided, updates the credit to use the specified rate type for current and
143
+ # future invoices. Previously finalized invoices will need to be voided and
144
+ # regenerated to reflect the rate type change.
145
+ rate_type: nil,
114
146
  # List of filters that determine what kind of customer usage draws down a commit
115
147
  # or credit. A customer's usage needs to meet the condition of at least one of the
116
148
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
@@ -131,14 +163,14 @@ module MetronomeSDK
131
163
  MetronomeSDK::V2::ContractEditCreditParams::AccessSchedule,
132
164
  applicable_product_ids: T.nilable(T::Array[String]),
133
165
  applicable_product_tags: T.nilable(T::Array[String]),
166
+ hierarchy_configuration:
167
+ MetronomeSDK::CommitHierarchyConfiguration,
134
168
  priority: T.nilable(Float),
135
169
  product_id: String,
170
+ rate_type:
171
+ MetronomeSDK::V2::ContractEditCreditParams::RateType::OrSymbol,
136
172
  specifiers:
137
- T.nilable(
138
- T::Array[
139
- MetronomeSDK::V2::ContractEditCreditParams::Specifier
140
- ]
141
- ),
173
+ T.nilable(T::Array[MetronomeSDK::CommitSpecifierInput]),
142
174
  request_options: MetronomeSDK::RequestOptions
143
175
  }
144
176
  )
@@ -376,74 +408,40 @@ module MetronomeSDK
376
408
  end
377
409
  end
378
410
 
379
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
380
- OrHash =
411
+ # If provided, updates the credit to use the specified rate type for current and
412
+ # future invoices. Previously finalized invoices will need to be voided and
413
+ # regenerated to reflect the rate type change.
414
+ module RateType
415
+ extend MetronomeSDK::Internal::Type::Enum
416
+
417
+ TaggedSymbol =
381
418
  T.type_alias do
382
- T.any(
383
- MetronomeSDK::V2::ContractEditCreditParams::Specifier,
384
- MetronomeSDK::Internal::AnyHash
419
+ T.all(
420
+ Symbol,
421
+ MetronomeSDK::V2::ContractEditCreditParams::RateType
385
422
  )
386
423
  end
424
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
387
425
 
388
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
389
- attr_reader :presentation_group_values
390
-
391
- sig do
392
- params(presentation_group_values: T::Hash[Symbol, String]).void
393
- end
394
- attr_writer :presentation_group_values
395
-
396
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
397
- attr_reader :pricing_group_values
398
-
399
- sig { params(pricing_group_values: T::Hash[Symbol, String]).void }
400
- attr_writer :pricing_group_values
401
-
402
- # If provided, the specifier will only apply to the product with the specified ID.
403
- sig { returns(T.nilable(String)) }
404
- attr_reader :product_id
405
-
406
- sig { params(product_id: String).void }
407
- attr_writer :product_id
408
-
409
- # If provided, the specifier will only apply to products with all the specified
410
- # tags.
411
- sig { returns(T.nilable(T::Array[String])) }
412
- attr_reader :product_tags
413
-
414
- sig { params(product_tags: T::Array[String]).void }
415
- attr_writer :product_tags
416
-
417
- sig do
418
- params(
419
- presentation_group_values: T::Hash[Symbol, String],
420
- pricing_group_values: T::Hash[Symbol, String],
421
- product_id: String,
422
- product_tags: T::Array[String]
423
- ).returns(T.attached_class)
424
- end
425
- def self.new(
426
- presentation_group_values: nil,
427
- pricing_group_values: nil,
428
- # If provided, the specifier will only apply to the product with the specified ID.
429
- product_id: nil,
430
- # If provided, the specifier will only apply to products with all the specified
431
- # tags.
432
- product_tags: nil
433
- )
434
- end
426
+ LIST_RATE =
427
+ T.let(
428
+ :LIST_RATE,
429
+ MetronomeSDK::V2::ContractEditCreditParams::RateType::TaggedSymbol
430
+ )
431
+ COMMIT_RATE =
432
+ T.let(
433
+ :COMMIT_RATE,
434
+ MetronomeSDK::V2::ContractEditCreditParams::RateType::TaggedSymbol
435
+ )
435
436
 
436
437
  sig do
437
438
  override.returns(
438
- {
439
- presentation_group_values: T::Hash[Symbol, String],
440
- pricing_group_values: T::Hash[Symbol, String],
441
- product_id: String,
442
- product_tags: T::Array[String]
443
- }
439
+ T::Array[
440
+ MetronomeSDK::V2::ContractEditCreditParams::RateType::TaggedSymbol
441
+ ]
444
442
  )
445
443
  end
446
- def to_hash
444
+ def self.values
447
445
  end
448
446
  end
449
447
  end