metronome-sdk 0.1.0.pre.alpha.2 → 0.1.0.pre.alpha.4

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 (475) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +85 -0
  3. data/README.md +120 -74
  4. data/SECURITY.md +2 -2
  5. data/lib/metronome_sdk/client.rb +4 -4
  6. data/lib/metronome_sdk/errors.rb +22 -0
  7. data/lib/metronome_sdk/internal/transport/base_client.rb +10 -2
  8. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +3 -1
  9. data/lib/metronome_sdk/internal/type/array_of.rb +14 -1
  10. data/lib/metronome_sdk/internal/type/base_model.rb +92 -23
  11. data/lib/metronome_sdk/internal/type/boolean.rb +15 -1
  12. data/lib/metronome_sdk/internal/type/converter.rb +42 -34
  13. data/lib/metronome_sdk/internal/type/enum.rb +25 -2
  14. data/lib/metronome_sdk/internal/type/file_input.rb +13 -1
  15. data/lib/metronome_sdk/internal/type/hash_of.rb +14 -1
  16. data/lib/metronome_sdk/internal/type/union.rb +27 -7
  17. data/lib/metronome_sdk/internal/type/unknown.rb +15 -1
  18. data/lib/metronome_sdk/internal/util.rb +62 -10
  19. data/lib/metronome_sdk/internal.rb +3 -0
  20. data/lib/metronome_sdk/models/commit.rb +230 -87
  21. data/lib/metronome_sdk/models/contract_without_amendments.rb +551 -185
  22. data/lib/metronome_sdk/models/credit.rb +201 -51
  23. data/lib/metronome_sdk/models/discount.rb +5 -5
  24. data/lib/metronome_sdk/models/event_type_filter.rb +1 -1
  25. data/lib/metronome_sdk/models/override.rb +53 -34
  26. data/lib/metronome_sdk/models/pro_service.rb +2 -2
  27. data/lib/metronome_sdk/models/property_filter.rb +1 -1
  28. data/lib/metronome_sdk/models/rate.rb +9 -9
  29. data/lib/metronome_sdk/models/schedule_duration.rb +4 -4
  30. data/lib/metronome_sdk/models/schedule_point_in_time.rb +11 -11
  31. data/lib/metronome_sdk/models/scheduled_charge.rb +5 -5
  32. data/lib/metronome_sdk/models/v1/alert_archive_response.rb +2 -2
  33. data/lib/metronome_sdk/models/v1/alert_create_params.rb +15 -12
  34. data/lib/metronome_sdk/models/v1/alert_create_response.rb +2 -2
  35. data/lib/metronome_sdk/models/v1/audit_log_list_params.rb +2 -2
  36. data/lib/metronome_sdk/models/v1/billable_metric_archive_response.rb +2 -2
  37. data/lib/metronome_sdk/models/v1/billable_metric_create_params.rb +6 -6
  38. data/lib/metronome_sdk/models/v1/billable_metric_create_response.rb +2 -2
  39. data/lib/metronome_sdk/models/v1/billable_metric_list_response.rb +4 -4
  40. data/lib/metronome_sdk/models/v1/billable_metric_retrieve_response.rb +4 -4
  41. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +577 -152
  42. data/lib/metronome_sdk/models/v1/contract_amend_response.rb +2 -2
  43. data/lib/metronome_sdk/models/v1/contract_archive_response.rb +2 -2
  44. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_params.rb +12 -12
  45. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_response.rb +2 -2
  46. data/lib/metronome_sdk/models/v1/contract_create_params.rb +1317 -341
  47. data/lib/metronome_sdk/models/v1/contract_create_response.rb +2 -2
  48. data/lib/metronome_sdk/models/v1/contract_list_balances_response.rb +3 -7
  49. data/lib/metronome_sdk/models/v1/contract_list_response.rb +421 -36
  50. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rb +33 -5
  51. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rb +28 -7
  52. data/lib/metronome_sdk/models/v1/contract_retrieve_response.rb +422 -36
  53. data/lib/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_params.rb +34 -0
  54. data/lib/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_response.rb +81 -0
  55. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_params.rb +4 -4
  56. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rb +2 -2
  57. data/lib/metronome_sdk/models/v1/contract_update_end_date_response.rb +2 -2
  58. data/lib/metronome_sdk/models/v1/contracts/product_archive_response.rb +2 -2
  59. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +6 -6
  60. data/lib/metronome_sdk/models/v1/contracts/product_create_response.rb +2 -2
  61. data/lib/metronome_sdk/models/v1/contracts/product_list_item_state.rb +5 -5
  62. data/lib/metronome_sdk/models/v1/contracts/product_list_params.rb +4 -4
  63. data/lib/metronome_sdk/models/v1/contracts/product_list_response.rb +8 -8
  64. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_response.rb +8 -8
  65. data/lib/metronome_sdk/models/v1/contracts/product_update_params.rb +4 -4
  66. data/lib/metronome_sdk/models/v1/contracts/product_update_response.rb +2 -2
  67. data/lib/metronome_sdk/models/v1/contracts/quantity_conversion.rb +3 -3
  68. data/lib/metronome_sdk/models/v1/contracts/quantity_rounding.rb +3 -3
  69. data/lib/metronome_sdk/models/v1/contracts/rate_card_archive_response.rb +2 -2
  70. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_params.rb +4 -4
  71. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_response.rb +2 -2
  72. data/lib/metronome_sdk/models/v1/contracts/rate_card_list_response.rb +4 -4
  73. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rb +33 -5
  74. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rb +26 -5
  75. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rb +4 -4
  76. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_params.rb +2 -2
  77. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_response.rb +2 -2
  78. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rb +2 -2
  79. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_params.rb +2 -2
  80. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rb +2 -2
  81. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +46 -18
  82. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rb +2 -2
  83. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +36 -12
  84. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +6 -6
  85. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rb +33 -5
  86. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rb +26 -5
  87. data/lib/metronome_sdk/models/v1/credit_grant_create_params.rb +12 -20
  88. data/lib/metronome_sdk/models/v1/credit_grant_create_response.rb +2 -2
  89. data/lib/metronome_sdk/models/v1/credit_grant_edit_response.rb +2 -2
  90. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_params.rb +20 -1
  91. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_response.rb +6 -6
  92. data/lib/metronome_sdk/models/v1/credit_grant_list_response.rb +8 -8
  93. data/lib/metronome_sdk/models/v1/credit_grant_void_response.rb +2 -2
  94. data/lib/metronome_sdk/models/v1/credit_ledger_entry.rb +1 -1
  95. data/lib/metronome_sdk/models/v1/custom_field_add_key_params.rb +2 -2
  96. data/lib/metronome_sdk/models/v1/custom_field_delete_values_params.rb +2 -2
  97. data/lib/metronome_sdk/models/v1/custom_field_list_keys_params.rb +2 -2
  98. data/lib/metronome_sdk/models/v1/custom_field_remove_key_params.rb +2 -2
  99. data/lib/metronome_sdk/models/v1/custom_field_set_values_params.rb +2 -2
  100. data/lib/metronome_sdk/models/v1/customer.rb +1 -1
  101. data/lib/metronome_sdk/models/v1/customer_archive_response.rb +2 -2
  102. data/lib/metronome_sdk/models/v1/customer_create_params.rb +20 -20
  103. data/lib/metronome_sdk/models/v1/customer_create_response.rb +2 -2
  104. data/lib/metronome_sdk/models/v1/customer_detail.rb +10 -10
  105. data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_response.rb +4 -4
  106. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +115 -0
  107. data/lib/metronome_sdk/models/v1/customer_preview_events_response.rb +18 -0
  108. data/lib/metronome_sdk/models/v1/customer_retrieve_response.rb +2 -2
  109. data/lib/metronome_sdk/models/v1/customer_set_name_response.rb +2 -2
  110. data/lib/metronome_sdk/models/v1/customers/alert_list_params.rb +2 -2
  111. data/lib/metronome_sdk/models/v1/customers/alert_list_response.rb +2 -2
  112. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +2 -2
  113. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_response.rb +2 -2
  114. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +6 -6
  115. data/lib/metronome_sdk/models/v1/customers/billing_config_delete_params.rb +2 -2
  116. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rb +2 -2
  117. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +9 -1
  118. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +86 -32
  119. data/lib/metronome_sdk/models/v1/customers/commit_create_response.rb +2 -2
  120. data/lib/metronome_sdk/models/v1/customers/commit_list_response.rb +2 -2
  121. data/lib/metronome_sdk/models/v1/customers/commit_update_end_date_response.rb +2 -2
  122. data/lib/metronome_sdk/models/v1/customers/credit_create_params.rb +59 -7
  123. data/lib/metronome_sdk/models/v1/customers/credit_create_response.rb +2 -2
  124. data/lib/metronome_sdk/models/v1/customers/credit_list_response.rb +2 -2
  125. data/lib/metronome_sdk/models/v1/customers/credit_update_end_date_response.rb +2 -2
  126. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +24 -24
  127. data/lib/metronome_sdk/models/v1/customers/invoice.rb +74 -73
  128. data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_params.rb +4 -4
  129. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +2 -2
  130. data/lib/metronome_sdk/models/v1/customers/invoice_retrieve_response.rb +2 -2
  131. data/lib/metronome_sdk/models/v1/customers/plan_add_params.rb +16 -15
  132. data/lib/metronome_sdk/models/v1/customers/plan_add_response.rb +2 -2
  133. data/lib/metronome_sdk/models/v1/customers/plan_list_response.rb +2 -2
  134. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +14 -13
  135. data/lib/metronome_sdk/models/v1/plan_detail.rb +18 -18
  136. data/lib/metronome_sdk/models/v1/plan_get_details_response.rb +2 -2
  137. data/lib/metronome_sdk/models/v1/plan_list_charges_response.rb +2 -2
  138. data/lib/metronome_sdk/models/v1/plan_list_customers_params.rb +2 -2
  139. data/lib/metronome_sdk/models/v1/plan_list_customers_response.rb +2 -2
  140. data/lib/metronome_sdk/models/v1/rollover_amount_max_amount.rb +3 -3
  141. data/lib/metronome_sdk/models/v1/rollover_amount_max_percentage.rb +3 -3
  142. data/lib/metronome_sdk/models/v1/usage_ingest_params.rb +2 -2
  143. data/lib/metronome_sdk/models/v1/usage_list_params.rb +9 -8
  144. data/lib/metronome_sdk/models/v1/usage_list_with_groups_params.rb +5 -5
  145. data/lib/metronome_sdk/models/v1/usage_search_params.rb +24 -0
  146. data/lib/metronome_sdk/models/v1/usage_search_response.rb +249 -0
  147. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +78 -23
  148. data/lib/metronome_sdk/models/v2/contract_edit_commit_response.rb +2 -2
  149. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +62 -9
  150. data/lib/metronome_sdk/models/v2/contract_edit_credit_response.rb +2 -2
  151. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +1995 -443
  152. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +2 -2
  153. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +1959 -140
  154. data/lib/metronome_sdk/models/v2/contract_list_response.rb +963 -91
  155. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +964 -91
  156. data/lib/metronome_sdk/models.rb +30 -19
  157. data/lib/metronome_sdk/resources/v1/alerts.rb +4 -4
  158. data/lib/metronome_sdk/resources/v1/audit_logs.rb +1 -1
  159. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +3 -3
  160. data/lib/metronome_sdk/resources/v1/contracts/products.rb +9 -6
  161. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rb +1 -1
  162. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +8 -6
  163. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +4 -4
  164. data/lib/metronome_sdk/resources/v1/contracts.rb +59 -28
  165. data/lib/metronome_sdk/resources/v1/credit_grants.rb +7 -5
  166. data/lib/metronome_sdk/resources/v1/custom_fields.rb +5 -5
  167. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +2 -2
  168. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +5 -5
  169. data/lib/metronome_sdk/resources/v1/customers/commits.rb +9 -7
  170. data/lib/metronome_sdk/resources/v1/customers/credits.rb +5 -3
  171. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +4 -4
  172. data/lib/metronome_sdk/resources/v1/customers/plans.rb +3 -3
  173. data/lib/metronome_sdk/resources/v1/customers.rb +43 -4
  174. data/lib/metronome_sdk/resources/v1/dashboards.rb +4 -4
  175. data/lib/metronome_sdk/resources/v1/plans.rb +1 -1
  176. data/lib/metronome_sdk/resources/v1/usage.rb +30 -5
  177. data/lib/metronome_sdk/resources/v2/contracts.rb +45 -31
  178. data/lib/metronome_sdk/version.rb +1 -1
  179. data/lib/metronome_sdk.rb +9 -1
  180. data/rbi/metronome_sdk/errors.rbi +16 -0
  181. data/rbi/metronome_sdk/internal/transport/pooled_net_requester.rbi +5 -1
  182. data/rbi/metronome_sdk/internal/type/array_of.rbi +6 -0
  183. data/rbi/metronome_sdk/internal/type/base_model.rbi +5 -0
  184. data/rbi/metronome_sdk/internal/type/boolean.rbi +8 -0
  185. data/rbi/metronome_sdk/internal/type/converter.rbi +15 -15
  186. data/rbi/metronome_sdk/internal/type/enum.rbi +5 -0
  187. data/rbi/metronome_sdk/internal/type/file_input.rbi +5 -0
  188. data/rbi/metronome_sdk/internal/type/hash_of.rbi +6 -0
  189. data/rbi/metronome_sdk/internal/type/union.rbi +10 -0
  190. data/rbi/metronome_sdk/internal/type/unknown.rbi +8 -0
  191. data/rbi/metronome_sdk/internal/util.rbi +36 -0
  192. data/rbi/metronome_sdk/internal.rbi +5 -0
  193. data/rbi/metronome_sdk/models/commit.rbi +376 -39
  194. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +791 -54
  195. data/rbi/metronome_sdk/models/credit.rbi +376 -25
  196. data/rbi/metronome_sdk/models/override.rbi +66 -0
  197. data/rbi/metronome_sdk/models/schedule_point_in_time.rbi +9 -9
  198. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +10 -4
  199. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +995 -17
  200. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +2220 -136
  201. data/rbi/metronome_sdk/models/v1/contract_list_balances_response.rbi +9 -2
  202. data/rbi/metronome_sdk/models/v1/contract_list_response.rbi +820 -28
  203. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rbi +72 -0
  204. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbi +66 -0
  205. data/rbi/metronome_sdk/models/v1/contract_retrieve_response.rbi +820 -28
  206. data/rbi/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_params.rbi +58 -0
  207. data/rbi/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_response.rbi +212 -0
  208. data/rbi/metronome_sdk/models/v1/contracts/product_list_params.rbi +3 -3
  209. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rbi +72 -0
  210. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbi +66 -0
  211. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +72 -0
  212. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +72 -0
  213. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rbi +72 -0
  214. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbi +66 -0
  215. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_params.rbi +58 -0
  216. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +214 -0
  217. data/rbi/metronome_sdk/models/v1/customer_preview_events_response.rbi +35 -0
  218. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +11 -0
  219. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +121 -8
  220. data/rbi/metronome_sdk/models/v1/customers/credit_create_params.rbi +109 -0
  221. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +5 -0
  222. data/rbi/metronome_sdk/models/v1/usage_search_params.rbi +48 -0
  223. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +438 -0
  224. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +113 -8
  225. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +101 -0
  226. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +3667 -315
  227. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +5965 -2014
  228. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +2279 -226
  229. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +2279 -226
  230. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -2
  231. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +2 -1
  232. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +5 -0
  233. data/rbi/metronome_sdk/resources/v1/contracts.rbi +36 -1
  234. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +4 -0
  235. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +15 -4
  236. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +9 -0
  237. data/rbi/metronome_sdk/resources/v1/customers.rbi +35 -1
  238. data/rbi/metronome_sdk/resources/v1/usage.rbi +17 -0
  239. data/rbi/metronome_sdk/resources/v2/contracts.rbi +65 -7
  240. data/sig/metronome_sdk/errors.rbs +9 -0
  241. data/sig/metronome_sdk/internal/transport/pooled_net_requester.rbs +2 -0
  242. data/sig/metronome_sdk/internal/type/array_of.rbs +3 -0
  243. data/sig/metronome_sdk/internal/type/base_model.rbs +2 -0
  244. data/sig/metronome_sdk/internal/type/boolean.rbs +3 -0
  245. data/sig/metronome_sdk/internal/type/converter.rbs +7 -1
  246. data/sig/metronome_sdk/internal/type/enum.rbs +2 -0
  247. data/sig/metronome_sdk/internal/type/file_input.rbs +2 -0
  248. data/sig/metronome_sdk/internal/type/hash_of.rbs +3 -0
  249. data/sig/metronome_sdk/internal/type/union.rbs +2 -0
  250. data/sig/metronome_sdk/internal/type/unknown.rbs +3 -0
  251. data/sig/metronome_sdk/internal/util.rbs +12 -0
  252. data/sig/metronome_sdk/internal.rbs +2 -0
  253. data/sig/metronome_sdk/models/base_usage_filter.rbs +6 -0
  254. data/sig/metronome_sdk/models/commit.rbs +374 -68
  255. data/sig/metronome_sdk/models/contract_without_amendments.rbs +620 -110
  256. data/sig/metronome_sdk/models/credit.rbs +286 -40
  257. data/sig/metronome_sdk/models/credit_type_data.rbs +2 -0
  258. data/sig/metronome_sdk/models/discount.rbs +11 -0
  259. data/sig/metronome_sdk/models/event_type_filter.rbs +5 -0
  260. data/sig/metronome_sdk/models/id.rbs +2 -0
  261. data/sig/metronome_sdk/models/override.rbs +92 -22
  262. data/sig/metronome_sdk/models/pro_service.rbs +11 -0
  263. data/sig/metronome_sdk/models/property_filter.rbs +7 -0
  264. data/sig/metronome_sdk/models/rate.rbs +16 -4
  265. data/sig/metronome_sdk/models/schedule_duration.rbs +12 -0
  266. data/sig/metronome_sdk/models/schedule_point_in_time.rbs +20 -6
  267. data/sig/metronome_sdk/models/scheduled_charge.rbs +12 -0
  268. data/sig/metronome_sdk/models/tier.rbs +2 -0
  269. data/sig/metronome_sdk/models/v1/alert_archive_params.rbs +6 -0
  270. data/sig/metronome_sdk/models/v1/alert_archive_response.rbs +2 -0
  271. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +29 -4
  272. data/sig/metronome_sdk/models/v1/alert_create_response.rbs +2 -0
  273. data/sig/metronome_sdk/models/v1/audit_log_list_params.rbs +11 -0
  274. data/sig/metronome_sdk/models/v1/audit_log_list_response.rbs +16 -0
  275. data/sig/metronome_sdk/models/v1/billable_metric_archive_params.rbs +2 -0
  276. data/sig/metronome_sdk/models/v1/billable_metric_archive_response.rbs +2 -0
  277. data/sig/metronome_sdk/models/v1/billable_metric_create_params.rbs +12 -0
  278. data/sig/metronome_sdk/models/v1/billable_metric_create_response.rbs +2 -0
  279. data/sig/metronome_sdk/models/v1/billable_metric_list_params.rbs +7 -0
  280. data/sig/metronome_sdk/models/v1/billable_metric_list_response.rbs +13 -0
  281. data/sig/metronome_sdk/models/v1/billable_metric_retrieve_params.rbs +5 -0
  282. data/sig/metronome_sdk/models/v1/billable_metric_retrieve_response.rbs +17 -0
  283. data/sig/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbs +11 -0
  284. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +719 -75
  285. data/sig/metronome_sdk/models/v1/contract_amend_response.rbs +2 -0
  286. data/sig/metronome_sdk/models/v1/contract_archive_params.rbs +7 -0
  287. data/sig/metronome_sdk/models/v1/contract_archive_response.rbs +2 -0
  288. data/sig/metronome_sdk/models/v1/contract_create_historical_invoices_params.rbs +47 -12
  289. data/sig/metronome_sdk/models/v1/contract_create_historical_invoices_response.rbs +2 -0
  290. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +1503 -250
  291. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +2 -0
  292. data/sig/metronome_sdk/models/v1/contract_list_balances_params.rbs +14 -0
  293. data/sig/metronome_sdk/models/v1/contract_list_balances_response.rbs +5 -0
  294. data/sig/metronome_sdk/models/v1/contract_list_params.rbs +10 -0
  295. data/sig/metronome_sdk/models/v1/contract_list_response.rbs +459 -10
  296. data/sig/metronome_sdk/models/v1/contract_retrieve_params.rbs +8 -0
  297. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rbs +39 -0
  298. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbs +48 -0
  299. data/sig/metronome_sdk/models/v1/contract_retrieve_response.rbs +459 -10
  300. data/sig/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_params.rbs +34 -0
  301. data/sig/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_response.rbs +101 -0
  302. data/sig/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_params.rbs +21 -0
  303. data/sig/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rbs +2 -0
  304. data/sig/metronome_sdk/models/v1/contract_set_usage_filter_params.rbs +9 -0
  305. data/sig/metronome_sdk/models/v1/contract_update_end_date_params.rbs +8 -0
  306. data/sig/metronome_sdk/models/v1/contract_update_end_date_response.rbs +2 -0
  307. data/sig/metronome_sdk/models/v1/contracts/named_schedule_retrieve_params.rbs +7 -0
  308. data/sig/metronome_sdk/models/v1/contracts/named_schedule_retrieve_response.rbs +10 -0
  309. data/sig/metronome_sdk/models/v1/contracts/named_schedule_update_params.rbs +9 -0
  310. data/sig/metronome_sdk/models/v1/contracts/product_archive_params.rbs +5 -0
  311. data/sig/metronome_sdk/models/v1/contracts/product_archive_response.rbs +2 -0
  312. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +18 -0
  313. data/sig/metronome_sdk/models/v1/contracts/product_create_response.rbs +2 -0
  314. data/sig/metronome_sdk/models/v1/contracts/product_list_item_state.rbs +19 -0
  315. data/sig/metronome_sdk/models/v1/contracts/product_list_params.rbs +7 -0
  316. data/sig/metronome_sdk/models/v1/contracts/product_list_response.rbs +29 -0
  317. data/sig/metronome_sdk/models/v1/contracts/product_retrieve_params.rbs +2 -0
  318. data/sig/metronome_sdk/models/v1/contracts/product_retrieve_response.rbs +33 -0
  319. data/sig/metronome_sdk/models/v1/contracts/product_update_params.rbs +19 -0
  320. data/sig/metronome_sdk/models/v1/contracts/product_update_response.rbs +2 -0
  321. data/sig/metronome_sdk/models/v1/contracts/quantity_conversion.rbs +10 -4
  322. data/sig/metronome_sdk/models/v1/contracts/quantity_rounding.rbs +9 -4
  323. data/sig/metronome_sdk/models/v1/contracts/rate_card_archive_params.rbs +2 -0
  324. data/sig/metronome_sdk/models/v1/contracts/rate_card_archive_response.rbs +2 -0
  325. data/sig/metronome_sdk/models/v1/contracts/rate_card_create_params.rbs +21 -0
  326. data/sig/metronome_sdk/models/v1/contracts/rate_card_create_response.rbs +2 -0
  327. data/sig/metronome_sdk/models/v1/contracts/rate_card_list_params.rbs +7 -0
  328. data/sig/metronome_sdk/models/v1/contracts/rate_card_list_response.rbs +23 -0
  329. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rbs +2 -0
  330. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rbs +38 -0
  331. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbs +46 -0
  332. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbs +27 -0
  333. data/sig/metronome_sdk/models/v1/contracts/rate_card_update_params.rbs +14 -0
  334. data/sig/metronome_sdk/models/v1/contracts/rate_card_update_response.rbs +2 -0
  335. data/sig/metronome_sdk/models/v1/contracts/rate_cards/named_schedule_retrieve_params.rbs +8 -0
  336. data/sig/metronome_sdk/models/v1/contracts/rate_cards/named_schedule_retrieve_response.rbs +10 -0
  337. data/sig/metronome_sdk/models/v1/contracts/rate_cards/named_schedule_update_params.rbs +10 -0
  338. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_params.rbs +6 -0
  339. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rbs +2 -0
  340. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_params.rbs +8 -0
  341. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rbs +2 -0
  342. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +59 -8
  343. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rbs +2 -0
  344. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +51 -4
  345. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +23 -0
  346. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rbs +38 -0
  347. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbs +41 -0
  348. data/sig/metronome_sdk/models/v1/credit_grant_create_params.rbs +32 -4
  349. data/sig/metronome_sdk/models/v1/credit_grant_create_response.rbs +2 -0
  350. data/sig/metronome_sdk/models/v1/credit_grant_edit_params.rbs +8 -0
  351. data/sig/metronome_sdk/models/v1/credit_grant_edit_response.rbs +2 -0
  352. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_params.rbs +29 -0
  353. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_response.rbs +30 -0
  354. data/sig/metronome_sdk/models/v1/credit_grant_list_params.rbs +11 -0
  355. data/sig/metronome_sdk/models/v1/credit_grant_list_response.rbs +38 -0
  356. data/sig/metronome_sdk/models/v1/credit_grant_void_params.rbs +7 -0
  357. data/sig/metronome_sdk/models/v1/credit_grant_void_response.rbs +2 -0
  358. data/sig/metronome_sdk/models/v1/credit_ledger_entry.rbs +10 -0
  359. data/sig/metronome_sdk/models/v1/custom_field_add_key_params.rbs +7 -0
  360. data/sig/metronome_sdk/models/v1/custom_field_delete_values_params.rbs +7 -0
  361. data/sig/metronome_sdk/models/v1/custom_field_list_keys_params.rbs +12 -6
  362. data/sig/metronome_sdk/models/v1/custom_field_list_keys_response.rbs +11 -0
  363. data/sig/metronome_sdk/models/v1/custom_field_remove_key_params.rbs +6 -0
  364. data/sig/metronome_sdk/models/v1/custom_field_set_values_params.rbs +7 -0
  365. data/sig/metronome_sdk/models/v1/customer.rbs +8 -0
  366. data/sig/metronome_sdk/models/v1/customer_archive_params.rbs +2 -0
  367. data/sig/metronome_sdk/models/v1/customer_archive_response.rbs +2 -0
  368. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +52 -26
  369. data/sig/metronome_sdk/models/v1/customer_create_response.rbs +2 -0
  370. data/sig/metronome_sdk/models/v1/customer_detail.rbs +23 -4
  371. data/sig/metronome_sdk/models/v1/customer_list_billable_metrics_params.rbs +9 -0
  372. data/sig/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbs +17 -0
  373. data/sig/metronome_sdk/models/v1/customer_list_costs_params.rbs +9 -0
  374. data/sig/metronome_sdk/models/v1/customer_list_costs_response.rbs +19 -0
  375. data/sig/metronome_sdk/models/v1/customer_list_params.rbs +10 -0
  376. data/sig/metronome_sdk/models/v1/customer_preview_events_params.rbs +105 -0
  377. data/sig/metronome_sdk/models/v1/customer_preview_events_response.rbs +16 -0
  378. data/sig/metronome_sdk/models/v1/customer_retrieve_params.rbs +5 -0
  379. data/sig/metronome_sdk/models/v1/customer_retrieve_response.rbs +2 -0
  380. data/sig/metronome_sdk/models/v1/customer_set_ingest_aliases_params.rbs +6 -0
  381. data/sig/metronome_sdk/models/v1/customer_set_name_params.rbs +6 -0
  382. data/sig/metronome_sdk/models/v1/customer_set_name_response.rbs +2 -0
  383. data/sig/metronome_sdk/models/v1/customer_update_config_params.rbs +7 -0
  384. data/sig/metronome_sdk/models/v1/customers/alert_list_params.rbs +13 -6
  385. data/sig/metronome_sdk/models/v1/customers/alert_list_response.rbs +5 -0
  386. data/sig/metronome_sdk/models/v1/customers/alert_reset_params.rbs +6 -0
  387. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +7 -0
  388. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_response.rbs +2 -0
  389. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +10 -0
  390. data/sig/metronome_sdk/models/v1/customers/billing_config_delete_params.rbs +6 -0
  391. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rbs +6 -0
  392. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +23 -0
  393. data/sig/metronome_sdk/models/v1/customers/commit_create_params.rbs +116 -8
  394. data/sig/metronome_sdk/models/v1/customers/commit_create_response.rbs +2 -0
  395. data/sig/metronome_sdk/models/v1/customers/commit_list_params.rbs +14 -0
  396. data/sig/metronome_sdk/models/v1/customers/commit_list_response.rbs +5 -0
  397. data/sig/metronome_sdk/models/v1/customers/commit_update_end_date_params.rbs +8 -0
  398. data/sig/metronome_sdk/models/v1/customers/commit_update_end_date_response.rbs +2 -0
  399. data/sig/metronome_sdk/models/v1/customers/credit_create_params.rbs +82 -0
  400. data/sig/metronome_sdk/models/v1/customers/credit_create_response.rbs +2 -0
  401. data/sig/metronome_sdk/models/v1/customers/credit_list_params.rbs +14 -0
  402. data/sig/metronome_sdk/models/v1/customers/credit_list_response.rbs +5 -0
  403. data/sig/metronome_sdk/models/v1/customers/credit_update_end_date_params.rbs +7 -0
  404. data/sig/metronome_sdk/models/v1/customers/credit_update_end_date_response.rbs +2 -0
  405. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +45 -16
  406. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +195 -40
  407. data/sig/metronome_sdk/models/v1/customers/invoice_add_charge_params.rbs +11 -0
  408. data/sig/metronome_sdk/models/v1/customers/invoice_add_charge_response.rbs +2 -0
  409. data/sig/metronome_sdk/models/v1/customers/invoice_list_breakdowns_params.rbs +14 -0
  410. data/sig/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rbs +5 -0
  411. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +13 -0
  412. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_params.rbs +7 -0
  413. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_response.rbs +2 -0
  414. data/sig/metronome_sdk/models/v1/customers/named_schedule_retrieve_params.rbs +7 -0
  415. data/sig/metronome_sdk/models/v1/customers/named_schedule_retrieve_response.rbs +10 -0
  416. data/sig/metronome_sdk/models/v1/customers/named_schedule_update_params.rbs +9 -0
  417. data/sig/metronome_sdk/models/v1/customers/plan_add_params.rbs +38 -4
  418. data/sig/metronome_sdk/models/v1/customers/plan_add_response.rbs +2 -0
  419. data/sig/metronome_sdk/models/v1/customers/plan_end_params.rbs +9 -0
  420. data/sig/metronome_sdk/models/v1/customers/plan_end_response.rbs +2 -0
  421. data/sig/metronome_sdk/models/v1/customers/plan_list_params.rbs +7 -0
  422. data/sig/metronome_sdk/models/v1/customers/plan_list_price_adjustments_params.rbs +8 -0
  423. data/sig/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbs +14 -0
  424. data/sig/metronome_sdk/models/v1/customers/plan_list_response.rbs +23 -0
  425. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +30 -7
  426. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_response.rbs +6 -0
  427. data/sig/metronome_sdk/models/v1/invoice_regenerate_params.rbs +5 -0
  428. data/sig/metronome_sdk/models/v1/invoice_regenerate_response.rbs +6 -0
  429. data/sig/metronome_sdk/models/v1/invoice_void_params.rbs +5 -0
  430. data/sig/metronome_sdk/models/v1/invoice_void_response.rbs +6 -0
  431. data/sig/metronome_sdk/models/v1/plan_detail.rbs +38 -0
  432. data/sig/metronome_sdk/models/v1/plan_get_details_params.rbs +5 -0
  433. data/sig/metronome_sdk/models/v1/plan_get_details_response.rbs +2 -0
  434. data/sig/metronome_sdk/models/v1/plan_list_charges_params.rbs +7 -0
  435. data/sig/metronome_sdk/models/v1/plan_list_charges_response.rbs +28 -0
  436. data/sig/metronome_sdk/models/v1/plan_list_customers_params.rbs +8 -0
  437. data/sig/metronome_sdk/models/v1/plan_list_customers_response.rbs +14 -0
  438. data/sig/metronome_sdk/models/v1/plan_list_params.rbs +6 -0
  439. data/sig/metronome_sdk/models/v1/plan_list_response.rbs +7 -0
  440. data/sig/metronome_sdk/models/v1/pricing_unit_list_params.rbs +6 -0
  441. data/sig/metronome_sdk/models/v1/pricing_unit_list_response.rbs +2 -0
  442. data/sig/metronome_sdk/models/v1/rollover_amount_max_amount.rbs +12 -4
  443. data/sig/metronome_sdk/models/v1/rollover_amount_max_percentage.rbs +9 -4
  444. data/sig/metronome_sdk/models/v1/service_list_params.rbs +2 -0
  445. data/sig/metronome_sdk/models/v1/service_list_response.rbs +10 -0
  446. data/sig/metronome_sdk/models/v1/usage_ingest_params.rbs +13 -0
  447. data/sig/metronome_sdk/models/v1/usage_list_params.rbs +17 -0
  448. data/sig/metronome_sdk/models/v1/usage_list_response.rbs +15 -0
  449. data/sig/metronome_sdk/models/v1/usage_list_with_groups_params.rbs +15 -0
  450. data/sig/metronome_sdk/models/v1/usage_list_with_groups_response.rbs +8 -0
  451. data/sig/metronome_sdk/models/v1/usage_search_params.rbs +26 -0
  452. data/sig/metronome_sdk/models/v1/usage_search_response.rbs +230 -0
  453. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +106 -1
  454. data/sig/metronome_sdk/models/v2/contract_edit_commit_response.rbs +2 -0
  455. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +81 -1
  456. data/sig/metronome_sdk/models/v2/contract_edit_credit_response.rbs +2 -0
  457. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +2233 -303
  458. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +2 -0
  459. data/sig/metronome_sdk/models/v2/contract_get_edit_history_params.rbs +6 -0
  460. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +2475 -453
  461. data/sig/metronome_sdk/models/v2/contract_list_params.rbs +10 -0
  462. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +1400 -43
  463. data/sig/metronome_sdk/models/v2/contract_retrieve_params.rbs +9 -0
  464. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +1400 -43
  465. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -0
  466. data/sig/metronome_sdk/resources/v1/contracts.rbs +10 -0
  467. data/sig/metronome_sdk/resources/v1/credit_grants.rbs +1 -0
  468. data/sig/metronome_sdk/resources/v1/custom_fields.rbs +1 -1
  469. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -1
  470. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +1 -0
  471. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +1 -0
  472. data/sig/metronome_sdk/resources/v1/customers.rbs +8 -0
  473. data/sig/metronome_sdk/resources/v1/usage.rbs +5 -0
  474. data/sig/metronome_sdk/resources/v2/contracts.rbs +8 -1
  475. metadata +20 -2
@@ -66,6 +66,28 @@ module MetronomeSDK
66
66
  sig { params(ending_before: Time).void }
67
67
  attr_writer :ending_before
68
68
 
69
+ # Either a **parent** configuration with a list of children or a **child**
70
+ # configuration with a single parent.
71
+ sig do
72
+ returns(
73
+ T.nilable(
74
+ MetronomeSDK::ContractWithoutAmendments::HierarchyConfiguration::Variants
75
+ )
76
+ )
77
+ end
78
+ attr_reader :hierarchy_configuration
79
+
80
+ sig do
81
+ params(
82
+ hierarchy_configuration:
83
+ T.any(
84
+ MetronomeSDK::ContractWithoutAmendments::HierarchyConfiguration::ParentHierarchyConfiguration::OrHash,
85
+ MetronomeSDK::ContractWithoutAmendments::HierarchyConfiguration::ChildHierarchyConfiguration::OrHash
86
+ )
87
+ ).void
88
+ end
89
+ attr_writer :hierarchy_configuration
90
+
69
91
  sig { returns(T.nilable(String)) }
70
92
  attr_reader :name
71
93
 
@@ -260,6 +282,11 @@ module MetronomeSDK
260
282
  credits: T::Array[MetronomeSDK::Credit::OrHash],
261
283
  discounts: T::Array[MetronomeSDK::Discount::OrHash],
262
284
  ending_before: Time,
285
+ hierarchy_configuration:
286
+ T.any(
287
+ MetronomeSDK::ContractWithoutAmendments::HierarchyConfiguration::ParentHierarchyConfiguration::OrHash,
288
+ MetronomeSDK::ContractWithoutAmendments::HierarchyConfiguration::ChildHierarchyConfiguration::OrHash
289
+ ),
263
290
  name: String,
264
291
  net_payment_terms_days: Float,
265
292
  netsuite_sales_order_id: String,
@@ -302,6 +329,9 @@ module MetronomeSDK
302
329
  # This field's availability is dependent on your client's configuration.
303
330
  discounts: nil,
304
331
  ending_before: nil,
332
+ # Either a **parent** configuration with a list of children or a **child**
333
+ # configuration with a single parent.
334
+ hierarchy_configuration: nil,
305
335
  name: nil,
306
336
  net_payment_terms_days: nil,
307
337
  # This field's availability is dependent on your client's configuration.
@@ -345,6 +375,8 @@ module MetronomeSDK
345
375
  credits: T::Array[MetronomeSDK::Credit],
346
376
  discounts: T::Array[MetronomeSDK::Discount],
347
377
  ending_before: Time,
378
+ hierarchy_configuration:
379
+ MetronomeSDK::ContractWithoutAmendments::HierarchyConfiguration::Variants,
348
380
  name: String,
349
381
  net_payment_terms_days: Float,
350
382
  netsuite_sales_order_id: String,
@@ -549,6 +581,187 @@ module MetronomeSDK
549
581
  end
550
582
  end
551
583
 
584
+ # Either a **parent** configuration with a list of children or a **child**
585
+ # configuration with a single parent.
586
+ module HierarchyConfiguration
587
+ extend MetronomeSDK::Internal::Type::Union
588
+
589
+ Variants =
590
+ T.type_alias do
591
+ T.any(
592
+ MetronomeSDK::ContractWithoutAmendments::HierarchyConfiguration::ParentHierarchyConfiguration,
593
+ MetronomeSDK::ContractWithoutAmendments::HierarchyConfiguration::ChildHierarchyConfiguration
594
+ )
595
+ end
596
+
597
+ class ParentHierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
598
+ OrHash =
599
+ T.type_alias do
600
+ T.any(
601
+ MetronomeSDK::ContractWithoutAmendments::HierarchyConfiguration::ParentHierarchyConfiguration,
602
+ MetronomeSDK::Internal::AnyHash
603
+ )
604
+ end
605
+
606
+ # List of contracts that belong to this parent.
607
+ sig do
608
+ returns(
609
+ T::Array[
610
+ MetronomeSDK::ContractWithoutAmendments::HierarchyConfiguration::ParentHierarchyConfiguration::Child
611
+ ]
612
+ )
613
+ end
614
+ attr_accessor :children
615
+
616
+ sig do
617
+ params(
618
+ children:
619
+ T::Array[
620
+ MetronomeSDK::ContractWithoutAmendments::HierarchyConfiguration::ParentHierarchyConfiguration::Child::OrHash
621
+ ]
622
+ ).returns(T.attached_class)
623
+ end
624
+ def self.new(
625
+ # List of contracts that belong to this parent.
626
+ children:
627
+ )
628
+ end
629
+
630
+ sig do
631
+ override.returns(
632
+ {
633
+ children:
634
+ T::Array[
635
+ MetronomeSDK::ContractWithoutAmendments::HierarchyConfiguration::ParentHierarchyConfiguration::Child
636
+ ]
637
+ }
638
+ )
639
+ end
640
+ def to_hash
641
+ end
642
+
643
+ class Child < MetronomeSDK::Internal::Type::BaseModel
644
+ OrHash =
645
+ T.type_alias do
646
+ T.any(
647
+ MetronomeSDK::ContractWithoutAmendments::HierarchyConfiguration::ParentHierarchyConfiguration::Child,
648
+ MetronomeSDK::Internal::AnyHash
649
+ )
650
+ end
651
+
652
+ sig { returns(String) }
653
+ attr_accessor :contract_id
654
+
655
+ sig { returns(String) }
656
+ attr_accessor :customer_id
657
+
658
+ sig do
659
+ params(contract_id: String, customer_id: String).returns(
660
+ T.attached_class
661
+ )
662
+ end
663
+ def self.new(contract_id:, customer_id:)
664
+ end
665
+
666
+ sig do
667
+ override.returns({ contract_id: String, customer_id: String })
668
+ end
669
+ def to_hash
670
+ end
671
+ end
672
+ end
673
+
674
+ class ChildHierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
675
+ OrHash =
676
+ T.type_alias do
677
+ T.any(
678
+ MetronomeSDK::ContractWithoutAmendments::HierarchyConfiguration::ChildHierarchyConfiguration,
679
+ MetronomeSDK::Internal::AnyHash
680
+ )
681
+ end
682
+
683
+ # The single parent contract/customer for this child.
684
+ sig do
685
+ returns(
686
+ MetronomeSDK::ContractWithoutAmendments::HierarchyConfiguration::ChildHierarchyConfiguration::Parent
687
+ )
688
+ end
689
+ attr_reader :parent
690
+
691
+ sig do
692
+ params(
693
+ parent:
694
+ MetronomeSDK::ContractWithoutAmendments::HierarchyConfiguration::ChildHierarchyConfiguration::Parent::OrHash
695
+ ).void
696
+ end
697
+ attr_writer :parent
698
+
699
+ sig do
700
+ params(
701
+ parent:
702
+ MetronomeSDK::ContractWithoutAmendments::HierarchyConfiguration::ChildHierarchyConfiguration::Parent::OrHash
703
+ ).returns(T.attached_class)
704
+ end
705
+ def self.new(
706
+ # The single parent contract/customer for this child.
707
+ parent:
708
+ )
709
+ end
710
+
711
+ sig do
712
+ override.returns(
713
+ {
714
+ parent:
715
+ MetronomeSDK::ContractWithoutAmendments::HierarchyConfiguration::ChildHierarchyConfiguration::Parent
716
+ }
717
+ )
718
+ end
719
+ def to_hash
720
+ end
721
+
722
+ class Parent < MetronomeSDK::Internal::Type::BaseModel
723
+ OrHash =
724
+ T.type_alias do
725
+ T.any(
726
+ MetronomeSDK::ContractWithoutAmendments::HierarchyConfiguration::ChildHierarchyConfiguration::Parent,
727
+ MetronomeSDK::Internal::AnyHash
728
+ )
729
+ end
730
+
731
+ sig { returns(String) }
732
+ attr_accessor :contract_id
733
+
734
+ sig { returns(String) }
735
+ attr_accessor :customer_id
736
+
737
+ # The single parent contract/customer for this child.
738
+ sig do
739
+ params(contract_id: String, customer_id: String).returns(
740
+ T.attached_class
741
+ )
742
+ end
743
+ def self.new(contract_id:, customer_id:)
744
+ end
745
+
746
+ sig do
747
+ override.returns({ contract_id: String, customer_id: String })
748
+ end
749
+ def to_hash
750
+ end
751
+ end
752
+ end
753
+
754
+ sig do
755
+ override.returns(
756
+ T::Array[
757
+ MetronomeSDK::ContractWithoutAmendments::HierarchyConfiguration::Variants
758
+ ]
759
+ )
760
+ end
761
+ def self.variants
762
+ end
763
+ end
764
+
552
765
  class PrepaidBalanceThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
553
766
  OrHash =
554
767
  T.type_alias do
@@ -603,6 +816,14 @@ module MetronomeSDK
603
816
  sig { returns(Float) }
604
817
  attr_accessor :threshold_amount
605
818
 
819
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
820
+ # commit amount will be in terms of this credit type instead of the fiat currency.
821
+ sig { returns(T.nilable(String)) }
822
+ attr_reader :custom_credit_type_id
823
+
824
+ sig { params(custom_credit_type_id: String).void }
825
+ attr_writer :custom_credit_type_id
826
+
606
827
  sig do
607
828
  params(
608
829
  commit:
@@ -611,7 +832,8 @@ module MetronomeSDK
611
832
  payment_gate_config:
612
833
  MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::OrHash,
613
834
  recharge_to_amount: Float,
614
- threshold_amount: Float
835
+ threshold_amount: Float,
836
+ custom_credit_type_id: String
615
837
  ).returns(T.attached_class)
616
838
  end
617
839
  def self.new(
@@ -625,7 +847,10 @@ module MetronomeSDK
625
847
  recharge_to_amount:,
626
848
  # Specify the threshold amount for the contract. Each time the contract's prepaid
627
849
  # balance lowers to this amount, a threshold charge will be initiated.
628
- threshold_amount:
850
+ threshold_amount:,
851
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
852
+ # commit amount will be in terms of this credit type instead of the fiat currency.
853
+ custom_credit_type_id: nil
629
854
  )
630
855
  end
631
856
 
@@ -638,7 +863,8 @@ module MetronomeSDK
638
863
  payment_gate_config:
639
864
  MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::PaymentGateConfig,
640
865
  recharge_to_amount: Float,
641
- threshold_amount: Float
866
+ threshold_amount: Float,
867
+ custom_credit_type_id: String
642
868
  }
643
869
  )
644
870
  end
@@ -659,17 +885,18 @@ module MetronomeSDK
659
885
  sig { returns(String) }
660
886
  attr_accessor :product_id
661
887
 
662
- # Which products the threshold commit applies to. If both applicable_product_ids
663
- # and applicable_product_tags are not provided, the commit applies to all
664
- # products.
888
+ # Which products the threshold commit applies to. If applicable_product_ids,
889
+ # applicable_product_tags or specifiers are not provided, the commit applies to
890
+ # all products.
665
891
  sig { returns(T.nilable(T::Array[String])) }
666
892
  attr_reader :applicable_product_ids
667
893
 
668
894
  sig { params(applicable_product_ids: T::Array[String]).void }
669
895
  attr_writer :applicable_product_ids
670
896
 
671
- # Which tags the threshold commit applies to. If both applicable_product_ids and
672
- # applicable_product_tags are not provided, the commit applies to all products.
897
+ # Which tags the threshold commit applies to. If applicable_product_ids,
898
+ # applicable_product_tags or specifiers are not provided, the commit applies to
899
+ # all products.
673
900
  sig { returns(T.nilable(T::Array[String])) }
674
901
  attr_reader :applicable_product_tags
675
902
 
@@ -690,30 +917,65 @@ module MetronomeSDK
690
917
  sig { params(name: String).void }
691
918
  attr_writer :name
692
919
 
920
+ # List of filters that determine what kind of customer usage draws down a commit
921
+ # or credit. A customer's usage needs to meet the condition of at least one of the
922
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
923
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
924
+ sig do
925
+ returns(
926
+ T.nilable(
927
+ T::Array[
928
+ MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::Commit::Specifier
929
+ ]
930
+ )
931
+ )
932
+ end
933
+ attr_reader :specifiers
934
+
935
+ sig do
936
+ params(
937
+ specifiers:
938
+ T::Array[
939
+ MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::Commit::Specifier::OrHash
940
+ ]
941
+ ).void
942
+ end
943
+ attr_writer :specifiers
944
+
693
945
  sig do
694
946
  params(
695
947
  product_id: String,
696
948
  applicable_product_ids: T::Array[String],
697
949
  applicable_product_tags: T::Array[String],
698
950
  description: String,
699
- name: String
951
+ name: String,
952
+ specifiers:
953
+ T::Array[
954
+ MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::Commit::Specifier::OrHash
955
+ ]
700
956
  ).returns(T.attached_class)
701
957
  end
702
958
  def self.new(
703
959
  # The commit product that will be used to generate the line item for commit
704
960
  # payment.
705
961
  product_id:,
706
- # Which products the threshold commit applies to. If both applicable_product_ids
707
- # and applicable_product_tags are not provided, the commit applies to all
708
- # products.
962
+ # Which products the threshold commit applies to. If applicable_product_ids,
963
+ # applicable_product_tags or specifiers are not provided, the commit applies to
964
+ # all products.
709
965
  applicable_product_ids: nil,
710
- # Which tags the threshold commit applies to. If both applicable_product_ids and
711
- # applicable_product_tags are not provided, the commit applies to all products.
966
+ # Which tags the threshold commit applies to. If applicable_product_ids,
967
+ # applicable_product_tags or specifiers are not provided, the commit applies to
968
+ # all products.
712
969
  applicable_product_tags: nil,
713
970
  description: nil,
714
971
  # Specify the name of the line item for the threshold charge. If left blank, it
715
972
  # will default to the commit product name.
716
- name: nil
973
+ name: nil,
974
+ # List of filters that determine what kind of customer usage draws down a commit
975
+ # or credit. A customer's usage needs to meet the condition of at least one of the
976
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
977
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
978
+ specifiers: nil
717
979
  )
718
980
  end
719
981
 
@@ -724,12 +986,87 @@ module MetronomeSDK
724
986
  applicable_product_ids: T::Array[String],
725
987
  applicable_product_tags: T::Array[String],
726
988
  description: String,
727
- name: String
989
+ name: String,
990
+ specifiers:
991
+ T::Array[
992
+ MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::Commit::Specifier
993
+ ]
728
994
  }
729
995
  )
730
996
  end
731
997
  def to_hash
732
998
  end
999
+
1000
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
1001
+ OrHash =
1002
+ T.type_alias do
1003
+ T.any(
1004
+ MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::Commit::Specifier,
1005
+ MetronomeSDK::Internal::AnyHash
1006
+ )
1007
+ end
1008
+
1009
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
1010
+ attr_reader :presentation_group_values
1011
+
1012
+ sig do
1013
+ params(presentation_group_values: T::Hash[Symbol, String]).void
1014
+ end
1015
+ attr_writer :presentation_group_values
1016
+
1017
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
1018
+ attr_reader :pricing_group_values
1019
+
1020
+ sig { params(pricing_group_values: T::Hash[Symbol, String]).void }
1021
+ attr_writer :pricing_group_values
1022
+
1023
+ # If provided, the specifier will only apply to the product with the specified ID.
1024
+ sig { returns(T.nilable(String)) }
1025
+ attr_reader :product_id
1026
+
1027
+ sig { params(product_id: String).void }
1028
+ attr_writer :product_id
1029
+
1030
+ # If provided, the specifier will only apply to products with all the specified
1031
+ # tags.
1032
+ sig { returns(T.nilable(T::Array[String])) }
1033
+ attr_reader :product_tags
1034
+
1035
+ sig { params(product_tags: T::Array[String]).void }
1036
+ attr_writer :product_tags
1037
+
1038
+ sig do
1039
+ params(
1040
+ presentation_group_values: T::Hash[Symbol, String],
1041
+ pricing_group_values: T::Hash[Symbol, String],
1042
+ product_id: String,
1043
+ product_tags: T::Array[String]
1044
+ ).returns(T.attached_class)
1045
+ end
1046
+ def self.new(
1047
+ presentation_group_values: nil,
1048
+ pricing_group_values: nil,
1049
+ # If provided, the specifier will only apply to the product with the specified ID.
1050
+ product_id: nil,
1051
+ # If provided, the specifier will only apply to products with all the specified
1052
+ # tags.
1053
+ product_tags: nil
1054
+ )
1055
+ end
1056
+
1057
+ sig do
1058
+ override.returns(
1059
+ {
1060
+ presentation_group_values: T::Hash[Symbol, String],
1061
+ pricing_group_values: T::Hash[Symbol, String],
1062
+ product_id: String,
1063
+ product_tags: T::Array[String]
1064
+ }
1065
+ )
1066
+ end
1067
+ def to_hash
1068
+ end
1069
+ end
733
1070
  end
734
1071
 
735
1072
  class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
@@ -752,7 +1089,25 @@ module MetronomeSDK
752
1089
  end
753
1090
  attr_accessor :payment_gate_type
754
1091
 
755
- # Only applicable if using Stripe as your payment gateway through Metronome.
1092
+ # Only applicable if using PRECALCULATED as your tax type.
1093
+ sig do
1094
+ returns(
1095
+ T.nilable(
1096
+ MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
1097
+ )
1098
+ )
1099
+ end
1100
+ attr_reader :precalculated_tax_config
1101
+
1102
+ sig do
1103
+ params(
1104
+ precalculated_tax_config:
1105
+ MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
1106
+ ).void
1107
+ end
1108
+ attr_writer :precalculated_tax_config
1109
+
1110
+ # Only applicable if using STRIPE as your payment gate type.
756
1111
  sig do
757
1112
  returns(
758
1113
  T.nilable(
@@ -794,6 +1149,8 @@ module MetronomeSDK
794
1149
  params(
795
1150
  payment_gate_type:
796
1151
  MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
1152
+ precalculated_tax_config:
1153
+ MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
797
1154
  stripe_config:
798
1155
  MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash,
799
1156
  tax_type:
@@ -806,7 +1163,9 @@ module MetronomeSDK
806
1163
  # facilitate payment using your own payment integration. Select NONE if you do not
807
1164
  # wish to payment gate the commit balance.
808
1165
  payment_gate_type:,
809
- # Only applicable if using Stripe as your payment gateway through Metronome.
1166
+ # Only applicable if using PRECALCULATED as your tax type.
1167
+ precalculated_tax_config: nil,
1168
+ # Only applicable if using STRIPE as your payment gate type.
810
1169
  stripe_config: nil,
811
1170
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
812
1171
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
@@ -820,6 +1179,8 @@ module MetronomeSDK
820
1179
  {
821
1180
  payment_gate_type:
822
1181
  MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::TaggedSymbol,
1182
+ precalculated_tax_config:
1183
+ MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
823
1184
  stripe_config:
824
1185
  MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig,
825
1186
  tax_type:
@@ -873,6 +1234,49 @@ module MetronomeSDK
873
1234
  end
874
1235
  end
875
1236
 
1237
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
1238
+ OrHash =
1239
+ T.type_alias do
1240
+ T.any(
1241
+ MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
1242
+ MetronomeSDK::Internal::AnyHash
1243
+ )
1244
+ end
1245
+
1246
+ # Amount of tax to be applied. This should be in the same currency and
1247
+ # denomination as the commit's invoice schedule
1248
+ sig { returns(Float) }
1249
+ attr_accessor :tax_amount
1250
+
1251
+ # Name of the tax to be applied. This may be used in an invoice line item
1252
+ # description.
1253
+ sig { returns(T.nilable(String)) }
1254
+ attr_reader :tax_name
1255
+
1256
+ sig { params(tax_name: String).void }
1257
+ attr_writer :tax_name
1258
+
1259
+ # Only applicable if using PRECALCULATED as your tax type.
1260
+ sig do
1261
+ params(tax_amount: Float, tax_name: String).returns(
1262
+ T.attached_class
1263
+ )
1264
+ end
1265
+ def self.new(
1266
+ # Amount of tax to be applied. This should be in the same currency and
1267
+ # denomination as the commit's invoice schedule
1268
+ tax_amount:,
1269
+ # Name of the tax to be applied. This may be used in an invoice line item
1270
+ # description.
1271
+ tax_name: nil
1272
+ )
1273
+ end
1274
+
1275
+ sig { override.returns({ tax_amount: Float, tax_name: String }) }
1276
+ def to_hash
1277
+ end
1278
+ end
1279
+
876
1280
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
877
1281
  OrHash =
878
1282
  T.type_alias do
@@ -890,16 +1294,28 @@ module MetronomeSDK
890
1294
  end
891
1295
  attr_accessor :payment_type
892
1296
 
893
- # Only applicable if using Stripe as your payment gateway through Metronome.
1297
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
1298
+ # your payment type.
1299
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
1300
+ attr_reader :invoice_metadata
1301
+
1302
+ sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
1303
+ attr_writer :invoice_metadata
1304
+
1305
+ # Only applicable if using STRIPE as your payment gate type.
894
1306
  sig do
895
1307
  params(
896
1308
  payment_type:
897
- MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
1309
+ MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
1310
+ invoice_metadata: T::Hash[Symbol, String]
898
1311
  ).returns(T.attached_class)
899
1312
  end
900
1313
  def self.new(
901
1314
  # If left blank, will default to INVOICE
902
- payment_type:
1315
+ payment_type:,
1316
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
1317
+ # your payment type.
1318
+ invoice_metadata: nil
903
1319
  )
904
1320
  end
905
1321
 
@@ -907,7 +1323,8 @@ module MetronomeSDK
907
1323
  override.returns(
908
1324
  {
909
1325
  payment_type:
910
- MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol
1326
+ MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol,
1327
+ invoice_metadata: T::Hash[Symbol, String]
911
1328
  }
912
1329
  )
913
1330
  end
@@ -975,6 +1392,16 @@ module MetronomeSDK
975
1392
  :STRIPE,
976
1393
  MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
977
1394
  )
1395
+ ANROK =
1396
+ T.let(
1397
+ :ANROK,
1398
+ MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
1399
+ )
1400
+ PRECALCULATED =
1401
+ T.let(
1402
+ :PRECALCULATED,
1403
+ MetronomeSDK::ContractWithoutAmendments::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
1404
+ )
978
1405
 
979
1406
  sig do
980
1407
  override.returns(
@@ -1163,7 +1590,7 @@ module MetronomeSDK
1163
1590
  # The frequency at which the recurring commits will be created. If not provided: -
1164
1591
  # The commits will be created on the usage invoice frequency. If provided: - The
1165
1592
  # period defined in the duration will correspond to this frequency. - Commits will
1166
- # be created aligned with the recurring commit's start_date rather than the usage
1593
+ # be created aligned with the recurring commit's starting_at rather than the usage
1167
1594
  # invoice dates.
1168
1595
  sig do
1169
1596
  returns(
@@ -1191,6 +1618,30 @@ module MetronomeSDK
1191
1618
  sig { params(rollover_fraction: Float).void }
1192
1619
  attr_writer :rollover_fraction
1193
1620
 
1621
+ # List of filters that determine what kind of customer usage draws down a commit
1622
+ # or credit. A customer's usage needs to meet the condition of at least one of the
1623
+ # specifiers to contribute to a commit's or credit's drawdown.
1624
+ sig do
1625
+ returns(
1626
+ T.nilable(
1627
+ T::Array[
1628
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::Specifier
1629
+ ]
1630
+ )
1631
+ )
1632
+ end
1633
+ attr_reader :specifiers
1634
+
1635
+ sig do
1636
+ params(
1637
+ specifiers:
1638
+ T::Array[
1639
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::Specifier::OrHash
1640
+ ]
1641
+ ).void
1642
+ end
1643
+ attr_writer :specifiers
1644
+
1194
1645
  sig do
1195
1646
  params(
1196
1647
  id: String,
@@ -1218,7 +1669,11 @@ module MetronomeSDK
1218
1669
  MetronomeSDK::ContractWithoutAmendments::RecurringCommit::Proration::OrSymbol,
1219
1670
  recurrence_frequency:
1220
1671
  MetronomeSDK::ContractWithoutAmendments::RecurringCommit::RecurrenceFrequency::OrSymbol,
1221
- rollover_fraction: Float
1672
+ rollover_fraction: Float,
1673
+ specifiers:
1674
+ T::Array[
1675
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::Specifier::OrHash
1676
+ ]
1222
1677
  ).returns(T.attached_class)
1223
1678
  end
1224
1679
  def self.new(
@@ -1255,13 +1710,17 @@ module MetronomeSDK
1255
1710
  # The frequency at which the recurring commits will be created. If not provided: -
1256
1711
  # The commits will be created on the usage invoice frequency. If provided: - The
1257
1712
  # period defined in the duration will correspond to this frequency. - Commits will
1258
- # be created aligned with the recurring commit's start_date rather than the usage
1713
+ # be created aligned with the recurring commit's starting_at rather than the usage
1259
1714
  # invoice dates.
1260
1715
  recurrence_frequency: nil,
1261
1716
  # Will be passed down to the individual commits. This controls how much of an
1262
1717
  # individual unexpired commit will roll over upon contract transition. Must be
1263
1718
  # between 0 and 1.
1264
- rollover_fraction: nil
1719
+ rollover_fraction: nil,
1720
+ # List of filters that determine what kind of customer usage draws down a commit
1721
+ # or credit. A customer's usage needs to meet the condition of at least one of the
1722
+ # specifiers to contribute to a commit's or credit's drawdown.
1723
+ specifiers: nil
1265
1724
  )
1266
1725
  end
1267
1726
 
@@ -1293,7 +1752,11 @@ module MetronomeSDK
1293
1752
  MetronomeSDK::ContractWithoutAmendments::RecurringCommit::Proration::TaggedSymbol,
1294
1753
  recurrence_frequency:
1295
1754
  MetronomeSDK::ContractWithoutAmendments::RecurringCommit::RecurrenceFrequency::TaggedSymbol,
1296
- rollover_fraction: Float
1755
+ rollover_fraction: Float,
1756
+ specifiers:
1757
+ T::Array[
1758
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::Specifier
1759
+ ]
1297
1760
  }
1298
1761
  )
1299
1762
  end
@@ -1312,26 +1775,29 @@ module MetronomeSDK
1312
1775
  sig { returns(String) }
1313
1776
  attr_accessor :credit_type_id
1314
1777
 
1315
- sig { returns(Float) }
1316
- attr_accessor :quantity
1317
-
1318
1778
  sig { returns(Float) }
1319
1779
  attr_accessor :unit_price
1320
1780
 
1781
+ sig { returns(T.nilable(Float)) }
1782
+ attr_reader :quantity
1783
+
1784
+ sig { params(quantity: Float).void }
1785
+ attr_writer :quantity
1786
+
1321
1787
  # The amount of commit to grant.
1322
1788
  sig do
1323
1789
  params(
1324
1790
  credit_type_id: String,
1325
- quantity: Float,
1326
- unit_price: Float
1791
+ unit_price: Float,
1792
+ quantity: Float
1327
1793
  ).returns(T.attached_class)
1328
1794
  end
1329
- def self.new(credit_type_id:, quantity:, unit_price:)
1795
+ def self.new(credit_type_id:, unit_price:, quantity: nil)
1330
1796
  end
1331
1797
 
1332
1798
  sig do
1333
1799
  override.returns(
1334
- { credit_type_id: String, quantity: Float, unit_price: Float }
1800
+ { credit_type_id: String, unit_price: Float, quantity: Float }
1335
1801
  )
1336
1802
  end
1337
1803
  def to_hash
@@ -1587,7 +2053,7 @@ module MetronomeSDK
1587
2053
  # The frequency at which the recurring commits will be created. If not provided: -
1588
2054
  # The commits will be created on the usage invoice frequency. If provided: - The
1589
2055
  # period defined in the duration will correspond to this frequency. - Commits will
1590
- # be created aligned with the recurring commit's start_date rather than the usage
2056
+ # be created aligned with the recurring commit's starting_at rather than the usage
1591
2057
  # invoice dates.
1592
2058
  module RecurrenceFrequency
1593
2059
  extend MetronomeSDK::Internal::Type::Enum
@@ -1632,6 +2098,77 @@ module MetronomeSDK
1632
2098
  def self.values
1633
2099
  end
1634
2100
  end
2101
+
2102
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
2103
+ OrHash =
2104
+ T.type_alias do
2105
+ T.any(
2106
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::Specifier,
2107
+ MetronomeSDK::Internal::AnyHash
2108
+ )
2109
+ end
2110
+
2111
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
2112
+ attr_reader :presentation_group_values
2113
+
2114
+ sig do
2115
+ params(presentation_group_values: T::Hash[Symbol, String]).void
2116
+ end
2117
+ attr_writer :presentation_group_values
2118
+
2119
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
2120
+ attr_reader :pricing_group_values
2121
+
2122
+ sig { params(pricing_group_values: T::Hash[Symbol, String]).void }
2123
+ attr_writer :pricing_group_values
2124
+
2125
+ # If provided, the specifier will only apply to the product with the specified ID.
2126
+ sig { returns(T.nilable(String)) }
2127
+ attr_reader :product_id
2128
+
2129
+ sig { params(product_id: String).void }
2130
+ attr_writer :product_id
2131
+
2132
+ # If provided, the specifier will only apply to products with all the specified
2133
+ # tags.
2134
+ sig { returns(T.nilable(T::Array[String])) }
2135
+ attr_reader :product_tags
2136
+
2137
+ sig { params(product_tags: T::Array[String]).void }
2138
+ attr_writer :product_tags
2139
+
2140
+ sig do
2141
+ params(
2142
+ presentation_group_values: T::Hash[Symbol, String],
2143
+ pricing_group_values: T::Hash[Symbol, String],
2144
+ product_id: String,
2145
+ product_tags: T::Array[String]
2146
+ ).returns(T.attached_class)
2147
+ end
2148
+ def self.new(
2149
+ presentation_group_values: nil,
2150
+ pricing_group_values: nil,
2151
+ # If provided, the specifier will only apply to the product with the specified ID.
2152
+ product_id: nil,
2153
+ # If provided, the specifier will only apply to products with all the specified
2154
+ # tags.
2155
+ product_tags: nil
2156
+ )
2157
+ end
2158
+
2159
+ sig do
2160
+ override.returns(
2161
+ {
2162
+ presentation_group_values: T::Hash[Symbol, String],
2163
+ pricing_group_values: T::Hash[Symbol, String],
2164
+ product_id: String,
2165
+ product_tags: T::Array[String]
2166
+ }
2167
+ )
2168
+ end
2169
+ def to_hash
2170
+ end
2171
+ end
1635
2172
  end
1636
2173
 
1637
2174
  class RecurringCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -1790,7 +2327,7 @@ module MetronomeSDK
1790
2327
  # The frequency at which the recurring commits will be created. If not provided: -
1791
2328
  # The commits will be created on the usage invoice frequency. If provided: - The
1792
2329
  # period defined in the duration will correspond to this frequency. - Commits will
1793
- # be created aligned with the recurring commit's start_date rather than the usage
2330
+ # be created aligned with the recurring commit's starting_at rather than the usage
1794
2331
  # invoice dates.
1795
2332
  sig do
1796
2333
  returns(
@@ -1818,6 +2355,30 @@ module MetronomeSDK
1818
2355
  sig { params(rollover_fraction: Float).void }
1819
2356
  attr_writer :rollover_fraction
1820
2357
 
2358
+ # List of filters that determine what kind of customer usage draws down a commit
2359
+ # or credit. A customer's usage needs to meet the condition of at least one of the
2360
+ # specifiers to contribute to a commit's or credit's drawdown.
2361
+ sig do
2362
+ returns(
2363
+ T.nilable(
2364
+ T::Array[
2365
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::Specifier
2366
+ ]
2367
+ )
2368
+ )
2369
+ end
2370
+ attr_reader :specifiers
2371
+
2372
+ sig do
2373
+ params(
2374
+ specifiers:
2375
+ T::Array[
2376
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::Specifier::OrHash
2377
+ ]
2378
+ ).void
2379
+ end
2380
+ attr_writer :specifiers
2381
+
1821
2382
  sig do
1822
2383
  params(
1823
2384
  id: String,
@@ -1843,7 +2404,11 @@ module MetronomeSDK
1843
2404
  MetronomeSDK::ContractWithoutAmendments::RecurringCredit::Proration::OrSymbol,
1844
2405
  recurrence_frequency:
1845
2406
  MetronomeSDK::ContractWithoutAmendments::RecurringCredit::RecurrenceFrequency::OrSymbol,
1846
- rollover_fraction: Float
2407
+ rollover_fraction: Float,
2408
+ specifiers:
2409
+ T::Array[
2410
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::Specifier::OrHash
2411
+ ]
1847
2412
  ).returns(T.attached_class)
1848
2413
  end
1849
2414
  def self.new(
@@ -1878,13 +2443,17 @@ module MetronomeSDK
1878
2443
  # The frequency at which the recurring commits will be created. If not provided: -
1879
2444
  # The commits will be created on the usage invoice frequency. If provided: - The
1880
2445
  # period defined in the duration will correspond to this frequency. - Commits will
1881
- # be created aligned with the recurring commit's start_date rather than the usage
2446
+ # be created aligned with the recurring commit's starting_at rather than the usage
1882
2447
  # invoice dates.
1883
2448
  recurrence_frequency: nil,
1884
2449
  # Will be passed down to the individual commits. This controls how much of an
1885
2450
  # individual unexpired commit will roll over upon contract transition. Must be
1886
2451
  # between 0 and 1.
1887
- rollover_fraction: nil
2452
+ rollover_fraction: nil,
2453
+ # List of filters that determine what kind of customer usage draws down a commit
2454
+ # or credit. A customer's usage needs to meet the condition of at least one of the
2455
+ # specifiers to contribute to a commit's or credit's drawdown.
2456
+ specifiers: nil
1888
2457
  )
1889
2458
  end
1890
2459
 
@@ -1914,7 +2483,11 @@ module MetronomeSDK
1914
2483
  MetronomeSDK::ContractWithoutAmendments::RecurringCredit::Proration::TaggedSymbol,
1915
2484
  recurrence_frequency:
1916
2485
  MetronomeSDK::ContractWithoutAmendments::RecurringCredit::RecurrenceFrequency::TaggedSymbol,
1917
- rollover_fraction: Float
2486
+ rollover_fraction: Float,
2487
+ specifiers:
2488
+ T::Array[
2489
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::Specifier
2490
+ ]
1918
2491
  }
1919
2492
  )
1920
2493
  end
@@ -1933,26 +2506,29 @@ module MetronomeSDK
1933
2506
  sig { returns(String) }
1934
2507
  attr_accessor :credit_type_id
1935
2508
 
1936
- sig { returns(Float) }
1937
- attr_accessor :quantity
1938
-
1939
2509
  sig { returns(Float) }
1940
2510
  attr_accessor :unit_price
1941
2511
 
2512
+ sig { returns(T.nilable(Float)) }
2513
+ attr_reader :quantity
2514
+
2515
+ sig { params(quantity: Float).void }
2516
+ attr_writer :quantity
2517
+
1942
2518
  # The amount of commit to grant.
1943
2519
  sig do
1944
2520
  params(
1945
2521
  credit_type_id: String,
1946
- quantity: Float,
1947
- unit_price: Float
2522
+ unit_price: Float,
2523
+ quantity: Float
1948
2524
  ).returns(T.attached_class)
1949
2525
  end
1950
- def self.new(credit_type_id:, quantity:, unit_price:)
2526
+ def self.new(credit_type_id:, unit_price:, quantity: nil)
1951
2527
  end
1952
2528
 
1953
2529
  sig do
1954
2530
  override.returns(
1955
- { credit_type_id: String, quantity: Float, unit_price: Float }
2531
+ { credit_type_id: String, unit_price: Float, quantity: Float }
1956
2532
  )
1957
2533
  end
1958
2534
  def to_hash
@@ -2170,7 +2746,7 @@ module MetronomeSDK
2170
2746
  # The frequency at which the recurring commits will be created. If not provided: -
2171
2747
  # The commits will be created on the usage invoice frequency. If provided: - The
2172
2748
  # period defined in the duration will correspond to this frequency. - Commits will
2173
- # be created aligned with the recurring commit's start_date rather than the usage
2749
+ # be created aligned with the recurring commit's starting_at rather than the usage
2174
2750
  # invoice dates.
2175
2751
  module RecurrenceFrequency
2176
2752
  extend MetronomeSDK::Internal::Type::Enum
@@ -2215,6 +2791,77 @@ module MetronomeSDK
2215
2791
  def self.values
2216
2792
  end
2217
2793
  end
2794
+
2795
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
2796
+ OrHash =
2797
+ T.type_alias do
2798
+ T.any(
2799
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::Specifier,
2800
+ MetronomeSDK::Internal::AnyHash
2801
+ )
2802
+ end
2803
+
2804
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
2805
+ attr_reader :presentation_group_values
2806
+
2807
+ sig do
2808
+ params(presentation_group_values: T::Hash[Symbol, String]).void
2809
+ end
2810
+ attr_writer :presentation_group_values
2811
+
2812
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
2813
+ attr_reader :pricing_group_values
2814
+
2815
+ sig { params(pricing_group_values: T::Hash[Symbol, String]).void }
2816
+ attr_writer :pricing_group_values
2817
+
2818
+ # If provided, the specifier will only apply to the product with the specified ID.
2819
+ sig { returns(T.nilable(String)) }
2820
+ attr_reader :product_id
2821
+
2822
+ sig { params(product_id: String).void }
2823
+ attr_writer :product_id
2824
+
2825
+ # If provided, the specifier will only apply to products with all the specified
2826
+ # tags.
2827
+ sig { returns(T.nilable(T::Array[String])) }
2828
+ attr_reader :product_tags
2829
+
2830
+ sig { params(product_tags: T::Array[String]).void }
2831
+ attr_writer :product_tags
2832
+
2833
+ sig do
2834
+ params(
2835
+ presentation_group_values: T::Hash[Symbol, String],
2836
+ pricing_group_values: T::Hash[Symbol, String],
2837
+ product_id: String,
2838
+ product_tags: T::Array[String]
2839
+ ).returns(T.attached_class)
2840
+ end
2841
+ def self.new(
2842
+ presentation_group_values: nil,
2843
+ pricing_group_values: nil,
2844
+ # If provided, the specifier will only apply to the product with the specified ID.
2845
+ product_id: nil,
2846
+ # If provided, the specifier will only apply to products with all the specified
2847
+ # tags.
2848
+ product_tags: nil
2849
+ )
2850
+ end
2851
+
2852
+ sig do
2853
+ override.returns(
2854
+ {
2855
+ presentation_group_values: T::Hash[Symbol, String],
2856
+ pricing_group_values: T::Hash[Symbol, String],
2857
+ product_id: String,
2858
+ product_tags: T::Array[String]
2859
+ }
2860
+ )
2861
+ end
2862
+ def to_hash
2863
+ end
2864
+ end
2218
2865
  end
2219
2866
 
2220
2867
  class ResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel
@@ -2596,7 +3243,25 @@ module MetronomeSDK
2596
3243
  end
2597
3244
  attr_accessor :payment_gate_type
2598
3245
 
2599
- # Only applicable if using Stripe as your payment gateway through Metronome.
3246
+ # Only applicable if using PRECALCULATED as your tax type.
3247
+ sig do
3248
+ returns(
3249
+ T.nilable(
3250
+ MetronomeSDK::ContractWithoutAmendments::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
3251
+ )
3252
+ )
3253
+ end
3254
+ attr_reader :precalculated_tax_config
3255
+
3256
+ sig do
3257
+ params(
3258
+ precalculated_tax_config:
3259
+ MetronomeSDK::ContractWithoutAmendments::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
3260
+ ).void
3261
+ end
3262
+ attr_writer :precalculated_tax_config
3263
+
3264
+ # Only applicable if using STRIPE as your payment gate type.
2600
3265
  sig do
2601
3266
  returns(
2602
3267
  T.nilable(
@@ -2638,6 +3303,8 @@ module MetronomeSDK
2638
3303
  params(
2639
3304
  payment_gate_type:
2640
3305
  MetronomeSDK::ContractWithoutAmendments::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
3306
+ precalculated_tax_config:
3307
+ MetronomeSDK::ContractWithoutAmendments::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
2641
3308
  stripe_config:
2642
3309
  MetronomeSDK::ContractWithoutAmendments::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash,
2643
3310
  tax_type:
@@ -2650,7 +3317,9 @@ module MetronomeSDK
2650
3317
  # facilitate payment using your own payment integration. Select NONE if you do not
2651
3318
  # wish to payment gate the commit balance.
2652
3319
  payment_gate_type:,
2653
- # Only applicable if using Stripe as your payment gateway through Metronome.
3320
+ # Only applicable if using PRECALCULATED as your tax type.
3321
+ precalculated_tax_config: nil,
3322
+ # Only applicable if using STRIPE as your payment gate type.
2654
3323
  stripe_config: nil,
2655
3324
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
2656
3325
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
@@ -2664,6 +3333,8 @@ module MetronomeSDK
2664
3333
  {
2665
3334
  payment_gate_type:
2666
3335
  MetronomeSDK::ContractWithoutAmendments::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::TaggedSymbol,
3336
+ precalculated_tax_config:
3337
+ MetronomeSDK::ContractWithoutAmendments::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
2667
3338
  stripe_config:
2668
3339
  MetronomeSDK::ContractWithoutAmendments::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig,
2669
3340
  tax_type:
@@ -2717,6 +3388,49 @@ module MetronomeSDK
2717
3388
  end
2718
3389
  end
2719
3390
 
3391
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
3392
+ OrHash =
3393
+ T.type_alias do
3394
+ T.any(
3395
+ MetronomeSDK::ContractWithoutAmendments::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
3396
+ MetronomeSDK::Internal::AnyHash
3397
+ )
3398
+ end
3399
+
3400
+ # Amount of tax to be applied. This should be in the same currency and
3401
+ # denomination as the commit's invoice schedule
3402
+ sig { returns(Float) }
3403
+ attr_accessor :tax_amount
3404
+
3405
+ # Name of the tax to be applied. This may be used in an invoice line item
3406
+ # description.
3407
+ sig { returns(T.nilable(String)) }
3408
+ attr_reader :tax_name
3409
+
3410
+ sig { params(tax_name: String).void }
3411
+ attr_writer :tax_name
3412
+
3413
+ # Only applicable if using PRECALCULATED as your tax type.
3414
+ sig do
3415
+ params(tax_amount: Float, tax_name: String).returns(
3416
+ T.attached_class
3417
+ )
3418
+ end
3419
+ def self.new(
3420
+ # Amount of tax to be applied. This should be in the same currency and
3421
+ # denomination as the commit's invoice schedule
3422
+ tax_amount:,
3423
+ # Name of the tax to be applied. This may be used in an invoice line item
3424
+ # description.
3425
+ tax_name: nil
3426
+ )
3427
+ end
3428
+
3429
+ sig { override.returns({ tax_amount: Float, tax_name: String }) }
3430
+ def to_hash
3431
+ end
3432
+ end
3433
+
2720
3434
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
2721
3435
  OrHash =
2722
3436
  T.type_alias do
@@ -2734,16 +3448,28 @@ module MetronomeSDK
2734
3448
  end
2735
3449
  attr_accessor :payment_type
2736
3450
 
2737
- # Only applicable if using Stripe as your payment gateway through Metronome.
3451
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
3452
+ # your payment type.
3453
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
3454
+ attr_reader :invoice_metadata
3455
+
3456
+ sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
3457
+ attr_writer :invoice_metadata
3458
+
3459
+ # Only applicable if using STRIPE as your payment gate type.
2738
3460
  sig do
2739
3461
  params(
2740
3462
  payment_type:
2741
- MetronomeSDK::ContractWithoutAmendments::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
3463
+ MetronomeSDK::ContractWithoutAmendments::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
3464
+ invoice_metadata: T::Hash[Symbol, String]
2742
3465
  ).returns(T.attached_class)
2743
3466
  end
2744
3467
  def self.new(
2745
3468
  # If left blank, will default to INVOICE
2746
- payment_type:
3469
+ payment_type:,
3470
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
3471
+ # your payment type.
3472
+ invoice_metadata: nil
2747
3473
  )
2748
3474
  end
2749
3475
 
@@ -2751,7 +3477,8 @@ module MetronomeSDK
2751
3477
  override.returns(
2752
3478
  {
2753
3479
  payment_type:
2754
- MetronomeSDK::ContractWithoutAmendments::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol
3480
+ MetronomeSDK::ContractWithoutAmendments::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol,
3481
+ invoice_metadata: T::Hash[Symbol, String]
2755
3482
  }
2756
3483
  )
2757
3484
  end
@@ -2819,6 +3546,16 @@ module MetronomeSDK
2819
3546
  :STRIPE,
2820
3547
  MetronomeSDK::ContractWithoutAmendments::SpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
2821
3548
  )
3549
+ ANROK =
3550
+ T.let(
3551
+ :ANROK,
3552
+ MetronomeSDK::ContractWithoutAmendments::SpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
3553
+ )
3554
+ PRECALCULATED =
3555
+ T.let(
3556
+ :PRECALCULATED,
3557
+ MetronomeSDK::ContractWithoutAmendments::SpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
3558
+ )
2822
3559
 
2823
3560
  sig do
2824
3561
  override.returns(