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
@@ -102,7 +102,7 @@ module MetronomeSDK
102
102
  -> { MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration }
103
103
 
104
104
  # @!attribute add_subscriptions
105
- # (beta) Optional list of
105
+ # Optional list of
106
106
  # [subscriptions](https://docs.metronome.com/manage-product-access/create-subscription/)
107
107
  # to add to the contract.
108
108
  #
@@ -171,6 +171,13 @@ module MetronomeSDK
171
171
  # @return [Time, nil]
172
172
  optional :update_contract_end_date, Time, nil?: true
173
173
 
174
+ # @!attribute update_contract_name
175
+ # Value to update the contract name to. If not provided, the contract name will
176
+ # remain unchanged.
177
+ #
178
+ # @return [String, nil]
179
+ optional :update_contract_name, String, nil?: true
180
+
174
181
  # @!attribute update_credits
175
182
  #
176
183
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit>, nil]
@@ -222,7 +229,7 @@ module MetronomeSDK
222
229
  -> { MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration }
223
230
 
224
231
  # @!attribute update_subscriptions
225
- # (beta) Optional list of subscriptions to update.
232
+ # Optional list of subscriptions to update.
226
233
  #
227
234
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription>, nil]
228
235
  optional :update_subscriptions,
@@ -230,7 +237,7 @@ module MetronomeSDK
230
237
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription]
231
238
  }
232
239
 
233
- # @!method initialize(contract_id:, customer_id:, add_commits: nil, add_credits: nil, add_discounts: nil, add_overrides: nil, add_prepaid_balance_threshold_configuration: nil, add_professional_services: nil, add_recurring_commits: nil, add_recurring_credits: nil, add_reseller_royalties: nil, add_scheduled_charges: nil, add_spend_threshold_configuration: nil, add_subscriptions: nil, allow_contract_ending_before_finalized_invoice: nil, archive_commits: nil, archive_credits: nil, archive_scheduled_charges: nil, remove_overrides: nil, update_commits: nil, update_contract_end_date: nil, update_credits: nil, update_prepaid_balance_threshold_configuration: nil, update_recurring_commits: nil, update_recurring_credits: nil, update_scheduled_charges: nil, update_spend_threshold_configuration: nil, update_subscriptions: nil, request_options: {})
240
+ # @!method initialize(contract_id:, customer_id:, add_commits: nil, add_credits: nil, add_discounts: nil, add_overrides: nil, add_prepaid_balance_threshold_configuration: nil, add_professional_services: nil, add_recurring_commits: nil, add_recurring_credits: nil, add_reseller_royalties: nil, add_scheduled_charges: nil, add_spend_threshold_configuration: nil, add_subscriptions: nil, allow_contract_ending_before_finalized_invoice: nil, archive_commits: nil, archive_credits: nil, archive_scheduled_charges: nil, remove_overrides: nil, update_commits: nil, update_contract_end_date: nil, update_contract_name: nil, update_credits: nil, update_prepaid_balance_threshold_configuration: nil, update_recurring_commits: nil, update_recurring_credits: nil, update_scheduled_charges: nil, update_spend_threshold_configuration: nil, update_subscriptions: nil, request_options: {})
234
241
  # Some parameter documentations has been truncated, see
235
242
  # {MetronomeSDK::Models::V2::ContractEditParams} for more details.
236
243
  #
@@ -260,7 +267,7 @@ module MetronomeSDK
260
267
  #
261
268
  # @param add_spend_threshold_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration]
262
269
  #
263
- # @param add_subscriptions [Array<MetronomeSDK::Models::V2::ContractEditParams::AddSubscription>] (beta) Optional list of [subscriptions](https://docs.metronome.com/manage-produc
270
+ # @param add_subscriptions [Array<MetronomeSDK::Models::V2::ContractEditParams::AddSubscription>] Optional list of [subscriptions](https://docs.metronome.com/manage-product-acces
264
271
  #
265
272
  # @param allow_contract_ending_before_finalized_invoice [Boolean] If true, allows setting the contract end date earlier than the end_timestamp of
266
273
  #
@@ -276,6 +283,8 @@ module MetronomeSDK
276
283
  #
277
284
  # @param update_contract_end_date [Time, nil] RFC 3339 timestamp indicating when the contract will end (exclusive).
278
285
  #
286
+ # @param update_contract_name [String, nil] Value to update the contract name to. If not provided, the contract name will re
287
+ #
279
288
  # @param update_credits [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit>]
280
289
  #
281
290
  # @param update_prepaid_balance_threshold_configuration [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration]
@@ -288,7 +297,7 @@ module MetronomeSDK
288
297
  #
289
298
  # @param update_spend_threshold_configuration [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration]
290
299
  #
291
- # @param update_subscriptions [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription>] (beta) Optional list of subscriptions to update.
300
+ # @param update_subscriptions [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription>] Optional list of subscriptions to update.
292
301
  #
293
302
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
294
303
 
@@ -318,15 +327,17 @@ module MetronomeSDK
318
327
  optional :amount, Float
319
328
 
320
329
  # @!attribute applicable_product_ids
321
- # Which products the commit applies to. If both applicable_product_ids and
322
- # applicable_product_tags are not provided, the commit applies to all products.
330
+ # Which products the commit applies to. If applicable_product_ids,
331
+ # applicable_product_tags or specifiers are not provided, the commit applies to
332
+ # all products.
323
333
  #
324
334
  # @return [Array<String>, nil]
325
335
  optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
326
336
 
327
337
  # @!attribute applicable_product_tags
328
- # Which tags the commit applies to. If both applicable_product_ids and
329
- # applicable_product_tags are not provided, the commit applies to all products.
338
+ # Which tags the commit applies to. If applicable_product_ids,
339
+ # applicable_product_tags or specifiers are not provided, the commit applies to
340
+ # all products.
330
341
  #
331
342
  # @return [Array<String>, nil]
332
343
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
@@ -342,6 +353,13 @@ module MetronomeSDK
342
353
  # @return [String, nil]
343
354
  optional :description, String
344
355
 
356
+ # @!attribute hierarchy_configuration
357
+ # Optional configuration for commit hierarchy access control
358
+ #
359
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration, nil]
360
+ optional :hierarchy_configuration,
361
+ -> { MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration }
362
+
345
363
  # @!attribute invoice_schedule
346
364
  # Required for "POSTPAID" commits: the true up invoice will be generated at this
347
365
  # time and only one schedule item is allowed; the total must match access_schedule
@@ -409,7 +427,7 @@ module MetronomeSDK
409
427
  # @return [String, nil]
410
428
  optional :temporary_id, String
411
429
 
412
- # @!method initialize(product_id:, type:, access_schedule: nil, amount: nil, applicable_product_ids: nil, applicable_product_tags: nil, custom_fields: nil, description: nil, invoice_schedule: nil, name: nil, netsuite_sales_order_id: nil, payment_gate_config: nil, priority: nil, rate_type: nil, rollover_fraction: nil, specifiers: nil, temporary_id: nil)
430
+ # @!method initialize(product_id:, type:, access_schedule: nil, amount: nil, applicable_product_ids: nil, applicable_product_tags: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, invoice_schedule: nil, name: nil, netsuite_sales_order_id: nil, payment_gate_config: nil, priority: nil, rate_type: nil, rollover_fraction: nil, specifiers: nil, temporary_id: nil)
413
431
  # Some parameter documentations has been truncated, see
414
432
  # {MetronomeSDK::Models::V2::ContractEditParams::AddCommit} for more details.
415
433
  #
@@ -421,14 +439,16 @@ module MetronomeSDK
421
439
  #
422
440
  # @param amount [Float] (DEPRECATED) Use access_schedule and invoice_schedule instead.
423
441
  #
424
- # @param applicable_product_ids [Array<String>] Which products the commit applies to. If both applicable_product_ids and applica
442
+ # @param applicable_product_ids [Array<String>] Which products the commit applies to. If applicable_product_ids, applicable_prod
425
443
  #
426
- # @param applicable_product_tags [Array<String>] Which tags the commit applies to. If both applicable*product_ids and applicable*
444
+ # @param applicable_product_tags [Array<String>] Which tags the commit applies to. If applicable*product_ids, applicable_product*
427
445
  #
428
446
  # @param custom_fields [Hash{Symbol=>String}]
429
447
  #
430
448
  # @param description [String] Used only in UI/API. It is not exposed to end customers.
431
449
  #
450
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration] Optional configuration for commit hierarchy access control
451
+ #
432
452
  # @param invoice_schedule [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule] Required for "POSTPAID" commits: the true up invoice will be generated at this t
433
453
  #
434
454
  # @param name [String] displayed on invoices
@@ -508,6 +528,117 @@ module MetronomeSDK
508
528
  end
509
529
  end
510
530
 
531
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit#hierarchy_configuration
532
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
533
+ # @!attribute child_access
534
+ #
535
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
536
+ required :child_access,
537
+ union: -> {
538
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess
539
+ }
540
+
541
+ # @!method initialize(child_access:)
542
+ # Optional configuration for commit hierarchy access control
543
+ #
544
+ # @param child_access [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
545
+
546
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration#child_access
547
+ module ChildAccess
548
+ extend MetronomeSDK::Internal::Type::Union
549
+
550
+ variant -> {
551
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
552
+ }
553
+
554
+ variant -> {
555
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
556
+ }
557
+
558
+ variant -> {
559
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
560
+ }
561
+
562
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
563
+ # @!attribute type
564
+ #
565
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
566
+ required :type,
567
+ enum: -> {
568
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
569
+ }
570
+
571
+ # @!method initialize(type:)
572
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
573
+
574
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
575
+ module Type
576
+ extend MetronomeSDK::Internal::Type::Enum
577
+
578
+ ALL = :ALL
579
+
580
+ # @!method self.values
581
+ # @return [Array<Symbol>]
582
+ end
583
+ end
584
+
585
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
586
+ # @!attribute type
587
+ #
588
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
589
+ required :type,
590
+ enum: -> {
591
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
592
+ }
593
+
594
+ # @!method initialize(type:)
595
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
596
+
597
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
598
+ module Type
599
+ extend MetronomeSDK::Internal::Type::Enum
600
+
601
+ NONE = :NONE
602
+
603
+ # @!method self.values
604
+ # @return [Array<Symbol>]
605
+ end
606
+ end
607
+
608
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
609
+ # @!attribute contract_ids
610
+ #
611
+ # @return [Array<String>]
612
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
613
+
614
+ # @!attribute type
615
+ #
616
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
617
+ required :type,
618
+ enum: -> {
619
+ MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
620
+ }
621
+
622
+ # @!method initialize(contract_ids:, type:)
623
+ # @param contract_ids [Array<String>]
624
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
625
+
626
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
627
+ module Type
628
+ extend MetronomeSDK::Internal::Type::Enum
629
+
630
+ CONTRACT_IDS = :CONTRACT_IDS
631
+
632
+ # @!method self.values
633
+ # @return [Array<Symbol>]
634
+ end
635
+ end
636
+
637
+ # @!method self.variants
638
+ # @return [Array(MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
639
+ end
640
+ end
641
+
511
642
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit#invoice_schedule
512
643
  class InvoiceSchedule < MetronomeSDK::Internal::Type::BaseModel
513
644
  # @!attribute credit_type_id
@@ -716,8 +847,17 @@ module MetronomeSDK
716
847
  MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::PaymentGateType
717
848
  }
718
849
 
850
+ # @!attribute precalculated_tax_config
851
+ # Only applicable if using PRECALCULATED as your tax type.
852
+ #
853
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::PrecalculatedTaxConfig, nil]
854
+ optional :precalculated_tax_config,
855
+ -> {
856
+ MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::PrecalculatedTaxConfig
857
+ }
858
+
719
859
  # @!attribute stripe_config
720
- # Only applicable if using Stripe as your payment gateway through Metronome.
860
+ # Only applicable if using STRIPE as your payment gateway type.
721
861
  #
722
862
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig, nil]
723
863
  optional :stripe_config,
@@ -732,7 +872,7 @@ module MetronomeSDK
732
872
  optional :tax_type,
733
873
  enum: -> { MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::TaxType }
734
874
 
735
- # @!method initialize(payment_gate_type:, stripe_config: nil, tax_type: nil)
875
+ # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
736
876
  # Some parameter documentations has been truncated, see
737
877
  # {MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig} for
738
878
  # more details.
@@ -741,7 +881,9 @@ module MetronomeSDK
741
881
  #
742
882
  # @param payment_gate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
743
883
  #
744
- # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig] Only applicable if using Stripe as your payment gateway through Metronome.
884
+ # @param precalculated_tax_config [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
885
+ #
886
+ # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gateway type.
745
887
  #
746
888
  # @param tax_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
747
889
 
@@ -762,6 +904,34 @@ module MetronomeSDK
762
904
  # @return [Array<Symbol>]
763
905
  end
764
906
 
907
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig#precalculated_tax_config
908
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
909
+ # @!attribute tax_amount
910
+ # Amount of tax to be applied. This should be in the same currency and
911
+ # denomination as the commit's invoice schedule
912
+ #
913
+ # @return [Float]
914
+ required :tax_amount, Float
915
+
916
+ # @!attribute tax_name
917
+ # Name of the tax to be applied. This may be used in an invoice line item
918
+ # description.
919
+ #
920
+ # @return [String, nil]
921
+ optional :tax_name, String
922
+
923
+ # @!method initialize(tax_amount:, tax_name: nil)
924
+ # Some parameter documentations has been truncated, see
925
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::PrecalculatedTaxConfig}
926
+ # for more details.
927
+ #
928
+ # Only applicable if using PRECALCULATED as your tax type.
929
+ #
930
+ # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
931
+ #
932
+ # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
933
+ end
934
+
765
935
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig#stripe_config
766
936
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
767
937
  # @!attribute payment_type
@@ -773,10 +943,23 @@ module MetronomeSDK
773
943
  MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::PaymentType
774
944
  }
775
945
 
776
- # @!method initialize(payment_type:)
777
- # Only applicable if using Stripe as your payment gateway through Metronome.
946
+ # @!attribute invoice_metadata
947
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
948
+ # your payment type.
949
+ #
950
+ # @return [Hash{Symbol=>String}, nil]
951
+ optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
952
+
953
+ # @!method initialize(payment_type:, invoice_metadata: nil)
954
+ # Some parameter documentations has been truncated, see
955
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig}
956
+ # for more details.
957
+ #
958
+ # Only applicable if using STRIPE as your payment gateway type.
778
959
  #
779
960
  # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
961
+ #
962
+ # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
780
963
 
781
964
  # If left blank, will default to INVOICE
782
965
  #
@@ -802,6 +985,8 @@ module MetronomeSDK
802
985
 
803
986
  NONE = :NONE
804
987
  STRIPE = :STRIPE
988
+ ANROK = :ANROK
989
+ PRECALCULATED = :PRECALCULATED
805
990
 
806
991
  # @!method self.values
807
992
  # @return [Array<Symbol>]
@@ -895,6 +1080,13 @@ module MetronomeSDK
895
1080
  # @return [String, nil]
896
1081
  optional :description, String
897
1082
 
1083
+ # @!attribute hierarchy_configuration
1084
+ # Optional configuration for credit hierarchy access control
1085
+ #
1086
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration, nil]
1087
+ optional :hierarchy_configuration,
1088
+ -> { MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration }
1089
+
898
1090
  # @!attribute name
899
1091
  # displayed on invoices
900
1092
  #
@@ -931,7 +1123,7 @@ module MetronomeSDK
931
1123
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCredit::Specifier]
932
1124
  }
933
1125
 
934
- # @!method initialize(access_schedule:, product_id:, applicable_product_ids: nil, applicable_product_tags: nil, custom_fields: nil, description: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, specifiers: nil)
1126
+ # @!method initialize(access_schedule:, product_id:, applicable_product_ids: nil, applicable_product_tags: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, specifiers: nil)
935
1127
  # Some parameter documentations has been truncated, see
936
1128
  # {MetronomeSDK::Models::V2::ContractEditParams::AddCredit} for more details.
937
1129
  #
@@ -947,6 +1139,8 @@ module MetronomeSDK
947
1139
  #
948
1140
  # @param description [String] Used only in UI/API. It is not exposed to end customers.
949
1141
  #
1142
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration] Optional configuration for credit hierarchy access control
1143
+ #
950
1144
  # @param name [String] displayed on invoices
951
1145
  #
952
1146
  # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
@@ -1005,6 +1199,117 @@ module MetronomeSDK
1005
1199
  end
1006
1200
  end
1007
1201
 
1202
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit#hierarchy_configuration
1203
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
1204
+ # @!attribute child_access
1205
+ #
1206
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
1207
+ required :child_access,
1208
+ union: -> {
1209
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess
1210
+ }
1211
+
1212
+ # @!method initialize(child_access:)
1213
+ # Optional configuration for credit hierarchy access control
1214
+ #
1215
+ # @param child_access [MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
1216
+
1217
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration#child_access
1218
+ module ChildAccess
1219
+ extend MetronomeSDK::Internal::Type::Union
1220
+
1221
+ variant -> {
1222
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
1223
+ }
1224
+
1225
+ variant -> {
1226
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
1227
+ }
1228
+
1229
+ variant -> {
1230
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
1231
+ }
1232
+
1233
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
1234
+ # @!attribute type
1235
+ #
1236
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
1237
+ required :type,
1238
+ enum: -> {
1239
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
1240
+ }
1241
+
1242
+ # @!method initialize(type:)
1243
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
1244
+
1245
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
1246
+ module Type
1247
+ extend MetronomeSDK::Internal::Type::Enum
1248
+
1249
+ ALL = :ALL
1250
+
1251
+ # @!method self.values
1252
+ # @return [Array<Symbol>]
1253
+ end
1254
+ end
1255
+
1256
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
1257
+ # @!attribute type
1258
+ #
1259
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
1260
+ required :type,
1261
+ enum: -> {
1262
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
1263
+ }
1264
+
1265
+ # @!method initialize(type:)
1266
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
1267
+
1268
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
1269
+ module Type
1270
+ extend MetronomeSDK::Internal::Type::Enum
1271
+
1272
+ NONE = :NONE
1273
+
1274
+ # @!method self.values
1275
+ # @return [Array<Symbol>]
1276
+ end
1277
+ end
1278
+
1279
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
1280
+ # @!attribute contract_ids
1281
+ #
1282
+ # @return [Array<String>]
1283
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1284
+
1285
+ # @!attribute type
1286
+ #
1287
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
1288
+ required :type,
1289
+ enum: -> {
1290
+ MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
1291
+ }
1292
+
1293
+ # @!method initialize(contract_ids:, type:)
1294
+ # @param contract_ids [Array<String>]
1295
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
1296
+
1297
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
1298
+ module Type
1299
+ extend MetronomeSDK::Internal::Type::Enum
1300
+
1301
+ CONTRACT_IDS = :CONTRACT_IDS
1302
+
1303
+ # @!method self.values
1304
+ # @return [Array<Symbol>]
1305
+ end
1306
+ end
1307
+
1308
+ # @!method self.variants
1309
+ # @return [Array(MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
1310
+ end
1311
+ end
1312
+
1008
1313
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit#rate_type
1009
1314
  module RateType
1010
1315
  extend MetronomeSDK::Internal::Type::Enum
@@ -1548,11 +1853,8 @@ module MetronomeSDK
1548
1853
  # @!attribute tiers
1549
1854
  # Only set for TIERED rate_type.
1550
1855
  #
1551
- # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate::Tier>, nil]
1552
- optional :tiers,
1553
- -> {
1554
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate::Tier]
1555
- }
1856
+ # @return [Array<MetronomeSDK::Models::Tier>, nil]
1857
+ optional :tiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Tier] }
1556
1858
 
1557
1859
  # @!method initialize(rate_type:, credit_type_id: nil, custom_rate: nil, is_prorated: nil, price: nil, quantity: nil, tiers: nil)
1558
1860
  # Some parameter documentations has been truncated, see
@@ -1573,7 +1875,7 @@ module MetronomeSDK
1573
1875
  #
1574
1876
  # @param quantity [Float] Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
1575
1877
  #
1576
- # @param tiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate::Tier>] Only set for TIERED rate_type.
1878
+ # @param tiers [Array<MetronomeSDK::Models::Tier>] Only set for TIERED rate_type.
1577
1879
 
1578
1880
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate#rate_type
1579
1881
  module RateType
@@ -1588,22 +1890,6 @@ module MetronomeSDK
1588
1890
  # @!method self.values
1589
1891
  # @return [Array<Symbol>]
1590
1892
  end
1591
-
1592
- class Tier < MetronomeSDK::Internal::Type::BaseModel
1593
- # @!attribute price
1594
- #
1595
- # @return [Float]
1596
- required :price, Float
1597
-
1598
- # @!attribute size
1599
- #
1600
- # @return [Float, nil]
1601
- optional :size, Float
1602
-
1603
- # @!method initialize(price:, size: nil)
1604
- # @param price [Float]
1605
- # @param size [Float]
1606
- end
1607
1893
  end
1608
1894
 
1609
1895
  # Indicates whether the override applies to commit rates or list rates. Can only
@@ -1690,7 +1976,14 @@ module MetronomeSDK
1690
1976
  # @return [Float]
1691
1977
  required :threshold_amount, Float
1692
1978
 
1693
- # @!method initialize(commit:, is_enabled:, payment_gate_config:, recharge_to_amount:, threshold_amount:)
1979
+ # @!attribute custom_credit_type_id
1980
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
1981
+ # commit amount will be in terms of this credit type instead of the fiat currency.
1982
+ #
1983
+ # @return [String, nil]
1984
+ optional :custom_credit_type_id, String
1985
+
1986
+ # @!method initialize(commit:, is_enabled:, payment_gate_config:, recharge_to_amount:, threshold_amount:, custom_credit_type_id: nil)
1694
1987
  # Some parameter documentations has been truncated, see
1695
1988
  # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration}
1696
1989
  # for more details.
@@ -1704,6 +1997,8 @@ module MetronomeSDK
1704
1997
  # @param recharge_to_amount [Float] Specify the amount the balance should be recharged to.
1705
1998
  #
1706
1999
  # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's balance
2000
+ #
2001
+ # @param custom_credit_type_id [String] If provided, the threshold, recharge-to amount, and the resulting threshold comm
1707
2002
 
1708
2003
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration#commit
1709
2004
  class Commit < MetronomeSDK::Internal::Type::BaseModel
@@ -1715,16 +2010,17 @@ module MetronomeSDK
1715
2010
  required :product_id, String
1716
2011
 
1717
2012
  # @!attribute applicable_product_ids
1718
- # Which products the threshold commit applies to. If both applicable_product_ids
1719
- # and applicable_product_tags are not provided, the commit applies to all
1720
- # products.
2013
+ # Which products the threshold commit applies to. If applicable_product_ids,
2014
+ # applicable_product_tags or specifiers are not provided, the commit applies to
2015
+ # all products.
1721
2016
  #
1722
2017
  # @return [Array<String>, nil]
1723
2018
  optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1724
2019
 
1725
2020
  # @!attribute applicable_product_tags
1726
- # Which tags the threshold commit applies to. If both applicable_product_ids and
1727
- # applicable_product_tags are not provided, the commit applies to all products.
2021
+ # Which tags the threshold commit applies to. If applicable_product_ids,
2022
+ # applicable_product_tags or specifiers are not provided, the commit applies to
2023
+ # all products.
1728
2024
  #
1729
2025
  # @return [Array<String>, nil]
1730
2026
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
@@ -1760,9 +2056,9 @@ module MetronomeSDK
1760
2056
  #
1761
2057
  # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
1762
2058
  #
1763
- # @param applicable_product_ids [Array<String>] Which products the threshold commit applies to. If both applicable_product_ids a
2059
+ # @param applicable_product_ids [Array<String>] Which products the threshold commit applies to. If applicable_product_ids, appli
1764
2060
  #
1765
- # @param applicable_product_tags [Array<String>] Which tags the threshold commit applies to. If both applicable_product_ids and a
2061
+ # @param applicable_product_tags [Array<String>] Which tags the threshold commit applies to. If applicable_product_ids, applicabl
1766
2062
  #
1767
2063
  # @param description [String]
1768
2064
  #
@@ -1823,8 +2119,17 @@ module MetronomeSDK
1823
2119
  MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType
1824
2120
  }
1825
2121
 
2122
+ # @!attribute precalculated_tax_config
2123
+ # Only applicable if using PRECALCULATED as your tax type.
2124
+ #
2125
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig, nil]
2126
+ optional :precalculated_tax_config,
2127
+ -> {
2128
+ MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
2129
+ }
2130
+
1826
2131
  # @!attribute stripe_config
1827
- # Only applicable if using Stripe as your payment gateway through Metronome.
2132
+ # Only applicable if using STRIPE as your payment gateway type.
1828
2133
  #
1829
2134
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
1830
2135
  optional :stripe_config,
@@ -1843,14 +2148,16 @@ module MetronomeSDK
1843
2148
  MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType
1844
2149
  }
1845
2150
 
1846
- # @!method initialize(payment_gate_type:, stripe_config: nil, tax_type: nil)
2151
+ # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
1847
2152
  # Some parameter documentations has been truncated, see
1848
2153
  # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig}
1849
2154
  # for more details.
1850
2155
  #
1851
2156
  # @param payment_gate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
1852
2157
  #
1853
- # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using Stripe as your payment gateway through Metronome.
2158
+ # @param precalculated_tax_config [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
2159
+ #
2160
+ # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gateway type.
1854
2161
  #
1855
2162
  # @param tax_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
1856
2163
 
@@ -1871,6 +2178,34 @@ module MetronomeSDK
1871
2178
  # @return [Array<Symbol>]
1872
2179
  end
1873
2180
 
2181
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig#precalculated_tax_config
2182
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
2183
+ # @!attribute tax_amount
2184
+ # Amount of tax to be applied. This should be in the same currency and
2185
+ # denomination as the commit's invoice schedule
2186
+ #
2187
+ # @return [Float]
2188
+ required :tax_amount, Float
2189
+
2190
+ # @!attribute tax_name
2191
+ # Name of the tax to be applied. This may be used in an invoice line item
2192
+ # description.
2193
+ #
2194
+ # @return [String, nil]
2195
+ optional :tax_name, String
2196
+
2197
+ # @!method initialize(tax_amount:, tax_name: nil)
2198
+ # Some parameter documentations has been truncated, see
2199
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig}
2200
+ # for more details.
2201
+ #
2202
+ # Only applicable if using PRECALCULATED as your tax type.
2203
+ #
2204
+ # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
2205
+ #
2206
+ # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
2207
+ end
2208
+
1874
2209
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig#stripe_config
1875
2210
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
1876
2211
  # @!attribute payment_type
@@ -1882,10 +2217,23 @@ module MetronomeSDK
1882
2217
  MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
1883
2218
  }
1884
2219
 
1885
- # @!method initialize(payment_type:)
1886
- # Only applicable if using Stripe as your payment gateway through Metronome.
2220
+ # @!attribute invoice_metadata
2221
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
2222
+ # your payment type.
2223
+ #
2224
+ # @return [Hash{Symbol=>String}, nil]
2225
+ optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
2226
+
2227
+ # @!method initialize(payment_type:, invoice_metadata: nil)
2228
+ # Some parameter documentations has been truncated, see
2229
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig}
2230
+ # for more details.
2231
+ #
2232
+ # Only applicable if using STRIPE as your payment gateway type.
1887
2233
  #
1888
2234
  # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
2235
+ #
2236
+ # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
1889
2237
 
1890
2238
  # If left blank, will default to INVOICE
1891
2239
  #
@@ -1911,6 +2259,8 @@ module MetronomeSDK
1911
2259
 
1912
2260
  NONE = :NONE
1913
2261
  STRIPE = :STRIPE
2262
+ ANROK = :ANROK
2263
+ PRECALCULATED = :PRECALCULATED
1914
2264
 
1915
2265
  # @!method self.values
1916
2266
  # @return [Array<Symbol>]
@@ -2042,6 +2392,13 @@ module MetronomeSDK
2042
2392
  # @return [Time, nil]
2043
2393
  optional :ending_before, Time
2044
2394
 
2395
+ # @!attribute hierarchy_configuration
2396
+ # Optional configuration for recurring commit/credit hierarchy access control
2397
+ #
2398
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration, nil]
2399
+ optional :hierarchy_configuration,
2400
+ -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration }
2401
+
2045
2402
  # @!attribute invoice_amount
2046
2403
  # The amount the customer should be billed for the commit. Not required.
2047
2404
  #
@@ -2117,7 +2474,7 @@ module MetronomeSDK
2117
2474
  # @return [String, nil]
2118
2475
  optional :temporary_id, String
2119
2476
 
2120
- # @!method initialize(access_amount:, commit_duration:, priority:, product_id:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, ending_before: nil, invoice_amount: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, rate_type: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, temporary_id: nil)
2477
+ # @!method initialize(access_amount:, commit_duration:, priority:, product_id:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, invoice_amount: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, rate_type: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, temporary_id: nil)
2121
2478
  # Some parameter documentations has been truncated, see
2122
2479
  # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit} for more
2123
2480
  # details.
@@ -2140,6 +2497,8 @@ module MetronomeSDK
2140
2497
  #
2141
2498
  # @param ending_before [Time] Determines when the contract will stop creating recurring commits. optional
2142
2499
  #
2500
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration] Optional configuration for recurring commit/credit hierarchy access control
2501
+ #
2143
2502
  # @param invoice_amount [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount] The amount the customer should be billed for the commit. Not required.
2144
2503
  #
2145
2504
  # @param name [String] displayed on invoices. will be passed through to the individual commits
@@ -2165,22 +2524,30 @@ module MetronomeSDK
2165
2524
  # @return [String]
2166
2525
  required :credit_type_id, String
2167
2526
 
2168
- # @!attribute quantity
2169
- #
2170
- # @return [Float]
2171
- required :quantity, Float
2172
-
2173
2527
  # @!attribute unit_price
2174
2528
  #
2175
2529
  # @return [Float]
2176
2530
  required :unit_price, Float
2177
2531
 
2178
- # @!method initialize(credit_type_id:, quantity:, unit_price:)
2532
+ # @!attribute quantity
2533
+ # This field is currently required. Upcoming recurring commit/credit configuration
2534
+ # options will allow it to be optional.
2535
+ #
2536
+ # @return [Float, nil]
2537
+ optional :quantity, Float
2538
+
2539
+ # @!method initialize(credit_type_id:, unit_price:, quantity: nil)
2540
+ # Some parameter documentations has been truncated, see
2541
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::AccessAmount}
2542
+ # for more details.
2543
+ #
2179
2544
  # The amount of commit to grant.
2180
2545
  #
2181
2546
  # @param credit_type_id [String]
2182
- # @param quantity [Float]
2547
+ #
2183
2548
  # @param unit_price [Float]
2549
+ #
2550
+ # @param quantity [Float] This field is currently required. Upcoming recurring commit/credit configuration
2184
2551
  end
2185
2552
 
2186
2553
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#commit_duration
@@ -2217,6 +2584,117 @@ module MetronomeSDK
2217
2584
  end
2218
2585
  end
2219
2586
 
2587
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#hierarchy_configuration
2588
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
2589
+ # @!attribute child_access
2590
+ #
2591
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
2592
+ required :child_access,
2593
+ union: -> {
2594
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess
2595
+ }
2596
+
2597
+ # @!method initialize(child_access:)
2598
+ # Optional configuration for recurring commit/credit hierarchy access control
2599
+ #
2600
+ # @param child_access [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
2601
+
2602
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration#child_access
2603
+ module ChildAccess
2604
+ extend MetronomeSDK::Internal::Type::Union
2605
+
2606
+ variant -> {
2607
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
2608
+ }
2609
+
2610
+ variant -> {
2611
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
2612
+ }
2613
+
2614
+ variant -> {
2615
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
2616
+ }
2617
+
2618
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
2619
+ # @!attribute type
2620
+ #
2621
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
2622
+ required :type,
2623
+ enum: -> {
2624
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
2625
+ }
2626
+
2627
+ # @!method initialize(type:)
2628
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
2629
+
2630
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
2631
+ module Type
2632
+ extend MetronomeSDK::Internal::Type::Enum
2633
+
2634
+ ALL = :ALL
2635
+
2636
+ # @!method self.values
2637
+ # @return [Array<Symbol>]
2638
+ end
2639
+ end
2640
+
2641
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
2642
+ # @!attribute type
2643
+ #
2644
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
2645
+ required :type,
2646
+ enum: -> {
2647
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
2648
+ }
2649
+
2650
+ # @!method initialize(type:)
2651
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
2652
+
2653
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
2654
+ module Type
2655
+ extend MetronomeSDK::Internal::Type::Enum
2656
+
2657
+ NONE = :NONE
2658
+
2659
+ # @!method self.values
2660
+ # @return [Array<Symbol>]
2661
+ end
2662
+ end
2663
+
2664
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
2665
+ # @!attribute contract_ids
2666
+ #
2667
+ # @return [Array<String>]
2668
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
2669
+
2670
+ # @!attribute type
2671
+ #
2672
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
2673
+ required :type,
2674
+ enum: -> {
2675
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
2676
+ }
2677
+
2678
+ # @!method initialize(contract_ids:, type:)
2679
+ # @param contract_ids [Array<String>]
2680
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
2681
+
2682
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
2683
+ module Type
2684
+ extend MetronomeSDK::Internal::Type::Enum
2685
+
2686
+ CONTRACT_IDS = :CONTRACT_IDS
2687
+
2688
+ # @!method self.values
2689
+ # @return [Array<Symbol>]
2690
+ end
2691
+ end
2692
+
2693
+ # @!method self.variants
2694
+ # @return [Array(MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
2695
+ end
2696
+ end
2697
+
2220
2698
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#invoice_amount
2221
2699
  class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
2222
2700
  # @!attribute credit_type_id
@@ -2391,6 +2869,13 @@ module MetronomeSDK
2391
2869
  # @return [Time, nil]
2392
2870
  optional :ending_before, Time
2393
2871
 
2872
+ # @!attribute hierarchy_configuration
2873
+ # Optional configuration for recurring commit/credit hierarchy access control
2874
+ #
2875
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration, nil]
2876
+ optional :hierarchy_configuration,
2877
+ -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration }
2878
+
2394
2879
  # @!attribute name
2395
2880
  # displayed on invoices. will be passed through to the individual commits
2396
2881
  #
@@ -2457,7 +2942,7 @@ module MetronomeSDK
2457
2942
  # @return [String, nil]
2458
2943
  optional :temporary_id, String
2459
2944
 
2460
- # @!method initialize(access_amount:, commit_duration:, priority:, product_id:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, ending_before: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, rate_type: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, temporary_id: nil)
2945
+ # @!method initialize(access_amount:, commit_duration:, priority:, product_id:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, rate_type: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, temporary_id: nil)
2461
2946
  # Some parameter documentations has been truncated, see
2462
2947
  # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit} for more
2463
2948
  # details.
@@ -2480,6 +2965,8 @@ module MetronomeSDK
2480
2965
  #
2481
2966
  # @param ending_before [Time] Determines when the contract will stop creating recurring commits. optional
2482
2967
  #
2968
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration] Optional configuration for recurring commit/credit hierarchy access control
2969
+ #
2483
2970
  # @param name [String] displayed on invoices. will be passed through to the individual commits
2484
2971
  #
2485
2972
  # @param netsuite_sales_order_id [String] Will be passed down to the individual commits
@@ -2503,22 +2990,30 @@ module MetronomeSDK
2503
2990
  # @return [String]
2504
2991
  required :credit_type_id, String
2505
2992
 
2506
- # @!attribute quantity
2507
- #
2508
- # @return [Float]
2509
- required :quantity, Float
2510
-
2511
2993
  # @!attribute unit_price
2512
2994
  #
2513
2995
  # @return [Float]
2514
2996
  required :unit_price, Float
2515
2997
 
2516
- # @!method initialize(credit_type_id:, quantity:, unit_price:)
2998
+ # @!attribute quantity
2999
+ # This field is currently required. Upcoming recurring commit/credit configuration
3000
+ # options will allow it to be optional.
3001
+ #
3002
+ # @return [Float, nil]
3003
+ optional :quantity, Float
3004
+
3005
+ # @!method initialize(credit_type_id:, unit_price:, quantity: nil)
3006
+ # Some parameter documentations has been truncated, see
3007
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::AccessAmount}
3008
+ # for more details.
3009
+ #
2517
3010
  # The amount of commit to grant.
2518
3011
  #
2519
3012
  # @param credit_type_id [String]
2520
- # @param quantity [Float]
3013
+ #
2521
3014
  # @param unit_price [Float]
3015
+ #
3016
+ # @param quantity [Float] This field is currently required. Upcoming recurring commit/credit configuration
2522
3017
  end
2523
3018
 
2524
3019
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#commit_duration
@@ -2555,6 +3050,117 @@ module MetronomeSDK
2555
3050
  end
2556
3051
  end
2557
3052
 
3053
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#hierarchy_configuration
3054
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
3055
+ # @!attribute child_access
3056
+ #
3057
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
3058
+ required :child_access,
3059
+ union: -> {
3060
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess
3061
+ }
3062
+
3063
+ # @!method initialize(child_access:)
3064
+ # Optional configuration for recurring commit/credit hierarchy access control
3065
+ #
3066
+ # @param child_access [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
3067
+
3068
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration#child_access
3069
+ module ChildAccess
3070
+ extend MetronomeSDK::Internal::Type::Union
3071
+
3072
+ variant -> {
3073
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
3074
+ }
3075
+
3076
+ variant -> {
3077
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
3078
+ }
3079
+
3080
+ variant -> {
3081
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
3082
+ }
3083
+
3084
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
3085
+ # @!attribute type
3086
+ #
3087
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
3088
+ required :type,
3089
+ enum: -> {
3090
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
3091
+ }
3092
+
3093
+ # @!method initialize(type:)
3094
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
3095
+
3096
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
3097
+ module Type
3098
+ extend MetronomeSDK::Internal::Type::Enum
3099
+
3100
+ ALL = :ALL
3101
+
3102
+ # @!method self.values
3103
+ # @return [Array<Symbol>]
3104
+ end
3105
+ end
3106
+
3107
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
3108
+ # @!attribute type
3109
+ #
3110
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
3111
+ required :type,
3112
+ enum: -> {
3113
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
3114
+ }
3115
+
3116
+ # @!method initialize(type:)
3117
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
3118
+
3119
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
3120
+ module Type
3121
+ extend MetronomeSDK::Internal::Type::Enum
3122
+
3123
+ NONE = :NONE
3124
+
3125
+ # @!method self.values
3126
+ # @return [Array<Symbol>]
3127
+ end
3128
+ end
3129
+
3130
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
3131
+ # @!attribute contract_ids
3132
+ #
3133
+ # @return [Array<String>]
3134
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
3135
+
3136
+ # @!attribute type
3137
+ #
3138
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
3139
+ required :type,
3140
+ enum: -> {
3141
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
3142
+ }
3143
+
3144
+ # @!method initialize(contract_ids:, type:)
3145
+ # @param contract_ids [Array<String>]
3146
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
3147
+
3148
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
3149
+ module Type
3150
+ extend MetronomeSDK::Internal::Type::Enum
3151
+
3152
+ CONTRACT_IDS = :CONTRACT_IDS
3153
+
3154
+ # @!method self.values
3155
+ # @return [Array<Symbol>]
3156
+ end
3157
+ end
3158
+
3159
+ # @!method self.variants
3160
+ # @return [Array(MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
3161
+ end
3162
+ end
3163
+
2558
3164
  # Determines whether the first and last commit will be prorated. If not provided,
2559
3165
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
2560
3166
  #
@@ -3089,8 +3695,17 @@ module MetronomeSDK
3089
3695
  MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType
3090
3696
  }
3091
3697
 
3698
+ # @!attribute precalculated_tax_config
3699
+ # Only applicable if using PRECALCULATED as your tax type.
3700
+ #
3701
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig, nil]
3702
+ optional :precalculated_tax_config,
3703
+ -> {
3704
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
3705
+ }
3706
+
3092
3707
  # @!attribute stripe_config
3093
- # Only applicable if using Stripe as your payment gateway through Metronome.
3708
+ # Only applicable if using STRIPE as your payment gateway type.
3094
3709
  #
3095
3710
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
3096
3711
  optional :stripe_config,
@@ -3109,14 +3724,16 @@ module MetronomeSDK
3109
3724
  MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType
3110
3725
  }
3111
3726
 
3112
- # @!method initialize(payment_gate_type:, stripe_config: nil, tax_type: nil)
3727
+ # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
3113
3728
  # Some parameter documentations has been truncated, see
3114
3729
  # {MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig}
3115
3730
  # for more details.
3116
3731
  #
3117
3732
  # @param payment_gate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
3118
3733
  #
3119
- # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using Stripe as your payment gateway through Metronome.
3734
+ # @param precalculated_tax_config [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
3735
+ #
3736
+ # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gateway type.
3120
3737
  #
3121
3738
  # @param tax_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
3122
3739
 
@@ -3137,6 +3754,34 @@ module MetronomeSDK
3137
3754
  # @return [Array<Symbol>]
3138
3755
  end
3139
3756
 
3757
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig#precalculated_tax_config
3758
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
3759
+ # @!attribute tax_amount
3760
+ # Amount of tax to be applied. This should be in the same currency and
3761
+ # denomination as the commit's invoice schedule
3762
+ #
3763
+ # @return [Float]
3764
+ required :tax_amount, Float
3765
+
3766
+ # @!attribute tax_name
3767
+ # Name of the tax to be applied. This may be used in an invoice line item
3768
+ # description.
3769
+ #
3770
+ # @return [String, nil]
3771
+ optional :tax_name, String
3772
+
3773
+ # @!method initialize(tax_amount:, tax_name: nil)
3774
+ # Some parameter documentations has been truncated, see
3775
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig}
3776
+ # for more details.
3777
+ #
3778
+ # Only applicable if using PRECALCULATED as your tax type.
3779
+ #
3780
+ # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
3781
+ #
3782
+ # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
3783
+ end
3784
+
3140
3785
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig#stripe_config
3141
3786
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
3142
3787
  # @!attribute payment_type
@@ -3148,10 +3793,23 @@ module MetronomeSDK
3148
3793
  MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
3149
3794
  }
3150
3795
 
3151
- # @!method initialize(payment_type:)
3152
- # Only applicable if using Stripe as your payment gateway through Metronome.
3796
+ # @!attribute invoice_metadata
3797
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
3798
+ # your payment type.
3799
+ #
3800
+ # @return [Hash{Symbol=>String}, nil]
3801
+ optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
3802
+
3803
+ # @!method initialize(payment_type:, invoice_metadata: nil)
3804
+ # Some parameter documentations has been truncated, see
3805
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig}
3806
+ # for more details.
3807
+ #
3808
+ # Only applicable if using STRIPE as your payment gateway type.
3153
3809
  #
3154
3810
  # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
3811
+ #
3812
+ # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
3155
3813
 
3156
3814
  # If left blank, will default to INVOICE
3157
3815
  #
@@ -3177,6 +3835,8 @@ module MetronomeSDK
3177
3835
 
3178
3836
  NONE = :NONE
3179
3837
  STRIPE = :STRIPE
3838
+ ANROK = :ANROK
3839
+ PRECALCULATED = :PRECALCULATED
3180
3840
 
3181
3841
  # @!method self.values
3182
3842
  # @return [Array<Symbol>]
@@ -3413,19 +4073,28 @@ module MetronomeSDK
3413
4073
  optional :access_schedule, -> { MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule }
3414
4074
 
3415
4075
  # @!attribute applicable_product_ids
3416
- # Which products the commit applies to. If both applicable_product_ids and
3417
- # applicable_product_tags are not provided, the commit applies to all products.
4076
+ # Which products the commit applies to. If applicable_product_ids,
4077
+ # applicable_product_tags or specifiers are not provided, the commit applies to
4078
+ # all products.
3418
4079
  #
3419
4080
  # @return [Array<String>, nil]
3420
4081
  optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
3421
4082
 
3422
4083
  # @!attribute applicable_product_tags
3423
- # Which tags the commit applies to. If both applicable_product_ids and
3424
- # applicable_product_tags are not provided, the commit applies to all products.
4084
+ # Which tags the commit applies to. If applicable_product_ids,
4085
+ # applicable_product_tags or specifiers are not provided, the commit applies to
4086
+ # all products.
3425
4087
  #
3426
4088
  # @return [Array<String>, nil]
3427
4089
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
3428
4090
 
4091
+ # @!attribute hierarchy_configuration
4092
+ # Optional configuration for commit hierarchy access control
4093
+ #
4094
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration, nil]
4095
+ optional :hierarchy_configuration,
4096
+ -> { MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration }
4097
+
3429
4098
  # @!attribute invoice_schedule
3430
4099
  #
3431
4100
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule, nil]
@@ -3449,7 +4118,7 @@ module MetronomeSDK
3449
4118
  # @return [Float, nil]
3450
4119
  optional :rollover_fraction, Float, nil?: true
3451
4120
 
3452
- # @!method initialize(commit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, invoice_schedule: nil, netsuite_sales_order_id: nil, product_id: nil, rollover_fraction: nil)
4121
+ # @!method initialize(commit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, hierarchy_configuration: nil, invoice_schedule: nil, netsuite_sales_order_id: nil, product_id: nil, rollover_fraction: nil)
3453
4122
  # Some parameter documentations has been truncated, see
3454
4123
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit} for more details.
3455
4124
  #
@@ -3457,9 +4126,11 @@ module MetronomeSDK
3457
4126
  #
3458
4127
  # @param access_schedule [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule]
3459
4128
  #
3460
- # @param applicable_product_ids [Array<String>, nil] Which products the commit applies to. If both applicable_product_ids and applica
4129
+ # @param applicable_product_ids [Array<String>, nil] Which products the commit applies to. If applicable_product_ids, applicable_prod
4130
+ #
4131
+ # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If applicable*product_ids, applicable_product*
3461
4132
  #
3462
- # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If both applicable*product_ids and applicable*
4133
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration] Optional configuration for commit hierarchy access control
3463
4134
  #
3464
4135
  # @param invoice_schedule [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule]
3465
4136
  #
@@ -3561,6 +4232,117 @@ module MetronomeSDK
3561
4232
  end
3562
4233
  end
3563
4234
 
4235
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit#hierarchy_configuration
4236
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
4237
+ # @!attribute child_access
4238
+ #
4239
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
4240
+ required :child_access,
4241
+ union: -> {
4242
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess
4243
+ }
4244
+
4245
+ # @!method initialize(child_access:)
4246
+ # Optional configuration for commit hierarchy access control
4247
+ #
4248
+ # @param child_access [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
4249
+
4250
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration#child_access
4251
+ module ChildAccess
4252
+ extend MetronomeSDK::Internal::Type::Union
4253
+
4254
+ variant -> {
4255
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
4256
+ }
4257
+
4258
+ variant -> {
4259
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
4260
+ }
4261
+
4262
+ variant -> {
4263
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
4264
+ }
4265
+
4266
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
4267
+ # @!attribute type
4268
+ #
4269
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
4270
+ required :type,
4271
+ enum: -> {
4272
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
4273
+ }
4274
+
4275
+ # @!method initialize(type:)
4276
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
4277
+
4278
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
4279
+ module Type
4280
+ extend MetronomeSDK::Internal::Type::Enum
4281
+
4282
+ ALL = :ALL
4283
+
4284
+ # @!method self.values
4285
+ # @return [Array<Symbol>]
4286
+ end
4287
+ end
4288
+
4289
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
4290
+ # @!attribute type
4291
+ #
4292
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
4293
+ required :type,
4294
+ enum: -> {
4295
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
4296
+ }
4297
+
4298
+ # @!method initialize(type:)
4299
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
4300
+
4301
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
4302
+ module Type
4303
+ extend MetronomeSDK::Internal::Type::Enum
4304
+
4305
+ NONE = :NONE
4306
+
4307
+ # @!method self.values
4308
+ # @return [Array<Symbol>]
4309
+ end
4310
+ end
4311
+
4312
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
4313
+ # @!attribute contract_ids
4314
+ #
4315
+ # @return [Array<String>]
4316
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
4317
+
4318
+ # @!attribute type
4319
+ #
4320
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
4321
+ required :type,
4322
+ enum: -> {
4323
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
4324
+ }
4325
+
4326
+ # @!method initialize(contract_ids:, type:)
4327
+ # @param contract_ids [Array<String>]
4328
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
4329
+
4330
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
4331
+ module Type
4332
+ extend MetronomeSDK::Internal::Type::Enum
4333
+
4334
+ CONTRACT_IDS = :CONTRACT_IDS
4335
+
4336
+ # @!method self.values
4337
+ # @return [Array<Symbol>]
4338
+ end
4339
+ end
4340
+
4341
+ # @!method self.variants
4342
+ # @return [Array(MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
4343
+ end
4344
+ end
4345
+
3564
4346
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit#invoice_schedule
3565
4347
  class InvoiceSchedule < MetronomeSDK::Internal::Type::BaseModel
3566
4348
  # @!attribute add_schedule_items
@@ -3678,19 +4460,28 @@ module MetronomeSDK
3678
4460
  optional :access_schedule, -> { MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule }
3679
4461
 
3680
4462
  # @!attribute applicable_product_ids
3681
- # Which products the commit applies to. If both applicable_product_ids and
3682
- # applicable_product_tags are not provided, the commit applies to all products.
4463
+ # Which products the commit applies to. If applicable_product_ids,
4464
+ # applicable_product_tags or specifiers are not provided, the commit applies to
4465
+ # all products.
3683
4466
  #
3684
4467
  # @return [Array<String>, nil]
3685
4468
  optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
3686
4469
 
3687
4470
  # @!attribute applicable_product_tags
3688
- # Which tags the commit applies to. If both applicable_product_ids and
3689
- # applicable_product_tags are not provided, the commit applies to all products.
4471
+ # Which tags the commit applies to. If applicable_product_ids,
4472
+ # applicable_product_tags or specifiers are not provided, the commit applies to
4473
+ # all products.
3690
4474
  #
3691
4475
  # @return [Array<String>, nil]
3692
4476
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
3693
4477
 
4478
+ # @!attribute hierarchy_configuration
4479
+ # Optional configuration for commit hierarchy access control
4480
+ #
4481
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration, nil]
4482
+ optional :hierarchy_configuration,
4483
+ -> { MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration }
4484
+
3694
4485
  # @!attribute netsuite_sales_order_id
3695
4486
  #
3696
4487
  # @return [String, nil]
@@ -3701,7 +4492,7 @@ module MetronomeSDK
3701
4492
  # @return [String, nil]
3702
4493
  optional :product_id, String
3703
4494
 
3704
- # @!method initialize(credit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, netsuite_sales_order_id: nil, product_id: nil)
4495
+ # @!method initialize(credit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, hierarchy_configuration: nil, netsuite_sales_order_id: nil, product_id: nil)
3705
4496
  # Some parameter documentations has been truncated, see
3706
4497
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit} for more details.
3707
4498
  #
@@ -3709,9 +4500,11 @@ module MetronomeSDK
3709
4500
  #
3710
4501
  # @param access_schedule [MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule]
3711
4502
  #
3712
- # @param applicable_product_ids [Array<String>, nil] Which products the commit applies to. If both applicable_product_ids and applica
4503
+ # @param applicable_product_ids [Array<String>, nil] Which products the commit applies to. If applicable_product_ids, applicable_prod
3713
4504
  #
3714
- # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If both applicable*product_ids and applicable*
4505
+ # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If applicable*product_ids, applicable_product*
4506
+ #
4507
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration] Optional configuration for commit hierarchy access control
3715
4508
  #
3716
4509
  # @param netsuite_sales_order_id [String, nil]
3717
4510
  #
@@ -3808,6 +4601,117 @@ module MetronomeSDK
3808
4601
  # @param starting_at [Time]
3809
4602
  end
3810
4603
  end
4604
+
4605
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit#hierarchy_configuration
4606
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
4607
+ # @!attribute child_access
4608
+ #
4609
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
4610
+ required :child_access,
4611
+ union: -> {
4612
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess
4613
+ }
4614
+
4615
+ # @!method initialize(child_access:)
4616
+ # Optional configuration for commit hierarchy access control
4617
+ #
4618
+ # @param child_access [MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
4619
+
4620
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration#child_access
4621
+ module ChildAccess
4622
+ extend MetronomeSDK::Internal::Type::Union
4623
+
4624
+ variant -> {
4625
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
4626
+ }
4627
+
4628
+ variant -> {
4629
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
4630
+ }
4631
+
4632
+ variant -> {
4633
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
4634
+ }
4635
+
4636
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
4637
+ # @!attribute type
4638
+ #
4639
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
4640
+ required :type,
4641
+ enum: -> {
4642
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
4643
+ }
4644
+
4645
+ # @!method initialize(type:)
4646
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
4647
+
4648
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
4649
+ module Type
4650
+ extend MetronomeSDK::Internal::Type::Enum
4651
+
4652
+ ALL = :ALL
4653
+
4654
+ # @!method self.values
4655
+ # @return [Array<Symbol>]
4656
+ end
4657
+ end
4658
+
4659
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
4660
+ # @!attribute type
4661
+ #
4662
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
4663
+ required :type,
4664
+ enum: -> {
4665
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
4666
+ }
4667
+
4668
+ # @!method initialize(type:)
4669
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
4670
+
4671
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
4672
+ module Type
4673
+ extend MetronomeSDK::Internal::Type::Enum
4674
+
4675
+ NONE = :NONE
4676
+
4677
+ # @!method self.values
4678
+ # @return [Array<Symbol>]
4679
+ end
4680
+ end
4681
+
4682
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
4683
+ # @!attribute contract_ids
4684
+ #
4685
+ # @return [Array<String>]
4686
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
4687
+
4688
+ # @!attribute type
4689
+ #
4690
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
4691
+ required :type,
4692
+ enum: -> {
4693
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
4694
+ }
4695
+
4696
+ # @!method initialize(contract_ids:, type:)
4697
+ # @param contract_ids [Array<String>]
4698
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
4699
+
4700
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
4701
+ module Type
4702
+ extend MetronomeSDK::Internal::Type::Enum
4703
+
4704
+ CONTRACT_IDS = :CONTRACT_IDS
4705
+
4706
+ # @!method self.values
4707
+ # @return [Array<Symbol>]
4708
+ end
4709
+ end
4710
+
4711
+ # @!method self.variants
4712
+ # @return [Array(MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
4713
+ end
4714
+ end
3811
4715
  end
3812
4716
 
3813
4717
  class UpdatePrepaidBalanceThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
@@ -3819,6 +4723,13 @@ module MetronomeSDK
3819
4723
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit
3820
4724
  }
3821
4725
 
4726
+ # @!attribute custom_credit_type_id
4727
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
4728
+ # commit amount will be in terms of this credit type instead of the fiat currency.
4729
+ #
4730
+ # @return [String, nil]
4731
+ optional :custom_credit_type_id, String, nil?: true
4732
+
3822
4733
  # @!attribute is_enabled
3823
4734
  # When set to false, the contract will not be evaluated against the
3824
4735
  # threshold_amount. Toggling to true will result an immediate evaluation,
@@ -3848,13 +4759,15 @@ module MetronomeSDK
3848
4759
  # @return [Float, nil]
3849
4760
  optional :threshold_amount, Float
3850
4761
 
3851
- # @!method initialize(commit: nil, is_enabled: nil, payment_gate_config: nil, recharge_to_amount: nil, threshold_amount: nil)
4762
+ # @!method initialize(commit: nil, custom_credit_type_id: nil, is_enabled: nil, payment_gate_config: nil, recharge_to_amount: nil, threshold_amount: nil)
3852
4763
  # Some parameter documentations has been truncated, see
3853
4764
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration}
3854
4765
  # for more details.
3855
4766
  #
3856
4767
  # @param commit [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit]
3857
4768
  #
4769
+ # @param custom_credit_type_id [String, nil] If provided, the threshold, recharge-to amount, and the resulting threshold comm
4770
+ #
3858
4771
  # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
3859
4772
  #
3860
4773
  # @param payment_gate_config [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig]
@@ -3871,14 +4784,14 @@ module MetronomeSDK
3871
4784
  # products.
3872
4785
  #
3873
4786
  # @return [Array<String>, nil]
3874
- optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
4787
+ optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
3875
4788
 
3876
4789
  # @!attribute applicable_product_tags
3877
4790
  # Which tags the threshold commit applies to. If both applicable_product_ids and
3878
4791
  # applicable_product_tags are not provided, the commit applies to all products.
3879
4792
  #
3880
4793
  # @return [Array<String>, nil]
3881
- optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
4794
+ optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
3882
4795
 
3883
4796
  # @!attribute description
3884
4797
  #
@@ -3909,16 +4822,17 @@ module MetronomeSDK
3909
4822
  optional :specifiers,
3910
4823
  -> {
3911
4824
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier]
3912
- }
4825
+ },
4826
+ nil?: true
3913
4827
 
3914
4828
  # @!method initialize(applicable_product_ids: nil, applicable_product_tags: nil, description: nil, name: nil, product_id: nil, specifiers: nil)
3915
4829
  # Some parameter documentations has been truncated, see
3916
4830
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit}
3917
4831
  # for more details.
3918
4832
  #
3919
- # @param applicable_product_ids [Array<String>] Which products the threshold commit applies to. If both applicable_product_ids a
4833
+ # @param applicable_product_ids [Array<String>, nil] Which products the threshold commit applies to. If both applicable_product_ids a
3920
4834
  #
3921
- # @param applicable_product_tags [Array<String>] Which tags the threshold commit applies to. If both applicable_product_ids and a
4835
+ # @param applicable_product_tags [Array<String>, nil] Which tags the threshold commit applies to. If both applicable_product_ids and a
3922
4836
  #
3923
4837
  # @param description [String]
3924
4838
  #
@@ -3926,7 +4840,7 @@ module MetronomeSDK
3926
4840
  #
3927
4841
  # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
3928
4842
  #
3929
- # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
4843
+ # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier>, nil] List of filters that determine what kind of customer usage draws down a commit o
3930
4844
 
3931
4845
  class Specifier < MetronomeSDK::Internal::Type::BaseModel
3932
4846
  # @!attribute presentation_group_values
@@ -3981,8 +4895,17 @@ module MetronomeSDK
3981
4895
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType
3982
4896
  }
3983
4897
 
4898
+ # @!attribute precalculated_tax_config
4899
+ # Only applicable if using PRECALCULATED as your tax type.
4900
+ #
4901
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig, nil]
4902
+ optional :precalculated_tax_config,
4903
+ -> {
4904
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
4905
+ }
4906
+
3984
4907
  # @!attribute stripe_config
3985
- # Only applicable if using Stripe as your payment gateway through Metronome.
4908
+ # Only applicable if using STRIPE as your payment gateway type.
3986
4909
  #
3987
4910
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
3988
4911
  optional :stripe_config,
@@ -4001,14 +4924,16 @@ module MetronomeSDK
4001
4924
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType
4002
4925
  }
4003
4926
 
4004
- # @!method initialize(payment_gate_type:, stripe_config: nil, tax_type: nil)
4927
+ # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
4005
4928
  # Some parameter documentations has been truncated, see
4006
4929
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig}
4007
4930
  # for more details.
4008
4931
  #
4009
4932
  # @param payment_gate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
4010
4933
  #
4011
- # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using Stripe as your payment gateway through Metronome.
4934
+ # @param precalculated_tax_config [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
4935
+ #
4936
+ # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gateway type.
4012
4937
  #
4013
4938
  # @param tax_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
4014
4939
 
@@ -4029,6 +4954,34 @@ module MetronomeSDK
4029
4954
  # @return [Array<Symbol>]
4030
4955
  end
4031
4956
 
4957
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig#precalculated_tax_config
4958
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
4959
+ # @!attribute tax_amount
4960
+ # Amount of tax to be applied. This should be in the same currency and
4961
+ # denomination as the commit's invoice schedule
4962
+ #
4963
+ # @return [Float]
4964
+ required :tax_amount, Float
4965
+
4966
+ # @!attribute tax_name
4967
+ # Name of the tax to be applied. This may be used in an invoice line item
4968
+ # description.
4969
+ #
4970
+ # @return [String, nil]
4971
+ optional :tax_name, String
4972
+
4973
+ # @!method initialize(tax_amount:, tax_name: nil)
4974
+ # Some parameter documentations has been truncated, see
4975
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig}
4976
+ # for more details.
4977
+ #
4978
+ # Only applicable if using PRECALCULATED as your tax type.
4979
+ #
4980
+ # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
4981
+ #
4982
+ # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
4983
+ end
4984
+
4032
4985
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig#stripe_config
4033
4986
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
4034
4987
  # @!attribute payment_type
@@ -4040,10 +4993,23 @@ module MetronomeSDK
4040
4993
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
4041
4994
  }
4042
4995
 
4043
- # @!method initialize(payment_type:)
4044
- # Only applicable if using Stripe as your payment gateway through Metronome.
4996
+ # @!attribute invoice_metadata
4997
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
4998
+ # your payment type.
4999
+ #
5000
+ # @return [Hash{Symbol=>String}, nil]
5001
+ optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
5002
+
5003
+ # @!method initialize(payment_type:, invoice_metadata: nil)
5004
+ # Some parameter documentations has been truncated, see
5005
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig}
5006
+ # for more details.
5007
+ #
5008
+ # Only applicable if using STRIPE as your payment gateway type.
4045
5009
  #
4046
5010
  # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
5011
+ #
5012
+ # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
4047
5013
 
4048
5014
  # If left blank, will default to INVOICE
4049
5015
  #
@@ -4069,6 +5035,8 @@ module MetronomeSDK
4069
5035
 
4070
5036
  NONE = :NONE
4071
5037
  STRIPE = :STRIPE
5038
+ ANROK = :ANROK
5039
+ PRECALCULATED = :PRECALCULATED
4072
5040
 
4073
5041
  # @!method self.values
4074
5042
  # @return [Array<Symbol>]
@@ -4403,8 +5371,17 @@ module MetronomeSDK
4403
5371
  MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType
4404
5372
  }
4405
5373
 
5374
+ # @!attribute precalculated_tax_config
5375
+ # Only applicable if using PRECALCULATED as your tax type.
5376
+ #
5377
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig, nil]
5378
+ optional :precalculated_tax_config,
5379
+ -> {
5380
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
5381
+ }
5382
+
4406
5383
  # @!attribute stripe_config
4407
- # Only applicable if using Stripe as your payment gateway through Metronome.
5384
+ # Only applicable if using STRIPE as your payment gateway type.
4408
5385
  #
4409
5386
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
4410
5387
  optional :stripe_config,
@@ -4423,14 +5400,16 @@ module MetronomeSDK
4423
5400
  MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType
4424
5401
  }
4425
5402
 
4426
- # @!method initialize(payment_gate_type:, stripe_config: nil, tax_type: nil)
5403
+ # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
4427
5404
  # Some parameter documentations has been truncated, see
4428
5405
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig}
4429
5406
  # for more details.
4430
5407
  #
4431
5408
  # @param payment_gate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
4432
5409
  #
4433
- # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using Stripe as your payment gateway through Metronome.
5410
+ # @param precalculated_tax_config [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
5411
+ #
5412
+ # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gateway type.
4434
5413
  #
4435
5414
  # @param tax_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
4436
5415
 
@@ -4451,6 +5430,34 @@ module MetronomeSDK
4451
5430
  # @return [Array<Symbol>]
4452
5431
  end
4453
5432
 
5433
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig#precalculated_tax_config
5434
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
5435
+ # @!attribute tax_amount
5436
+ # Amount of tax to be applied. This should be in the same currency and
5437
+ # denomination as the commit's invoice schedule
5438
+ #
5439
+ # @return [Float]
5440
+ required :tax_amount, Float
5441
+
5442
+ # @!attribute tax_name
5443
+ # Name of the tax to be applied. This may be used in an invoice line item
5444
+ # description.
5445
+ #
5446
+ # @return [String, nil]
5447
+ optional :tax_name, String
5448
+
5449
+ # @!method initialize(tax_amount:, tax_name: nil)
5450
+ # Some parameter documentations has been truncated, see
5451
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig}
5452
+ # for more details.
5453
+ #
5454
+ # Only applicable if using PRECALCULATED as your tax type.
5455
+ #
5456
+ # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
5457
+ #
5458
+ # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
5459
+ end
5460
+
4454
5461
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig#stripe_config
4455
5462
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
4456
5463
  # @!attribute payment_type
@@ -4462,10 +5469,23 @@ module MetronomeSDK
4462
5469
  MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
4463
5470
  }
4464
5471
 
4465
- # @!method initialize(payment_type:)
4466
- # Only applicable if using Stripe as your payment gateway through Metronome.
5472
+ # @!attribute invoice_metadata
5473
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
5474
+ # your payment type.
5475
+ #
5476
+ # @return [Hash{Symbol=>String}, nil]
5477
+ optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
5478
+
5479
+ # @!method initialize(payment_type:, invoice_metadata: nil)
5480
+ # Some parameter documentations has been truncated, see
5481
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig}
5482
+ # for more details.
5483
+ #
5484
+ # Only applicable if using STRIPE as your payment gateway type.
4467
5485
  #
4468
5486
  # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
5487
+ #
5488
+ # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
4469
5489
 
4470
5490
  # If left blank, will default to INVOICE
4471
5491
  #
@@ -4491,6 +5511,8 @@ module MetronomeSDK
4491
5511
 
4492
5512
  NONE = :NONE
4493
5513
  STRIPE = :STRIPE
5514
+ ANROK = :ANROK
5515
+ PRECALCULATED = :PRECALCULATED
4494
5516
 
4495
5517
  # @!method self.values
4496
5518
  # @return [Array<Symbol>]