metronome-sdk 0.1.0.pre.alpha.3 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +56 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/errors.rb +22 -0
  5. data/lib/metronome_sdk/internal/cursor_page.rb +1 -1
  6. data/lib/metronome_sdk/internal/transport/base_client.rb +10 -2
  7. data/lib/metronome_sdk/internal/type/array_of.rb +6 -1
  8. data/lib/metronome_sdk/internal/type/base_model.rb +82 -26
  9. data/lib/metronome_sdk/internal/type/boolean.rb +7 -1
  10. data/lib/metronome_sdk/internal/type/converter.rb +42 -34
  11. data/lib/metronome_sdk/internal/type/enum.rb +16 -5
  12. data/lib/metronome_sdk/internal/type/file_input.rb +6 -1
  13. data/lib/metronome_sdk/internal/type/hash_of.rb +6 -1
  14. data/lib/metronome_sdk/internal/type/union.rb +17 -9
  15. data/lib/metronome_sdk/internal/type/unknown.rb +7 -1
  16. data/lib/metronome_sdk/internal/util.rb +8 -9
  17. data/lib/metronome_sdk/models/base_usage_filter.rb +27 -0
  18. data/lib/metronome_sdk/models/commit.rb +1053 -0
  19. data/lib/metronome_sdk/models/contract_without_amendments.rb +2043 -0
  20. data/lib/metronome_sdk/models/credit.rb +677 -0
  21. data/lib/metronome_sdk/models/credit_type_data.rb +21 -0
  22. data/lib/metronome_sdk/models/discount.rb +68 -0
  23. data/lib/metronome_sdk/models/event_type_filter.rb +33 -0
  24. data/lib/metronome_sdk/models/id.rb +15 -0
  25. data/lib/metronome_sdk/models/override.rb +381 -0
  26. data/lib/metronome_sdk/models/pro_service.rb +73 -0
  27. data/lib/metronome_sdk/models/property_filter.rb +52 -0
  28. data/lib/metronome_sdk/models/rate.rb +101 -0
  29. data/lib/metronome_sdk/models/schedule_duration.rb +50 -0
  30. data/lib/metronome_sdk/models/schedule_point_in_time.rb +62 -0
  31. data/lib/metronome_sdk/models/scheduled_charge.rb +76 -0
  32. data/lib/metronome_sdk/models/tier.rb +21 -0
  33. data/lib/metronome_sdk/models/v1/alert_archive_response.rb +3 -14
  34. data/lib/metronome_sdk/models/v1/alert_create_params.rb +4 -1
  35. data/lib/metronome_sdk/models/v1/alert_create_response.rb +3 -14
  36. data/lib/metronome_sdk/models/v1/billable_metric_archive_params.rb +2 -8
  37. data/lib/metronome_sdk/models/v1/billable_metric_archive_response.rb +3 -14
  38. data/lib/metronome_sdk/models/v1/billable_metric_create_params.rb +6 -86
  39. data/lib/metronome_sdk/models/v1/billable_metric_create_response.rb +3 -14
  40. data/lib/metronome_sdk/models/v1/billable_metric_list_response.rb +6 -85
  41. data/lib/metronome_sdk/models/v1/billable_metric_retrieve_response.rb +8 -85
  42. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +312 -35
  43. data/lib/metronome_sdk/models/v1/contract_amend_response.rb +3 -14
  44. data/lib/metronome_sdk/models/v1/contract_archive_response.rb +3 -14
  45. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_response.rb +3 -1276
  46. data/lib/metronome_sdk/models/v1/contract_create_params.rb +792 -104
  47. data/lib/metronome_sdk/models/v1/contract_create_response.rb +3 -14
  48. data/lib/metronome_sdk/models/v1/contract_list_balances_params.rb +9 -1
  49. data/lib/metronome_sdk/models/v1/contract_list_balances_response.rb +5 -1645
  50. data/lib/metronome_sdk/models/v1/contract_list_response.rb +253 -10692
  51. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rb +9 -295
  52. data/lib/metronome_sdk/models/v1/contract_retrieve_response.rb +254 -10721
  53. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rb +3 -1276
  54. data/lib/metronome_sdk/models/v1/contract_update_end_date_response.rb +3 -14
  55. data/lib/metronome_sdk/models/v1/contracts/product_archive_response.rb +3 -14
  56. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +6 -97
  57. data/lib/metronome_sdk/models/v1/contracts/product_create_response.rb +3 -14
  58. data/lib/metronome_sdk/models/v1/contracts/product_list_item_state.rb +148 -0
  59. data/lib/metronome_sdk/models/v1/contracts/product_list_response.rb +12 -561
  60. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_params.rb +2 -8
  61. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_response.rb +14 -559
  62. data/lib/metronome_sdk/models/v1/contracts/product_update_params.rb +6 -97
  63. data/lib/metronome_sdk/models/v1/contracts/product_update_response.rb +3 -14
  64. data/lib/metronome_sdk/models/v1/contracts/quantity_conversion.rb +57 -0
  65. data/lib/metronome_sdk/models/v1/contracts/quantity_rounding.rb +45 -0
  66. data/lib/metronome_sdk/models/v1/contracts/rate_card_archive_params.rb +2 -8
  67. data/lib/metronome_sdk/models/v1/contracts/rate_card_archive_response.rb +3 -14
  68. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_response.rb +3 -14
  69. data/lib/metronome_sdk/models/v1/contracts/rate_card_list_response.rb +6 -42
  70. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rb +2 -8
  71. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rb +6 -159
  72. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rb +6 -42
  73. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_response.rb +3 -14
  74. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rb +3 -14
  75. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rb +3 -14
  76. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +6 -44
  77. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rb +3 -16
  78. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +6 -44
  79. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +9 -61
  80. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rb +6 -158
  81. data/lib/metronome_sdk/models/v1/credit_grant_create_params.rb +5 -77
  82. data/lib/metronome_sdk/models/v1/credit_grant_create_response.rb +3 -14
  83. data/lib/metronome_sdk/models/v1/credit_grant_edit_response.rb +3 -14
  84. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_params.rb +20 -1
  85. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_response.rb +11 -153
  86. data/lib/metronome_sdk/models/v1/credit_grant_list_response.rb +14 -175
  87. data/lib/metronome_sdk/models/v1/credit_grant_void_response.rb +3 -14
  88. data/lib/metronome_sdk/models/v1/credit_ledger_entry.rb +69 -0
  89. data/lib/metronome_sdk/models/v1/customer.rb +53 -0
  90. data/lib/metronome_sdk/models/v1/customer_archive_params.rb +2 -8
  91. data/lib/metronome_sdk/models/v1/customer_archive_response.rb +3 -14
  92. data/lib/metronome_sdk/models/v1/customer_create_response.rb +3 -50
  93. data/lib/metronome_sdk/models/v1/{customer_list_response.rb → customer_detail.rb} +14 -15
  94. data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_response.rb +6 -86
  95. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +115 -0
  96. data/lib/metronome_sdk/models/v1/customer_preview_events_response.rb +18 -0
  97. data/lib/metronome_sdk/models/v1/customer_retrieve_response.rb +3 -126
  98. data/lib/metronome_sdk/models/v1/customer_set_name_response.rb +3 -50
  99. data/lib/metronome_sdk/models/v1/customers/alert_list_response.rb +5 -276
  100. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_response.rb +3 -279
  101. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +9 -1
  102. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +8 -6
  103. data/lib/metronome_sdk/models/v1/customers/commit_create_response.rb +3 -14
  104. data/lib/metronome_sdk/models/v1/customers/commit_list_params.rb +9 -1
  105. data/lib/metronome_sdk/models/v1/customers/commit_list_response.rb +3 -1047
  106. data/lib/metronome_sdk/models/v1/customers/commit_update_end_date_response.rb +3 -14
  107. data/lib/metronome_sdk/models/v1/customers/credit_create_response.rb +3 -14
  108. data/lib/metronome_sdk/models/v1/customers/credit_list_params.rb +9 -1
  109. data/lib/metronome_sdk/models/v1/customers/credit_list_response.rb +3 -593
  110. data/lib/metronome_sdk/models/v1/customers/credit_update_end_date_response.rb +3 -14
  111. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +270 -0
  112. data/lib/metronome_sdk/models/v1/customers/{invoice_list_response.rb → invoice.rb} +119 -303
  113. data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rb +2 -1271
  114. data/lib/metronome_sdk/models/v1/customers/invoice_retrieve_response.rb +3 -1276
  115. data/lib/metronome_sdk/models/v1/customers/plan_add_response.rb +3 -14
  116. data/lib/metronome_sdk/models/v1/customers/plan_list_response.rb +3 -21
  117. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +1 -0
  118. data/lib/metronome_sdk/models/v1/plan_detail.rb +200 -0
  119. data/lib/metronome_sdk/models/v1/plan_get_details_response.rb +3 -286
  120. data/lib/metronome_sdk/models/v1/plan_list_charges_response.rb +3 -20
  121. data/lib/metronome_sdk/models/v1/plan_list_customers_response.rb +3 -128
  122. data/lib/metronome_sdk/models/v1/rollover_amount_max_amount.rb +38 -0
  123. data/lib/metronome_sdk/models/v1/rollover_amount_max_percentage.rb +38 -0
  124. data/lib/metronome_sdk/models/v1/usage_search_params.rb +24 -0
  125. data/lib/metronome_sdk/models/v1/usage_search_response.rb +249 -0
  126. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +11 -8
  127. data/lib/metronome_sdk/models/v2/contract_edit_commit_response.rb +3 -14
  128. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +3 -2
  129. data/lib/metronome_sdk/models/v2/contract_edit_credit_response.rb +3 -14
  130. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +1127 -105
  131. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +3 -14
  132. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +577 -643
  133. data/lib/metronome_sdk/models/v2/contract_list_response.rb +917 -746
  134. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +917 -748
  135. data/lib/metronome_sdk/models.rb +36 -4
  136. data/lib/metronome_sdk/resources/v1/alerts.rb +1 -1
  137. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +2 -2
  138. data/lib/metronome_sdk/resources/v1/contracts/products.rb +4 -4
  139. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +1 -1
  140. data/lib/metronome_sdk/resources/v1/contracts.rb +11 -5
  141. data/lib/metronome_sdk/resources/v1/credit_grants.rb +4 -2
  142. data/lib/metronome_sdk/resources/v1/customers/commits.rb +5 -3
  143. data/lib/metronome_sdk/resources/v1/customers/credits.rb +3 -1
  144. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +2 -2
  145. data/lib/metronome_sdk/resources/v1/customers.rb +40 -2
  146. data/lib/metronome_sdk/resources/v1/usage.rb +25 -0
  147. data/lib/metronome_sdk/resources/v2/contracts.rb +11 -9
  148. data/lib/metronome_sdk/version.rb +1 -1
  149. data/lib/metronome_sdk.rb +31 -2
  150. data/rbi/metronome_sdk/errors.rbi +16 -0
  151. data/rbi/metronome_sdk/internal/type/boolean.rbi +2 -0
  152. data/rbi/metronome_sdk/internal/type/converter.rbi +15 -15
  153. data/rbi/metronome_sdk/internal/type/union.rbi +5 -0
  154. data/rbi/metronome_sdk/internal/type/unknown.rbi +2 -0
  155. data/rbi/metronome_sdk/internal/util.rbi +2 -0
  156. data/rbi/metronome_sdk/models/base_usage_filter.rbi +46 -0
  157. data/rbi/metronome_sdk/models/commit.rbi +2046 -0
  158. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +4260 -0
  159. data/rbi/metronome_sdk/models/credit.rbi +1314 -0
  160. data/rbi/metronome_sdk/models/credit_type_data.rbi +26 -0
  161. data/rbi/metronome_sdk/models/discount.rbi +106 -0
  162. data/rbi/metronome_sdk/models/event_type_filter.rbi +57 -0
  163. data/rbi/metronome_sdk/models/id.rbi +23 -0
  164. data/rbi/metronome_sdk/models/override.rbi +675 -0
  165. data/rbi/metronome_sdk/models/pro_service.rbi +98 -0
  166. data/rbi/metronome_sdk/models/property_filter.rbi +88 -0
  167. data/rbi/metronome_sdk/models/rate.rbi +155 -0
  168. data/rbi/metronome_sdk/models/schedule_duration.rbi +89 -0
  169. data/rbi/metronome_sdk/models/schedule_point_in_time.rbi +121 -0
  170. data/rbi/metronome_sdk/models/scheduled_charge.rbi +119 -0
  171. data/rbi/metronome_sdk/models/tier.rbi +29 -0
  172. data/rbi/metronome_sdk/models/v1/alert_archive_response.rbi +4 -37
  173. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +6 -0
  174. data/rbi/metronome_sdk/models/v1/alert_create_response.rbi +4 -37
  175. data/rbi/metronome_sdk/models/v1/billable_metric_archive_params.rbi +6 -12
  176. data/rbi/metronome_sdk/models/v1/billable_metric_archive_response.rbi +4 -44
  177. data/rbi/metronome_sdk/models/v1/billable_metric_create_params.rbi +8 -177
  178. data/rbi/metronome_sdk/models/v1/billable_metric_create_response.rbi +4 -43
  179. data/rbi/metronome_sdk/models/v1/billable_metric_list_response.rbi +8 -177
  180. data/rbi/metronome_sdk/models/v1/billable_metric_retrieve_response.rbi +8 -175
  181. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +712 -68
  182. data/rbi/metronome_sdk/models/v1/contract_amend_response.rbi +4 -37
  183. data/rbi/metronome_sdk/models/v1/contract_archive_response.rbi +4 -39
  184. data/rbi/metronome_sdk/models/v1/contract_create_historical_invoices_response.rbi +3 -2595
  185. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1738 -210
  186. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +4 -37
  187. data/rbi/metronome_sdk/models/v1/contract_list_balances_params.rbi +11 -0
  188. data/rbi/metronome_sdk/models/v1/contract_list_balances_response.rbi +3 -3366
  189. data/rbi/metronome_sdk/models/v1/contract_list_response.rbi +375 -22523
  190. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbi +12 -632
  191. data/rbi/metronome_sdk/models/v1/contract_retrieve_response.rbi +375 -22523
  192. data/rbi/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rbi +3 -2595
  193. data/rbi/metronome_sdk/models/v1/contract_update_end_date_response.rbi +4 -44
  194. data/rbi/metronome_sdk/models/v1/contracts/product_archive_response.rbi +4 -44
  195. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +8 -209
  196. data/rbi/metronome_sdk/models/v1/contracts/product_create_response.rbi +4 -44
  197. data/rbi/metronome_sdk/models/v1/contracts/product_list_item_state.rbi +237 -0
  198. data/rbi/metronome_sdk/models/v1/contracts/product_list_response.rbi +76 -1143
  199. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_params.rbi +3 -9
  200. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_response.rbi +76 -1137
  201. data/rbi/metronome_sdk/models/v1/contracts/product_update_params.rbi +8 -209
  202. data/rbi/metronome_sdk/models/v1/contracts/product_update_response.rbi +4 -44
  203. data/rbi/metronome_sdk/models/v1/contracts/quantity_conversion.rbi +111 -0
  204. data/rbi/metronome_sdk/models/v1/contracts/quantity_rounding.rbi +94 -0
  205. data/rbi/metronome_sdk/models/v1/contracts/rate_card_archive_params.rbi +3 -9
  206. data/rbi/metronome_sdk/models/v1/contracts/rate_card_archive_response.rbi +4 -44
  207. data/rbi/metronome_sdk/models/v1/contracts/rate_card_create_response.rbi +4 -44
  208. data/rbi/metronome_sdk/models/v1/contracts/rate_card_list_response.rbi +8 -74
  209. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rbi +3 -9
  210. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbi +8 -344
  211. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbi +8 -74
  212. data/rbi/metronome_sdk/models/v1/contracts/rate_card_update_response.rbi +4 -44
  213. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rbi +4 -44
  214. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rbi +4 -44
  215. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +8 -108
  216. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rbi +4 -45
  217. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +8 -108
  218. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +12 -149
  219. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbi +8 -344
  220. data/rbi/metronome_sdk/models/v1/credit_grant_create_params.rbi +8 -166
  221. data/rbi/metronome_sdk/models/v1/credit_grant_create_response.rbi +4 -41
  222. data/rbi/metronome_sdk/models/v1/credit_grant_edit_response.rbi +4 -39
  223. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_params.rbi +58 -0
  224. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_response.rbi +10 -231
  225. data/rbi/metronome_sdk/models/v1/credit_grant_list_response.rbi +14 -281
  226. data/rbi/metronome_sdk/models/v1/credit_grant_void_response.rbi +4 -39
  227. data/rbi/metronome_sdk/models/v1/credit_ledger_entry.rbi +90 -0
  228. data/rbi/metronome_sdk/models/v1/customer.rbi +74 -0
  229. data/rbi/metronome_sdk/models/v1/customer_archive_params.rbi +6 -12
  230. data/rbi/metronome_sdk/models/v1/customer_archive_response.rbi +4 -39
  231. data/rbi/metronome_sdk/models/v1/customer_create_response.rbi +6 -84
  232. data/rbi/metronome_sdk/models/v1/{customer_list_response.rbi → customer_detail.rbi} +19 -26
  233. data/rbi/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbi +8 -177
  234. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +214 -0
  235. data/rbi/metronome_sdk/models/v1/customer_preview_events_response.rbi +35 -0
  236. data/rbi/metronome_sdk/models/v1/customer_retrieve_response.rbi +6 -255
  237. data/rbi/metronome_sdk/models/v1/customer_set_name_response.rbi +6 -86
  238. data/rbi/metronome_sdk/models/v1/customers/alert_list_response.rbi +3 -623
  239. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_response.rbi +4 -622
  240. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +11 -0
  241. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +12 -8
  242. data/rbi/metronome_sdk/models/v1/customers/commit_create_response.rbi +4 -44
  243. data/rbi/metronome_sdk/models/v1/customers/commit_list_params.rbi +11 -0
  244. data/rbi/metronome_sdk/models/v1/customers/commit_list_response.rbi +3 -2164
  245. data/rbi/metronome_sdk/models/v1/customers/commit_update_end_date_response.rbi +4 -44
  246. data/rbi/metronome_sdk/models/v1/customers/credit_create_response.rbi +4 -44
  247. data/rbi/metronome_sdk/models/v1/customers/credit_list_params.rbi +11 -0
  248. data/rbi/metronome_sdk/models/v1/customers/credit_list_response.rbi +3 -1224
  249. data/rbi/metronome_sdk/models/v1/customers/credit_update_end_date_response.rbi +4 -44
  250. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +572 -0
  251. data/rbi/metronome_sdk/models/v1/customers/{invoice_list_response.rbi → invoice.rbi} +182 -589
  252. data/rbi/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rbi +4 -2561
  253. data/rbi/metronome_sdk/models/v1/customers/invoice_retrieve_response.rbi +6 -2612
  254. data/rbi/metronome_sdk/models/v1/customers/plan_add_response.rbi +4 -41
  255. data/rbi/metronome_sdk/models/v1/customers/plan_list_response.rbi +4 -39
  256. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +5 -0
  257. data/rbi/metronome_sdk/models/v1/plan_detail.rbi +349 -0
  258. data/rbi/metronome_sdk/models/v1/plan_get_details_response.rbi +6 -560
  259. data/rbi/metronome_sdk/models/v1/plan_list_charges_response.rbi +4 -37
  260. data/rbi/metronome_sdk/models/v1/plan_list_customers_response.rbi +4 -248
  261. data/rbi/metronome_sdk/models/v1/rollover_amount_max_amount.rbi +79 -0
  262. data/rbi/metronome_sdk/models/v1/rollover_amount_max_percentage.rbi +80 -0
  263. data/rbi/metronome_sdk/models/v1/usage_search_params.rbi +48 -0
  264. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +438 -0
  265. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +23 -23
  266. data/rbi/metronome_sdk/models/v2/contract_edit_commit_response.rbi +4 -41
  267. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +11 -15
  268. data/rbi/metronome_sdk/models/v2/contract_edit_credit_response.rbi +4 -41
  269. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +2463 -206
  270. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +4 -37
  271. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1381 -1550
  272. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +2017 -1466
  273. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +2017 -1466
  274. data/rbi/metronome_sdk/models.rbi +32 -0
  275. data/rbi/metronome_sdk/resources/v1/alerts.rbi +3 -0
  276. data/rbi/metronome_sdk/resources/v1/billable_metrics.rbi +2 -6
  277. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +4 -4
  278. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +1 -4
  279. data/rbi/metronome_sdk/resources/v1/contracts.rbi +13 -4
  280. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +4 -0
  281. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +9 -4
  282. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +3 -0
  283. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +1 -1
  284. data/rbi/metronome_sdk/resources/v1/customers.rbi +34 -3
  285. data/rbi/metronome_sdk/resources/v1/usage.rbi +17 -0
  286. data/rbi/metronome_sdk/resources/v2/contracts.rbi +24 -14
  287. data/sig/metronome_sdk/errors.rbs +9 -0
  288. data/sig/metronome_sdk/internal/type/converter.rbs +7 -1
  289. data/sig/metronome_sdk/models/base_usage_filter.rbs +28 -0
  290. data/sig/metronome_sdk/models/commit.rbs +1063 -0
  291. data/sig/metronome_sdk/models/contract_without_amendments.rbs +1828 -0
  292. data/sig/metronome_sdk/models/credit.rbs +686 -0
  293. data/sig/metronome_sdk/models/credit_type_data.rbs +15 -0
  294. data/sig/metronome_sdk/models/discount.rbs +63 -0
  295. data/sig/metronome_sdk/models/event_type_filter.rbs +26 -0
  296. data/sig/metronome_sdk/models/id.rbs +13 -0
  297. data/sig/metronome_sdk/models/override.rbs +399 -0
  298. data/sig/metronome_sdk/models/pro_service.rbs +61 -0
  299. data/sig/metronome_sdk/models/property_filter.rbs +41 -0
  300. data/sig/metronome_sdk/models/rate.rbs +94 -0
  301. data/sig/metronome_sdk/models/schedule_duration.rbs +56 -0
  302. data/sig/metronome_sdk/models/schedule_point_in_time.rbs +75 -0
  303. data/sig/metronome_sdk/models/scheduled_charge.rbs +70 -0
  304. data/sig/metronome_sdk/models/tier.rbs +17 -0
  305. data/sig/metronome_sdk/models/v1/alert_archive_response.rbs +4 -19
  306. data/sig/metronome_sdk/models/v1/alert_create_response.rbs +4 -19
  307. data/sig/metronome_sdk/models/v1/billable_metric_archive_params.rbs +4 -12
  308. data/sig/metronome_sdk/models/v1/billable_metric_archive_response.rbs +4 -19
  309. data/sig/metronome_sdk/models/v1/billable_metric_create_params.rbs +12 -73
  310. data/sig/metronome_sdk/models/v1/billable_metric_create_response.rbs +4 -19
  311. data/sig/metronome_sdk/models/v1/billable_metric_list_response.rbs +12 -73
  312. data/sig/metronome_sdk/models/v1/billable_metric_retrieve_response.rbs +12 -73
  313. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +291 -24
  314. data/sig/metronome_sdk/models/v1/contract_amend_response.rbs +4 -19
  315. data/sig/metronome_sdk/models/v1/contract_archive_response.rbs +4 -19
  316. data/sig/metronome_sdk/models/v1/contract_create_historical_invoices_response.rbs +4 -1291
  317. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +694 -84
  318. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +4 -19
  319. data/sig/metronome_sdk/models/v1/contract_list_balances_params.rbs +7 -0
  320. data/sig/metronome_sdk/models/v1/contract_list_balances_response.rbs +1 -1642
  321. data/sig/metronome_sdk/models/v1/contract_list_response.rbs +188 -10437
  322. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbs +15 -271
  323. data/sig/metronome_sdk/models/v1/contract_retrieve_response.rbs +188 -10437
  324. data/sig/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rbs +4 -1291
  325. data/sig/metronome_sdk/models/v1/contract_update_end_date_response.rbs +4 -19
  326. data/sig/metronome_sdk/models/v1/contracts/product_archive_response.rbs +4 -21
  327. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +8 -82
  328. data/sig/metronome_sdk/models/v1/contracts/product_create_response.rbs +4 -21
  329. data/sig/metronome_sdk/models/v1/contracts/product_list_item_state.rbs +121 -0
  330. data/sig/metronome_sdk/models/v1/contracts/product_list_response.rbs +16 -466
  331. data/sig/metronome_sdk/models/v1/contracts/product_retrieve_params.rbs +4 -12
  332. data/sig/metronome_sdk/models/v1/contracts/product_retrieve_response.rbs +16 -466
  333. data/sig/metronome_sdk/models/v1/contracts/product_update_params.rbs +8 -82
  334. data/sig/metronome_sdk/models/v1/contracts/product_update_response.rbs +4 -21
  335. data/sig/metronome_sdk/models/v1/contracts/quantity_conversion.rbs +47 -0
  336. data/sig/metronome_sdk/models/v1/contracts/quantity_rounding.rbs +41 -0
  337. data/sig/metronome_sdk/models/v1/contracts/rate_card_archive_params.rbs +4 -12
  338. data/sig/metronome_sdk/models/v1/contracts/rate_card_archive_response.rbs +4 -21
  339. data/sig/metronome_sdk/models/v1/contracts/rate_card_create_response.rbs +4 -21
  340. data/sig/metronome_sdk/models/v1/contracts/rate_card_list_response.rbs +10 -34
  341. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rbs +4 -12
  342. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbs +10 -144
  343. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbs +10 -34
  344. data/sig/metronome_sdk/models/v1/contracts/rate_card_update_response.rbs +4 -21
  345. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rbs +4 -21
  346. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rbs +4 -21
  347. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +12 -40
  348. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rbs +4 -21
  349. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +12 -40
  350. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +18 -58
  351. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbs +10 -144
  352. data/sig/metronome_sdk/models/v1/credit_grant_create_params.rbs +2 -66
  353. data/sig/metronome_sdk/models/v1/credit_grant_create_response.rbs +4 -19
  354. data/sig/metronome_sdk/models/v1/credit_grant_edit_response.rbs +4 -19
  355. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_params.rbs +20 -0
  356. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_response.rbs +12 -118
  357. data/sig/metronome_sdk/models/v1/credit_grant_list_response.rbs +16 -140
  358. data/sig/metronome_sdk/models/v1/credit_grant_void_response.rbs +4 -19
  359. data/sig/metronome_sdk/models/v1/credit_ledger_entry.rbs +52 -0
  360. data/sig/metronome_sdk/models/v1/customer.rbs +44 -0
  361. data/sig/metronome_sdk/models/v1/customer_archive_params.rbs +4 -12
  362. data/sig/metronome_sdk/models/v1/customer_archive_response.rbs +4 -19
  363. data/sig/metronome_sdk/models/v1/customer_create_response.rbs +4 -48
  364. data/sig/metronome_sdk/models/v1/{customer_list_response.rbs → customer_detail.rbs} +17 -17
  365. data/sig/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbs +12 -73
  366. data/sig/metronome_sdk/models/v1/customer_preview_events_params.rbs +105 -0
  367. data/sig/metronome_sdk/models/v1/customer_preview_events_response.rbs +16 -0
  368. data/sig/metronome_sdk/models/v1/customer_retrieve_response.rbs +4 -112
  369. data/sig/metronome_sdk/models/v1/customer_set_name_response.rbs +4 -48
  370. data/sig/metronome_sdk/models/v1/customers/alert_list_response.rbs +4 -243
  371. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_response.rbs +4 -247
  372. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +7 -0
  373. data/sig/metronome_sdk/models/v1/customers/commit_create_response.rbs +4 -21
  374. data/sig/metronome_sdk/models/v1/customers/commit_list_params.rbs +7 -0
  375. data/sig/metronome_sdk/models/v1/customers/commit_list_response.rbs +4 -1057
  376. data/sig/metronome_sdk/models/v1/customers/commit_update_end_date_response.rbs +4 -21
  377. data/sig/metronome_sdk/models/v1/customers/credit_create_response.rbs +4 -21
  378. data/sig/metronome_sdk/models/v1/customers/credit_list_params.rbs +7 -0
  379. data/sig/metronome_sdk/models/v1/customers/credit_list_response.rbs +4 -596
  380. data/sig/metronome_sdk/models/v1/customers/credit_update_end_date_response.rbs +4 -21
  381. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +234 -0
  382. data/sig/metronome_sdk/models/v1/customers/{invoice_list_response.rbs → invoice.rbs} +147 -305
  383. data/sig/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rbs +8 -1278
  384. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_response.rbs +4 -1294
  385. data/sig/metronome_sdk/models/v1/customers/plan_add_response.rbs +4 -19
  386. data/sig/metronome_sdk/models/v1/customers/plan_list_response.rbs +4 -16
  387. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +2 -1
  388. data/sig/metronome_sdk/models/v1/plan_detail.rbs +203 -0
  389. data/sig/metronome_sdk/models/v1/plan_get_details_response.rbs +4 -267
  390. data/sig/metronome_sdk/models/v1/plan_list_charges_response.rbs +4 -16
  391. data/sig/metronome_sdk/models/v1/plan_list_customers_response.rbs +4 -108
  392. data/sig/metronome_sdk/models/v1/rollover_amount_max_amount.rbs +37 -0
  393. data/sig/metronome_sdk/models/v1/rollover_amount_max_percentage.rbs +37 -0
  394. data/sig/metronome_sdk/models/v1/usage_search_params.rbs +26 -0
  395. data/sig/metronome_sdk/models/v1/usage_search_response.rbs +230 -0
  396. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +4 -8
  397. data/sig/metronome_sdk/models/v2/contract_edit_commit_response.rbs +4 -19
  398. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +4 -8
  399. data/sig/metronome_sdk/models/v2/contract_edit_credit_response.rbs +4 -19
  400. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +989 -77
  401. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +4 -19
  402. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +510 -655
  403. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +970 -809
  404. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +970 -809
  405. data/sig/metronome_sdk/models.rbs +32 -0
  406. data/sig/metronome_sdk/resources/v1/billable_metrics.rbs +2 -2
  407. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +4 -4
  408. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -1
  409. data/sig/metronome_sdk/resources/v1/contracts.rbs +4 -1
  410. data/sig/metronome_sdk/resources/v1/credit_grants.rbs +1 -0
  411. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +1 -0
  412. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +1 -0
  413. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -1
  414. data/sig/metronome_sdk/resources/v1/customers.rbs +9 -1
  415. data/sig/metronome_sdk/resources/v1/usage.rbs +5 -0
  416. data/sig/metronome_sdk/resources/v2/contracts.rbs +3 -2
  417. metadata +97 -10
@@ -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,41 +2721,317 @@ module MetronomeSDK
2267
2721
  end
2268
2722
  end
2269
2723
 
2270
- module RateType
2271
- extend MetronomeSDK::Internal::Type::Enum
2272
-
2273
- TaggedSymbol =
2724
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
2725
+ OrHash =
2274
2726
  T.type_alias do
2275
- T.all(
2276
- Symbol,
2277
- MetronomeSDK::V1::ContractCreateParams::Credit::RateType
2727
+ T.any(
2728
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration,
2729
+ MetronomeSDK::Internal::AnyHash
2278
2730
  )
2279
2731
  end
2280
- OrSymbol = T.type_alias { T.any(Symbol, String) }
2281
2732
 
2282
- COMMIT_RATE =
2283
- T.let(
2284
- :COMMIT_RATE,
2285
- MetronomeSDK::V1::ContractCreateParams::Credit::RateType::TaggedSymbol
2286
- )
2287
- LIST_RATE =
2288
- T.let(
2289
- :LIST_RATE,
2290
- MetronomeSDK::V1::ContractCreateParams::Credit::RateType::TaggedSymbol
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
+ )
2291
2740
  )
2741
+ end
2742
+ attr_accessor :child_access
2292
2743
 
2744
+ # Optional configuration for credit hierarchy access control
2293
2745
  sig do
2294
- override.returns(
2295
- T::Array[
2296
- MetronomeSDK::V1::ContractCreateParams::Credit::RateType::TaggedSymbol
2297
- ]
2298
- )
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)
2299
2754
  end
2300
- def self.values
2755
+ def self.new(child_access:)
2301
2756
  end
2302
- end
2303
2757
 
2304
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
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
+
3000
+ module RateType
3001
+ extend MetronomeSDK::Internal::Type::Enum
3002
+
3003
+ TaggedSymbol =
3004
+ T.type_alias do
3005
+ T.all(
3006
+ Symbol,
3007
+ MetronomeSDK::V1::ContractCreateParams::Credit::RateType
3008
+ )
3009
+ end
3010
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
3011
+
3012
+ COMMIT_RATE =
3013
+ T.let(
3014
+ :COMMIT_RATE,
3015
+ MetronomeSDK::V1::ContractCreateParams::Credit::RateType::TaggedSymbol
3016
+ )
3017
+ LIST_RATE =
3018
+ T.let(
3019
+ :LIST_RATE,
3020
+ MetronomeSDK::V1::ContractCreateParams::Credit::RateType::TaggedSymbol
3021
+ )
3022
+
3023
+ sig do
3024
+ override.returns(
3025
+ T::Array[
3026
+ MetronomeSDK::V1::ContractCreateParams::Credit::RateType::TaggedSymbol
3027
+ ]
3028
+ )
3029
+ end
3030
+ def self.values
3031
+ end
3032
+ end
3033
+
3034
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
2305
3035
  OrHash =
2306
3036
  T.type_alias do
2307
3037
  T.any(
@@ -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(
@@ -4370,6 +5230,24 @@ module MetronomeSDK
4370
5230
  sig { params(ending_before: Time).void }
4371
5231
  attr_writer :ending_before
4372
5232
 
5233
+ # Optional configuration for recurring commit/credit hierarchy access control
5234
+ sig do
5235
+ returns(
5236
+ T.nilable(
5237
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration
5238
+ )
5239
+ )
5240
+ end
5241
+ attr_reader :hierarchy_configuration
5242
+
5243
+ sig do
5244
+ params(
5245
+ hierarchy_configuration:
5246
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::OrHash
5247
+ ).void
5248
+ end
5249
+ attr_writer :hierarchy_configuration
5250
+
4373
5251
  # The amount the customer should be billed for the commit. Not required.
4374
5252
  sig do
4375
5253
  returns(
@@ -4516,6 +5394,8 @@ module MetronomeSDK
4516
5394
  applicable_product_tags: T::Array[String],
4517
5395
  description: String,
4518
5396
  ending_before: Time,
5397
+ hierarchy_configuration:
5398
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::OrHash,
4519
5399
  invoice_amount:
4520
5400
  MetronomeSDK::V1::ContractCreateParams::RecurringCommit::InvoiceAmount::OrHash,
4521
5401
  name: String,
@@ -4554,6 +5434,8 @@ module MetronomeSDK
4554
5434
  description: nil,
4555
5435
  # Determines when the contract will stop creating recurring commits. optional
4556
5436
  ending_before: nil,
5437
+ # Optional configuration for recurring commit/credit hierarchy access control
5438
+ hierarchy_configuration: nil,
4557
5439
  # The amount the customer should be billed for the commit. Not required.
4558
5440
  invoice_amount: nil,
4559
5441
  # displayed on invoices. will be passed through to the individual commits
@@ -4600,6 +5482,8 @@ module MetronomeSDK
4600
5482
  applicable_product_tags: T::Array[String],
4601
5483
  description: String,
4602
5484
  ending_before: Time,
5485
+ hierarchy_configuration:
5486
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration,
4603
5487
  invoice_amount:
4604
5488
  MetronomeSDK::V1::ContractCreateParams::RecurringCommit::InvoiceAmount,
4605
5489
  name: String,
@@ -4634,26 +5518,37 @@ module MetronomeSDK
4634
5518
  sig { returns(String) }
4635
5519
  attr_accessor :credit_type_id
4636
5520
 
4637
- sig { returns(Float) }
4638
- attr_accessor :quantity
4639
-
4640
5521
  sig { returns(Float) }
4641
5522
  attr_accessor :unit_price
4642
5523
 
5524
+ # This field is currently required. Upcoming recurring commit/credit configuration
5525
+ # options will allow it to be optional.
5526
+ sig { returns(T.nilable(Float)) }
5527
+ attr_reader :quantity
5528
+
5529
+ sig { params(quantity: Float).void }
5530
+ attr_writer :quantity
5531
+
4643
5532
  # The amount of commit to grant.
4644
5533
  sig do
4645
5534
  params(
4646
5535
  credit_type_id: String,
4647
- quantity: Float,
4648
- unit_price: Float
5536
+ unit_price: Float,
5537
+ quantity: Float
4649
5538
  ).returns(T.attached_class)
4650
5539
  end
4651
- def self.new(credit_type_id:, quantity:, unit_price:)
5540
+ def self.new(
5541
+ credit_type_id:,
5542
+ unit_price:,
5543
+ # This field is currently required. Upcoming recurring commit/credit configuration
5544
+ # options will allow it to be optional.
5545
+ quantity: nil
5546
+ )
4652
5547
  end
4653
5548
 
4654
5549
  sig do
4655
5550
  override.returns(
4656
- { credit_type_id: String, quantity: Float, unit_price: Float }
5551
+ { credit_type_id: String, unit_price: Float, quantity: Float }
4657
5552
  )
4658
5553
  end
4659
5554
  def to_hash
@@ -4717,29 +5612,305 @@ module MetronomeSDK
4717
5612
  module Unit
4718
5613
  extend MetronomeSDK::Internal::Type::Enum
4719
5614
 
4720
- TaggedSymbol =
4721
- T.type_alias do
4722
- T.all(
4723
- Symbol,
4724
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::CommitDuration::Unit
5615
+ TaggedSymbol =
5616
+ T.type_alias do
5617
+ T.all(
5618
+ Symbol,
5619
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::CommitDuration::Unit
5620
+ )
5621
+ end
5622
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5623
+
5624
+ PERIODS =
5625
+ T.let(
5626
+ :PERIODS,
5627
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::CommitDuration::Unit::TaggedSymbol
5628
+ )
5629
+
5630
+ sig do
5631
+ override.returns(
5632
+ T::Array[
5633
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::CommitDuration::Unit::TaggedSymbol
5634
+ ]
5635
+ )
5636
+ end
5637
+ def self.values
5638
+ end
5639
+ end
5640
+ end
5641
+
5642
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
5643
+ OrHash =
5644
+ T.type_alias do
5645
+ T.any(
5646
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration,
5647
+ MetronomeSDK::Internal::AnyHash
5648
+ )
5649
+ end
5650
+
5651
+ sig do
5652
+ returns(
5653
+ T.any(
5654
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5655
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5656
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
5657
+ )
5658
+ )
5659
+ end
5660
+ attr_accessor :child_access
5661
+
5662
+ # Optional configuration for recurring commit/credit hierarchy access control
5663
+ sig do
5664
+ params(
5665
+ child_access:
5666
+ T.any(
5667
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
5668
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
5669
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
5670
+ )
5671
+ ).returns(T.attached_class)
5672
+ end
5673
+ def self.new(child_access:)
5674
+ end
5675
+
5676
+ sig do
5677
+ override.returns(
5678
+ {
5679
+ child_access:
5680
+ T.any(
5681
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5682
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5683
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
5684
+ )
5685
+ }
5686
+ )
5687
+ end
5688
+ def to_hash
5689
+ end
5690
+
5691
+ module ChildAccess
5692
+ extend MetronomeSDK::Internal::Type::Union
5693
+
5694
+ Variants =
5695
+ T.type_alias do
5696
+ T.any(
5697
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5698
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5699
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
5700
+ )
5701
+ end
5702
+
5703
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
5704
+ OrHash =
5705
+ T.type_alias do
5706
+ T.any(
5707
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5708
+ MetronomeSDK::Internal::AnyHash
5709
+ )
5710
+ end
5711
+
5712
+ sig do
5713
+ returns(
5714
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
5715
+ )
5716
+ end
5717
+ attr_accessor :type
5718
+
5719
+ sig do
5720
+ params(
5721
+ type:
5722
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
5723
+ ).returns(T.attached_class)
5724
+ end
5725
+ def self.new(type:)
5726
+ end
5727
+
5728
+ sig do
5729
+ override.returns(
5730
+ {
5731
+ type:
5732
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
5733
+ }
5734
+ )
5735
+ end
5736
+ def to_hash
5737
+ end
5738
+
5739
+ module Type
5740
+ extend MetronomeSDK::Internal::Type::Enum
5741
+
5742
+ TaggedSymbol =
5743
+ T.type_alias do
5744
+ T.all(
5745
+ Symbol,
5746
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
5747
+ )
5748
+ end
5749
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5750
+
5751
+ ALL =
5752
+ T.let(
5753
+ :ALL,
5754
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
5755
+ )
5756
+
5757
+ sig do
5758
+ override.returns(
5759
+ T::Array[
5760
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
5761
+ ]
5762
+ )
5763
+ end
5764
+ def self.values
5765
+ end
5766
+ end
5767
+ end
5768
+
5769
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
5770
+ OrHash =
5771
+ T.type_alias do
5772
+ T.any(
5773
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5774
+ MetronomeSDK::Internal::AnyHash
5775
+ )
5776
+ end
5777
+
5778
+ sig do
5779
+ returns(
5780
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
5781
+ )
5782
+ end
5783
+ attr_accessor :type
5784
+
5785
+ sig do
5786
+ params(
5787
+ type:
5788
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
5789
+ ).returns(T.attached_class)
5790
+ end
5791
+ def self.new(type:)
5792
+ end
5793
+
5794
+ sig do
5795
+ override.returns(
5796
+ {
5797
+ type:
5798
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
5799
+ }
5800
+ )
5801
+ end
5802
+ def to_hash
5803
+ end
5804
+
5805
+ module Type
5806
+ extend MetronomeSDK::Internal::Type::Enum
5807
+
5808
+ TaggedSymbol =
5809
+ T.type_alias do
5810
+ T.all(
5811
+ Symbol,
5812
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
5813
+ )
5814
+ end
5815
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5816
+
5817
+ NONE =
5818
+ T.let(
5819
+ :NONE,
5820
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
5821
+ )
5822
+
5823
+ sig do
5824
+ override.returns(
5825
+ T::Array[
5826
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
5827
+ ]
5828
+ )
5829
+ end
5830
+ def self.values
5831
+ end
5832
+ end
5833
+ end
5834
+
5835
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
5836
+ OrHash =
5837
+ T.type_alias do
5838
+ T.any(
5839
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
5840
+ MetronomeSDK::Internal::AnyHash
5841
+ )
5842
+ end
5843
+
5844
+ sig { returns(T::Array[String]) }
5845
+ attr_accessor :contract_ids
5846
+
5847
+ sig do
5848
+ returns(
5849
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
5850
+ )
5851
+ end
5852
+ attr_accessor :type
5853
+
5854
+ sig do
5855
+ params(
5856
+ contract_ids: T::Array[String],
5857
+ type:
5858
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
5859
+ ).returns(T.attached_class)
5860
+ end
5861
+ def self.new(contract_ids:, type:)
5862
+ end
5863
+
5864
+ sig do
5865
+ override.returns(
5866
+ {
5867
+ contract_ids: T::Array[String],
5868
+ type:
5869
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
5870
+ }
4725
5871
  )
4726
5872
  end
4727
- OrSymbol = T.type_alias { T.any(Symbol, String) }
5873
+ def to_hash
5874
+ end
4728
5875
 
4729
- PERIODS =
4730
- T.let(
4731
- :PERIODS,
4732
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::CommitDuration::Unit::TaggedSymbol
4733
- )
5876
+ module Type
5877
+ extend MetronomeSDK::Internal::Type::Enum
5878
+
5879
+ TaggedSymbol =
5880
+ T.type_alias do
5881
+ T.all(
5882
+ Symbol,
5883
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
5884
+ )
5885
+ end
5886
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5887
+
5888
+ CONTRACT_IDS =
5889
+ T.let(
5890
+ :CONTRACT_IDS,
5891
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
5892
+ )
5893
+
5894
+ sig do
5895
+ override.returns(
5896
+ T::Array[
5897
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
5898
+ ]
5899
+ )
5900
+ end
5901
+ def self.values
5902
+ end
5903
+ end
5904
+ end
4734
5905
 
4735
5906
  sig do
4736
5907
  override.returns(
4737
5908
  T::Array[
4738
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::CommitDuration::Unit::TaggedSymbol
5909
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::Variants
4739
5910
  ]
4740
5911
  )
4741
5912
  end
4742
- def self.values
5913
+ def self.variants
4743
5914
  end
4744
5915
  end
4745
5916
  end
@@ -5066,6 +6237,24 @@ module MetronomeSDK
5066
6237
  sig { params(ending_before: Time).void }
5067
6238
  attr_writer :ending_before
5068
6239
 
6240
+ # Optional configuration for recurring commit/credit hierarchy access control
6241
+ sig do
6242
+ returns(
6243
+ T.nilable(
6244
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration
6245
+ )
6246
+ )
6247
+ end
6248
+ attr_reader :hierarchy_configuration
6249
+
6250
+ sig do
6251
+ params(
6252
+ hierarchy_configuration:
6253
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::OrHash
6254
+ ).void
6255
+ end
6256
+ attr_writer :hierarchy_configuration
6257
+
5069
6258
  # displayed on invoices. will be passed through to the individual commits
5070
6259
  sig { returns(T.nilable(String)) }
5071
6260
  attr_reader :name
@@ -5194,6 +6383,8 @@ module MetronomeSDK
5194
6383
  applicable_product_tags: T::Array[String],
5195
6384
  description: String,
5196
6385
  ending_before: Time,
6386
+ hierarchy_configuration:
6387
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::OrHash,
5197
6388
  name: String,
5198
6389
  netsuite_sales_order_id: String,
5199
6390
  proration:
@@ -5230,6 +6421,8 @@ module MetronomeSDK
5230
6421
  description: nil,
5231
6422
  # Determines when the contract will stop creating recurring commits. optional
5232
6423
  ending_before: nil,
6424
+ # Optional configuration for recurring commit/credit hierarchy access control
6425
+ hierarchy_configuration: nil,
5233
6426
  # displayed on invoices. will be passed through to the individual commits
5234
6427
  name: nil,
5235
6428
  # Will be passed down to the individual commits
@@ -5274,6 +6467,8 @@ module MetronomeSDK
5274
6467
  applicable_product_tags: T::Array[String],
5275
6468
  description: String,
5276
6469
  ending_before: Time,
6470
+ hierarchy_configuration:
6471
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration,
5277
6472
  name: String,
5278
6473
  netsuite_sales_order_id: String,
5279
6474
  proration:
@@ -5306,26 +6501,37 @@ module MetronomeSDK
5306
6501
  sig { returns(String) }
5307
6502
  attr_accessor :credit_type_id
5308
6503
 
5309
- sig { returns(Float) }
5310
- attr_accessor :quantity
5311
-
5312
6504
  sig { returns(Float) }
5313
6505
  attr_accessor :unit_price
5314
6506
 
6507
+ # This field is currently required. Upcoming recurring commit/credit configuration
6508
+ # options will allow it to be optional.
6509
+ sig { returns(T.nilable(Float)) }
6510
+ attr_reader :quantity
6511
+
6512
+ sig { params(quantity: Float).void }
6513
+ attr_writer :quantity
6514
+
5315
6515
  # The amount of commit to grant.
5316
6516
  sig do
5317
6517
  params(
5318
6518
  credit_type_id: String,
5319
- quantity: Float,
5320
- unit_price: Float
6519
+ unit_price: Float,
6520
+ quantity: Float
5321
6521
  ).returns(T.attached_class)
5322
6522
  end
5323
- def self.new(credit_type_id:, quantity:, unit_price:)
6523
+ def self.new(
6524
+ credit_type_id:,
6525
+ unit_price:,
6526
+ # This field is currently required. Upcoming recurring commit/credit configuration
6527
+ # options will allow it to be optional.
6528
+ quantity: nil
6529
+ )
5324
6530
  end
5325
6531
 
5326
6532
  sig do
5327
6533
  override.returns(
5328
- { credit_type_id: String, quantity: Float, unit_price: Float }
6534
+ { credit_type_id: String, unit_price: Float, quantity: Float }
5329
6535
  )
5330
6536
  end
5331
6537
  def to_hash
@@ -5416,6 +6622,282 @@ module MetronomeSDK
5416
6622
  end
5417
6623
  end
5418
6624
 
6625
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
6626
+ OrHash =
6627
+ T.type_alias do
6628
+ T.any(
6629
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration,
6630
+ MetronomeSDK::Internal::AnyHash
6631
+ )
6632
+ end
6633
+
6634
+ sig do
6635
+ returns(
6636
+ T.any(
6637
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6638
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6639
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
6640
+ )
6641
+ )
6642
+ end
6643
+ attr_accessor :child_access
6644
+
6645
+ # Optional configuration for recurring commit/credit hierarchy access control
6646
+ sig do
6647
+ params(
6648
+ child_access:
6649
+ T.any(
6650
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
6651
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
6652
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
6653
+ )
6654
+ ).returns(T.attached_class)
6655
+ end
6656
+ def self.new(child_access:)
6657
+ end
6658
+
6659
+ sig do
6660
+ override.returns(
6661
+ {
6662
+ child_access:
6663
+ T.any(
6664
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6665
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6666
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
6667
+ )
6668
+ }
6669
+ )
6670
+ end
6671
+ def to_hash
6672
+ end
6673
+
6674
+ module ChildAccess
6675
+ extend MetronomeSDK::Internal::Type::Union
6676
+
6677
+ Variants =
6678
+ T.type_alias do
6679
+ T.any(
6680
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6681
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6682
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
6683
+ )
6684
+ end
6685
+
6686
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
6687
+ OrHash =
6688
+ T.type_alias do
6689
+ T.any(
6690
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6691
+ MetronomeSDK::Internal::AnyHash
6692
+ )
6693
+ end
6694
+
6695
+ sig do
6696
+ returns(
6697
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
6698
+ )
6699
+ end
6700
+ attr_accessor :type
6701
+
6702
+ sig do
6703
+ params(
6704
+ type:
6705
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
6706
+ ).returns(T.attached_class)
6707
+ end
6708
+ def self.new(type:)
6709
+ end
6710
+
6711
+ sig do
6712
+ override.returns(
6713
+ {
6714
+ type:
6715
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
6716
+ }
6717
+ )
6718
+ end
6719
+ def to_hash
6720
+ end
6721
+
6722
+ module Type
6723
+ extend MetronomeSDK::Internal::Type::Enum
6724
+
6725
+ TaggedSymbol =
6726
+ T.type_alias do
6727
+ T.all(
6728
+ Symbol,
6729
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
6730
+ )
6731
+ end
6732
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6733
+
6734
+ ALL =
6735
+ T.let(
6736
+ :ALL,
6737
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
6738
+ )
6739
+
6740
+ sig do
6741
+ override.returns(
6742
+ T::Array[
6743
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
6744
+ ]
6745
+ )
6746
+ end
6747
+ def self.values
6748
+ end
6749
+ end
6750
+ end
6751
+
6752
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
6753
+ OrHash =
6754
+ T.type_alias do
6755
+ T.any(
6756
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6757
+ MetronomeSDK::Internal::AnyHash
6758
+ )
6759
+ end
6760
+
6761
+ sig do
6762
+ returns(
6763
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
6764
+ )
6765
+ end
6766
+ attr_accessor :type
6767
+
6768
+ sig do
6769
+ params(
6770
+ type:
6771
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
6772
+ ).returns(T.attached_class)
6773
+ end
6774
+ def self.new(type:)
6775
+ end
6776
+
6777
+ sig do
6778
+ override.returns(
6779
+ {
6780
+ type:
6781
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
6782
+ }
6783
+ )
6784
+ end
6785
+ def to_hash
6786
+ end
6787
+
6788
+ module Type
6789
+ extend MetronomeSDK::Internal::Type::Enum
6790
+
6791
+ TaggedSymbol =
6792
+ T.type_alias do
6793
+ T.all(
6794
+ Symbol,
6795
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
6796
+ )
6797
+ end
6798
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6799
+
6800
+ NONE =
6801
+ T.let(
6802
+ :NONE,
6803
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
6804
+ )
6805
+
6806
+ sig do
6807
+ override.returns(
6808
+ T::Array[
6809
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
6810
+ ]
6811
+ )
6812
+ end
6813
+ def self.values
6814
+ end
6815
+ end
6816
+ end
6817
+
6818
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
6819
+ OrHash =
6820
+ T.type_alias do
6821
+ T.any(
6822
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
6823
+ MetronomeSDK::Internal::AnyHash
6824
+ )
6825
+ end
6826
+
6827
+ sig { returns(T::Array[String]) }
6828
+ attr_accessor :contract_ids
6829
+
6830
+ sig do
6831
+ returns(
6832
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
6833
+ )
6834
+ end
6835
+ attr_accessor :type
6836
+
6837
+ sig do
6838
+ params(
6839
+ contract_ids: T::Array[String],
6840
+ type:
6841
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
6842
+ ).returns(T.attached_class)
6843
+ end
6844
+ def self.new(contract_ids:, type:)
6845
+ end
6846
+
6847
+ sig do
6848
+ override.returns(
6849
+ {
6850
+ contract_ids: T::Array[String],
6851
+ type:
6852
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
6853
+ }
6854
+ )
6855
+ end
6856
+ def to_hash
6857
+ end
6858
+
6859
+ module Type
6860
+ extend MetronomeSDK::Internal::Type::Enum
6861
+
6862
+ TaggedSymbol =
6863
+ T.type_alias do
6864
+ T.all(
6865
+ Symbol,
6866
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
6867
+ )
6868
+ end
6869
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6870
+
6871
+ CONTRACT_IDS =
6872
+ T.let(
6873
+ :CONTRACT_IDS,
6874
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
6875
+ )
6876
+
6877
+ sig do
6878
+ override.returns(
6879
+ T::Array[
6880
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
6881
+ ]
6882
+ )
6883
+ end
6884
+ def self.values
6885
+ end
6886
+ end
6887
+ end
6888
+
6889
+ sig do
6890
+ override.returns(
6891
+ T::Array[
6892
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::Variants
6893
+ ]
6894
+ )
6895
+ end
6896
+ def self.variants
6897
+ end
6898
+ end
6899
+ end
6900
+
5419
6901
  # Determines whether the first and last commit will be prorated. If not provided,
5420
6902
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
5421
6903
  module Proration
@@ -6544,7 +8026,25 @@ module MetronomeSDK
6544
8026
  end
6545
8027
  attr_accessor :payment_gate_type
6546
8028
 
6547
- # Only applicable if using Stripe as your payment gateway through Metronome.
8029
+ # Only applicable if using PRECALCULATED as your tax type.
8030
+ sig do
8031
+ returns(
8032
+ T.nilable(
8033
+ MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
8034
+ )
8035
+ )
8036
+ end
8037
+ attr_reader :precalculated_tax_config
8038
+
8039
+ sig do
8040
+ params(
8041
+ precalculated_tax_config:
8042
+ MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
8043
+ ).void
8044
+ end
8045
+ attr_writer :precalculated_tax_config
8046
+
8047
+ # Only applicable if using STRIPE as your payment gate type.
6548
8048
  sig do
6549
8049
  returns(
6550
8050
  T.nilable(
@@ -6586,6 +8086,8 @@ module MetronomeSDK
6586
8086
  params(
6587
8087
  payment_gate_type:
6588
8088
  MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
8089
+ precalculated_tax_config:
8090
+ MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
6589
8091
  stripe_config:
6590
8092
  MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash,
6591
8093
  tax_type:
@@ -6598,7 +8100,9 @@ module MetronomeSDK
6598
8100
  # facilitate payment using your own payment integration. Select NONE if you do not
6599
8101
  # wish to payment gate the commit balance.
6600
8102
  payment_gate_type:,
6601
- # Only applicable if using Stripe as your payment gateway through Metronome.
8103
+ # Only applicable if using PRECALCULATED as your tax type.
8104
+ precalculated_tax_config: nil,
8105
+ # Only applicable if using STRIPE as your payment gate type.
6602
8106
  stripe_config: nil,
6603
8107
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
6604
8108
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
@@ -6612,6 +8116,8 @@ module MetronomeSDK
6612
8116
  {
6613
8117
  payment_gate_type:
6614
8118
  MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
8119
+ precalculated_tax_config:
8120
+ MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
6615
8121
  stripe_config:
6616
8122
  MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig,
6617
8123
  tax_type:
@@ -6665,6 +8171,49 @@ module MetronomeSDK
6665
8171
  end
6666
8172
  end
6667
8173
 
8174
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
8175
+ OrHash =
8176
+ T.type_alias do
8177
+ T.any(
8178
+ MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
8179
+ MetronomeSDK::Internal::AnyHash
8180
+ )
8181
+ end
8182
+
8183
+ # Amount of tax to be applied. This should be in the same currency and
8184
+ # denomination as the commit's invoice schedule
8185
+ sig { returns(Float) }
8186
+ attr_accessor :tax_amount
8187
+
8188
+ # Name of the tax to be applied. This may be used in an invoice line item
8189
+ # description.
8190
+ sig { returns(T.nilable(String)) }
8191
+ attr_reader :tax_name
8192
+
8193
+ sig { params(tax_name: String).void }
8194
+ attr_writer :tax_name
8195
+
8196
+ # Only applicable if using PRECALCULATED as your tax type.
8197
+ sig do
8198
+ params(tax_amount: Float, tax_name: String).returns(
8199
+ T.attached_class
8200
+ )
8201
+ end
8202
+ def self.new(
8203
+ # Amount of tax to be applied. This should be in the same currency and
8204
+ # denomination as the commit's invoice schedule
8205
+ tax_amount:,
8206
+ # Name of the tax to be applied. This may be used in an invoice line item
8207
+ # description.
8208
+ tax_name: nil
8209
+ )
8210
+ end
8211
+
8212
+ sig { override.returns({ tax_amount: Float, tax_name: String }) }
8213
+ def to_hash
8214
+ end
8215
+ end
8216
+
6668
8217
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
6669
8218
  OrHash =
6670
8219
  T.type_alias do
@@ -6682,16 +8231,28 @@ module MetronomeSDK
6682
8231
  end
6683
8232
  attr_accessor :payment_type
6684
8233
 
6685
- # Only applicable if using Stripe as your payment gateway through Metronome.
8234
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
8235
+ # your payment type.
8236
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
8237
+ attr_reader :invoice_metadata
8238
+
8239
+ sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
8240
+ attr_writer :invoice_metadata
8241
+
8242
+ # Only applicable if using STRIPE as your payment gate type.
6686
8243
  sig do
6687
8244
  params(
6688
8245
  payment_type:
6689
- MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
8246
+ MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
8247
+ invoice_metadata: T::Hash[Symbol, String]
6690
8248
  ).returns(T.attached_class)
6691
8249
  end
6692
8250
  def self.new(
6693
8251
  # If left blank, will default to INVOICE
6694
- payment_type:
8252
+ payment_type:,
8253
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
8254
+ # your payment type.
8255
+ invoice_metadata: nil
6695
8256
  )
6696
8257
  end
6697
8258
 
@@ -6699,7 +8260,8 @@ module MetronomeSDK
6699
8260
  override.returns(
6700
8261
  {
6701
8262
  payment_type:
6702
- MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
8263
+ MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
8264
+ invoice_metadata: T::Hash[Symbol, String]
6703
8265
  }
6704
8266
  )
6705
8267
  end
@@ -6767,6 +8329,16 @@ module MetronomeSDK
6767
8329
  :STRIPE,
6768
8330
  MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
6769
8331
  )
8332
+ ANROK =
8333
+ T.let(
8334
+ :ANROK,
8335
+ MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
8336
+ )
8337
+ PRECALCULATED =
8338
+ T.let(
8339
+ :PRECALCULATED,
8340
+ MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
8341
+ )
6770
8342
 
6771
8343
  sig do
6772
8344
  override.returns(
@@ -7347,50 +8919,6 @@ module MetronomeSDK
7347
8919
  end
7348
8920
  end
7349
8921
 
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
8922
  class UsageStatementSchedule < MetronomeSDK::Internal::Type::BaseModel
7395
8923
  OrHash =
7396
8924
  T.type_alias do