metronome-sdk 0.1.0.pre.alpha.3 → 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 (403) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +40 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/errors.rb +22 -0
  5. data/lib/metronome_sdk/internal/transport/base_client.rb +10 -2
  6. data/lib/metronome_sdk/internal/type/array_of.rb +6 -1
  7. data/lib/metronome_sdk/internal/type/base_model.rb +82 -26
  8. data/lib/metronome_sdk/internal/type/boolean.rb +7 -1
  9. data/lib/metronome_sdk/internal/type/converter.rb +42 -34
  10. data/lib/metronome_sdk/internal/type/enum.rb +16 -5
  11. data/lib/metronome_sdk/internal/type/file_input.rb +6 -1
  12. data/lib/metronome_sdk/internal/type/hash_of.rb +6 -1
  13. data/lib/metronome_sdk/internal/type/union.rb +17 -9
  14. data/lib/metronome_sdk/internal/type/unknown.rb +7 -1
  15. data/lib/metronome_sdk/internal/util.rb +8 -9
  16. data/lib/metronome_sdk/models/base_usage_filter.rb +27 -0
  17. data/lib/metronome_sdk/models/commit.rb +1010 -0
  18. data/lib/metronome_sdk/models/contract_without_amendments.rb +1803 -0
  19. data/lib/metronome_sdk/models/credit.rb +634 -0
  20. data/lib/metronome_sdk/models/credit_type_data.rb +21 -0
  21. data/lib/metronome_sdk/models/discount.rb +68 -0
  22. data/lib/metronome_sdk/models/event_type_filter.rb +33 -0
  23. data/lib/metronome_sdk/models/id.rb +15 -0
  24. data/lib/metronome_sdk/models/override.rb +381 -0
  25. data/lib/metronome_sdk/models/pro_service.rb +73 -0
  26. data/lib/metronome_sdk/models/property_filter.rb +52 -0
  27. data/lib/metronome_sdk/models/rate.rb +101 -0
  28. data/lib/metronome_sdk/models/schedule_duration.rb +50 -0
  29. data/lib/metronome_sdk/models/schedule_point_in_time.rb +62 -0
  30. data/lib/metronome_sdk/models/scheduled_charge.rb +76 -0
  31. data/lib/metronome_sdk/models/tier.rb +21 -0
  32. data/lib/metronome_sdk/models/v1/alert_archive_response.rb +3 -14
  33. data/lib/metronome_sdk/models/v1/alert_create_params.rb +4 -1
  34. data/lib/metronome_sdk/models/v1/alert_create_response.rb +3 -14
  35. data/lib/metronome_sdk/models/v1/billable_metric_archive_params.rb +2 -8
  36. data/lib/metronome_sdk/models/v1/billable_metric_archive_response.rb +3 -14
  37. data/lib/metronome_sdk/models/v1/billable_metric_create_params.rb +6 -86
  38. data/lib/metronome_sdk/models/v1/billable_metric_create_response.rb +3 -14
  39. data/lib/metronome_sdk/models/v1/billable_metric_list_response.rb +6 -85
  40. data/lib/metronome_sdk/models/v1/billable_metric_retrieve_response.rb +8 -85
  41. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +312 -35
  42. data/lib/metronome_sdk/models/v1/contract_amend_response.rb +3 -14
  43. data/lib/metronome_sdk/models/v1/contract_archive_response.rb +3 -14
  44. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_response.rb +3 -1276
  45. data/lib/metronome_sdk/models/v1/contract_create_params.rb +550 -102
  46. data/lib/metronome_sdk/models/v1/contract_create_response.rb +3 -14
  47. data/lib/metronome_sdk/models/v1/contract_list_balances_response.rb +5 -1645
  48. data/lib/metronome_sdk/models/v1/contract_list_response.rb +253 -10692
  49. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rb +9 -295
  50. data/lib/metronome_sdk/models/v1/contract_retrieve_response.rb +254 -10721
  51. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rb +3 -1276
  52. data/lib/metronome_sdk/models/v1/contract_update_end_date_response.rb +3 -14
  53. data/lib/metronome_sdk/models/v1/contracts/product_archive_response.rb +3 -14
  54. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +6 -97
  55. data/lib/metronome_sdk/models/v1/contracts/product_create_response.rb +3 -14
  56. data/lib/metronome_sdk/models/v1/contracts/product_list_item_state.rb +148 -0
  57. data/lib/metronome_sdk/models/v1/contracts/product_list_response.rb +12 -561
  58. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_params.rb +2 -8
  59. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_response.rb +14 -559
  60. data/lib/metronome_sdk/models/v1/contracts/product_update_params.rb +6 -97
  61. data/lib/metronome_sdk/models/v1/contracts/product_update_response.rb +3 -14
  62. data/lib/metronome_sdk/models/v1/contracts/quantity_conversion.rb +57 -0
  63. data/lib/metronome_sdk/models/v1/contracts/quantity_rounding.rb +45 -0
  64. data/lib/metronome_sdk/models/v1/contracts/rate_card_archive_params.rb +2 -8
  65. data/lib/metronome_sdk/models/v1/contracts/rate_card_archive_response.rb +3 -14
  66. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_response.rb +3 -14
  67. data/lib/metronome_sdk/models/v1/contracts/rate_card_list_response.rb +6 -42
  68. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rb +2 -8
  69. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rb +6 -159
  70. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rb +6 -42
  71. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_response.rb +3 -14
  72. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rb +3 -14
  73. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rb +3 -14
  74. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +6 -44
  75. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rb +3 -16
  76. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +6 -44
  77. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +9 -61
  78. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rb +6 -158
  79. data/lib/metronome_sdk/models/v1/credit_grant_create_params.rb +5 -77
  80. data/lib/metronome_sdk/models/v1/credit_grant_create_response.rb +3 -14
  81. data/lib/metronome_sdk/models/v1/credit_grant_edit_response.rb +3 -14
  82. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_params.rb +20 -1
  83. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_response.rb +11 -153
  84. data/lib/metronome_sdk/models/v1/credit_grant_list_response.rb +14 -175
  85. data/lib/metronome_sdk/models/v1/credit_grant_void_response.rb +3 -14
  86. data/lib/metronome_sdk/models/v1/credit_ledger_entry.rb +69 -0
  87. data/lib/metronome_sdk/models/v1/customer.rb +53 -0
  88. data/lib/metronome_sdk/models/v1/customer_archive_params.rb +2 -8
  89. data/lib/metronome_sdk/models/v1/customer_archive_response.rb +3 -14
  90. data/lib/metronome_sdk/models/v1/customer_create_response.rb +3 -50
  91. data/lib/metronome_sdk/models/v1/{customer_list_response.rb → customer_detail.rb} +14 -15
  92. data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_response.rb +6 -86
  93. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +115 -0
  94. data/lib/metronome_sdk/models/v1/customer_preview_events_response.rb +18 -0
  95. data/lib/metronome_sdk/models/v1/customer_retrieve_response.rb +3 -126
  96. data/lib/metronome_sdk/models/v1/customer_set_name_response.rb +3 -50
  97. data/lib/metronome_sdk/models/v1/customers/alert_list_response.rb +5 -276
  98. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_response.rb +3 -279
  99. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +9 -1
  100. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +8 -6
  101. data/lib/metronome_sdk/models/v1/customers/commit_create_response.rb +3 -14
  102. data/lib/metronome_sdk/models/v1/customers/commit_list_response.rb +3 -1047
  103. data/lib/metronome_sdk/models/v1/customers/commit_update_end_date_response.rb +3 -14
  104. data/lib/metronome_sdk/models/v1/customers/credit_create_response.rb +3 -14
  105. data/lib/metronome_sdk/models/v1/customers/credit_list_response.rb +3 -593
  106. data/lib/metronome_sdk/models/v1/customers/credit_update_end_date_response.rb +3 -14
  107. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +270 -0
  108. data/lib/metronome_sdk/models/v1/customers/{invoice_list_response.rb → invoice.rb} +119 -303
  109. data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rb +2 -1271
  110. data/lib/metronome_sdk/models/v1/customers/invoice_retrieve_response.rb +3 -1276
  111. data/lib/metronome_sdk/models/v1/customers/plan_add_response.rb +3 -14
  112. data/lib/metronome_sdk/models/v1/customers/plan_list_response.rb +3 -21
  113. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +1 -0
  114. data/lib/metronome_sdk/models/v1/plan_detail.rb +200 -0
  115. data/lib/metronome_sdk/models/v1/plan_get_details_response.rb +3 -286
  116. data/lib/metronome_sdk/models/v1/plan_list_charges_response.rb +3 -20
  117. data/lib/metronome_sdk/models/v1/plan_list_customers_response.rb +3 -128
  118. data/lib/metronome_sdk/models/v1/rollover_amount_max_amount.rb +38 -0
  119. data/lib/metronome_sdk/models/v1/rollover_amount_max_percentage.rb +38 -0
  120. data/lib/metronome_sdk/models/v1/usage_search_params.rb +24 -0
  121. data/lib/metronome_sdk/models/v1/usage_search_response.rb +249 -0
  122. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +11 -8
  123. data/lib/metronome_sdk/models/v2/contract_edit_commit_response.rb +3 -14
  124. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +3 -2
  125. data/lib/metronome_sdk/models/v2/contract_edit_credit_response.rb +3 -14
  126. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +885 -103
  127. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +3 -14
  128. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +351 -625
  129. data/lib/metronome_sdk/models/v2/contract_list_response.rb +590 -749
  130. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +590 -751
  131. data/lib/metronome_sdk/models.rb +36 -4
  132. data/lib/metronome_sdk/resources/v1/alerts.rb +1 -1
  133. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +2 -2
  134. data/lib/metronome_sdk/resources/v1/contracts/products.rb +4 -4
  135. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +1 -1
  136. data/lib/metronome_sdk/resources/v1/contracts.rb +8 -4
  137. data/lib/metronome_sdk/resources/v1/credit_grants.rb +4 -2
  138. data/lib/metronome_sdk/resources/v1/customers/commits.rb +2 -2
  139. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +2 -2
  140. data/lib/metronome_sdk/resources/v1/customers.rb +40 -2
  141. data/lib/metronome_sdk/resources/v1/usage.rb +25 -0
  142. data/lib/metronome_sdk/resources/v2/contracts.rb +11 -9
  143. data/lib/metronome_sdk/version.rb +1 -1
  144. data/lib/metronome_sdk.rb +31 -2
  145. data/rbi/metronome_sdk/errors.rbi +16 -0
  146. data/rbi/metronome_sdk/internal/type/boolean.rbi +2 -0
  147. data/rbi/metronome_sdk/internal/type/converter.rbi +15 -15
  148. data/rbi/metronome_sdk/internal/type/union.rbi +5 -0
  149. data/rbi/metronome_sdk/internal/type/unknown.rbi +2 -0
  150. data/rbi/metronome_sdk/internal/util.rbi +2 -0
  151. data/rbi/metronome_sdk/models/base_usage_filter.rbi +46 -0
  152. data/rbi/metronome_sdk/models/commit.rbi +1962 -0
  153. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +3676 -0
  154. data/rbi/metronome_sdk/models/credit.rbi +1230 -0
  155. data/rbi/metronome_sdk/models/credit_type_data.rbi +26 -0
  156. data/rbi/metronome_sdk/models/discount.rbi +106 -0
  157. data/rbi/metronome_sdk/models/event_type_filter.rbi +57 -0
  158. data/rbi/metronome_sdk/models/id.rbi +23 -0
  159. data/rbi/metronome_sdk/models/override.rbi +675 -0
  160. data/rbi/metronome_sdk/models/pro_service.rbi +98 -0
  161. data/rbi/metronome_sdk/models/property_filter.rbi +88 -0
  162. data/rbi/metronome_sdk/models/rate.rbi +155 -0
  163. data/rbi/metronome_sdk/models/schedule_duration.rbi +89 -0
  164. data/rbi/metronome_sdk/models/schedule_point_in_time.rbi +121 -0
  165. data/rbi/metronome_sdk/models/scheduled_charge.rbi +119 -0
  166. data/rbi/metronome_sdk/models/tier.rbi +29 -0
  167. data/rbi/metronome_sdk/models/v1/alert_archive_response.rbi +4 -37
  168. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +6 -0
  169. data/rbi/metronome_sdk/models/v1/alert_create_response.rbi +4 -37
  170. data/rbi/metronome_sdk/models/v1/billable_metric_archive_params.rbi +6 -12
  171. data/rbi/metronome_sdk/models/v1/billable_metric_archive_response.rbi +4 -44
  172. data/rbi/metronome_sdk/models/v1/billable_metric_create_params.rbi +8 -177
  173. data/rbi/metronome_sdk/models/v1/billable_metric_create_response.rbi +4 -43
  174. data/rbi/metronome_sdk/models/v1/billable_metric_list_response.rbi +8 -177
  175. data/rbi/metronome_sdk/models/v1/billable_metric_retrieve_response.rbi +8 -175
  176. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +712 -68
  177. data/rbi/metronome_sdk/models/v1/contract_amend_response.rbi +4 -37
  178. data/rbi/metronome_sdk/models/v1/contract_archive_response.rbi +4 -39
  179. data/rbi/metronome_sdk/models/v1/contract_create_historical_invoices_response.rbi +3 -2595
  180. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1100 -172
  181. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +4 -37
  182. data/rbi/metronome_sdk/models/v1/contract_list_balances_response.rbi +3 -3366
  183. data/rbi/metronome_sdk/models/v1/contract_list_response.rbi +375 -22523
  184. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbi +12 -632
  185. data/rbi/metronome_sdk/models/v1/contract_retrieve_response.rbi +375 -22523
  186. data/rbi/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rbi +3 -2595
  187. data/rbi/metronome_sdk/models/v1/contract_update_end_date_response.rbi +4 -44
  188. data/rbi/metronome_sdk/models/v1/contracts/product_archive_response.rbi +4 -44
  189. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +8 -209
  190. data/rbi/metronome_sdk/models/v1/contracts/product_create_response.rbi +4 -44
  191. data/rbi/metronome_sdk/models/v1/contracts/product_list_item_state.rbi +237 -0
  192. data/rbi/metronome_sdk/models/v1/contracts/product_list_response.rbi +76 -1143
  193. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_params.rbi +3 -9
  194. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_response.rbi +76 -1137
  195. data/rbi/metronome_sdk/models/v1/contracts/product_update_params.rbi +8 -209
  196. data/rbi/metronome_sdk/models/v1/contracts/product_update_response.rbi +4 -44
  197. data/rbi/metronome_sdk/models/v1/contracts/quantity_conversion.rbi +111 -0
  198. data/rbi/metronome_sdk/models/v1/contracts/quantity_rounding.rbi +94 -0
  199. data/rbi/metronome_sdk/models/v1/contracts/rate_card_archive_params.rbi +3 -9
  200. data/rbi/metronome_sdk/models/v1/contracts/rate_card_archive_response.rbi +4 -44
  201. data/rbi/metronome_sdk/models/v1/contracts/rate_card_create_response.rbi +4 -44
  202. data/rbi/metronome_sdk/models/v1/contracts/rate_card_list_response.rbi +8 -74
  203. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rbi +3 -9
  204. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbi +8 -344
  205. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbi +8 -74
  206. data/rbi/metronome_sdk/models/v1/contracts/rate_card_update_response.rbi +4 -44
  207. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rbi +4 -44
  208. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rbi +4 -44
  209. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +8 -108
  210. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rbi +4 -45
  211. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +8 -108
  212. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +12 -149
  213. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbi +8 -344
  214. data/rbi/metronome_sdk/models/v1/credit_grant_create_params.rbi +8 -166
  215. data/rbi/metronome_sdk/models/v1/credit_grant_create_response.rbi +4 -41
  216. data/rbi/metronome_sdk/models/v1/credit_grant_edit_response.rbi +4 -39
  217. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_params.rbi +58 -0
  218. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_response.rbi +10 -231
  219. data/rbi/metronome_sdk/models/v1/credit_grant_list_response.rbi +14 -281
  220. data/rbi/metronome_sdk/models/v1/credit_grant_void_response.rbi +4 -39
  221. data/rbi/metronome_sdk/models/v1/credit_ledger_entry.rbi +90 -0
  222. data/rbi/metronome_sdk/models/v1/customer.rbi +74 -0
  223. data/rbi/metronome_sdk/models/v1/customer_archive_params.rbi +6 -12
  224. data/rbi/metronome_sdk/models/v1/customer_archive_response.rbi +4 -39
  225. data/rbi/metronome_sdk/models/v1/customer_create_response.rbi +6 -84
  226. data/rbi/metronome_sdk/models/v1/{customer_list_response.rbi → customer_detail.rbi} +19 -26
  227. data/rbi/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbi +8 -177
  228. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +214 -0
  229. data/rbi/metronome_sdk/models/v1/customer_preview_events_response.rbi +35 -0
  230. data/rbi/metronome_sdk/models/v1/customer_retrieve_response.rbi +6 -255
  231. data/rbi/metronome_sdk/models/v1/customer_set_name_response.rbi +6 -86
  232. data/rbi/metronome_sdk/models/v1/customers/alert_list_response.rbi +3 -623
  233. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_response.rbi +4 -622
  234. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +11 -0
  235. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +12 -8
  236. data/rbi/metronome_sdk/models/v1/customers/commit_create_response.rbi +4 -44
  237. data/rbi/metronome_sdk/models/v1/customers/commit_list_response.rbi +3 -2164
  238. data/rbi/metronome_sdk/models/v1/customers/commit_update_end_date_response.rbi +4 -44
  239. data/rbi/metronome_sdk/models/v1/customers/credit_create_response.rbi +4 -44
  240. data/rbi/metronome_sdk/models/v1/customers/credit_list_response.rbi +3 -1224
  241. data/rbi/metronome_sdk/models/v1/customers/credit_update_end_date_response.rbi +4 -44
  242. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +572 -0
  243. data/rbi/metronome_sdk/models/v1/customers/{invoice_list_response.rbi → invoice.rbi} +182 -589
  244. data/rbi/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rbi +4 -2561
  245. data/rbi/metronome_sdk/models/v1/customers/invoice_retrieve_response.rbi +6 -2612
  246. data/rbi/metronome_sdk/models/v1/customers/plan_add_response.rbi +4 -41
  247. data/rbi/metronome_sdk/models/v1/customers/plan_list_response.rbi +4 -39
  248. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +5 -0
  249. data/rbi/metronome_sdk/models/v1/plan_detail.rbi +349 -0
  250. data/rbi/metronome_sdk/models/v1/plan_get_details_response.rbi +6 -560
  251. data/rbi/metronome_sdk/models/v1/plan_list_charges_response.rbi +4 -37
  252. data/rbi/metronome_sdk/models/v1/plan_list_customers_response.rbi +4 -248
  253. data/rbi/metronome_sdk/models/v1/rollover_amount_max_amount.rbi +79 -0
  254. data/rbi/metronome_sdk/models/v1/rollover_amount_max_percentage.rbi +80 -0
  255. data/rbi/metronome_sdk/models/v1/usage_search_params.rbi +48 -0
  256. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +438 -0
  257. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +23 -23
  258. data/rbi/metronome_sdk/models/v2/contract_edit_commit_response.rbi +4 -41
  259. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +11 -15
  260. data/rbi/metronome_sdk/models/v2/contract_edit_credit_response.rbi +4 -41
  261. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +1859 -202
  262. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +4 -37
  263. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +700 -1447
  264. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +1204 -1472
  265. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +1204 -1472
  266. data/rbi/metronome_sdk/models.rbi +32 -0
  267. data/rbi/metronome_sdk/resources/v1/alerts.rbi +3 -0
  268. data/rbi/metronome_sdk/resources/v1/billable_metrics.rbi +2 -6
  269. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +4 -4
  270. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +1 -4
  271. data/rbi/metronome_sdk/resources/v1/contracts.rbi +10 -4
  272. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +4 -0
  273. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +6 -4
  274. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +1 -1
  275. data/rbi/metronome_sdk/resources/v1/customers.rbi +34 -3
  276. data/rbi/metronome_sdk/resources/v1/usage.rbi +17 -0
  277. data/rbi/metronome_sdk/resources/v2/contracts.rbi +24 -14
  278. data/sig/metronome_sdk/errors.rbs +9 -0
  279. data/sig/metronome_sdk/internal/type/converter.rbs +7 -1
  280. data/sig/metronome_sdk/models/base_usage_filter.rbs +28 -0
  281. data/sig/metronome_sdk/models/commit.rbs +1020 -0
  282. data/sig/metronome_sdk/models/contract_without_amendments.rbs +1582 -0
  283. data/sig/metronome_sdk/models/credit.rbs +643 -0
  284. data/sig/metronome_sdk/models/credit_type_data.rbs +15 -0
  285. data/sig/metronome_sdk/models/discount.rbs +63 -0
  286. data/sig/metronome_sdk/models/event_type_filter.rbs +26 -0
  287. data/sig/metronome_sdk/models/id.rbs +13 -0
  288. data/sig/metronome_sdk/models/override.rbs +399 -0
  289. data/sig/metronome_sdk/models/pro_service.rbs +61 -0
  290. data/sig/metronome_sdk/models/property_filter.rbs +41 -0
  291. data/sig/metronome_sdk/models/rate.rbs +94 -0
  292. data/sig/metronome_sdk/models/schedule_duration.rbs +56 -0
  293. data/sig/metronome_sdk/models/schedule_point_in_time.rbs +75 -0
  294. data/sig/metronome_sdk/models/scheduled_charge.rbs +70 -0
  295. data/sig/metronome_sdk/models/tier.rbs +17 -0
  296. data/sig/metronome_sdk/models/v1/alert_archive_response.rbs +4 -19
  297. data/sig/metronome_sdk/models/v1/alert_create_response.rbs +4 -19
  298. data/sig/metronome_sdk/models/v1/billable_metric_archive_params.rbs +4 -12
  299. data/sig/metronome_sdk/models/v1/billable_metric_archive_response.rbs +4 -19
  300. data/sig/metronome_sdk/models/v1/billable_metric_create_params.rbs +12 -73
  301. data/sig/metronome_sdk/models/v1/billable_metric_create_response.rbs +4 -19
  302. data/sig/metronome_sdk/models/v1/billable_metric_list_response.rbs +12 -73
  303. data/sig/metronome_sdk/models/v1/billable_metric_retrieve_response.rbs +12 -73
  304. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +291 -24
  305. data/sig/metronome_sdk/models/v1/contract_amend_response.rbs +4 -19
  306. data/sig/metronome_sdk/models/v1/contract_archive_response.rbs +4 -19
  307. data/sig/metronome_sdk/models/v1/contract_create_historical_invoices_response.rbs +4 -1291
  308. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +448 -84
  309. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +4 -19
  310. data/sig/metronome_sdk/models/v1/contract_list_balances_response.rbs +1 -1642
  311. data/sig/metronome_sdk/models/v1/contract_list_response.rbs +188 -10437
  312. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbs +15 -271
  313. data/sig/metronome_sdk/models/v1/contract_retrieve_response.rbs +188 -10437
  314. data/sig/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rbs +4 -1291
  315. data/sig/metronome_sdk/models/v1/contract_update_end_date_response.rbs +4 -19
  316. data/sig/metronome_sdk/models/v1/contracts/product_archive_response.rbs +4 -21
  317. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +8 -82
  318. data/sig/metronome_sdk/models/v1/contracts/product_create_response.rbs +4 -21
  319. data/sig/metronome_sdk/models/v1/contracts/product_list_item_state.rbs +121 -0
  320. data/sig/metronome_sdk/models/v1/contracts/product_list_response.rbs +16 -466
  321. data/sig/metronome_sdk/models/v1/contracts/product_retrieve_params.rbs +4 -12
  322. data/sig/metronome_sdk/models/v1/contracts/product_retrieve_response.rbs +16 -466
  323. data/sig/metronome_sdk/models/v1/contracts/product_update_params.rbs +8 -82
  324. data/sig/metronome_sdk/models/v1/contracts/product_update_response.rbs +4 -21
  325. data/sig/metronome_sdk/models/v1/contracts/quantity_conversion.rbs +47 -0
  326. data/sig/metronome_sdk/models/v1/contracts/quantity_rounding.rbs +41 -0
  327. data/sig/metronome_sdk/models/v1/contracts/rate_card_archive_params.rbs +4 -12
  328. data/sig/metronome_sdk/models/v1/contracts/rate_card_archive_response.rbs +4 -21
  329. data/sig/metronome_sdk/models/v1/contracts/rate_card_create_response.rbs +4 -21
  330. data/sig/metronome_sdk/models/v1/contracts/rate_card_list_response.rbs +10 -34
  331. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rbs +4 -12
  332. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbs +10 -144
  333. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbs +10 -34
  334. data/sig/metronome_sdk/models/v1/contracts/rate_card_update_response.rbs +4 -21
  335. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rbs +4 -21
  336. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rbs +4 -21
  337. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +12 -40
  338. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rbs +4 -21
  339. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +12 -40
  340. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +18 -58
  341. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbs +10 -144
  342. data/sig/metronome_sdk/models/v1/credit_grant_create_params.rbs +2 -66
  343. data/sig/metronome_sdk/models/v1/credit_grant_create_response.rbs +4 -19
  344. data/sig/metronome_sdk/models/v1/credit_grant_edit_response.rbs +4 -19
  345. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_params.rbs +20 -0
  346. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_response.rbs +12 -118
  347. data/sig/metronome_sdk/models/v1/credit_grant_list_response.rbs +16 -140
  348. data/sig/metronome_sdk/models/v1/credit_grant_void_response.rbs +4 -19
  349. data/sig/metronome_sdk/models/v1/credit_ledger_entry.rbs +52 -0
  350. data/sig/metronome_sdk/models/v1/customer.rbs +44 -0
  351. data/sig/metronome_sdk/models/v1/customer_archive_params.rbs +4 -12
  352. data/sig/metronome_sdk/models/v1/customer_archive_response.rbs +4 -19
  353. data/sig/metronome_sdk/models/v1/customer_create_response.rbs +4 -48
  354. data/sig/metronome_sdk/models/v1/{customer_list_response.rbs → customer_detail.rbs} +17 -17
  355. data/sig/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbs +12 -73
  356. data/sig/metronome_sdk/models/v1/customer_preview_events_params.rbs +105 -0
  357. data/sig/metronome_sdk/models/v1/customer_preview_events_response.rbs +16 -0
  358. data/sig/metronome_sdk/models/v1/customer_retrieve_response.rbs +4 -112
  359. data/sig/metronome_sdk/models/v1/customer_set_name_response.rbs +4 -48
  360. data/sig/metronome_sdk/models/v1/customers/alert_list_response.rbs +4 -243
  361. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_response.rbs +4 -247
  362. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +7 -0
  363. data/sig/metronome_sdk/models/v1/customers/commit_create_response.rbs +4 -21
  364. data/sig/metronome_sdk/models/v1/customers/commit_list_response.rbs +4 -1057
  365. data/sig/metronome_sdk/models/v1/customers/commit_update_end_date_response.rbs +4 -21
  366. data/sig/metronome_sdk/models/v1/customers/credit_create_response.rbs +4 -21
  367. data/sig/metronome_sdk/models/v1/customers/credit_list_response.rbs +4 -596
  368. data/sig/metronome_sdk/models/v1/customers/credit_update_end_date_response.rbs +4 -21
  369. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +234 -0
  370. data/sig/metronome_sdk/models/v1/customers/{invoice_list_response.rbs → invoice.rbs} +147 -305
  371. data/sig/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rbs +8 -1278
  372. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_response.rbs +4 -1294
  373. data/sig/metronome_sdk/models/v1/customers/plan_add_response.rbs +4 -19
  374. data/sig/metronome_sdk/models/v1/customers/plan_list_response.rbs +4 -16
  375. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +2 -1
  376. data/sig/metronome_sdk/models/v1/plan_detail.rbs +203 -0
  377. data/sig/metronome_sdk/models/v1/plan_get_details_response.rbs +4 -267
  378. data/sig/metronome_sdk/models/v1/plan_list_charges_response.rbs +4 -16
  379. data/sig/metronome_sdk/models/v1/plan_list_customers_response.rbs +4 -108
  380. data/sig/metronome_sdk/models/v1/rollover_amount_max_amount.rbs +37 -0
  381. data/sig/metronome_sdk/models/v1/rollover_amount_max_percentage.rbs +37 -0
  382. data/sig/metronome_sdk/models/v1/usage_search_params.rbs +26 -0
  383. data/sig/metronome_sdk/models/v1/usage_search_response.rbs +230 -0
  384. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +4 -8
  385. data/sig/metronome_sdk/models/v2/contract_edit_commit_response.rbs +4 -19
  386. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +4 -8
  387. data/sig/metronome_sdk/models/v2/contract_edit_credit_response.rbs +4 -19
  388. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +743 -77
  389. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +4 -19
  390. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +274 -665
  391. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +567 -759
  392. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +567 -759
  393. data/sig/metronome_sdk/models.rbs +32 -0
  394. data/sig/metronome_sdk/resources/v1/billable_metrics.rbs +2 -2
  395. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +4 -4
  396. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -1
  397. data/sig/metronome_sdk/resources/v1/contracts.rbs +3 -1
  398. data/sig/metronome_sdk/resources/v1/credit_grants.rbs +1 -0
  399. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -1
  400. data/sig/metronome_sdk/resources/v1/customers.rbs +9 -1
  401. data/sig/metronome_sdk/resources/v1/usage.rbs +5 -0
  402. data/sig/metronome_sdk/resources/v2/contracts.rbs +3 -2
  403. metadata +95 -8
@@ -22,7 +22,8 @@ module MetronomeSDK
22
22
  sig { returns(Time) }
23
23
  attr_accessor :starting_at
24
24
 
25
- # The billing provider configuration associated with a contract.
25
+ # The billing provider configuration associated with a contract. Provide either an
26
+ # ID or the provider and delivery method.
26
27
  sig do
27
28
  returns(
28
29
  T.nilable(
@@ -101,6 +102,23 @@ module MetronomeSDK
101
102
  sig { params(ending_before: Time).void }
102
103
  attr_writer :ending_before
103
104
 
105
+ sig do
106
+ returns(
107
+ T.nilable(
108
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration
109
+ )
110
+ )
111
+ end
112
+ attr_reader :hierarchy_configuration
113
+
114
+ sig do
115
+ params(
116
+ hierarchy_configuration:
117
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::OrHash
118
+ ).void
119
+ end
120
+ attr_writer :hierarchy_configuration
121
+
104
122
  # Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list
105
123
  # prices automatically. EXPLICIT prioritization requires specifying priorities for
106
124
  # each multiplier; the one with the lowest priority value will be prioritized
@@ -175,6 +193,13 @@ module MetronomeSDK
175
193
  end
176
194
  attr_writer :prepaid_balance_threshold_configuration
177
195
 
196
+ # Priority of the contract.
197
+ sig { returns(T.nilable(Float)) }
198
+ attr_reader :priority
199
+
200
+ sig { params(priority: Float).void }
201
+ attr_writer :priority
202
+
178
203
  # This field's availability is dependent on your client's configuration.
179
204
  sig do
180
205
  returns(
@@ -334,7 +359,7 @@ module MetronomeSDK
334
359
  end
335
360
  attr_writer :spend_threshold_configuration
336
361
 
337
- # (beta) Optional list of
362
+ # Optional list of
338
363
  # [subscriptions](https://docs.metronome.com/manage-product-access/create-subscription/)
339
364
  # to add to the contract.
340
365
  sig do
@@ -385,19 +410,10 @@ module MetronomeSDK
385
410
  sig { params(uniqueness_key: String).void }
386
411
  attr_writer :uniqueness_key
387
412
 
388
- sig do
389
- returns(
390
- T.nilable(MetronomeSDK::V1::ContractCreateParams::UsageFilter)
391
- )
392
- end
413
+ sig { returns(T.nilable(MetronomeSDK::BaseUsageFilter)) }
393
414
  attr_reader :usage_filter
394
415
 
395
- sig do
396
- params(
397
- usage_filter:
398
- MetronomeSDK::V1::ContractCreateParams::UsageFilter::OrHash
399
- ).void
400
- end
416
+ sig { params(usage_filter: MetronomeSDK::BaseUsageFilter::OrHash).void }
401
417
  attr_writer :usage_filter
402
418
 
403
419
  sig do
@@ -433,6 +449,8 @@ module MetronomeSDK
433
449
  MetronomeSDK::V1::ContractCreateParams::Discount::OrHash
434
450
  ],
435
451
  ending_before: Time,
452
+ hierarchy_configuration:
453
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::OrHash,
436
454
  multiplier_override_prioritization:
437
455
  MetronomeSDK::V1::ContractCreateParams::MultiplierOverridePrioritization::OrSymbol,
438
456
  name: String,
@@ -444,6 +462,7 @@ module MetronomeSDK
444
462
  ],
445
463
  prepaid_balance_threshold_configuration:
446
464
  MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::OrHash,
465
+ priority: Float,
447
466
  professional_services:
448
467
  T::Array[
449
468
  MetronomeSDK::V1::ContractCreateParams::ProfessionalService::OrHash
@@ -479,8 +498,7 @@ module MetronomeSDK
479
498
  transition:
480
499
  MetronomeSDK::V1::ContractCreateParams::Transition::OrHash,
481
500
  uniqueness_key: String,
482
- usage_filter:
483
- MetronomeSDK::V1::ContractCreateParams::UsageFilter::OrHash,
501
+ usage_filter: MetronomeSDK::BaseUsageFilter::OrHash,
484
502
  usage_statement_schedule:
485
503
  MetronomeSDK::V1::ContractCreateParams::UsageStatementSchedule::OrHash,
486
504
  request_options: MetronomeSDK::RequestOptions::OrHash
@@ -490,7 +508,8 @@ module MetronomeSDK
490
508
  customer_id:,
491
509
  # inclusive contract start time
492
510
  starting_at:,
493
- # The billing provider configuration associated with a contract.
511
+ # The billing provider configuration associated with a contract. Provide either an
512
+ # ID or the provider and delivery method.
494
513
  billing_provider_configuration: nil,
495
514
  commits: nil,
496
515
  credits: nil,
@@ -499,6 +518,7 @@ module MetronomeSDK
499
518
  discounts: nil,
500
519
  # exclusive contract end time
501
520
  ending_before: nil,
521
+ hierarchy_configuration: nil,
502
522
  # Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list
503
523
  # prices automatically. EXPLICIT prioritization requires specifying priorities for
504
524
  # each multiplier; the one with the lowest priority value will be prioritized
@@ -510,6 +530,8 @@ module MetronomeSDK
510
530
  netsuite_sales_order_id: nil,
511
531
  overrides: nil,
512
532
  prepaid_balance_threshold_configuration: nil,
533
+ # Priority of the contract.
534
+ priority: nil,
513
535
  # This field's availability is dependent on your client's configuration.
514
536
  professional_services: nil,
515
537
  # Selects the rate card linked to the specified alias as of the contract's start
@@ -530,7 +552,7 @@ module MetronomeSDK
530
552
  # on a separate invoice from usage charges.
531
553
  scheduled_charges_on_usage_invoices: nil,
532
554
  spend_threshold_configuration: nil,
533
- # (beta) Optional list of
555
+ # Optional list of
534
556
  # [subscriptions](https://docs.metronome.com/manage-product-access/create-subscription/)
535
557
  # to add to the contract.
536
558
  subscriptions: nil,
@@ -560,6 +582,8 @@ module MetronomeSDK
560
582
  discounts:
561
583
  T::Array[MetronomeSDK::V1::ContractCreateParams::Discount],
562
584
  ending_before: Time,
585
+ hierarchy_configuration:
586
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration,
563
587
  multiplier_override_prioritization:
564
588
  MetronomeSDK::V1::ContractCreateParams::MultiplierOverridePrioritization::OrSymbol,
565
589
  name: String,
@@ -569,6 +593,7 @@ module MetronomeSDK
569
593
  T::Array[MetronomeSDK::V1::ContractCreateParams::Override],
570
594
  prepaid_balance_threshold_configuration:
571
595
  MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration,
596
+ priority: Float,
572
597
  professional_services:
573
598
  T::Array[
574
599
  MetronomeSDK::V1::ContractCreateParams::ProfessionalService
@@ -601,7 +626,7 @@ module MetronomeSDK
601
626
  total_contract_value: Float,
602
627
  transition: MetronomeSDK::V1::ContractCreateParams::Transition,
603
628
  uniqueness_key: String,
604
- usage_filter: MetronomeSDK::V1::ContractCreateParams::UsageFilter,
629
+ usage_filter: MetronomeSDK::BaseUsageFilter,
605
630
  usage_statement_schedule:
606
631
  MetronomeSDK::V1::ContractCreateParams::UsageStatementSchedule,
607
632
  request_options: MetronomeSDK::RequestOptions
@@ -620,6 +645,7 @@ module MetronomeSDK
620
645
  )
621
646
  end
622
647
 
648
+ # Do not specify if using billing_provider_configuration_id.
623
649
  sig do
624
650
  returns(
625
651
  T.nilable(
@@ -637,13 +663,16 @@ module MetronomeSDK
637
663
  end
638
664
  attr_writer :billing_provider
639
665
 
640
- # The Metronome ID of the billing provider configuration
666
+ # The Metronome ID of the billing provider configuration. Use when a customer has
667
+ # multiple configurations with the same billing provider and delivery method.
668
+ # Otherwise, specify the billing_provider and delivery_method.
641
669
  sig { returns(T.nilable(String)) }
642
670
  attr_reader :billing_provider_configuration_id
643
671
 
644
672
  sig { params(billing_provider_configuration_id: String).void }
645
673
  attr_writer :billing_provider_configuration_id
646
674
 
675
+ # Do not specify if using billing_provider_configuration_id.
647
676
  sig do
648
677
  returns(
649
678
  T.nilable(
@@ -661,7 +690,8 @@ module MetronomeSDK
661
690
  end
662
691
  attr_writer :delivery_method
663
692
 
664
- # The billing provider configuration associated with a contract.
693
+ # The billing provider configuration associated with a contract. Provide either an
694
+ # ID or the provider and delivery method.
665
695
  sig do
666
696
  params(
667
697
  billing_provider:
@@ -672,9 +702,13 @@ module MetronomeSDK
672
702
  ).returns(T.attached_class)
673
703
  end
674
704
  def self.new(
705
+ # Do not specify if using billing_provider_configuration_id.
675
706
  billing_provider: nil,
676
- # The Metronome ID of the billing provider configuration
707
+ # The Metronome ID of the billing provider configuration. Use when a customer has
708
+ # multiple configurations with the same billing provider and delivery method.
709
+ # Otherwise, specify the billing_provider and delivery_method.
677
710
  billing_provider_configuration_id: nil,
711
+ # Do not specify if using billing_provider_configuration_id.
678
712
  delivery_method: nil
679
713
  )
680
714
  end
@@ -693,6 +727,7 @@ module MetronomeSDK
693
727
  def to_hash
694
728
  end
695
729
 
730
+ # Do not specify if using billing_provider_configuration_id.
696
731
  module BillingProvider
697
732
  extend MetronomeSDK::Internal::Type::Enum
698
733
 
@@ -742,6 +777,7 @@ module MetronomeSDK
742
777
  end
743
778
  end
744
779
 
780
+ # Do not specify if using billing_provider_configuration_id.
745
781
  module DeliveryMethod
746
782
  extend MetronomeSDK::Internal::Type::Enum
747
783
 
@@ -833,16 +869,18 @@ module MetronomeSDK
833
869
  sig { params(amount: Float).void }
834
870
  attr_writer :amount
835
871
 
836
- # Which products the commit applies to. If both applicable_product_ids and
837
- # applicable_product_tags are not provided, the commit applies to all products.
872
+ # Which products the commit applies to. If applicable_product_ids,
873
+ # applicable_product_tags or specifiers are not provided, the commit applies to
874
+ # all products.
838
875
  sig { returns(T.nilable(T::Array[String])) }
839
876
  attr_reader :applicable_product_ids
840
877
 
841
878
  sig { params(applicable_product_ids: T::Array[String]).void }
842
879
  attr_writer :applicable_product_ids
843
880
 
844
- # Which tags the commit applies to. If both applicable_product_ids and
845
- # applicable_product_tags are not provided, the commit applies to all products.
881
+ # Which tags the commit applies to. If applicable_product_ids,
882
+ # applicable_product_tags or specifiers are not provided, the commit applies to
883
+ # all products.
846
884
  sig { returns(T.nilable(T::Array[String])) }
847
885
  attr_reader :applicable_product_tags
848
886
 
@@ -862,6 +900,24 @@ module MetronomeSDK
862
900
  sig { params(description: String).void }
863
901
  attr_writer :description
864
902
 
903
+ # Optional configuration for commit hierarchy access control
904
+ sig do
905
+ returns(
906
+ T.nilable(
907
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration
908
+ )
909
+ )
910
+ end
911
+ attr_reader :hierarchy_configuration
912
+
913
+ sig do
914
+ params(
915
+ hierarchy_configuration:
916
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::OrHash
917
+ ).void
918
+ end
919
+ attr_writer :hierarchy_configuration
920
+
865
921
  # Required for "POSTPAID" commits: the true up invoice will be generated at this
866
922
  # time and only one schedule item is allowed; the total must match access_schedule
867
923
  # amount. Optional for "PREPAID" commits: if not provided, this will be a
@@ -992,6 +1048,8 @@ module MetronomeSDK
992
1048
  applicable_product_tags: T::Array[String],
993
1049
  custom_fields: T::Hash[Symbol, String],
994
1050
  description: String,
1051
+ hierarchy_configuration:
1052
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::OrHash,
995
1053
  invoice_schedule:
996
1054
  MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::OrHash,
997
1055
  name: String,
@@ -1018,15 +1076,19 @@ module MetronomeSDK
1018
1076
  access_schedule: nil,
1019
1077
  # (DEPRECATED) Use access_schedule and invoice_schedule instead.
1020
1078
  amount: nil,
1021
- # Which products the commit applies to. If both applicable_product_ids and
1022
- # applicable_product_tags are not provided, the commit applies to all products.
1079
+ # Which products the commit applies to. If applicable_product_ids,
1080
+ # applicable_product_tags or specifiers are not provided, the commit applies to
1081
+ # all products.
1023
1082
  applicable_product_ids: nil,
1024
- # Which tags the commit applies to. If both applicable_product_ids and
1025
- # applicable_product_tags are not provided, the commit applies to all products.
1083
+ # Which tags the commit applies to. If applicable_product_ids,
1084
+ # applicable_product_tags or specifiers are not provided, the commit applies to
1085
+ # all products.
1026
1086
  applicable_product_tags: nil,
1027
1087
  custom_fields: nil,
1028
1088
  # Used only in UI/API. It is not exposed to end customers.
1029
1089
  description: nil,
1090
+ # Optional configuration for commit hierarchy access control
1091
+ hierarchy_configuration: nil,
1030
1092
  # Required for "POSTPAID" commits: the true up invoice will be generated at this
1031
1093
  # time and only one schedule item is allowed; the total must match access_schedule
1032
1094
  # amount. Optional for "PREPAID" commits: if not provided, this will be a
@@ -1068,6 +1130,8 @@ module MetronomeSDK
1068
1130
  applicable_product_tags: T::Array[String],
1069
1131
  custom_fields: T::Hash[Symbol, String],
1070
1132
  description: String,
1133
+ hierarchy_configuration:
1134
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration,
1071
1135
  invoice_schedule:
1072
1136
  MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule,
1073
1137
  name: String,
@@ -1227,6 +1291,282 @@ module MetronomeSDK
1227
1291
  end
1228
1292
  end
1229
1293
 
1294
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
1295
+ OrHash =
1296
+ T.type_alias do
1297
+ T.any(
1298
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration,
1299
+ MetronomeSDK::Internal::AnyHash
1300
+ )
1301
+ end
1302
+
1303
+ sig do
1304
+ returns(
1305
+ T.any(
1306
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
1307
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
1308
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
1309
+ )
1310
+ )
1311
+ end
1312
+ attr_accessor :child_access
1313
+
1314
+ # Optional configuration for commit hierarchy access control
1315
+ sig do
1316
+ params(
1317
+ child_access:
1318
+ T.any(
1319
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
1320
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
1321
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
1322
+ )
1323
+ ).returns(T.attached_class)
1324
+ end
1325
+ def self.new(child_access:)
1326
+ end
1327
+
1328
+ sig do
1329
+ override.returns(
1330
+ {
1331
+ child_access:
1332
+ T.any(
1333
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
1334
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
1335
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
1336
+ )
1337
+ }
1338
+ )
1339
+ end
1340
+ def to_hash
1341
+ end
1342
+
1343
+ module ChildAccess
1344
+ extend MetronomeSDK::Internal::Type::Union
1345
+
1346
+ Variants =
1347
+ T.type_alias do
1348
+ T.any(
1349
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
1350
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
1351
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
1352
+ )
1353
+ end
1354
+
1355
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
1356
+ OrHash =
1357
+ T.type_alias do
1358
+ T.any(
1359
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
1360
+ MetronomeSDK::Internal::AnyHash
1361
+ )
1362
+ end
1363
+
1364
+ sig do
1365
+ returns(
1366
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
1367
+ )
1368
+ end
1369
+ attr_accessor :type
1370
+
1371
+ sig do
1372
+ params(
1373
+ type:
1374
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
1375
+ ).returns(T.attached_class)
1376
+ end
1377
+ def self.new(type:)
1378
+ end
1379
+
1380
+ sig do
1381
+ override.returns(
1382
+ {
1383
+ type:
1384
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
1385
+ }
1386
+ )
1387
+ end
1388
+ def to_hash
1389
+ end
1390
+
1391
+ module Type
1392
+ extend MetronomeSDK::Internal::Type::Enum
1393
+
1394
+ TaggedSymbol =
1395
+ T.type_alias do
1396
+ T.all(
1397
+ Symbol,
1398
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
1399
+ )
1400
+ end
1401
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1402
+
1403
+ ALL =
1404
+ T.let(
1405
+ :ALL,
1406
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
1407
+ )
1408
+
1409
+ sig do
1410
+ override.returns(
1411
+ T::Array[
1412
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
1413
+ ]
1414
+ )
1415
+ end
1416
+ def self.values
1417
+ end
1418
+ end
1419
+ end
1420
+
1421
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
1422
+ OrHash =
1423
+ T.type_alias do
1424
+ T.any(
1425
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
1426
+ MetronomeSDK::Internal::AnyHash
1427
+ )
1428
+ end
1429
+
1430
+ sig do
1431
+ returns(
1432
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
1433
+ )
1434
+ end
1435
+ attr_accessor :type
1436
+
1437
+ sig do
1438
+ params(
1439
+ type:
1440
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
1441
+ ).returns(T.attached_class)
1442
+ end
1443
+ def self.new(type:)
1444
+ end
1445
+
1446
+ sig do
1447
+ override.returns(
1448
+ {
1449
+ type:
1450
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
1451
+ }
1452
+ )
1453
+ end
1454
+ def to_hash
1455
+ end
1456
+
1457
+ module Type
1458
+ extend MetronomeSDK::Internal::Type::Enum
1459
+
1460
+ TaggedSymbol =
1461
+ T.type_alias do
1462
+ T.all(
1463
+ Symbol,
1464
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
1465
+ )
1466
+ end
1467
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1468
+
1469
+ NONE =
1470
+ T.let(
1471
+ :NONE,
1472
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
1473
+ )
1474
+
1475
+ sig do
1476
+ override.returns(
1477
+ T::Array[
1478
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
1479
+ ]
1480
+ )
1481
+ end
1482
+ def self.values
1483
+ end
1484
+ end
1485
+ end
1486
+
1487
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
1488
+ OrHash =
1489
+ T.type_alias do
1490
+ T.any(
1491
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
1492
+ MetronomeSDK::Internal::AnyHash
1493
+ )
1494
+ end
1495
+
1496
+ sig { returns(T::Array[String]) }
1497
+ attr_accessor :contract_ids
1498
+
1499
+ sig do
1500
+ returns(
1501
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
1502
+ )
1503
+ end
1504
+ attr_accessor :type
1505
+
1506
+ sig do
1507
+ params(
1508
+ contract_ids: T::Array[String],
1509
+ type:
1510
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
1511
+ ).returns(T.attached_class)
1512
+ end
1513
+ def self.new(contract_ids:, type:)
1514
+ end
1515
+
1516
+ sig do
1517
+ override.returns(
1518
+ {
1519
+ contract_ids: T::Array[String],
1520
+ type:
1521
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
1522
+ }
1523
+ )
1524
+ end
1525
+ def to_hash
1526
+ end
1527
+
1528
+ module Type
1529
+ extend MetronomeSDK::Internal::Type::Enum
1530
+
1531
+ TaggedSymbol =
1532
+ T.type_alias do
1533
+ T.all(
1534
+ Symbol,
1535
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
1536
+ )
1537
+ end
1538
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1539
+
1540
+ CONTRACT_IDS =
1541
+ T.let(
1542
+ :CONTRACT_IDS,
1543
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
1544
+ )
1545
+
1546
+ sig do
1547
+ override.returns(
1548
+ T::Array[
1549
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
1550
+ ]
1551
+ )
1552
+ end
1553
+ def self.values
1554
+ end
1555
+ end
1556
+ end
1557
+
1558
+ sig do
1559
+ override.returns(
1560
+ T::Array[
1561
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::Variants
1562
+ ]
1563
+ )
1564
+ end
1565
+ def self.variants
1566
+ end
1567
+ end
1568
+ end
1569
+
1230
1570
  class InvoiceSchedule < MetronomeSDK::Internal::Type::BaseModel
1231
1571
  OrHash =
1232
1572
  T.type_alias do
@@ -1627,7 +1967,25 @@ module MetronomeSDK
1627
1967
  end
1628
1968
  attr_accessor :payment_gate_type
1629
1969
 
1630
- # Only applicable if using Stripe as your payment gateway through Metronome.
1970
+ # Only applicable if using PRECALCULATED as your tax type.
1971
+ sig do
1972
+ returns(
1973
+ T.nilable(
1974
+ MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::PrecalculatedTaxConfig
1975
+ )
1976
+ )
1977
+ end
1978
+ attr_reader :precalculated_tax_config
1979
+
1980
+ sig do
1981
+ params(
1982
+ precalculated_tax_config:
1983
+ MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
1984
+ ).void
1985
+ end
1986
+ attr_writer :precalculated_tax_config
1987
+
1988
+ # Only applicable if using STRIPE as your payment gate type.
1631
1989
  sig do
1632
1990
  returns(
1633
1991
  T.nilable(
@@ -1670,6 +2028,8 @@ module MetronomeSDK
1670
2028
  params(
1671
2029
  payment_gate_type:
1672
2030
  MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::PaymentGateType::OrSymbol,
2031
+ precalculated_tax_config:
2032
+ MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
1673
2033
  stripe_config:
1674
2034
  MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig::OrHash,
1675
2035
  tax_type:
@@ -1682,7 +2042,9 @@ module MetronomeSDK
1682
2042
  # facilitate payment using your own payment integration. Select NONE if you do not
1683
2043
  # wish to payment gate the commit balance.
1684
2044
  payment_gate_type:,
1685
- # Only applicable if using Stripe as your payment gateway through Metronome.
2045
+ # Only applicable if using PRECALCULATED as your tax type.
2046
+ precalculated_tax_config: nil,
2047
+ # Only applicable if using STRIPE as your payment gate type.
1686
2048
  stripe_config: nil,
1687
2049
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
1688
2050
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
@@ -1696,6 +2058,8 @@ module MetronomeSDK
1696
2058
  {
1697
2059
  payment_gate_type:
1698
2060
  MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::PaymentGateType::OrSymbol,
2061
+ precalculated_tax_config:
2062
+ MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::PrecalculatedTaxConfig,
1699
2063
  stripe_config:
1700
2064
  MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig,
1701
2065
  tax_type:
@@ -1749,6 +2113,49 @@ module MetronomeSDK
1749
2113
  end
1750
2114
  end
1751
2115
 
2116
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
2117
+ OrHash =
2118
+ T.type_alias do
2119
+ T.any(
2120
+ MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::PrecalculatedTaxConfig,
2121
+ MetronomeSDK::Internal::AnyHash
2122
+ )
2123
+ end
2124
+
2125
+ # Amount of tax to be applied. This should be in the same currency and
2126
+ # denomination as the commit's invoice schedule
2127
+ sig { returns(Float) }
2128
+ attr_accessor :tax_amount
2129
+
2130
+ # Name of the tax to be applied. This may be used in an invoice line item
2131
+ # description.
2132
+ sig { returns(T.nilable(String)) }
2133
+ attr_reader :tax_name
2134
+
2135
+ sig { params(tax_name: String).void }
2136
+ attr_writer :tax_name
2137
+
2138
+ # Only applicable if using PRECALCULATED as your tax type.
2139
+ sig do
2140
+ params(tax_amount: Float, tax_name: String).returns(
2141
+ T.attached_class
2142
+ )
2143
+ end
2144
+ def self.new(
2145
+ # Amount of tax to be applied. This should be in the same currency and
2146
+ # denomination as the commit's invoice schedule
2147
+ tax_amount:,
2148
+ # Name of the tax to be applied. This may be used in an invoice line item
2149
+ # description.
2150
+ tax_name: nil
2151
+ )
2152
+ end
2153
+
2154
+ sig { override.returns({ tax_amount: Float, tax_name: String }) }
2155
+ def to_hash
2156
+ end
2157
+ end
2158
+
1752
2159
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
1753
2160
  OrHash =
1754
2161
  T.type_alias do
@@ -1766,16 +2173,28 @@ module MetronomeSDK
1766
2173
  end
1767
2174
  attr_accessor :payment_type
1768
2175
 
1769
- # Only applicable if using Stripe as your payment gateway through Metronome.
2176
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
2177
+ # your payment type.
2178
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
2179
+ attr_reader :invoice_metadata
2180
+
2181
+ sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
2182
+ attr_writer :invoice_metadata
2183
+
2184
+ # Only applicable if using STRIPE as your payment gate type.
1770
2185
  sig do
1771
2186
  params(
1772
2187
  payment_type:
1773
- MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
2188
+ MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
2189
+ invoice_metadata: T::Hash[Symbol, String]
1774
2190
  ).returns(T.attached_class)
1775
2191
  end
1776
2192
  def self.new(
1777
2193
  # If left blank, will default to INVOICE
1778
- payment_type:
2194
+ payment_type:,
2195
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
2196
+ # your payment type.
2197
+ invoice_metadata: nil
1779
2198
  )
1780
2199
  end
1781
2200
 
@@ -1783,7 +2202,8 @@ module MetronomeSDK
1783
2202
  override.returns(
1784
2203
  {
1785
2204
  payment_type:
1786
- MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
2205
+ MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
2206
+ invoice_metadata: T::Hash[Symbol, String]
1787
2207
  }
1788
2208
  )
1789
2209
  end
@@ -1851,6 +2271,16 @@ module MetronomeSDK
1851
2271
  :STRIPE,
1852
2272
  MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::TaxType::TaggedSymbol
1853
2273
  )
2274
+ ANROK =
2275
+ T.let(
2276
+ :ANROK,
2277
+ MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::TaxType::TaggedSymbol
2278
+ )
2279
+ PRECALCULATED =
2280
+ T.let(
2281
+ :PRECALCULATED,
2282
+ MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::TaxType::TaggedSymbol
2283
+ )
1854
2284
 
1855
2285
  sig do
1856
2286
  override.returns(
@@ -2027,6 +2457,24 @@ module MetronomeSDK
2027
2457
  sig { params(description: String).void }
2028
2458
  attr_writer :description
2029
2459
 
2460
+ # Optional configuration for credit hierarchy access control
2461
+ sig do
2462
+ returns(
2463
+ T.nilable(
2464
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration
2465
+ )
2466
+ )
2467
+ end
2468
+ attr_reader :hierarchy_configuration
2469
+
2470
+ sig do
2471
+ params(
2472
+ hierarchy_configuration:
2473
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::OrHash
2474
+ ).void
2475
+ end
2476
+ attr_writer :hierarchy_configuration
2477
+
2030
2478
  # displayed on invoices
2031
2479
  sig { returns(T.nilable(String)) }
2032
2480
  attr_reader :name
@@ -2100,6 +2548,8 @@ module MetronomeSDK
2100
2548
  applicable_product_tags: T::Array[String],
2101
2549
  custom_fields: T::Hash[Symbol, String],
2102
2550
  description: String,
2551
+ hierarchy_configuration:
2552
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::OrHash,
2103
2553
  name: String,
2104
2554
  netsuite_sales_order_id: String,
2105
2555
  priority: Float,
@@ -2124,6 +2574,8 @@ module MetronomeSDK
2124
2574
  custom_fields: nil,
2125
2575
  # Used only in UI/API. It is not exposed to end customers.
2126
2576
  description: nil,
2577
+ # Optional configuration for credit hierarchy access control
2578
+ hierarchy_configuration: nil,
2127
2579
  # displayed on invoices
2128
2580
  name: nil,
2129
2581
  # This field's availability is dependent on your client's configuration.
@@ -2150,6 +2602,8 @@ module MetronomeSDK
2150
2602
  applicable_product_tags: T::Array[String],
2151
2603
  custom_fields: T::Hash[Symbol, String],
2152
2604
  description: String,
2605
+ hierarchy_configuration:
2606
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration,
2153
2607
  name: String,
2154
2608
  netsuite_sales_order_id: String,
2155
2609
  priority: Float,
@@ -2267,6 +2721,282 @@ module MetronomeSDK
2267
2721
  end
2268
2722
  end
2269
2723
 
2724
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
2725
+ OrHash =
2726
+ T.type_alias do
2727
+ T.any(
2728
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration,
2729
+ MetronomeSDK::Internal::AnyHash
2730
+ )
2731
+ end
2732
+
2733
+ sig do
2734
+ returns(
2735
+ T.any(
2736
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
2737
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
2738
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
2739
+ )
2740
+ )
2741
+ end
2742
+ attr_accessor :child_access
2743
+
2744
+ # Optional configuration for credit hierarchy access control
2745
+ sig do
2746
+ params(
2747
+ child_access:
2748
+ T.any(
2749
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
2750
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
2751
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
2752
+ )
2753
+ ).returns(T.attached_class)
2754
+ end
2755
+ def self.new(child_access:)
2756
+ end
2757
+
2758
+ sig do
2759
+ override.returns(
2760
+ {
2761
+ child_access:
2762
+ T.any(
2763
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
2764
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
2765
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
2766
+ )
2767
+ }
2768
+ )
2769
+ end
2770
+ def to_hash
2771
+ end
2772
+
2773
+ module ChildAccess
2774
+ extend MetronomeSDK::Internal::Type::Union
2775
+
2776
+ Variants =
2777
+ T.type_alias do
2778
+ T.any(
2779
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
2780
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
2781
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
2782
+ )
2783
+ end
2784
+
2785
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
2786
+ OrHash =
2787
+ T.type_alias do
2788
+ T.any(
2789
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
2790
+ MetronomeSDK::Internal::AnyHash
2791
+ )
2792
+ end
2793
+
2794
+ sig do
2795
+ returns(
2796
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
2797
+ )
2798
+ end
2799
+ attr_accessor :type
2800
+
2801
+ sig do
2802
+ params(
2803
+ type:
2804
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
2805
+ ).returns(T.attached_class)
2806
+ end
2807
+ def self.new(type:)
2808
+ end
2809
+
2810
+ sig do
2811
+ override.returns(
2812
+ {
2813
+ type:
2814
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
2815
+ }
2816
+ )
2817
+ end
2818
+ def to_hash
2819
+ end
2820
+
2821
+ module Type
2822
+ extend MetronomeSDK::Internal::Type::Enum
2823
+
2824
+ TaggedSymbol =
2825
+ T.type_alias do
2826
+ T.all(
2827
+ Symbol,
2828
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
2829
+ )
2830
+ end
2831
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2832
+
2833
+ ALL =
2834
+ T.let(
2835
+ :ALL,
2836
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
2837
+ )
2838
+
2839
+ sig do
2840
+ override.returns(
2841
+ T::Array[
2842
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
2843
+ ]
2844
+ )
2845
+ end
2846
+ def self.values
2847
+ end
2848
+ end
2849
+ end
2850
+
2851
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
2852
+ OrHash =
2853
+ T.type_alias do
2854
+ T.any(
2855
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
2856
+ MetronomeSDK::Internal::AnyHash
2857
+ )
2858
+ end
2859
+
2860
+ sig do
2861
+ returns(
2862
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
2863
+ )
2864
+ end
2865
+ attr_accessor :type
2866
+
2867
+ sig do
2868
+ params(
2869
+ type:
2870
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
2871
+ ).returns(T.attached_class)
2872
+ end
2873
+ def self.new(type:)
2874
+ end
2875
+
2876
+ sig do
2877
+ override.returns(
2878
+ {
2879
+ type:
2880
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
2881
+ }
2882
+ )
2883
+ end
2884
+ def to_hash
2885
+ end
2886
+
2887
+ module Type
2888
+ extend MetronomeSDK::Internal::Type::Enum
2889
+
2890
+ TaggedSymbol =
2891
+ T.type_alias do
2892
+ T.all(
2893
+ Symbol,
2894
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
2895
+ )
2896
+ end
2897
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2898
+
2899
+ NONE =
2900
+ T.let(
2901
+ :NONE,
2902
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
2903
+ )
2904
+
2905
+ sig do
2906
+ override.returns(
2907
+ T::Array[
2908
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
2909
+ ]
2910
+ )
2911
+ end
2912
+ def self.values
2913
+ end
2914
+ end
2915
+ end
2916
+
2917
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
2918
+ OrHash =
2919
+ T.type_alias do
2920
+ T.any(
2921
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
2922
+ MetronomeSDK::Internal::AnyHash
2923
+ )
2924
+ end
2925
+
2926
+ sig { returns(T::Array[String]) }
2927
+ attr_accessor :contract_ids
2928
+
2929
+ sig do
2930
+ returns(
2931
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
2932
+ )
2933
+ end
2934
+ attr_accessor :type
2935
+
2936
+ sig do
2937
+ params(
2938
+ contract_ids: T::Array[String],
2939
+ type:
2940
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
2941
+ ).returns(T.attached_class)
2942
+ end
2943
+ def self.new(contract_ids:, type:)
2944
+ end
2945
+
2946
+ sig do
2947
+ override.returns(
2948
+ {
2949
+ contract_ids: T::Array[String],
2950
+ type:
2951
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
2952
+ }
2953
+ )
2954
+ end
2955
+ def to_hash
2956
+ end
2957
+
2958
+ module Type
2959
+ extend MetronomeSDK::Internal::Type::Enum
2960
+
2961
+ TaggedSymbol =
2962
+ T.type_alias do
2963
+ T.all(
2964
+ Symbol,
2965
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
2966
+ )
2967
+ end
2968
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2969
+
2970
+ CONTRACT_IDS =
2971
+ T.let(
2972
+ :CONTRACT_IDS,
2973
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
2974
+ )
2975
+
2976
+ sig do
2977
+ override.returns(
2978
+ T::Array[
2979
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
2980
+ ]
2981
+ )
2982
+ end
2983
+ def self.values
2984
+ end
2985
+ end
2986
+ end
2987
+
2988
+ sig do
2989
+ override.returns(
2990
+ T::Array[
2991
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::Variants
2992
+ ]
2993
+ )
2994
+ end
2995
+ def self.variants
2996
+ end
2997
+ end
2998
+ end
2999
+
2270
3000
  module RateType
2271
3001
  extend MetronomeSDK::Internal::Type::Enum
2272
3002
 
@@ -2834,6 +3564,81 @@ module MetronomeSDK
2834
3564
  end
2835
3565
  end
2836
3566
 
3567
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
3568
+ OrHash =
3569
+ T.type_alias do
3570
+ T.any(
3571
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration,
3572
+ MetronomeSDK::Internal::AnyHash
3573
+ )
3574
+ end
3575
+
3576
+ sig do
3577
+ returns(
3578
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::Parent
3579
+ )
3580
+ end
3581
+ attr_reader :parent
3582
+
3583
+ sig do
3584
+ params(
3585
+ parent:
3586
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::Parent::OrHash
3587
+ ).void
3588
+ end
3589
+ attr_writer :parent
3590
+
3591
+ sig do
3592
+ params(
3593
+ parent:
3594
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::Parent::OrHash
3595
+ ).returns(T.attached_class)
3596
+ end
3597
+ def self.new(parent:)
3598
+ end
3599
+
3600
+ sig do
3601
+ override.returns(
3602
+ {
3603
+ parent:
3604
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::Parent
3605
+ }
3606
+ )
3607
+ end
3608
+ def to_hash
3609
+ end
3610
+
3611
+ class Parent < MetronomeSDK::Internal::Type::BaseModel
3612
+ OrHash =
3613
+ T.type_alias do
3614
+ T.any(
3615
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::Parent,
3616
+ MetronomeSDK::Internal::AnyHash
3617
+ )
3618
+ end
3619
+
3620
+ sig { returns(String) }
3621
+ attr_accessor :contract_id
3622
+
3623
+ sig { returns(String) }
3624
+ attr_accessor :customer_id
3625
+
3626
+ sig do
3627
+ params(contract_id: String, customer_id: String).returns(
3628
+ T.attached_class
3629
+ )
3630
+ end
3631
+ def self.new(contract_id:, customer_id:)
3632
+ end
3633
+
3634
+ sig do
3635
+ override.returns({ contract_id: String, customer_id: String })
3636
+ end
3637
+ def to_hash
3638
+ end
3639
+ end
3640
+ end
3641
+
2837
3642
  # Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list
2838
3643
  # prices automatically. EXPLICIT prioritization requires specifying priorities for
2839
3644
  # each multiplier; the one with the lowest priority value will be prioritized
@@ -3387,25 +4192,10 @@ module MetronomeSDK
3387
4192
  attr_writer :quantity
3388
4193
 
3389
4194
  # Only set for TIERED rate_type.
3390
- sig do
3391
- returns(
3392
- T.nilable(
3393
- T::Array[
3394
- MetronomeSDK::V1::ContractCreateParams::Override::OverwriteRate::Tier
3395
- ]
3396
- )
3397
- )
3398
- end
4195
+ sig { returns(T.nilable(T::Array[MetronomeSDK::Tier])) }
3399
4196
  attr_reader :tiers
3400
4197
 
3401
- sig do
3402
- params(
3403
- tiers:
3404
- T::Array[
3405
- MetronomeSDK::V1::ContractCreateParams::Override::OverwriteRate::Tier::OrHash
3406
- ]
3407
- ).void
3408
- end
4198
+ sig { params(tiers: T::Array[MetronomeSDK::Tier::OrHash]).void }
3409
4199
  attr_writer :tiers
3410
4200
 
3411
4201
  # Required for OVERWRITE type.
@@ -3418,10 +4208,7 @@ module MetronomeSDK
3418
4208
  is_prorated: T::Boolean,
3419
4209
  price: Float,
3420
4210
  quantity: Float,
3421
- tiers:
3422
- T::Array[
3423
- MetronomeSDK::V1::ContractCreateParams::Override::OverwriteRate::Tier::OrHash
3424
- ]
4211
+ tiers: T::Array[MetronomeSDK::Tier::OrHash]
3425
4212
  ).returns(T.attached_class)
3426
4213
  end
3427
4214
  def self.new(
@@ -3453,10 +4240,7 @@ module MetronomeSDK
3453
4240
  is_prorated: T::Boolean,
3454
4241
  price: Float,
3455
4242
  quantity: Float,
3456
- tiers:
3457
- T::Array[
3458
- MetronomeSDK::V1::ContractCreateParams::Override::OverwriteRate::Tier
3459
- ]
4243
+ tiers: T::Array[MetronomeSDK::Tier]
3460
4244
  }
3461
4245
  )
3462
4246
  end
@@ -3511,35 +4295,6 @@ module MetronomeSDK
3511
4295
  def self.values
3512
4296
  end
3513
4297
  end
3514
-
3515
- class Tier < MetronomeSDK::Internal::Type::BaseModel
3516
- OrHash =
3517
- T.type_alias do
3518
- T.any(
3519
- MetronomeSDK::V1::ContractCreateParams::Override::OverwriteRate::Tier,
3520
- MetronomeSDK::Internal::AnyHash
3521
- )
3522
- end
3523
-
3524
- sig { returns(Float) }
3525
- attr_accessor :price
3526
-
3527
- sig { returns(T.nilable(Float)) }
3528
- attr_reader :size
3529
-
3530
- sig { params(size: Float).void }
3531
- attr_writer :size
3532
-
3533
- sig do
3534
- params(price: Float, size: Float).returns(T.attached_class)
3535
- end
3536
- def self.new(price:, size: nil)
3537
- end
3538
-
3539
- sig { override.returns({ price: Float, size: Float }) }
3540
- def to_hash
3541
- end
3542
- end
3543
4298
  end
3544
4299
 
3545
4300
  # Indicates whether the override applies to commit rates or list rates. Can only
@@ -3703,6 +4458,14 @@ module MetronomeSDK
3703
4458
  sig { returns(Float) }
3704
4459
  attr_accessor :threshold_amount
3705
4460
 
4461
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
4462
+ # commit amount will be in terms of this credit type instead of the fiat currency.
4463
+ sig { returns(T.nilable(String)) }
4464
+ attr_reader :custom_credit_type_id
4465
+
4466
+ sig { params(custom_credit_type_id: String).void }
4467
+ attr_writer :custom_credit_type_id
4468
+
3706
4469
  sig do
3707
4470
  params(
3708
4471
  commit:
@@ -3711,7 +4474,8 @@ module MetronomeSDK
3711
4474
  payment_gate_config:
3712
4475
  MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::OrHash,
3713
4476
  recharge_to_amount: Float,
3714
- threshold_amount: Float
4477
+ threshold_amount: Float,
4478
+ custom_credit_type_id: String
3715
4479
  ).returns(T.attached_class)
3716
4480
  end
3717
4481
  def self.new(
@@ -3725,7 +4489,10 @@ module MetronomeSDK
3725
4489
  recharge_to_amount:,
3726
4490
  # Specify the threshold amount for the contract. Each time the contract's prepaid
3727
4491
  # balance lowers to this amount, a threshold charge will be initiated.
3728
- threshold_amount:
4492
+ threshold_amount:,
4493
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
4494
+ # commit amount will be in terms of this credit type instead of the fiat currency.
4495
+ custom_credit_type_id: nil
3729
4496
  )
3730
4497
  end
3731
4498
 
@@ -3738,7 +4505,8 @@ module MetronomeSDK
3738
4505
  payment_gate_config:
3739
4506
  MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig,
3740
4507
  recharge_to_amount: Float,
3741
- threshold_amount: Float
4508
+ threshold_amount: Float,
4509
+ custom_credit_type_id: String
3742
4510
  }
3743
4511
  )
3744
4512
  end
@@ -3759,17 +4527,18 @@ module MetronomeSDK
3759
4527
  sig { returns(String) }
3760
4528
  attr_accessor :product_id
3761
4529
 
3762
- # Which products the threshold commit applies to. If both applicable_product_ids
3763
- # and applicable_product_tags are not provided, the commit applies to all
3764
- # products.
4530
+ # Which products the threshold commit applies to. If applicable_product_ids,
4531
+ # applicable_product_tags or specifiers are not provided, the commit applies to
4532
+ # all products.
3765
4533
  sig { returns(T.nilable(T::Array[String])) }
3766
4534
  attr_reader :applicable_product_ids
3767
4535
 
3768
4536
  sig { params(applicable_product_ids: T::Array[String]).void }
3769
4537
  attr_writer :applicable_product_ids
3770
4538
 
3771
- # Which tags the threshold commit applies to. If both applicable_product_ids and
3772
- # applicable_product_tags are not provided, the commit applies to all products.
4539
+ # Which tags the threshold commit applies to. If applicable_product_ids,
4540
+ # applicable_product_tags or specifiers are not provided, the commit applies to
4541
+ # all products.
3773
4542
  sig { returns(T.nilable(T::Array[String])) }
3774
4543
  attr_reader :applicable_product_tags
3775
4544
 
@@ -3832,12 +4601,13 @@ module MetronomeSDK
3832
4601
  # The commit product that will be used to generate the line item for commit
3833
4602
  # payment.
3834
4603
  product_id:,
3835
- # Which products the threshold commit applies to. If both applicable_product_ids
3836
- # and applicable_product_tags are not provided, the commit applies to all
3837
- # products.
4604
+ # Which products the threshold commit applies to. If applicable_product_ids,
4605
+ # applicable_product_tags or specifiers are not provided, the commit applies to
4606
+ # all products.
3838
4607
  applicable_product_ids: nil,
3839
- # Which tags the threshold commit applies to. If both applicable_product_ids and
3840
- # applicable_product_tags are not provided, the commit applies to all products.
4608
+ # Which tags the threshold commit applies to. If applicable_product_ids,
4609
+ # applicable_product_tags or specifiers are not provided, the commit applies to
4610
+ # all products.
3841
4611
  applicable_product_tags: nil,
3842
4612
  description: nil,
3843
4613
  # Specify the name of the line item for the threshold charge. If left blank, it
@@ -3961,7 +4731,25 @@ module MetronomeSDK
3961
4731
  end
3962
4732
  attr_accessor :payment_gate_type
3963
4733
 
3964
- # Only applicable if using Stripe as your payment gateway through Metronome.
4734
+ # Only applicable if using PRECALCULATED as your tax type.
4735
+ sig do
4736
+ returns(
4737
+ T.nilable(
4738
+ MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
4739
+ )
4740
+ )
4741
+ end
4742
+ attr_reader :precalculated_tax_config
4743
+
4744
+ sig do
4745
+ params(
4746
+ precalculated_tax_config:
4747
+ MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
4748
+ ).void
4749
+ end
4750
+ attr_writer :precalculated_tax_config
4751
+
4752
+ # Only applicable if using STRIPE as your payment gate type.
3965
4753
  sig do
3966
4754
  returns(
3967
4755
  T.nilable(
@@ -4003,6 +4791,8 @@ module MetronomeSDK
4003
4791
  params(
4004
4792
  payment_gate_type:
4005
4793
  MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
4794
+ precalculated_tax_config:
4795
+ MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
4006
4796
  stripe_config:
4007
4797
  MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash,
4008
4798
  tax_type:
@@ -4015,7 +4805,9 @@ module MetronomeSDK
4015
4805
  # facilitate payment using your own payment integration. Select NONE if you do not
4016
4806
  # wish to payment gate the commit balance.
4017
4807
  payment_gate_type:,
4018
- # Only applicable if using Stripe as your payment gateway through Metronome.
4808
+ # Only applicable if using PRECALCULATED as your tax type.
4809
+ precalculated_tax_config: nil,
4810
+ # Only applicable if using STRIPE as your payment gate type.
4019
4811
  stripe_config: nil,
4020
4812
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
4021
4813
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
@@ -4029,6 +4821,8 @@ module MetronomeSDK
4029
4821
  {
4030
4822
  payment_gate_type:
4031
4823
  MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
4824
+ precalculated_tax_config:
4825
+ MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
4032
4826
  stripe_config:
4033
4827
  MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig,
4034
4828
  tax_type:
@@ -4082,6 +4876,49 @@ module MetronomeSDK
4082
4876
  end
4083
4877
  end
4084
4878
 
4879
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
4880
+ OrHash =
4881
+ T.type_alias do
4882
+ T.any(
4883
+ MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
4884
+ MetronomeSDK::Internal::AnyHash
4885
+ )
4886
+ end
4887
+
4888
+ # Amount of tax to be applied. This should be in the same currency and
4889
+ # denomination as the commit's invoice schedule
4890
+ sig { returns(Float) }
4891
+ attr_accessor :tax_amount
4892
+
4893
+ # Name of the tax to be applied. This may be used in an invoice line item
4894
+ # description.
4895
+ sig { returns(T.nilable(String)) }
4896
+ attr_reader :tax_name
4897
+
4898
+ sig { params(tax_name: String).void }
4899
+ attr_writer :tax_name
4900
+
4901
+ # Only applicable if using PRECALCULATED as your tax type.
4902
+ sig do
4903
+ params(tax_amount: Float, tax_name: String).returns(
4904
+ T.attached_class
4905
+ )
4906
+ end
4907
+ def self.new(
4908
+ # Amount of tax to be applied. This should be in the same currency and
4909
+ # denomination as the commit's invoice schedule
4910
+ tax_amount:,
4911
+ # Name of the tax to be applied. This may be used in an invoice line item
4912
+ # description.
4913
+ tax_name: nil
4914
+ )
4915
+ end
4916
+
4917
+ sig { override.returns({ tax_amount: Float, tax_name: String }) }
4918
+ def to_hash
4919
+ end
4920
+ end
4921
+
4085
4922
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
4086
4923
  OrHash =
4087
4924
  T.type_alias do
@@ -4099,16 +4936,28 @@ module MetronomeSDK
4099
4936
  end
4100
4937
  attr_accessor :payment_type
4101
4938
 
4102
- # Only applicable if using Stripe as your payment gateway through Metronome.
4939
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
4940
+ # your payment type.
4941
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
4942
+ attr_reader :invoice_metadata
4943
+
4944
+ sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
4945
+ attr_writer :invoice_metadata
4946
+
4947
+ # Only applicable if using STRIPE as your payment gate type.
4103
4948
  sig do
4104
4949
  params(
4105
4950
  payment_type:
4106
- MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
4951
+ MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
4952
+ invoice_metadata: T::Hash[Symbol, String]
4107
4953
  ).returns(T.attached_class)
4108
4954
  end
4109
4955
  def self.new(
4110
4956
  # If left blank, will default to INVOICE
4111
- payment_type:
4957
+ payment_type:,
4958
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
4959
+ # your payment type.
4960
+ invoice_metadata: nil
4112
4961
  )
4113
4962
  end
4114
4963
 
@@ -4116,7 +4965,8 @@ module MetronomeSDK
4116
4965
  override.returns(
4117
4966
  {
4118
4967
  payment_type:
4119
- MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
4968
+ MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
4969
+ invoice_metadata: T::Hash[Symbol, String]
4120
4970
  }
4121
4971
  )
4122
4972
  end
@@ -4184,6 +5034,16 @@ module MetronomeSDK
4184
5034
  :STRIPE,
4185
5035
  MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
4186
5036
  )
5037
+ ANROK =
5038
+ T.let(
5039
+ :ANROK,
5040
+ MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
5041
+ )
5042
+ PRECALCULATED =
5043
+ T.let(
5044
+ :PRECALCULATED,
5045
+ MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
5046
+ )
4187
5047
 
4188
5048
  sig do
4189
5049
  override.returns(
@@ -4634,26 +5494,37 @@ module MetronomeSDK
4634
5494
  sig { returns(String) }
4635
5495
  attr_accessor :credit_type_id
4636
5496
 
4637
- sig { returns(Float) }
4638
- attr_accessor :quantity
4639
-
4640
5497
  sig { returns(Float) }
4641
5498
  attr_accessor :unit_price
4642
5499
 
5500
+ # This field is currently required. Upcoming recurring commit/credit configuration
5501
+ # options will allow it to be optional.
5502
+ sig { returns(T.nilable(Float)) }
5503
+ attr_reader :quantity
5504
+
5505
+ sig { params(quantity: Float).void }
5506
+ attr_writer :quantity
5507
+
4643
5508
  # The amount of commit to grant.
4644
5509
  sig do
4645
5510
  params(
4646
5511
  credit_type_id: String,
4647
- quantity: Float,
4648
- unit_price: Float
5512
+ unit_price: Float,
5513
+ quantity: Float
4649
5514
  ).returns(T.attached_class)
4650
5515
  end
4651
- def self.new(credit_type_id:, quantity:, unit_price:)
5516
+ def self.new(
5517
+ credit_type_id:,
5518
+ unit_price:,
5519
+ # This field is currently required. Upcoming recurring commit/credit configuration
5520
+ # options will allow it to be optional.
5521
+ quantity: nil
5522
+ )
4652
5523
  end
4653
5524
 
4654
5525
  sig do
4655
5526
  override.returns(
4656
- { credit_type_id: String, quantity: Float, unit_price: Float }
5527
+ { credit_type_id: String, unit_price: Float, quantity: Float }
4657
5528
  )
4658
5529
  end
4659
5530
  def to_hash
@@ -5306,26 +6177,37 @@ module MetronomeSDK
5306
6177
  sig { returns(String) }
5307
6178
  attr_accessor :credit_type_id
5308
6179
 
5309
- sig { returns(Float) }
5310
- attr_accessor :quantity
5311
-
5312
6180
  sig { returns(Float) }
5313
6181
  attr_accessor :unit_price
5314
6182
 
6183
+ # This field is currently required. Upcoming recurring commit/credit configuration
6184
+ # options will allow it to be optional.
6185
+ sig { returns(T.nilable(Float)) }
6186
+ attr_reader :quantity
6187
+
6188
+ sig { params(quantity: Float).void }
6189
+ attr_writer :quantity
6190
+
5315
6191
  # The amount of commit to grant.
5316
6192
  sig do
5317
6193
  params(
5318
6194
  credit_type_id: String,
5319
- quantity: Float,
5320
- unit_price: Float
6195
+ unit_price: Float,
6196
+ quantity: Float
5321
6197
  ).returns(T.attached_class)
5322
6198
  end
5323
- def self.new(credit_type_id:, quantity:, unit_price:)
6199
+ def self.new(
6200
+ credit_type_id:,
6201
+ unit_price:,
6202
+ # This field is currently required. Upcoming recurring commit/credit configuration
6203
+ # options will allow it to be optional.
6204
+ quantity: nil
6205
+ )
5324
6206
  end
5325
6207
 
5326
6208
  sig do
5327
6209
  override.returns(
5328
- { credit_type_id: String, quantity: Float, unit_price: Float }
6210
+ { credit_type_id: String, unit_price: Float, quantity: Float }
5329
6211
  )
5330
6212
  end
5331
6213
  def to_hash
@@ -6544,7 +7426,25 @@ module MetronomeSDK
6544
7426
  end
6545
7427
  attr_accessor :payment_gate_type
6546
7428
 
6547
- # Only applicable if using Stripe as your payment gateway through Metronome.
7429
+ # Only applicable if using PRECALCULATED as your tax type.
7430
+ sig do
7431
+ returns(
7432
+ T.nilable(
7433
+ MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
7434
+ )
7435
+ )
7436
+ end
7437
+ attr_reader :precalculated_tax_config
7438
+
7439
+ sig do
7440
+ params(
7441
+ precalculated_tax_config:
7442
+ MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
7443
+ ).void
7444
+ end
7445
+ attr_writer :precalculated_tax_config
7446
+
7447
+ # Only applicable if using STRIPE as your payment gate type.
6548
7448
  sig do
6549
7449
  returns(
6550
7450
  T.nilable(
@@ -6586,6 +7486,8 @@ module MetronomeSDK
6586
7486
  params(
6587
7487
  payment_gate_type:
6588
7488
  MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
7489
+ precalculated_tax_config:
7490
+ MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
6589
7491
  stripe_config:
6590
7492
  MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash,
6591
7493
  tax_type:
@@ -6598,7 +7500,9 @@ module MetronomeSDK
6598
7500
  # facilitate payment using your own payment integration. Select NONE if you do not
6599
7501
  # wish to payment gate the commit balance.
6600
7502
  payment_gate_type:,
6601
- # Only applicable if using Stripe as your payment gateway through Metronome.
7503
+ # Only applicable if using PRECALCULATED as your tax type.
7504
+ precalculated_tax_config: nil,
7505
+ # Only applicable if using STRIPE as your payment gate type.
6602
7506
  stripe_config: nil,
6603
7507
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
6604
7508
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
@@ -6612,6 +7516,8 @@ module MetronomeSDK
6612
7516
  {
6613
7517
  payment_gate_type:
6614
7518
  MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
7519
+ precalculated_tax_config:
7520
+ MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
6615
7521
  stripe_config:
6616
7522
  MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig,
6617
7523
  tax_type:
@@ -6665,6 +7571,49 @@ module MetronomeSDK
6665
7571
  end
6666
7572
  end
6667
7573
 
7574
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
7575
+ OrHash =
7576
+ T.type_alias do
7577
+ T.any(
7578
+ MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
7579
+ MetronomeSDK::Internal::AnyHash
7580
+ )
7581
+ end
7582
+
7583
+ # Amount of tax to be applied. This should be in the same currency and
7584
+ # denomination as the commit's invoice schedule
7585
+ sig { returns(Float) }
7586
+ attr_accessor :tax_amount
7587
+
7588
+ # Name of the tax to be applied. This may be used in an invoice line item
7589
+ # description.
7590
+ sig { returns(T.nilable(String)) }
7591
+ attr_reader :tax_name
7592
+
7593
+ sig { params(tax_name: String).void }
7594
+ attr_writer :tax_name
7595
+
7596
+ # Only applicable if using PRECALCULATED as your tax type.
7597
+ sig do
7598
+ params(tax_amount: Float, tax_name: String).returns(
7599
+ T.attached_class
7600
+ )
7601
+ end
7602
+ def self.new(
7603
+ # Amount of tax to be applied. This should be in the same currency and
7604
+ # denomination as the commit's invoice schedule
7605
+ tax_amount:,
7606
+ # Name of the tax to be applied. This may be used in an invoice line item
7607
+ # description.
7608
+ tax_name: nil
7609
+ )
7610
+ end
7611
+
7612
+ sig { override.returns({ tax_amount: Float, tax_name: String }) }
7613
+ def to_hash
7614
+ end
7615
+ end
7616
+
6668
7617
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
6669
7618
  OrHash =
6670
7619
  T.type_alias do
@@ -6682,16 +7631,28 @@ module MetronomeSDK
6682
7631
  end
6683
7632
  attr_accessor :payment_type
6684
7633
 
6685
- # Only applicable if using Stripe as your payment gateway through Metronome.
7634
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
7635
+ # your payment type.
7636
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
7637
+ attr_reader :invoice_metadata
7638
+
7639
+ sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
7640
+ attr_writer :invoice_metadata
7641
+
7642
+ # Only applicable if using STRIPE as your payment gate type.
6686
7643
  sig do
6687
7644
  params(
6688
7645
  payment_type:
6689
- MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
7646
+ MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
7647
+ invoice_metadata: T::Hash[Symbol, String]
6690
7648
  ).returns(T.attached_class)
6691
7649
  end
6692
7650
  def self.new(
6693
7651
  # If left blank, will default to INVOICE
6694
- payment_type:
7652
+ payment_type:,
7653
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
7654
+ # your payment type.
7655
+ invoice_metadata: nil
6695
7656
  )
6696
7657
  end
6697
7658
 
@@ -6699,7 +7660,8 @@ module MetronomeSDK
6699
7660
  override.returns(
6700
7661
  {
6701
7662
  payment_type:
6702
- MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
7663
+ MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
7664
+ invoice_metadata: T::Hash[Symbol, String]
6703
7665
  }
6704
7666
  )
6705
7667
  end
@@ -6767,6 +7729,16 @@ module MetronomeSDK
6767
7729
  :STRIPE,
6768
7730
  MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
6769
7731
  )
7732
+ ANROK =
7733
+ T.let(
7734
+ :ANROK,
7735
+ MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
7736
+ )
7737
+ PRECALCULATED =
7738
+ T.let(
7739
+ :PRECALCULATED,
7740
+ MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
7741
+ )
6770
7742
 
6771
7743
  sig do
6772
7744
  override.returns(
@@ -7347,50 +8319,6 @@ module MetronomeSDK
7347
8319
  end
7348
8320
  end
7349
8321
 
7350
- class UsageFilter < MetronomeSDK::Internal::Type::BaseModel
7351
- OrHash =
7352
- T.type_alias do
7353
- T.any(
7354
- MetronomeSDK::V1::ContractCreateParams::UsageFilter,
7355
- MetronomeSDK::Internal::AnyHash
7356
- )
7357
- end
7358
-
7359
- sig { returns(String) }
7360
- attr_accessor :group_key
7361
-
7362
- sig { returns(T::Array[String]) }
7363
- attr_accessor :group_values
7364
-
7365
- sig { returns(T.nilable(Time)) }
7366
- attr_reader :starting_at
7367
-
7368
- sig { params(starting_at: Time).void }
7369
- attr_writer :starting_at
7370
-
7371
- sig do
7372
- params(
7373
- group_key: String,
7374
- group_values: T::Array[String],
7375
- starting_at: Time
7376
- ).returns(T.attached_class)
7377
- end
7378
- def self.new(group_key:, group_values:, starting_at: nil)
7379
- end
7380
-
7381
- sig do
7382
- override.returns(
7383
- {
7384
- group_key: String,
7385
- group_values: T::Array[String],
7386
- starting_at: Time
7387
- }
7388
- )
7389
- end
7390
- def to_hash
7391
- end
7392
- end
7393
-
7394
8322
  class UsageStatementSchedule < MetronomeSDK::Internal::Type::BaseModel
7395
8323
  OrHash =
7396
8324
  T.type_alias do