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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (475) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +85 -0
  3. data/README.md +120 -74
  4. data/SECURITY.md +2 -2
  5. data/lib/metronome_sdk/client.rb +4 -4
  6. data/lib/metronome_sdk/errors.rb +22 -0
  7. data/lib/metronome_sdk/internal/transport/base_client.rb +10 -2
  8. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +3 -1
  9. data/lib/metronome_sdk/internal/type/array_of.rb +14 -1
  10. data/lib/metronome_sdk/internal/type/base_model.rb +92 -23
  11. data/lib/metronome_sdk/internal/type/boolean.rb +15 -1
  12. data/lib/metronome_sdk/internal/type/converter.rb +42 -34
  13. data/lib/metronome_sdk/internal/type/enum.rb +25 -2
  14. data/lib/metronome_sdk/internal/type/file_input.rb +13 -1
  15. data/lib/metronome_sdk/internal/type/hash_of.rb +14 -1
  16. data/lib/metronome_sdk/internal/type/union.rb +27 -7
  17. data/lib/metronome_sdk/internal/type/unknown.rb +15 -1
  18. data/lib/metronome_sdk/internal/util.rb +62 -10
  19. data/lib/metronome_sdk/internal.rb +3 -0
  20. data/lib/metronome_sdk/models/commit.rb +230 -87
  21. data/lib/metronome_sdk/models/contract_without_amendments.rb +551 -185
  22. data/lib/metronome_sdk/models/credit.rb +201 -51
  23. data/lib/metronome_sdk/models/discount.rb +5 -5
  24. data/lib/metronome_sdk/models/event_type_filter.rb +1 -1
  25. data/lib/metronome_sdk/models/override.rb +53 -34
  26. data/lib/metronome_sdk/models/pro_service.rb +2 -2
  27. data/lib/metronome_sdk/models/property_filter.rb +1 -1
  28. data/lib/metronome_sdk/models/rate.rb +9 -9
  29. data/lib/metronome_sdk/models/schedule_duration.rb +4 -4
  30. data/lib/metronome_sdk/models/schedule_point_in_time.rb +11 -11
  31. data/lib/metronome_sdk/models/scheduled_charge.rb +5 -5
  32. data/lib/metronome_sdk/models/v1/alert_archive_response.rb +2 -2
  33. data/lib/metronome_sdk/models/v1/alert_create_params.rb +15 -12
  34. data/lib/metronome_sdk/models/v1/alert_create_response.rb +2 -2
  35. data/lib/metronome_sdk/models/v1/audit_log_list_params.rb +2 -2
  36. data/lib/metronome_sdk/models/v1/billable_metric_archive_response.rb +2 -2
  37. data/lib/metronome_sdk/models/v1/billable_metric_create_params.rb +6 -6
  38. data/lib/metronome_sdk/models/v1/billable_metric_create_response.rb +2 -2
  39. data/lib/metronome_sdk/models/v1/billable_metric_list_response.rb +4 -4
  40. data/lib/metronome_sdk/models/v1/billable_metric_retrieve_response.rb +4 -4
  41. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +577 -152
  42. data/lib/metronome_sdk/models/v1/contract_amend_response.rb +2 -2
  43. data/lib/metronome_sdk/models/v1/contract_archive_response.rb +2 -2
  44. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_params.rb +12 -12
  45. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_response.rb +2 -2
  46. data/lib/metronome_sdk/models/v1/contract_create_params.rb +1317 -341
  47. data/lib/metronome_sdk/models/v1/contract_create_response.rb +2 -2
  48. data/lib/metronome_sdk/models/v1/contract_list_balances_response.rb +3 -7
  49. data/lib/metronome_sdk/models/v1/contract_list_response.rb +421 -36
  50. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rb +33 -5
  51. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rb +28 -7
  52. data/lib/metronome_sdk/models/v1/contract_retrieve_response.rb +422 -36
  53. data/lib/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_params.rb +34 -0
  54. data/lib/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_response.rb +81 -0
  55. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_params.rb +4 -4
  56. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rb +2 -2
  57. data/lib/metronome_sdk/models/v1/contract_update_end_date_response.rb +2 -2
  58. data/lib/metronome_sdk/models/v1/contracts/product_archive_response.rb +2 -2
  59. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +6 -6
  60. data/lib/metronome_sdk/models/v1/contracts/product_create_response.rb +2 -2
  61. data/lib/metronome_sdk/models/v1/contracts/product_list_item_state.rb +5 -5
  62. data/lib/metronome_sdk/models/v1/contracts/product_list_params.rb +4 -4
  63. data/lib/metronome_sdk/models/v1/contracts/product_list_response.rb +8 -8
  64. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_response.rb +8 -8
  65. data/lib/metronome_sdk/models/v1/contracts/product_update_params.rb +4 -4
  66. data/lib/metronome_sdk/models/v1/contracts/product_update_response.rb +2 -2
  67. data/lib/metronome_sdk/models/v1/contracts/quantity_conversion.rb +3 -3
  68. data/lib/metronome_sdk/models/v1/contracts/quantity_rounding.rb +3 -3
  69. data/lib/metronome_sdk/models/v1/contracts/rate_card_archive_response.rb +2 -2
  70. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_params.rb +4 -4
  71. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_response.rb +2 -2
  72. data/lib/metronome_sdk/models/v1/contracts/rate_card_list_response.rb +4 -4
  73. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rb +33 -5
  74. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rb +26 -5
  75. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rb +4 -4
  76. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_params.rb +2 -2
  77. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_response.rb +2 -2
  78. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rb +2 -2
  79. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_params.rb +2 -2
  80. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rb +2 -2
  81. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +46 -18
  82. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rb +2 -2
  83. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +36 -12
  84. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +6 -6
  85. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rb +33 -5
  86. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rb +26 -5
  87. data/lib/metronome_sdk/models/v1/credit_grant_create_params.rb +12 -20
  88. data/lib/metronome_sdk/models/v1/credit_grant_create_response.rb +2 -2
  89. data/lib/metronome_sdk/models/v1/credit_grant_edit_response.rb +2 -2
  90. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_params.rb +20 -1
  91. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_response.rb +6 -6
  92. data/lib/metronome_sdk/models/v1/credit_grant_list_response.rb +8 -8
  93. data/lib/metronome_sdk/models/v1/credit_grant_void_response.rb +2 -2
  94. data/lib/metronome_sdk/models/v1/credit_ledger_entry.rb +1 -1
  95. data/lib/metronome_sdk/models/v1/custom_field_add_key_params.rb +2 -2
  96. data/lib/metronome_sdk/models/v1/custom_field_delete_values_params.rb +2 -2
  97. data/lib/metronome_sdk/models/v1/custom_field_list_keys_params.rb +2 -2
  98. data/lib/metronome_sdk/models/v1/custom_field_remove_key_params.rb +2 -2
  99. data/lib/metronome_sdk/models/v1/custom_field_set_values_params.rb +2 -2
  100. data/lib/metronome_sdk/models/v1/customer.rb +1 -1
  101. data/lib/metronome_sdk/models/v1/customer_archive_response.rb +2 -2
  102. data/lib/metronome_sdk/models/v1/customer_create_params.rb +20 -20
  103. data/lib/metronome_sdk/models/v1/customer_create_response.rb +2 -2
  104. data/lib/metronome_sdk/models/v1/customer_detail.rb +10 -10
  105. data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_response.rb +4 -4
  106. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +115 -0
  107. data/lib/metronome_sdk/models/v1/customer_preview_events_response.rb +18 -0
  108. data/lib/metronome_sdk/models/v1/customer_retrieve_response.rb +2 -2
  109. data/lib/metronome_sdk/models/v1/customer_set_name_response.rb +2 -2
  110. data/lib/metronome_sdk/models/v1/customers/alert_list_params.rb +2 -2
  111. data/lib/metronome_sdk/models/v1/customers/alert_list_response.rb +2 -2
  112. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +2 -2
  113. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_response.rb +2 -2
  114. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +6 -6
  115. data/lib/metronome_sdk/models/v1/customers/billing_config_delete_params.rb +2 -2
  116. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rb +2 -2
  117. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +9 -1
  118. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +86 -32
  119. data/lib/metronome_sdk/models/v1/customers/commit_create_response.rb +2 -2
  120. data/lib/metronome_sdk/models/v1/customers/commit_list_response.rb +2 -2
  121. data/lib/metronome_sdk/models/v1/customers/commit_update_end_date_response.rb +2 -2
  122. data/lib/metronome_sdk/models/v1/customers/credit_create_params.rb +59 -7
  123. data/lib/metronome_sdk/models/v1/customers/credit_create_response.rb +2 -2
  124. data/lib/metronome_sdk/models/v1/customers/credit_list_response.rb +2 -2
  125. data/lib/metronome_sdk/models/v1/customers/credit_update_end_date_response.rb +2 -2
  126. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +24 -24
  127. data/lib/metronome_sdk/models/v1/customers/invoice.rb +74 -73
  128. data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_params.rb +4 -4
  129. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +2 -2
  130. data/lib/metronome_sdk/models/v1/customers/invoice_retrieve_response.rb +2 -2
  131. data/lib/metronome_sdk/models/v1/customers/plan_add_params.rb +16 -15
  132. data/lib/metronome_sdk/models/v1/customers/plan_add_response.rb +2 -2
  133. data/lib/metronome_sdk/models/v1/customers/plan_list_response.rb +2 -2
  134. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +14 -13
  135. data/lib/metronome_sdk/models/v1/plan_detail.rb +18 -18
  136. data/lib/metronome_sdk/models/v1/plan_get_details_response.rb +2 -2
  137. data/lib/metronome_sdk/models/v1/plan_list_charges_response.rb +2 -2
  138. data/lib/metronome_sdk/models/v1/plan_list_customers_params.rb +2 -2
  139. data/lib/metronome_sdk/models/v1/plan_list_customers_response.rb +2 -2
  140. data/lib/metronome_sdk/models/v1/rollover_amount_max_amount.rb +3 -3
  141. data/lib/metronome_sdk/models/v1/rollover_amount_max_percentage.rb +3 -3
  142. data/lib/metronome_sdk/models/v1/usage_ingest_params.rb +2 -2
  143. data/lib/metronome_sdk/models/v1/usage_list_params.rb +9 -8
  144. data/lib/metronome_sdk/models/v1/usage_list_with_groups_params.rb +5 -5
  145. data/lib/metronome_sdk/models/v1/usage_search_params.rb +24 -0
  146. data/lib/metronome_sdk/models/v1/usage_search_response.rb +249 -0
  147. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +78 -23
  148. data/lib/metronome_sdk/models/v2/contract_edit_commit_response.rb +2 -2
  149. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +62 -9
  150. data/lib/metronome_sdk/models/v2/contract_edit_credit_response.rb +2 -2
  151. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +1995 -443
  152. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +2 -2
  153. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +1959 -140
  154. data/lib/metronome_sdk/models/v2/contract_list_response.rb +963 -91
  155. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +964 -91
  156. data/lib/metronome_sdk/models.rb +30 -19
  157. data/lib/metronome_sdk/resources/v1/alerts.rb +4 -4
  158. data/lib/metronome_sdk/resources/v1/audit_logs.rb +1 -1
  159. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +3 -3
  160. data/lib/metronome_sdk/resources/v1/contracts/products.rb +9 -6
  161. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rb +1 -1
  162. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +8 -6
  163. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +4 -4
  164. data/lib/metronome_sdk/resources/v1/contracts.rb +59 -28
  165. data/lib/metronome_sdk/resources/v1/credit_grants.rb +7 -5
  166. data/lib/metronome_sdk/resources/v1/custom_fields.rb +5 -5
  167. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +2 -2
  168. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +5 -5
  169. data/lib/metronome_sdk/resources/v1/customers/commits.rb +9 -7
  170. data/lib/metronome_sdk/resources/v1/customers/credits.rb +5 -3
  171. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +4 -4
  172. data/lib/metronome_sdk/resources/v1/customers/plans.rb +3 -3
  173. data/lib/metronome_sdk/resources/v1/customers.rb +43 -4
  174. data/lib/metronome_sdk/resources/v1/dashboards.rb +4 -4
  175. data/lib/metronome_sdk/resources/v1/plans.rb +1 -1
  176. data/lib/metronome_sdk/resources/v1/usage.rb +30 -5
  177. data/lib/metronome_sdk/resources/v2/contracts.rb +45 -31
  178. data/lib/metronome_sdk/version.rb +1 -1
  179. data/lib/metronome_sdk.rb +9 -1
  180. data/rbi/metronome_sdk/errors.rbi +16 -0
  181. data/rbi/metronome_sdk/internal/transport/pooled_net_requester.rbi +5 -1
  182. data/rbi/metronome_sdk/internal/type/array_of.rbi +6 -0
  183. data/rbi/metronome_sdk/internal/type/base_model.rbi +5 -0
  184. data/rbi/metronome_sdk/internal/type/boolean.rbi +8 -0
  185. data/rbi/metronome_sdk/internal/type/converter.rbi +15 -15
  186. data/rbi/metronome_sdk/internal/type/enum.rbi +5 -0
  187. data/rbi/metronome_sdk/internal/type/file_input.rbi +5 -0
  188. data/rbi/metronome_sdk/internal/type/hash_of.rbi +6 -0
  189. data/rbi/metronome_sdk/internal/type/union.rbi +10 -0
  190. data/rbi/metronome_sdk/internal/type/unknown.rbi +8 -0
  191. data/rbi/metronome_sdk/internal/util.rbi +36 -0
  192. data/rbi/metronome_sdk/internal.rbi +5 -0
  193. data/rbi/metronome_sdk/models/commit.rbi +376 -39
  194. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +791 -54
  195. data/rbi/metronome_sdk/models/credit.rbi +376 -25
  196. data/rbi/metronome_sdk/models/override.rbi +66 -0
  197. data/rbi/metronome_sdk/models/schedule_point_in_time.rbi +9 -9
  198. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +10 -4
  199. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +995 -17
  200. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +2220 -136
  201. data/rbi/metronome_sdk/models/v1/contract_list_balances_response.rbi +9 -2
  202. data/rbi/metronome_sdk/models/v1/contract_list_response.rbi +820 -28
  203. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rbi +72 -0
  204. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbi +66 -0
  205. data/rbi/metronome_sdk/models/v1/contract_retrieve_response.rbi +820 -28
  206. data/rbi/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_params.rbi +58 -0
  207. data/rbi/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_response.rbi +212 -0
  208. data/rbi/metronome_sdk/models/v1/contracts/product_list_params.rbi +3 -3
  209. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rbi +72 -0
  210. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbi +66 -0
  211. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +72 -0
  212. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +72 -0
  213. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rbi +72 -0
  214. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbi +66 -0
  215. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_params.rbi +58 -0
  216. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +214 -0
  217. data/rbi/metronome_sdk/models/v1/customer_preview_events_response.rbi +35 -0
  218. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +11 -0
  219. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +121 -8
  220. data/rbi/metronome_sdk/models/v1/customers/credit_create_params.rbi +109 -0
  221. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +5 -0
  222. data/rbi/metronome_sdk/models/v1/usage_search_params.rbi +48 -0
  223. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +438 -0
  224. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +113 -8
  225. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +101 -0
  226. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +3667 -315
  227. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +5965 -2014
  228. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +2279 -226
  229. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +2279 -226
  230. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -2
  231. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +2 -1
  232. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +5 -0
  233. data/rbi/metronome_sdk/resources/v1/contracts.rbi +36 -1
  234. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +4 -0
  235. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +15 -4
  236. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +9 -0
  237. data/rbi/metronome_sdk/resources/v1/customers.rbi +35 -1
  238. data/rbi/metronome_sdk/resources/v1/usage.rbi +17 -0
  239. data/rbi/metronome_sdk/resources/v2/contracts.rbi +65 -7
  240. data/sig/metronome_sdk/errors.rbs +9 -0
  241. data/sig/metronome_sdk/internal/transport/pooled_net_requester.rbs +2 -0
  242. data/sig/metronome_sdk/internal/type/array_of.rbs +3 -0
  243. data/sig/metronome_sdk/internal/type/base_model.rbs +2 -0
  244. data/sig/metronome_sdk/internal/type/boolean.rbs +3 -0
  245. data/sig/metronome_sdk/internal/type/converter.rbs +7 -1
  246. data/sig/metronome_sdk/internal/type/enum.rbs +2 -0
  247. data/sig/metronome_sdk/internal/type/file_input.rbs +2 -0
  248. data/sig/metronome_sdk/internal/type/hash_of.rbs +3 -0
  249. data/sig/metronome_sdk/internal/type/union.rbs +2 -0
  250. data/sig/metronome_sdk/internal/type/unknown.rbs +3 -0
  251. data/sig/metronome_sdk/internal/util.rbs +12 -0
  252. data/sig/metronome_sdk/internal.rbs +2 -0
  253. data/sig/metronome_sdk/models/base_usage_filter.rbs +6 -0
  254. data/sig/metronome_sdk/models/commit.rbs +374 -68
  255. data/sig/metronome_sdk/models/contract_without_amendments.rbs +620 -110
  256. data/sig/metronome_sdk/models/credit.rbs +286 -40
  257. data/sig/metronome_sdk/models/credit_type_data.rbs +2 -0
  258. data/sig/metronome_sdk/models/discount.rbs +11 -0
  259. data/sig/metronome_sdk/models/event_type_filter.rbs +5 -0
  260. data/sig/metronome_sdk/models/id.rbs +2 -0
  261. data/sig/metronome_sdk/models/override.rbs +92 -22
  262. data/sig/metronome_sdk/models/pro_service.rbs +11 -0
  263. data/sig/metronome_sdk/models/property_filter.rbs +7 -0
  264. data/sig/metronome_sdk/models/rate.rbs +16 -4
  265. data/sig/metronome_sdk/models/schedule_duration.rbs +12 -0
  266. data/sig/metronome_sdk/models/schedule_point_in_time.rbs +20 -6
  267. data/sig/metronome_sdk/models/scheduled_charge.rbs +12 -0
  268. data/sig/metronome_sdk/models/tier.rbs +2 -0
  269. data/sig/metronome_sdk/models/v1/alert_archive_params.rbs +6 -0
  270. data/sig/metronome_sdk/models/v1/alert_archive_response.rbs +2 -0
  271. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +29 -4
  272. data/sig/metronome_sdk/models/v1/alert_create_response.rbs +2 -0
  273. data/sig/metronome_sdk/models/v1/audit_log_list_params.rbs +11 -0
  274. data/sig/metronome_sdk/models/v1/audit_log_list_response.rbs +16 -0
  275. data/sig/metronome_sdk/models/v1/billable_metric_archive_params.rbs +2 -0
  276. data/sig/metronome_sdk/models/v1/billable_metric_archive_response.rbs +2 -0
  277. data/sig/metronome_sdk/models/v1/billable_metric_create_params.rbs +12 -0
  278. data/sig/metronome_sdk/models/v1/billable_metric_create_response.rbs +2 -0
  279. data/sig/metronome_sdk/models/v1/billable_metric_list_params.rbs +7 -0
  280. data/sig/metronome_sdk/models/v1/billable_metric_list_response.rbs +13 -0
  281. data/sig/metronome_sdk/models/v1/billable_metric_retrieve_params.rbs +5 -0
  282. data/sig/metronome_sdk/models/v1/billable_metric_retrieve_response.rbs +17 -0
  283. data/sig/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbs +11 -0
  284. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +719 -75
  285. data/sig/metronome_sdk/models/v1/contract_amend_response.rbs +2 -0
  286. data/sig/metronome_sdk/models/v1/contract_archive_params.rbs +7 -0
  287. data/sig/metronome_sdk/models/v1/contract_archive_response.rbs +2 -0
  288. data/sig/metronome_sdk/models/v1/contract_create_historical_invoices_params.rbs +47 -12
  289. data/sig/metronome_sdk/models/v1/contract_create_historical_invoices_response.rbs +2 -0
  290. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +1503 -250
  291. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +2 -0
  292. data/sig/metronome_sdk/models/v1/contract_list_balances_params.rbs +14 -0
  293. data/sig/metronome_sdk/models/v1/contract_list_balances_response.rbs +5 -0
  294. data/sig/metronome_sdk/models/v1/contract_list_params.rbs +10 -0
  295. data/sig/metronome_sdk/models/v1/contract_list_response.rbs +459 -10
  296. data/sig/metronome_sdk/models/v1/contract_retrieve_params.rbs +8 -0
  297. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rbs +39 -0
  298. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbs +48 -0
  299. data/sig/metronome_sdk/models/v1/contract_retrieve_response.rbs +459 -10
  300. data/sig/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_params.rbs +34 -0
  301. data/sig/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_response.rbs +101 -0
  302. data/sig/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_params.rbs +21 -0
  303. data/sig/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rbs +2 -0
  304. data/sig/metronome_sdk/models/v1/contract_set_usage_filter_params.rbs +9 -0
  305. data/sig/metronome_sdk/models/v1/contract_update_end_date_params.rbs +8 -0
  306. data/sig/metronome_sdk/models/v1/contract_update_end_date_response.rbs +2 -0
  307. data/sig/metronome_sdk/models/v1/contracts/named_schedule_retrieve_params.rbs +7 -0
  308. data/sig/metronome_sdk/models/v1/contracts/named_schedule_retrieve_response.rbs +10 -0
  309. data/sig/metronome_sdk/models/v1/contracts/named_schedule_update_params.rbs +9 -0
  310. data/sig/metronome_sdk/models/v1/contracts/product_archive_params.rbs +5 -0
  311. data/sig/metronome_sdk/models/v1/contracts/product_archive_response.rbs +2 -0
  312. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +18 -0
  313. data/sig/metronome_sdk/models/v1/contracts/product_create_response.rbs +2 -0
  314. data/sig/metronome_sdk/models/v1/contracts/product_list_item_state.rbs +19 -0
  315. data/sig/metronome_sdk/models/v1/contracts/product_list_params.rbs +7 -0
  316. data/sig/metronome_sdk/models/v1/contracts/product_list_response.rbs +29 -0
  317. data/sig/metronome_sdk/models/v1/contracts/product_retrieve_params.rbs +2 -0
  318. data/sig/metronome_sdk/models/v1/contracts/product_retrieve_response.rbs +33 -0
  319. data/sig/metronome_sdk/models/v1/contracts/product_update_params.rbs +19 -0
  320. data/sig/metronome_sdk/models/v1/contracts/product_update_response.rbs +2 -0
  321. data/sig/metronome_sdk/models/v1/contracts/quantity_conversion.rbs +10 -4
  322. data/sig/metronome_sdk/models/v1/contracts/quantity_rounding.rbs +9 -4
  323. data/sig/metronome_sdk/models/v1/contracts/rate_card_archive_params.rbs +2 -0
  324. data/sig/metronome_sdk/models/v1/contracts/rate_card_archive_response.rbs +2 -0
  325. data/sig/metronome_sdk/models/v1/contracts/rate_card_create_params.rbs +21 -0
  326. data/sig/metronome_sdk/models/v1/contracts/rate_card_create_response.rbs +2 -0
  327. data/sig/metronome_sdk/models/v1/contracts/rate_card_list_params.rbs +7 -0
  328. data/sig/metronome_sdk/models/v1/contracts/rate_card_list_response.rbs +23 -0
  329. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rbs +2 -0
  330. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rbs +38 -0
  331. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbs +46 -0
  332. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbs +27 -0
  333. data/sig/metronome_sdk/models/v1/contracts/rate_card_update_params.rbs +14 -0
  334. data/sig/metronome_sdk/models/v1/contracts/rate_card_update_response.rbs +2 -0
  335. data/sig/metronome_sdk/models/v1/contracts/rate_cards/named_schedule_retrieve_params.rbs +8 -0
  336. data/sig/metronome_sdk/models/v1/contracts/rate_cards/named_schedule_retrieve_response.rbs +10 -0
  337. data/sig/metronome_sdk/models/v1/contracts/rate_cards/named_schedule_update_params.rbs +10 -0
  338. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_params.rbs +6 -0
  339. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rbs +2 -0
  340. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_params.rbs +8 -0
  341. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rbs +2 -0
  342. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +59 -8
  343. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rbs +2 -0
  344. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +51 -4
  345. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +23 -0
  346. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rbs +38 -0
  347. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbs +41 -0
  348. data/sig/metronome_sdk/models/v1/credit_grant_create_params.rbs +32 -4
  349. data/sig/metronome_sdk/models/v1/credit_grant_create_response.rbs +2 -0
  350. data/sig/metronome_sdk/models/v1/credit_grant_edit_params.rbs +8 -0
  351. data/sig/metronome_sdk/models/v1/credit_grant_edit_response.rbs +2 -0
  352. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_params.rbs +29 -0
  353. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_response.rbs +30 -0
  354. data/sig/metronome_sdk/models/v1/credit_grant_list_params.rbs +11 -0
  355. data/sig/metronome_sdk/models/v1/credit_grant_list_response.rbs +38 -0
  356. data/sig/metronome_sdk/models/v1/credit_grant_void_params.rbs +7 -0
  357. data/sig/metronome_sdk/models/v1/credit_grant_void_response.rbs +2 -0
  358. data/sig/metronome_sdk/models/v1/credit_ledger_entry.rbs +10 -0
  359. data/sig/metronome_sdk/models/v1/custom_field_add_key_params.rbs +7 -0
  360. data/sig/metronome_sdk/models/v1/custom_field_delete_values_params.rbs +7 -0
  361. data/sig/metronome_sdk/models/v1/custom_field_list_keys_params.rbs +12 -6
  362. data/sig/metronome_sdk/models/v1/custom_field_list_keys_response.rbs +11 -0
  363. data/sig/metronome_sdk/models/v1/custom_field_remove_key_params.rbs +6 -0
  364. data/sig/metronome_sdk/models/v1/custom_field_set_values_params.rbs +7 -0
  365. data/sig/metronome_sdk/models/v1/customer.rbs +8 -0
  366. data/sig/metronome_sdk/models/v1/customer_archive_params.rbs +2 -0
  367. data/sig/metronome_sdk/models/v1/customer_archive_response.rbs +2 -0
  368. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +52 -26
  369. data/sig/metronome_sdk/models/v1/customer_create_response.rbs +2 -0
  370. data/sig/metronome_sdk/models/v1/customer_detail.rbs +23 -4
  371. data/sig/metronome_sdk/models/v1/customer_list_billable_metrics_params.rbs +9 -0
  372. data/sig/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbs +17 -0
  373. data/sig/metronome_sdk/models/v1/customer_list_costs_params.rbs +9 -0
  374. data/sig/metronome_sdk/models/v1/customer_list_costs_response.rbs +19 -0
  375. data/sig/metronome_sdk/models/v1/customer_list_params.rbs +10 -0
  376. data/sig/metronome_sdk/models/v1/customer_preview_events_params.rbs +105 -0
  377. data/sig/metronome_sdk/models/v1/customer_preview_events_response.rbs +16 -0
  378. data/sig/metronome_sdk/models/v1/customer_retrieve_params.rbs +5 -0
  379. data/sig/metronome_sdk/models/v1/customer_retrieve_response.rbs +2 -0
  380. data/sig/metronome_sdk/models/v1/customer_set_ingest_aliases_params.rbs +6 -0
  381. data/sig/metronome_sdk/models/v1/customer_set_name_params.rbs +6 -0
  382. data/sig/metronome_sdk/models/v1/customer_set_name_response.rbs +2 -0
  383. data/sig/metronome_sdk/models/v1/customer_update_config_params.rbs +7 -0
  384. data/sig/metronome_sdk/models/v1/customers/alert_list_params.rbs +13 -6
  385. data/sig/metronome_sdk/models/v1/customers/alert_list_response.rbs +5 -0
  386. data/sig/metronome_sdk/models/v1/customers/alert_reset_params.rbs +6 -0
  387. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +7 -0
  388. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_response.rbs +2 -0
  389. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +10 -0
  390. data/sig/metronome_sdk/models/v1/customers/billing_config_delete_params.rbs +6 -0
  391. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rbs +6 -0
  392. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +23 -0
  393. data/sig/metronome_sdk/models/v1/customers/commit_create_params.rbs +116 -8
  394. data/sig/metronome_sdk/models/v1/customers/commit_create_response.rbs +2 -0
  395. data/sig/metronome_sdk/models/v1/customers/commit_list_params.rbs +14 -0
  396. data/sig/metronome_sdk/models/v1/customers/commit_list_response.rbs +5 -0
  397. data/sig/metronome_sdk/models/v1/customers/commit_update_end_date_params.rbs +8 -0
  398. data/sig/metronome_sdk/models/v1/customers/commit_update_end_date_response.rbs +2 -0
  399. data/sig/metronome_sdk/models/v1/customers/credit_create_params.rbs +82 -0
  400. data/sig/metronome_sdk/models/v1/customers/credit_create_response.rbs +2 -0
  401. data/sig/metronome_sdk/models/v1/customers/credit_list_params.rbs +14 -0
  402. data/sig/metronome_sdk/models/v1/customers/credit_list_response.rbs +5 -0
  403. data/sig/metronome_sdk/models/v1/customers/credit_update_end_date_params.rbs +7 -0
  404. data/sig/metronome_sdk/models/v1/customers/credit_update_end_date_response.rbs +2 -0
  405. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +45 -16
  406. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +195 -40
  407. data/sig/metronome_sdk/models/v1/customers/invoice_add_charge_params.rbs +11 -0
  408. data/sig/metronome_sdk/models/v1/customers/invoice_add_charge_response.rbs +2 -0
  409. data/sig/metronome_sdk/models/v1/customers/invoice_list_breakdowns_params.rbs +14 -0
  410. data/sig/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rbs +5 -0
  411. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +13 -0
  412. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_params.rbs +7 -0
  413. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_response.rbs +2 -0
  414. data/sig/metronome_sdk/models/v1/customers/named_schedule_retrieve_params.rbs +7 -0
  415. data/sig/metronome_sdk/models/v1/customers/named_schedule_retrieve_response.rbs +10 -0
  416. data/sig/metronome_sdk/models/v1/customers/named_schedule_update_params.rbs +9 -0
  417. data/sig/metronome_sdk/models/v1/customers/plan_add_params.rbs +38 -4
  418. data/sig/metronome_sdk/models/v1/customers/plan_add_response.rbs +2 -0
  419. data/sig/metronome_sdk/models/v1/customers/plan_end_params.rbs +9 -0
  420. data/sig/metronome_sdk/models/v1/customers/plan_end_response.rbs +2 -0
  421. data/sig/metronome_sdk/models/v1/customers/plan_list_params.rbs +7 -0
  422. data/sig/metronome_sdk/models/v1/customers/plan_list_price_adjustments_params.rbs +8 -0
  423. data/sig/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbs +14 -0
  424. data/sig/metronome_sdk/models/v1/customers/plan_list_response.rbs +23 -0
  425. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +30 -7
  426. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_response.rbs +6 -0
  427. data/sig/metronome_sdk/models/v1/invoice_regenerate_params.rbs +5 -0
  428. data/sig/metronome_sdk/models/v1/invoice_regenerate_response.rbs +6 -0
  429. data/sig/metronome_sdk/models/v1/invoice_void_params.rbs +5 -0
  430. data/sig/metronome_sdk/models/v1/invoice_void_response.rbs +6 -0
  431. data/sig/metronome_sdk/models/v1/plan_detail.rbs +38 -0
  432. data/sig/metronome_sdk/models/v1/plan_get_details_params.rbs +5 -0
  433. data/sig/metronome_sdk/models/v1/plan_get_details_response.rbs +2 -0
  434. data/sig/metronome_sdk/models/v1/plan_list_charges_params.rbs +7 -0
  435. data/sig/metronome_sdk/models/v1/plan_list_charges_response.rbs +28 -0
  436. data/sig/metronome_sdk/models/v1/plan_list_customers_params.rbs +8 -0
  437. data/sig/metronome_sdk/models/v1/plan_list_customers_response.rbs +14 -0
  438. data/sig/metronome_sdk/models/v1/plan_list_params.rbs +6 -0
  439. data/sig/metronome_sdk/models/v1/plan_list_response.rbs +7 -0
  440. data/sig/metronome_sdk/models/v1/pricing_unit_list_params.rbs +6 -0
  441. data/sig/metronome_sdk/models/v1/pricing_unit_list_response.rbs +2 -0
  442. data/sig/metronome_sdk/models/v1/rollover_amount_max_amount.rbs +12 -4
  443. data/sig/metronome_sdk/models/v1/rollover_amount_max_percentage.rbs +9 -4
  444. data/sig/metronome_sdk/models/v1/service_list_params.rbs +2 -0
  445. data/sig/metronome_sdk/models/v1/service_list_response.rbs +10 -0
  446. data/sig/metronome_sdk/models/v1/usage_ingest_params.rbs +13 -0
  447. data/sig/metronome_sdk/models/v1/usage_list_params.rbs +17 -0
  448. data/sig/metronome_sdk/models/v1/usage_list_response.rbs +15 -0
  449. data/sig/metronome_sdk/models/v1/usage_list_with_groups_params.rbs +15 -0
  450. data/sig/metronome_sdk/models/v1/usage_list_with_groups_response.rbs +8 -0
  451. data/sig/metronome_sdk/models/v1/usage_search_params.rbs +26 -0
  452. data/sig/metronome_sdk/models/v1/usage_search_response.rbs +230 -0
  453. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +106 -1
  454. data/sig/metronome_sdk/models/v2/contract_edit_commit_response.rbs +2 -0
  455. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +81 -1
  456. data/sig/metronome_sdk/models/v2/contract_edit_credit_response.rbs +2 -0
  457. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +2233 -303
  458. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +2 -0
  459. data/sig/metronome_sdk/models/v2/contract_get_edit_history_params.rbs +6 -0
  460. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +2475 -453
  461. data/sig/metronome_sdk/models/v2/contract_list_params.rbs +10 -0
  462. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +1400 -43
  463. data/sig/metronome_sdk/models/v2/contract_retrieve_params.rbs +9 -0
  464. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +1400 -43
  465. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -0
  466. data/sig/metronome_sdk/resources/v1/contracts.rbs +10 -0
  467. data/sig/metronome_sdk/resources/v1/credit_grants.rbs +1 -0
  468. data/sig/metronome_sdk/resources/v1/custom_fields.rbs +1 -1
  469. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -1
  470. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +1 -0
  471. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +1 -0
  472. data/sig/metronome_sdk/resources/v1/customers.rbs +8 -0
  473. data/sig/metronome_sdk/resources/v1/usage.rbs +5 -0
  474. data/sig/metronome_sdk/resources/v2/contracts.rbs +8 -1
  475. metadata +20 -2
@@ -22,19 +22,19 @@ module MetronomeSDK
22
22
 
23
23
  # @!attribute add_commits
24
24
  #
25
- # @return [Array<MetronomeSDK::V2::ContractEditParams::AddCommit>, nil]
25
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit>, nil]
26
26
  optional :add_commits,
27
27
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCommit] }
28
28
 
29
29
  # @!attribute add_credits
30
30
  #
31
- # @return [Array<MetronomeSDK::V2::ContractEditParams::AddCredit>, nil]
31
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCredit>, nil]
32
32
  optional :add_credits,
33
33
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCredit] }
34
34
 
35
35
  # @!attribute add_discounts
36
36
  #
37
- # @return [Array<MetronomeSDK::V2::ContractEditParams::AddDiscount>, nil]
37
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddDiscount>, nil]
38
38
  optional :add_discounts,
39
39
  -> {
40
40
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddDiscount]
@@ -42,7 +42,7 @@ module MetronomeSDK
42
42
 
43
43
  # @!attribute add_overrides
44
44
  #
45
- # @return [Array<MetronomeSDK::V2::ContractEditParams::AddOverride>, nil]
45
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride>, nil]
46
46
  optional :add_overrides,
47
47
  -> {
48
48
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddOverride]
@@ -50,14 +50,14 @@ module MetronomeSDK
50
50
 
51
51
  # @!attribute add_prepaid_balance_threshold_configuration
52
52
  #
53
- # @return [MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration, nil]
53
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration, nil]
54
54
  optional :add_prepaid_balance_threshold_configuration,
55
55
  -> { MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration }
56
56
 
57
57
  # @!attribute add_professional_services
58
58
  # This field's availability is dependent on your client's configuration.
59
59
  #
60
- # @return [Array<MetronomeSDK::V2::ContractEditParams::AddProfessionalService>, nil]
60
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddProfessionalService>, nil]
61
61
  optional :add_professional_services,
62
62
  -> {
63
63
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddProfessionalService]
@@ -65,7 +65,7 @@ module MetronomeSDK
65
65
 
66
66
  # @!attribute add_recurring_commits
67
67
  #
68
- # @return [Array<MetronomeSDK::V2::ContractEditParams::AddRecurringCommit>, nil]
68
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit>, nil]
69
69
  optional :add_recurring_commits,
70
70
  -> {
71
71
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCommit]
@@ -73,7 +73,7 @@ module MetronomeSDK
73
73
 
74
74
  # @!attribute add_recurring_credits
75
75
  #
76
- # @return [Array<MetronomeSDK::V2::ContractEditParams::AddRecurringCredit>, nil]
76
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit>, nil]
77
77
  optional :add_recurring_credits,
78
78
  -> {
79
79
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCredit]
@@ -81,7 +81,7 @@ module MetronomeSDK
81
81
 
82
82
  # @!attribute add_reseller_royalties
83
83
  #
84
- # @return [Array<MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty>, nil]
84
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddResellerRoyalty>, nil]
85
85
  optional :add_reseller_royalties,
86
86
  -> {
87
87
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty]
@@ -89,7 +89,7 @@ module MetronomeSDK
89
89
 
90
90
  # @!attribute add_scheduled_charges
91
91
  #
92
- # @return [Array<MetronomeSDK::V2::ContractEditParams::AddScheduledCharge>, nil]
92
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge>, nil]
93
93
  optional :add_scheduled_charges,
94
94
  -> {
95
95
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddScheduledCharge]
@@ -97,10 +97,21 @@ module MetronomeSDK
97
97
 
98
98
  # @!attribute add_spend_threshold_configuration
99
99
  #
100
- # @return [MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration, nil]
100
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration, nil]
101
101
  optional :add_spend_threshold_configuration,
102
102
  -> { MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration }
103
103
 
104
+ # @!attribute add_subscriptions
105
+ # Optional list of
106
+ # [subscriptions](https://docs.metronome.com/manage-product-access/create-subscription/)
107
+ # to add to the contract.
108
+ #
109
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddSubscription>, nil]
110
+ optional :add_subscriptions,
111
+ -> {
112
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddSubscription]
113
+ }
114
+
104
115
  # @!attribute allow_contract_ending_before_finalized_invoice
105
116
  # If true, allows setting the contract end date earlier than the end_timestamp of
106
117
  # existing finalized invoices. Finalized invoices will be unchanged; if you want
@@ -113,7 +124,7 @@ module MetronomeSDK
113
124
  # @!attribute archive_commits
114
125
  # IDs of commits to archive
115
126
  #
116
- # @return [Array<MetronomeSDK::V2::ContractEditParams::ArchiveCommit>, nil]
127
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::ArchiveCommit>, nil]
117
128
  optional :archive_commits,
118
129
  -> {
119
130
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::ArchiveCommit]
@@ -122,7 +133,7 @@ module MetronomeSDK
122
133
  # @!attribute archive_credits
123
134
  # IDs of credits to archive
124
135
  #
125
- # @return [Array<MetronomeSDK::V2::ContractEditParams::ArchiveCredit>, nil]
136
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::ArchiveCredit>, nil]
126
137
  optional :archive_credits,
127
138
  -> {
128
139
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::ArchiveCredit]
@@ -131,7 +142,7 @@ module MetronomeSDK
131
142
  # @!attribute archive_scheduled_charges
132
143
  # IDs of scheduled charges to archive
133
144
  #
134
- # @return [Array<MetronomeSDK::V2::ContractEditParams::ArchiveScheduledCharge>, nil]
145
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::ArchiveScheduledCharge>, nil]
135
146
  optional :archive_scheduled_charges,
136
147
  -> {
137
148
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::ArchiveScheduledCharge]
@@ -140,7 +151,7 @@ module MetronomeSDK
140
151
  # @!attribute remove_overrides
141
152
  # IDs of overrides to remove
142
153
  #
143
- # @return [Array<MetronomeSDK::V2::ContractEditParams::RemoveOverride>, nil]
154
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::RemoveOverride>, nil]
144
155
  optional :remove_overrides,
145
156
  -> {
146
157
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::RemoveOverride]
@@ -148,7 +159,7 @@ module MetronomeSDK
148
159
 
149
160
  # @!attribute update_commits
150
161
  #
151
- # @return [Array<MetronomeSDK::V2::ContractEditParams::UpdateCommit>, nil]
162
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit>, nil]
152
163
  optional :update_commits,
153
164
  -> {
154
165
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit]
@@ -158,11 +169,18 @@ module MetronomeSDK
158
169
  # RFC 3339 timestamp indicating when the contract will end (exclusive).
159
170
  #
160
171
  # @return [Time, nil]
161
- optional :update_contract_end_date, Time
172
+ optional :update_contract_end_date, Time, nil?: true
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
162
180
 
163
181
  # @!attribute update_credits
164
182
  #
165
- # @return [Array<MetronomeSDK::V2::ContractEditParams::UpdateCredit>, nil]
183
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit>, nil]
166
184
  optional :update_credits,
167
185
  -> {
168
186
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit]
@@ -170,13 +188,35 @@ module MetronomeSDK
170
188
 
171
189
  # @!attribute update_prepaid_balance_threshold_configuration
172
190
  #
173
- # @return [MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration, nil]
191
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration, nil]
174
192
  optional :update_prepaid_balance_threshold_configuration,
175
193
  -> { MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration }
176
194
 
195
+ # @!attribute update_recurring_commits
196
+ # Edits to these recurring commits will only affect commits whose access schedules
197
+ # has not started. Expired commits, and commits with an active access schedule
198
+ # will remain unchanged.
199
+ #
200
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit>, nil]
201
+ optional :update_recurring_commits,
202
+ -> {
203
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit]
204
+ }
205
+
206
+ # @!attribute update_recurring_credits
207
+ # Edits to these recurring credits will only affect credits whose access schedules
208
+ # has not started. Expired credits, and credits with an active access schedule
209
+ # will remain unchanged.
210
+ #
211
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit>, nil]
212
+ optional :update_recurring_credits,
213
+ -> {
214
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateRecurringCredit]
215
+ }
216
+
177
217
  # @!attribute update_scheduled_charges
178
218
  #
179
- # @return [Array<MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge>, nil]
219
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge>, nil]
180
220
  optional :update_scheduled_charges,
181
221
  -> {
182
222
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge]
@@ -184,11 +224,20 @@ module MetronomeSDK
184
224
 
185
225
  # @!attribute update_spend_threshold_configuration
186
226
  #
187
- # @return [MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration, nil]
227
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration, nil]
188
228
  optional :update_spend_threshold_configuration,
189
229
  -> { MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration }
190
230
 
191
- # @!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, 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_scheduled_charges: nil, update_spend_threshold_configuration: nil, request_options: {})
231
+ # @!attribute update_subscriptions
232
+ # Optional list of subscriptions to update.
233
+ #
234
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription>, nil]
235
+ optional :update_subscriptions,
236
+ -> {
237
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription]
238
+ }
239
+
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: {})
192
241
  # Some parameter documentations has been truncated, see
193
242
  # {MetronomeSDK::Models::V2::ContractEditParams} for more details.
194
243
  #
@@ -196,49 +245,59 @@ module MetronomeSDK
196
245
  #
197
246
  # @param customer_id [String] ID of the customer whose contract is being edited
198
247
  #
199
- # @param add_commits [Array<MetronomeSDK::V2::ContractEditParams::AddCommit>]
248
+ # @param add_commits [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit>]
200
249
  #
201
- # @param add_credits [Array<MetronomeSDK::V2::ContractEditParams::AddCredit>]
250
+ # @param add_credits [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCredit>]
202
251
  #
203
- # @param add_discounts [Array<MetronomeSDK::V2::ContractEditParams::AddDiscount>]
252
+ # @param add_discounts [Array<MetronomeSDK::Models::V2::ContractEditParams::AddDiscount>]
204
253
  #
205
- # @param add_overrides [Array<MetronomeSDK::V2::ContractEditParams::AddOverride>]
254
+ # @param add_overrides [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride>]
206
255
  #
207
- # @param add_prepaid_balance_threshold_configuration [MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration]
256
+ # @param add_prepaid_balance_threshold_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration]
208
257
  #
209
- # @param add_professional_services [Array<MetronomeSDK::V2::ContractEditParams::AddProfessionalService>] This field's availability is dependent on your client's configuration.
258
+ # @param add_professional_services [Array<MetronomeSDK::Models::V2::ContractEditParams::AddProfessionalService>] This field's availability is dependent on your client's configuration.
210
259
  #
211
- # @param add_recurring_commits [Array<MetronomeSDK::V2::ContractEditParams::AddRecurringCommit>]
260
+ # @param add_recurring_commits [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit>]
212
261
  #
213
- # @param add_recurring_credits [Array<MetronomeSDK::V2::ContractEditParams::AddRecurringCredit>]
262
+ # @param add_recurring_credits [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit>]
214
263
  #
215
- # @param add_reseller_royalties [Array<MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty>]
264
+ # @param add_reseller_royalties [Array<MetronomeSDK::Models::V2::ContractEditParams::AddResellerRoyalty>]
216
265
  #
217
- # @param add_scheduled_charges [Array<MetronomeSDK::V2::ContractEditParams::AddScheduledCharge>]
266
+ # @param add_scheduled_charges [Array<MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge>]
218
267
  #
219
- # @param add_spend_threshold_configuration [MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration]
268
+ # @param add_spend_threshold_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration]
269
+ #
270
+ # @param add_subscriptions [Array<MetronomeSDK::Models::V2::ContractEditParams::AddSubscription>] Optional list of [subscriptions](https://docs.metronome.com/manage-product-acces
220
271
  #
221
272
  # @param allow_contract_ending_before_finalized_invoice [Boolean] If true, allows setting the contract end date earlier than the end_timestamp of
222
273
  #
223
- # @param archive_commits [Array<MetronomeSDK::V2::ContractEditParams::ArchiveCommit>] IDs of commits to archive
274
+ # @param archive_commits [Array<MetronomeSDK::Models::V2::ContractEditParams::ArchiveCommit>] IDs of commits to archive
275
+ #
276
+ # @param archive_credits [Array<MetronomeSDK::Models::V2::ContractEditParams::ArchiveCredit>] IDs of credits to archive
224
277
  #
225
- # @param archive_credits [Array<MetronomeSDK::V2::ContractEditParams::ArchiveCredit>] IDs of credits to archive
278
+ # @param archive_scheduled_charges [Array<MetronomeSDK::Models::V2::ContractEditParams::ArchiveScheduledCharge>] IDs of scheduled charges to archive
226
279
  #
227
- # @param archive_scheduled_charges [Array<MetronomeSDK::V2::ContractEditParams::ArchiveScheduledCharge>] IDs of scheduled charges to archive
280
+ # @param remove_overrides [Array<MetronomeSDK::Models::V2::ContractEditParams::RemoveOverride>] IDs of overrides to remove
228
281
  #
229
- # @param remove_overrides [Array<MetronomeSDK::V2::ContractEditParams::RemoveOverride>] IDs of overrides to remove
282
+ # @param update_commits [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit>]
230
283
  #
231
- # @param update_commits [Array<MetronomeSDK::V2::ContractEditParams::UpdateCommit>]
284
+ # @param update_contract_end_date [Time, nil] RFC 3339 timestamp indicating when the contract will end (exclusive).
232
285
  #
233
- # @param update_contract_end_date [Time] RFC 3339 timestamp indicating when the contract will end (exclusive).
286
+ # @param update_contract_name [String, nil] Value to update the contract name to. If not provided, the contract name will re
234
287
  #
235
- # @param update_credits [Array<MetronomeSDK::V2::ContractEditParams::UpdateCredit>]
288
+ # @param update_credits [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit>]
236
289
  #
237
- # @param update_prepaid_balance_threshold_configuration [MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration]
290
+ # @param update_prepaid_balance_threshold_configuration [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration]
238
291
  #
239
- # @param update_scheduled_charges [Array<MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge>]
292
+ # @param update_recurring_commits [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit>] Edits to these recurring commits will only affect commits whose access schedules
240
293
  #
241
- # @param update_spend_threshold_configuration [MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration]
294
+ # @param update_recurring_credits [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit>] Edits to these recurring credits will only affect credits whose access schedules
295
+ #
296
+ # @param update_scheduled_charges [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge>]
297
+ #
298
+ # @param update_spend_threshold_configuration [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration]
299
+ #
300
+ # @param update_subscriptions [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription>] Optional list of subscriptions to update.
242
301
  #
243
302
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
244
303
 
@@ -250,7 +309,7 @@ module MetronomeSDK
250
309
 
251
310
  # @!attribute type
252
311
  #
253
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddCommit::Type]
312
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::Type]
254
313
  required :type, enum: -> { MetronomeSDK::V2::ContractEditParams::AddCommit::Type }
255
314
 
256
315
  # @!attribute access_schedule
@@ -258,7 +317,7 @@ module MetronomeSDK
258
317
  # commits only one schedule item is allowed and amount must match invoice_schedule
259
318
  # total.
260
319
  #
261
- # @return [MetronomeSDK::V2::ContractEditParams::AddCommit::AccessSchedule, nil]
320
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::AccessSchedule, nil]
262
321
  optional :access_schedule, -> { MetronomeSDK::V2::ContractEditParams::AddCommit::AccessSchedule }
263
322
 
264
323
  # @!attribute amount
@@ -268,15 +327,17 @@ module MetronomeSDK
268
327
  optional :amount, Float
269
328
 
270
329
  # @!attribute applicable_product_ids
271
- # Which products the commit applies to. If both applicable_product_ids and
272
- # 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.
273
333
  #
274
334
  # @return [Array<String>, nil]
275
335
  optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
276
336
 
277
337
  # @!attribute applicable_product_tags
278
- # Which tags the commit applies to. If both applicable_product_ids and
279
- # 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.
280
341
  #
281
342
  # @return [Array<String>, nil]
282
343
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
@@ -292,13 +353,20 @@ module MetronomeSDK
292
353
  # @return [String, nil]
293
354
  optional :description, String
294
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
+
295
363
  # @!attribute invoice_schedule
296
364
  # Required for "POSTPAID" commits: the true up invoice will be generated at this
297
365
  # time and only one schedule item is allowed; the total must match access_schedule
298
366
  # amount. Optional for "PREPAID" commits: if not provided, this will be a
299
367
  # "complimentary" commit with no invoice.
300
368
  #
301
- # @return [MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule, nil]
369
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule, nil]
302
370
  optional :invoice_schedule, -> { MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule }
303
371
 
304
372
  # @!attribute name
@@ -316,7 +384,7 @@ module MetronomeSDK
316
384
  # @!attribute payment_gate_config
317
385
  # optionally payment gate this commit
318
386
  #
319
- # @return [MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig, nil]
387
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig, nil]
320
388
  optional :payment_gate_config,
321
389
  -> {
322
390
  MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig
@@ -331,7 +399,7 @@ module MetronomeSDK
331
399
 
332
400
  # @!attribute rate_type
333
401
  #
334
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddCommit::RateType, nil]
402
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::RateType, nil]
335
403
  optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::AddCommit::RateType }
336
404
 
337
405
  # @!attribute rollover_fraction
@@ -340,6 +408,18 @@ module MetronomeSDK
340
408
  # @return [Float, nil]
341
409
  optional :rollover_fraction, Float
342
410
 
411
+ # @!attribute specifiers
412
+ # List of filters that determine what kind of customer usage draws down a commit
413
+ # or credit. A customer's usage needs to meet the condition of at least one of the
414
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
415
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
416
+ #
417
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit::Specifier>, nil]
418
+ optional :specifiers,
419
+ -> {
420
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCommit::Specifier]
421
+ }
422
+
343
423
  # @!attribute temporary_id
344
424
  # A temporary ID for the commit that can be used to reference the commit for
345
425
  # commit specific overrides.
@@ -347,43 +427,47 @@ module MetronomeSDK
347
427
  # @return [String, nil]
348
428
  optional :temporary_id, String
349
429
 
350
- # @!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, 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)
351
431
  # Some parameter documentations has been truncated, see
352
- # {MetronomeSDK::V2::ContractEditParams::AddCommit} for more details.
432
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddCommit} for more details.
353
433
  #
354
434
  # @param product_id [String]
355
435
  #
356
- # @param type [Symbol, MetronomeSDK::V2::ContractEditParams::AddCommit::Type]
436
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::Type]
357
437
  #
358
- # @param access_schedule [MetronomeSDK::V2::ContractEditParams::AddCommit::AccessSchedule] Required: Schedule for distributing the commit to the customer. For "POSTPAID" c
438
+ # @param access_schedule [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::AccessSchedule] Required: Schedule for distributing the commit to the customer. For "POSTPAID" c
359
439
  #
360
440
  # @param amount [Float] (DEPRECATED) Use access_schedule and invoice_schedule instead.
361
441
  #
362
- # @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
363
443
  #
364
- # @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*
365
445
  #
366
446
  # @param custom_fields [Hash{Symbol=>String}]
367
447
  #
368
448
  # @param description [String] Used only in UI/API. It is not exposed to end customers.
369
449
  #
370
- # @param invoice_schedule [MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule] Required for "POSTPAID" commits: the true up invoice will be generated at this t
450
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration] Optional configuration for commit hierarchy access control
451
+ #
452
+ # @param invoice_schedule [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule] Required for "POSTPAID" commits: the true up invoice will be generated at this t
371
453
  #
372
454
  # @param name [String] displayed on invoices
373
455
  #
374
456
  # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
375
457
  #
376
- # @param payment_gate_config [MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig] optionally payment gate this commit
458
+ # @param payment_gate_config [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig] optionally payment gate this commit
377
459
  #
378
460
  # @param priority [Float] If multiple commits are applicable, the one with the lower priority will apply f
379
461
  #
380
- # @param rate_type [Symbol, MetronomeSDK::V2::ContractEditParams::AddCommit::RateType]
462
+ # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::RateType]
381
463
  #
382
464
  # @param rollover_fraction [Float] Fraction of unused segments that will be rolled over. Must be between 0 and 1.
383
465
  #
466
+ # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
467
+ #
384
468
  # @param temporary_id [String] A temporary ID for the commit that can be used to reference the commit for commi
385
469
 
386
- # @see MetronomeSDK::V2::ContractEditParams::AddCommit#type
470
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit#type
387
471
  module Type
388
472
  extend MetronomeSDK::Internal::Type::Enum
389
473
 
@@ -394,11 +478,11 @@ module MetronomeSDK
394
478
  # @return [Array<Symbol>]
395
479
  end
396
480
 
397
- # @see MetronomeSDK::V2::ContractEditParams::AddCommit#access_schedule
481
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit#access_schedule
398
482
  class AccessSchedule < MetronomeSDK::Internal::Type::BaseModel
399
483
  # @!attribute schedule_items
400
484
  #
401
- # @return [Array<MetronomeSDK::V2::ContractEditParams::AddCommit::AccessSchedule::ScheduleItem>]
485
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit::AccessSchedule::ScheduleItem>]
402
486
  required :schedule_items,
403
487
  -> {
404
488
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCommit::AccessSchedule::ScheduleItem]
@@ -414,7 +498,7 @@ module MetronomeSDK
414
498
  # commits only one schedule item is allowed and amount must match invoice_schedule
415
499
  # total.
416
500
  #
417
- # @param schedule_items [Array<MetronomeSDK::V2::ContractEditParams::AddCommit::AccessSchedule::ScheduleItem>]
501
+ # @param schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit::AccessSchedule::ScheduleItem>]
418
502
  # @param credit_type_id [String]
419
503
 
420
504
  class ScheduleItem < MetronomeSDK::Internal::Type::BaseModel
@@ -444,7 +528,118 @@ module MetronomeSDK
444
528
  end
445
529
  end
446
530
 
447
- # @see MetronomeSDK::V2::ContractEditParams::AddCommit#invoice_schedule
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
+
642
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit#invoice_schedule
448
643
  class InvoiceSchedule < MetronomeSDK::Internal::Type::BaseModel
449
644
  # @!attribute credit_type_id
450
645
  # Defaults to USD if not passed. Only USD is supported at this time.
@@ -457,7 +652,7 @@ module MetronomeSDK
457
652
  # amount. If amount is sent, the unit price is assumed to be the amount and
458
653
  # quantity is inferred to be 1.
459
654
  #
460
- # @return [MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule, nil]
655
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule, nil]
461
656
  optional :recurring_schedule,
462
657
  -> {
463
658
  MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule
@@ -466,7 +661,7 @@ module MetronomeSDK
466
661
  # @!attribute schedule_items
467
662
  # Either provide amount or provide both unit_price and quantity.
468
663
  #
469
- # @return [Array<MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::ScheduleItem>, nil]
664
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::ScheduleItem>, nil]
470
665
  optional :schedule_items,
471
666
  -> {
472
667
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::ScheduleItem]
@@ -474,8 +669,8 @@ module MetronomeSDK
474
669
 
475
670
  # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
476
671
  # Some parameter documentations has been truncated, see
477
- # {MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule} for more
478
- # details.
672
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule} for
673
+ # more details.
479
674
  #
480
675
  # Required for "POSTPAID" commits: the true up invoice will be generated at this
481
676
  # time and only one schedule item is allowed; the total must match access_schedule
@@ -484,15 +679,15 @@ module MetronomeSDK
484
679
  #
485
680
  # @param credit_type_id [String] Defaults to USD if not passed. Only USD is supported at this time.
486
681
  #
487
- # @param recurring_schedule [MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
682
+ # @param recurring_schedule [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
488
683
  #
489
- # @param schedule_items [Array<MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
684
+ # @param schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
490
685
 
491
- # @see MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule#recurring_schedule
686
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule#recurring_schedule
492
687
  class RecurringSchedule < MetronomeSDK::Internal::Type::BaseModel
493
688
  # @!attribute amount_distribution
494
689
  #
495
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::AmountDistribution]
690
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::AmountDistribution]
496
691
  required :amount_distribution,
497
692
  enum: -> {
498
693
  MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::AmountDistribution
@@ -506,7 +701,7 @@ module MetronomeSDK
506
701
 
507
702
  # @!attribute frequency
508
703
  #
509
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::Frequency]
704
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::Frequency]
510
705
  required :frequency,
511
706
  enum: -> {
512
707
  MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::Frequency
@@ -544,18 +739,18 @@ module MetronomeSDK
544
739
 
545
740
  # @!method initialize(amount_distribution:, ending_before:, frequency:, starting_at:, amount: nil, quantity: nil, unit_price: nil)
546
741
  # Some parameter documentations has been truncated, see
547
- # {MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule}
742
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule}
548
743
  # for more details.
549
744
  #
550
745
  # Enter the unit price and quantity for the charge or instead only send the
551
746
  # amount. If amount is sent, the unit price is assumed to be the amount and
552
747
  # quantity is inferred to be 1.
553
748
  #
554
- # @param amount_distribution [Symbol, MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::AmountDistribution]
749
+ # @param amount_distribution [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::AmountDistribution]
555
750
  #
556
751
  # @param ending_before [Time] RFC 3339 timestamp (exclusive).
557
752
  #
558
- # @param frequency [Symbol, MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::Frequency]
753
+ # @param frequency [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::Frequency]
559
754
  #
560
755
  # @param starting_at [Time] RFC 3339 timestamp (inclusive).
561
756
  #
@@ -565,7 +760,7 @@ module MetronomeSDK
565
760
  #
566
761
  # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
567
762
 
568
- # @see MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule#amount_distribution
763
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule#amount_distribution
569
764
  module AmountDistribution
570
765
  extend MetronomeSDK::Internal::Type::Enum
571
766
 
@@ -577,7 +772,7 @@ module MetronomeSDK
577
772
  # @return [Array<Symbol>]
578
773
  end
579
774
 
580
- # @see MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule#frequency
775
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule#frequency
581
776
  module Frequency
582
777
  extend MetronomeSDK::Internal::Type::Enum
583
778
 
@@ -625,7 +820,7 @@ module MetronomeSDK
625
820
 
626
821
  # @!method initialize(timestamp:, amount: nil, quantity: nil, unit_price: nil)
627
822
  # Some parameter documentations has been truncated, see
628
- # {MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::ScheduleItem}
823
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::ScheduleItem}
629
824
  # for more details.
630
825
  #
631
826
  # @param timestamp [Time] timestamp of the scheduled event
@@ -638,7 +833,7 @@ module MetronomeSDK
638
833
  end
639
834
  end
640
835
 
641
- # @see MetronomeSDK::V2::ContractEditParams::AddCommit#payment_gate_config
836
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit#payment_gate_config
642
837
  class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
643
838
  # @!attribute payment_gate_type
644
839
  # Gate access to the commit balance based on successful collection of payment.
@@ -646,16 +841,25 @@ module MetronomeSDK
646
841
  # facilitate payment using your own payment integration. Select NONE if you do not
647
842
  # wish to payment gate the commit balance.
648
843
  #
649
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::PaymentGateType]
844
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::PaymentGateType]
650
845
  required :payment_gate_type,
651
846
  enum: -> {
652
847
  MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::PaymentGateType
653
848
  }
654
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
+
655
859
  # @!attribute stripe_config
656
- # Only applicable if using Stripe as your payment gateway through Metronome.
860
+ # Only applicable if using STRIPE as your payment gateway type.
657
861
  #
658
- # @return [MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig, nil]
862
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig, nil]
659
863
  optional :stripe_config,
660
864
  -> { MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig }
661
865
 
@@ -664,29 +868,31 @@ module MetronomeSDK
664
868
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
665
869
  # will default to NONE.
666
870
  #
667
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::TaxType, nil]
871
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::TaxType, nil]
668
872
  optional :tax_type,
669
873
  enum: -> { MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::TaxType }
670
874
 
671
- # @!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)
672
876
  # Some parameter documentations has been truncated, see
673
- # {MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig} for more
674
- # details.
877
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig} for
878
+ # more details.
675
879
  #
676
880
  # optionally payment gate this commit
677
881
  #
678
- # @param payment_gate_type [Symbol, MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
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
883
+ #
884
+ # @param precalculated_tax_config [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
679
885
  #
680
- # @param stripe_config [MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig] Only applicable if using Stripe as your payment gateway through Metronome.
886
+ # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gateway type.
681
887
  #
682
- # @param tax_type [Symbol, MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
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
683
889
 
684
890
  # Gate access to the commit balance based on successful collection of payment.
685
891
  # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
686
892
  # facilitate payment using your own payment integration. Select NONE if you do not
687
893
  # wish to payment gate the commit balance.
688
894
  #
689
- # @see MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig#payment_gate_type
895
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig#payment_gate_type
690
896
  module PaymentGateType
691
897
  extend MetronomeSDK::Internal::Type::Enum
692
898
 
@@ -698,25 +904,66 @@ module MetronomeSDK
698
904
  # @return [Array<Symbol>]
699
905
  end
700
906
 
701
- # @see MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig#stripe_config
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
+
935
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig#stripe_config
702
936
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
703
937
  # @!attribute payment_type
704
938
  # If left blank, will default to INVOICE
705
939
  #
706
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::PaymentType]
940
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::PaymentType]
707
941
  required :payment_type,
708
942
  enum: -> {
709
943
  MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::PaymentType
710
944
  }
711
945
 
712
- # @!method initialize(payment_type:)
713
- # 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.
714
957
  #
715
- # @param payment_type [Symbol, MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
958
+ # Only applicable if using STRIPE as your payment gateway type.
959
+ #
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
716
963
 
717
964
  # If left blank, will default to INVOICE
718
965
  #
719
- # @see MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig#payment_type
966
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig#payment_type
720
967
  module PaymentType
721
968
  extend MetronomeSDK::Internal::Type::Enum
722
969
 
@@ -732,19 +979,21 @@ module MetronomeSDK
732
979
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
733
980
  # will default to NONE.
734
981
  #
735
- # @see MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig#tax_type
982
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig#tax_type
736
983
  module TaxType
737
984
  extend MetronomeSDK::Internal::Type::Enum
738
985
 
739
986
  NONE = :NONE
740
987
  STRIPE = :STRIPE
988
+ ANROK = :ANROK
989
+ PRECALCULATED = :PRECALCULATED
741
990
 
742
991
  # @!method self.values
743
992
  # @return [Array<Symbol>]
744
993
  end
745
994
  end
746
995
 
747
- # @see MetronomeSDK::V2::ContractEditParams::AddCommit#rate_type
996
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit#rate_type
748
997
  module RateType
749
998
  extend MetronomeSDK::Internal::Type::Enum
750
999
 
@@ -754,13 +1003,51 @@ module MetronomeSDK
754
1003
  # @!method self.values
755
1004
  # @return [Array<Symbol>]
756
1005
  end
1006
+
1007
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
1008
+ # @!attribute presentation_group_values
1009
+ #
1010
+ # @return [Hash{Symbol=>String}, nil]
1011
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1012
+
1013
+ # @!attribute pricing_group_values
1014
+ #
1015
+ # @return [Hash{Symbol=>String}, nil]
1016
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1017
+
1018
+ # @!attribute product_id
1019
+ # If provided, the specifier will only apply to the product with the specified ID.
1020
+ #
1021
+ # @return [String, nil]
1022
+ optional :product_id, String
1023
+
1024
+ # @!attribute product_tags
1025
+ # If provided, the specifier will only apply to products with all the specified
1026
+ # tags.
1027
+ #
1028
+ # @return [Array<String>, nil]
1029
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1030
+
1031
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
1032
+ # Some parameter documentations has been truncated, see
1033
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddCommit::Specifier} for more
1034
+ # details.
1035
+ #
1036
+ # @param presentation_group_values [Hash{Symbol=>String}]
1037
+ #
1038
+ # @param pricing_group_values [Hash{Symbol=>String}]
1039
+ #
1040
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
1041
+ #
1042
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
1043
+ end
757
1044
  end
758
1045
 
759
1046
  class AddCredit < MetronomeSDK::Internal::Type::BaseModel
760
1047
  # @!attribute access_schedule
761
1048
  # Schedule for distributing the credit to the customer.
762
1049
  #
763
- # @return [MetronomeSDK::V2::ContractEditParams::AddCredit::AccessSchedule]
1050
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCredit::AccessSchedule]
764
1051
  required :access_schedule, -> { MetronomeSDK::V2::ContractEditParams::AddCredit::AccessSchedule }
765
1052
 
766
1053
  # @!attribute product_id
@@ -793,6 +1080,13 @@ module MetronomeSDK
793
1080
  # @return [String, nil]
794
1081
  optional :description, String
795
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
+
796
1090
  # @!attribute name
797
1091
  # displayed on invoices
798
1092
  #
@@ -814,14 +1108,26 @@ module MetronomeSDK
814
1108
 
815
1109
  # @!attribute rate_type
816
1110
  #
817
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddCredit::RateType, nil]
1111
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::RateType, nil]
818
1112
  optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::AddCredit::RateType }
819
1113
 
820
- # @!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)
1114
+ # @!attribute specifiers
1115
+ # List of filters that determine what kind of customer usage draws down a commit
1116
+ # or credit. A customer's usage needs to meet the condition of at least one of the
1117
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
1118
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
1119
+ #
1120
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCredit::Specifier>, nil]
1121
+ optional :specifiers,
1122
+ -> {
1123
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCredit::Specifier]
1124
+ }
1125
+
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)
821
1127
  # Some parameter documentations has been truncated, see
822
- # {MetronomeSDK::V2::ContractEditParams::AddCredit} for more details.
1128
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddCredit} for more details.
823
1129
  #
824
- # @param access_schedule [MetronomeSDK::V2::ContractEditParams::AddCredit::AccessSchedule] Schedule for distributing the credit to the customer.
1130
+ # @param access_schedule [MetronomeSDK::Models::V2::ContractEditParams::AddCredit::AccessSchedule] Schedule for distributing the credit to the customer.
825
1131
  #
826
1132
  # @param product_id [String]
827
1133
  #
@@ -833,19 +1139,23 @@ module MetronomeSDK
833
1139
  #
834
1140
  # @param description [String] Used only in UI/API. It is not exposed to end customers.
835
1141
  #
1142
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration] Optional configuration for credit hierarchy access control
1143
+ #
836
1144
  # @param name [String] displayed on invoices
837
1145
  #
838
1146
  # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
839
1147
  #
840
1148
  # @param priority [Float] If multiple credits are applicable, the one with the lower priority will apply f
841
1149
  #
842
- # @param rate_type [Symbol, MetronomeSDK::V2::ContractEditParams::AddCredit::RateType]
1150
+ # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::RateType]
1151
+ #
1152
+ # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCredit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
843
1153
 
844
- # @see MetronomeSDK::V2::ContractEditParams::AddCredit#access_schedule
1154
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit#access_schedule
845
1155
  class AccessSchedule < MetronomeSDK::Internal::Type::BaseModel
846
1156
  # @!attribute schedule_items
847
1157
  #
848
- # @return [Array<MetronomeSDK::V2::ContractEditParams::AddCredit::AccessSchedule::ScheduleItem>]
1158
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCredit::AccessSchedule::ScheduleItem>]
849
1159
  required :schedule_items,
850
1160
  -> {
851
1161
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCredit::AccessSchedule::ScheduleItem]
@@ -859,7 +1169,7 @@ module MetronomeSDK
859
1169
  # @!method initialize(schedule_items:, credit_type_id: nil)
860
1170
  # Schedule for distributing the credit to the customer.
861
1171
  #
862
- # @param schedule_items [Array<MetronomeSDK::V2::ContractEditParams::AddCredit::AccessSchedule::ScheduleItem>]
1172
+ # @param schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCredit::AccessSchedule::ScheduleItem>]
863
1173
  # @param credit_type_id [String]
864
1174
 
865
1175
  class ScheduleItem < MetronomeSDK::Internal::Type::BaseModel
@@ -889,7 +1199,118 @@ module MetronomeSDK
889
1199
  end
890
1200
  end
891
1201
 
892
- # @see MetronomeSDK::V2::ContractEditParams::AddCredit#rate_type
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
+
1313
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit#rate_type
893
1314
  module RateType
894
1315
  extend MetronomeSDK::Internal::Type::Enum
895
1316
 
@@ -899,6 +1320,44 @@ module MetronomeSDK
899
1320
  # @!method self.values
900
1321
  # @return [Array<Symbol>]
901
1322
  end
1323
+
1324
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
1325
+ # @!attribute presentation_group_values
1326
+ #
1327
+ # @return [Hash{Symbol=>String}, nil]
1328
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1329
+
1330
+ # @!attribute pricing_group_values
1331
+ #
1332
+ # @return [Hash{Symbol=>String}, nil]
1333
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1334
+
1335
+ # @!attribute product_id
1336
+ # If provided, the specifier will only apply to the product with the specified ID.
1337
+ #
1338
+ # @return [String, nil]
1339
+ optional :product_id, String
1340
+
1341
+ # @!attribute product_tags
1342
+ # If provided, the specifier will only apply to products with all the specified
1343
+ # tags.
1344
+ #
1345
+ # @return [Array<String>, nil]
1346
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1347
+
1348
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
1349
+ # Some parameter documentations has been truncated, see
1350
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddCredit::Specifier} for more
1351
+ # details.
1352
+ #
1353
+ # @param presentation_group_values [Hash{Symbol=>String}]
1354
+ #
1355
+ # @param pricing_group_values [Hash{Symbol=>String}]
1356
+ #
1357
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
1358
+ #
1359
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
1360
+ end
902
1361
  end
903
1362
 
904
1363
  class AddDiscount < MetronomeSDK::Internal::Type::BaseModel
@@ -910,7 +1369,7 @@ module MetronomeSDK
910
1369
  # @!attribute schedule
911
1370
  # Must provide either schedule_items or recurring_schedule.
912
1371
  #
913
- # @return [MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule]
1372
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule]
914
1373
  required :schedule, -> { MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule }
915
1374
 
916
1375
  # @!attribute custom_fields
@@ -933,7 +1392,7 @@ module MetronomeSDK
933
1392
  # @!method initialize(product_id:, schedule:, custom_fields: nil, name: nil, netsuite_sales_order_id: nil)
934
1393
  # @param product_id [String]
935
1394
  #
936
- # @param schedule [MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule] Must provide either schedule_items or recurring_schedule.
1395
+ # @param schedule [MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule] Must provide either schedule_items or recurring_schedule.
937
1396
  #
938
1397
  # @param custom_fields [Hash{Symbol=>String}]
939
1398
  #
@@ -941,7 +1400,7 @@ module MetronomeSDK
941
1400
  #
942
1401
  # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
943
1402
 
944
- # @see MetronomeSDK::V2::ContractEditParams::AddDiscount#schedule
1403
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddDiscount#schedule
945
1404
  class Schedule < MetronomeSDK::Internal::Type::BaseModel
946
1405
  # @!attribute credit_type_id
947
1406
  # Defaults to USD if not passed. Only USD is supported at this time.
@@ -954,14 +1413,14 @@ module MetronomeSDK
954
1413
  # amount. If amount is sent, the unit price is assumed to be the amount and
955
1414
  # quantity is inferred to be 1.
956
1415
  #
957
- # @return [MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule, nil]
1416
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule, nil]
958
1417
  optional :recurring_schedule,
959
1418
  -> { MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule }
960
1419
 
961
1420
  # @!attribute schedule_items
962
1421
  # Either provide amount or provide both unit_price and quantity.
963
1422
  #
964
- # @return [Array<MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::ScheduleItem>, nil]
1423
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::ScheduleItem>, nil]
965
1424
  optional :schedule_items,
966
1425
  -> {
967
1426
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::ScheduleItem]
@@ -969,21 +1428,22 @@ module MetronomeSDK
969
1428
 
970
1429
  # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
971
1430
  # Some parameter documentations has been truncated, see
972
- # {MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule} for more details.
1431
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule} for more
1432
+ # details.
973
1433
  #
974
1434
  # Must provide either schedule_items or recurring_schedule.
975
1435
  #
976
1436
  # @param credit_type_id [String] Defaults to USD if not passed. Only USD is supported at this time.
977
1437
  #
978
- # @param recurring_schedule [MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
1438
+ # @param recurring_schedule [MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
979
1439
  #
980
- # @param schedule_items [Array<MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
1440
+ # @param schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
981
1441
 
982
- # @see MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule#recurring_schedule
1442
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule#recurring_schedule
983
1443
  class RecurringSchedule < MetronomeSDK::Internal::Type::BaseModel
984
1444
  # @!attribute amount_distribution
985
1445
  #
986
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::AmountDistribution]
1446
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::AmountDistribution]
987
1447
  required :amount_distribution,
988
1448
  enum: -> {
989
1449
  MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::AmountDistribution
@@ -997,7 +1457,7 @@ module MetronomeSDK
997
1457
 
998
1458
  # @!attribute frequency
999
1459
  #
1000
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::Frequency]
1460
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::Frequency]
1001
1461
  required :frequency,
1002
1462
  enum: -> {
1003
1463
  MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::Frequency
@@ -1035,18 +1495,18 @@ module MetronomeSDK
1035
1495
 
1036
1496
  # @!method initialize(amount_distribution:, ending_before:, frequency:, starting_at:, amount: nil, quantity: nil, unit_price: nil)
1037
1497
  # Some parameter documentations has been truncated, see
1038
- # {MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule}
1498
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule}
1039
1499
  # for more details.
1040
1500
  #
1041
1501
  # Enter the unit price and quantity for the charge or instead only send the
1042
1502
  # amount. If amount is sent, the unit price is assumed to be the amount and
1043
1503
  # quantity is inferred to be 1.
1044
1504
  #
1045
- # @param amount_distribution [Symbol, MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::AmountDistribution]
1505
+ # @param amount_distribution [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::AmountDistribution]
1046
1506
  #
1047
1507
  # @param ending_before [Time] RFC 3339 timestamp (exclusive).
1048
1508
  #
1049
- # @param frequency [Symbol, MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::Frequency]
1509
+ # @param frequency [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::Frequency]
1050
1510
  #
1051
1511
  # @param starting_at [Time] RFC 3339 timestamp (inclusive).
1052
1512
  #
@@ -1056,7 +1516,7 @@ module MetronomeSDK
1056
1516
  #
1057
1517
  # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
1058
1518
 
1059
- # @see MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule#amount_distribution
1519
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule#amount_distribution
1060
1520
  module AmountDistribution
1061
1521
  extend MetronomeSDK::Internal::Type::Enum
1062
1522
 
@@ -1068,7 +1528,7 @@ module MetronomeSDK
1068
1528
  # @return [Array<Symbol>]
1069
1529
  end
1070
1530
 
1071
- # @see MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule#frequency
1531
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule#frequency
1072
1532
  module Frequency
1073
1533
  extend MetronomeSDK::Internal::Type::Enum
1074
1534
 
@@ -1116,8 +1576,8 @@ module MetronomeSDK
1116
1576
 
1117
1577
  # @!method initialize(timestamp:, amount: nil, quantity: nil, unit_price: nil)
1118
1578
  # Some parameter documentations has been truncated, see
1119
- # {MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::ScheduleItem} for
1120
- # more details.
1579
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::ScheduleItem}
1580
+ # for more details.
1121
1581
  #
1122
1582
  # @param timestamp [Time] timestamp of the scheduled event
1123
1583
  #
@@ -1172,7 +1632,7 @@ module MetronomeSDK
1172
1632
  # Cannot be used in conjunction with product_id or applicable_product_tags. If
1173
1633
  # provided, the override will apply to all products with the specified specifiers.
1174
1634
  #
1175
- # @return [Array<MetronomeSDK::V2::ContractEditParams::AddOverride::OverrideSpecifier>, nil]
1635
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier>, nil]
1176
1636
  optional :override_specifiers,
1177
1637
  -> {
1178
1638
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddOverride::OverrideSpecifier]
@@ -1181,7 +1641,7 @@ module MetronomeSDK
1181
1641
  # @!attribute overwrite_rate
1182
1642
  # Required for OVERWRITE type.
1183
1643
  #
1184
- # @return [MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate, nil]
1644
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate, nil]
1185
1645
  optional :overwrite_rate, -> { MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate }
1186
1646
 
1187
1647
  # @!attribute priority
@@ -1204,13 +1664,13 @@ module MetronomeSDK
1204
1664
  # be used for overrides that have `is_commit_specific` set to `true`. Defaults to
1205
1665
  # `"LIST_RATE"`.
1206
1666
  #
1207
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddOverride::Target, nil]
1667
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::Target, nil]
1208
1668
  optional :target, enum: -> { MetronomeSDK::V2::ContractEditParams::AddOverride::Target }
1209
1669
 
1210
1670
  # @!attribute tiers
1211
1671
  # Required for TIERED type. Must have at least one tier.
1212
1672
  #
1213
- # @return [Array<MetronomeSDK::V2::ContractEditParams::AddOverride::Tier>, nil]
1673
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride::Tier>, nil]
1214
1674
  optional :tiers,
1215
1675
  -> {
1216
1676
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddOverride::Tier]
@@ -1219,12 +1679,12 @@ module MetronomeSDK
1219
1679
  # @!attribute type
1220
1680
  # Overwrites are prioritized over multipliers and tiered overrides.
1221
1681
  #
1222
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddOverride::Type, nil]
1682
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::Type, nil]
1223
1683
  optional :type, enum: -> { MetronomeSDK::V2::ContractEditParams::AddOverride::Type }
1224
1684
 
1225
1685
  # @!method initialize(starting_at:, applicable_product_tags: nil, ending_before: nil, entitled: nil, is_commit_specific: nil, multiplier: nil, override_specifiers: nil, overwrite_rate: nil, priority: nil, product_id: nil, target: nil, tiers: nil, type: nil)
1226
1686
  # Some parameter documentations has been truncated, see
1227
- # {MetronomeSDK::V2::ContractEditParams::AddOverride} for more details.
1687
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddOverride} for more details.
1228
1688
  #
1229
1689
  # @param starting_at [Time] RFC 3339 timestamp indicating when the override will start applying (inclusive)
1230
1690
  #
@@ -1238,21 +1698,29 @@ module MetronomeSDK
1238
1698
  #
1239
1699
  # @param multiplier [Float] Required for MULTIPLIER type. Must be >=0.
1240
1700
  #
1241
- # @param override_specifiers [Array<MetronomeSDK::V2::ContractEditParams::AddOverride::OverrideSpecifier>] Cannot be used in conjunction with product_id or applicable_product_tags. If pro
1701
+ # @param override_specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier>] Cannot be used in conjunction with product_id or applicable_product_tags. If pro
1242
1702
  #
1243
- # @param overwrite_rate [MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate] Required for OVERWRITE type.
1703
+ # @param overwrite_rate [MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate] Required for OVERWRITE type.
1244
1704
  #
1245
1705
  # @param priority [Float] Required for EXPLICIT multiplier prioritization scheme and all TIERED overrides.
1246
1706
  #
1247
1707
  # @param product_id [String] ID of the product whose rate is being overridden
1248
1708
  #
1249
- # @param target [Symbol, MetronomeSDK::V2::ContractEditParams::AddOverride::Target] Indicates whether the override applies to commit rates or list rates. Can only b
1709
+ # @param target [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::Target] Indicates whether the override applies to commit rates or list rates. Can only b
1250
1710
  #
1251
- # @param tiers [Array<MetronomeSDK::V2::ContractEditParams::AddOverride::Tier>] Required for TIERED type. Must have at least one tier.
1711
+ # @param tiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride::Tier>] Required for TIERED type. Must have at least one tier.
1252
1712
  #
1253
- # @param type [Symbol, MetronomeSDK::V2::ContractEditParams::AddOverride::Type] Overwrites are prioritized over multipliers and tiered overrides.
1713
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::Type] Overwrites are prioritized over multipliers and tiered overrides.
1254
1714
 
1255
1715
  class OverrideSpecifier < MetronomeSDK::Internal::Type::BaseModel
1716
+ # @!attribute billing_frequency
1717
+ #
1718
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier::BillingFrequency, nil]
1719
+ optional :billing_frequency,
1720
+ enum: -> {
1721
+ MetronomeSDK::V2::ContractEditParams::AddOverride::OverrideSpecifier::BillingFrequency
1722
+ }
1723
+
1256
1724
  # @!attribute commit_ids
1257
1725
  # If provided, the override will only apply to the specified commits. Can only be
1258
1726
  # used for commit specific overrides. If not provided, the override will apply to
@@ -1307,10 +1775,12 @@ module MetronomeSDK
1307
1775
  # @return [Array<String>, nil]
1308
1776
  optional :recurring_credit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1309
1777
 
1310
- # @!method initialize(commit_ids: nil, presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil, recurring_commit_ids: nil, recurring_credit_ids: nil)
1778
+ # @!method initialize(billing_frequency: nil, commit_ids: nil, presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil, recurring_commit_ids: nil, recurring_credit_ids: nil)
1311
1779
  # Some parameter documentations has been truncated, see
1312
- # {MetronomeSDK::V2::ContractEditParams::AddOverride::OverrideSpecifier} for more
1313
- # details.
1780
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier}
1781
+ # for more details.
1782
+ #
1783
+ # @param billing_frequency [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier::BillingFrequency]
1314
1784
  #
1315
1785
  # @param commit_ids [Array<String>] If provided, the override will only apply to the specified commits. Can only be
1316
1786
  #
@@ -1325,13 +1795,26 @@ module MetronomeSDK
1325
1795
  # @param recurring_commit_ids [Array<String>] Can only be used for commit specific overrides. Must be used in conjunction with
1326
1796
  #
1327
1797
  # @param recurring_credit_ids [Array<String>] Can only be used for commit specific overrides. Must be used in conjunction with
1798
+
1799
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier#billing_frequency
1800
+ module BillingFrequency
1801
+ extend MetronomeSDK::Internal::Type::Enum
1802
+
1803
+ MONTHLY = :MONTHLY
1804
+ QUARTERLY = :QUARTERLY
1805
+ ANNUAL = :ANNUAL
1806
+ WEEKLY = :WEEKLY
1807
+
1808
+ # @!method self.values
1809
+ # @return [Array<Symbol>]
1810
+ end
1328
1811
  end
1329
1812
 
1330
- # @see MetronomeSDK::V2::ContractEditParams::AddOverride#overwrite_rate
1813
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddOverride#overwrite_rate
1331
1814
  class OverwriteRate < MetronomeSDK::Internal::Type::BaseModel
1332
1815
  # @!attribute rate_type
1333
1816
  #
1334
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate::RateType]
1817
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate::RateType]
1335
1818
  required :rate_type,
1336
1819
  enum: -> { MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate::RateType }
1337
1820
 
@@ -1370,17 +1853,17 @@ module MetronomeSDK
1370
1853
  # @!attribute tiers
1371
1854
  # Only set for TIERED rate_type.
1372
1855
  #
1373
- # @return [Array<MetronomeSDK::Tier>, nil]
1856
+ # @return [Array<MetronomeSDK::Models::Tier>, nil]
1374
1857
  optional :tiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Tier] }
1375
1858
 
1376
1859
  # @!method initialize(rate_type:, credit_type_id: nil, custom_rate: nil, is_prorated: nil, price: nil, quantity: nil, tiers: nil)
1377
1860
  # Some parameter documentations has been truncated, see
1378
- # {MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate} for more
1379
- # details.
1861
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate} for
1862
+ # more details.
1380
1863
  #
1381
1864
  # Required for OVERWRITE type.
1382
1865
  #
1383
- # @param rate_type [Symbol, MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate::RateType]
1866
+ # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate::RateType]
1384
1867
  #
1385
1868
  # @param credit_type_id [String]
1386
1869
  #
@@ -1392,9 +1875,9 @@ module MetronomeSDK
1392
1875
  #
1393
1876
  # @param quantity [Float] Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
1394
1877
  #
1395
- # @param tiers [Array<MetronomeSDK::Tier>] Only set for TIERED rate_type.
1878
+ # @param tiers [Array<MetronomeSDK::Models::Tier>] Only set for TIERED rate_type.
1396
1879
 
1397
- # @see MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate#rate_type
1880
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate#rate_type
1398
1881
  module RateType
1399
1882
  extend MetronomeSDK::Internal::Type::Enum
1400
1883
 
@@ -1413,7 +1896,7 @@ module MetronomeSDK
1413
1896
  # be used for overrides that have `is_commit_specific` set to `true`. Defaults to
1414
1897
  # `"LIST_RATE"`.
1415
1898
  #
1416
- # @see MetronomeSDK::V2::ContractEditParams::AddOverride#target
1899
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddOverride#target
1417
1900
  module Target
1418
1901
  extend MetronomeSDK::Internal::Type::Enum
1419
1902
 
@@ -1442,7 +1925,7 @@ module MetronomeSDK
1442
1925
 
1443
1926
  # Overwrites are prioritized over multipliers and tiered overrides.
1444
1927
  #
1445
- # @see MetronomeSDK::V2::ContractEditParams::AddOverride#type
1928
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddOverride#type
1446
1929
  module Type
1447
1930
  extend MetronomeSDK::Internal::Type::Enum
1448
1931
 
@@ -1458,7 +1941,7 @@ module MetronomeSDK
1458
1941
  class AddPrepaidBalanceThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
1459
1942
  # @!attribute commit
1460
1943
  #
1461
- # @return [MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit]
1944
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit]
1462
1945
  required :commit,
1463
1946
  -> {
1464
1947
  MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit
@@ -1474,7 +1957,7 @@ module MetronomeSDK
1474
1957
 
1475
1958
  # @!attribute payment_gate_config
1476
1959
  #
1477
- # @return [MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig]
1960
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig]
1478
1961
  required :payment_gate_config,
1479
1962
  -> {
1480
1963
  MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig
@@ -1493,22 +1976,31 @@ module MetronomeSDK
1493
1976
  # @return [Float]
1494
1977
  required :threshold_amount, Float
1495
1978
 
1496
- # @!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)
1497
1987
  # Some parameter documentations has been truncated, see
1498
- # {MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration}
1988
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration}
1499
1989
  # for more details.
1500
1990
  #
1501
- # @param commit [MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit]
1991
+ # @param commit [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit]
1502
1992
  #
1503
1993
  # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
1504
1994
  #
1505
- # @param payment_gate_config [MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig]
1995
+ # @param payment_gate_config [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig]
1506
1996
  #
1507
1997
  # @param recharge_to_amount [Float] Specify the amount the balance should be recharged to.
1508
1998
  #
1509
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
1510
2002
 
1511
- # @see MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration#commit
2003
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration#commit
1512
2004
  class Commit < MetronomeSDK::Internal::Type::BaseModel
1513
2005
  # @!attribute product_id
1514
2006
  # The commit product that will be used to generate the line item for commit
@@ -1518,16 +2010,17 @@ module MetronomeSDK
1518
2010
  required :product_id, String
1519
2011
 
1520
2012
  # @!attribute applicable_product_ids
1521
- # Which products the threshold commit applies to. If both applicable_product_ids
1522
- # and applicable_product_tags are not provided, the commit applies to all
1523
- # 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.
1524
2016
  #
1525
2017
  # @return [Array<String>, nil]
1526
2018
  optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1527
2019
 
1528
2020
  # @!attribute applicable_product_tags
1529
- # Which tags the threshold commit applies to. If both applicable_product_ids and
1530
- # 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.
1531
2024
  #
1532
2025
  # @return [Array<String>, nil]
1533
2026
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
@@ -1544,23 +2037,75 @@ module MetronomeSDK
1544
2037
  # @return [String, nil]
1545
2038
  optional :name, String
1546
2039
 
1547
- # @!method initialize(product_id:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, name: nil)
2040
+ # @!attribute specifiers
2041
+ # List of filters that determine what kind of customer usage draws down a commit
2042
+ # or credit. A customer's usage needs to meet the condition of at least one of the
2043
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2044
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
2045
+ #
2046
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit::Specifier>, nil]
2047
+ optional :specifiers,
2048
+ -> {
2049
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit::Specifier]
2050
+ }
2051
+
2052
+ # @!method initialize(product_id:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, name: nil, specifiers: nil)
1548
2053
  # Some parameter documentations has been truncated, see
1549
- # {MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit}
2054
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit}
1550
2055
  # for more details.
1551
2056
  #
1552
2057
  # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
1553
2058
  #
1554
- # @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
1555
2060
  #
1556
- # @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
1557
2062
  #
1558
2063
  # @param description [String]
1559
2064
  #
1560
2065
  # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
2066
+ #
2067
+ # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
2068
+
2069
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
2070
+ # @!attribute presentation_group_values
2071
+ #
2072
+ # @return [Hash{Symbol=>String}, nil]
2073
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2074
+
2075
+ # @!attribute pricing_group_values
2076
+ #
2077
+ # @return [Hash{Symbol=>String}, nil]
2078
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2079
+
2080
+ # @!attribute product_id
2081
+ # If provided, the specifier will only apply to the product with the specified ID.
2082
+ #
2083
+ # @return [String, nil]
2084
+ optional :product_id, String
2085
+
2086
+ # @!attribute product_tags
2087
+ # If provided, the specifier will only apply to products with all the specified
2088
+ # tags.
2089
+ #
2090
+ # @return [Array<String>, nil]
2091
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
2092
+
2093
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
2094
+ # Some parameter documentations has been truncated, see
2095
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit::Specifier}
2096
+ # for more details.
2097
+ #
2098
+ # @param presentation_group_values [Hash{Symbol=>String}]
2099
+ #
2100
+ # @param pricing_group_values [Hash{Symbol=>String}]
2101
+ #
2102
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
2103
+ #
2104
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
2105
+ end
1561
2106
  end
1562
2107
 
1563
- # @see MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration#payment_gate_config
2108
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration#payment_gate_config
1564
2109
  class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
1565
2110
  # @!attribute payment_gate_type
1566
2111
  # Gate access to the commit balance based on successful collection of payment.
@@ -1568,16 +2113,25 @@ module MetronomeSDK
1568
2113
  # facilitate payment using your own payment integration. Select NONE if you do not
1569
2114
  # wish to payment gate the commit balance.
1570
2115
  #
1571
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType]
2116
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType]
1572
2117
  required :payment_gate_type,
1573
2118
  enum: -> {
1574
2119
  MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType
1575
2120
  }
1576
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
+
1577
2131
  # @!attribute stripe_config
1578
- # Only applicable if using Stripe as your payment gateway through Metronome.
2132
+ # Only applicable if using STRIPE as your payment gateway type.
1579
2133
  #
1580
- # @return [MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
2134
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
1581
2135
  optional :stripe_config,
1582
2136
  -> {
1583
2137
  MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig
@@ -1588,29 +2142,31 @@ module MetronomeSDK
1588
2142
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
1589
2143
  # will default to NONE.
1590
2144
  #
1591
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType, nil]
2145
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType, nil]
1592
2146
  optional :tax_type,
1593
2147
  enum: -> {
1594
2148
  MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType
1595
2149
  }
1596
2150
 
1597
- # @!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)
1598
2152
  # Some parameter documentations has been truncated, see
1599
- # {MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig}
2153
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig}
1600
2154
  # for more details.
1601
2155
  #
1602
- # @param payment_gate_type [Symbol, MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
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
2157
+ #
2158
+ # @param precalculated_tax_config [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
1603
2159
  #
1604
- # @param stripe_config [MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using Stripe as your payment gateway through Metronome.
2160
+ # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gateway type.
1605
2161
  #
1606
- # @param tax_type [Symbol, MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
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
1607
2163
 
1608
2164
  # Gate access to the commit balance based on successful collection of payment.
1609
2165
  # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
1610
2166
  # facilitate payment using your own payment integration. Select NONE if you do not
1611
2167
  # wish to payment gate the commit balance.
1612
2168
  #
1613
- # @see MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig#payment_gate_type
2169
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig#payment_gate_type
1614
2170
  module PaymentGateType
1615
2171
  extend MetronomeSDK::Internal::Type::Enum
1616
2172
 
@@ -1622,25 +2178,66 @@ module MetronomeSDK
1622
2178
  # @return [Array<Symbol>]
1623
2179
  end
1624
2180
 
1625
- # @see MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig#stripe_config
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
+
2209
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig#stripe_config
1626
2210
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
1627
2211
  # @!attribute payment_type
1628
2212
  # If left blank, will default to INVOICE
1629
2213
  #
1630
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
2214
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
1631
2215
  required :payment_type,
1632
2216
  enum: -> {
1633
2217
  MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
1634
2218
  }
1635
2219
 
1636
- # @!method initialize(payment_type:)
1637
- # 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.
2233
+ #
2234
+ # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
1638
2235
  #
1639
- # @param payment_type [Symbol, MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
2236
+ # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
1640
2237
 
1641
2238
  # If left blank, will default to INVOICE
1642
2239
  #
1643
- # @see MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
2240
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
1644
2241
  module PaymentType
1645
2242
  extend MetronomeSDK::Internal::Type::Enum
1646
2243
 
@@ -1656,12 +2253,14 @@ module MetronomeSDK
1656
2253
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
1657
2254
  # will default to NONE.
1658
2255
  #
1659
- # @see MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig#tax_type
2256
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig#tax_type
1660
2257
  module TaxType
1661
2258
  extend MetronomeSDK::Internal::Type::Enum
1662
2259
 
1663
2260
  NONE = :NONE
1664
2261
  STRIPE = :STRIPE
2262
+ ANROK = :ANROK
2263
+ PRECALCULATED = :PRECALCULATED
1665
2264
 
1666
2265
  # @!method self.values
1667
2266
  # @return [Array<Symbol>]
@@ -1713,7 +2312,8 @@ module MetronomeSDK
1713
2312
 
1714
2313
  # @!method initialize(max_amount:, product_id:, quantity:, unit_price:, custom_fields: nil, description: nil, netsuite_sales_order_id: nil)
1715
2314
  # Some parameter documentations has been truncated, see
1716
- # {MetronomeSDK::V2::ContractEditParams::AddProfessionalService} for more details.
2315
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddProfessionalService} for more
2316
+ # details.
1717
2317
  #
1718
2318
  # @param max_amount [Float] Maximum amount for the term.
1719
2319
  #
@@ -1734,16 +2334,18 @@ module MetronomeSDK
1734
2334
  # @!attribute access_amount
1735
2335
  # The amount of commit to grant.
1736
2336
  #
1737
- # @return [MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::AccessAmount]
2337
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::AccessAmount]
1738
2338
  required :access_amount,
1739
2339
  -> {
1740
2340
  MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::AccessAmount
1741
2341
  }
1742
2342
 
1743
2343
  # @!attribute commit_duration
1744
- # The amount of time the created commits will be valid for.
2344
+ # Defines the length of the access schedule for each created commit/credit. The
2345
+ # value represents the number of units. Unit defaults to "PERIODS", where the
2346
+ # length of a period is determined by the recurrence_frequency.
1745
2347
  #
1746
- # @return [MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::CommitDuration]
2348
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration]
1747
2349
  required :commit_duration,
1748
2350
  -> {
1749
2351
  MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::CommitDuration
@@ -1793,7 +2395,7 @@ module MetronomeSDK
1793
2395
  # @!attribute invoice_amount
1794
2396
  # The amount the customer should be billed for the commit. Not required.
1795
2397
  #
1796
- # @return [MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount, nil]
2398
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount, nil]
1797
2399
  optional :invoice_amount,
1798
2400
  -> {
1799
2401
  MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount
@@ -1815,7 +2417,7 @@ module MetronomeSDK
1815
2417
  # Determines whether the first and last commit will be prorated. If not provided,
1816
2418
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
1817
2419
  #
1818
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration, nil]
2420
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Proration, nil]
1819
2421
  optional :proration,
1820
2422
  enum: -> {
1821
2423
  MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration
@@ -1824,17 +2426,17 @@ module MetronomeSDK
1824
2426
  # @!attribute rate_type
1825
2427
  # Whether the created commits will use the commit rate or list rate
1826
2428
  #
1827
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RateType, nil]
2429
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::RateType, nil]
1828
2430
  optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RateType }
1829
2431
 
1830
2432
  # @!attribute recurrence_frequency
1831
2433
  # The frequency at which the recurring commits will be created. If not provided: -
1832
2434
  # The commits will be created on the usage invoice frequency. If provided: - The
1833
2435
  # period defined in the duration will correspond to this frequency. - Commits will
1834
- # be created aligned with the recurring commit's start_date rather than the usage
2436
+ # be created aligned with the recurring commit's starting_at rather than the usage
1835
2437
  # invoice dates.
1836
2438
  #
1837
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency, nil]
2439
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency, nil]
1838
2440
  optional :recurrence_frequency,
1839
2441
  enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency }
1840
2442
 
@@ -1846,6 +2448,18 @@ module MetronomeSDK
1846
2448
  # @return [Float, nil]
1847
2449
  optional :rollover_fraction, Float
1848
2450
 
2451
+ # @!attribute specifiers
2452
+ # List of filters that determine what kind of customer usage draws down a commit
2453
+ # or credit. A customer's usage needs to meet the condition of at least one of the
2454
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2455
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
2456
+ #
2457
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Specifier>, nil]
2458
+ optional :specifiers,
2459
+ -> {
2460
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Specifier]
2461
+ }
2462
+
1849
2463
  # @!attribute temporary_id
1850
2464
  # A temporary ID that can be used to reference the recurring commit for commit
1851
2465
  # specific overrides.
@@ -1853,13 +2467,14 @@ module MetronomeSDK
1853
2467
  # @return [String, nil]
1854
2468
  optional :temporary_id, String
1855
2469
 
1856
- # @!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, temporary_id: nil)
2470
+ # @!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)
1857
2471
  # Some parameter documentations has been truncated, see
1858
- # {MetronomeSDK::V2::ContractEditParams::AddRecurringCommit} for more details.
2472
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit} for more
2473
+ # details.
1859
2474
  #
1860
- # @param access_amount [MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::AccessAmount] The amount of commit to grant.
2475
+ # @param access_amount [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::AccessAmount] The amount of commit to grant.
1861
2476
  #
1862
- # @param commit_duration [MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::CommitDuration] The amount of time the created commits will be valid for.
2477
+ # @param commit_duration [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration] Defines the length of the access schedule for each created commit/credit. The va
1863
2478
  #
1864
2479
  # @param priority [Float] Will be passed down to the individual commits
1865
2480
  #
@@ -1875,69 +2490,81 @@ module MetronomeSDK
1875
2490
  #
1876
2491
  # @param ending_before [Time] Determines when the contract will stop creating recurring commits. optional
1877
2492
  #
1878
- # @param invoice_amount [MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount] The amount the customer should be billed for the commit. Not required.
2493
+ # @param invoice_amount [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount] The amount the customer should be billed for the commit. Not required.
1879
2494
  #
1880
2495
  # @param name [String] displayed on invoices. will be passed through to the individual commits
1881
2496
  #
1882
2497
  # @param netsuite_sales_order_id [String] Will be passed down to the individual commits
1883
2498
  #
1884
- # @param proration [Symbol, MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration] Determines whether the first and last commit will be prorated. If not provided,
2499
+ # @param proration [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Proration] Determines whether the first and last commit will be prorated. If not provided,
1885
2500
  #
1886
- # @param rate_type [Symbol, MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RateType] Whether the created commits will use the commit rate or list rate
2501
+ # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::RateType] Whether the created commits will use the commit rate or list rate
1887
2502
  #
1888
- # @param recurrence_frequency [Symbol, MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
2503
+ # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
1889
2504
  #
1890
2505
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
1891
2506
  #
2507
+ # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
2508
+ #
1892
2509
  # @param temporary_id [String] A temporary ID that can be used to reference the recurring commit for commit spe
1893
2510
 
1894
- # @see MetronomeSDK::V2::ContractEditParams::AddRecurringCommit#access_amount
2511
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#access_amount
1895
2512
  class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
1896
2513
  # @!attribute credit_type_id
1897
2514
  #
1898
2515
  # @return [String]
1899
2516
  required :credit_type_id, String
1900
2517
 
1901
- # @!attribute quantity
1902
- #
1903
- # @return [Float]
1904
- required :quantity, Float
1905
-
1906
2518
  # @!attribute unit_price
1907
2519
  #
1908
2520
  # @return [Float]
1909
2521
  required :unit_price, Float
1910
2522
 
1911
- # @!method initialize(credit_type_id:, quantity:, unit_price:)
2523
+ # @!attribute quantity
2524
+ # This field is currently required. Upcoming recurring commit/credit configuration
2525
+ # options will allow it to be optional.
2526
+ #
2527
+ # @return [Float, nil]
2528
+ optional :quantity, Float
2529
+
2530
+ # @!method initialize(credit_type_id:, unit_price:, quantity: nil)
2531
+ # Some parameter documentations has been truncated, see
2532
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::AccessAmount}
2533
+ # for more details.
2534
+ #
1912
2535
  # The amount of commit to grant.
1913
2536
  #
1914
2537
  # @param credit_type_id [String]
1915
- # @param quantity [Float]
2538
+ #
1916
2539
  # @param unit_price [Float]
2540
+ #
2541
+ # @param quantity [Float] This field is currently required. Upcoming recurring commit/credit configuration
1917
2542
  end
1918
2543
 
1919
- # @see MetronomeSDK::V2::ContractEditParams::AddRecurringCommit#commit_duration
2544
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#commit_duration
1920
2545
  class CommitDuration < MetronomeSDK::Internal::Type::BaseModel
2546
+ # @!attribute value
2547
+ #
2548
+ # @return [Float]
2549
+ required :value, Float
2550
+
1921
2551
  # @!attribute unit
1922
2552
  #
1923
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::CommitDuration::Unit]
1924
- required :unit,
2553
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration::Unit, nil]
2554
+ optional :unit,
1925
2555
  enum: -> {
1926
2556
  MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::CommitDuration::Unit
1927
2557
  }
1928
2558
 
1929
- # @!attribute value
1930
- #
1931
- # @return [Float]
1932
- required :value, Float
1933
-
1934
- # @!method initialize(unit:, value:)
1935
- # The amount of time the created commits will be valid for.
2559
+ # @!method initialize(value:, unit: nil)
2560
+ # Defines the length of the access schedule for each created commit/credit. The
2561
+ # value represents the number of units. Unit defaults to "PERIODS", where the
2562
+ # length of a period is determined by the recurrence_frequency.
1936
2563
  #
1937
- # @param unit [Symbol, MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::CommitDuration::Unit]
1938
2564
  # @param value [Float]
2565
+ # @param unit [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration::Unit]
1939
2566
 
1940
- # @see MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::CommitDuration#unit
2567
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration#unit
1941
2568
  module Unit
1942
2569
  extend MetronomeSDK::Internal::Type::Enum
1943
2570
 
@@ -1948,7 +2575,7 @@ module MetronomeSDK
1948
2575
  end
1949
2576
  end
1950
2577
 
1951
- # @see MetronomeSDK::V2::ContractEditParams::AddRecurringCommit#invoice_amount
2578
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#invoice_amount
1952
2579
  class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
1953
2580
  # @!attribute credit_type_id
1954
2581
  #
@@ -1976,7 +2603,7 @@ module MetronomeSDK
1976
2603
  # Determines whether the first and last commit will be prorated. If not provided,
1977
2604
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
1978
2605
  #
1979
- # @see MetronomeSDK::V2::ContractEditParams::AddRecurringCommit#proration
2606
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#proration
1980
2607
  module Proration
1981
2608
  extend MetronomeSDK::Internal::Type::Enum
1982
2609
 
@@ -1991,7 +2618,7 @@ module MetronomeSDK
1991
2618
 
1992
2619
  # Whether the created commits will use the commit rate or list rate
1993
2620
  #
1994
- # @see MetronomeSDK::V2::ContractEditParams::AddRecurringCommit#rate_type
2621
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#rate_type
1995
2622
  module RateType
1996
2623
  extend MetronomeSDK::Internal::Type::Enum
1997
2624
 
@@ -2005,10 +2632,10 @@ module MetronomeSDK
2005
2632
  # The frequency at which the recurring commits will be created. If not provided: -
2006
2633
  # The commits will be created on the usage invoice frequency. If provided: - The
2007
2634
  # period defined in the duration will correspond to this frequency. - Commits will
2008
- # be created aligned with the recurring commit's start_date rather than the usage
2635
+ # be created aligned with the recurring commit's starting_at rather than the usage
2009
2636
  # invoice dates.
2010
2637
  #
2011
- # @see MetronomeSDK::V2::ContractEditParams::AddRecurringCommit#recurrence_frequency
2638
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#recurrence_frequency
2012
2639
  module RecurrenceFrequency
2013
2640
  extend MetronomeSDK::Internal::Type::Enum
2014
2641
 
@@ -2020,22 +2647,62 @@ module MetronomeSDK
2020
2647
  # @!method self.values
2021
2648
  # @return [Array<Symbol>]
2022
2649
  end
2650
+
2651
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
2652
+ # @!attribute presentation_group_values
2653
+ #
2654
+ # @return [Hash{Symbol=>String}, nil]
2655
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2656
+
2657
+ # @!attribute pricing_group_values
2658
+ #
2659
+ # @return [Hash{Symbol=>String}, nil]
2660
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2661
+
2662
+ # @!attribute product_id
2663
+ # If provided, the specifier will only apply to the product with the specified ID.
2664
+ #
2665
+ # @return [String, nil]
2666
+ optional :product_id, String
2667
+
2668
+ # @!attribute product_tags
2669
+ # If provided, the specifier will only apply to products with all the specified
2670
+ # tags.
2671
+ #
2672
+ # @return [Array<String>, nil]
2673
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
2674
+
2675
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
2676
+ # Some parameter documentations has been truncated, see
2677
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Specifier}
2678
+ # for more details.
2679
+ #
2680
+ # @param presentation_group_values [Hash{Symbol=>String}]
2681
+ #
2682
+ # @param pricing_group_values [Hash{Symbol=>String}]
2683
+ #
2684
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
2685
+ #
2686
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
2687
+ end
2023
2688
  end
2024
2689
 
2025
2690
  class AddRecurringCredit < MetronomeSDK::Internal::Type::BaseModel
2026
2691
  # @!attribute access_amount
2027
2692
  # The amount of commit to grant.
2028
2693
  #
2029
- # @return [MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::AccessAmount]
2694
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::AccessAmount]
2030
2695
  required :access_amount,
2031
2696
  -> {
2032
2697
  MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::AccessAmount
2033
2698
  }
2034
2699
 
2035
2700
  # @!attribute commit_duration
2036
- # The amount of time the created commits will be valid for.
2701
+ # Defines the length of the access schedule for each created commit/credit. The
2702
+ # value represents the number of units. Unit defaults to "PERIODS", where the
2703
+ # length of a period is determined by the recurrence_frequency.
2037
2704
  #
2038
- # @return [MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration]
2705
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::CommitDuration]
2039
2706
  required :commit_duration,
2040
2707
  -> {
2041
2708
  MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration
@@ -2098,7 +2765,7 @@ module MetronomeSDK
2098
2765
  # Determines whether the first and last commit will be prorated. If not provided,
2099
2766
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
2100
2767
  #
2101
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::Proration, nil]
2768
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Proration, nil]
2102
2769
  optional :proration,
2103
2770
  enum: -> {
2104
2771
  MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::Proration
@@ -2107,17 +2774,17 @@ module MetronomeSDK
2107
2774
  # @!attribute rate_type
2108
2775
  # Whether the created commits will use the commit rate or list rate
2109
2776
  #
2110
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::RateType, nil]
2777
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::RateType, nil]
2111
2778
  optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::RateType }
2112
2779
 
2113
2780
  # @!attribute recurrence_frequency
2114
2781
  # The frequency at which the recurring commits will be created. If not provided: -
2115
2782
  # The commits will be created on the usage invoice frequency. If provided: - The
2116
2783
  # period defined in the duration will correspond to this frequency. - Commits will
2117
- # be created aligned with the recurring commit's start_date rather than the usage
2784
+ # be created aligned with the recurring commit's starting_at rather than the usage
2118
2785
  # invoice dates.
2119
2786
  #
2120
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::RecurrenceFrequency, nil]
2787
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::RecurrenceFrequency, nil]
2121
2788
  optional :recurrence_frequency,
2122
2789
  enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::RecurrenceFrequency }
2123
2790
 
@@ -2129,6 +2796,18 @@ module MetronomeSDK
2129
2796
  # @return [Float, nil]
2130
2797
  optional :rollover_fraction, Float
2131
2798
 
2799
+ # @!attribute specifiers
2800
+ # List of filters that determine what kind of customer usage draws down a commit
2801
+ # or credit. A customer's usage needs to meet the condition of at least one of the
2802
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2803
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
2804
+ #
2805
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Specifier>, nil]
2806
+ optional :specifiers,
2807
+ -> {
2808
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::Specifier]
2809
+ }
2810
+
2132
2811
  # @!attribute temporary_id
2133
2812
  # A temporary ID that can be used to reference the recurring commit for commit
2134
2813
  # specific overrides.
@@ -2136,13 +2815,14 @@ module MetronomeSDK
2136
2815
  # @return [String, nil]
2137
2816
  optional :temporary_id, String
2138
2817
 
2139
- # @!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, temporary_id: nil)
2818
+ # @!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)
2140
2819
  # Some parameter documentations has been truncated, see
2141
- # {MetronomeSDK::V2::ContractEditParams::AddRecurringCredit} for more details.
2820
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit} for more
2821
+ # details.
2142
2822
  #
2143
- # @param access_amount [MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::AccessAmount] The amount of commit to grant.
2823
+ # @param access_amount [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::AccessAmount] The amount of commit to grant.
2144
2824
  #
2145
- # @param commit_duration [MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration] The amount of time the created commits will be valid for.
2825
+ # @param commit_duration [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::CommitDuration] Defines the length of the access schedule for each created commit/credit. The va
2146
2826
  #
2147
2827
  # @param priority [Float] Will be passed down to the individual commits
2148
2828
  #
@@ -2162,63 +2842,75 @@ module MetronomeSDK
2162
2842
  #
2163
2843
  # @param netsuite_sales_order_id [String] Will be passed down to the individual commits
2164
2844
  #
2165
- # @param proration [Symbol, MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::Proration] Determines whether the first and last commit will be prorated. If not provided,
2845
+ # @param proration [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Proration] Determines whether the first and last commit will be prorated. If not provided,
2166
2846
  #
2167
- # @param rate_type [Symbol, MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::RateType] Whether the created commits will use the commit rate or list rate
2847
+ # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::RateType] Whether the created commits will use the commit rate or list rate
2168
2848
  #
2169
- # @param recurrence_frequency [Symbol, MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
2849
+ # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
2170
2850
  #
2171
2851
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
2172
2852
  #
2853
+ # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
2854
+ #
2173
2855
  # @param temporary_id [String] A temporary ID that can be used to reference the recurring commit for commit spe
2174
2856
 
2175
- # @see MetronomeSDK::V2::ContractEditParams::AddRecurringCredit#access_amount
2857
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#access_amount
2176
2858
  class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
2177
2859
  # @!attribute credit_type_id
2178
2860
  #
2179
2861
  # @return [String]
2180
2862
  required :credit_type_id, String
2181
2863
 
2182
- # @!attribute quantity
2183
- #
2184
- # @return [Float]
2185
- required :quantity, Float
2186
-
2187
2864
  # @!attribute unit_price
2188
2865
  #
2189
2866
  # @return [Float]
2190
2867
  required :unit_price, Float
2191
2868
 
2192
- # @!method initialize(credit_type_id:, quantity:, unit_price:)
2869
+ # @!attribute quantity
2870
+ # This field is currently required. Upcoming recurring commit/credit configuration
2871
+ # options will allow it to be optional.
2872
+ #
2873
+ # @return [Float, nil]
2874
+ optional :quantity, Float
2875
+
2876
+ # @!method initialize(credit_type_id:, unit_price:, quantity: nil)
2877
+ # Some parameter documentations has been truncated, see
2878
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::AccessAmount}
2879
+ # for more details.
2880
+ #
2193
2881
  # The amount of commit to grant.
2194
2882
  #
2195
2883
  # @param credit_type_id [String]
2196
- # @param quantity [Float]
2884
+ #
2197
2885
  # @param unit_price [Float]
2886
+ #
2887
+ # @param quantity [Float] This field is currently required. Upcoming recurring commit/credit configuration
2198
2888
  end
2199
2889
 
2200
- # @see MetronomeSDK::V2::ContractEditParams::AddRecurringCredit#commit_duration
2890
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#commit_duration
2201
2891
  class CommitDuration < MetronomeSDK::Internal::Type::BaseModel
2892
+ # @!attribute value
2893
+ #
2894
+ # @return [Float]
2895
+ required :value, Float
2896
+
2202
2897
  # @!attribute unit
2203
2898
  #
2204
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit]
2205
- required :unit,
2899
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit, nil]
2900
+ optional :unit,
2206
2901
  enum: -> {
2207
2902
  MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit
2208
2903
  }
2209
2904
 
2210
- # @!attribute value
2211
- #
2212
- # @return [Float]
2213
- required :value, Float
2214
-
2215
- # @!method initialize(unit:, value:)
2216
- # The amount of time the created commits will be valid for.
2905
+ # @!method initialize(value:, unit: nil)
2906
+ # Defines the length of the access schedule for each created commit/credit. The
2907
+ # value represents the number of units. Unit defaults to "PERIODS", where the
2908
+ # length of a period is determined by the recurrence_frequency.
2217
2909
  #
2218
- # @param unit [Symbol, MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit]
2219
2910
  # @param value [Float]
2911
+ # @param unit [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit]
2220
2912
 
2221
- # @see MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration#unit
2913
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::CommitDuration#unit
2222
2914
  module Unit
2223
2915
  extend MetronomeSDK::Internal::Type::Enum
2224
2916
 
@@ -2232,7 +2924,7 @@ module MetronomeSDK
2232
2924
  # Determines whether the first and last commit will be prorated. If not provided,
2233
2925
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
2234
2926
  #
2235
- # @see MetronomeSDK::V2::ContractEditParams::AddRecurringCredit#proration
2927
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#proration
2236
2928
  module Proration
2237
2929
  extend MetronomeSDK::Internal::Type::Enum
2238
2930
 
@@ -2247,7 +2939,7 @@ module MetronomeSDK
2247
2939
 
2248
2940
  # Whether the created commits will use the commit rate or list rate
2249
2941
  #
2250
- # @see MetronomeSDK::V2::ContractEditParams::AddRecurringCredit#rate_type
2942
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#rate_type
2251
2943
  module RateType
2252
2944
  extend MetronomeSDK::Internal::Type::Enum
2253
2945
 
@@ -2261,10 +2953,10 @@ module MetronomeSDK
2261
2953
  # The frequency at which the recurring commits will be created. If not provided: -
2262
2954
  # The commits will be created on the usage invoice frequency. If provided: - The
2263
2955
  # period defined in the duration will correspond to this frequency. - Commits will
2264
- # be created aligned with the recurring commit's start_date rather than the usage
2956
+ # be created aligned with the recurring commit's starting_at rather than the usage
2265
2957
  # invoice dates.
2266
2958
  #
2267
- # @see MetronomeSDK::V2::ContractEditParams::AddRecurringCredit#recurrence_frequency
2959
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#recurrence_frequency
2268
2960
  module RecurrenceFrequency
2269
2961
  extend MetronomeSDK::Internal::Type::Enum
2270
2962
 
@@ -2276,12 +2968,50 @@ module MetronomeSDK
2276
2968
  # @!method self.values
2277
2969
  # @return [Array<Symbol>]
2278
2970
  end
2971
+
2972
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
2973
+ # @!attribute presentation_group_values
2974
+ #
2975
+ # @return [Hash{Symbol=>String}, nil]
2976
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2977
+
2978
+ # @!attribute pricing_group_values
2979
+ #
2980
+ # @return [Hash{Symbol=>String}, nil]
2981
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2982
+
2983
+ # @!attribute product_id
2984
+ # If provided, the specifier will only apply to the product with the specified ID.
2985
+ #
2986
+ # @return [String, nil]
2987
+ optional :product_id, String
2988
+
2989
+ # @!attribute product_tags
2990
+ # If provided, the specifier will only apply to products with all the specified
2991
+ # tags.
2992
+ #
2993
+ # @return [Array<String>, nil]
2994
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
2995
+
2996
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
2997
+ # Some parameter documentations has been truncated, see
2998
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Specifier}
2999
+ # for more details.
3000
+ #
3001
+ # @param presentation_group_values [Hash{Symbol=>String}]
3002
+ #
3003
+ # @param pricing_group_values [Hash{Symbol=>String}]
3004
+ #
3005
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
3006
+ #
3007
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
3008
+ end
2279
3009
  end
2280
3010
 
2281
3011
  class AddResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel
2282
3012
  # @!attribute reseller_type
2283
3013
  #
2284
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty::ResellerType]
3014
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddResellerRoyalty::ResellerType]
2285
3015
  required :reseller_type,
2286
3016
  enum: -> { MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty::ResellerType }
2287
3017
 
@@ -2299,7 +3029,7 @@ module MetronomeSDK
2299
3029
 
2300
3030
  # @!attribute aws_options
2301
3031
  #
2302
- # @return [MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty::AwsOptions, nil]
3032
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddResellerRoyalty::AwsOptions, nil]
2303
3033
  optional :aws_options, -> { MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty::AwsOptions }
2304
3034
 
2305
3035
  # @!attribute ending_before
@@ -2315,7 +3045,7 @@ module MetronomeSDK
2315
3045
 
2316
3046
  # @!attribute gcp_options
2317
3047
  #
2318
- # @return [MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty::GcpOptions, nil]
3048
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddResellerRoyalty::GcpOptions, nil]
2319
3049
  optional :gcp_options, -> { MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty::GcpOptions }
2320
3050
 
2321
3051
  # @!attribute netsuite_reseller_id
@@ -2334,19 +3064,19 @@ module MetronomeSDK
2334
3064
  optional :starting_at, Time
2335
3065
 
2336
3066
  # @!method initialize(reseller_type:, applicable_product_ids: nil, applicable_product_tags: nil, aws_options: nil, ending_before: nil, fraction: nil, gcp_options: nil, netsuite_reseller_id: nil, reseller_contract_value: nil, starting_at: nil)
2337
- # @param reseller_type [Symbol, MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty::ResellerType]
3067
+ # @param reseller_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddResellerRoyalty::ResellerType]
2338
3068
  #
2339
3069
  # @param applicable_product_ids [Array<String>] Must provide at least one of applicable_product_ids or applicable_product_tags.
2340
3070
  #
2341
3071
  # @param applicable_product_tags [Array<String>] Must provide at least one of applicable_product_ids or applicable_product_tags.
2342
3072
  #
2343
- # @param aws_options [MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty::AwsOptions]
3073
+ # @param aws_options [MetronomeSDK::Models::V2::ContractEditParams::AddResellerRoyalty::AwsOptions]
2344
3074
  #
2345
3075
  # @param ending_before [Time, nil] Use null to indicate that the existing end timestamp should be removed.
2346
3076
  #
2347
3077
  # @param fraction [Float]
2348
3078
  #
2349
- # @param gcp_options [MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty::GcpOptions]
3079
+ # @param gcp_options [MetronomeSDK::Models::V2::ContractEditParams::AddResellerRoyalty::GcpOptions]
2350
3080
  #
2351
3081
  # @param netsuite_reseller_id [String]
2352
3082
  #
@@ -2354,7 +3084,7 @@ module MetronomeSDK
2354
3084
  #
2355
3085
  # @param starting_at [Time]
2356
3086
 
2357
- # @see MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty#reseller_type
3087
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddResellerRoyalty#reseller_type
2358
3088
  module ResellerType
2359
3089
  extend MetronomeSDK::Internal::Type::Enum
2360
3090
 
@@ -2367,7 +3097,7 @@ module MetronomeSDK
2367
3097
  # @return [Array<Symbol>]
2368
3098
  end
2369
3099
 
2370
- # @see MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty#aws_options
3100
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddResellerRoyalty#aws_options
2371
3101
  class AwsOptions < MetronomeSDK::Internal::Type::BaseModel
2372
3102
  # @!attribute aws_account_number
2373
3103
  #
@@ -2390,7 +3120,7 @@ module MetronomeSDK
2390
3120
  # @param aws_payer_reference_id [String]
2391
3121
  end
2392
3122
 
2393
- # @see MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty#gcp_options
3123
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddResellerRoyalty#gcp_options
2394
3124
  class GcpOptions < MetronomeSDK::Internal::Type::BaseModel
2395
3125
  # @!attribute gcp_account_id
2396
3126
  #
@@ -2417,7 +3147,7 @@ module MetronomeSDK
2417
3147
  # @!attribute schedule
2418
3148
  # Must provide either schedule_items or recurring_schedule.
2419
3149
  #
2420
- # @return [MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule]
3150
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule]
2421
3151
  required :schedule, -> { MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule }
2422
3152
 
2423
3153
  # @!attribute name
@@ -2435,13 +3165,13 @@ module MetronomeSDK
2435
3165
  # @!method initialize(product_id:, schedule:, name: nil, netsuite_sales_order_id: nil)
2436
3166
  # @param product_id [String]
2437
3167
  #
2438
- # @param schedule [MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule] Must provide either schedule_items or recurring_schedule.
3168
+ # @param schedule [MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule] Must provide either schedule_items or recurring_schedule.
2439
3169
  #
2440
3170
  # @param name [String] displayed on invoices
2441
3171
  #
2442
3172
  # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
2443
3173
 
2444
- # @see MetronomeSDK::V2::ContractEditParams::AddScheduledCharge#schedule
3174
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge#schedule
2445
3175
  class Schedule < MetronomeSDK::Internal::Type::BaseModel
2446
3176
  # @!attribute credit_type_id
2447
3177
  # Defaults to USD if not passed. Only USD is supported at this time.
@@ -2454,7 +3184,7 @@ module MetronomeSDK
2454
3184
  # amount. If amount is sent, the unit price is assumed to be the amount and
2455
3185
  # quantity is inferred to be 1.
2456
3186
  #
2457
- # @return [MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule, nil]
3187
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule, nil]
2458
3188
  optional :recurring_schedule,
2459
3189
  -> {
2460
3190
  MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule
@@ -2463,7 +3193,7 @@ module MetronomeSDK
2463
3193
  # @!attribute schedule_items
2464
3194
  # Either provide amount or provide both unit_price and quantity.
2465
3195
  #
2466
- # @return [Array<MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::ScheduleItem>, nil]
3196
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::ScheduleItem>, nil]
2467
3197
  optional :schedule_items,
2468
3198
  -> {
2469
3199
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::ScheduleItem]
@@ -2471,22 +3201,22 @@ module MetronomeSDK
2471
3201
 
2472
3202
  # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
2473
3203
  # Some parameter documentations has been truncated, see
2474
- # {MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule} for more
2475
- # details.
3204
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule} for
3205
+ # more details.
2476
3206
  #
2477
3207
  # Must provide either schedule_items or recurring_schedule.
2478
3208
  #
2479
3209
  # @param credit_type_id [String] Defaults to USD if not passed. Only USD is supported at this time.
2480
3210
  #
2481
- # @param recurring_schedule [MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
3211
+ # @param recurring_schedule [MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
2482
3212
  #
2483
- # @param schedule_items [Array<MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
3213
+ # @param schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
2484
3214
 
2485
- # @see MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule#recurring_schedule
3215
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule#recurring_schedule
2486
3216
  class RecurringSchedule < MetronomeSDK::Internal::Type::BaseModel
2487
3217
  # @!attribute amount_distribution
2488
3218
  #
2489
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::AmountDistribution]
3219
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::AmountDistribution]
2490
3220
  required :amount_distribution,
2491
3221
  enum: -> {
2492
3222
  MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::AmountDistribution
@@ -2500,7 +3230,7 @@ module MetronomeSDK
2500
3230
 
2501
3231
  # @!attribute frequency
2502
3232
  #
2503
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::Frequency]
3233
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::Frequency]
2504
3234
  required :frequency,
2505
3235
  enum: -> {
2506
3236
  MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::Frequency
@@ -2538,18 +3268,18 @@ module MetronomeSDK
2538
3268
 
2539
3269
  # @!method initialize(amount_distribution:, ending_before:, frequency:, starting_at:, amount: nil, quantity: nil, unit_price: nil)
2540
3270
  # Some parameter documentations has been truncated, see
2541
- # {MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule}
3271
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule}
2542
3272
  # for more details.
2543
3273
  #
2544
3274
  # Enter the unit price and quantity for the charge or instead only send the
2545
3275
  # amount. If amount is sent, the unit price is assumed to be the amount and
2546
3276
  # quantity is inferred to be 1.
2547
3277
  #
2548
- # @param amount_distribution [Symbol, MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::AmountDistribution]
3278
+ # @param amount_distribution [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::AmountDistribution]
2549
3279
  #
2550
3280
  # @param ending_before [Time] RFC 3339 timestamp (exclusive).
2551
3281
  #
2552
- # @param frequency [Symbol, MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::Frequency]
3282
+ # @param frequency [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::Frequency]
2553
3283
  #
2554
3284
  # @param starting_at [Time] RFC 3339 timestamp (inclusive).
2555
3285
  #
@@ -2559,7 +3289,7 @@ module MetronomeSDK
2559
3289
  #
2560
3290
  # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
2561
3291
 
2562
- # @see MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule#amount_distribution
3292
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule#amount_distribution
2563
3293
  module AmountDistribution
2564
3294
  extend MetronomeSDK::Internal::Type::Enum
2565
3295
 
@@ -2571,7 +3301,7 @@ module MetronomeSDK
2571
3301
  # @return [Array<Symbol>]
2572
3302
  end
2573
3303
 
2574
- # @see MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule#frequency
3304
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule#frequency
2575
3305
  module Frequency
2576
3306
  extend MetronomeSDK::Internal::Type::Enum
2577
3307
 
@@ -2619,7 +3349,7 @@ module MetronomeSDK
2619
3349
 
2620
3350
  # @!method initialize(timestamp:, amount: nil, quantity: nil, unit_price: nil)
2621
3351
  # Some parameter documentations has been truncated, see
2622
- # {MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::ScheduleItem}
3352
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::ScheduleItem}
2623
3353
  # for more details.
2624
3354
  #
2625
3355
  # @param timestamp [Time] timestamp of the scheduled event
@@ -2636,7 +3366,7 @@ module MetronomeSDK
2636
3366
  class AddSpendThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
2637
3367
  # @!attribute commit
2638
3368
  #
2639
- # @return [MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::Commit]
3369
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::Commit]
2640
3370
  required :commit,
2641
3371
  -> {
2642
3372
  MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::Commit
@@ -2652,7 +3382,7 @@ module MetronomeSDK
2652
3382
 
2653
3383
  # @!attribute payment_gate_config
2654
3384
  #
2655
- # @return [MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig]
3385
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig]
2656
3386
  required :payment_gate_config,
2657
3387
  -> {
2658
3388
  MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig
@@ -2667,18 +3397,18 @@ module MetronomeSDK
2667
3397
 
2668
3398
  # @!method initialize(commit:, is_enabled:, payment_gate_config:, threshold_amount:)
2669
3399
  # Some parameter documentations has been truncated, see
2670
- # {MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration} for more
2671
- # details.
3400
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration}
3401
+ # for more details.
2672
3402
  #
2673
- # @param commit [MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::Commit]
3403
+ # @param commit [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::Commit]
2674
3404
  #
2675
3405
  # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
2676
3406
  #
2677
- # @param payment_gate_config [MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig]
3407
+ # @param payment_gate_config [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig]
2678
3408
  #
2679
3409
  # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's usage hi
2680
3410
 
2681
- # @see MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration#commit
3411
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration#commit
2682
3412
  class Commit < MetronomeSDK::Internal::Type::BaseModel
2683
3413
  # @!attribute product_id
2684
3414
  # The commit product that will be used to generate the line item for commit
@@ -2701,7 +3431,7 @@ module MetronomeSDK
2701
3431
 
2702
3432
  # @!method initialize(product_id:, description: nil, name: nil)
2703
3433
  # Some parameter documentations has been truncated, see
2704
- # {MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::Commit}
3434
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::Commit}
2705
3435
  # for more details.
2706
3436
  #
2707
3437
  # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
@@ -2711,7 +3441,7 @@ module MetronomeSDK
2711
3441
  # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
2712
3442
  end
2713
3443
 
2714
- # @see MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration#payment_gate_config
3444
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration#payment_gate_config
2715
3445
  class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
2716
3446
  # @!attribute payment_gate_type
2717
3447
  # Gate access to the commit balance based on successful collection of payment.
@@ -2719,16 +3449,25 @@ module MetronomeSDK
2719
3449
  # facilitate payment using your own payment integration. Select NONE if you do not
2720
3450
  # wish to payment gate the commit balance.
2721
3451
  #
2722
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType]
3452
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType]
2723
3453
  required :payment_gate_type,
2724
3454
  enum: -> {
2725
3455
  MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType
2726
3456
  }
2727
3457
 
3458
+ # @!attribute precalculated_tax_config
3459
+ # Only applicable if using PRECALCULATED as your tax type.
3460
+ #
3461
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig, nil]
3462
+ optional :precalculated_tax_config,
3463
+ -> {
3464
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
3465
+ }
3466
+
2728
3467
  # @!attribute stripe_config
2729
- # Only applicable if using Stripe as your payment gateway through Metronome.
3468
+ # Only applicable if using STRIPE as your payment gateway type.
2730
3469
  #
2731
- # @return [MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
3470
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
2732
3471
  optional :stripe_config,
2733
3472
  -> {
2734
3473
  MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig
@@ -2739,29 +3478,31 @@ module MetronomeSDK
2739
3478
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
2740
3479
  # will default to NONE.
2741
3480
  #
2742
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType, nil]
3481
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType, nil]
2743
3482
  optional :tax_type,
2744
3483
  enum: -> {
2745
3484
  MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType
2746
3485
  }
2747
3486
 
2748
- # @!method initialize(payment_gate_type:, stripe_config: nil, tax_type: nil)
3487
+ # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
2749
3488
  # Some parameter documentations has been truncated, see
2750
- # {MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig}
3489
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig}
2751
3490
  # for more details.
2752
3491
  #
2753
- # @param payment_gate_type [Symbol, MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
3492
+ # @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
2754
3493
  #
2755
- # @param stripe_config [MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using Stripe as your payment gateway through Metronome.
3494
+ # @param precalculated_tax_config [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
2756
3495
  #
2757
- # @param tax_type [Symbol, MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
3496
+ # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gateway type.
3497
+ #
3498
+ # @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
2758
3499
 
2759
3500
  # Gate access to the commit balance based on successful collection of payment.
2760
3501
  # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
2761
3502
  # facilitate payment using your own payment integration. Select NONE if you do not
2762
3503
  # wish to payment gate the commit balance.
2763
3504
  #
2764
- # @see MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig#payment_gate_type
3505
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig#payment_gate_type
2765
3506
  module PaymentGateType
2766
3507
  extend MetronomeSDK::Internal::Type::Enum
2767
3508
 
@@ -2773,25 +3514,66 @@ module MetronomeSDK
2773
3514
  # @return [Array<Symbol>]
2774
3515
  end
2775
3516
 
2776
- # @see MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig#stripe_config
3517
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig#precalculated_tax_config
3518
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
3519
+ # @!attribute tax_amount
3520
+ # Amount of tax to be applied. This should be in the same currency and
3521
+ # denomination as the commit's invoice schedule
3522
+ #
3523
+ # @return [Float]
3524
+ required :tax_amount, Float
3525
+
3526
+ # @!attribute tax_name
3527
+ # Name of the tax to be applied. This may be used in an invoice line item
3528
+ # description.
3529
+ #
3530
+ # @return [String, nil]
3531
+ optional :tax_name, String
3532
+
3533
+ # @!method initialize(tax_amount:, tax_name: nil)
3534
+ # Some parameter documentations has been truncated, see
3535
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig}
3536
+ # for more details.
3537
+ #
3538
+ # Only applicable if using PRECALCULATED as your tax type.
3539
+ #
3540
+ # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
3541
+ #
3542
+ # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
3543
+ end
3544
+
3545
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig#stripe_config
2777
3546
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
2778
3547
  # @!attribute payment_type
2779
3548
  # If left blank, will default to INVOICE
2780
3549
  #
2781
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
3550
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
2782
3551
  required :payment_type,
2783
3552
  enum: -> {
2784
3553
  MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
2785
3554
  }
2786
3555
 
2787
- # @!method initialize(payment_type:)
2788
- # Only applicable if using Stripe as your payment gateway through Metronome.
3556
+ # @!attribute invoice_metadata
3557
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
3558
+ # your payment type.
3559
+ #
3560
+ # @return [Hash{Symbol=>String}, nil]
3561
+ optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
3562
+
3563
+ # @!method initialize(payment_type:, invoice_metadata: nil)
3564
+ # Some parameter documentations has been truncated, see
3565
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig}
3566
+ # for more details.
3567
+ #
3568
+ # Only applicable if using STRIPE as your payment gateway type.
2789
3569
  #
2790
- # @param payment_type [Symbol, MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
3570
+ # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
3571
+ #
3572
+ # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
2791
3573
 
2792
3574
  # If left blank, will default to INVOICE
2793
3575
  #
2794
- # @see MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
3576
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
2795
3577
  module PaymentType
2796
3578
  extend MetronomeSDK::Internal::Type::Enum
2797
3579
 
@@ -2807,12 +3589,191 @@ module MetronomeSDK
2807
3589
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
2808
3590
  # will default to NONE.
2809
3591
  #
2810
- # @see MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig#tax_type
3592
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig#tax_type
2811
3593
  module TaxType
2812
3594
  extend MetronomeSDK::Internal::Type::Enum
2813
3595
 
2814
3596
  NONE = :NONE
2815
3597
  STRIPE = :STRIPE
3598
+ ANROK = :ANROK
3599
+ PRECALCULATED = :PRECALCULATED
3600
+
3601
+ # @!method self.values
3602
+ # @return [Array<Symbol>]
3603
+ end
3604
+ end
3605
+ end
3606
+
3607
+ class AddSubscription < MetronomeSDK::Internal::Type::BaseModel
3608
+ # @!attribute collection_schedule
3609
+ #
3610
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::CollectionSchedule]
3611
+ required :collection_schedule,
3612
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::CollectionSchedule }
3613
+
3614
+ # @!attribute initial_quantity
3615
+ #
3616
+ # @return [Float]
3617
+ required :initial_quantity, Float
3618
+
3619
+ # @!attribute proration
3620
+ #
3621
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration]
3622
+ required :proration, -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::Proration }
3623
+
3624
+ # @!attribute subscription_rate
3625
+ #
3626
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SubscriptionRate]
3627
+ required :subscription_rate,
3628
+ -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::SubscriptionRate }
3629
+
3630
+ # @!attribute custom_fields
3631
+ #
3632
+ # @return [Hash{Symbol=>String}, nil]
3633
+ optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
3634
+
3635
+ # @!attribute description
3636
+ #
3637
+ # @return [String, nil]
3638
+ optional :description, String
3639
+
3640
+ # @!attribute ending_before
3641
+ # Exclusive end time for the subscription. If not provided, subscription inherits
3642
+ # contract end date.
3643
+ #
3644
+ # @return [Time, nil]
3645
+ optional :ending_before, Time
3646
+
3647
+ # @!attribute name
3648
+ #
3649
+ # @return [String, nil]
3650
+ optional :name, String
3651
+
3652
+ # @!attribute starting_at
3653
+ # Inclusive start time for the subscription. If not provided, defaults to contract
3654
+ # start date
3655
+ #
3656
+ # @return [Time, nil]
3657
+ optional :starting_at, Time
3658
+
3659
+ # @!method initialize(collection_schedule:, initial_quantity:, proration:, subscription_rate:, custom_fields: nil, description: nil, ending_before: nil, name: nil, starting_at: nil)
3660
+ # Some parameter documentations has been truncated, see
3661
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription} for more
3662
+ # details.
3663
+ #
3664
+ # @param collection_schedule [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::CollectionSchedule]
3665
+ #
3666
+ # @param initial_quantity [Float]
3667
+ #
3668
+ # @param proration [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration]
3669
+ #
3670
+ # @param subscription_rate [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SubscriptionRate]
3671
+ #
3672
+ # @param custom_fields [Hash{Symbol=>String}]
3673
+ #
3674
+ # @param description [String]
3675
+ #
3676
+ # @param ending_before [Time] Exclusive end time for the subscription. If not provided, subscription inherits
3677
+ #
3678
+ # @param name [String]
3679
+ #
3680
+ # @param starting_at [Time] Inclusive start time for the subscription. If not provided, defaults to contract
3681
+
3682
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription#collection_schedule
3683
+ module CollectionSchedule
3684
+ extend MetronomeSDK::Internal::Type::Enum
3685
+
3686
+ ADVANCE = :ADVANCE
3687
+ ARREARS = :ARREARS
3688
+
3689
+ # @!method self.values
3690
+ # @return [Array<Symbol>]
3691
+ end
3692
+
3693
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription#proration
3694
+ class Proration < MetronomeSDK::Internal::Type::BaseModel
3695
+ # @!attribute invoice_behavior
3696
+ # Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
3697
+ # is selected, the quantity increase will be billed on the scheduled date. If
3698
+ # BILL_ON_NEXT_COLLECTION_DATE is selected, the quantity increase will be billed
3699
+ # for in-arrears at the end of the period.
3700
+ #
3701
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration::InvoiceBehavior, nil]
3702
+ optional :invoice_behavior,
3703
+ enum: -> {
3704
+ MetronomeSDK::V2::ContractEditParams::AddSubscription::Proration::InvoiceBehavior
3705
+ }
3706
+
3707
+ # @!attribute is_prorated
3708
+ # Indicates if the partial period will be prorated or charged a full amount.
3709
+ #
3710
+ # @return [Boolean, nil]
3711
+ optional :is_prorated, MetronomeSDK::Internal::Type::Boolean
3712
+
3713
+ # @!method initialize(invoice_behavior: nil, is_prorated: nil)
3714
+ # Some parameter documentations has been truncated, see
3715
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration} for
3716
+ # more details.
3717
+ #
3718
+ # @param invoice_behavior [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration::InvoiceBehavior] Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
3719
+ #
3720
+ # @param is_prorated [Boolean] Indicates if the partial period will be prorated or charged a full amount.
3721
+
3722
+ # Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
3723
+ # is selected, the quantity increase will be billed on the scheduled date. If
3724
+ # BILL_ON_NEXT_COLLECTION_DATE is selected, the quantity increase will be billed
3725
+ # for in-arrears at the end of the period.
3726
+ #
3727
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration#invoice_behavior
3728
+ module InvoiceBehavior
3729
+ extend MetronomeSDK::Internal::Type::Enum
3730
+
3731
+ BILL_IMMEDIATELY = :BILL_IMMEDIATELY
3732
+ BILL_ON_NEXT_COLLECTION_DATE = :BILL_ON_NEXT_COLLECTION_DATE
3733
+
3734
+ # @!method self.values
3735
+ # @return [Array<Symbol>]
3736
+ end
3737
+ end
3738
+
3739
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription#subscription_rate
3740
+ class SubscriptionRate < MetronomeSDK::Internal::Type::BaseModel
3741
+ # @!attribute billing_frequency
3742
+ # Frequency to bill subscription with. Together with product_id, must match
3743
+ # existing rate on the rate card.
3744
+ #
3745
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SubscriptionRate::BillingFrequency]
3746
+ required :billing_frequency,
3747
+ enum: -> {
3748
+ MetronomeSDK::V2::ContractEditParams::AddSubscription::SubscriptionRate::BillingFrequency
3749
+ }
3750
+
3751
+ # @!attribute product_id
3752
+ # Must be subscription type product
3753
+ #
3754
+ # @return [String]
3755
+ required :product_id, String
3756
+
3757
+ # @!method initialize(billing_frequency:, product_id:)
3758
+ # Some parameter documentations has been truncated, see
3759
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SubscriptionRate}
3760
+ # for more details.
3761
+ #
3762
+ # @param billing_frequency [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SubscriptionRate::BillingFrequency] Frequency to bill subscription with. Together with product_id, must match existi
3763
+ #
3764
+ # @param product_id [String] Must be subscription type product
3765
+
3766
+ # Frequency to bill subscription with. Together with product_id, must match
3767
+ # existing rate on the rate card.
3768
+ #
3769
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SubscriptionRate#billing_frequency
3770
+ module BillingFrequency
3771
+ extend MetronomeSDK::Internal::Type::Enum
3772
+
3773
+ MONTHLY = :MONTHLY
3774
+ QUARTERLY = :QUARTERLY
3775
+ ANNUAL = :ANNUAL
3776
+ WEEKLY = :WEEKLY
2816
3777
 
2817
3778
  # @!method self.values
2818
3779
  # @return [Array<Symbol>]
@@ -2868,26 +3829,35 @@ module MetronomeSDK
2868
3829
 
2869
3830
  # @!attribute access_schedule
2870
3831
  #
2871
- # @return [MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule, nil]
3832
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule, nil]
2872
3833
  optional :access_schedule, -> { MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule }
2873
3834
 
2874
3835
  # @!attribute applicable_product_ids
2875
- # Which products the commit applies to. If both applicable_product_ids and
2876
- # applicable_product_tags are not provided, the commit applies to all products.
3836
+ # Which products the commit applies to. If applicable_product_ids,
3837
+ # applicable_product_tags or specifiers are not provided, the commit applies to
3838
+ # all products.
2877
3839
  #
2878
3840
  # @return [Array<String>, nil]
2879
3841
  optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
2880
3842
 
2881
3843
  # @!attribute applicable_product_tags
2882
- # Which tags the commit applies to. If both applicable_product_ids and
2883
- # applicable_product_tags are not provided, the commit applies to all products.
3844
+ # Which tags the commit applies to. If applicable_product_ids,
3845
+ # applicable_product_tags or specifiers are not provided, the commit applies to
3846
+ # all products.
2884
3847
  #
2885
3848
  # @return [Array<String>, nil]
2886
3849
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
2887
3850
 
3851
+ # @!attribute hierarchy_configuration
3852
+ # Optional configuration for commit hierarchy access control
3853
+ #
3854
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration, nil]
3855
+ optional :hierarchy_configuration,
3856
+ -> { MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration }
3857
+
2888
3858
  # @!attribute invoice_schedule
2889
3859
  #
2890
- # @return [MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule, nil]
3860
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule, nil]
2891
3861
  optional :invoice_schedule,
2892
3862
  -> {
2893
3863
  MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule
@@ -2908,19 +3878,21 @@ module MetronomeSDK
2908
3878
  # @return [Float, nil]
2909
3879
  optional :rollover_fraction, Float, nil?: true
2910
3880
 
2911
- # @!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)
3881
+ # @!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)
2912
3882
  # Some parameter documentations has been truncated, see
2913
- # {MetronomeSDK::V2::ContractEditParams::UpdateCommit} for more details.
3883
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit} for more details.
2914
3884
  #
2915
3885
  # @param commit_id [String]
2916
3886
  #
2917
- # @param access_schedule [MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule]
3887
+ # @param access_schedule [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule]
3888
+ #
3889
+ # @param applicable_product_ids [Array<String>, nil] Which products the commit applies to. If applicable_product_ids, applicable_prod
2918
3890
  #
2919
- # @param applicable_product_ids [Array<String>, nil] Which products the commit applies to. If both applicable_product_ids and applica
3891
+ # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If applicable*product_ids, applicable_product*
2920
3892
  #
2921
- # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If both applicable*product_ids and applicable*
3893
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration] Optional configuration for commit hierarchy access control
2922
3894
  #
2923
- # @param invoice_schedule [MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule]
3895
+ # @param invoice_schedule [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule]
2924
3896
  #
2925
3897
  # @param netsuite_sales_order_id [String, nil]
2926
3898
  #
@@ -2928,11 +3900,11 @@ module MetronomeSDK
2928
3900
  #
2929
3901
  # @param rollover_fraction [Float, nil]
2930
3902
 
2931
- # @see MetronomeSDK::V2::ContractEditParams::UpdateCommit#access_schedule
3903
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit#access_schedule
2932
3904
  class AccessSchedule < MetronomeSDK::Internal::Type::BaseModel
2933
3905
  # @!attribute add_schedule_items
2934
3906
  #
2935
- # @return [Array<MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::AddScheduleItem>, nil]
3907
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule::AddScheduleItem>, nil]
2936
3908
  optional :add_schedule_items,
2937
3909
  -> {
2938
3910
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::AddScheduleItem]
@@ -2940,7 +3912,7 @@ module MetronomeSDK
2940
3912
 
2941
3913
  # @!attribute remove_schedule_items
2942
3914
  #
2943
- # @return [Array<MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::RemoveScheduleItem>, nil]
3915
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule::RemoveScheduleItem>, nil]
2944
3916
  optional :remove_schedule_items,
2945
3917
  -> {
2946
3918
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::RemoveScheduleItem]
@@ -2948,16 +3920,16 @@ module MetronomeSDK
2948
3920
 
2949
3921
  # @!attribute update_schedule_items
2950
3922
  #
2951
- # @return [Array<MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::UpdateScheduleItem>, nil]
3923
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule::UpdateScheduleItem>, nil]
2952
3924
  optional :update_schedule_items,
2953
3925
  -> {
2954
3926
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::UpdateScheduleItem]
2955
3927
  }
2956
3928
 
2957
3929
  # @!method initialize(add_schedule_items: nil, remove_schedule_items: nil, update_schedule_items: nil)
2958
- # @param add_schedule_items [Array<MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::AddScheduleItem>]
2959
- # @param remove_schedule_items [Array<MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::RemoveScheduleItem>]
2960
- # @param update_schedule_items [Array<MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::UpdateScheduleItem>]
3930
+ # @param add_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule::AddScheduleItem>]
3931
+ # @param remove_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule::RemoveScheduleItem>]
3932
+ # @param update_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule::UpdateScheduleItem>]
2961
3933
 
2962
3934
  class AddScheduleItem < MetronomeSDK::Internal::Type::BaseModel
2963
3935
  # @!attribute amount
@@ -3020,11 +3992,122 @@ module MetronomeSDK
3020
3992
  end
3021
3993
  end
3022
3994
 
3023
- # @see MetronomeSDK::V2::ContractEditParams::UpdateCommit#invoice_schedule
3995
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit#hierarchy_configuration
3996
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
3997
+ # @!attribute child_access
3998
+ #
3999
+ # @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]
4000
+ required :child_access,
4001
+ union: -> {
4002
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess
4003
+ }
4004
+
4005
+ # @!method initialize(child_access:)
4006
+ # Optional configuration for commit hierarchy access control
4007
+ #
4008
+ # @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]
4009
+
4010
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration#child_access
4011
+ module ChildAccess
4012
+ extend MetronomeSDK::Internal::Type::Union
4013
+
4014
+ variant -> {
4015
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
4016
+ }
4017
+
4018
+ variant -> {
4019
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
4020
+ }
4021
+
4022
+ variant -> {
4023
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
4024
+ }
4025
+
4026
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
4027
+ # @!attribute type
4028
+ #
4029
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
4030
+ required :type,
4031
+ enum: -> {
4032
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
4033
+ }
4034
+
4035
+ # @!method initialize(type:)
4036
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
4037
+
4038
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
4039
+ module Type
4040
+ extend MetronomeSDK::Internal::Type::Enum
4041
+
4042
+ ALL = :ALL
4043
+
4044
+ # @!method self.values
4045
+ # @return [Array<Symbol>]
4046
+ end
4047
+ end
4048
+
4049
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
4050
+ # @!attribute type
4051
+ #
4052
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
4053
+ required :type,
4054
+ enum: -> {
4055
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
4056
+ }
4057
+
4058
+ # @!method initialize(type:)
4059
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
4060
+
4061
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
4062
+ module Type
4063
+ extend MetronomeSDK::Internal::Type::Enum
4064
+
4065
+ NONE = :NONE
4066
+
4067
+ # @!method self.values
4068
+ # @return [Array<Symbol>]
4069
+ end
4070
+ end
4071
+
4072
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
4073
+ # @!attribute contract_ids
4074
+ #
4075
+ # @return [Array<String>]
4076
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
4077
+
4078
+ # @!attribute type
4079
+ #
4080
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
4081
+ required :type,
4082
+ enum: -> {
4083
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
4084
+ }
4085
+
4086
+ # @!method initialize(contract_ids:, type:)
4087
+ # @param contract_ids [Array<String>]
4088
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
4089
+
4090
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
4091
+ module Type
4092
+ extend MetronomeSDK::Internal::Type::Enum
4093
+
4094
+ CONTRACT_IDS = :CONTRACT_IDS
4095
+
4096
+ # @!method self.values
4097
+ # @return [Array<Symbol>]
4098
+ end
4099
+ end
4100
+
4101
+ # @!method self.variants
4102
+ # @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)]
4103
+ end
4104
+ end
4105
+
4106
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit#invoice_schedule
3024
4107
  class InvoiceSchedule < MetronomeSDK::Internal::Type::BaseModel
3025
4108
  # @!attribute add_schedule_items
3026
4109
  #
3027
- # @return [Array<MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::AddScheduleItem>, nil]
4110
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::AddScheduleItem>, nil]
3028
4111
  optional :add_schedule_items,
3029
4112
  -> {
3030
4113
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::AddScheduleItem]
@@ -3032,7 +4115,7 @@ module MetronomeSDK
3032
4115
 
3033
4116
  # @!attribute remove_schedule_items
3034
4117
  #
3035
- # @return [Array<MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::RemoveScheduleItem>, nil]
4118
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::RemoveScheduleItem>, nil]
3036
4119
  optional :remove_schedule_items,
3037
4120
  -> {
3038
4121
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::RemoveScheduleItem]
@@ -3040,16 +4123,16 @@ module MetronomeSDK
3040
4123
 
3041
4124
  # @!attribute update_schedule_items
3042
4125
  #
3043
- # @return [Array<MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::UpdateScheduleItem>, nil]
4126
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::UpdateScheduleItem>, nil]
3044
4127
  optional :update_schedule_items,
3045
4128
  -> {
3046
4129
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::UpdateScheduleItem]
3047
4130
  }
3048
4131
 
3049
4132
  # @!method initialize(add_schedule_items: nil, remove_schedule_items: nil, update_schedule_items: nil)
3050
- # @param add_schedule_items [Array<MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::AddScheduleItem>]
3051
- # @param remove_schedule_items [Array<MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::RemoveScheduleItem>]
3052
- # @param update_schedule_items [Array<MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::UpdateScheduleItem>]
4133
+ # @param add_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::AddScheduleItem>]
4134
+ # @param remove_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::RemoveScheduleItem>]
4135
+ # @param update_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::UpdateScheduleItem>]
3053
4136
 
3054
4137
  class AddScheduleItem < MetronomeSDK::Internal::Type::BaseModel
3055
4138
  # @!attribute timestamp
@@ -3133,23 +4216,32 @@ module MetronomeSDK
3133
4216
 
3134
4217
  # @!attribute access_schedule
3135
4218
  #
3136
- # @return [MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule, nil]
4219
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule, nil]
3137
4220
  optional :access_schedule, -> { MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule }
3138
4221
 
3139
4222
  # @!attribute applicable_product_ids
3140
- # Which products the commit applies to. If both applicable_product_ids and
3141
- # applicable_product_tags are not provided, the commit applies to all products.
4223
+ # Which products the commit applies to. If applicable_product_ids,
4224
+ # applicable_product_tags or specifiers are not provided, the commit applies to
4225
+ # all products.
3142
4226
  #
3143
4227
  # @return [Array<String>, nil]
3144
4228
  optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
3145
4229
 
3146
4230
  # @!attribute applicable_product_tags
3147
- # Which tags the commit applies to. If both applicable_product_ids and
3148
- # applicable_product_tags are not provided, the commit applies to all products.
4231
+ # Which tags the commit applies to. If applicable_product_ids,
4232
+ # applicable_product_tags or specifiers are not provided, the commit applies to
4233
+ # all products.
3149
4234
  #
3150
4235
  # @return [Array<String>, nil]
3151
4236
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
3152
4237
 
4238
+ # @!attribute hierarchy_configuration
4239
+ # Optional configuration for commit hierarchy access control
4240
+ #
4241
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration, nil]
4242
+ optional :hierarchy_configuration,
4243
+ -> { MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration }
4244
+
3153
4245
  # @!attribute netsuite_sales_order_id
3154
4246
  #
3155
4247
  # @return [String, nil]
@@ -3160,27 +4252,29 @@ module MetronomeSDK
3160
4252
  # @return [String, nil]
3161
4253
  optional :product_id, String
3162
4254
 
3163
- # @!method initialize(credit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, netsuite_sales_order_id: nil, product_id: nil)
4255
+ # @!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)
3164
4256
  # Some parameter documentations has been truncated, see
3165
- # {MetronomeSDK::V2::ContractEditParams::UpdateCredit} for more details.
4257
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit} for more details.
3166
4258
  #
3167
4259
  # @param credit_id [String]
3168
4260
  #
3169
- # @param access_schedule [MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule]
4261
+ # @param access_schedule [MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule]
4262
+ #
4263
+ # @param applicable_product_ids [Array<String>, nil] Which products the commit applies to. If applicable_product_ids, applicable_prod
3170
4264
  #
3171
- # @param applicable_product_ids [Array<String>, nil] Which products the commit applies to. If both applicable_product_ids and applica
4265
+ # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If applicable*product_ids, applicable_product*
3172
4266
  #
3173
- # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If both applicable*product_ids and applicable*
4267
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration] Optional configuration for commit hierarchy access control
3174
4268
  #
3175
4269
  # @param netsuite_sales_order_id [String, nil]
3176
4270
  #
3177
4271
  # @param product_id [String]
3178
4272
 
3179
- # @see MetronomeSDK::V2::ContractEditParams::UpdateCredit#access_schedule
4273
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit#access_schedule
3180
4274
  class AccessSchedule < MetronomeSDK::Internal::Type::BaseModel
3181
4275
  # @!attribute add_schedule_items
3182
4276
  #
3183
- # @return [Array<MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::AddScheduleItem>, nil]
4277
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::AddScheduleItem>, nil]
3184
4278
  optional :add_schedule_items,
3185
4279
  -> {
3186
4280
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::AddScheduleItem]
@@ -3188,7 +4282,7 @@ module MetronomeSDK
3188
4282
 
3189
4283
  # @!attribute remove_schedule_items
3190
4284
  #
3191
- # @return [Array<MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::RemoveScheduleItem>, nil]
4285
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::RemoveScheduleItem>, nil]
3192
4286
  optional :remove_schedule_items,
3193
4287
  -> {
3194
4288
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::RemoveScheduleItem]
@@ -3196,16 +4290,16 @@ module MetronomeSDK
3196
4290
 
3197
4291
  # @!attribute update_schedule_items
3198
4292
  #
3199
- # @return [Array<MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::UpdateScheduleItem>, nil]
4293
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::UpdateScheduleItem>, nil]
3200
4294
  optional :update_schedule_items,
3201
4295
  -> {
3202
4296
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::UpdateScheduleItem]
3203
4297
  }
3204
4298
 
3205
4299
  # @!method initialize(add_schedule_items: nil, remove_schedule_items: nil, update_schedule_items: nil)
3206
- # @param add_schedule_items [Array<MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::AddScheduleItem>]
3207
- # @param remove_schedule_items [Array<MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::RemoveScheduleItem>]
3208
- # @param update_schedule_items [Array<MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::UpdateScheduleItem>]
4300
+ # @param add_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::AddScheduleItem>]
4301
+ # @param remove_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::RemoveScheduleItem>]
4302
+ # @param update_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::UpdateScheduleItem>]
3209
4303
 
3210
4304
  class AddScheduleItem < MetronomeSDK::Internal::Type::BaseModel
3211
4305
  # @!attribute amount
@@ -3267,17 +4361,135 @@ module MetronomeSDK
3267
4361
  # @param starting_at [Time]
3268
4362
  end
3269
4363
  end
4364
+
4365
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit#hierarchy_configuration
4366
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
4367
+ # @!attribute child_access
4368
+ #
4369
+ # @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]
4370
+ required :child_access,
4371
+ union: -> {
4372
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess
4373
+ }
4374
+
4375
+ # @!method initialize(child_access:)
4376
+ # Optional configuration for commit hierarchy access control
4377
+ #
4378
+ # @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]
4379
+
4380
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration#child_access
4381
+ module ChildAccess
4382
+ extend MetronomeSDK::Internal::Type::Union
4383
+
4384
+ variant -> {
4385
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
4386
+ }
4387
+
4388
+ variant -> {
4389
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
4390
+ }
4391
+
4392
+ variant -> {
4393
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
4394
+ }
4395
+
4396
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
4397
+ # @!attribute type
4398
+ #
4399
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
4400
+ required :type,
4401
+ enum: -> {
4402
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
4403
+ }
4404
+
4405
+ # @!method initialize(type:)
4406
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
4407
+
4408
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
4409
+ module Type
4410
+ extend MetronomeSDK::Internal::Type::Enum
4411
+
4412
+ ALL = :ALL
4413
+
4414
+ # @!method self.values
4415
+ # @return [Array<Symbol>]
4416
+ end
4417
+ end
4418
+
4419
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
4420
+ # @!attribute type
4421
+ #
4422
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
4423
+ required :type,
4424
+ enum: -> {
4425
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
4426
+ }
4427
+
4428
+ # @!method initialize(type:)
4429
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
4430
+
4431
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
4432
+ module Type
4433
+ extend MetronomeSDK::Internal::Type::Enum
4434
+
4435
+ NONE = :NONE
4436
+
4437
+ # @!method self.values
4438
+ # @return [Array<Symbol>]
4439
+ end
4440
+ end
4441
+
4442
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
4443
+ # @!attribute contract_ids
4444
+ #
4445
+ # @return [Array<String>]
4446
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
4447
+
4448
+ # @!attribute type
4449
+ #
4450
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
4451
+ required :type,
4452
+ enum: -> {
4453
+ MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
4454
+ }
4455
+
4456
+ # @!method initialize(contract_ids:, type:)
4457
+ # @param contract_ids [Array<String>]
4458
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
4459
+
4460
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
4461
+ module Type
4462
+ extend MetronomeSDK::Internal::Type::Enum
4463
+
4464
+ CONTRACT_IDS = :CONTRACT_IDS
4465
+
4466
+ # @!method self.values
4467
+ # @return [Array<Symbol>]
4468
+ end
4469
+ end
4470
+
4471
+ # @!method self.variants
4472
+ # @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)]
4473
+ end
4474
+ end
3270
4475
  end
3271
4476
 
3272
4477
  class UpdatePrepaidBalanceThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
3273
4478
  # @!attribute commit
3274
4479
  #
3275
- # @return [MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit, nil]
4480
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit, nil]
3276
4481
  optional :commit,
3277
4482
  -> {
3278
4483
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit
3279
4484
  }
3280
4485
 
4486
+ # @!attribute custom_credit_type_id
4487
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
4488
+ # commit amount will be in terms of this credit type instead of the fiat currency.
4489
+ #
4490
+ # @return [String, nil]
4491
+ optional :custom_credit_type_id, String, nil?: true
4492
+
3281
4493
  # @!attribute is_enabled
3282
4494
  # When set to false, the contract will not be evaluated against the
3283
4495
  # threshold_amount. Toggling to true will result an immediate evaluation,
@@ -3288,7 +4500,7 @@ module MetronomeSDK
3288
4500
 
3289
4501
  # @!attribute payment_gate_config
3290
4502
  #
3291
- # @return [MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig, nil]
4503
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig, nil]
3292
4504
  optional :payment_gate_config,
3293
4505
  -> {
3294
4506
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig
@@ -3307,44 +4519,39 @@ module MetronomeSDK
3307
4519
  # @return [Float, nil]
3308
4520
  optional :threshold_amount, Float
3309
4521
 
3310
- # @!method initialize(commit: nil, is_enabled: nil, payment_gate_config: nil, recharge_to_amount: nil, threshold_amount: nil)
4522
+ # @!method initialize(commit: nil, custom_credit_type_id: nil, is_enabled: nil, payment_gate_config: nil, recharge_to_amount: nil, threshold_amount: nil)
3311
4523
  # Some parameter documentations has been truncated, see
3312
- # {MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration}
4524
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration}
3313
4525
  # for more details.
3314
4526
  #
3315
- # @param commit [MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit]
4527
+ # @param commit [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit]
4528
+ #
4529
+ # @param custom_credit_type_id [String, nil] If provided, the threshold, recharge-to amount, and the resulting threshold comm
3316
4530
  #
3317
4531
  # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
3318
4532
  #
3319
- # @param payment_gate_config [MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig]
4533
+ # @param payment_gate_config [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig]
3320
4534
  #
3321
4535
  # @param recharge_to_amount [Float] Specify the amount the balance should be recharged to.
3322
4536
  #
3323
4537
  # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's balance
3324
4538
 
3325
- # @see MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration#commit
4539
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration#commit
3326
4540
  class Commit < MetronomeSDK::Internal::Type::BaseModel
3327
- # @!attribute product_id
3328
- # The commit product that will be used to generate the line item for commit
3329
- # payment.
3330
- #
3331
- # @return [String]
3332
- required :product_id, String
3333
-
3334
4541
  # @!attribute applicable_product_ids
3335
4542
  # Which products the threshold commit applies to. If both applicable_product_ids
3336
4543
  # and applicable_product_tags are not provided, the commit applies to all
3337
4544
  # products.
3338
4545
  #
3339
4546
  # @return [Array<String>, nil]
3340
- optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
4547
+ optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
3341
4548
 
3342
4549
  # @!attribute applicable_product_tags
3343
4550
  # Which tags the threshold commit applies to. If both applicable_product_ids and
3344
4551
  # applicable_product_tags are not provided, the commit applies to all products.
3345
4552
  #
3346
4553
  # @return [Array<String>, nil]
3347
- optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
4554
+ optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
3348
4555
 
3349
4556
  # @!attribute description
3350
4557
  #
@@ -3358,23 +4565,83 @@ module MetronomeSDK
3358
4565
  # @return [String, nil]
3359
4566
  optional :name, String
3360
4567
 
3361
- # @!method initialize(product_id:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, name: nil)
4568
+ # @!attribute product_id
4569
+ # The commit product that will be used to generate the line item for commit
4570
+ # payment.
4571
+ #
4572
+ # @return [String, nil]
4573
+ optional :product_id, String
4574
+
4575
+ # @!attribute specifiers
4576
+ # List of filters that determine what kind of customer usage draws down a commit
4577
+ # or credit. A customer's usage needs to meet the condition of at least one of the
4578
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
4579
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
4580
+ #
4581
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier>, nil]
4582
+ optional :specifiers,
4583
+ -> {
4584
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier]
4585
+ },
4586
+ nil?: true
4587
+
4588
+ # @!method initialize(applicable_product_ids: nil, applicable_product_tags: nil, description: nil, name: nil, product_id: nil, specifiers: nil)
3362
4589
  # Some parameter documentations has been truncated, see
3363
- # {MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit}
4590
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit}
3364
4591
  # for more details.
3365
4592
  #
3366
- # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
3367
- #
3368
- # @param applicable_product_ids [Array<String>] Which products the threshold commit applies to. If both applicable_product_ids a
4593
+ # @param applicable_product_ids [Array<String>, nil] Which products the threshold commit applies to. If both applicable_product_ids a
3369
4594
  #
3370
- # @param applicable_product_tags [Array<String>] Which tags the threshold commit applies to. If both applicable_product_ids and a
4595
+ # @param applicable_product_tags [Array<String>, nil] Which tags the threshold commit applies to. If both applicable_product_ids and a
3371
4596
  #
3372
4597
  # @param description [String]
3373
4598
  #
3374
4599
  # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
4600
+ #
4601
+ # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
4602
+ #
4603
+ # @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
4604
+
4605
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
4606
+ # @!attribute presentation_group_values
4607
+ #
4608
+ # @return [Hash{Symbol=>String}, nil]
4609
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
4610
+
4611
+ # @!attribute pricing_group_values
4612
+ #
4613
+ # @return [Hash{Symbol=>String}, nil]
4614
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
4615
+
4616
+ # @!attribute product_id
4617
+ # If provided, the specifier will only apply to the product with the specified ID.
4618
+ #
4619
+ # @return [String, nil]
4620
+ optional :product_id, String
4621
+
4622
+ # @!attribute product_tags
4623
+ # If provided, the specifier will only apply to products with all the specified
4624
+ # tags.
4625
+ #
4626
+ # @return [Array<String>, nil]
4627
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
4628
+
4629
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
4630
+ # Some parameter documentations has been truncated, see
4631
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier}
4632
+ # for more details.
4633
+ #
4634
+ # @param presentation_group_values [Hash{Symbol=>String}]
4635
+ #
4636
+ # @param pricing_group_values [Hash{Symbol=>String}]
4637
+ #
4638
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
4639
+ #
4640
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
4641
+ end
3375
4642
  end
3376
4643
 
3377
- # @see MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration#payment_gate_config
4644
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration#payment_gate_config
3378
4645
  class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
3379
4646
  # @!attribute payment_gate_type
3380
4647
  # Gate access to the commit balance based on successful collection of payment.
@@ -3382,16 +4649,25 @@ module MetronomeSDK
3382
4649
  # facilitate payment using your own payment integration. Select NONE if you do not
3383
4650
  # wish to payment gate the commit balance.
3384
4651
  #
3385
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType]
4652
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType]
3386
4653
  required :payment_gate_type,
3387
4654
  enum: -> {
3388
4655
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType
3389
4656
  }
3390
4657
 
4658
+ # @!attribute precalculated_tax_config
4659
+ # Only applicable if using PRECALCULATED as your tax type.
4660
+ #
4661
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig, nil]
4662
+ optional :precalculated_tax_config,
4663
+ -> {
4664
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
4665
+ }
4666
+
3391
4667
  # @!attribute stripe_config
3392
- # Only applicable if using Stripe as your payment gateway through Metronome.
4668
+ # Only applicable if using STRIPE as your payment gateway type.
3393
4669
  #
3394
- # @return [MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
4670
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
3395
4671
  optional :stripe_config,
3396
4672
  -> {
3397
4673
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig
@@ -3402,29 +4678,31 @@ module MetronomeSDK
3402
4678
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
3403
4679
  # will default to NONE.
3404
4680
  #
3405
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType, nil]
4681
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType, nil]
3406
4682
  optional :tax_type,
3407
4683
  enum: -> {
3408
4684
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType
3409
4685
  }
3410
4686
 
3411
- # @!method initialize(payment_gate_type:, stripe_config: nil, tax_type: nil)
4687
+ # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
3412
4688
  # Some parameter documentations has been truncated, see
3413
- # {MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig}
4689
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig}
3414
4690
  # for more details.
3415
4691
  #
3416
- # @param payment_gate_type [Symbol, MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
4692
+ # @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
3417
4693
  #
3418
- # @param stripe_config [MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using Stripe as your payment gateway through Metronome.
4694
+ # @param precalculated_tax_config [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
3419
4695
  #
3420
- # @param tax_type [Symbol, MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
4696
+ # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gateway type.
4697
+ #
4698
+ # @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
3421
4699
 
3422
4700
  # Gate access to the commit balance based on successful collection of payment.
3423
4701
  # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
3424
4702
  # facilitate payment using your own payment integration. Select NONE if you do not
3425
4703
  # wish to payment gate the commit balance.
3426
4704
  #
3427
- # @see MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig#payment_gate_type
4705
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig#payment_gate_type
3428
4706
  module PaymentGateType
3429
4707
  extend MetronomeSDK::Internal::Type::Enum
3430
4708
 
@@ -3436,25 +4714,66 @@ module MetronomeSDK
3436
4714
  # @return [Array<Symbol>]
3437
4715
  end
3438
4716
 
3439
- # @see MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig#stripe_config
4717
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig#precalculated_tax_config
4718
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
4719
+ # @!attribute tax_amount
4720
+ # Amount of tax to be applied. This should be in the same currency and
4721
+ # denomination as the commit's invoice schedule
4722
+ #
4723
+ # @return [Float]
4724
+ required :tax_amount, Float
4725
+
4726
+ # @!attribute tax_name
4727
+ # Name of the tax to be applied. This may be used in an invoice line item
4728
+ # description.
4729
+ #
4730
+ # @return [String, nil]
4731
+ optional :tax_name, String
4732
+
4733
+ # @!method initialize(tax_amount:, tax_name: nil)
4734
+ # Some parameter documentations has been truncated, see
4735
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig}
4736
+ # for more details.
4737
+ #
4738
+ # Only applicable if using PRECALCULATED as your tax type.
4739
+ #
4740
+ # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
4741
+ #
4742
+ # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
4743
+ end
4744
+
4745
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig#stripe_config
3440
4746
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
3441
4747
  # @!attribute payment_type
3442
4748
  # If left blank, will default to INVOICE
3443
4749
  #
3444
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
4750
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
3445
4751
  required :payment_type,
3446
4752
  enum: -> {
3447
4753
  MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
3448
4754
  }
3449
4755
 
3450
- # @!method initialize(payment_type:)
3451
- # Only applicable if using Stripe as your payment gateway through Metronome.
4756
+ # @!attribute invoice_metadata
4757
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
4758
+ # your payment type.
4759
+ #
4760
+ # @return [Hash{Symbol=>String}, nil]
4761
+ optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
4762
+
4763
+ # @!method initialize(payment_type:, invoice_metadata: nil)
4764
+ # Some parameter documentations has been truncated, see
4765
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig}
4766
+ # for more details.
4767
+ #
4768
+ # Only applicable if using STRIPE as your payment gateway type.
3452
4769
  #
3453
- # @param payment_type [Symbol, MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
4770
+ # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
4771
+ #
4772
+ # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
3454
4773
 
3455
4774
  # If left blank, will default to INVOICE
3456
4775
  #
3457
- # @see MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
4776
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
3458
4777
  module PaymentType
3459
4778
  extend MetronomeSDK::Internal::Type::Enum
3460
4779
 
@@ -3470,12 +4789,14 @@ module MetronomeSDK
3470
4789
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
3471
4790
  # will default to NONE.
3472
4791
  #
3473
- # @see MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig#tax_type
4792
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig#tax_type
3474
4793
  module TaxType
3475
4794
  extend MetronomeSDK::Internal::Type::Enum
3476
4795
 
3477
4796
  NONE = :NONE
3478
4797
  STRIPE = :STRIPE
4798
+ ANROK = :ANROK
4799
+ PRECALCULATED = :PRECALCULATED
3479
4800
 
3480
4801
  # @!method self.values
3481
4802
  # @return [Array<Symbol>]
@@ -3483,6 +4804,114 @@ module MetronomeSDK
3483
4804
  end
3484
4805
  end
3485
4806
 
4807
+ class UpdateRecurringCommit < MetronomeSDK::Internal::Type::BaseModel
4808
+ # @!attribute recurring_commit_id
4809
+ #
4810
+ # @return [String]
4811
+ required :recurring_commit_id, String
4812
+
4813
+ # @!attribute access_amount
4814
+ #
4815
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::AccessAmount, nil]
4816
+ optional :access_amount,
4817
+ -> {
4818
+ MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit::AccessAmount
4819
+ }
4820
+
4821
+ # @!attribute ending_before
4822
+ #
4823
+ # @return [Time, nil]
4824
+ optional :ending_before, Time, nil?: true
4825
+
4826
+ # @!attribute invoice_amount
4827
+ #
4828
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::InvoiceAmount, nil]
4829
+ optional :invoice_amount,
4830
+ -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit::InvoiceAmount }
4831
+
4832
+ # @!method initialize(recurring_commit_id:, access_amount: nil, ending_before: nil, invoice_amount: nil)
4833
+ # @param recurring_commit_id [String]
4834
+ # @param access_amount [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::AccessAmount]
4835
+ # @param ending_before [Time, nil]
4836
+ # @param invoice_amount [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::InvoiceAmount]
4837
+
4838
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit#access_amount
4839
+ class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
4840
+ # @!attribute quantity
4841
+ #
4842
+ # @return [Float, nil]
4843
+ optional :quantity, Float
4844
+
4845
+ # @!attribute unit_price
4846
+ #
4847
+ # @return [Float, nil]
4848
+ optional :unit_price, Float
4849
+
4850
+ # @!method initialize(quantity: nil, unit_price: nil)
4851
+ # @param quantity [Float]
4852
+ # @param unit_price [Float]
4853
+ end
4854
+
4855
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit#invoice_amount
4856
+ class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
4857
+ # @!attribute quantity
4858
+ #
4859
+ # @return [Float, nil]
4860
+ optional :quantity, Float
4861
+
4862
+ # @!attribute unit_price
4863
+ #
4864
+ # @return [Float, nil]
4865
+ optional :unit_price, Float
4866
+
4867
+ # @!method initialize(quantity: nil, unit_price: nil)
4868
+ # @param quantity [Float]
4869
+ # @param unit_price [Float]
4870
+ end
4871
+ end
4872
+
4873
+ class UpdateRecurringCredit < MetronomeSDK::Internal::Type::BaseModel
4874
+ # @!attribute recurring_credit_id
4875
+ #
4876
+ # @return [String]
4877
+ required :recurring_credit_id, String
4878
+
4879
+ # @!attribute access_amount
4880
+ #
4881
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::AccessAmount, nil]
4882
+ optional :access_amount,
4883
+ -> {
4884
+ MetronomeSDK::V2::ContractEditParams::UpdateRecurringCredit::AccessAmount
4885
+ }
4886
+
4887
+ # @!attribute ending_before
4888
+ #
4889
+ # @return [Time, nil]
4890
+ optional :ending_before, Time, nil?: true
4891
+
4892
+ # @!method initialize(recurring_credit_id:, access_amount: nil, ending_before: nil)
4893
+ # @param recurring_credit_id [String]
4894
+ # @param access_amount [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::AccessAmount]
4895
+ # @param ending_before [Time, nil]
4896
+
4897
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit#access_amount
4898
+ class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
4899
+ # @!attribute quantity
4900
+ #
4901
+ # @return [Float, nil]
4902
+ optional :quantity, Float
4903
+
4904
+ # @!attribute unit_price
4905
+ #
4906
+ # @return [Float, nil]
4907
+ optional :unit_price, Float
4908
+
4909
+ # @!method initialize(quantity: nil, unit_price: nil)
4910
+ # @param quantity [Float]
4911
+ # @param unit_price [Float]
4912
+ end
4913
+ end
4914
+
3486
4915
  class UpdateScheduledCharge < MetronomeSDK::Internal::Type::BaseModel
3487
4916
  # @!attribute scheduled_charge_id
3488
4917
  #
@@ -3491,7 +4920,7 @@ module MetronomeSDK
3491
4920
 
3492
4921
  # @!attribute invoice_schedule
3493
4922
  #
3494
- # @return [MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule, nil]
4923
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule, nil]
3495
4924
  optional :invoice_schedule,
3496
4925
  -> { MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule }
3497
4926
 
@@ -3502,14 +4931,14 @@ module MetronomeSDK
3502
4931
 
3503
4932
  # @!method initialize(scheduled_charge_id:, invoice_schedule: nil, netsuite_sales_order_id: nil)
3504
4933
  # @param scheduled_charge_id [String]
3505
- # @param invoice_schedule [MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule]
4934
+ # @param invoice_schedule [MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule]
3506
4935
  # @param netsuite_sales_order_id [String, nil]
3507
4936
 
3508
- # @see MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge#invoice_schedule
4937
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge#invoice_schedule
3509
4938
  class InvoiceSchedule < MetronomeSDK::Internal::Type::BaseModel
3510
4939
  # @!attribute add_schedule_items
3511
4940
  #
3512
- # @return [Array<MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::AddScheduleItem>, nil]
4941
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::AddScheduleItem>, nil]
3513
4942
  optional :add_schedule_items,
3514
4943
  -> {
3515
4944
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::AddScheduleItem]
@@ -3517,7 +4946,7 @@ module MetronomeSDK
3517
4946
 
3518
4947
  # @!attribute remove_schedule_items
3519
4948
  #
3520
- # @return [Array<MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::RemoveScheduleItem>, nil]
4949
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::RemoveScheduleItem>, nil]
3521
4950
  optional :remove_schedule_items,
3522
4951
  -> {
3523
4952
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::RemoveScheduleItem]
@@ -3525,16 +4954,16 @@ module MetronomeSDK
3525
4954
 
3526
4955
  # @!attribute update_schedule_items
3527
4956
  #
3528
- # @return [Array<MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::UpdateScheduleItem>, nil]
4957
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::UpdateScheduleItem>, nil]
3529
4958
  optional :update_schedule_items,
3530
4959
  -> {
3531
4960
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::UpdateScheduleItem]
3532
4961
  }
3533
4962
 
3534
4963
  # @!method initialize(add_schedule_items: nil, remove_schedule_items: nil, update_schedule_items: nil)
3535
- # @param add_schedule_items [Array<MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::AddScheduleItem>]
3536
- # @param remove_schedule_items [Array<MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::RemoveScheduleItem>]
3537
- # @param update_schedule_items [Array<MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::UpdateScheduleItem>]
4964
+ # @param add_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::AddScheduleItem>]
4965
+ # @param remove_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::RemoveScheduleItem>]
4966
+ # @param update_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::UpdateScheduleItem>]
3538
4967
 
3539
4968
  class AddScheduleItem < MetronomeSDK::Internal::Type::BaseModel
3540
4969
  # @!attribute timestamp
@@ -3613,7 +5042,7 @@ module MetronomeSDK
3613
5042
  class UpdateSpendThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
3614
5043
  # @!attribute commit
3615
5044
  #
3616
- # @return [MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::Commit, nil]
5045
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::Commit, nil]
3617
5046
  optional :commit,
3618
5047
  -> {
3619
5048
  MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::Commit
@@ -3629,7 +5058,7 @@ module MetronomeSDK
3629
5058
 
3630
5059
  # @!attribute payment_gate_config
3631
5060
  #
3632
- # @return [MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig, nil]
5061
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig, nil]
3633
5062
  optional :payment_gate_config,
3634
5063
  -> {
3635
5064
  MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig
@@ -3644,49 +5073,51 @@ module MetronomeSDK
3644
5073
 
3645
5074
  # @!method initialize(commit: nil, is_enabled: nil, payment_gate_config: nil, threshold_amount: nil)
3646
5075
  # Some parameter documentations has been truncated, see
3647
- # {MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration} for
3648
- # more details.
5076
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration}
5077
+ # for more details.
3649
5078
  #
3650
- # @param commit [MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::Commit]
5079
+ # @param commit [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::Commit]
3651
5080
  #
3652
5081
  # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
3653
5082
  #
3654
- # @param payment_gate_config [MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig]
5083
+ # @param payment_gate_config [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig]
3655
5084
  #
3656
5085
  # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's usage hi
3657
5086
 
3658
- # @see MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration#commit
5087
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration#commit
3659
5088
  class Commit < MetronomeSDK::Internal::Type::BaseModel
3660
5089
  # @!attribute description
3661
5090
  #
3662
5091
  # @return [String, nil]
3663
- optional :description, String, nil?: true
5092
+ optional :description, String
3664
5093
 
3665
5094
  # @!attribute name
3666
5095
  # Specify the name of the line item for the threshold charge. If left blank, it
3667
5096
  # will default to the commit product name.
3668
5097
  #
3669
5098
  # @return [String, nil]
3670
- optional :name, String, nil?: true
5099
+ optional :name, String
3671
5100
 
3672
5101
  # @!attribute product_id
5102
+ # The commit product that will be used to generate the line item for commit
5103
+ # payment.
3673
5104
  #
3674
5105
  # @return [String, nil]
3675
5106
  optional :product_id, String
3676
5107
 
3677
5108
  # @!method initialize(description: nil, name: nil, product_id: nil)
3678
5109
  # Some parameter documentations has been truncated, see
3679
- # {MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::Commit}
5110
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::Commit}
3680
5111
  # for more details.
3681
5112
  #
3682
- # @param description [String, nil]
5113
+ # @param description [String]
3683
5114
  #
3684
- # @param name [String, nil] Specify the name of the line item for the threshold charge. If left blank, it wi
5115
+ # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
3685
5116
  #
3686
- # @param product_id [String]
5117
+ # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
3687
5118
  end
3688
5119
 
3689
- # @see MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration#payment_gate_config
5120
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration#payment_gate_config
3690
5121
  class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
3691
5122
  # @!attribute payment_gate_type
3692
5123
  # Gate access to the commit balance based on successful collection of payment.
@@ -3694,16 +5125,25 @@ module MetronomeSDK
3694
5125
  # facilitate payment using your own payment integration. Select NONE if you do not
3695
5126
  # wish to payment gate the commit balance.
3696
5127
  #
3697
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType]
5128
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType]
3698
5129
  required :payment_gate_type,
3699
5130
  enum: -> {
3700
5131
  MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType
3701
5132
  }
3702
5133
 
5134
+ # @!attribute precalculated_tax_config
5135
+ # Only applicable if using PRECALCULATED as your tax type.
5136
+ #
5137
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig, nil]
5138
+ optional :precalculated_tax_config,
5139
+ -> {
5140
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
5141
+ }
5142
+
3703
5143
  # @!attribute stripe_config
3704
- # Only applicable if using Stripe as your payment gateway through Metronome.
5144
+ # Only applicable if using STRIPE as your payment gateway type.
3705
5145
  #
3706
- # @return [MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
5146
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
3707
5147
  optional :stripe_config,
3708
5148
  -> {
3709
5149
  MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig
@@ -3714,29 +5154,31 @@ module MetronomeSDK
3714
5154
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
3715
5155
  # will default to NONE.
3716
5156
  #
3717
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType, nil]
5157
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType, nil]
3718
5158
  optional :tax_type,
3719
5159
  enum: -> {
3720
5160
  MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType
3721
5161
  }
3722
5162
 
3723
- # @!method initialize(payment_gate_type:, stripe_config: nil, tax_type: nil)
5163
+ # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
3724
5164
  # Some parameter documentations has been truncated, see
3725
- # {MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig}
5165
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig}
3726
5166
  # for more details.
3727
5167
  #
3728
- # @param payment_gate_type [Symbol, MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
5168
+ # @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
3729
5169
  #
3730
- # @param stripe_config [MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using Stripe as your payment gateway through Metronome.
5170
+ # @param precalculated_tax_config [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
3731
5171
  #
3732
- # @param tax_type [Symbol, MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
5172
+ # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gateway type.
5173
+ #
5174
+ # @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
3733
5175
 
3734
5176
  # Gate access to the commit balance based on successful collection of payment.
3735
5177
  # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
3736
5178
  # facilitate payment using your own payment integration. Select NONE if you do not
3737
5179
  # wish to payment gate the commit balance.
3738
5180
  #
3739
- # @see MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig#payment_gate_type
5181
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig#payment_gate_type
3740
5182
  module PaymentGateType
3741
5183
  extend MetronomeSDK::Internal::Type::Enum
3742
5184
 
@@ -3748,25 +5190,66 @@ module MetronomeSDK
3748
5190
  # @return [Array<Symbol>]
3749
5191
  end
3750
5192
 
3751
- # @see MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig#stripe_config
5193
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig#precalculated_tax_config
5194
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
5195
+ # @!attribute tax_amount
5196
+ # Amount of tax to be applied. This should be in the same currency and
5197
+ # denomination as the commit's invoice schedule
5198
+ #
5199
+ # @return [Float]
5200
+ required :tax_amount, Float
5201
+
5202
+ # @!attribute tax_name
5203
+ # Name of the tax to be applied. This may be used in an invoice line item
5204
+ # description.
5205
+ #
5206
+ # @return [String, nil]
5207
+ optional :tax_name, String
5208
+
5209
+ # @!method initialize(tax_amount:, tax_name: nil)
5210
+ # Some parameter documentations has been truncated, see
5211
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig}
5212
+ # for more details.
5213
+ #
5214
+ # Only applicable if using PRECALCULATED as your tax type.
5215
+ #
5216
+ # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
5217
+ #
5218
+ # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
5219
+ end
5220
+
5221
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig#stripe_config
3752
5222
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
3753
5223
  # @!attribute payment_type
3754
5224
  # If left blank, will default to INVOICE
3755
5225
  #
3756
- # @return [Symbol, MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
5226
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
3757
5227
  required :payment_type,
3758
5228
  enum: -> {
3759
5229
  MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
3760
5230
  }
3761
5231
 
3762
- # @!method initialize(payment_type:)
3763
- # Only applicable if using Stripe as your payment gateway through Metronome.
5232
+ # @!attribute invoice_metadata
5233
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
5234
+ # your payment type.
5235
+ #
5236
+ # @return [Hash{Symbol=>String}, nil]
5237
+ optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
5238
+
5239
+ # @!method initialize(payment_type:, invoice_metadata: nil)
5240
+ # Some parameter documentations has been truncated, see
5241
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig}
5242
+ # for more details.
5243
+ #
5244
+ # Only applicable if using STRIPE as your payment gateway type.
3764
5245
  #
3765
- # @param payment_type [Symbol, MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
5246
+ # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
5247
+ #
5248
+ # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
3766
5249
 
3767
5250
  # If left blank, will default to INVOICE
3768
5251
  #
3769
- # @see MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
5252
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
3770
5253
  module PaymentType
3771
5254
  extend MetronomeSDK::Internal::Type::Enum
3772
5255
 
@@ -3782,18 +5265,87 @@ module MetronomeSDK
3782
5265
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
3783
5266
  # will default to NONE.
3784
5267
  #
3785
- # @see MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig#tax_type
5268
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig#tax_type
3786
5269
  module TaxType
3787
5270
  extend MetronomeSDK::Internal::Type::Enum
3788
5271
 
3789
5272
  NONE = :NONE
3790
5273
  STRIPE = :STRIPE
5274
+ ANROK = :ANROK
5275
+ PRECALCULATED = :PRECALCULATED
3791
5276
 
3792
5277
  # @!method self.values
3793
5278
  # @return [Array<Symbol>]
3794
5279
  end
3795
5280
  end
3796
5281
  end
5282
+
5283
+ class UpdateSubscription < MetronomeSDK::Internal::Type::BaseModel
5284
+ # @!attribute subscription_id
5285
+ #
5286
+ # @return [String]
5287
+ required :subscription_id, String
5288
+
5289
+ # @!attribute ending_before
5290
+ #
5291
+ # @return [Time, nil]
5292
+ optional :ending_before, Time, nil?: true
5293
+
5294
+ # @!attribute quantity_updates
5295
+ # Quantity changes are applied on the effective date based on the order which they
5296
+ # are sent. For example, if I scheduled the quantity to be 12 on May 21 and then
5297
+ # scheduled a quantity delta change of -1, the result from that day would be 11.
5298
+ #
5299
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityUpdate>, nil]
5300
+ optional :quantity_updates,
5301
+ -> {
5302
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityUpdate]
5303
+ }
5304
+
5305
+ # @!method initialize(subscription_id:, ending_before: nil, quantity_updates: nil)
5306
+ # Some parameter documentations has been truncated, see
5307
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription} for more
5308
+ # details.
5309
+ #
5310
+ # @param subscription_id [String]
5311
+ #
5312
+ # @param ending_before [Time, nil]
5313
+ #
5314
+ # @param quantity_updates [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityUpdate>] Quantity changes are applied on the effective date based on the order which they
5315
+
5316
+ class QuantityUpdate < MetronomeSDK::Internal::Type::BaseModel
5317
+ # @!attribute starting_at
5318
+ #
5319
+ # @return [Time]
5320
+ required :starting_at, Time
5321
+
5322
+ # @!attribute quantity
5323
+ # The new quantity for the subscription. Must be provided if quantity_delta is not
5324
+ # provided. Must be non-negative.
5325
+ #
5326
+ # @return [Float, nil]
5327
+ optional :quantity, Float
5328
+
5329
+ # @!attribute quantity_delta
5330
+ # The delta to add to the subscription's quantity. Must be provided if quantity is
5331
+ # not provided. Can't be zero. It also can't result in a negative quantity on the
5332
+ # subscription.
5333
+ #
5334
+ # @return [Float, nil]
5335
+ optional :quantity_delta, Float
5336
+
5337
+ # @!method initialize(starting_at:, quantity: nil, quantity_delta: nil)
5338
+ # Some parameter documentations has been truncated, see
5339
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityUpdate}
5340
+ # for more details.
5341
+ #
5342
+ # @param starting_at [Time]
5343
+ #
5344
+ # @param quantity [Float] The new quantity for the subscription. Must be provided if quantity_delta is not
5345
+ #
5346
+ # @param quantity_delta [Float] The delta to add to the subscription's quantity. Must be provided if quantity is
5347
+ end
5348
+ end
3797
5349
  end
3798
5350
  end
3799
5351
  end