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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +56 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/errors.rb +22 -0
  5. data/lib/metronome_sdk/internal/cursor_page.rb +1 -1
  6. data/lib/metronome_sdk/internal/transport/base_client.rb +10 -2
  7. data/lib/metronome_sdk/internal/type/array_of.rb +6 -1
  8. data/lib/metronome_sdk/internal/type/base_model.rb +82 -26
  9. data/lib/metronome_sdk/internal/type/boolean.rb +7 -1
  10. data/lib/metronome_sdk/internal/type/converter.rb +42 -34
  11. data/lib/metronome_sdk/internal/type/enum.rb +16 -5
  12. data/lib/metronome_sdk/internal/type/file_input.rb +6 -1
  13. data/lib/metronome_sdk/internal/type/hash_of.rb +6 -1
  14. data/lib/metronome_sdk/internal/type/union.rb +17 -9
  15. data/lib/metronome_sdk/internal/type/unknown.rb +7 -1
  16. data/lib/metronome_sdk/internal/util.rb +8 -9
  17. data/lib/metronome_sdk/models/base_usage_filter.rb +27 -0
  18. data/lib/metronome_sdk/models/commit.rb +1053 -0
  19. data/lib/metronome_sdk/models/contract_without_amendments.rb +2043 -0
  20. data/lib/metronome_sdk/models/credit.rb +677 -0
  21. data/lib/metronome_sdk/models/credit_type_data.rb +21 -0
  22. data/lib/metronome_sdk/models/discount.rb +68 -0
  23. data/lib/metronome_sdk/models/event_type_filter.rb +33 -0
  24. data/lib/metronome_sdk/models/id.rb +15 -0
  25. data/lib/metronome_sdk/models/override.rb +381 -0
  26. data/lib/metronome_sdk/models/pro_service.rb +73 -0
  27. data/lib/metronome_sdk/models/property_filter.rb +52 -0
  28. data/lib/metronome_sdk/models/rate.rb +101 -0
  29. data/lib/metronome_sdk/models/schedule_duration.rb +50 -0
  30. data/lib/metronome_sdk/models/schedule_point_in_time.rb +62 -0
  31. data/lib/metronome_sdk/models/scheduled_charge.rb +76 -0
  32. data/lib/metronome_sdk/models/tier.rb +21 -0
  33. data/lib/metronome_sdk/models/v1/alert_archive_response.rb +3 -14
  34. data/lib/metronome_sdk/models/v1/alert_create_params.rb +4 -1
  35. data/lib/metronome_sdk/models/v1/alert_create_response.rb +3 -14
  36. data/lib/metronome_sdk/models/v1/billable_metric_archive_params.rb +2 -8
  37. data/lib/metronome_sdk/models/v1/billable_metric_archive_response.rb +3 -14
  38. data/lib/metronome_sdk/models/v1/billable_metric_create_params.rb +6 -86
  39. data/lib/metronome_sdk/models/v1/billable_metric_create_response.rb +3 -14
  40. data/lib/metronome_sdk/models/v1/billable_metric_list_response.rb +6 -85
  41. data/lib/metronome_sdk/models/v1/billable_metric_retrieve_response.rb +8 -85
  42. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +312 -35
  43. data/lib/metronome_sdk/models/v1/contract_amend_response.rb +3 -14
  44. data/lib/metronome_sdk/models/v1/contract_archive_response.rb +3 -14
  45. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_response.rb +3 -1276
  46. data/lib/metronome_sdk/models/v1/contract_create_params.rb +792 -104
  47. data/lib/metronome_sdk/models/v1/contract_create_response.rb +3 -14
  48. data/lib/metronome_sdk/models/v1/contract_list_balances_params.rb +9 -1
  49. data/lib/metronome_sdk/models/v1/contract_list_balances_response.rb +5 -1645
  50. data/lib/metronome_sdk/models/v1/contract_list_response.rb +253 -10692
  51. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rb +9 -295
  52. data/lib/metronome_sdk/models/v1/contract_retrieve_response.rb +254 -10721
  53. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rb +3 -1276
  54. data/lib/metronome_sdk/models/v1/contract_update_end_date_response.rb +3 -14
  55. data/lib/metronome_sdk/models/v1/contracts/product_archive_response.rb +3 -14
  56. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +6 -97
  57. data/lib/metronome_sdk/models/v1/contracts/product_create_response.rb +3 -14
  58. data/lib/metronome_sdk/models/v1/contracts/product_list_item_state.rb +148 -0
  59. data/lib/metronome_sdk/models/v1/contracts/product_list_response.rb +12 -561
  60. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_params.rb +2 -8
  61. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_response.rb +14 -559
  62. data/lib/metronome_sdk/models/v1/contracts/product_update_params.rb +6 -97
  63. data/lib/metronome_sdk/models/v1/contracts/product_update_response.rb +3 -14
  64. data/lib/metronome_sdk/models/v1/contracts/quantity_conversion.rb +57 -0
  65. data/lib/metronome_sdk/models/v1/contracts/quantity_rounding.rb +45 -0
  66. data/lib/metronome_sdk/models/v1/contracts/rate_card_archive_params.rb +2 -8
  67. data/lib/metronome_sdk/models/v1/contracts/rate_card_archive_response.rb +3 -14
  68. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_response.rb +3 -14
  69. data/lib/metronome_sdk/models/v1/contracts/rate_card_list_response.rb +6 -42
  70. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rb +2 -8
  71. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rb +6 -159
  72. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rb +6 -42
  73. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_response.rb +3 -14
  74. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rb +3 -14
  75. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rb +3 -14
  76. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +6 -44
  77. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rb +3 -16
  78. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +6 -44
  79. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +9 -61
  80. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rb +6 -158
  81. data/lib/metronome_sdk/models/v1/credit_grant_create_params.rb +5 -77
  82. data/lib/metronome_sdk/models/v1/credit_grant_create_response.rb +3 -14
  83. data/lib/metronome_sdk/models/v1/credit_grant_edit_response.rb +3 -14
  84. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_params.rb +20 -1
  85. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_response.rb +11 -153
  86. data/lib/metronome_sdk/models/v1/credit_grant_list_response.rb +14 -175
  87. data/lib/metronome_sdk/models/v1/credit_grant_void_response.rb +3 -14
  88. data/lib/metronome_sdk/models/v1/credit_ledger_entry.rb +69 -0
  89. data/lib/metronome_sdk/models/v1/customer.rb +53 -0
  90. data/lib/metronome_sdk/models/v1/customer_archive_params.rb +2 -8
  91. data/lib/metronome_sdk/models/v1/customer_archive_response.rb +3 -14
  92. data/lib/metronome_sdk/models/v1/customer_create_response.rb +3 -50
  93. data/lib/metronome_sdk/models/v1/{customer_list_response.rb → customer_detail.rb} +14 -15
  94. data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_response.rb +6 -86
  95. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +115 -0
  96. data/lib/metronome_sdk/models/v1/customer_preview_events_response.rb +18 -0
  97. data/lib/metronome_sdk/models/v1/customer_retrieve_response.rb +3 -126
  98. data/lib/metronome_sdk/models/v1/customer_set_name_response.rb +3 -50
  99. data/lib/metronome_sdk/models/v1/customers/alert_list_response.rb +5 -276
  100. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_response.rb +3 -279
  101. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +9 -1
  102. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +8 -6
  103. data/lib/metronome_sdk/models/v1/customers/commit_create_response.rb +3 -14
  104. data/lib/metronome_sdk/models/v1/customers/commit_list_params.rb +9 -1
  105. data/lib/metronome_sdk/models/v1/customers/commit_list_response.rb +3 -1047
  106. data/lib/metronome_sdk/models/v1/customers/commit_update_end_date_response.rb +3 -14
  107. data/lib/metronome_sdk/models/v1/customers/credit_create_response.rb +3 -14
  108. data/lib/metronome_sdk/models/v1/customers/credit_list_params.rb +9 -1
  109. data/lib/metronome_sdk/models/v1/customers/credit_list_response.rb +3 -593
  110. data/lib/metronome_sdk/models/v1/customers/credit_update_end_date_response.rb +3 -14
  111. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +270 -0
  112. data/lib/metronome_sdk/models/v1/customers/{invoice_list_response.rb → invoice.rb} +119 -303
  113. data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rb +2 -1271
  114. data/lib/metronome_sdk/models/v1/customers/invoice_retrieve_response.rb +3 -1276
  115. data/lib/metronome_sdk/models/v1/customers/plan_add_response.rb +3 -14
  116. data/lib/metronome_sdk/models/v1/customers/plan_list_response.rb +3 -21
  117. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +1 -0
  118. data/lib/metronome_sdk/models/v1/plan_detail.rb +200 -0
  119. data/lib/metronome_sdk/models/v1/plan_get_details_response.rb +3 -286
  120. data/lib/metronome_sdk/models/v1/plan_list_charges_response.rb +3 -20
  121. data/lib/metronome_sdk/models/v1/plan_list_customers_response.rb +3 -128
  122. data/lib/metronome_sdk/models/v1/rollover_amount_max_amount.rb +38 -0
  123. data/lib/metronome_sdk/models/v1/rollover_amount_max_percentage.rb +38 -0
  124. data/lib/metronome_sdk/models/v1/usage_search_params.rb +24 -0
  125. data/lib/metronome_sdk/models/v1/usage_search_response.rb +249 -0
  126. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +11 -8
  127. data/lib/metronome_sdk/models/v2/contract_edit_commit_response.rb +3 -14
  128. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +3 -2
  129. data/lib/metronome_sdk/models/v2/contract_edit_credit_response.rb +3 -14
  130. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +1127 -105
  131. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +3 -14
  132. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +577 -643
  133. data/lib/metronome_sdk/models/v2/contract_list_response.rb +917 -746
  134. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +917 -748
  135. data/lib/metronome_sdk/models.rb +36 -4
  136. data/lib/metronome_sdk/resources/v1/alerts.rb +1 -1
  137. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +2 -2
  138. data/lib/metronome_sdk/resources/v1/contracts/products.rb +4 -4
  139. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +1 -1
  140. data/lib/metronome_sdk/resources/v1/contracts.rb +11 -5
  141. data/lib/metronome_sdk/resources/v1/credit_grants.rb +4 -2
  142. data/lib/metronome_sdk/resources/v1/customers/commits.rb +5 -3
  143. data/lib/metronome_sdk/resources/v1/customers/credits.rb +3 -1
  144. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +2 -2
  145. data/lib/metronome_sdk/resources/v1/customers.rb +40 -2
  146. data/lib/metronome_sdk/resources/v1/usage.rb +25 -0
  147. data/lib/metronome_sdk/resources/v2/contracts.rb +11 -9
  148. data/lib/metronome_sdk/version.rb +1 -1
  149. data/lib/metronome_sdk.rb +31 -2
  150. data/rbi/metronome_sdk/errors.rbi +16 -0
  151. data/rbi/metronome_sdk/internal/type/boolean.rbi +2 -0
  152. data/rbi/metronome_sdk/internal/type/converter.rbi +15 -15
  153. data/rbi/metronome_sdk/internal/type/union.rbi +5 -0
  154. data/rbi/metronome_sdk/internal/type/unknown.rbi +2 -0
  155. data/rbi/metronome_sdk/internal/util.rbi +2 -0
  156. data/rbi/metronome_sdk/models/base_usage_filter.rbi +46 -0
  157. data/rbi/metronome_sdk/models/commit.rbi +2046 -0
  158. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +4260 -0
  159. data/rbi/metronome_sdk/models/credit.rbi +1314 -0
  160. data/rbi/metronome_sdk/models/credit_type_data.rbi +26 -0
  161. data/rbi/metronome_sdk/models/discount.rbi +106 -0
  162. data/rbi/metronome_sdk/models/event_type_filter.rbi +57 -0
  163. data/rbi/metronome_sdk/models/id.rbi +23 -0
  164. data/rbi/metronome_sdk/models/override.rbi +675 -0
  165. data/rbi/metronome_sdk/models/pro_service.rbi +98 -0
  166. data/rbi/metronome_sdk/models/property_filter.rbi +88 -0
  167. data/rbi/metronome_sdk/models/rate.rbi +155 -0
  168. data/rbi/metronome_sdk/models/schedule_duration.rbi +89 -0
  169. data/rbi/metronome_sdk/models/schedule_point_in_time.rbi +121 -0
  170. data/rbi/metronome_sdk/models/scheduled_charge.rbi +119 -0
  171. data/rbi/metronome_sdk/models/tier.rbi +29 -0
  172. data/rbi/metronome_sdk/models/v1/alert_archive_response.rbi +4 -37
  173. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +6 -0
  174. data/rbi/metronome_sdk/models/v1/alert_create_response.rbi +4 -37
  175. data/rbi/metronome_sdk/models/v1/billable_metric_archive_params.rbi +6 -12
  176. data/rbi/metronome_sdk/models/v1/billable_metric_archive_response.rbi +4 -44
  177. data/rbi/metronome_sdk/models/v1/billable_metric_create_params.rbi +8 -177
  178. data/rbi/metronome_sdk/models/v1/billable_metric_create_response.rbi +4 -43
  179. data/rbi/metronome_sdk/models/v1/billable_metric_list_response.rbi +8 -177
  180. data/rbi/metronome_sdk/models/v1/billable_metric_retrieve_response.rbi +8 -175
  181. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +712 -68
  182. data/rbi/metronome_sdk/models/v1/contract_amend_response.rbi +4 -37
  183. data/rbi/metronome_sdk/models/v1/contract_archive_response.rbi +4 -39
  184. data/rbi/metronome_sdk/models/v1/contract_create_historical_invoices_response.rbi +3 -2595
  185. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1738 -210
  186. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +4 -37
  187. data/rbi/metronome_sdk/models/v1/contract_list_balances_params.rbi +11 -0
  188. data/rbi/metronome_sdk/models/v1/contract_list_balances_response.rbi +3 -3366
  189. data/rbi/metronome_sdk/models/v1/contract_list_response.rbi +375 -22523
  190. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbi +12 -632
  191. data/rbi/metronome_sdk/models/v1/contract_retrieve_response.rbi +375 -22523
  192. data/rbi/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rbi +3 -2595
  193. data/rbi/metronome_sdk/models/v1/contract_update_end_date_response.rbi +4 -44
  194. data/rbi/metronome_sdk/models/v1/contracts/product_archive_response.rbi +4 -44
  195. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +8 -209
  196. data/rbi/metronome_sdk/models/v1/contracts/product_create_response.rbi +4 -44
  197. data/rbi/metronome_sdk/models/v1/contracts/product_list_item_state.rbi +237 -0
  198. data/rbi/metronome_sdk/models/v1/contracts/product_list_response.rbi +76 -1143
  199. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_params.rbi +3 -9
  200. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_response.rbi +76 -1137
  201. data/rbi/metronome_sdk/models/v1/contracts/product_update_params.rbi +8 -209
  202. data/rbi/metronome_sdk/models/v1/contracts/product_update_response.rbi +4 -44
  203. data/rbi/metronome_sdk/models/v1/contracts/quantity_conversion.rbi +111 -0
  204. data/rbi/metronome_sdk/models/v1/contracts/quantity_rounding.rbi +94 -0
  205. data/rbi/metronome_sdk/models/v1/contracts/rate_card_archive_params.rbi +3 -9
  206. data/rbi/metronome_sdk/models/v1/contracts/rate_card_archive_response.rbi +4 -44
  207. data/rbi/metronome_sdk/models/v1/contracts/rate_card_create_response.rbi +4 -44
  208. data/rbi/metronome_sdk/models/v1/contracts/rate_card_list_response.rbi +8 -74
  209. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rbi +3 -9
  210. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbi +8 -344
  211. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbi +8 -74
  212. data/rbi/metronome_sdk/models/v1/contracts/rate_card_update_response.rbi +4 -44
  213. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rbi +4 -44
  214. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rbi +4 -44
  215. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +8 -108
  216. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rbi +4 -45
  217. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +8 -108
  218. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +12 -149
  219. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbi +8 -344
  220. data/rbi/metronome_sdk/models/v1/credit_grant_create_params.rbi +8 -166
  221. data/rbi/metronome_sdk/models/v1/credit_grant_create_response.rbi +4 -41
  222. data/rbi/metronome_sdk/models/v1/credit_grant_edit_response.rbi +4 -39
  223. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_params.rbi +58 -0
  224. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_response.rbi +10 -231
  225. data/rbi/metronome_sdk/models/v1/credit_grant_list_response.rbi +14 -281
  226. data/rbi/metronome_sdk/models/v1/credit_grant_void_response.rbi +4 -39
  227. data/rbi/metronome_sdk/models/v1/credit_ledger_entry.rbi +90 -0
  228. data/rbi/metronome_sdk/models/v1/customer.rbi +74 -0
  229. data/rbi/metronome_sdk/models/v1/customer_archive_params.rbi +6 -12
  230. data/rbi/metronome_sdk/models/v1/customer_archive_response.rbi +4 -39
  231. data/rbi/metronome_sdk/models/v1/customer_create_response.rbi +6 -84
  232. data/rbi/metronome_sdk/models/v1/{customer_list_response.rbi → customer_detail.rbi} +19 -26
  233. data/rbi/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbi +8 -177
  234. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +214 -0
  235. data/rbi/metronome_sdk/models/v1/customer_preview_events_response.rbi +35 -0
  236. data/rbi/metronome_sdk/models/v1/customer_retrieve_response.rbi +6 -255
  237. data/rbi/metronome_sdk/models/v1/customer_set_name_response.rbi +6 -86
  238. data/rbi/metronome_sdk/models/v1/customers/alert_list_response.rbi +3 -623
  239. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_response.rbi +4 -622
  240. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +11 -0
  241. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +12 -8
  242. data/rbi/metronome_sdk/models/v1/customers/commit_create_response.rbi +4 -44
  243. data/rbi/metronome_sdk/models/v1/customers/commit_list_params.rbi +11 -0
  244. data/rbi/metronome_sdk/models/v1/customers/commit_list_response.rbi +3 -2164
  245. data/rbi/metronome_sdk/models/v1/customers/commit_update_end_date_response.rbi +4 -44
  246. data/rbi/metronome_sdk/models/v1/customers/credit_create_response.rbi +4 -44
  247. data/rbi/metronome_sdk/models/v1/customers/credit_list_params.rbi +11 -0
  248. data/rbi/metronome_sdk/models/v1/customers/credit_list_response.rbi +3 -1224
  249. data/rbi/metronome_sdk/models/v1/customers/credit_update_end_date_response.rbi +4 -44
  250. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +572 -0
  251. data/rbi/metronome_sdk/models/v1/customers/{invoice_list_response.rbi → invoice.rbi} +182 -589
  252. data/rbi/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rbi +4 -2561
  253. data/rbi/metronome_sdk/models/v1/customers/invoice_retrieve_response.rbi +6 -2612
  254. data/rbi/metronome_sdk/models/v1/customers/plan_add_response.rbi +4 -41
  255. data/rbi/metronome_sdk/models/v1/customers/plan_list_response.rbi +4 -39
  256. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +5 -0
  257. data/rbi/metronome_sdk/models/v1/plan_detail.rbi +349 -0
  258. data/rbi/metronome_sdk/models/v1/plan_get_details_response.rbi +6 -560
  259. data/rbi/metronome_sdk/models/v1/plan_list_charges_response.rbi +4 -37
  260. data/rbi/metronome_sdk/models/v1/plan_list_customers_response.rbi +4 -248
  261. data/rbi/metronome_sdk/models/v1/rollover_amount_max_amount.rbi +79 -0
  262. data/rbi/metronome_sdk/models/v1/rollover_amount_max_percentage.rbi +80 -0
  263. data/rbi/metronome_sdk/models/v1/usage_search_params.rbi +48 -0
  264. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +438 -0
  265. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +23 -23
  266. data/rbi/metronome_sdk/models/v2/contract_edit_commit_response.rbi +4 -41
  267. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +11 -15
  268. data/rbi/metronome_sdk/models/v2/contract_edit_credit_response.rbi +4 -41
  269. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +2463 -206
  270. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +4 -37
  271. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1381 -1550
  272. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +2017 -1466
  273. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +2017 -1466
  274. data/rbi/metronome_sdk/models.rbi +32 -0
  275. data/rbi/metronome_sdk/resources/v1/alerts.rbi +3 -0
  276. data/rbi/metronome_sdk/resources/v1/billable_metrics.rbi +2 -6
  277. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +4 -4
  278. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +1 -4
  279. data/rbi/metronome_sdk/resources/v1/contracts.rbi +13 -4
  280. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +4 -0
  281. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +9 -4
  282. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +3 -0
  283. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +1 -1
  284. data/rbi/metronome_sdk/resources/v1/customers.rbi +34 -3
  285. data/rbi/metronome_sdk/resources/v1/usage.rbi +17 -0
  286. data/rbi/metronome_sdk/resources/v2/contracts.rbi +24 -14
  287. data/sig/metronome_sdk/errors.rbs +9 -0
  288. data/sig/metronome_sdk/internal/type/converter.rbs +7 -1
  289. data/sig/metronome_sdk/models/base_usage_filter.rbs +28 -0
  290. data/sig/metronome_sdk/models/commit.rbs +1063 -0
  291. data/sig/metronome_sdk/models/contract_without_amendments.rbs +1828 -0
  292. data/sig/metronome_sdk/models/credit.rbs +686 -0
  293. data/sig/metronome_sdk/models/credit_type_data.rbs +15 -0
  294. data/sig/metronome_sdk/models/discount.rbs +63 -0
  295. data/sig/metronome_sdk/models/event_type_filter.rbs +26 -0
  296. data/sig/metronome_sdk/models/id.rbs +13 -0
  297. data/sig/metronome_sdk/models/override.rbs +399 -0
  298. data/sig/metronome_sdk/models/pro_service.rbs +61 -0
  299. data/sig/metronome_sdk/models/property_filter.rbs +41 -0
  300. data/sig/metronome_sdk/models/rate.rbs +94 -0
  301. data/sig/metronome_sdk/models/schedule_duration.rbs +56 -0
  302. data/sig/metronome_sdk/models/schedule_point_in_time.rbs +75 -0
  303. data/sig/metronome_sdk/models/scheduled_charge.rbs +70 -0
  304. data/sig/metronome_sdk/models/tier.rbs +17 -0
  305. data/sig/metronome_sdk/models/v1/alert_archive_response.rbs +4 -19
  306. data/sig/metronome_sdk/models/v1/alert_create_response.rbs +4 -19
  307. data/sig/metronome_sdk/models/v1/billable_metric_archive_params.rbs +4 -12
  308. data/sig/metronome_sdk/models/v1/billable_metric_archive_response.rbs +4 -19
  309. data/sig/metronome_sdk/models/v1/billable_metric_create_params.rbs +12 -73
  310. data/sig/metronome_sdk/models/v1/billable_metric_create_response.rbs +4 -19
  311. data/sig/metronome_sdk/models/v1/billable_metric_list_response.rbs +12 -73
  312. data/sig/metronome_sdk/models/v1/billable_metric_retrieve_response.rbs +12 -73
  313. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +291 -24
  314. data/sig/metronome_sdk/models/v1/contract_amend_response.rbs +4 -19
  315. data/sig/metronome_sdk/models/v1/contract_archive_response.rbs +4 -19
  316. data/sig/metronome_sdk/models/v1/contract_create_historical_invoices_response.rbs +4 -1291
  317. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +694 -84
  318. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +4 -19
  319. data/sig/metronome_sdk/models/v1/contract_list_balances_params.rbs +7 -0
  320. data/sig/metronome_sdk/models/v1/contract_list_balances_response.rbs +1 -1642
  321. data/sig/metronome_sdk/models/v1/contract_list_response.rbs +188 -10437
  322. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbs +15 -271
  323. data/sig/metronome_sdk/models/v1/contract_retrieve_response.rbs +188 -10437
  324. data/sig/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rbs +4 -1291
  325. data/sig/metronome_sdk/models/v1/contract_update_end_date_response.rbs +4 -19
  326. data/sig/metronome_sdk/models/v1/contracts/product_archive_response.rbs +4 -21
  327. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +8 -82
  328. data/sig/metronome_sdk/models/v1/contracts/product_create_response.rbs +4 -21
  329. data/sig/metronome_sdk/models/v1/contracts/product_list_item_state.rbs +121 -0
  330. data/sig/metronome_sdk/models/v1/contracts/product_list_response.rbs +16 -466
  331. data/sig/metronome_sdk/models/v1/contracts/product_retrieve_params.rbs +4 -12
  332. data/sig/metronome_sdk/models/v1/contracts/product_retrieve_response.rbs +16 -466
  333. data/sig/metronome_sdk/models/v1/contracts/product_update_params.rbs +8 -82
  334. data/sig/metronome_sdk/models/v1/contracts/product_update_response.rbs +4 -21
  335. data/sig/metronome_sdk/models/v1/contracts/quantity_conversion.rbs +47 -0
  336. data/sig/metronome_sdk/models/v1/contracts/quantity_rounding.rbs +41 -0
  337. data/sig/metronome_sdk/models/v1/contracts/rate_card_archive_params.rbs +4 -12
  338. data/sig/metronome_sdk/models/v1/contracts/rate_card_archive_response.rbs +4 -21
  339. data/sig/metronome_sdk/models/v1/contracts/rate_card_create_response.rbs +4 -21
  340. data/sig/metronome_sdk/models/v1/contracts/rate_card_list_response.rbs +10 -34
  341. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rbs +4 -12
  342. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbs +10 -144
  343. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbs +10 -34
  344. data/sig/metronome_sdk/models/v1/contracts/rate_card_update_response.rbs +4 -21
  345. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rbs +4 -21
  346. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rbs +4 -21
  347. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +12 -40
  348. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rbs +4 -21
  349. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +12 -40
  350. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +18 -58
  351. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbs +10 -144
  352. data/sig/metronome_sdk/models/v1/credit_grant_create_params.rbs +2 -66
  353. data/sig/metronome_sdk/models/v1/credit_grant_create_response.rbs +4 -19
  354. data/sig/metronome_sdk/models/v1/credit_grant_edit_response.rbs +4 -19
  355. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_params.rbs +20 -0
  356. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_response.rbs +12 -118
  357. data/sig/metronome_sdk/models/v1/credit_grant_list_response.rbs +16 -140
  358. data/sig/metronome_sdk/models/v1/credit_grant_void_response.rbs +4 -19
  359. data/sig/metronome_sdk/models/v1/credit_ledger_entry.rbs +52 -0
  360. data/sig/metronome_sdk/models/v1/customer.rbs +44 -0
  361. data/sig/metronome_sdk/models/v1/customer_archive_params.rbs +4 -12
  362. data/sig/metronome_sdk/models/v1/customer_archive_response.rbs +4 -19
  363. data/sig/metronome_sdk/models/v1/customer_create_response.rbs +4 -48
  364. data/sig/metronome_sdk/models/v1/{customer_list_response.rbs → customer_detail.rbs} +17 -17
  365. data/sig/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbs +12 -73
  366. data/sig/metronome_sdk/models/v1/customer_preview_events_params.rbs +105 -0
  367. data/sig/metronome_sdk/models/v1/customer_preview_events_response.rbs +16 -0
  368. data/sig/metronome_sdk/models/v1/customer_retrieve_response.rbs +4 -112
  369. data/sig/metronome_sdk/models/v1/customer_set_name_response.rbs +4 -48
  370. data/sig/metronome_sdk/models/v1/customers/alert_list_response.rbs +4 -243
  371. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_response.rbs +4 -247
  372. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +7 -0
  373. data/sig/metronome_sdk/models/v1/customers/commit_create_response.rbs +4 -21
  374. data/sig/metronome_sdk/models/v1/customers/commit_list_params.rbs +7 -0
  375. data/sig/metronome_sdk/models/v1/customers/commit_list_response.rbs +4 -1057
  376. data/sig/metronome_sdk/models/v1/customers/commit_update_end_date_response.rbs +4 -21
  377. data/sig/metronome_sdk/models/v1/customers/credit_create_response.rbs +4 -21
  378. data/sig/metronome_sdk/models/v1/customers/credit_list_params.rbs +7 -0
  379. data/sig/metronome_sdk/models/v1/customers/credit_list_response.rbs +4 -596
  380. data/sig/metronome_sdk/models/v1/customers/credit_update_end_date_response.rbs +4 -21
  381. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +234 -0
  382. data/sig/metronome_sdk/models/v1/customers/{invoice_list_response.rbs → invoice.rbs} +147 -305
  383. data/sig/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rbs +8 -1278
  384. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_response.rbs +4 -1294
  385. data/sig/metronome_sdk/models/v1/customers/plan_add_response.rbs +4 -19
  386. data/sig/metronome_sdk/models/v1/customers/plan_list_response.rbs +4 -16
  387. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +2 -1
  388. data/sig/metronome_sdk/models/v1/plan_detail.rbs +203 -0
  389. data/sig/metronome_sdk/models/v1/plan_get_details_response.rbs +4 -267
  390. data/sig/metronome_sdk/models/v1/plan_list_charges_response.rbs +4 -16
  391. data/sig/metronome_sdk/models/v1/plan_list_customers_response.rbs +4 -108
  392. data/sig/metronome_sdk/models/v1/rollover_amount_max_amount.rbs +37 -0
  393. data/sig/metronome_sdk/models/v1/rollover_amount_max_percentage.rbs +37 -0
  394. data/sig/metronome_sdk/models/v1/usage_search_params.rbs +26 -0
  395. data/sig/metronome_sdk/models/v1/usage_search_response.rbs +230 -0
  396. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +4 -8
  397. data/sig/metronome_sdk/models/v2/contract_edit_commit_response.rbs +4 -19
  398. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +4 -8
  399. data/sig/metronome_sdk/models/v2/contract_edit_credit_response.rbs +4 -19
  400. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +989 -77
  401. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +4 -19
  402. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +510 -655
  403. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +970 -809
  404. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +970 -809
  405. data/sig/metronome_sdk/models.rbs +32 -0
  406. data/sig/metronome_sdk/resources/v1/billable_metrics.rbs +2 -2
  407. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +4 -4
  408. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -1
  409. data/sig/metronome_sdk/resources/v1/contracts.rbs +4 -1
  410. data/sig/metronome_sdk/resources/v1/credit_grants.rbs +1 -0
  411. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +1 -0
  412. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +1 -0
  413. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -1
  414. data/sig/metronome_sdk/resources/v1/customers.rbs +9 -1
  415. data/sig/metronome_sdk/resources/v1/usage.rbs +5 -0
  416. data/sig/metronome_sdk/resources/v2/contracts.rbs +3 -2
  417. metadata +97 -10
@@ -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(
@@ -4277,6 +5036,24 @@ module MetronomeSDK
4277
5036
  sig { params(ending_before: Time).void }
4278
5037
  attr_writer :ending_before
4279
5038
 
5039
+ # Optional configuration for recurring commit/credit hierarchy access control
5040
+ sig do
5041
+ returns(
5042
+ T.nilable(
5043
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration
5044
+ )
5045
+ )
5046
+ end
5047
+ attr_reader :hierarchy_configuration
5048
+
5049
+ sig do
5050
+ params(
5051
+ hierarchy_configuration:
5052
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::OrHash
5053
+ ).void
5054
+ end
5055
+ attr_writer :hierarchy_configuration
5056
+
4280
5057
  # The amount the customer should be billed for the commit. Not required.
4281
5058
  sig do
4282
5059
  returns(
@@ -4423,6 +5200,8 @@ module MetronomeSDK
4423
5200
  applicable_product_tags: T::Array[String],
4424
5201
  description: String,
4425
5202
  ending_before: Time,
5203
+ hierarchy_configuration:
5204
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::OrHash,
4426
5205
  invoice_amount:
4427
5206
  MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount::OrHash,
4428
5207
  name: String,
@@ -4461,6 +5240,8 @@ module MetronomeSDK
4461
5240
  description: nil,
4462
5241
  # Determines when the contract will stop creating recurring commits. optional
4463
5242
  ending_before: nil,
5243
+ # Optional configuration for recurring commit/credit hierarchy access control
5244
+ hierarchy_configuration: nil,
4464
5245
  # The amount the customer should be billed for the commit. Not required.
4465
5246
  invoice_amount: nil,
4466
5247
  # displayed on invoices. will be passed through to the individual commits
@@ -4507,6 +5288,8 @@ module MetronomeSDK
4507
5288
  applicable_product_tags: T::Array[String],
4508
5289
  description: String,
4509
5290
  ending_before: Time,
5291
+ hierarchy_configuration:
5292
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration,
4510
5293
  invoice_amount:
4511
5294
  MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount,
4512
5295
  name: String,
@@ -4541,26 +5324,37 @@ module MetronomeSDK
4541
5324
  sig { returns(String) }
4542
5325
  attr_accessor :credit_type_id
4543
5326
 
4544
- sig { returns(Float) }
4545
- attr_accessor :quantity
4546
-
4547
5327
  sig { returns(Float) }
4548
5328
  attr_accessor :unit_price
4549
5329
 
4550
- # The amount of commit to grant.
4551
- sig do
4552
- params(
4553
- credit_type_id: String,
4554
- quantity: Float,
4555
- unit_price: Float
5330
+ # This field is currently required. Upcoming recurring commit/credit configuration
5331
+ # options will allow it to be optional.
5332
+ sig { returns(T.nilable(Float)) }
5333
+ attr_reader :quantity
5334
+
5335
+ sig { params(quantity: Float).void }
5336
+ attr_writer :quantity
5337
+
5338
+ # The amount of commit to grant.
5339
+ sig do
5340
+ params(
5341
+ credit_type_id: String,
5342
+ unit_price: Float,
5343
+ quantity: Float
4556
5344
  ).returns(T.attached_class)
4557
5345
  end
4558
- def self.new(credit_type_id:, quantity:, unit_price:)
5346
+ def self.new(
5347
+ credit_type_id:,
5348
+ unit_price:,
5349
+ # This field is currently required. Upcoming recurring commit/credit configuration
5350
+ # options will allow it to be optional.
5351
+ quantity: nil
5352
+ )
4559
5353
  end
4560
5354
 
4561
5355
  sig do
4562
5356
  override.returns(
4563
- { credit_type_id: String, quantity: Float, unit_price: Float }
5357
+ { credit_type_id: String, unit_price: Float, quantity: Float }
4564
5358
  )
4565
5359
  end
4566
5360
  def to_hash
@@ -4651,6 +5445,282 @@ module MetronomeSDK
4651
5445
  end
4652
5446
  end
4653
5447
 
5448
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
5449
+ OrHash =
5450
+ T.type_alias do
5451
+ T.any(
5452
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration,
5453
+ MetronomeSDK::Internal::AnyHash
5454
+ )
5455
+ end
5456
+
5457
+ sig do
5458
+ returns(
5459
+ T.any(
5460
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5461
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5462
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
5463
+ )
5464
+ )
5465
+ end
5466
+ attr_accessor :child_access
5467
+
5468
+ # Optional configuration for recurring commit/credit hierarchy access control
5469
+ sig do
5470
+ params(
5471
+ child_access:
5472
+ T.any(
5473
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
5474
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
5475
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
5476
+ )
5477
+ ).returns(T.attached_class)
5478
+ end
5479
+ def self.new(child_access:)
5480
+ end
5481
+
5482
+ sig do
5483
+ override.returns(
5484
+ {
5485
+ child_access:
5486
+ T.any(
5487
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5488
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5489
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
5490
+ )
5491
+ }
5492
+ )
5493
+ end
5494
+ def to_hash
5495
+ end
5496
+
5497
+ module ChildAccess
5498
+ extend MetronomeSDK::Internal::Type::Union
5499
+
5500
+ Variants =
5501
+ T.type_alias do
5502
+ T.any(
5503
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5504
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5505
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
5506
+ )
5507
+ end
5508
+
5509
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
5510
+ OrHash =
5511
+ T.type_alias do
5512
+ T.any(
5513
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5514
+ MetronomeSDK::Internal::AnyHash
5515
+ )
5516
+ end
5517
+
5518
+ sig do
5519
+ returns(
5520
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
5521
+ )
5522
+ end
5523
+ attr_accessor :type
5524
+
5525
+ sig do
5526
+ params(
5527
+ type:
5528
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
5529
+ ).returns(T.attached_class)
5530
+ end
5531
+ def self.new(type:)
5532
+ end
5533
+
5534
+ sig do
5535
+ override.returns(
5536
+ {
5537
+ type:
5538
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
5539
+ }
5540
+ )
5541
+ end
5542
+ def to_hash
5543
+ end
5544
+
5545
+ module Type
5546
+ extend MetronomeSDK::Internal::Type::Enum
5547
+
5548
+ TaggedSymbol =
5549
+ T.type_alias do
5550
+ T.all(
5551
+ Symbol,
5552
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
5553
+ )
5554
+ end
5555
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5556
+
5557
+ ALL =
5558
+ T.let(
5559
+ :ALL,
5560
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
5561
+ )
5562
+
5563
+ sig do
5564
+ override.returns(
5565
+ T::Array[
5566
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
5567
+ ]
5568
+ )
5569
+ end
5570
+ def self.values
5571
+ end
5572
+ end
5573
+ end
5574
+
5575
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
5576
+ OrHash =
5577
+ T.type_alias do
5578
+ T.any(
5579
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5580
+ MetronomeSDK::Internal::AnyHash
5581
+ )
5582
+ end
5583
+
5584
+ sig do
5585
+ returns(
5586
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
5587
+ )
5588
+ end
5589
+ attr_accessor :type
5590
+
5591
+ sig do
5592
+ params(
5593
+ type:
5594
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
5595
+ ).returns(T.attached_class)
5596
+ end
5597
+ def self.new(type:)
5598
+ end
5599
+
5600
+ sig do
5601
+ override.returns(
5602
+ {
5603
+ type:
5604
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
5605
+ }
5606
+ )
5607
+ end
5608
+ def to_hash
5609
+ end
5610
+
5611
+ module Type
5612
+ extend MetronomeSDK::Internal::Type::Enum
5613
+
5614
+ TaggedSymbol =
5615
+ T.type_alias do
5616
+ T.all(
5617
+ Symbol,
5618
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
5619
+ )
5620
+ end
5621
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5622
+
5623
+ NONE =
5624
+ T.let(
5625
+ :NONE,
5626
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
5627
+ )
5628
+
5629
+ sig do
5630
+ override.returns(
5631
+ T::Array[
5632
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
5633
+ ]
5634
+ )
5635
+ end
5636
+ def self.values
5637
+ end
5638
+ end
5639
+ end
5640
+
5641
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
5642
+ OrHash =
5643
+ T.type_alias do
5644
+ T.any(
5645
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
5646
+ MetronomeSDK::Internal::AnyHash
5647
+ )
5648
+ end
5649
+
5650
+ sig { returns(T::Array[String]) }
5651
+ attr_accessor :contract_ids
5652
+
5653
+ sig do
5654
+ returns(
5655
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
5656
+ )
5657
+ end
5658
+ attr_accessor :type
5659
+
5660
+ sig do
5661
+ params(
5662
+ contract_ids: T::Array[String],
5663
+ type:
5664
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
5665
+ ).returns(T.attached_class)
5666
+ end
5667
+ def self.new(contract_ids:, type:)
5668
+ end
5669
+
5670
+ sig do
5671
+ override.returns(
5672
+ {
5673
+ contract_ids: T::Array[String],
5674
+ type:
5675
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
5676
+ }
5677
+ )
5678
+ end
5679
+ def to_hash
5680
+ end
5681
+
5682
+ module Type
5683
+ extend MetronomeSDK::Internal::Type::Enum
5684
+
5685
+ TaggedSymbol =
5686
+ T.type_alias do
5687
+ T.all(
5688
+ Symbol,
5689
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
5690
+ )
5691
+ end
5692
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5693
+
5694
+ CONTRACT_IDS =
5695
+ T.let(
5696
+ :CONTRACT_IDS,
5697
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
5698
+ )
5699
+
5700
+ sig do
5701
+ override.returns(
5702
+ T::Array[
5703
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
5704
+ ]
5705
+ )
5706
+ end
5707
+ def self.values
5708
+ end
5709
+ end
5710
+ end
5711
+
5712
+ sig do
5713
+ override.returns(
5714
+ T::Array[
5715
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::Variants
5716
+ ]
5717
+ )
5718
+ end
5719
+ def self.variants
5720
+ end
5721
+ end
5722
+ end
5723
+
4654
5724
  class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
4655
5725
  OrHash =
4656
5726
  T.type_alias do
@@ -4973,6 +6043,24 @@ module MetronomeSDK
4973
6043
  sig { params(ending_before: Time).void }
4974
6044
  attr_writer :ending_before
4975
6045
 
6046
+ # Optional configuration for recurring commit/credit hierarchy access control
6047
+ sig do
6048
+ returns(
6049
+ T.nilable(
6050
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration
6051
+ )
6052
+ )
6053
+ end
6054
+ attr_reader :hierarchy_configuration
6055
+
6056
+ sig do
6057
+ params(
6058
+ hierarchy_configuration:
6059
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::OrHash
6060
+ ).void
6061
+ end
6062
+ attr_writer :hierarchy_configuration
6063
+
4976
6064
  # displayed on invoices. will be passed through to the individual commits
4977
6065
  sig { returns(T.nilable(String)) }
4978
6066
  attr_reader :name
@@ -5101,6 +6189,8 @@ module MetronomeSDK
5101
6189
  applicable_product_tags: T::Array[String],
5102
6190
  description: String,
5103
6191
  ending_before: Time,
6192
+ hierarchy_configuration:
6193
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::OrHash,
5104
6194
  name: String,
5105
6195
  netsuite_sales_order_id: String,
5106
6196
  proration:
@@ -5137,6 +6227,8 @@ module MetronomeSDK
5137
6227
  description: nil,
5138
6228
  # Determines when the contract will stop creating recurring commits. optional
5139
6229
  ending_before: nil,
6230
+ # Optional configuration for recurring commit/credit hierarchy access control
6231
+ hierarchy_configuration: nil,
5140
6232
  # displayed on invoices. will be passed through to the individual commits
5141
6233
  name: nil,
5142
6234
  # Will be passed down to the individual commits
@@ -5181,6 +6273,8 @@ module MetronomeSDK
5181
6273
  applicable_product_tags: T::Array[String],
5182
6274
  description: String,
5183
6275
  ending_before: Time,
6276
+ hierarchy_configuration:
6277
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration,
5184
6278
  name: String,
5185
6279
  netsuite_sales_order_id: String,
5186
6280
  proration:
@@ -5213,26 +6307,37 @@ module MetronomeSDK
5213
6307
  sig { returns(String) }
5214
6308
  attr_accessor :credit_type_id
5215
6309
 
5216
- sig { returns(Float) }
5217
- attr_accessor :quantity
5218
-
5219
6310
  sig { returns(Float) }
5220
6311
  attr_accessor :unit_price
5221
6312
 
6313
+ # This field is currently required. Upcoming recurring commit/credit configuration
6314
+ # options will allow it to be optional.
6315
+ sig { returns(T.nilable(Float)) }
6316
+ attr_reader :quantity
6317
+
6318
+ sig { params(quantity: Float).void }
6319
+ attr_writer :quantity
6320
+
5222
6321
  # The amount of commit to grant.
5223
6322
  sig do
5224
6323
  params(
5225
6324
  credit_type_id: String,
5226
- quantity: Float,
5227
- unit_price: Float
6325
+ unit_price: Float,
6326
+ quantity: Float
5228
6327
  ).returns(T.attached_class)
5229
6328
  end
5230
- def self.new(credit_type_id:, quantity:, unit_price:)
6329
+ def self.new(
6330
+ credit_type_id:,
6331
+ unit_price:,
6332
+ # This field is currently required. Upcoming recurring commit/credit configuration
6333
+ # options will allow it to be optional.
6334
+ quantity: nil
6335
+ )
5231
6336
  end
5232
6337
 
5233
6338
  sig do
5234
6339
  override.returns(
5235
- { credit_type_id: String, quantity: Float, unit_price: Float }
6340
+ { credit_type_id: String, unit_price: Float, quantity: Float }
5236
6341
  )
5237
6342
  end
5238
6343
  def to_hash
@@ -5323,6 +6428,282 @@ module MetronomeSDK
5323
6428
  end
5324
6429
  end
5325
6430
 
6431
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
6432
+ OrHash =
6433
+ T.type_alias do
6434
+ T.any(
6435
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration,
6436
+ MetronomeSDK::Internal::AnyHash
6437
+ )
6438
+ end
6439
+
6440
+ sig do
6441
+ returns(
6442
+ T.any(
6443
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6444
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6445
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
6446
+ )
6447
+ )
6448
+ end
6449
+ attr_accessor :child_access
6450
+
6451
+ # Optional configuration for recurring commit/credit hierarchy access control
6452
+ sig do
6453
+ params(
6454
+ child_access:
6455
+ T.any(
6456
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
6457
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
6458
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
6459
+ )
6460
+ ).returns(T.attached_class)
6461
+ end
6462
+ def self.new(child_access:)
6463
+ end
6464
+
6465
+ sig do
6466
+ override.returns(
6467
+ {
6468
+ child_access:
6469
+ T.any(
6470
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6471
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6472
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
6473
+ )
6474
+ }
6475
+ )
6476
+ end
6477
+ def to_hash
6478
+ end
6479
+
6480
+ module ChildAccess
6481
+ extend MetronomeSDK::Internal::Type::Union
6482
+
6483
+ Variants =
6484
+ T.type_alias do
6485
+ T.any(
6486
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6487
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6488
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
6489
+ )
6490
+ end
6491
+
6492
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
6493
+ OrHash =
6494
+ T.type_alias do
6495
+ T.any(
6496
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6497
+ MetronomeSDK::Internal::AnyHash
6498
+ )
6499
+ end
6500
+
6501
+ sig do
6502
+ returns(
6503
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
6504
+ )
6505
+ end
6506
+ attr_accessor :type
6507
+
6508
+ sig do
6509
+ params(
6510
+ type:
6511
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
6512
+ ).returns(T.attached_class)
6513
+ end
6514
+ def self.new(type:)
6515
+ end
6516
+
6517
+ sig do
6518
+ override.returns(
6519
+ {
6520
+ type:
6521
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
6522
+ }
6523
+ )
6524
+ end
6525
+ def to_hash
6526
+ end
6527
+
6528
+ module Type
6529
+ extend MetronomeSDK::Internal::Type::Enum
6530
+
6531
+ TaggedSymbol =
6532
+ T.type_alias do
6533
+ T.all(
6534
+ Symbol,
6535
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
6536
+ )
6537
+ end
6538
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6539
+
6540
+ ALL =
6541
+ T.let(
6542
+ :ALL,
6543
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
6544
+ )
6545
+
6546
+ sig do
6547
+ override.returns(
6548
+ T::Array[
6549
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
6550
+ ]
6551
+ )
6552
+ end
6553
+ def self.values
6554
+ end
6555
+ end
6556
+ end
6557
+
6558
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
6559
+ OrHash =
6560
+ T.type_alias do
6561
+ T.any(
6562
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6563
+ MetronomeSDK::Internal::AnyHash
6564
+ )
6565
+ end
6566
+
6567
+ sig do
6568
+ returns(
6569
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
6570
+ )
6571
+ end
6572
+ attr_accessor :type
6573
+
6574
+ sig do
6575
+ params(
6576
+ type:
6577
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
6578
+ ).returns(T.attached_class)
6579
+ end
6580
+ def self.new(type:)
6581
+ end
6582
+
6583
+ sig do
6584
+ override.returns(
6585
+ {
6586
+ type:
6587
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
6588
+ }
6589
+ )
6590
+ end
6591
+ def to_hash
6592
+ end
6593
+
6594
+ module Type
6595
+ extend MetronomeSDK::Internal::Type::Enum
6596
+
6597
+ TaggedSymbol =
6598
+ T.type_alias do
6599
+ T.all(
6600
+ Symbol,
6601
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
6602
+ )
6603
+ end
6604
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6605
+
6606
+ NONE =
6607
+ T.let(
6608
+ :NONE,
6609
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
6610
+ )
6611
+
6612
+ sig do
6613
+ override.returns(
6614
+ T::Array[
6615
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
6616
+ ]
6617
+ )
6618
+ end
6619
+ def self.values
6620
+ end
6621
+ end
6622
+ end
6623
+
6624
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
6625
+ OrHash =
6626
+ T.type_alias do
6627
+ T.any(
6628
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
6629
+ MetronomeSDK::Internal::AnyHash
6630
+ )
6631
+ end
6632
+
6633
+ sig { returns(T::Array[String]) }
6634
+ attr_accessor :contract_ids
6635
+
6636
+ sig do
6637
+ returns(
6638
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
6639
+ )
6640
+ end
6641
+ attr_accessor :type
6642
+
6643
+ sig do
6644
+ params(
6645
+ contract_ids: T::Array[String],
6646
+ type:
6647
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
6648
+ ).returns(T.attached_class)
6649
+ end
6650
+ def self.new(contract_ids:, type:)
6651
+ end
6652
+
6653
+ sig do
6654
+ override.returns(
6655
+ {
6656
+ contract_ids: T::Array[String],
6657
+ type:
6658
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
6659
+ }
6660
+ )
6661
+ end
6662
+ def to_hash
6663
+ end
6664
+
6665
+ module Type
6666
+ extend MetronomeSDK::Internal::Type::Enum
6667
+
6668
+ TaggedSymbol =
6669
+ T.type_alias do
6670
+ T.all(
6671
+ Symbol,
6672
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
6673
+ )
6674
+ end
6675
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6676
+
6677
+ CONTRACT_IDS =
6678
+ T.let(
6679
+ :CONTRACT_IDS,
6680
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
6681
+ )
6682
+
6683
+ sig do
6684
+ override.returns(
6685
+ T::Array[
6686
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
6687
+ ]
6688
+ )
6689
+ end
6690
+ def self.values
6691
+ end
6692
+ end
6693
+ end
6694
+
6695
+ sig do
6696
+ override.returns(
6697
+ T::Array[
6698
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::Variants
6699
+ ]
6700
+ )
6701
+ end
6702
+ def self.variants
6703
+ end
6704
+ end
6705
+ end
6706
+
5326
6707
  # Determines whether the first and last commit will be prorated. If not provided,
5327
6708
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
5328
6709
  module Proration
@@ -6430,7 +7811,25 @@ module MetronomeSDK
6430
7811
  end
6431
7812
  attr_accessor :payment_gate_type
6432
7813
 
6433
- # Only applicable if using Stripe as your payment gateway through Metronome.
7814
+ # Only applicable if using PRECALCULATED as your tax type.
7815
+ sig do
7816
+ returns(
7817
+ T.nilable(
7818
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
7819
+ )
7820
+ )
7821
+ end
7822
+ attr_reader :precalculated_tax_config
7823
+
7824
+ sig do
7825
+ params(
7826
+ precalculated_tax_config:
7827
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
7828
+ ).void
7829
+ end
7830
+ attr_writer :precalculated_tax_config
7831
+
7832
+ # Only applicable if using STRIPE as your payment gateway type.
6434
7833
  sig do
6435
7834
  returns(
6436
7835
  T.nilable(
@@ -6472,6 +7871,8 @@ module MetronomeSDK
6472
7871
  params(
6473
7872
  payment_gate_type:
6474
7873
  MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
7874
+ precalculated_tax_config:
7875
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
6475
7876
  stripe_config:
6476
7877
  MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash,
6477
7878
  tax_type:
@@ -6484,7 +7885,9 @@ module MetronomeSDK
6484
7885
  # facilitate payment using your own payment integration. Select NONE if you do not
6485
7886
  # wish to payment gate the commit balance.
6486
7887
  payment_gate_type:,
6487
- # Only applicable if using Stripe as your payment gateway through Metronome.
7888
+ # Only applicable if using PRECALCULATED as your tax type.
7889
+ precalculated_tax_config: nil,
7890
+ # Only applicable if using STRIPE as your payment gateway type.
6488
7891
  stripe_config: nil,
6489
7892
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
6490
7893
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
@@ -6498,6 +7901,8 @@ module MetronomeSDK
6498
7901
  {
6499
7902
  payment_gate_type:
6500
7903
  MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
7904
+ precalculated_tax_config:
7905
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
6501
7906
  stripe_config:
6502
7907
  MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig,
6503
7908
  tax_type:
@@ -6551,6 +7956,49 @@ module MetronomeSDK
6551
7956
  end
6552
7957
  end
6553
7958
 
7959
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
7960
+ OrHash =
7961
+ T.type_alias do
7962
+ T.any(
7963
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
7964
+ MetronomeSDK::Internal::AnyHash
7965
+ )
7966
+ end
7967
+
7968
+ # Amount of tax to be applied. This should be in the same currency and
7969
+ # denomination as the commit's invoice schedule
7970
+ sig { returns(Float) }
7971
+ attr_accessor :tax_amount
7972
+
7973
+ # Name of the tax to be applied. This may be used in an invoice line item
7974
+ # description.
7975
+ sig { returns(T.nilable(String)) }
7976
+ attr_reader :tax_name
7977
+
7978
+ sig { params(tax_name: String).void }
7979
+ attr_writer :tax_name
7980
+
7981
+ # Only applicable if using PRECALCULATED as your tax type.
7982
+ sig do
7983
+ params(tax_amount: Float, tax_name: String).returns(
7984
+ T.attached_class
7985
+ )
7986
+ end
7987
+ def self.new(
7988
+ # Amount of tax to be applied. This should be in the same currency and
7989
+ # denomination as the commit's invoice schedule
7990
+ tax_amount:,
7991
+ # Name of the tax to be applied. This may be used in an invoice line item
7992
+ # description.
7993
+ tax_name: nil
7994
+ )
7995
+ end
7996
+
7997
+ sig { override.returns({ tax_amount: Float, tax_name: String }) }
7998
+ def to_hash
7999
+ end
8000
+ end
8001
+
6554
8002
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
6555
8003
  OrHash =
6556
8004
  T.type_alias do
@@ -6568,16 +8016,28 @@ module MetronomeSDK
6568
8016
  end
6569
8017
  attr_accessor :payment_type
6570
8018
 
6571
- # Only applicable if using Stripe as your payment gateway through Metronome.
8019
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
8020
+ # your payment type.
8021
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
8022
+ attr_reader :invoice_metadata
8023
+
8024
+ sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
8025
+ attr_writer :invoice_metadata
8026
+
8027
+ # Only applicable if using STRIPE as your payment gateway type.
6572
8028
  sig do
6573
8029
  params(
6574
8030
  payment_type:
6575
- MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
8031
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
8032
+ invoice_metadata: T::Hash[Symbol, String]
6576
8033
  ).returns(T.attached_class)
6577
8034
  end
6578
8035
  def self.new(
6579
8036
  # If left blank, will default to INVOICE
6580
- payment_type:
8037
+ payment_type:,
8038
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
8039
+ # your payment type.
8040
+ invoice_metadata: nil
6581
8041
  )
6582
8042
  end
6583
8043
 
@@ -6585,7 +8045,8 @@ module MetronomeSDK
6585
8045
  override.returns(
6586
8046
  {
6587
8047
  payment_type:
6588
- MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
8048
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
8049
+ invoice_metadata: T::Hash[Symbol, String]
6589
8050
  }
6590
8051
  )
6591
8052
  end
@@ -6653,6 +8114,16 @@ module MetronomeSDK
6653
8114
  :STRIPE,
6654
8115
  MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
6655
8116
  )
8117
+ ANROK =
8118
+ T.let(
8119
+ :ANROK,
8120
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
8121
+ )
8122
+ PRECALCULATED =
8123
+ T.let(
8124
+ :PRECALCULATED,
8125
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
8126
+ )
6656
8127
 
6657
8128
  sig do
6658
8129
  override.returns(
@@ -7155,16 +8626,36 @@ module MetronomeSDK
7155
8626
  end
7156
8627
  attr_writer :access_schedule
7157
8628
 
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.
8629
+ # Which products the commit applies to. If applicable_product_ids,
8630
+ # applicable_product_tags or specifiers are not provided, the commit applies to
8631
+ # all products.
7160
8632
  sig { returns(T.nilable(T::Array[String])) }
7161
8633
  attr_accessor :applicable_product_ids
7162
8634
 
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.
8635
+ # Which tags the commit applies to. If applicable_product_ids,
8636
+ # applicable_product_tags or specifiers are not provided, the commit applies to
8637
+ # all products.
7165
8638
  sig { returns(T.nilable(T::Array[String])) }
7166
8639
  attr_accessor :applicable_product_tags
7167
8640
 
8641
+ # Optional configuration for commit hierarchy access control
8642
+ sig do
8643
+ returns(
8644
+ T.nilable(
8645
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration
8646
+ )
8647
+ )
8648
+ end
8649
+ attr_reader :hierarchy_configuration
8650
+
8651
+ sig do
8652
+ params(
8653
+ hierarchy_configuration:
8654
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::OrHash
8655
+ ).void
8656
+ end
8657
+ attr_writer :hierarchy_configuration
8658
+
7168
8659
  sig do
7169
8660
  returns(
7170
8661
  T.nilable(
@@ -7201,6 +8692,8 @@ module MetronomeSDK
7201
8692
  MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::OrHash,
7202
8693
  applicable_product_ids: T.nilable(T::Array[String]),
7203
8694
  applicable_product_tags: T.nilable(T::Array[String]),
8695
+ hierarchy_configuration:
8696
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::OrHash,
7204
8697
  invoice_schedule:
7205
8698
  MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::OrHash,
7206
8699
  netsuite_sales_order_id: T.nilable(String),
@@ -7211,12 +8704,16 @@ module MetronomeSDK
7211
8704
  def self.new(
7212
8705
  commit_id:,
7213
8706
  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.
8707
+ # Which products the commit applies to. If applicable_product_ids,
8708
+ # applicable_product_tags or specifiers are not provided, the commit applies to
8709
+ # all products.
7216
8710
  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.
8711
+ # Which tags the commit applies to. If applicable_product_ids,
8712
+ # applicable_product_tags or specifiers are not provided, the commit applies to
8713
+ # all products.
7219
8714
  applicable_product_tags: nil,
8715
+ # Optional configuration for commit hierarchy access control
8716
+ hierarchy_configuration: nil,
7220
8717
  invoice_schedule: nil,
7221
8718
  netsuite_sales_order_id: nil,
7222
8719
  product_id: nil,
@@ -7232,6 +8729,8 @@ module MetronomeSDK
7232
8729
  MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule,
7233
8730
  applicable_product_ids: T.nilable(T::Array[String]),
7234
8731
  applicable_product_tags: T.nilable(T::Array[String]),
8732
+ hierarchy_configuration:
8733
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration,
7235
8734
  invoice_schedule:
7236
8735
  MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule,
7237
8736
  netsuite_sales_order_id: T.nilable(String),
@@ -7478,6 +8977,282 @@ module MetronomeSDK
7478
8977
  end
7479
8978
  end
7480
8979
 
8980
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
8981
+ OrHash =
8982
+ T.type_alias do
8983
+ T.any(
8984
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration,
8985
+ MetronomeSDK::Internal::AnyHash
8986
+ )
8987
+ end
8988
+
8989
+ sig do
8990
+ returns(
8991
+ T.any(
8992
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
8993
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
8994
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
8995
+ )
8996
+ )
8997
+ end
8998
+ attr_accessor :child_access
8999
+
9000
+ # Optional configuration for commit hierarchy access control
9001
+ sig do
9002
+ params(
9003
+ child_access:
9004
+ T.any(
9005
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
9006
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
9007
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
9008
+ )
9009
+ ).returns(T.attached_class)
9010
+ end
9011
+ def self.new(child_access:)
9012
+ end
9013
+
9014
+ sig do
9015
+ override.returns(
9016
+ {
9017
+ child_access:
9018
+ T.any(
9019
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
9020
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
9021
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
9022
+ )
9023
+ }
9024
+ )
9025
+ end
9026
+ def to_hash
9027
+ end
9028
+
9029
+ module ChildAccess
9030
+ extend MetronomeSDK::Internal::Type::Union
9031
+
9032
+ Variants =
9033
+ T.type_alias do
9034
+ T.any(
9035
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
9036
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
9037
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
9038
+ )
9039
+ end
9040
+
9041
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
9042
+ OrHash =
9043
+ T.type_alias do
9044
+ T.any(
9045
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
9046
+ MetronomeSDK::Internal::AnyHash
9047
+ )
9048
+ end
9049
+
9050
+ sig do
9051
+ returns(
9052
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
9053
+ )
9054
+ end
9055
+ attr_accessor :type
9056
+
9057
+ sig do
9058
+ params(
9059
+ type:
9060
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
9061
+ ).returns(T.attached_class)
9062
+ end
9063
+ def self.new(type:)
9064
+ end
9065
+
9066
+ sig do
9067
+ override.returns(
9068
+ {
9069
+ type:
9070
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
9071
+ }
9072
+ )
9073
+ end
9074
+ def to_hash
9075
+ end
9076
+
9077
+ module Type
9078
+ extend MetronomeSDK::Internal::Type::Enum
9079
+
9080
+ TaggedSymbol =
9081
+ T.type_alias do
9082
+ T.all(
9083
+ Symbol,
9084
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
9085
+ )
9086
+ end
9087
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
9088
+
9089
+ ALL =
9090
+ T.let(
9091
+ :ALL,
9092
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
9093
+ )
9094
+
9095
+ sig do
9096
+ override.returns(
9097
+ T::Array[
9098
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
9099
+ ]
9100
+ )
9101
+ end
9102
+ def self.values
9103
+ end
9104
+ end
9105
+ end
9106
+
9107
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
9108
+ OrHash =
9109
+ T.type_alias do
9110
+ T.any(
9111
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
9112
+ MetronomeSDK::Internal::AnyHash
9113
+ )
9114
+ end
9115
+
9116
+ sig do
9117
+ returns(
9118
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
9119
+ )
9120
+ end
9121
+ attr_accessor :type
9122
+
9123
+ sig do
9124
+ params(
9125
+ type:
9126
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
9127
+ ).returns(T.attached_class)
9128
+ end
9129
+ def self.new(type:)
9130
+ end
9131
+
9132
+ sig do
9133
+ override.returns(
9134
+ {
9135
+ type:
9136
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
9137
+ }
9138
+ )
9139
+ end
9140
+ def to_hash
9141
+ end
9142
+
9143
+ module Type
9144
+ extend MetronomeSDK::Internal::Type::Enum
9145
+
9146
+ TaggedSymbol =
9147
+ T.type_alias do
9148
+ T.all(
9149
+ Symbol,
9150
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
9151
+ )
9152
+ end
9153
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
9154
+
9155
+ NONE =
9156
+ T.let(
9157
+ :NONE,
9158
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
9159
+ )
9160
+
9161
+ sig do
9162
+ override.returns(
9163
+ T::Array[
9164
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
9165
+ ]
9166
+ )
9167
+ end
9168
+ def self.values
9169
+ end
9170
+ end
9171
+ end
9172
+
9173
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
9174
+ OrHash =
9175
+ T.type_alias do
9176
+ T.any(
9177
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
9178
+ MetronomeSDK::Internal::AnyHash
9179
+ )
9180
+ end
9181
+
9182
+ sig { returns(T::Array[String]) }
9183
+ attr_accessor :contract_ids
9184
+
9185
+ sig do
9186
+ returns(
9187
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
9188
+ )
9189
+ end
9190
+ attr_accessor :type
9191
+
9192
+ sig do
9193
+ params(
9194
+ contract_ids: T::Array[String],
9195
+ type:
9196
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
9197
+ ).returns(T.attached_class)
9198
+ end
9199
+ def self.new(contract_ids:, type:)
9200
+ end
9201
+
9202
+ sig do
9203
+ override.returns(
9204
+ {
9205
+ contract_ids: T::Array[String],
9206
+ type:
9207
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
9208
+ }
9209
+ )
9210
+ end
9211
+ def to_hash
9212
+ end
9213
+
9214
+ module Type
9215
+ extend MetronomeSDK::Internal::Type::Enum
9216
+
9217
+ TaggedSymbol =
9218
+ T.type_alias do
9219
+ T.all(
9220
+ Symbol,
9221
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
9222
+ )
9223
+ end
9224
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
9225
+
9226
+ CONTRACT_IDS =
9227
+ T.let(
9228
+ :CONTRACT_IDS,
9229
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
9230
+ )
9231
+
9232
+ sig do
9233
+ override.returns(
9234
+ T::Array[
9235
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
9236
+ ]
9237
+ )
9238
+ end
9239
+ def self.values
9240
+ end
9241
+ end
9242
+ end
9243
+
9244
+ sig do
9245
+ override.returns(
9246
+ T::Array[
9247
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::Variants
9248
+ ]
9249
+ )
9250
+ end
9251
+ def self.variants
9252
+ end
9253
+ end
9254
+ end
9255
+
7481
9256
  class InvoiceSchedule < MetronomeSDK::Internal::Type::BaseModel
7482
9257
  OrHash =
7483
9258
  T.type_alias do
@@ -7775,16 +9550,36 @@ module MetronomeSDK
7775
9550
  end
7776
9551
  attr_writer :access_schedule
7777
9552
 
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.
9553
+ # Which products the commit applies to. If applicable_product_ids,
9554
+ # applicable_product_tags or specifiers are not provided, the commit applies to
9555
+ # all products.
7780
9556
  sig { returns(T.nilable(T::Array[String])) }
7781
9557
  attr_accessor :applicable_product_ids
7782
9558
 
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.
9559
+ # Which tags the commit applies to. If applicable_product_ids,
9560
+ # applicable_product_tags or specifiers are not provided, the commit applies to
9561
+ # all products.
7785
9562
  sig { returns(T.nilable(T::Array[String])) }
7786
9563
  attr_accessor :applicable_product_tags
7787
9564
 
9565
+ # Optional configuration for commit hierarchy access control
9566
+ sig do
9567
+ returns(
9568
+ T.nilable(
9569
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration
9570
+ )
9571
+ )
9572
+ end
9573
+ attr_reader :hierarchy_configuration
9574
+
9575
+ sig do
9576
+ params(
9577
+ hierarchy_configuration:
9578
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::OrHash
9579
+ ).void
9580
+ end
9581
+ attr_writer :hierarchy_configuration
9582
+
7788
9583
  sig { returns(T.nilable(String)) }
7789
9584
  attr_accessor :netsuite_sales_order_id
7790
9585
 
@@ -7801,6 +9596,8 @@ module MetronomeSDK
7801
9596
  MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::OrHash,
7802
9597
  applicable_product_ids: T.nilable(T::Array[String]),
7803
9598
  applicable_product_tags: T.nilable(T::Array[String]),
9599
+ hierarchy_configuration:
9600
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::OrHash,
7804
9601
  netsuite_sales_order_id: T.nilable(String),
7805
9602
  product_id: String
7806
9603
  ).returns(T.attached_class)
@@ -7808,12 +9605,16 @@ module MetronomeSDK
7808
9605
  def self.new(
7809
9606
  credit_id:,
7810
9607
  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.
9608
+ # Which products the commit applies to. If applicable_product_ids,
9609
+ # applicable_product_tags or specifiers are not provided, the commit applies to
9610
+ # all products.
7813
9611
  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.
9612
+ # Which tags the commit applies to. If applicable_product_ids,
9613
+ # applicable_product_tags or specifiers are not provided, the commit applies to
9614
+ # all products.
7816
9615
  applicable_product_tags: nil,
9616
+ # Optional configuration for commit hierarchy access control
9617
+ hierarchy_configuration: nil,
7817
9618
  netsuite_sales_order_id: nil,
7818
9619
  product_id: nil
7819
9620
  )
@@ -7827,6 +9628,8 @@ module MetronomeSDK
7827
9628
  MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule,
7828
9629
  applicable_product_ids: T.nilable(T::Array[String]),
7829
9630
  applicable_product_tags: T.nilable(T::Array[String]),
9631
+ hierarchy_configuration:
9632
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration,
7830
9633
  netsuite_sales_order_id: T.nilable(String),
7831
9634
  product_id: String
7832
9635
  }
@@ -8069,6 +9872,282 @@ module MetronomeSDK
8069
9872
  end
8070
9873
  end
8071
9874
  end
9875
+
9876
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
9877
+ OrHash =
9878
+ T.type_alias do
9879
+ T.any(
9880
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration,
9881
+ MetronomeSDK::Internal::AnyHash
9882
+ )
9883
+ end
9884
+
9885
+ sig do
9886
+ returns(
9887
+ T.any(
9888
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
9889
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
9890
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
9891
+ )
9892
+ )
9893
+ end
9894
+ attr_accessor :child_access
9895
+
9896
+ # Optional configuration for commit hierarchy access control
9897
+ sig do
9898
+ params(
9899
+ child_access:
9900
+ T.any(
9901
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
9902
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
9903
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
9904
+ )
9905
+ ).returns(T.attached_class)
9906
+ end
9907
+ def self.new(child_access:)
9908
+ end
9909
+
9910
+ sig do
9911
+ override.returns(
9912
+ {
9913
+ child_access:
9914
+ T.any(
9915
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
9916
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
9917
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
9918
+ )
9919
+ }
9920
+ )
9921
+ end
9922
+ def to_hash
9923
+ end
9924
+
9925
+ module ChildAccess
9926
+ extend MetronomeSDK::Internal::Type::Union
9927
+
9928
+ Variants =
9929
+ T.type_alias do
9930
+ T.any(
9931
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
9932
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
9933
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
9934
+ )
9935
+ end
9936
+
9937
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
9938
+ OrHash =
9939
+ T.type_alias do
9940
+ T.any(
9941
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
9942
+ MetronomeSDK::Internal::AnyHash
9943
+ )
9944
+ end
9945
+
9946
+ sig do
9947
+ returns(
9948
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
9949
+ )
9950
+ end
9951
+ attr_accessor :type
9952
+
9953
+ sig do
9954
+ params(
9955
+ type:
9956
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
9957
+ ).returns(T.attached_class)
9958
+ end
9959
+ def self.new(type:)
9960
+ end
9961
+
9962
+ sig do
9963
+ override.returns(
9964
+ {
9965
+ type:
9966
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
9967
+ }
9968
+ )
9969
+ end
9970
+ def to_hash
9971
+ end
9972
+
9973
+ module Type
9974
+ extend MetronomeSDK::Internal::Type::Enum
9975
+
9976
+ TaggedSymbol =
9977
+ T.type_alias do
9978
+ T.all(
9979
+ Symbol,
9980
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
9981
+ )
9982
+ end
9983
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
9984
+
9985
+ ALL =
9986
+ T.let(
9987
+ :ALL,
9988
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
9989
+ )
9990
+
9991
+ sig do
9992
+ override.returns(
9993
+ T::Array[
9994
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
9995
+ ]
9996
+ )
9997
+ end
9998
+ def self.values
9999
+ end
10000
+ end
10001
+ end
10002
+
10003
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
10004
+ OrHash =
10005
+ T.type_alias do
10006
+ T.any(
10007
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
10008
+ MetronomeSDK::Internal::AnyHash
10009
+ )
10010
+ end
10011
+
10012
+ sig do
10013
+ returns(
10014
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
10015
+ )
10016
+ end
10017
+ attr_accessor :type
10018
+
10019
+ sig do
10020
+ params(
10021
+ type:
10022
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
10023
+ ).returns(T.attached_class)
10024
+ end
10025
+ def self.new(type:)
10026
+ end
10027
+
10028
+ sig do
10029
+ override.returns(
10030
+ {
10031
+ type:
10032
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
10033
+ }
10034
+ )
10035
+ end
10036
+ def to_hash
10037
+ end
10038
+
10039
+ module Type
10040
+ extend MetronomeSDK::Internal::Type::Enum
10041
+
10042
+ TaggedSymbol =
10043
+ T.type_alias do
10044
+ T.all(
10045
+ Symbol,
10046
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
10047
+ )
10048
+ end
10049
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
10050
+
10051
+ NONE =
10052
+ T.let(
10053
+ :NONE,
10054
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
10055
+ )
10056
+
10057
+ sig do
10058
+ override.returns(
10059
+ T::Array[
10060
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
10061
+ ]
10062
+ )
10063
+ end
10064
+ def self.values
10065
+ end
10066
+ end
10067
+ end
10068
+
10069
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
10070
+ OrHash =
10071
+ T.type_alias do
10072
+ T.any(
10073
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
10074
+ MetronomeSDK::Internal::AnyHash
10075
+ )
10076
+ end
10077
+
10078
+ sig { returns(T::Array[String]) }
10079
+ attr_accessor :contract_ids
10080
+
10081
+ sig do
10082
+ returns(
10083
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
10084
+ )
10085
+ end
10086
+ attr_accessor :type
10087
+
10088
+ sig do
10089
+ params(
10090
+ contract_ids: T::Array[String],
10091
+ type:
10092
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
10093
+ ).returns(T.attached_class)
10094
+ end
10095
+ def self.new(contract_ids:, type:)
10096
+ end
10097
+
10098
+ sig do
10099
+ override.returns(
10100
+ {
10101
+ contract_ids: T::Array[String],
10102
+ type:
10103
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
10104
+ }
10105
+ )
10106
+ end
10107
+ def to_hash
10108
+ end
10109
+
10110
+ module Type
10111
+ extend MetronomeSDK::Internal::Type::Enum
10112
+
10113
+ TaggedSymbol =
10114
+ T.type_alias do
10115
+ T.all(
10116
+ Symbol,
10117
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
10118
+ )
10119
+ end
10120
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
10121
+
10122
+ CONTRACT_IDS =
10123
+ T.let(
10124
+ :CONTRACT_IDS,
10125
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
10126
+ )
10127
+
10128
+ sig do
10129
+ override.returns(
10130
+ T::Array[
10131
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
10132
+ ]
10133
+ )
10134
+ end
10135
+ def self.values
10136
+ end
10137
+ end
10138
+ end
10139
+
10140
+ sig do
10141
+ override.returns(
10142
+ T::Array[
10143
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::Variants
10144
+ ]
10145
+ )
10146
+ end
10147
+ def self.variants
10148
+ end
10149
+ end
10150
+ end
8072
10151
  end
8073
10152
 
8074
10153
  class UpdatePrepaidBalanceThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
@@ -8097,6 +10176,11 @@ module MetronomeSDK
8097
10176
  end
8098
10177
  attr_writer :commit
8099
10178
 
10179
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
10180
+ # commit amount will be in terms of this credit type instead of the fiat currency.
10181
+ sig { returns(T.nilable(String)) }
10182
+ attr_accessor :custom_credit_type_id
10183
+
8100
10184
  # When set to false, the contract will not be evaluated against the
8101
10185
  # threshold_amount. Toggling to true will result an immediate evaluation,
8102
10186
  # regardless of prior state.
@@ -8142,6 +10226,7 @@ module MetronomeSDK
8142
10226
  params(
8143
10227
  commit:
8144
10228
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::OrHash,
10229
+ custom_credit_type_id: T.nilable(String),
8145
10230
  is_enabled: T::Boolean,
8146
10231
  payment_gate_config:
8147
10232
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::OrHash,
@@ -8151,6 +10236,9 @@ module MetronomeSDK
8151
10236
  end
8152
10237
  def self.new(
8153
10238
  commit: nil,
10239
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
10240
+ # commit amount will be in terms of this credit type instead of the fiat currency.
10241
+ custom_credit_type_id: nil,
8154
10242
  # When set to false, the contract will not be evaluated against the
8155
10243
  # threshold_amount. Toggling to true will result an immediate evaluation,
8156
10244
  # regardless of prior state.
@@ -8169,6 +10257,7 @@ module MetronomeSDK
8169
10257
  {
8170
10258
  commit:
8171
10259
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit,
10260
+ custom_credit_type_id: T.nilable(String),
8172
10261
  is_enabled: T::Boolean,
8173
10262
  payment_gate_config:
8174
10263
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig,
@@ -8193,18 +10282,12 @@ module MetronomeSDK
8193
10282
  # and applicable_product_tags are not provided, the commit applies to all
8194
10283
  # products.
8195
10284
  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
10285
+ attr_accessor :applicable_product_ids
8200
10286
 
8201
10287
  # Which tags the threshold commit applies to. If both applicable_product_ids and
8202
10288
  # applicable_product_tags are not provided, the commit applies to all products.
8203
10289
  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
10290
+ attr_accessor :applicable_product_tags
8208
10291
 
8209
10292
  sig { returns(T.nilable(String)) }
8210
10293
  attr_reader :description
@@ -8241,29 +10324,21 @@ module MetronomeSDK
8241
10324
  )
8242
10325
  )
8243
10326
  end
8244
- attr_reader :specifiers
8245
-
8246
- sig do
8247
- params(
8248
- specifiers:
8249
- T::Array[
8250
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier::OrHash
8251
- ]
8252
- ).void
8253
- end
8254
- attr_writer :specifiers
10327
+ attr_accessor :specifiers
8255
10328
 
8256
10329
  sig do
8257
10330
  params(
8258
- applicable_product_ids: T::Array[String],
8259
- applicable_product_tags: T::Array[String],
10331
+ applicable_product_ids: T.nilable(T::Array[String]),
10332
+ applicable_product_tags: T.nilable(T::Array[String]),
8260
10333
  description: String,
8261
10334
  name: String,
8262
10335
  product_id: String,
8263
10336
  specifiers:
8264
- T::Array[
8265
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier::OrHash
8266
- ]
10337
+ T.nilable(
10338
+ T::Array[
10339
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier::OrHash
10340
+ ]
10341
+ )
8267
10342
  ).returns(T.attached_class)
8268
10343
  end
8269
10344
  def self.new(
@@ -8292,15 +10367,17 @@ module MetronomeSDK
8292
10367
  sig do
8293
10368
  override.returns(
8294
10369
  {
8295
- applicable_product_ids: T::Array[String],
8296
- applicable_product_tags: T::Array[String],
10370
+ applicable_product_ids: T.nilable(T::Array[String]),
10371
+ applicable_product_tags: T.nilable(T::Array[String]),
8297
10372
  description: String,
8298
10373
  name: String,
8299
10374
  product_id: String,
8300
10375
  specifiers:
8301
- T::Array[
8302
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier
8303
- ]
10376
+ T.nilable(
10377
+ T::Array[
10378
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier
10379
+ ]
10380
+ )
8304
10381
  }
8305
10382
  )
8306
10383
  end
@@ -8399,7 +10476,25 @@ module MetronomeSDK
8399
10476
  end
8400
10477
  attr_accessor :payment_gate_type
8401
10478
 
8402
- # Only applicable if using Stripe as your payment gateway through Metronome.
10479
+ # Only applicable if using PRECALCULATED as your tax type.
10480
+ sig do
10481
+ returns(
10482
+ T.nilable(
10483
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
10484
+ )
10485
+ )
10486
+ end
10487
+ attr_reader :precalculated_tax_config
10488
+
10489
+ sig do
10490
+ params(
10491
+ precalculated_tax_config:
10492
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
10493
+ ).void
10494
+ end
10495
+ attr_writer :precalculated_tax_config
10496
+
10497
+ # Only applicable if using STRIPE as your payment gateway type.
8403
10498
  sig do
8404
10499
  returns(
8405
10500
  T.nilable(
@@ -8441,6 +10536,8 @@ module MetronomeSDK
8441
10536
  params(
8442
10537
  payment_gate_type:
8443
10538
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
10539
+ precalculated_tax_config:
10540
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
8444
10541
  stripe_config:
8445
10542
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash,
8446
10543
  tax_type:
@@ -8453,7 +10550,9 @@ module MetronomeSDK
8453
10550
  # facilitate payment using your own payment integration. Select NONE if you do not
8454
10551
  # wish to payment gate the commit balance.
8455
10552
  payment_gate_type:,
8456
- # Only applicable if using Stripe as your payment gateway through Metronome.
10553
+ # Only applicable if using PRECALCULATED as your tax type.
10554
+ precalculated_tax_config: nil,
10555
+ # Only applicable if using STRIPE as your payment gateway type.
8457
10556
  stripe_config: nil,
8458
10557
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
8459
10558
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
@@ -8467,6 +10566,8 @@ module MetronomeSDK
8467
10566
  {
8468
10567
  payment_gate_type:
8469
10568
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
10569
+ precalculated_tax_config:
10570
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
8470
10571
  stripe_config:
8471
10572
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig,
8472
10573
  tax_type:
@@ -8520,6 +10621,49 @@ module MetronomeSDK
8520
10621
  end
8521
10622
  end
8522
10623
 
10624
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
10625
+ OrHash =
10626
+ T.type_alias do
10627
+ T.any(
10628
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
10629
+ MetronomeSDK::Internal::AnyHash
10630
+ )
10631
+ end
10632
+
10633
+ # Amount of tax to be applied. This should be in the same currency and
10634
+ # denomination as the commit's invoice schedule
10635
+ sig { returns(Float) }
10636
+ attr_accessor :tax_amount
10637
+
10638
+ # Name of the tax to be applied. This may be used in an invoice line item
10639
+ # description.
10640
+ sig { returns(T.nilable(String)) }
10641
+ attr_reader :tax_name
10642
+
10643
+ sig { params(tax_name: String).void }
10644
+ attr_writer :tax_name
10645
+
10646
+ # Only applicable if using PRECALCULATED as your tax type.
10647
+ sig do
10648
+ params(tax_amount: Float, tax_name: String).returns(
10649
+ T.attached_class
10650
+ )
10651
+ end
10652
+ def self.new(
10653
+ # Amount of tax to be applied. This should be in the same currency and
10654
+ # denomination as the commit's invoice schedule
10655
+ tax_amount:,
10656
+ # Name of the tax to be applied. This may be used in an invoice line item
10657
+ # description.
10658
+ tax_name: nil
10659
+ )
10660
+ end
10661
+
10662
+ sig { override.returns({ tax_amount: Float, tax_name: String }) }
10663
+ def to_hash
10664
+ end
10665
+ end
10666
+
8523
10667
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
8524
10668
  OrHash =
8525
10669
  T.type_alias do
@@ -8537,16 +10681,28 @@ module MetronomeSDK
8537
10681
  end
8538
10682
  attr_accessor :payment_type
8539
10683
 
8540
- # Only applicable if using Stripe as your payment gateway through Metronome.
10684
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
10685
+ # your payment type.
10686
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
10687
+ attr_reader :invoice_metadata
10688
+
10689
+ sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
10690
+ attr_writer :invoice_metadata
10691
+
10692
+ # Only applicable if using STRIPE as your payment gateway type.
8541
10693
  sig do
8542
10694
  params(
8543
10695
  payment_type:
8544
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
10696
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
10697
+ invoice_metadata: T::Hash[Symbol, String]
8545
10698
  ).returns(T.attached_class)
8546
10699
  end
8547
10700
  def self.new(
8548
10701
  # If left blank, will default to INVOICE
8549
- payment_type:
10702
+ payment_type:,
10703
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
10704
+ # your payment type.
10705
+ invoice_metadata: nil
8550
10706
  )
8551
10707
  end
8552
10708
 
@@ -8554,7 +10710,8 @@ module MetronomeSDK
8554
10710
  override.returns(
8555
10711
  {
8556
10712
  payment_type:
8557
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
10713
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
10714
+ invoice_metadata: T::Hash[Symbol, String]
8558
10715
  }
8559
10716
  )
8560
10717
  end
@@ -8622,6 +10779,16 @@ module MetronomeSDK
8622
10779
  :STRIPE,
8623
10780
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
8624
10781
  )
10782
+ ANROK =
10783
+ T.let(
10784
+ :ANROK,
10785
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
10786
+ )
10787
+ PRECALCULATED =
10788
+ T.let(
10789
+ :PRECALCULATED,
10790
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
10791
+ )
8625
10792
 
8626
10793
  sig do
8627
10794
  override.returns(
@@ -9386,7 +11553,25 @@ module MetronomeSDK
9386
11553
  end
9387
11554
  attr_accessor :payment_gate_type
9388
11555
 
9389
- # Only applicable if using Stripe as your payment gateway through Metronome.
11556
+ # Only applicable if using PRECALCULATED as your tax type.
11557
+ sig do
11558
+ returns(
11559
+ T.nilable(
11560
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
11561
+ )
11562
+ )
11563
+ end
11564
+ attr_reader :precalculated_tax_config
11565
+
11566
+ sig do
11567
+ params(
11568
+ precalculated_tax_config:
11569
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
11570
+ ).void
11571
+ end
11572
+ attr_writer :precalculated_tax_config
11573
+
11574
+ # Only applicable if using STRIPE as your payment gateway type.
9390
11575
  sig do
9391
11576
  returns(
9392
11577
  T.nilable(
@@ -9428,6 +11613,8 @@ module MetronomeSDK
9428
11613
  params(
9429
11614
  payment_gate_type:
9430
11615
  MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
11616
+ precalculated_tax_config:
11617
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
9431
11618
  stripe_config:
9432
11619
  MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash,
9433
11620
  tax_type:
@@ -9440,7 +11627,9 @@ module MetronomeSDK
9440
11627
  # facilitate payment using your own payment integration. Select NONE if you do not
9441
11628
  # wish to payment gate the commit balance.
9442
11629
  payment_gate_type:,
9443
- # Only applicable if using Stripe as your payment gateway through Metronome.
11630
+ # Only applicable if using PRECALCULATED as your tax type.
11631
+ precalculated_tax_config: nil,
11632
+ # Only applicable if using STRIPE as your payment gateway type.
9444
11633
  stripe_config: nil,
9445
11634
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
9446
11635
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
@@ -9454,6 +11643,8 @@ module MetronomeSDK
9454
11643
  {
9455
11644
  payment_gate_type:
9456
11645
  MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
11646
+ precalculated_tax_config:
11647
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
9457
11648
  stripe_config:
9458
11649
  MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig,
9459
11650
  tax_type:
@@ -9507,6 +11698,49 @@ module MetronomeSDK
9507
11698
  end
9508
11699
  end
9509
11700
 
11701
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
11702
+ OrHash =
11703
+ T.type_alias do
11704
+ T.any(
11705
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
11706
+ MetronomeSDK::Internal::AnyHash
11707
+ )
11708
+ end
11709
+
11710
+ # Amount of tax to be applied. This should be in the same currency and
11711
+ # denomination as the commit's invoice schedule
11712
+ sig { returns(Float) }
11713
+ attr_accessor :tax_amount
11714
+
11715
+ # Name of the tax to be applied. This may be used in an invoice line item
11716
+ # description.
11717
+ sig { returns(T.nilable(String)) }
11718
+ attr_reader :tax_name
11719
+
11720
+ sig { params(tax_name: String).void }
11721
+ attr_writer :tax_name
11722
+
11723
+ # Only applicable if using PRECALCULATED as your tax type.
11724
+ sig do
11725
+ params(tax_amount: Float, tax_name: String).returns(
11726
+ T.attached_class
11727
+ )
11728
+ end
11729
+ def self.new(
11730
+ # Amount of tax to be applied. This should be in the same currency and
11731
+ # denomination as the commit's invoice schedule
11732
+ tax_amount:,
11733
+ # Name of the tax to be applied. This may be used in an invoice line item
11734
+ # description.
11735
+ tax_name: nil
11736
+ )
11737
+ end
11738
+
11739
+ sig { override.returns({ tax_amount: Float, tax_name: String }) }
11740
+ def to_hash
11741
+ end
11742
+ end
11743
+
9510
11744
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
9511
11745
  OrHash =
9512
11746
  T.type_alias do
@@ -9524,16 +11758,28 @@ module MetronomeSDK
9524
11758
  end
9525
11759
  attr_accessor :payment_type
9526
11760
 
9527
- # Only applicable if using Stripe as your payment gateway through Metronome.
11761
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
11762
+ # your payment type.
11763
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
11764
+ attr_reader :invoice_metadata
11765
+
11766
+ sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
11767
+ attr_writer :invoice_metadata
11768
+
11769
+ # Only applicable if using STRIPE as your payment gateway type.
9528
11770
  sig do
9529
11771
  params(
9530
11772
  payment_type:
9531
- MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
11773
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
11774
+ invoice_metadata: T::Hash[Symbol, String]
9532
11775
  ).returns(T.attached_class)
9533
11776
  end
9534
11777
  def self.new(
9535
11778
  # If left blank, will default to INVOICE
9536
- payment_type:
11779
+ payment_type:,
11780
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
11781
+ # your payment type.
11782
+ invoice_metadata: nil
9537
11783
  )
9538
11784
  end
9539
11785
 
@@ -9541,7 +11787,8 @@ module MetronomeSDK
9541
11787
  override.returns(
9542
11788
  {
9543
11789
  payment_type:
9544
- MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
11790
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
11791
+ invoice_metadata: T::Hash[Symbol, String]
9545
11792
  }
9546
11793
  )
9547
11794
  end
@@ -9609,6 +11856,16 @@ module MetronomeSDK
9609
11856
  :STRIPE,
9610
11857
  MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
9611
11858
  )
11859
+ ANROK =
11860
+ T.let(
11861
+ :ANROK,
11862
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
11863
+ )
11864
+ PRECALCULATED =
11865
+ T.let(
11866
+ :PRECALCULATED,
11867
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
11868
+ )
9612
11869
 
9613
11870
  sig do
9614
11871
  override.returns(