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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (403) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +40 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/errors.rb +22 -0
  5. data/lib/metronome_sdk/internal/transport/base_client.rb +10 -2
  6. data/lib/metronome_sdk/internal/type/array_of.rb +6 -1
  7. data/lib/metronome_sdk/internal/type/base_model.rb +82 -26
  8. data/lib/metronome_sdk/internal/type/boolean.rb +7 -1
  9. data/lib/metronome_sdk/internal/type/converter.rb +42 -34
  10. data/lib/metronome_sdk/internal/type/enum.rb +16 -5
  11. data/lib/metronome_sdk/internal/type/file_input.rb +6 -1
  12. data/lib/metronome_sdk/internal/type/hash_of.rb +6 -1
  13. data/lib/metronome_sdk/internal/type/union.rb +17 -9
  14. data/lib/metronome_sdk/internal/type/unknown.rb +7 -1
  15. data/lib/metronome_sdk/internal/util.rb +8 -9
  16. data/lib/metronome_sdk/models/base_usage_filter.rb +27 -0
  17. data/lib/metronome_sdk/models/commit.rb +1010 -0
  18. data/lib/metronome_sdk/models/contract_without_amendments.rb +1803 -0
  19. data/lib/metronome_sdk/models/credit.rb +634 -0
  20. data/lib/metronome_sdk/models/credit_type_data.rb +21 -0
  21. data/lib/metronome_sdk/models/discount.rb +68 -0
  22. data/lib/metronome_sdk/models/event_type_filter.rb +33 -0
  23. data/lib/metronome_sdk/models/id.rb +15 -0
  24. data/lib/metronome_sdk/models/override.rb +381 -0
  25. data/lib/metronome_sdk/models/pro_service.rb +73 -0
  26. data/lib/metronome_sdk/models/property_filter.rb +52 -0
  27. data/lib/metronome_sdk/models/rate.rb +101 -0
  28. data/lib/metronome_sdk/models/schedule_duration.rb +50 -0
  29. data/lib/metronome_sdk/models/schedule_point_in_time.rb +62 -0
  30. data/lib/metronome_sdk/models/scheduled_charge.rb +76 -0
  31. data/lib/metronome_sdk/models/tier.rb +21 -0
  32. data/lib/metronome_sdk/models/v1/alert_archive_response.rb +3 -14
  33. data/lib/metronome_sdk/models/v1/alert_create_params.rb +4 -1
  34. data/lib/metronome_sdk/models/v1/alert_create_response.rb +3 -14
  35. data/lib/metronome_sdk/models/v1/billable_metric_archive_params.rb +2 -8
  36. data/lib/metronome_sdk/models/v1/billable_metric_archive_response.rb +3 -14
  37. data/lib/metronome_sdk/models/v1/billable_metric_create_params.rb +6 -86
  38. data/lib/metronome_sdk/models/v1/billable_metric_create_response.rb +3 -14
  39. data/lib/metronome_sdk/models/v1/billable_metric_list_response.rb +6 -85
  40. data/lib/metronome_sdk/models/v1/billable_metric_retrieve_response.rb +8 -85
  41. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +312 -35
  42. data/lib/metronome_sdk/models/v1/contract_amend_response.rb +3 -14
  43. data/lib/metronome_sdk/models/v1/contract_archive_response.rb +3 -14
  44. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_response.rb +3 -1276
  45. data/lib/metronome_sdk/models/v1/contract_create_params.rb +550 -102
  46. data/lib/metronome_sdk/models/v1/contract_create_response.rb +3 -14
  47. data/lib/metronome_sdk/models/v1/contract_list_balances_response.rb +5 -1645
  48. data/lib/metronome_sdk/models/v1/contract_list_response.rb +253 -10692
  49. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rb +9 -295
  50. data/lib/metronome_sdk/models/v1/contract_retrieve_response.rb +254 -10721
  51. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rb +3 -1276
  52. data/lib/metronome_sdk/models/v1/contract_update_end_date_response.rb +3 -14
  53. data/lib/metronome_sdk/models/v1/contracts/product_archive_response.rb +3 -14
  54. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +6 -97
  55. data/lib/metronome_sdk/models/v1/contracts/product_create_response.rb +3 -14
  56. data/lib/metronome_sdk/models/v1/contracts/product_list_item_state.rb +148 -0
  57. data/lib/metronome_sdk/models/v1/contracts/product_list_response.rb +12 -561
  58. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_params.rb +2 -8
  59. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_response.rb +14 -559
  60. data/lib/metronome_sdk/models/v1/contracts/product_update_params.rb +6 -97
  61. data/lib/metronome_sdk/models/v1/contracts/product_update_response.rb +3 -14
  62. data/lib/metronome_sdk/models/v1/contracts/quantity_conversion.rb +57 -0
  63. data/lib/metronome_sdk/models/v1/contracts/quantity_rounding.rb +45 -0
  64. data/lib/metronome_sdk/models/v1/contracts/rate_card_archive_params.rb +2 -8
  65. data/lib/metronome_sdk/models/v1/contracts/rate_card_archive_response.rb +3 -14
  66. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_response.rb +3 -14
  67. data/lib/metronome_sdk/models/v1/contracts/rate_card_list_response.rb +6 -42
  68. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rb +2 -8
  69. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rb +6 -159
  70. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rb +6 -42
  71. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_response.rb +3 -14
  72. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rb +3 -14
  73. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rb +3 -14
  74. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +6 -44
  75. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rb +3 -16
  76. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +6 -44
  77. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +9 -61
  78. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rb +6 -158
  79. data/lib/metronome_sdk/models/v1/credit_grant_create_params.rb +5 -77
  80. data/lib/metronome_sdk/models/v1/credit_grant_create_response.rb +3 -14
  81. data/lib/metronome_sdk/models/v1/credit_grant_edit_response.rb +3 -14
  82. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_params.rb +20 -1
  83. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_response.rb +11 -153
  84. data/lib/metronome_sdk/models/v1/credit_grant_list_response.rb +14 -175
  85. data/lib/metronome_sdk/models/v1/credit_grant_void_response.rb +3 -14
  86. data/lib/metronome_sdk/models/v1/credit_ledger_entry.rb +69 -0
  87. data/lib/metronome_sdk/models/v1/customer.rb +53 -0
  88. data/lib/metronome_sdk/models/v1/customer_archive_params.rb +2 -8
  89. data/lib/metronome_sdk/models/v1/customer_archive_response.rb +3 -14
  90. data/lib/metronome_sdk/models/v1/customer_create_response.rb +3 -50
  91. data/lib/metronome_sdk/models/v1/{customer_list_response.rb → customer_detail.rb} +14 -15
  92. data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_response.rb +6 -86
  93. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +115 -0
  94. data/lib/metronome_sdk/models/v1/customer_preview_events_response.rb +18 -0
  95. data/lib/metronome_sdk/models/v1/customer_retrieve_response.rb +3 -126
  96. data/lib/metronome_sdk/models/v1/customer_set_name_response.rb +3 -50
  97. data/lib/metronome_sdk/models/v1/customers/alert_list_response.rb +5 -276
  98. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_response.rb +3 -279
  99. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +9 -1
  100. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +8 -6
  101. data/lib/metronome_sdk/models/v1/customers/commit_create_response.rb +3 -14
  102. data/lib/metronome_sdk/models/v1/customers/commit_list_response.rb +3 -1047
  103. data/lib/metronome_sdk/models/v1/customers/commit_update_end_date_response.rb +3 -14
  104. data/lib/metronome_sdk/models/v1/customers/credit_create_response.rb +3 -14
  105. data/lib/metronome_sdk/models/v1/customers/credit_list_response.rb +3 -593
  106. data/lib/metronome_sdk/models/v1/customers/credit_update_end_date_response.rb +3 -14
  107. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +270 -0
  108. data/lib/metronome_sdk/models/v1/customers/{invoice_list_response.rb → invoice.rb} +119 -303
  109. data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rb +2 -1271
  110. data/lib/metronome_sdk/models/v1/customers/invoice_retrieve_response.rb +3 -1276
  111. data/lib/metronome_sdk/models/v1/customers/plan_add_response.rb +3 -14
  112. data/lib/metronome_sdk/models/v1/customers/plan_list_response.rb +3 -21
  113. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +1 -0
  114. data/lib/metronome_sdk/models/v1/plan_detail.rb +200 -0
  115. data/lib/metronome_sdk/models/v1/plan_get_details_response.rb +3 -286
  116. data/lib/metronome_sdk/models/v1/plan_list_charges_response.rb +3 -20
  117. data/lib/metronome_sdk/models/v1/plan_list_customers_response.rb +3 -128
  118. data/lib/metronome_sdk/models/v1/rollover_amount_max_amount.rb +38 -0
  119. data/lib/metronome_sdk/models/v1/rollover_amount_max_percentage.rb +38 -0
  120. data/lib/metronome_sdk/models/v1/usage_search_params.rb +24 -0
  121. data/lib/metronome_sdk/models/v1/usage_search_response.rb +249 -0
  122. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +11 -8
  123. data/lib/metronome_sdk/models/v2/contract_edit_commit_response.rb +3 -14
  124. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +3 -2
  125. data/lib/metronome_sdk/models/v2/contract_edit_credit_response.rb +3 -14
  126. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +885 -103
  127. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +3 -14
  128. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +351 -625
  129. data/lib/metronome_sdk/models/v2/contract_list_response.rb +590 -749
  130. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +590 -751
  131. data/lib/metronome_sdk/models.rb +36 -4
  132. data/lib/metronome_sdk/resources/v1/alerts.rb +1 -1
  133. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +2 -2
  134. data/lib/metronome_sdk/resources/v1/contracts/products.rb +4 -4
  135. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +1 -1
  136. data/lib/metronome_sdk/resources/v1/contracts.rb +8 -4
  137. data/lib/metronome_sdk/resources/v1/credit_grants.rb +4 -2
  138. data/lib/metronome_sdk/resources/v1/customers/commits.rb +2 -2
  139. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +2 -2
  140. data/lib/metronome_sdk/resources/v1/customers.rb +40 -2
  141. data/lib/metronome_sdk/resources/v1/usage.rb +25 -0
  142. data/lib/metronome_sdk/resources/v2/contracts.rb +11 -9
  143. data/lib/metronome_sdk/version.rb +1 -1
  144. data/lib/metronome_sdk.rb +31 -2
  145. data/rbi/metronome_sdk/errors.rbi +16 -0
  146. data/rbi/metronome_sdk/internal/type/boolean.rbi +2 -0
  147. data/rbi/metronome_sdk/internal/type/converter.rbi +15 -15
  148. data/rbi/metronome_sdk/internal/type/union.rbi +5 -0
  149. data/rbi/metronome_sdk/internal/type/unknown.rbi +2 -0
  150. data/rbi/metronome_sdk/internal/util.rbi +2 -0
  151. data/rbi/metronome_sdk/models/base_usage_filter.rbi +46 -0
  152. data/rbi/metronome_sdk/models/commit.rbi +1962 -0
  153. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +3676 -0
  154. data/rbi/metronome_sdk/models/credit.rbi +1230 -0
  155. data/rbi/metronome_sdk/models/credit_type_data.rbi +26 -0
  156. data/rbi/metronome_sdk/models/discount.rbi +106 -0
  157. data/rbi/metronome_sdk/models/event_type_filter.rbi +57 -0
  158. data/rbi/metronome_sdk/models/id.rbi +23 -0
  159. data/rbi/metronome_sdk/models/override.rbi +675 -0
  160. data/rbi/metronome_sdk/models/pro_service.rbi +98 -0
  161. data/rbi/metronome_sdk/models/property_filter.rbi +88 -0
  162. data/rbi/metronome_sdk/models/rate.rbi +155 -0
  163. data/rbi/metronome_sdk/models/schedule_duration.rbi +89 -0
  164. data/rbi/metronome_sdk/models/schedule_point_in_time.rbi +121 -0
  165. data/rbi/metronome_sdk/models/scheduled_charge.rbi +119 -0
  166. data/rbi/metronome_sdk/models/tier.rbi +29 -0
  167. data/rbi/metronome_sdk/models/v1/alert_archive_response.rbi +4 -37
  168. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +6 -0
  169. data/rbi/metronome_sdk/models/v1/alert_create_response.rbi +4 -37
  170. data/rbi/metronome_sdk/models/v1/billable_metric_archive_params.rbi +6 -12
  171. data/rbi/metronome_sdk/models/v1/billable_metric_archive_response.rbi +4 -44
  172. data/rbi/metronome_sdk/models/v1/billable_metric_create_params.rbi +8 -177
  173. data/rbi/metronome_sdk/models/v1/billable_metric_create_response.rbi +4 -43
  174. data/rbi/metronome_sdk/models/v1/billable_metric_list_response.rbi +8 -177
  175. data/rbi/metronome_sdk/models/v1/billable_metric_retrieve_response.rbi +8 -175
  176. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +712 -68
  177. data/rbi/metronome_sdk/models/v1/contract_amend_response.rbi +4 -37
  178. data/rbi/metronome_sdk/models/v1/contract_archive_response.rbi +4 -39
  179. data/rbi/metronome_sdk/models/v1/contract_create_historical_invoices_response.rbi +3 -2595
  180. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1100 -172
  181. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +4 -37
  182. data/rbi/metronome_sdk/models/v1/contract_list_balances_response.rbi +3 -3366
  183. data/rbi/metronome_sdk/models/v1/contract_list_response.rbi +375 -22523
  184. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbi +12 -632
  185. data/rbi/metronome_sdk/models/v1/contract_retrieve_response.rbi +375 -22523
  186. data/rbi/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rbi +3 -2595
  187. data/rbi/metronome_sdk/models/v1/contract_update_end_date_response.rbi +4 -44
  188. data/rbi/metronome_sdk/models/v1/contracts/product_archive_response.rbi +4 -44
  189. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +8 -209
  190. data/rbi/metronome_sdk/models/v1/contracts/product_create_response.rbi +4 -44
  191. data/rbi/metronome_sdk/models/v1/contracts/product_list_item_state.rbi +237 -0
  192. data/rbi/metronome_sdk/models/v1/contracts/product_list_response.rbi +76 -1143
  193. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_params.rbi +3 -9
  194. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_response.rbi +76 -1137
  195. data/rbi/metronome_sdk/models/v1/contracts/product_update_params.rbi +8 -209
  196. data/rbi/metronome_sdk/models/v1/contracts/product_update_response.rbi +4 -44
  197. data/rbi/metronome_sdk/models/v1/contracts/quantity_conversion.rbi +111 -0
  198. data/rbi/metronome_sdk/models/v1/contracts/quantity_rounding.rbi +94 -0
  199. data/rbi/metronome_sdk/models/v1/contracts/rate_card_archive_params.rbi +3 -9
  200. data/rbi/metronome_sdk/models/v1/contracts/rate_card_archive_response.rbi +4 -44
  201. data/rbi/metronome_sdk/models/v1/contracts/rate_card_create_response.rbi +4 -44
  202. data/rbi/metronome_sdk/models/v1/contracts/rate_card_list_response.rbi +8 -74
  203. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rbi +3 -9
  204. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbi +8 -344
  205. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbi +8 -74
  206. data/rbi/metronome_sdk/models/v1/contracts/rate_card_update_response.rbi +4 -44
  207. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rbi +4 -44
  208. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rbi +4 -44
  209. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +8 -108
  210. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rbi +4 -45
  211. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +8 -108
  212. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +12 -149
  213. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbi +8 -344
  214. data/rbi/metronome_sdk/models/v1/credit_grant_create_params.rbi +8 -166
  215. data/rbi/metronome_sdk/models/v1/credit_grant_create_response.rbi +4 -41
  216. data/rbi/metronome_sdk/models/v1/credit_grant_edit_response.rbi +4 -39
  217. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_params.rbi +58 -0
  218. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_response.rbi +10 -231
  219. data/rbi/metronome_sdk/models/v1/credit_grant_list_response.rbi +14 -281
  220. data/rbi/metronome_sdk/models/v1/credit_grant_void_response.rbi +4 -39
  221. data/rbi/metronome_sdk/models/v1/credit_ledger_entry.rbi +90 -0
  222. data/rbi/metronome_sdk/models/v1/customer.rbi +74 -0
  223. data/rbi/metronome_sdk/models/v1/customer_archive_params.rbi +6 -12
  224. data/rbi/metronome_sdk/models/v1/customer_archive_response.rbi +4 -39
  225. data/rbi/metronome_sdk/models/v1/customer_create_response.rbi +6 -84
  226. data/rbi/metronome_sdk/models/v1/{customer_list_response.rbi → customer_detail.rbi} +19 -26
  227. data/rbi/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbi +8 -177
  228. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +214 -0
  229. data/rbi/metronome_sdk/models/v1/customer_preview_events_response.rbi +35 -0
  230. data/rbi/metronome_sdk/models/v1/customer_retrieve_response.rbi +6 -255
  231. data/rbi/metronome_sdk/models/v1/customer_set_name_response.rbi +6 -86
  232. data/rbi/metronome_sdk/models/v1/customers/alert_list_response.rbi +3 -623
  233. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_response.rbi +4 -622
  234. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +11 -0
  235. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +12 -8
  236. data/rbi/metronome_sdk/models/v1/customers/commit_create_response.rbi +4 -44
  237. data/rbi/metronome_sdk/models/v1/customers/commit_list_response.rbi +3 -2164
  238. data/rbi/metronome_sdk/models/v1/customers/commit_update_end_date_response.rbi +4 -44
  239. data/rbi/metronome_sdk/models/v1/customers/credit_create_response.rbi +4 -44
  240. data/rbi/metronome_sdk/models/v1/customers/credit_list_response.rbi +3 -1224
  241. data/rbi/metronome_sdk/models/v1/customers/credit_update_end_date_response.rbi +4 -44
  242. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +572 -0
  243. data/rbi/metronome_sdk/models/v1/customers/{invoice_list_response.rbi → invoice.rbi} +182 -589
  244. data/rbi/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rbi +4 -2561
  245. data/rbi/metronome_sdk/models/v1/customers/invoice_retrieve_response.rbi +6 -2612
  246. data/rbi/metronome_sdk/models/v1/customers/plan_add_response.rbi +4 -41
  247. data/rbi/metronome_sdk/models/v1/customers/plan_list_response.rbi +4 -39
  248. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +5 -0
  249. data/rbi/metronome_sdk/models/v1/plan_detail.rbi +349 -0
  250. data/rbi/metronome_sdk/models/v1/plan_get_details_response.rbi +6 -560
  251. data/rbi/metronome_sdk/models/v1/plan_list_charges_response.rbi +4 -37
  252. data/rbi/metronome_sdk/models/v1/plan_list_customers_response.rbi +4 -248
  253. data/rbi/metronome_sdk/models/v1/rollover_amount_max_amount.rbi +79 -0
  254. data/rbi/metronome_sdk/models/v1/rollover_amount_max_percentage.rbi +80 -0
  255. data/rbi/metronome_sdk/models/v1/usage_search_params.rbi +48 -0
  256. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +438 -0
  257. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +23 -23
  258. data/rbi/metronome_sdk/models/v2/contract_edit_commit_response.rbi +4 -41
  259. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +11 -15
  260. data/rbi/metronome_sdk/models/v2/contract_edit_credit_response.rbi +4 -41
  261. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +1859 -202
  262. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +4 -37
  263. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +700 -1447
  264. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +1204 -1472
  265. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +1204 -1472
  266. data/rbi/metronome_sdk/models.rbi +32 -0
  267. data/rbi/metronome_sdk/resources/v1/alerts.rbi +3 -0
  268. data/rbi/metronome_sdk/resources/v1/billable_metrics.rbi +2 -6
  269. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +4 -4
  270. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +1 -4
  271. data/rbi/metronome_sdk/resources/v1/contracts.rbi +10 -4
  272. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +4 -0
  273. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +6 -4
  274. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +1 -1
  275. data/rbi/metronome_sdk/resources/v1/customers.rbi +34 -3
  276. data/rbi/metronome_sdk/resources/v1/usage.rbi +17 -0
  277. data/rbi/metronome_sdk/resources/v2/contracts.rbi +24 -14
  278. data/sig/metronome_sdk/errors.rbs +9 -0
  279. data/sig/metronome_sdk/internal/type/converter.rbs +7 -1
  280. data/sig/metronome_sdk/models/base_usage_filter.rbs +28 -0
  281. data/sig/metronome_sdk/models/commit.rbs +1020 -0
  282. data/sig/metronome_sdk/models/contract_without_amendments.rbs +1582 -0
  283. data/sig/metronome_sdk/models/credit.rbs +643 -0
  284. data/sig/metronome_sdk/models/credit_type_data.rbs +15 -0
  285. data/sig/metronome_sdk/models/discount.rbs +63 -0
  286. data/sig/metronome_sdk/models/event_type_filter.rbs +26 -0
  287. data/sig/metronome_sdk/models/id.rbs +13 -0
  288. data/sig/metronome_sdk/models/override.rbs +399 -0
  289. data/sig/metronome_sdk/models/pro_service.rbs +61 -0
  290. data/sig/metronome_sdk/models/property_filter.rbs +41 -0
  291. data/sig/metronome_sdk/models/rate.rbs +94 -0
  292. data/sig/metronome_sdk/models/schedule_duration.rbs +56 -0
  293. data/sig/metronome_sdk/models/schedule_point_in_time.rbs +75 -0
  294. data/sig/metronome_sdk/models/scheduled_charge.rbs +70 -0
  295. data/sig/metronome_sdk/models/tier.rbs +17 -0
  296. data/sig/metronome_sdk/models/v1/alert_archive_response.rbs +4 -19
  297. data/sig/metronome_sdk/models/v1/alert_create_response.rbs +4 -19
  298. data/sig/metronome_sdk/models/v1/billable_metric_archive_params.rbs +4 -12
  299. data/sig/metronome_sdk/models/v1/billable_metric_archive_response.rbs +4 -19
  300. data/sig/metronome_sdk/models/v1/billable_metric_create_params.rbs +12 -73
  301. data/sig/metronome_sdk/models/v1/billable_metric_create_response.rbs +4 -19
  302. data/sig/metronome_sdk/models/v1/billable_metric_list_response.rbs +12 -73
  303. data/sig/metronome_sdk/models/v1/billable_metric_retrieve_response.rbs +12 -73
  304. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +291 -24
  305. data/sig/metronome_sdk/models/v1/contract_amend_response.rbs +4 -19
  306. data/sig/metronome_sdk/models/v1/contract_archive_response.rbs +4 -19
  307. data/sig/metronome_sdk/models/v1/contract_create_historical_invoices_response.rbs +4 -1291
  308. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +448 -84
  309. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +4 -19
  310. data/sig/metronome_sdk/models/v1/contract_list_balances_response.rbs +1 -1642
  311. data/sig/metronome_sdk/models/v1/contract_list_response.rbs +188 -10437
  312. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbs +15 -271
  313. data/sig/metronome_sdk/models/v1/contract_retrieve_response.rbs +188 -10437
  314. data/sig/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rbs +4 -1291
  315. data/sig/metronome_sdk/models/v1/contract_update_end_date_response.rbs +4 -19
  316. data/sig/metronome_sdk/models/v1/contracts/product_archive_response.rbs +4 -21
  317. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +8 -82
  318. data/sig/metronome_sdk/models/v1/contracts/product_create_response.rbs +4 -21
  319. data/sig/metronome_sdk/models/v1/contracts/product_list_item_state.rbs +121 -0
  320. data/sig/metronome_sdk/models/v1/contracts/product_list_response.rbs +16 -466
  321. data/sig/metronome_sdk/models/v1/contracts/product_retrieve_params.rbs +4 -12
  322. data/sig/metronome_sdk/models/v1/contracts/product_retrieve_response.rbs +16 -466
  323. data/sig/metronome_sdk/models/v1/contracts/product_update_params.rbs +8 -82
  324. data/sig/metronome_sdk/models/v1/contracts/product_update_response.rbs +4 -21
  325. data/sig/metronome_sdk/models/v1/contracts/quantity_conversion.rbs +47 -0
  326. data/sig/metronome_sdk/models/v1/contracts/quantity_rounding.rbs +41 -0
  327. data/sig/metronome_sdk/models/v1/contracts/rate_card_archive_params.rbs +4 -12
  328. data/sig/metronome_sdk/models/v1/contracts/rate_card_archive_response.rbs +4 -21
  329. data/sig/metronome_sdk/models/v1/contracts/rate_card_create_response.rbs +4 -21
  330. data/sig/metronome_sdk/models/v1/contracts/rate_card_list_response.rbs +10 -34
  331. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rbs +4 -12
  332. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbs +10 -144
  333. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbs +10 -34
  334. data/sig/metronome_sdk/models/v1/contracts/rate_card_update_response.rbs +4 -21
  335. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rbs +4 -21
  336. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rbs +4 -21
  337. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +12 -40
  338. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rbs +4 -21
  339. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +12 -40
  340. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +18 -58
  341. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbs +10 -144
  342. data/sig/metronome_sdk/models/v1/credit_grant_create_params.rbs +2 -66
  343. data/sig/metronome_sdk/models/v1/credit_grant_create_response.rbs +4 -19
  344. data/sig/metronome_sdk/models/v1/credit_grant_edit_response.rbs +4 -19
  345. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_params.rbs +20 -0
  346. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_response.rbs +12 -118
  347. data/sig/metronome_sdk/models/v1/credit_grant_list_response.rbs +16 -140
  348. data/sig/metronome_sdk/models/v1/credit_grant_void_response.rbs +4 -19
  349. data/sig/metronome_sdk/models/v1/credit_ledger_entry.rbs +52 -0
  350. data/sig/metronome_sdk/models/v1/customer.rbs +44 -0
  351. data/sig/metronome_sdk/models/v1/customer_archive_params.rbs +4 -12
  352. data/sig/metronome_sdk/models/v1/customer_archive_response.rbs +4 -19
  353. data/sig/metronome_sdk/models/v1/customer_create_response.rbs +4 -48
  354. data/sig/metronome_sdk/models/v1/{customer_list_response.rbs → customer_detail.rbs} +17 -17
  355. data/sig/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbs +12 -73
  356. data/sig/metronome_sdk/models/v1/customer_preview_events_params.rbs +105 -0
  357. data/sig/metronome_sdk/models/v1/customer_preview_events_response.rbs +16 -0
  358. data/sig/metronome_sdk/models/v1/customer_retrieve_response.rbs +4 -112
  359. data/sig/metronome_sdk/models/v1/customer_set_name_response.rbs +4 -48
  360. data/sig/metronome_sdk/models/v1/customers/alert_list_response.rbs +4 -243
  361. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_response.rbs +4 -247
  362. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +7 -0
  363. data/sig/metronome_sdk/models/v1/customers/commit_create_response.rbs +4 -21
  364. data/sig/metronome_sdk/models/v1/customers/commit_list_response.rbs +4 -1057
  365. data/sig/metronome_sdk/models/v1/customers/commit_update_end_date_response.rbs +4 -21
  366. data/sig/metronome_sdk/models/v1/customers/credit_create_response.rbs +4 -21
  367. data/sig/metronome_sdk/models/v1/customers/credit_list_response.rbs +4 -596
  368. data/sig/metronome_sdk/models/v1/customers/credit_update_end_date_response.rbs +4 -21
  369. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +234 -0
  370. data/sig/metronome_sdk/models/v1/customers/{invoice_list_response.rbs → invoice.rbs} +147 -305
  371. data/sig/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rbs +8 -1278
  372. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_response.rbs +4 -1294
  373. data/sig/metronome_sdk/models/v1/customers/plan_add_response.rbs +4 -19
  374. data/sig/metronome_sdk/models/v1/customers/plan_list_response.rbs +4 -16
  375. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +2 -1
  376. data/sig/metronome_sdk/models/v1/plan_detail.rbs +203 -0
  377. data/sig/metronome_sdk/models/v1/plan_get_details_response.rbs +4 -267
  378. data/sig/metronome_sdk/models/v1/plan_list_charges_response.rbs +4 -16
  379. data/sig/metronome_sdk/models/v1/plan_list_customers_response.rbs +4 -108
  380. data/sig/metronome_sdk/models/v1/rollover_amount_max_amount.rbs +37 -0
  381. data/sig/metronome_sdk/models/v1/rollover_amount_max_percentage.rbs +37 -0
  382. data/sig/metronome_sdk/models/v1/usage_search_params.rbs +26 -0
  383. data/sig/metronome_sdk/models/v1/usage_search_response.rbs +230 -0
  384. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +4 -8
  385. data/sig/metronome_sdk/models/v2/contract_edit_commit_response.rbs +4 -19
  386. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +4 -8
  387. data/sig/metronome_sdk/models/v2/contract_edit_credit_response.rbs +4 -19
  388. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +743 -77
  389. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +4 -19
  390. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +274 -665
  391. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +567 -759
  392. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +567 -759
  393. data/sig/metronome_sdk/models.rbs +32 -0
  394. data/sig/metronome_sdk/resources/v1/billable_metrics.rbs +2 -2
  395. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +4 -4
  396. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -1
  397. data/sig/metronome_sdk/resources/v1/contracts.rbs +3 -1
  398. data/sig/metronome_sdk/resources/v1/credit_grants.rbs +1 -0
  399. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -1
  400. data/sig/metronome_sdk/resources/v1/customers.rbs +9 -1
  401. data/sig/metronome_sdk/resources/v1/usage.rbs +5 -0
  402. data/sig/metronome_sdk/resources/v2/contracts.rbs +3 -2
  403. metadata +95 -8
@@ -223,7 +223,7 @@ module MetronomeSDK
223
223
  end
224
224
  attr_writer :add_spend_threshold_configuration
225
225
 
226
- # (beta) Optional list of
226
+ # Optional list of
227
227
  # [subscriptions](https://docs.metronome.com/manage-product-access/create-subscription/)
228
228
  # to add to the contract.
229
229
  sig do
@@ -364,6 +364,11 @@ module MetronomeSDK
364
364
  sig { returns(T.nilable(Time)) }
365
365
  attr_accessor :update_contract_end_date
366
366
 
367
+ # Value to update the contract name to. If not provided, the contract name will
368
+ # remain unchanged.
369
+ sig { returns(T.nilable(String)) }
370
+ attr_accessor :update_contract_name
371
+
367
372
  sig do
368
373
  returns(
369
374
  T.nilable(
@@ -486,7 +491,7 @@ module MetronomeSDK
486
491
  end
487
492
  attr_writer :update_spend_threshold_configuration
488
493
 
489
- # (beta) Optional list of subscriptions to update.
494
+ # Optional list of subscriptions to update.
490
495
  sig do
491
496
  returns(
492
497
  T.nilable(
@@ -572,6 +577,7 @@ module MetronomeSDK
572
577
  MetronomeSDK::V2::ContractEditParams::UpdateCommit::OrHash
573
578
  ],
574
579
  update_contract_end_date: T.nilable(Time),
580
+ update_contract_name: T.nilable(String),
575
581
  update_credits:
576
582
  T::Array[
577
583
  MetronomeSDK::V2::ContractEditParams::UpdateCredit::OrHash
@@ -616,7 +622,7 @@ module MetronomeSDK
616
622
  add_reseller_royalties: nil,
617
623
  add_scheduled_charges: nil,
618
624
  add_spend_threshold_configuration: nil,
619
- # (beta) Optional list of
625
+ # Optional list of
620
626
  # [subscriptions](https://docs.metronome.com/manage-product-access/create-subscription/)
621
627
  # to add to the contract.
622
628
  add_subscriptions: nil,
@@ -636,6 +642,9 @@ module MetronomeSDK
636
642
  update_commits: nil,
637
643
  # RFC 3339 timestamp indicating when the contract will end (exclusive).
638
644
  update_contract_end_date: nil,
645
+ # Value to update the contract name to. If not provided, the contract name will
646
+ # remain unchanged.
647
+ update_contract_name: nil,
639
648
  update_credits: nil,
640
649
  update_prepaid_balance_threshold_configuration: nil,
641
650
  # Edits to these recurring commits will only affect commits whose access schedules
@@ -648,7 +657,7 @@ module MetronomeSDK
648
657
  update_recurring_credits: nil,
649
658
  update_scheduled_charges: nil,
650
659
  update_spend_threshold_configuration: nil,
651
- # (beta) Optional list of subscriptions to update.
660
+ # Optional list of subscriptions to update.
652
661
  update_subscriptions: nil,
653
662
  request_options: {}
654
663
  )
@@ -707,6 +716,7 @@ module MetronomeSDK
707
716
  update_commits:
708
717
  T::Array[MetronomeSDK::V2::ContractEditParams::UpdateCommit],
709
718
  update_contract_end_date: T.nilable(Time),
719
+ update_contract_name: T.nilable(String),
710
720
  update_credits:
711
721
  T::Array[MetronomeSDK::V2::ContractEditParams::UpdateCredit],
712
722
  update_prepaid_balance_threshold_configuration:
@@ -782,16 +792,18 @@ module MetronomeSDK
782
792
  sig { params(amount: Float).void }
783
793
  attr_writer :amount
784
794
 
785
- # Which products the commit applies to. If both applicable_product_ids and
786
- # applicable_product_tags are not provided, the commit applies to all products.
795
+ # Which products the commit applies to. If applicable_product_ids,
796
+ # applicable_product_tags or specifiers are not provided, the commit applies to
797
+ # all products.
787
798
  sig { returns(T.nilable(T::Array[String])) }
788
799
  attr_reader :applicable_product_ids
789
800
 
790
801
  sig { params(applicable_product_ids: T::Array[String]).void }
791
802
  attr_writer :applicable_product_ids
792
803
 
793
- # Which tags the commit applies to. If both applicable_product_ids and
794
- # applicable_product_tags are not provided, the commit applies to all products.
804
+ # Which tags the commit applies to. If applicable_product_ids,
805
+ # applicable_product_tags or specifiers are not provided, the commit applies to
806
+ # all products.
795
807
  sig { returns(T.nilable(T::Array[String])) }
796
808
  attr_reader :applicable_product_tags
797
809
 
@@ -811,6 +823,24 @@ module MetronomeSDK
811
823
  sig { params(description: String).void }
812
824
  attr_writer :description
813
825
 
826
+ # Optional configuration for commit hierarchy access control
827
+ sig do
828
+ returns(
829
+ T.nilable(
830
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration
831
+ )
832
+ )
833
+ end
834
+ attr_reader :hierarchy_configuration
835
+
836
+ sig do
837
+ params(
838
+ hierarchy_configuration:
839
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::OrHash
840
+ ).void
841
+ end
842
+ attr_writer :hierarchy_configuration
843
+
814
844
  # Required for "POSTPAID" commits: the true up invoice will be generated at this
815
845
  # time and only one schedule item is allowed; the total must match access_schedule
816
846
  # amount. Optional for "PREPAID" commits: if not provided, this will be a
@@ -941,6 +971,8 @@ module MetronomeSDK
941
971
  applicable_product_tags: T::Array[String],
942
972
  custom_fields: T::Hash[Symbol, String],
943
973
  description: String,
974
+ hierarchy_configuration:
975
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::OrHash,
944
976
  invoice_schedule:
945
977
  MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::OrHash,
946
978
  name: String,
@@ -967,15 +999,19 @@ module MetronomeSDK
967
999
  access_schedule: nil,
968
1000
  # (DEPRECATED) Use access_schedule and invoice_schedule instead.
969
1001
  amount: nil,
970
- # Which products the commit applies to. If both applicable_product_ids and
971
- # applicable_product_tags are not provided, the commit applies to all products.
1002
+ # Which products the commit applies to. If applicable_product_ids,
1003
+ # applicable_product_tags or specifiers are not provided, the commit applies to
1004
+ # all products.
972
1005
  applicable_product_ids: nil,
973
- # Which tags the commit applies to. If both applicable_product_ids and
974
- # applicable_product_tags are not provided, the commit applies to all products.
1006
+ # Which tags the commit applies to. If applicable_product_ids,
1007
+ # applicable_product_tags or specifiers are not provided, the commit applies to
1008
+ # all products.
975
1009
  applicable_product_tags: nil,
976
1010
  custom_fields: nil,
977
1011
  # Used only in UI/API. It is not exposed to end customers.
978
1012
  description: nil,
1013
+ # Optional configuration for commit hierarchy access control
1014
+ hierarchy_configuration: nil,
979
1015
  # Required for "POSTPAID" commits: the true up invoice will be generated at this
980
1016
  # time and only one schedule item is allowed; the total must match access_schedule
981
1017
  # amount. Optional for "PREPAID" commits: if not provided, this will be a
@@ -1017,6 +1053,8 @@ module MetronomeSDK
1017
1053
  applicable_product_tags: T::Array[String],
1018
1054
  custom_fields: T::Hash[Symbol, String],
1019
1055
  description: String,
1056
+ hierarchy_configuration:
1057
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration,
1020
1058
  invoice_schedule:
1021
1059
  MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule,
1022
1060
  name: String,
@@ -1171,6 +1209,282 @@ module MetronomeSDK
1171
1209
  end
1172
1210
  end
1173
1211
 
1212
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
1213
+ OrHash =
1214
+ T.type_alias do
1215
+ T.any(
1216
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration,
1217
+ MetronomeSDK::Internal::AnyHash
1218
+ )
1219
+ end
1220
+
1221
+ sig do
1222
+ returns(
1223
+ T.any(
1224
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
1225
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
1226
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
1227
+ )
1228
+ )
1229
+ end
1230
+ attr_accessor :child_access
1231
+
1232
+ # Optional configuration for commit hierarchy access control
1233
+ sig do
1234
+ params(
1235
+ child_access:
1236
+ T.any(
1237
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
1238
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
1239
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
1240
+ )
1241
+ ).returns(T.attached_class)
1242
+ end
1243
+ def self.new(child_access:)
1244
+ end
1245
+
1246
+ sig do
1247
+ override.returns(
1248
+ {
1249
+ child_access:
1250
+ T.any(
1251
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
1252
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
1253
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
1254
+ )
1255
+ }
1256
+ )
1257
+ end
1258
+ def to_hash
1259
+ end
1260
+
1261
+ module ChildAccess
1262
+ extend MetronomeSDK::Internal::Type::Union
1263
+
1264
+ Variants =
1265
+ T.type_alias do
1266
+ T.any(
1267
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
1268
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
1269
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
1270
+ )
1271
+ end
1272
+
1273
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
1274
+ OrHash =
1275
+ T.type_alias do
1276
+ T.any(
1277
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
1278
+ MetronomeSDK::Internal::AnyHash
1279
+ )
1280
+ end
1281
+
1282
+ sig do
1283
+ returns(
1284
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
1285
+ )
1286
+ end
1287
+ attr_accessor :type
1288
+
1289
+ sig do
1290
+ params(
1291
+ type:
1292
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
1293
+ ).returns(T.attached_class)
1294
+ end
1295
+ def self.new(type:)
1296
+ end
1297
+
1298
+ sig do
1299
+ override.returns(
1300
+ {
1301
+ type:
1302
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
1303
+ }
1304
+ )
1305
+ end
1306
+ def to_hash
1307
+ end
1308
+
1309
+ module Type
1310
+ extend MetronomeSDK::Internal::Type::Enum
1311
+
1312
+ TaggedSymbol =
1313
+ T.type_alias do
1314
+ T.all(
1315
+ Symbol,
1316
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
1317
+ )
1318
+ end
1319
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1320
+
1321
+ ALL =
1322
+ T.let(
1323
+ :ALL,
1324
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
1325
+ )
1326
+
1327
+ sig do
1328
+ override.returns(
1329
+ T::Array[
1330
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
1331
+ ]
1332
+ )
1333
+ end
1334
+ def self.values
1335
+ end
1336
+ end
1337
+ end
1338
+
1339
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
1340
+ OrHash =
1341
+ T.type_alias do
1342
+ T.any(
1343
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
1344
+ MetronomeSDK::Internal::AnyHash
1345
+ )
1346
+ end
1347
+
1348
+ sig do
1349
+ returns(
1350
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
1351
+ )
1352
+ end
1353
+ attr_accessor :type
1354
+
1355
+ sig do
1356
+ params(
1357
+ type:
1358
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
1359
+ ).returns(T.attached_class)
1360
+ end
1361
+ def self.new(type:)
1362
+ end
1363
+
1364
+ sig do
1365
+ override.returns(
1366
+ {
1367
+ type:
1368
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
1369
+ }
1370
+ )
1371
+ end
1372
+ def to_hash
1373
+ end
1374
+
1375
+ module Type
1376
+ extend MetronomeSDK::Internal::Type::Enum
1377
+
1378
+ TaggedSymbol =
1379
+ T.type_alias do
1380
+ T.all(
1381
+ Symbol,
1382
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
1383
+ )
1384
+ end
1385
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1386
+
1387
+ NONE =
1388
+ T.let(
1389
+ :NONE,
1390
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
1391
+ )
1392
+
1393
+ sig do
1394
+ override.returns(
1395
+ T::Array[
1396
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
1397
+ ]
1398
+ )
1399
+ end
1400
+ def self.values
1401
+ end
1402
+ end
1403
+ end
1404
+
1405
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
1406
+ OrHash =
1407
+ T.type_alias do
1408
+ T.any(
1409
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
1410
+ MetronomeSDK::Internal::AnyHash
1411
+ )
1412
+ end
1413
+
1414
+ sig { returns(T::Array[String]) }
1415
+ attr_accessor :contract_ids
1416
+
1417
+ sig do
1418
+ returns(
1419
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
1420
+ )
1421
+ end
1422
+ attr_accessor :type
1423
+
1424
+ sig do
1425
+ params(
1426
+ contract_ids: T::Array[String],
1427
+ type:
1428
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
1429
+ ).returns(T.attached_class)
1430
+ end
1431
+ def self.new(contract_ids:, type:)
1432
+ end
1433
+
1434
+ sig do
1435
+ override.returns(
1436
+ {
1437
+ contract_ids: T::Array[String],
1438
+ type:
1439
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
1440
+ }
1441
+ )
1442
+ end
1443
+ def to_hash
1444
+ end
1445
+
1446
+ module Type
1447
+ extend MetronomeSDK::Internal::Type::Enum
1448
+
1449
+ TaggedSymbol =
1450
+ T.type_alias do
1451
+ T.all(
1452
+ Symbol,
1453
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
1454
+ )
1455
+ end
1456
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1457
+
1458
+ CONTRACT_IDS =
1459
+ T.let(
1460
+ :CONTRACT_IDS,
1461
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
1462
+ )
1463
+
1464
+ sig do
1465
+ override.returns(
1466
+ T::Array[
1467
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
1468
+ ]
1469
+ )
1470
+ end
1471
+ def self.values
1472
+ end
1473
+ end
1474
+ end
1475
+
1476
+ sig do
1477
+ override.returns(
1478
+ T::Array[
1479
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::Variants
1480
+ ]
1481
+ )
1482
+ end
1483
+ def self.variants
1484
+ end
1485
+ end
1486
+ end
1487
+
1174
1488
  class InvoiceSchedule < MetronomeSDK::Internal::Type::BaseModel
1175
1489
  OrHash =
1176
1490
  T.type_alias do
@@ -1576,7 +1890,25 @@ module MetronomeSDK
1576
1890
  end
1577
1891
  attr_accessor :payment_gate_type
1578
1892
 
1579
- # Only applicable if using Stripe as your payment gateway through Metronome.
1893
+ # Only applicable if using PRECALCULATED as your tax type.
1894
+ sig do
1895
+ returns(
1896
+ T.nilable(
1897
+ MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::PrecalculatedTaxConfig
1898
+ )
1899
+ )
1900
+ end
1901
+ attr_reader :precalculated_tax_config
1902
+
1903
+ sig do
1904
+ params(
1905
+ precalculated_tax_config:
1906
+ MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
1907
+ ).void
1908
+ end
1909
+ attr_writer :precalculated_tax_config
1910
+
1911
+ # Only applicable if using STRIPE as your payment gateway type.
1580
1912
  sig do
1581
1913
  returns(
1582
1914
  T.nilable(
@@ -1619,6 +1951,8 @@ module MetronomeSDK
1619
1951
  params(
1620
1952
  payment_gate_type:
1621
1953
  MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::PaymentGateType::OrSymbol,
1954
+ precalculated_tax_config:
1955
+ MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
1622
1956
  stripe_config:
1623
1957
  MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::OrHash,
1624
1958
  tax_type:
@@ -1631,7 +1965,9 @@ module MetronomeSDK
1631
1965
  # facilitate payment using your own payment integration. Select NONE if you do not
1632
1966
  # wish to payment gate the commit balance.
1633
1967
  payment_gate_type:,
1634
- # Only applicable if using Stripe as your payment gateway through Metronome.
1968
+ # Only applicable if using PRECALCULATED as your tax type.
1969
+ precalculated_tax_config: nil,
1970
+ # Only applicable if using STRIPE as your payment gateway type.
1635
1971
  stripe_config: nil,
1636
1972
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
1637
1973
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
@@ -1645,6 +1981,8 @@ module MetronomeSDK
1645
1981
  {
1646
1982
  payment_gate_type:
1647
1983
  MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::PaymentGateType::OrSymbol,
1984
+ precalculated_tax_config:
1985
+ MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::PrecalculatedTaxConfig,
1648
1986
  stripe_config:
1649
1987
  MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig,
1650
1988
  tax_type:
@@ -1698,6 +2036,49 @@ module MetronomeSDK
1698
2036
  end
1699
2037
  end
1700
2038
 
2039
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
2040
+ OrHash =
2041
+ T.type_alias do
2042
+ T.any(
2043
+ MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::PrecalculatedTaxConfig,
2044
+ MetronomeSDK::Internal::AnyHash
2045
+ )
2046
+ end
2047
+
2048
+ # Amount of tax to be applied. This should be in the same currency and
2049
+ # denomination as the commit's invoice schedule
2050
+ sig { returns(Float) }
2051
+ attr_accessor :tax_amount
2052
+
2053
+ # Name of the tax to be applied. This may be used in an invoice line item
2054
+ # description.
2055
+ sig { returns(T.nilable(String)) }
2056
+ attr_reader :tax_name
2057
+
2058
+ sig { params(tax_name: String).void }
2059
+ attr_writer :tax_name
2060
+
2061
+ # Only applicable if using PRECALCULATED as your tax type.
2062
+ sig do
2063
+ params(tax_amount: Float, tax_name: String).returns(
2064
+ T.attached_class
2065
+ )
2066
+ end
2067
+ def self.new(
2068
+ # Amount of tax to be applied. This should be in the same currency and
2069
+ # denomination as the commit's invoice schedule
2070
+ tax_amount:,
2071
+ # Name of the tax to be applied. This may be used in an invoice line item
2072
+ # description.
2073
+ tax_name: nil
2074
+ )
2075
+ end
2076
+
2077
+ sig { override.returns({ tax_amount: Float, tax_name: String }) }
2078
+ def to_hash
2079
+ end
2080
+ end
2081
+
1701
2082
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
1702
2083
  OrHash =
1703
2084
  T.type_alias do
@@ -1715,16 +2096,28 @@ module MetronomeSDK
1715
2096
  end
1716
2097
  attr_accessor :payment_type
1717
2098
 
1718
- # Only applicable if using Stripe as your payment gateway through Metronome.
2099
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
2100
+ # your payment type.
2101
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
2102
+ attr_reader :invoice_metadata
2103
+
2104
+ sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
2105
+ attr_writer :invoice_metadata
2106
+
2107
+ # Only applicable if using STRIPE as your payment gateway type.
1719
2108
  sig do
1720
2109
  params(
1721
2110
  payment_type:
1722
- MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
2111
+ MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
2112
+ invoice_metadata: T::Hash[Symbol, String]
1723
2113
  ).returns(T.attached_class)
1724
2114
  end
1725
2115
  def self.new(
1726
2116
  # If left blank, will default to INVOICE
1727
- payment_type:
2117
+ payment_type:,
2118
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
2119
+ # your payment type.
2120
+ invoice_metadata: nil
1728
2121
  )
1729
2122
  end
1730
2123
 
@@ -1732,7 +2125,8 @@ module MetronomeSDK
1732
2125
  override.returns(
1733
2126
  {
1734
2127
  payment_type:
1735
- MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
2128
+ MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
2129
+ invoice_metadata: T::Hash[Symbol, String]
1736
2130
  }
1737
2131
  )
1738
2132
  end
@@ -1800,6 +2194,16 @@ module MetronomeSDK
1800
2194
  :STRIPE,
1801
2195
  MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::TaxType::TaggedSymbol
1802
2196
  )
2197
+ ANROK =
2198
+ T.let(
2199
+ :ANROK,
2200
+ MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::TaxType::TaggedSymbol
2201
+ )
2202
+ PRECALCULATED =
2203
+ T.let(
2204
+ :PRECALCULATED,
2205
+ MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::TaxType::TaggedSymbol
2206
+ )
1803
2207
 
1804
2208
  sig do
1805
2209
  override.returns(
@@ -1976,6 +2380,24 @@ module MetronomeSDK
1976
2380
  sig { params(description: String).void }
1977
2381
  attr_writer :description
1978
2382
 
2383
+ # Optional configuration for credit hierarchy access control
2384
+ sig do
2385
+ returns(
2386
+ T.nilable(
2387
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration
2388
+ )
2389
+ )
2390
+ end
2391
+ attr_reader :hierarchy_configuration
2392
+
2393
+ sig do
2394
+ params(
2395
+ hierarchy_configuration:
2396
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::OrHash
2397
+ ).void
2398
+ end
2399
+ attr_writer :hierarchy_configuration
2400
+
1979
2401
  # displayed on invoices
1980
2402
  sig { returns(T.nilable(String)) }
1981
2403
  attr_reader :name
@@ -2049,6 +2471,8 @@ module MetronomeSDK
2049
2471
  applicable_product_tags: T::Array[String],
2050
2472
  custom_fields: T::Hash[Symbol, String],
2051
2473
  description: String,
2474
+ hierarchy_configuration:
2475
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::OrHash,
2052
2476
  name: String,
2053
2477
  netsuite_sales_order_id: String,
2054
2478
  priority: Float,
@@ -2073,6 +2497,8 @@ module MetronomeSDK
2073
2497
  custom_fields: nil,
2074
2498
  # Used only in UI/API. It is not exposed to end customers.
2075
2499
  description: nil,
2500
+ # Optional configuration for credit hierarchy access control
2501
+ hierarchy_configuration: nil,
2076
2502
  # displayed on invoices
2077
2503
  name: nil,
2078
2504
  # This field's availability is dependent on your client's configuration.
@@ -2099,6 +2525,8 @@ module MetronomeSDK
2099
2525
  applicable_product_tags: T::Array[String],
2100
2526
  custom_fields: T::Hash[Symbol, String],
2101
2527
  description: String,
2528
+ hierarchy_configuration:
2529
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration,
2102
2530
  name: String,
2103
2531
  netsuite_sales_order_id: String,
2104
2532
  priority: Float,
@@ -2211,54 +2639,330 @@ module MetronomeSDK
2211
2639
  end
2212
2640
  end
2213
2641
 
2214
- module RateType
2215
- extend MetronomeSDK::Internal::Type::Enum
2216
-
2217
- TaggedSymbol =
2642
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
2643
+ OrHash =
2218
2644
  T.type_alias do
2219
- T.all(
2220
- Symbol,
2221
- MetronomeSDK::V2::ContractEditParams::AddCredit::RateType
2645
+ T.any(
2646
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration,
2647
+ MetronomeSDK::Internal::AnyHash
2222
2648
  )
2223
2649
  end
2224
- OrSymbol = T.type_alias { T.any(Symbol, String) }
2225
2650
 
2226
- COMMIT_RATE =
2227
- T.let(
2228
- :COMMIT_RATE,
2229
- MetronomeSDK::V2::ContractEditParams::AddCredit::RateType::TaggedSymbol
2230
- )
2231
- LIST_RATE =
2232
- T.let(
2233
- :LIST_RATE,
2234
- MetronomeSDK::V2::ContractEditParams::AddCredit::RateType::TaggedSymbol
2651
+ sig do
2652
+ returns(
2653
+ T.any(
2654
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
2655
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
2656
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
2657
+ )
2235
2658
  )
2659
+ end
2660
+ attr_accessor :child_access
2661
+
2662
+ # Optional configuration for credit hierarchy access control
2663
+ sig do
2664
+ params(
2665
+ child_access:
2666
+ T.any(
2667
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
2668
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
2669
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
2670
+ )
2671
+ ).returns(T.attached_class)
2672
+ end
2673
+ def self.new(child_access:)
2674
+ end
2236
2675
 
2237
2676
  sig do
2238
2677
  override.returns(
2239
- T::Array[
2240
- MetronomeSDK::V2::ContractEditParams::AddCredit::RateType::TaggedSymbol
2241
- ]
2678
+ {
2679
+ child_access:
2680
+ T.any(
2681
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
2682
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
2683
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
2684
+ )
2685
+ }
2242
2686
  )
2243
2687
  end
2244
- def self.values
2688
+ def to_hash
2245
2689
  end
2246
- end
2247
2690
 
2248
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
2249
- OrHash =
2250
- T.type_alias do
2251
- T.any(
2252
- MetronomeSDK::V2::ContractEditParams::AddCredit::Specifier,
2253
- MetronomeSDK::Internal::AnyHash
2254
- )
2255
- end
2691
+ module ChildAccess
2692
+ extend MetronomeSDK::Internal::Type::Union
2256
2693
 
2257
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
2258
- attr_reader :presentation_group_values
2694
+ Variants =
2695
+ T.type_alias do
2696
+ T.any(
2697
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
2698
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
2699
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
2700
+ )
2701
+ end
2259
2702
 
2260
- sig do
2261
- params(presentation_group_values: T::Hash[Symbol, String]).void
2703
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
2704
+ OrHash =
2705
+ T.type_alias do
2706
+ T.any(
2707
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
2708
+ MetronomeSDK::Internal::AnyHash
2709
+ )
2710
+ end
2711
+
2712
+ sig do
2713
+ returns(
2714
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
2715
+ )
2716
+ end
2717
+ attr_accessor :type
2718
+
2719
+ sig do
2720
+ params(
2721
+ type:
2722
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
2723
+ ).returns(T.attached_class)
2724
+ end
2725
+ def self.new(type:)
2726
+ end
2727
+
2728
+ sig do
2729
+ override.returns(
2730
+ {
2731
+ type:
2732
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
2733
+ }
2734
+ )
2735
+ end
2736
+ def to_hash
2737
+ end
2738
+
2739
+ module Type
2740
+ extend MetronomeSDK::Internal::Type::Enum
2741
+
2742
+ TaggedSymbol =
2743
+ T.type_alias do
2744
+ T.all(
2745
+ Symbol,
2746
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
2747
+ )
2748
+ end
2749
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2750
+
2751
+ ALL =
2752
+ T.let(
2753
+ :ALL,
2754
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
2755
+ )
2756
+
2757
+ sig do
2758
+ override.returns(
2759
+ T::Array[
2760
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
2761
+ ]
2762
+ )
2763
+ end
2764
+ def self.values
2765
+ end
2766
+ end
2767
+ end
2768
+
2769
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
2770
+ OrHash =
2771
+ T.type_alias do
2772
+ T.any(
2773
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
2774
+ MetronomeSDK::Internal::AnyHash
2775
+ )
2776
+ end
2777
+
2778
+ sig do
2779
+ returns(
2780
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
2781
+ )
2782
+ end
2783
+ attr_accessor :type
2784
+
2785
+ sig do
2786
+ params(
2787
+ type:
2788
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
2789
+ ).returns(T.attached_class)
2790
+ end
2791
+ def self.new(type:)
2792
+ end
2793
+
2794
+ sig do
2795
+ override.returns(
2796
+ {
2797
+ type:
2798
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
2799
+ }
2800
+ )
2801
+ end
2802
+ def to_hash
2803
+ end
2804
+
2805
+ module Type
2806
+ extend MetronomeSDK::Internal::Type::Enum
2807
+
2808
+ TaggedSymbol =
2809
+ T.type_alias do
2810
+ T.all(
2811
+ Symbol,
2812
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
2813
+ )
2814
+ end
2815
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2816
+
2817
+ NONE =
2818
+ T.let(
2819
+ :NONE,
2820
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
2821
+ )
2822
+
2823
+ sig do
2824
+ override.returns(
2825
+ T::Array[
2826
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
2827
+ ]
2828
+ )
2829
+ end
2830
+ def self.values
2831
+ end
2832
+ end
2833
+ end
2834
+
2835
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
2836
+ OrHash =
2837
+ T.type_alias do
2838
+ T.any(
2839
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
2840
+ MetronomeSDK::Internal::AnyHash
2841
+ )
2842
+ end
2843
+
2844
+ sig { returns(T::Array[String]) }
2845
+ attr_accessor :contract_ids
2846
+
2847
+ sig do
2848
+ returns(
2849
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
2850
+ )
2851
+ end
2852
+ attr_accessor :type
2853
+
2854
+ sig do
2855
+ params(
2856
+ contract_ids: T::Array[String],
2857
+ type:
2858
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
2859
+ ).returns(T.attached_class)
2860
+ end
2861
+ def self.new(contract_ids:, type:)
2862
+ end
2863
+
2864
+ sig do
2865
+ override.returns(
2866
+ {
2867
+ contract_ids: T::Array[String],
2868
+ type:
2869
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
2870
+ }
2871
+ )
2872
+ end
2873
+ def to_hash
2874
+ end
2875
+
2876
+ module Type
2877
+ extend MetronomeSDK::Internal::Type::Enum
2878
+
2879
+ TaggedSymbol =
2880
+ T.type_alias do
2881
+ T.all(
2882
+ Symbol,
2883
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
2884
+ )
2885
+ end
2886
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2887
+
2888
+ CONTRACT_IDS =
2889
+ T.let(
2890
+ :CONTRACT_IDS,
2891
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
2892
+ )
2893
+
2894
+ sig do
2895
+ override.returns(
2896
+ T::Array[
2897
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
2898
+ ]
2899
+ )
2900
+ end
2901
+ def self.values
2902
+ end
2903
+ end
2904
+ end
2905
+
2906
+ sig do
2907
+ override.returns(
2908
+ T::Array[
2909
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::Variants
2910
+ ]
2911
+ )
2912
+ end
2913
+ def self.variants
2914
+ end
2915
+ end
2916
+ end
2917
+
2918
+ module RateType
2919
+ extend MetronomeSDK::Internal::Type::Enum
2920
+
2921
+ TaggedSymbol =
2922
+ T.type_alias do
2923
+ T.all(
2924
+ Symbol,
2925
+ MetronomeSDK::V2::ContractEditParams::AddCredit::RateType
2926
+ )
2927
+ end
2928
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2929
+
2930
+ COMMIT_RATE =
2931
+ T.let(
2932
+ :COMMIT_RATE,
2933
+ MetronomeSDK::V2::ContractEditParams::AddCredit::RateType::TaggedSymbol
2934
+ )
2935
+ LIST_RATE =
2936
+ T.let(
2937
+ :LIST_RATE,
2938
+ MetronomeSDK::V2::ContractEditParams::AddCredit::RateType::TaggedSymbol
2939
+ )
2940
+
2941
+ sig do
2942
+ override.returns(
2943
+ T::Array[
2944
+ MetronomeSDK::V2::ContractEditParams::AddCredit::RateType::TaggedSymbol
2945
+ ]
2946
+ )
2947
+ end
2948
+ def self.values
2949
+ end
2950
+ end
2951
+
2952
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
2953
+ OrHash =
2954
+ T.type_alias do
2955
+ T.any(
2956
+ MetronomeSDK::V2::ContractEditParams::AddCredit::Specifier,
2957
+ MetronomeSDK::Internal::AnyHash
2958
+ )
2959
+ end
2960
+
2961
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
2962
+ attr_reader :presentation_group_values
2963
+
2964
+ sig do
2965
+ params(presentation_group_values: T::Hash[Symbol, String]).void
2262
2966
  end
2263
2967
  attr_writer :presentation_group_values
2264
2968
 
@@ -3294,25 +3998,10 @@ module MetronomeSDK
3294
3998
  attr_writer :quantity
3295
3999
 
3296
4000
  # Only set for TIERED rate_type.
3297
- sig do
3298
- returns(
3299
- T.nilable(
3300
- T::Array[
3301
- MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate::Tier
3302
- ]
3303
- )
3304
- )
3305
- end
4001
+ sig { returns(T.nilable(T::Array[MetronomeSDK::Tier])) }
3306
4002
  attr_reader :tiers
3307
4003
 
3308
- sig do
3309
- params(
3310
- tiers:
3311
- T::Array[
3312
- MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate::Tier::OrHash
3313
- ]
3314
- ).void
3315
- end
4004
+ sig { params(tiers: T::Array[MetronomeSDK::Tier::OrHash]).void }
3316
4005
  attr_writer :tiers
3317
4006
 
3318
4007
  # Required for OVERWRITE type.
@@ -3325,10 +4014,7 @@ module MetronomeSDK
3325
4014
  is_prorated: T::Boolean,
3326
4015
  price: Float,
3327
4016
  quantity: Float,
3328
- tiers:
3329
- T::Array[
3330
- MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate::Tier::OrHash
3331
- ]
4017
+ tiers: T::Array[MetronomeSDK::Tier::OrHash]
3332
4018
  ).returns(T.attached_class)
3333
4019
  end
3334
4020
  def self.new(
@@ -3360,10 +4046,7 @@ module MetronomeSDK
3360
4046
  is_prorated: T::Boolean,
3361
4047
  price: Float,
3362
4048
  quantity: Float,
3363
- tiers:
3364
- T::Array[
3365
- MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate::Tier
3366
- ]
4049
+ tiers: T::Array[MetronomeSDK::Tier]
3367
4050
  }
3368
4051
  )
3369
4052
  end
@@ -3418,35 +4101,6 @@ module MetronomeSDK
3418
4101
  def self.values
3419
4102
  end
3420
4103
  end
3421
-
3422
- class Tier < MetronomeSDK::Internal::Type::BaseModel
3423
- OrHash =
3424
- T.type_alias do
3425
- T.any(
3426
- MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate::Tier,
3427
- MetronomeSDK::Internal::AnyHash
3428
- )
3429
- end
3430
-
3431
- sig { returns(Float) }
3432
- attr_accessor :price
3433
-
3434
- sig { returns(T.nilable(Float)) }
3435
- attr_reader :size
3436
-
3437
- sig { params(size: Float).void }
3438
- attr_writer :size
3439
-
3440
- sig do
3441
- params(price: Float, size: Float).returns(T.attached_class)
3442
- end
3443
- def self.new(price:, size: nil)
3444
- end
3445
-
3446
- sig { override.returns({ price: Float, size: Float }) }
3447
- def to_hash
3448
- end
3449
- end
3450
4104
  end
3451
4105
 
3452
4106
  # Indicates whether the override applies to commit rates or list rates. Can only
@@ -3610,6 +4264,14 @@ module MetronomeSDK
3610
4264
  sig { returns(Float) }
3611
4265
  attr_accessor :threshold_amount
3612
4266
 
4267
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
4268
+ # commit amount will be in terms of this credit type instead of the fiat currency.
4269
+ sig { returns(T.nilable(String)) }
4270
+ attr_reader :custom_credit_type_id
4271
+
4272
+ sig { params(custom_credit_type_id: String).void }
4273
+ attr_writer :custom_credit_type_id
4274
+
3613
4275
  sig do
3614
4276
  params(
3615
4277
  commit:
@@ -3618,7 +4280,8 @@ module MetronomeSDK
3618
4280
  payment_gate_config:
3619
4281
  MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::OrHash,
3620
4282
  recharge_to_amount: Float,
3621
- threshold_amount: Float
4283
+ threshold_amount: Float,
4284
+ custom_credit_type_id: String
3622
4285
  ).returns(T.attached_class)
3623
4286
  end
3624
4287
  def self.new(
@@ -3632,7 +4295,10 @@ module MetronomeSDK
3632
4295
  recharge_to_amount:,
3633
4296
  # Specify the threshold amount for the contract. Each time the contract's balance
3634
4297
  # lowers to this amount, a threshold charge will be initiated.
3635
- threshold_amount:
4298
+ threshold_amount:,
4299
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
4300
+ # commit amount will be in terms of this credit type instead of the fiat currency.
4301
+ custom_credit_type_id: nil
3636
4302
  )
3637
4303
  end
3638
4304
 
@@ -3645,7 +4311,8 @@ module MetronomeSDK
3645
4311
  payment_gate_config:
3646
4312
  MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig,
3647
4313
  recharge_to_amount: Float,
3648
- threshold_amount: Float
4314
+ threshold_amount: Float,
4315
+ custom_credit_type_id: String
3649
4316
  }
3650
4317
  )
3651
4318
  end
@@ -3666,17 +4333,18 @@ module MetronomeSDK
3666
4333
  sig { returns(String) }
3667
4334
  attr_accessor :product_id
3668
4335
 
3669
- # Which products the threshold commit applies to. If both applicable_product_ids
3670
- # and applicable_product_tags are not provided, the commit applies to all
3671
- # products.
4336
+ # Which products the threshold commit applies to. If applicable_product_ids,
4337
+ # applicable_product_tags or specifiers are not provided, the commit applies to
4338
+ # all products.
3672
4339
  sig { returns(T.nilable(T::Array[String])) }
3673
4340
  attr_reader :applicable_product_ids
3674
4341
 
3675
4342
  sig { params(applicable_product_ids: T::Array[String]).void }
3676
4343
  attr_writer :applicable_product_ids
3677
4344
 
3678
- # Which tags the threshold commit applies to. If both applicable_product_ids and
3679
- # applicable_product_tags are not provided, the commit applies to all products.
4345
+ # Which tags the threshold commit applies to. If applicable_product_ids,
4346
+ # applicable_product_tags or specifiers are not provided, the commit applies to
4347
+ # all products.
3680
4348
  sig { returns(T.nilable(T::Array[String])) }
3681
4349
  attr_reader :applicable_product_tags
3682
4350
 
@@ -3739,12 +4407,13 @@ module MetronomeSDK
3739
4407
  # The commit product that will be used to generate the line item for commit
3740
4408
  # payment.
3741
4409
  product_id:,
3742
- # Which products the threshold commit applies to. If both applicable_product_ids
3743
- # and applicable_product_tags are not provided, the commit applies to all
3744
- # products.
4410
+ # Which products the threshold commit applies to. If applicable_product_ids,
4411
+ # applicable_product_tags or specifiers are not provided, the commit applies to
4412
+ # all products.
3745
4413
  applicable_product_ids: nil,
3746
- # Which tags the threshold commit applies to. If both applicable_product_ids and
3747
- # applicable_product_tags are not provided, the commit applies to all products.
4414
+ # Which tags the threshold commit applies to. If applicable_product_ids,
4415
+ # applicable_product_tags or specifiers are not provided, the commit applies to
4416
+ # all products.
3748
4417
  applicable_product_tags: nil,
3749
4418
  description: nil,
3750
4419
  # Specify the name of the line item for the threshold charge. If left blank, it
@@ -3868,7 +4537,25 @@ module MetronomeSDK
3868
4537
  end
3869
4538
  attr_accessor :payment_gate_type
3870
4539
 
3871
- # Only applicable if using Stripe as your payment gateway through Metronome.
4540
+ # Only applicable if using PRECALCULATED as your tax type.
4541
+ sig do
4542
+ returns(
4543
+ T.nilable(
4544
+ MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
4545
+ )
4546
+ )
4547
+ end
4548
+ attr_reader :precalculated_tax_config
4549
+
4550
+ sig do
4551
+ params(
4552
+ precalculated_tax_config:
4553
+ MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
4554
+ ).void
4555
+ end
4556
+ attr_writer :precalculated_tax_config
4557
+
4558
+ # Only applicable if using STRIPE as your payment gateway type.
3872
4559
  sig do
3873
4560
  returns(
3874
4561
  T.nilable(
@@ -3910,6 +4597,8 @@ module MetronomeSDK
3910
4597
  params(
3911
4598
  payment_gate_type:
3912
4599
  MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
4600
+ precalculated_tax_config:
4601
+ MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
3913
4602
  stripe_config:
3914
4603
  MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash,
3915
4604
  tax_type:
@@ -3922,7 +4611,9 @@ module MetronomeSDK
3922
4611
  # facilitate payment using your own payment integration. Select NONE if you do not
3923
4612
  # wish to payment gate the commit balance.
3924
4613
  payment_gate_type:,
3925
- # Only applicable if using Stripe as your payment gateway through Metronome.
4614
+ # Only applicable if using PRECALCULATED as your tax type.
4615
+ precalculated_tax_config: nil,
4616
+ # Only applicable if using STRIPE as your payment gateway type.
3926
4617
  stripe_config: nil,
3927
4618
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
3928
4619
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
@@ -3936,6 +4627,8 @@ module MetronomeSDK
3936
4627
  {
3937
4628
  payment_gate_type:
3938
4629
  MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
4630
+ precalculated_tax_config:
4631
+ MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
3939
4632
  stripe_config:
3940
4633
  MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig,
3941
4634
  tax_type:
@@ -3989,6 +4682,49 @@ module MetronomeSDK
3989
4682
  end
3990
4683
  end
3991
4684
 
4685
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
4686
+ OrHash =
4687
+ T.type_alias do
4688
+ T.any(
4689
+ MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
4690
+ MetronomeSDK::Internal::AnyHash
4691
+ )
4692
+ end
4693
+
4694
+ # Amount of tax to be applied. This should be in the same currency and
4695
+ # denomination as the commit's invoice schedule
4696
+ sig { returns(Float) }
4697
+ attr_accessor :tax_amount
4698
+
4699
+ # Name of the tax to be applied. This may be used in an invoice line item
4700
+ # description.
4701
+ sig { returns(T.nilable(String)) }
4702
+ attr_reader :tax_name
4703
+
4704
+ sig { params(tax_name: String).void }
4705
+ attr_writer :tax_name
4706
+
4707
+ # Only applicable if using PRECALCULATED as your tax type.
4708
+ sig do
4709
+ params(tax_amount: Float, tax_name: String).returns(
4710
+ T.attached_class
4711
+ )
4712
+ end
4713
+ def self.new(
4714
+ # Amount of tax to be applied. This should be in the same currency and
4715
+ # denomination as the commit's invoice schedule
4716
+ tax_amount:,
4717
+ # Name of the tax to be applied. This may be used in an invoice line item
4718
+ # description.
4719
+ tax_name: nil
4720
+ )
4721
+ end
4722
+
4723
+ sig { override.returns({ tax_amount: Float, tax_name: String }) }
4724
+ def to_hash
4725
+ end
4726
+ end
4727
+
3992
4728
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
3993
4729
  OrHash =
3994
4730
  T.type_alias do
@@ -4006,16 +4742,28 @@ module MetronomeSDK
4006
4742
  end
4007
4743
  attr_accessor :payment_type
4008
4744
 
4009
- # Only applicable if using Stripe as your payment gateway through Metronome.
4745
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
4746
+ # your payment type.
4747
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
4748
+ attr_reader :invoice_metadata
4749
+
4750
+ sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
4751
+ attr_writer :invoice_metadata
4752
+
4753
+ # Only applicable if using STRIPE as your payment gateway type.
4010
4754
  sig do
4011
4755
  params(
4012
4756
  payment_type:
4013
- MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
4757
+ MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
4758
+ invoice_metadata: T::Hash[Symbol, String]
4014
4759
  ).returns(T.attached_class)
4015
4760
  end
4016
4761
  def self.new(
4017
4762
  # If left blank, will default to INVOICE
4018
- payment_type:
4763
+ payment_type:,
4764
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
4765
+ # your payment type.
4766
+ invoice_metadata: nil
4019
4767
  )
4020
4768
  end
4021
4769
 
@@ -4023,7 +4771,8 @@ module MetronomeSDK
4023
4771
  override.returns(
4024
4772
  {
4025
4773
  payment_type:
4026
- MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
4774
+ MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
4775
+ invoice_metadata: T::Hash[Symbol, String]
4027
4776
  }
4028
4777
  )
4029
4778
  end
@@ -4091,6 +4840,16 @@ module MetronomeSDK
4091
4840
  :STRIPE,
4092
4841
  MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
4093
4842
  )
4843
+ ANROK =
4844
+ T.let(
4845
+ :ANROK,
4846
+ MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
4847
+ )
4848
+ PRECALCULATED =
4849
+ T.let(
4850
+ :PRECALCULATED,
4851
+ MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
4852
+ )
4094
4853
 
4095
4854
  sig do
4096
4855
  override.returns(
@@ -4541,26 +5300,37 @@ module MetronomeSDK
4541
5300
  sig { returns(String) }
4542
5301
  attr_accessor :credit_type_id
4543
5302
 
4544
- sig { returns(Float) }
4545
- attr_accessor :quantity
4546
-
4547
5303
  sig { returns(Float) }
4548
5304
  attr_accessor :unit_price
4549
5305
 
5306
+ # This field is currently required. Upcoming recurring commit/credit configuration
5307
+ # options will allow it to be optional.
5308
+ sig { returns(T.nilable(Float)) }
5309
+ attr_reader :quantity
5310
+
5311
+ sig { params(quantity: Float).void }
5312
+ attr_writer :quantity
5313
+
4550
5314
  # The amount of commit to grant.
4551
5315
  sig do
4552
5316
  params(
4553
5317
  credit_type_id: String,
4554
- quantity: Float,
4555
- unit_price: Float
5318
+ unit_price: Float,
5319
+ quantity: Float
4556
5320
  ).returns(T.attached_class)
4557
5321
  end
4558
- def self.new(credit_type_id:, quantity:, unit_price:)
5322
+ def self.new(
5323
+ credit_type_id:,
5324
+ unit_price:,
5325
+ # This field is currently required. Upcoming recurring commit/credit configuration
5326
+ # options will allow it to be optional.
5327
+ quantity: nil
5328
+ )
4559
5329
  end
4560
5330
 
4561
5331
  sig do
4562
5332
  override.returns(
4563
- { credit_type_id: String, quantity: Float, unit_price: Float }
5333
+ { credit_type_id: String, unit_price: Float, quantity: Float }
4564
5334
  )
4565
5335
  end
4566
5336
  def to_hash
@@ -5213,26 +5983,37 @@ module MetronomeSDK
5213
5983
  sig { returns(String) }
5214
5984
  attr_accessor :credit_type_id
5215
5985
 
5216
- sig { returns(Float) }
5217
- attr_accessor :quantity
5218
-
5219
5986
  sig { returns(Float) }
5220
5987
  attr_accessor :unit_price
5221
5988
 
5989
+ # This field is currently required. Upcoming recurring commit/credit configuration
5990
+ # options will allow it to be optional.
5991
+ sig { returns(T.nilable(Float)) }
5992
+ attr_reader :quantity
5993
+
5994
+ sig { params(quantity: Float).void }
5995
+ attr_writer :quantity
5996
+
5222
5997
  # The amount of commit to grant.
5223
5998
  sig do
5224
5999
  params(
5225
6000
  credit_type_id: String,
5226
- quantity: Float,
5227
- unit_price: Float
6001
+ unit_price: Float,
6002
+ quantity: Float
5228
6003
  ).returns(T.attached_class)
5229
6004
  end
5230
- def self.new(credit_type_id:, quantity:, unit_price:)
6005
+ def self.new(
6006
+ credit_type_id:,
6007
+ unit_price:,
6008
+ # This field is currently required. Upcoming recurring commit/credit configuration
6009
+ # options will allow it to be optional.
6010
+ quantity: nil
6011
+ )
5231
6012
  end
5232
6013
 
5233
6014
  sig do
5234
6015
  override.returns(
5235
- { credit_type_id: String, quantity: Float, unit_price: Float }
6016
+ { credit_type_id: String, unit_price: Float, quantity: Float }
5236
6017
  )
5237
6018
  end
5238
6019
  def to_hash
@@ -6430,7 +7211,25 @@ module MetronomeSDK
6430
7211
  end
6431
7212
  attr_accessor :payment_gate_type
6432
7213
 
6433
- # Only applicable if using Stripe as your payment gateway through Metronome.
7214
+ # Only applicable if using PRECALCULATED as your tax type.
7215
+ sig do
7216
+ returns(
7217
+ T.nilable(
7218
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
7219
+ )
7220
+ )
7221
+ end
7222
+ attr_reader :precalculated_tax_config
7223
+
7224
+ sig do
7225
+ params(
7226
+ precalculated_tax_config:
7227
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
7228
+ ).void
7229
+ end
7230
+ attr_writer :precalculated_tax_config
7231
+
7232
+ # Only applicable if using STRIPE as your payment gateway type.
6434
7233
  sig do
6435
7234
  returns(
6436
7235
  T.nilable(
@@ -6472,6 +7271,8 @@ module MetronomeSDK
6472
7271
  params(
6473
7272
  payment_gate_type:
6474
7273
  MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
7274
+ precalculated_tax_config:
7275
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
6475
7276
  stripe_config:
6476
7277
  MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash,
6477
7278
  tax_type:
@@ -6484,7 +7285,9 @@ module MetronomeSDK
6484
7285
  # facilitate payment using your own payment integration. Select NONE if you do not
6485
7286
  # wish to payment gate the commit balance.
6486
7287
  payment_gate_type:,
6487
- # Only applicable if using Stripe as your payment gateway through Metronome.
7288
+ # Only applicable if using PRECALCULATED as your tax type.
7289
+ precalculated_tax_config: nil,
7290
+ # Only applicable if using STRIPE as your payment gateway type.
6488
7291
  stripe_config: nil,
6489
7292
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
6490
7293
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
@@ -6498,6 +7301,8 @@ module MetronomeSDK
6498
7301
  {
6499
7302
  payment_gate_type:
6500
7303
  MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
7304
+ precalculated_tax_config:
7305
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
6501
7306
  stripe_config:
6502
7307
  MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig,
6503
7308
  tax_type:
@@ -6551,6 +7356,49 @@ module MetronomeSDK
6551
7356
  end
6552
7357
  end
6553
7358
 
7359
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
7360
+ OrHash =
7361
+ T.type_alias do
7362
+ T.any(
7363
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
7364
+ MetronomeSDK::Internal::AnyHash
7365
+ )
7366
+ end
7367
+
7368
+ # Amount of tax to be applied. This should be in the same currency and
7369
+ # denomination as the commit's invoice schedule
7370
+ sig { returns(Float) }
7371
+ attr_accessor :tax_amount
7372
+
7373
+ # Name of the tax to be applied. This may be used in an invoice line item
7374
+ # description.
7375
+ sig { returns(T.nilable(String)) }
7376
+ attr_reader :tax_name
7377
+
7378
+ sig { params(tax_name: String).void }
7379
+ attr_writer :tax_name
7380
+
7381
+ # Only applicable if using PRECALCULATED as your tax type.
7382
+ sig do
7383
+ params(tax_amount: Float, tax_name: String).returns(
7384
+ T.attached_class
7385
+ )
7386
+ end
7387
+ def self.new(
7388
+ # Amount of tax to be applied. This should be in the same currency and
7389
+ # denomination as the commit's invoice schedule
7390
+ tax_amount:,
7391
+ # Name of the tax to be applied. This may be used in an invoice line item
7392
+ # description.
7393
+ tax_name: nil
7394
+ )
7395
+ end
7396
+
7397
+ sig { override.returns({ tax_amount: Float, tax_name: String }) }
7398
+ def to_hash
7399
+ end
7400
+ end
7401
+
6554
7402
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
6555
7403
  OrHash =
6556
7404
  T.type_alias do
@@ -6568,16 +7416,28 @@ module MetronomeSDK
6568
7416
  end
6569
7417
  attr_accessor :payment_type
6570
7418
 
6571
- # Only applicable if using Stripe as your payment gateway through Metronome.
7419
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
7420
+ # your payment type.
7421
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
7422
+ attr_reader :invoice_metadata
7423
+
7424
+ sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
7425
+ attr_writer :invoice_metadata
7426
+
7427
+ # Only applicable if using STRIPE as your payment gateway type.
6572
7428
  sig do
6573
7429
  params(
6574
7430
  payment_type:
6575
- MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
7431
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
7432
+ invoice_metadata: T::Hash[Symbol, String]
6576
7433
  ).returns(T.attached_class)
6577
7434
  end
6578
7435
  def self.new(
6579
7436
  # If left blank, will default to INVOICE
6580
- payment_type:
7437
+ payment_type:,
7438
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
7439
+ # your payment type.
7440
+ invoice_metadata: nil
6581
7441
  )
6582
7442
  end
6583
7443
 
@@ -6585,7 +7445,8 @@ module MetronomeSDK
6585
7445
  override.returns(
6586
7446
  {
6587
7447
  payment_type:
6588
- MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
7448
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
7449
+ invoice_metadata: T::Hash[Symbol, String]
6589
7450
  }
6590
7451
  )
6591
7452
  end
@@ -6653,6 +7514,16 @@ module MetronomeSDK
6653
7514
  :STRIPE,
6654
7515
  MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
6655
7516
  )
7517
+ ANROK =
7518
+ T.let(
7519
+ :ANROK,
7520
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
7521
+ )
7522
+ PRECALCULATED =
7523
+ T.let(
7524
+ :PRECALCULATED,
7525
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
7526
+ )
6656
7527
 
6657
7528
  sig do
6658
7529
  override.returns(
@@ -7155,16 +8026,36 @@ module MetronomeSDK
7155
8026
  end
7156
8027
  attr_writer :access_schedule
7157
8028
 
7158
- # Which products the commit applies to. If both applicable_product_ids and
7159
- # applicable_product_tags are not provided, the commit applies to all products.
8029
+ # Which products the commit applies to. If applicable_product_ids,
8030
+ # applicable_product_tags or specifiers are not provided, the commit applies to
8031
+ # all products.
7160
8032
  sig { returns(T.nilable(T::Array[String])) }
7161
8033
  attr_accessor :applicable_product_ids
7162
8034
 
7163
- # Which tags the commit applies to. If both applicable_product_ids and
7164
- # applicable_product_tags are not provided, the commit applies to all products.
8035
+ # Which tags the commit applies to. If applicable_product_ids,
8036
+ # applicable_product_tags or specifiers are not provided, the commit applies to
8037
+ # all products.
7165
8038
  sig { returns(T.nilable(T::Array[String])) }
7166
8039
  attr_accessor :applicable_product_tags
7167
8040
 
8041
+ # Optional configuration for commit hierarchy access control
8042
+ sig do
8043
+ returns(
8044
+ T.nilable(
8045
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration
8046
+ )
8047
+ )
8048
+ end
8049
+ attr_reader :hierarchy_configuration
8050
+
8051
+ sig do
8052
+ params(
8053
+ hierarchy_configuration:
8054
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::OrHash
8055
+ ).void
8056
+ end
8057
+ attr_writer :hierarchy_configuration
8058
+
7168
8059
  sig do
7169
8060
  returns(
7170
8061
  T.nilable(
@@ -7201,6 +8092,8 @@ module MetronomeSDK
7201
8092
  MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::OrHash,
7202
8093
  applicable_product_ids: T.nilable(T::Array[String]),
7203
8094
  applicable_product_tags: T.nilable(T::Array[String]),
8095
+ hierarchy_configuration:
8096
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::OrHash,
7204
8097
  invoice_schedule:
7205
8098
  MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::OrHash,
7206
8099
  netsuite_sales_order_id: T.nilable(String),
@@ -7211,12 +8104,16 @@ module MetronomeSDK
7211
8104
  def self.new(
7212
8105
  commit_id:,
7213
8106
  access_schedule: nil,
7214
- # Which products the commit applies to. If both applicable_product_ids and
7215
- # applicable_product_tags are not provided, the commit applies to all products.
8107
+ # Which products the commit applies to. If applicable_product_ids,
8108
+ # applicable_product_tags or specifiers are not provided, the commit applies to
8109
+ # all products.
7216
8110
  applicable_product_ids: nil,
7217
- # Which tags the commit applies to. If both applicable_product_ids and
7218
- # applicable_product_tags are not provided, the commit applies to all products.
8111
+ # Which tags the commit applies to. If applicable_product_ids,
8112
+ # applicable_product_tags or specifiers are not provided, the commit applies to
8113
+ # all products.
7219
8114
  applicable_product_tags: nil,
8115
+ # Optional configuration for commit hierarchy access control
8116
+ hierarchy_configuration: nil,
7220
8117
  invoice_schedule: nil,
7221
8118
  netsuite_sales_order_id: nil,
7222
8119
  product_id: nil,
@@ -7232,6 +8129,8 @@ module MetronomeSDK
7232
8129
  MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule,
7233
8130
  applicable_product_ids: T.nilable(T::Array[String]),
7234
8131
  applicable_product_tags: T.nilable(T::Array[String]),
8132
+ hierarchy_configuration:
8133
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration,
7235
8134
  invoice_schedule:
7236
8135
  MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule,
7237
8136
  netsuite_sales_order_id: T.nilable(String),
@@ -7478,6 +8377,282 @@ module MetronomeSDK
7478
8377
  end
7479
8378
  end
7480
8379
 
8380
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
8381
+ OrHash =
8382
+ T.type_alias do
8383
+ T.any(
8384
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration,
8385
+ MetronomeSDK::Internal::AnyHash
8386
+ )
8387
+ end
8388
+
8389
+ sig do
8390
+ returns(
8391
+ T.any(
8392
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
8393
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
8394
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
8395
+ )
8396
+ )
8397
+ end
8398
+ attr_accessor :child_access
8399
+
8400
+ # Optional configuration for commit hierarchy access control
8401
+ sig do
8402
+ params(
8403
+ child_access:
8404
+ T.any(
8405
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
8406
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
8407
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
8408
+ )
8409
+ ).returns(T.attached_class)
8410
+ end
8411
+ def self.new(child_access:)
8412
+ end
8413
+
8414
+ sig do
8415
+ override.returns(
8416
+ {
8417
+ child_access:
8418
+ T.any(
8419
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
8420
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
8421
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
8422
+ )
8423
+ }
8424
+ )
8425
+ end
8426
+ def to_hash
8427
+ end
8428
+
8429
+ module ChildAccess
8430
+ extend MetronomeSDK::Internal::Type::Union
8431
+
8432
+ Variants =
8433
+ T.type_alias do
8434
+ T.any(
8435
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
8436
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
8437
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
8438
+ )
8439
+ end
8440
+
8441
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
8442
+ OrHash =
8443
+ T.type_alias do
8444
+ T.any(
8445
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
8446
+ MetronomeSDK::Internal::AnyHash
8447
+ )
8448
+ end
8449
+
8450
+ sig do
8451
+ returns(
8452
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
8453
+ )
8454
+ end
8455
+ attr_accessor :type
8456
+
8457
+ sig do
8458
+ params(
8459
+ type:
8460
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
8461
+ ).returns(T.attached_class)
8462
+ end
8463
+ def self.new(type:)
8464
+ end
8465
+
8466
+ sig do
8467
+ override.returns(
8468
+ {
8469
+ type:
8470
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
8471
+ }
8472
+ )
8473
+ end
8474
+ def to_hash
8475
+ end
8476
+
8477
+ module Type
8478
+ extend MetronomeSDK::Internal::Type::Enum
8479
+
8480
+ TaggedSymbol =
8481
+ T.type_alias do
8482
+ T.all(
8483
+ Symbol,
8484
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
8485
+ )
8486
+ end
8487
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
8488
+
8489
+ ALL =
8490
+ T.let(
8491
+ :ALL,
8492
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
8493
+ )
8494
+
8495
+ sig do
8496
+ override.returns(
8497
+ T::Array[
8498
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
8499
+ ]
8500
+ )
8501
+ end
8502
+ def self.values
8503
+ end
8504
+ end
8505
+ end
8506
+
8507
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
8508
+ OrHash =
8509
+ T.type_alias do
8510
+ T.any(
8511
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
8512
+ MetronomeSDK::Internal::AnyHash
8513
+ )
8514
+ end
8515
+
8516
+ sig do
8517
+ returns(
8518
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
8519
+ )
8520
+ end
8521
+ attr_accessor :type
8522
+
8523
+ sig do
8524
+ params(
8525
+ type:
8526
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
8527
+ ).returns(T.attached_class)
8528
+ end
8529
+ def self.new(type:)
8530
+ end
8531
+
8532
+ sig do
8533
+ override.returns(
8534
+ {
8535
+ type:
8536
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
8537
+ }
8538
+ )
8539
+ end
8540
+ def to_hash
8541
+ end
8542
+
8543
+ module Type
8544
+ extend MetronomeSDK::Internal::Type::Enum
8545
+
8546
+ TaggedSymbol =
8547
+ T.type_alias do
8548
+ T.all(
8549
+ Symbol,
8550
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
8551
+ )
8552
+ end
8553
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
8554
+
8555
+ NONE =
8556
+ T.let(
8557
+ :NONE,
8558
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
8559
+ )
8560
+
8561
+ sig do
8562
+ override.returns(
8563
+ T::Array[
8564
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
8565
+ ]
8566
+ )
8567
+ end
8568
+ def self.values
8569
+ end
8570
+ end
8571
+ end
8572
+
8573
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
8574
+ OrHash =
8575
+ T.type_alias do
8576
+ T.any(
8577
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
8578
+ MetronomeSDK::Internal::AnyHash
8579
+ )
8580
+ end
8581
+
8582
+ sig { returns(T::Array[String]) }
8583
+ attr_accessor :contract_ids
8584
+
8585
+ sig do
8586
+ returns(
8587
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
8588
+ )
8589
+ end
8590
+ attr_accessor :type
8591
+
8592
+ sig do
8593
+ params(
8594
+ contract_ids: T::Array[String],
8595
+ type:
8596
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
8597
+ ).returns(T.attached_class)
8598
+ end
8599
+ def self.new(contract_ids:, type:)
8600
+ end
8601
+
8602
+ sig do
8603
+ override.returns(
8604
+ {
8605
+ contract_ids: T::Array[String],
8606
+ type:
8607
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
8608
+ }
8609
+ )
8610
+ end
8611
+ def to_hash
8612
+ end
8613
+
8614
+ module Type
8615
+ extend MetronomeSDK::Internal::Type::Enum
8616
+
8617
+ TaggedSymbol =
8618
+ T.type_alias do
8619
+ T.all(
8620
+ Symbol,
8621
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
8622
+ )
8623
+ end
8624
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
8625
+
8626
+ CONTRACT_IDS =
8627
+ T.let(
8628
+ :CONTRACT_IDS,
8629
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
8630
+ )
8631
+
8632
+ sig do
8633
+ override.returns(
8634
+ T::Array[
8635
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
8636
+ ]
8637
+ )
8638
+ end
8639
+ def self.values
8640
+ end
8641
+ end
8642
+ end
8643
+
8644
+ sig do
8645
+ override.returns(
8646
+ T::Array[
8647
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::Variants
8648
+ ]
8649
+ )
8650
+ end
8651
+ def self.variants
8652
+ end
8653
+ end
8654
+ end
8655
+
7481
8656
  class InvoiceSchedule < MetronomeSDK::Internal::Type::BaseModel
7482
8657
  OrHash =
7483
8658
  T.type_alias do
@@ -7775,16 +8950,36 @@ module MetronomeSDK
7775
8950
  end
7776
8951
  attr_writer :access_schedule
7777
8952
 
7778
- # Which products the commit applies to. If both applicable_product_ids and
7779
- # applicable_product_tags are not provided, the commit applies to all products.
8953
+ # Which products the commit applies to. If applicable_product_ids,
8954
+ # applicable_product_tags or specifiers are not provided, the commit applies to
8955
+ # all products.
7780
8956
  sig { returns(T.nilable(T::Array[String])) }
7781
8957
  attr_accessor :applicable_product_ids
7782
8958
 
7783
- # Which tags the commit applies to. If both applicable_product_ids and
7784
- # applicable_product_tags are not provided, the commit applies to all products.
8959
+ # Which tags the commit applies to. If applicable_product_ids,
8960
+ # applicable_product_tags or specifiers are not provided, the commit applies to
8961
+ # all products.
7785
8962
  sig { returns(T.nilable(T::Array[String])) }
7786
8963
  attr_accessor :applicable_product_tags
7787
8964
 
8965
+ # Optional configuration for commit hierarchy access control
8966
+ sig do
8967
+ returns(
8968
+ T.nilable(
8969
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration
8970
+ )
8971
+ )
8972
+ end
8973
+ attr_reader :hierarchy_configuration
8974
+
8975
+ sig do
8976
+ params(
8977
+ hierarchy_configuration:
8978
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::OrHash
8979
+ ).void
8980
+ end
8981
+ attr_writer :hierarchy_configuration
8982
+
7788
8983
  sig { returns(T.nilable(String)) }
7789
8984
  attr_accessor :netsuite_sales_order_id
7790
8985
 
@@ -7801,6 +8996,8 @@ module MetronomeSDK
7801
8996
  MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::OrHash,
7802
8997
  applicable_product_ids: T.nilable(T::Array[String]),
7803
8998
  applicable_product_tags: T.nilable(T::Array[String]),
8999
+ hierarchy_configuration:
9000
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::OrHash,
7804
9001
  netsuite_sales_order_id: T.nilable(String),
7805
9002
  product_id: String
7806
9003
  ).returns(T.attached_class)
@@ -7808,12 +9005,16 @@ module MetronomeSDK
7808
9005
  def self.new(
7809
9006
  credit_id:,
7810
9007
  access_schedule: nil,
7811
- # Which products the commit applies to. If both applicable_product_ids and
7812
- # applicable_product_tags are not provided, the commit applies to all products.
9008
+ # Which products the commit applies to. If applicable_product_ids,
9009
+ # applicable_product_tags or specifiers are not provided, the commit applies to
9010
+ # all products.
7813
9011
  applicable_product_ids: nil,
7814
- # Which tags the commit applies to. If both applicable_product_ids and
7815
- # applicable_product_tags are not provided, the commit applies to all products.
9012
+ # Which tags the commit applies to. If applicable_product_ids,
9013
+ # applicable_product_tags or specifiers are not provided, the commit applies to
9014
+ # all products.
7816
9015
  applicable_product_tags: nil,
9016
+ # Optional configuration for commit hierarchy access control
9017
+ hierarchy_configuration: nil,
7817
9018
  netsuite_sales_order_id: nil,
7818
9019
  product_id: nil
7819
9020
  )
@@ -7827,6 +9028,8 @@ module MetronomeSDK
7827
9028
  MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule,
7828
9029
  applicable_product_ids: T.nilable(T::Array[String]),
7829
9030
  applicable_product_tags: T.nilable(T::Array[String]),
9031
+ hierarchy_configuration:
9032
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration,
7830
9033
  netsuite_sales_order_id: T.nilable(String),
7831
9034
  product_id: String
7832
9035
  }
@@ -8069,6 +9272,282 @@ module MetronomeSDK
8069
9272
  end
8070
9273
  end
8071
9274
  end
9275
+
9276
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
9277
+ OrHash =
9278
+ T.type_alias do
9279
+ T.any(
9280
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration,
9281
+ MetronomeSDK::Internal::AnyHash
9282
+ )
9283
+ end
9284
+
9285
+ sig do
9286
+ returns(
9287
+ T.any(
9288
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
9289
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
9290
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
9291
+ )
9292
+ )
9293
+ end
9294
+ attr_accessor :child_access
9295
+
9296
+ # Optional configuration for commit hierarchy access control
9297
+ sig do
9298
+ params(
9299
+ child_access:
9300
+ T.any(
9301
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
9302
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
9303
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
9304
+ )
9305
+ ).returns(T.attached_class)
9306
+ end
9307
+ def self.new(child_access:)
9308
+ end
9309
+
9310
+ sig do
9311
+ override.returns(
9312
+ {
9313
+ child_access:
9314
+ T.any(
9315
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
9316
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
9317
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
9318
+ )
9319
+ }
9320
+ )
9321
+ end
9322
+ def to_hash
9323
+ end
9324
+
9325
+ module ChildAccess
9326
+ extend MetronomeSDK::Internal::Type::Union
9327
+
9328
+ Variants =
9329
+ T.type_alias do
9330
+ T.any(
9331
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
9332
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
9333
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
9334
+ )
9335
+ end
9336
+
9337
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
9338
+ OrHash =
9339
+ T.type_alias do
9340
+ T.any(
9341
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
9342
+ MetronomeSDK::Internal::AnyHash
9343
+ )
9344
+ end
9345
+
9346
+ sig do
9347
+ returns(
9348
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
9349
+ )
9350
+ end
9351
+ attr_accessor :type
9352
+
9353
+ sig do
9354
+ params(
9355
+ type:
9356
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
9357
+ ).returns(T.attached_class)
9358
+ end
9359
+ def self.new(type:)
9360
+ end
9361
+
9362
+ sig do
9363
+ override.returns(
9364
+ {
9365
+ type:
9366
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
9367
+ }
9368
+ )
9369
+ end
9370
+ def to_hash
9371
+ end
9372
+
9373
+ module Type
9374
+ extend MetronomeSDK::Internal::Type::Enum
9375
+
9376
+ TaggedSymbol =
9377
+ T.type_alias do
9378
+ T.all(
9379
+ Symbol,
9380
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
9381
+ )
9382
+ end
9383
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
9384
+
9385
+ ALL =
9386
+ T.let(
9387
+ :ALL,
9388
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
9389
+ )
9390
+
9391
+ sig do
9392
+ override.returns(
9393
+ T::Array[
9394
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
9395
+ ]
9396
+ )
9397
+ end
9398
+ def self.values
9399
+ end
9400
+ end
9401
+ end
9402
+
9403
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
9404
+ OrHash =
9405
+ T.type_alias do
9406
+ T.any(
9407
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
9408
+ MetronomeSDK::Internal::AnyHash
9409
+ )
9410
+ end
9411
+
9412
+ sig do
9413
+ returns(
9414
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
9415
+ )
9416
+ end
9417
+ attr_accessor :type
9418
+
9419
+ sig do
9420
+ params(
9421
+ type:
9422
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
9423
+ ).returns(T.attached_class)
9424
+ end
9425
+ def self.new(type:)
9426
+ end
9427
+
9428
+ sig do
9429
+ override.returns(
9430
+ {
9431
+ type:
9432
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
9433
+ }
9434
+ )
9435
+ end
9436
+ def to_hash
9437
+ end
9438
+
9439
+ module Type
9440
+ extend MetronomeSDK::Internal::Type::Enum
9441
+
9442
+ TaggedSymbol =
9443
+ T.type_alias do
9444
+ T.all(
9445
+ Symbol,
9446
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
9447
+ )
9448
+ end
9449
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
9450
+
9451
+ NONE =
9452
+ T.let(
9453
+ :NONE,
9454
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
9455
+ )
9456
+
9457
+ sig do
9458
+ override.returns(
9459
+ T::Array[
9460
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
9461
+ ]
9462
+ )
9463
+ end
9464
+ def self.values
9465
+ end
9466
+ end
9467
+ end
9468
+
9469
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
9470
+ OrHash =
9471
+ T.type_alias do
9472
+ T.any(
9473
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
9474
+ MetronomeSDK::Internal::AnyHash
9475
+ )
9476
+ end
9477
+
9478
+ sig { returns(T::Array[String]) }
9479
+ attr_accessor :contract_ids
9480
+
9481
+ sig do
9482
+ returns(
9483
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
9484
+ )
9485
+ end
9486
+ attr_accessor :type
9487
+
9488
+ sig do
9489
+ params(
9490
+ contract_ids: T::Array[String],
9491
+ type:
9492
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
9493
+ ).returns(T.attached_class)
9494
+ end
9495
+ def self.new(contract_ids:, type:)
9496
+ end
9497
+
9498
+ sig do
9499
+ override.returns(
9500
+ {
9501
+ contract_ids: T::Array[String],
9502
+ type:
9503
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
9504
+ }
9505
+ )
9506
+ end
9507
+ def to_hash
9508
+ end
9509
+
9510
+ module Type
9511
+ extend MetronomeSDK::Internal::Type::Enum
9512
+
9513
+ TaggedSymbol =
9514
+ T.type_alias do
9515
+ T.all(
9516
+ Symbol,
9517
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
9518
+ )
9519
+ end
9520
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
9521
+
9522
+ CONTRACT_IDS =
9523
+ T.let(
9524
+ :CONTRACT_IDS,
9525
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
9526
+ )
9527
+
9528
+ sig do
9529
+ override.returns(
9530
+ T::Array[
9531
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
9532
+ ]
9533
+ )
9534
+ end
9535
+ def self.values
9536
+ end
9537
+ end
9538
+ end
9539
+
9540
+ sig do
9541
+ override.returns(
9542
+ T::Array[
9543
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::Variants
9544
+ ]
9545
+ )
9546
+ end
9547
+ def self.variants
9548
+ end
9549
+ end
9550
+ end
8072
9551
  end
8073
9552
 
8074
9553
  class UpdatePrepaidBalanceThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
@@ -8097,6 +9576,11 @@ module MetronomeSDK
8097
9576
  end
8098
9577
  attr_writer :commit
8099
9578
 
9579
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
9580
+ # commit amount will be in terms of this credit type instead of the fiat currency.
9581
+ sig { returns(T.nilable(String)) }
9582
+ attr_accessor :custom_credit_type_id
9583
+
8100
9584
  # When set to false, the contract will not be evaluated against the
8101
9585
  # threshold_amount. Toggling to true will result an immediate evaluation,
8102
9586
  # regardless of prior state.
@@ -8142,6 +9626,7 @@ module MetronomeSDK
8142
9626
  params(
8143
9627
  commit:
8144
9628
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::OrHash,
9629
+ custom_credit_type_id: T.nilable(String),
8145
9630
  is_enabled: T::Boolean,
8146
9631
  payment_gate_config:
8147
9632
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::OrHash,
@@ -8151,6 +9636,9 @@ module MetronomeSDK
8151
9636
  end
8152
9637
  def self.new(
8153
9638
  commit: nil,
9639
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
9640
+ # commit amount will be in terms of this credit type instead of the fiat currency.
9641
+ custom_credit_type_id: nil,
8154
9642
  # When set to false, the contract will not be evaluated against the
8155
9643
  # threshold_amount. Toggling to true will result an immediate evaluation,
8156
9644
  # regardless of prior state.
@@ -8169,6 +9657,7 @@ module MetronomeSDK
8169
9657
  {
8170
9658
  commit:
8171
9659
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit,
9660
+ custom_credit_type_id: T.nilable(String),
8172
9661
  is_enabled: T::Boolean,
8173
9662
  payment_gate_config:
8174
9663
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig,
@@ -8193,18 +9682,12 @@ module MetronomeSDK
8193
9682
  # and applicable_product_tags are not provided, the commit applies to all
8194
9683
  # products.
8195
9684
  sig { returns(T.nilable(T::Array[String])) }
8196
- attr_reader :applicable_product_ids
8197
-
8198
- sig { params(applicable_product_ids: T::Array[String]).void }
8199
- attr_writer :applicable_product_ids
9685
+ attr_accessor :applicable_product_ids
8200
9686
 
8201
9687
  # Which tags the threshold commit applies to. If both applicable_product_ids and
8202
9688
  # applicable_product_tags are not provided, the commit applies to all products.
8203
9689
  sig { returns(T.nilable(T::Array[String])) }
8204
- attr_reader :applicable_product_tags
8205
-
8206
- sig { params(applicable_product_tags: T::Array[String]).void }
8207
- attr_writer :applicable_product_tags
9690
+ attr_accessor :applicable_product_tags
8208
9691
 
8209
9692
  sig { returns(T.nilable(String)) }
8210
9693
  attr_reader :description
@@ -8241,29 +9724,21 @@ module MetronomeSDK
8241
9724
  )
8242
9725
  )
8243
9726
  end
8244
- attr_reader :specifiers
9727
+ attr_accessor :specifiers
8245
9728
 
8246
9729
  sig do
8247
9730
  params(
8248
- specifiers:
8249
- T::Array[
8250
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier::OrHash
8251
- ]
8252
- ).void
8253
- end
8254
- attr_writer :specifiers
8255
-
8256
- sig do
8257
- params(
8258
- applicable_product_ids: T::Array[String],
8259
- applicable_product_tags: T::Array[String],
9731
+ applicable_product_ids: T.nilable(T::Array[String]),
9732
+ applicable_product_tags: T.nilable(T::Array[String]),
8260
9733
  description: String,
8261
9734
  name: String,
8262
9735
  product_id: String,
8263
9736
  specifiers:
8264
- T::Array[
8265
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier::OrHash
8266
- ]
9737
+ T.nilable(
9738
+ T::Array[
9739
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier::OrHash
9740
+ ]
9741
+ )
8267
9742
  ).returns(T.attached_class)
8268
9743
  end
8269
9744
  def self.new(
@@ -8292,15 +9767,17 @@ module MetronomeSDK
8292
9767
  sig do
8293
9768
  override.returns(
8294
9769
  {
8295
- applicable_product_ids: T::Array[String],
8296
- applicable_product_tags: T::Array[String],
9770
+ applicable_product_ids: T.nilable(T::Array[String]),
9771
+ applicable_product_tags: T.nilable(T::Array[String]),
8297
9772
  description: String,
8298
9773
  name: String,
8299
9774
  product_id: String,
8300
9775
  specifiers:
8301
- T::Array[
8302
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier
8303
- ]
9776
+ T.nilable(
9777
+ T::Array[
9778
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier
9779
+ ]
9780
+ )
8304
9781
  }
8305
9782
  )
8306
9783
  end
@@ -8399,7 +9876,25 @@ module MetronomeSDK
8399
9876
  end
8400
9877
  attr_accessor :payment_gate_type
8401
9878
 
8402
- # Only applicable if using Stripe as your payment gateway through Metronome.
9879
+ # Only applicable if using PRECALCULATED as your tax type.
9880
+ sig do
9881
+ returns(
9882
+ T.nilable(
9883
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
9884
+ )
9885
+ )
9886
+ end
9887
+ attr_reader :precalculated_tax_config
9888
+
9889
+ sig do
9890
+ params(
9891
+ precalculated_tax_config:
9892
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
9893
+ ).void
9894
+ end
9895
+ attr_writer :precalculated_tax_config
9896
+
9897
+ # Only applicable if using STRIPE as your payment gateway type.
8403
9898
  sig do
8404
9899
  returns(
8405
9900
  T.nilable(
@@ -8441,6 +9936,8 @@ module MetronomeSDK
8441
9936
  params(
8442
9937
  payment_gate_type:
8443
9938
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
9939
+ precalculated_tax_config:
9940
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
8444
9941
  stripe_config:
8445
9942
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash,
8446
9943
  tax_type:
@@ -8453,7 +9950,9 @@ module MetronomeSDK
8453
9950
  # facilitate payment using your own payment integration. Select NONE if you do not
8454
9951
  # wish to payment gate the commit balance.
8455
9952
  payment_gate_type:,
8456
- # Only applicable if using Stripe as your payment gateway through Metronome.
9953
+ # Only applicable if using PRECALCULATED as your tax type.
9954
+ precalculated_tax_config: nil,
9955
+ # Only applicable if using STRIPE as your payment gateway type.
8457
9956
  stripe_config: nil,
8458
9957
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
8459
9958
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
@@ -8467,6 +9966,8 @@ module MetronomeSDK
8467
9966
  {
8468
9967
  payment_gate_type:
8469
9968
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
9969
+ precalculated_tax_config:
9970
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
8470
9971
  stripe_config:
8471
9972
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig,
8472
9973
  tax_type:
@@ -8520,6 +10021,49 @@ module MetronomeSDK
8520
10021
  end
8521
10022
  end
8522
10023
 
10024
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
10025
+ OrHash =
10026
+ T.type_alias do
10027
+ T.any(
10028
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
10029
+ MetronomeSDK::Internal::AnyHash
10030
+ )
10031
+ end
10032
+
10033
+ # Amount of tax to be applied. This should be in the same currency and
10034
+ # denomination as the commit's invoice schedule
10035
+ sig { returns(Float) }
10036
+ attr_accessor :tax_amount
10037
+
10038
+ # Name of the tax to be applied. This may be used in an invoice line item
10039
+ # description.
10040
+ sig { returns(T.nilable(String)) }
10041
+ attr_reader :tax_name
10042
+
10043
+ sig { params(tax_name: String).void }
10044
+ attr_writer :tax_name
10045
+
10046
+ # Only applicable if using PRECALCULATED as your tax type.
10047
+ sig do
10048
+ params(tax_amount: Float, tax_name: String).returns(
10049
+ T.attached_class
10050
+ )
10051
+ end
10052
+ def self.new(
10053
+ # Amount of tax to be applied. This should be in the same currency and
10054
+ # denomination as the commit's invoice schedule
10055
+ tax_amount:,
10056
+ # Name of the tax to be applied. This may be used in an invoice line item
10057
+ # description.
10058
+ tax_name: nil
10059
+ )
10060
+ end
10061
+
10062
+ sig { override.returns({ tax_amount: Float, tax_name: String }) }
10063
+ def to_hash
10064
+ end
10065
+ end
10066
+
8523
10067
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
8524
10068
  OrHash =
8525
10069
  T.type_alias do
@@ -8537,16 +10081,28 @@ module MetronomeSDK
8537
10081
  end
8538
10082
  attr_accessor :payment_type
8539
10083
 
8540
- # Only applicable if using Stripe as your payment gateway through Metronome.
10084
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
10085
+ # your payment type.
10086
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
10087
+ attr_reader :invoice_metadata
10088
+
10089
+ sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
10090
+ attr_writer :invoice_metadata
10091
+
10092
+ # Only applicable if using STRIPE as your payment gateway type.
8541
10093
  sig do
8542
10094
  params(
8543
10095
  payment_type:
8544
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
10096
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
10097
+ invoice_metadata: T::Hash[Symbol, String]
8545
10098
  ).returns(T.attached_class)
8546
10099
  end
8547
10100
  def self.new(
8548
10101
  # If left blank, will default to INVOICE
8549
- payment_type:
10102
+ payment_type:,
10103
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
10104
+ # your payment type.
10105
+ invoice_metadata: nil
8550
10106
  )
8551
10107
  end
8552
10108
 
@@ -8554,7 +10110,8 @@ module MetronomeSDK
8554
10110
  override.returns(
8555
10111
  {
8556
10112
  payment_type:
8557
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
10113
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
10114
+ invoice_metadata: T::Hash[Symbol, String]
8558
10115
  }
8559
10116
  )
8560
10117
  end
@@ -8622,6 +10179,16 @@ module MetronomeSDK
8622
10179
  :STRIPE,
8623
10180
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
8624
10181
  )
10182
+ ANROK =
10183
+ T.let(
10184
+ :ANROK,
10185
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
10186
+ )
10187
+ PRECALCULATED =
10188
+ T.let(
10189
+ :PRECALCULATED,
10190
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
10191
+ )
8625
10192
 
8626
10193
  sig do
8627
10194
  override.returns(
@@ -9386,7 +10953,25 @@ module MetronomeSDK
9386
10953
  end
9387
10954
  attr_accessor :payment_gate_type
9388
10955
 
9389
- # Only applicable if using Stripe as your payment gateway through Metronome.
10956
+ # Only applicable if using PRECALCULATED as your tax type.
10957
+ sig do
10958
+ returns(
10959
+ T.nilable(
10960
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
10961
+ )
10962
+ )
10963
+ end
10964
+ attr_reader :precalculated_tax_config
10965
+
10966
+ sig do
10967
+ params(
10968
+ precalculated_tax_config:
10969
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
10970
+ ).void
10971
+ end
10972
+ attr_writer :precalculated_tax_config
10973
+
10974
+ # Only applicable if using STRIPE as your payment gateway type.
9390
10975
  sig do
9391
10976
  returns(
9392
10977
  T.nilable(
@@ -9428,6 +11013,8 @@ module MetronomeSDK
9428
11013
  params(
9429
11014
  payment_gate_type:
9430
11015
  MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
11016
+ precalculated_tax_config:
11017
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
9431
11018
  stripe_config:
9432
11019
  MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash,
9433
11020
  tax_type:
@@ -9440,7 +11027,9 @@ module MetronomeSDK
9440
11027
  # facilitate payment using your own payment integration. Select NONE if you do not
9441
11028
  # wish to payment gate the commit balance.
9442
11029
  payment_gate_type:,
9443
- # Only applicable if using Stripe as your payment gateway through Metronome.
11030
+ # Only applicable if using PRECALCULATED as your tax type.
11031
+ precalculated_tax_config: nil,
11032
+ # Only applicable if using STRIPE as your payment gateway type.
9444
11033
  stripe_config: nil,
9445
11034
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
9446
11035
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
@@ -9454,6 +11043,8 @@ module MetronomeSDK
9454
11043
  {
9455
11044
  payment_gate_type:
9456
11045
  MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
11046
+ precalculated_tax_config:
11047
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
9457
11048
  stripe_config:
9458
11049
  MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig,
9459
11050
  tax_type:
@@ -9507,6 +11098,49 @@ module MetronomeSDK
9507
11098
  end
9508
11099
  end
9509
11100
 
11101
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
11102
+ OrHash =
11103
+ T.type_alias do
11104
+ T.any(
11105
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
11106
+ MetronomeSDK::Internal::AnyHash
11107
+ )
11108
+ end
11109
+
11110
+ # Amount of tax to be applied. This should be in the same currency and
11111
+ # denomination as the commit's invoice schedule
11112
+ sig { returns(Float) }
11113
+ attr_accessor :tax_amount
11114
+
11115
+ # Name of the tax to be applied. This may be used in an invoice line item
11116
+ # description.
11117
+ sig { returns(T.nilable(String)) }
11118
+ attr_reader :tax_name
11119
+
11120
+ sig { params(tax_name: String).void }
11121
+ attr_writer :tax_name
11122
+
11123
+ # Only applicable if using PRECALCULATED as your tax type.
11124
+ sig do
11125
+ params(tax_amount: Float, tax_name: String).returns(
11126
+ T.attached_class
11127
+ )
11128
+ end
11129
+ def self.new(
11130
+ # Amount of tax to be applied. This should be in the same currency and
11131
+ # denomination as the commit's invoice schedule
11132
+ tax_amount:,
11133
+ # Name of the tax to be applied. This may be used in an invoice line item
11134
+ # description.
11135
+ tax_name: nil
11136
+ )
11137
+ end
11138
+
11139
+ sig { override.returns({ tax_amount: Float, tax_name: String }) }
11140
+ def to_hash
11141
+ end
11142
+ end
11143
+
9510
11144
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
9511
11145
  OrHash =
9512
11146
  T.type_alias do
@@ -9524,16 +11158,28 @@ module MetronomeSDK
9524
11158
  end
9525
11159
  attr_accessor :payment_type
9526
11160
 
9527
- # Only applicable if using Stripe as your payment gateway through Metronome.
11161
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
11162
+ # your payment type.
11163
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
11164
+ attr_reader :invoice_metadata
11165
+
11166
+ sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
11167
+ attr_writer :invoice_metadata
11168
+
11169
+ # Only applicable if using STRIPE as your payment gateway type.
9528
11170
  sig do
9529
11171
  params(
9530
11172
  payment_type:
9531
- MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
11173
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
11174
+ invoice_metadata: T::Hash[Symbol, String]
9532
11175
  ).returns(T.attached_class)
9533
11176
  end
9534
11177
  def self.new(
9535
11178
  # If left blank, will default to INVOICE
9536
- payment_type:
11179
+ payment_type:,
11180
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
11181
+ # your payment type.
11182
+ invoice_metadata: nil
9537
11183
  )
9538
11184
  end
9539
11185
 
@@ -9541,7 +11187,8 @@ module MetronomeSDK
9541
11187
  override.returns(
9542
11188
  {
9543
11189
  payment_type:
9544
- MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
11190
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
11191
+ invoice_metadata: T::Hash[Symbol, String]
9545
11192
  }
9546
11193
  )
9547
11194
  end
@@ -9609,6 +11256,16 @@ module MetronomeSDK
9609
11256
  :STRIPE,
9610
11257
  MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
9611
11258
  )
11259
+ ANROK =
11260
+ T.let(
11261
+ :ANROK,
11262
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
11263
+ )
11264
+ PRECALCULATED =
11265
+ T.let(
11266
+ :PRECALCULATED,
11267
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
11268
+ )
9612
11269
 
9613
11270
  sig do
9614
11271
  override.returns(