metronome-sdk 0.2.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (321) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +61 -0
  3. data/README.md +9 -9
  4. data/lib/metronome_sdk/internal/body_cursor_page.rb +86 -0
  5. data/lib/metronome_sdk/internal/cursor_page_without_limit.rb +86 -0
  6. data/lib/metronome_sdk/internal/transport/base_client.rb +1 -4
  7. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +1 -9
  8. data/lib/metronome_sdk/internal/type/array_of.rb +1 -0
  9. data/lib/metronome_sdk/internal/type/base_model.rb +9 -14
  10. data/lib/metronome_sdk/internal/type/converter.rb +27 -0
  11. data/lib/metronome_sdk/internal/type/hash_of.rb +1 -0
  12. data/lib/metronome_sdk/internal/type/union.rb +20 -7
  13. data/lib/metronome_sdk/internal/util.rb +1 -1
  14. data/lib/metronome_sdk/models/base_threshold_commit.rb +36 -0
  15. data/lib/metronome_sdk/models/commit.rb +26 -170
  16. data/lib/metronome_sdk/models/commit_hierarchy_configuration.rb +98 -0
  17. data/lib/metronome_sdk/models/commit_rate.rb +48 -0
  18. data/lib/metronome_sdk/models/commit_specifier.rb +42 -0
  19. data/lib/metronome_sdk/models/commit_specifier_input.rb +42 -0
  20. data/lib/metronome_sdk/models/contract.rb +404 -0
  21. data/lib/metronome_sdk/models/contract_v2.rb +2919 -0
  22. data/lib/metronome_sdk/models/contract_without_amendments.rb +36 -1126
  23. data/lib/metronome_sdk/models/credit.rb +9 -156
  24. data/lib/metronome_sdk/models/discount.rb +2 -1
  25. data/lib/metronome_sdk/models/hierarchy_configuration.rb +76 -0
  26. data/lib/metronome_sdk/models/override.rb +6 -101
  27. data/lib/metronome_sdk/models/override_tier.rb +21 -0
  28. data/lib/metronome_sdk/models/overwrite_rate.rb +82 -0
  29. data/lib/metronome_sdk/models/payment_gate_config.rb +149 -0
  30. data/lib/metronome_sdk/models/payment_gate_config_v2.rb +149 -0
  31. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +100 -0
  32. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +102 -0
  33. data/lib/metronome_sdk/models/pro_service.rb +2 -1
  34. data/lib/metronome_sdk/models/recurring_commit_subscription_config.rb +51 -0
  35. data/lib/metronome_sdk/models/schedule_point_in_time.rb +14 -1
  36. data/lib/metronome_sdk/models/scheduled_charge.rb +2 -1
  37. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +44 -0
  38. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +44 -0
  39. data/lib/metronome_sdk/models/subscription.rb +227 -0
  40. data/lib/metronome_sdk/models/update_base_threshold_commit.rb +36 -0
  41. data/lib/metronome_sdk/models/v1/alert_create_params.rb +4 -6
  42. data/lib/metronome_sdk/models/v1/billable_metric_create_params.rb +1 -2
  43. data/lib/metronome_sdk/models/v1/billable_metric_list_response.rb +3 -3
  44. data/lib/metronome_sdk/models/v1/billable_metric_retrieve_response.rb +4 -7
  45. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +110 -415
  46. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_params.rb +7 -16
  47. data/lib/metronome_sdk/models/v1/contract_create_params.rb +287 -1480
  48. data/lib/metronome_sdk/models/v1/contract_list_balances_response.rb +6 -23
  49. data/lib/metronome_sdk/models/v1/contract_list_response.rb +3 -1153
  50. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rb +2 -6
  51. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rb +5 -50
  52. data/lib/metronome_sdk/models/v1/contract_retrieve_response.rb +3 -1154
  53. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_params.rb +1 -3
  54. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +9 -1
  55. data/lib/metronome_sdk/models/v1/contracts/product_list_response.rb +8 -1
  56. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_response.rb +8 -1
  57. data/lib/metronome_sdk/models/v1/contracts/quantity_rounding.rb +1 -4
  58. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_params.rb +4 -7
  59. data/lib/metronome_sdk/models/v1/contracts/rate_card_list_response.rb +10 -1
  60. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rb +2 -6
  61. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rb +5 -50
  62. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rb +10 -1
  63. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_params.rb +1 -3
  64. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_params.rb +1 -3
  65. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +6 -61
  66. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +3 -49
  67. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +4 -51
  68. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rb +2 -6
  69. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rb +5 -49
  70. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_response.rb +103 -123
  71. data/lib/metronome_sdk/models/v1/credit_grant_list_response.rb +3 -5
  72. data/lib/metronome_sdk/models/v1/custom_field_list_keys_params.rb +1 -3
  73. data/lib/metronome_sdk/models/v1/custom_field_list_keys_response.rb +41 -58
  74. data/lib/metronome_sdk/models/v1/custom_field_set_values_params.rb +5 -1
  75. data/lib/metronome_sdk/models/v1/customer.rb +2 -1
  76. data/lib/metronome_sdk/models/v1/customer_create_params.rb +37 -11
  77. data/lib/metronome_sdk/models/v1/customer_detail.rb +2 -1
  78. data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_response.rb +3 -3
  79. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +1 -3
  80. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rb +28 -0
  81. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rb +128 -0
  82. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb +143 -0
  83. data/lib/metronome_sdk/models/v1/customers/alert_list_params.rb +1 -3
  84. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +30 -1
  85. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +2 -0
  86. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +2 -0
  87. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +20 -61
  88. data/lib/metronome_sdk/models/v1/customers/credit_create_params.rb +6 -48
  89. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +8 -16
  90. data/lib/metronome_sdk/models/v1/customers/invoice.rb +68 -43
  91. data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_params.rb +1 -4
  92. data/lib/metronome_sdk/models/v1/customers/plan_add_params.rb +2 -6
  93. data/lib/metronome_sdk/models/v1/customers/plan_list_response.rb +2 -1
  94. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +4 -11
  95. data/lib/metronome_sdk/models/v1/plan_detail.rb +9 -5
  96. data/lib/metronome_sdk/models/v1/plan_list_charges_response.rb +2 -1
  97. data/lib/metronome_sdk/models/v1/plan_list_customers_response.rb +2 -1
  98. data/lib/metronome_sdk/models/v1/plan_list_response.rb +5 -1
  99. data/lib/metronome_sdk/models/v1/usage_ingest_params.rb +1 -4
  100. data/lib/metronome_sdk/models/v1/usage_list_params.rb +1 -3
  101. data/lib/metronome_sdk/models/v1/usage_list_response.rb +45 -62
  102. data/lib/metronome_sdk/models/v1/usage_search_response.rb +4 -7
  103. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +38 -58
  104. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +35 -49
  105. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +469 -2302
  106. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +358 -2414
  107. data/lib/metronome_sdk/models/v2/contract_list_response.rb +3 -4520
  108. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +3 -4528
  109. data/lib/metronome_sdk/models.rb +38 -0
  110. data/lib/metronome_sdk/resources/v1/alerts.rb +72 -2
  111. data/lib/metronome_sdk/resources/v1/audit_logs.rb +39 -4
  112. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +54 -4
  113. data/lib/metronome_sdk/resources/v1/contracts/products.rb +27 -6
  114. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rb +7 -2
  115. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +10 -2
  116. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +109 -10
  117. data/lib/metronome_sdk/resources/v1/contracts.rb +254 -18
  118. data/lib/metronome_sdk/resources/v1/credit_grants.rb +2 -1
  119. data/lib/metronome_sdk/resources/v1/custom_fields.rb +51 -14
  120. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +103 -8
  121. data/lib/metronome_sdk/resources/v1/customers/commits.rb +119 -9
  122. data/lib/metronome_sdk/resources/v1/customers/credits.rb +104 -8
  123. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +124 -8
  124. data/lib/metronome_sdk/resources/v1/customers.rb +169 -12
  125. data/lib/metronome_sdk/resources/v1/dashboards.rb +29 -3
  126. data/lib/metronome_sdk/resources/v1/invoices.rb +23 -2
  127. data/lib/metronome_sdk/resources/v1/pricing_units.rb +6 -1
  128. data/lib/metronome_sdk/resources/v1/services.rb +6 -4
  129. data/lib/metronome_sdk/resources/v1/usage.rb +185 -12
  130. data/lib/metronome_sdk/resources/v2/contracts.rb +118 -18
  131. data/lib/metronome_sdk/version.rb +1 -1
  132. data/lib/metronome_sdk.rb +24 -3
  133. data/rbi/metronome_sdk/errors.rbi +2 -2
  134. data/rbi/metronome_sdk/internal/body_cursor_page.rbi +22 -0
  135. data/rbi/metronome_sdk/internal/cursor_page_without_limit.rbi +22 -0
  136. data/rbi/metronome_sdk/internal/type/converter.rbi +58 -0
  137. data/rbi/metronome_sdk/internal/type/union.rbi +9 -2
  138. data/rbi/metronome_sdk/models/base_threshold_commit.rbi +58 -0
  139. data/rbi/metronome_sdk/models/commit.rbi +26 -348
  140. data/rbi/metronome_sdk/models/commit_hierarchy_configuration.rbi +280 -0
  141. data/rbi/metronome_sdk/models/commit_rate.rbi +85 -0
  142. data/rbi/metronome_sdk/models/commit_specifier.rbi +71 -0
  143. data/rbi/metronome_sdk/models/commit_specifier_input.rbi +74 -0
  144. data/rbi/metronome_sdk/models/contract.rbi +768 -0
  145. data/rbi/metronome_sdk/models/contract_v2.rbi +5822 -0
  146. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +184 -2507
  147. data/rbi/metronome_sdk/models/credit.rbi +10 -348
  148. data/rbi/metronome_sdk/models/discount.rbi +2 -0
  149. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +180 -0
  150. data/rbi/metronome_sdk/models/override.rbi +8 -193
  151. data/rbi/metronome_sdk/models/override_tier.rbi +29 -0
  152. data/rbi/metronome_sdk/models/overwrite_rate.rbi +137 -0
  153. data/rbi/metronome_sdk/models/payment_gate_config.rbi +312 -0
  154. data/rbi/metronome_sdk/models/payment_gate_config_v2.rbi +321 -0
  155. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +183 -0
  156. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +188 -0
  157. data/rbi/metronome_sdk/models/pro_service.rbi +2 -0
  158. data/rbi/metronome_sdk/models/recurring_commit_subscription_config.rbi +125 -0
  159. data/rbi/metronome_sdk/models/schedule_point_in_time.rbi +17 -1
  160. data/rbi/metronome_sdk/models/scheduled_charge.rbi +2 -0
  161. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +76 -0
  162. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -0
  163. data/rbi/metronome_sdk/models/subscription.rbi +460 -0
  164. data/rbi/metronome_sdk/models/update_base_threshold_commit.rbi +61 -0
  165. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +6 -3
  166. data/rbi/metronome_sdk/models/v1/billable_metric_list_response.rbi +2 -0
  167. data/rbi/metronome_sdk/models/v1/billable_metric_retrieve_response.rbi +2 -0
  168. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +120 -771
  169. data/rbi/metronome_sdk/models/v1/contract_create_historical_invoices_params.rbi +2 -0
  170. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1613 -4069
  171. data/rbi/metronome_sdk/models/v1/contract_list_balances_response.rbi +8 -59
  172. data/rbi/metronome_sdk/models/v1/contract_list_response.rbi +5 -2420
  173. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbi +6 -129
  174. data/rbi/metronome_sdk/models/v1/contract_retrieve_response.rbi +4 -2419
  175. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +11 -0
  176. data/rbi/metronome_sdk/models/v1/contracts/product_list_response.rbi +2 -0
  177. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_response.rbi +2 -0
  178. data/rbi/metronome_sdk/models/v1/contracts/rate_card_create_params.rbi +2 -0
  179. data/rbi/metronome_sdk/models/v1/contracts/rate_card_list_response.rbi +2 -0
  180. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbi +6 -129
  181. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbi +2 -0
  182. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +4 -129
  183. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +4 -129
  184. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +4 -129
  185. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbi +6 -129
  186. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_response.rbi +147 -198
  187. data/rbi/metronome_sdk/models/v1/credit_grant_list_response.rbi +2 -0
  188. data/rbi/metronome_sdk/models/v1/custom_field_list_keys_response.rbi +117 -165
  189. data/rbi/metronome_sdk/models/v1/custom_field_set_values_params.rbi +8 -1
  190. data/rbi/metronome_sdk/models/v1/customer.rbi +2 -0
  191. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +88 -3
  192. data/rbi/metronome_sdk/models/v1/customer_detail.rbi +2 -0
  193. data/rbi/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbi +2 -0
  194. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbi +51 -0
  195. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbi +265 -0
  196. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbi +348 -0
  197. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +60 -0
  198. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +10 -0
  199. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +10 -0
  200. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +19 -90
  201. data/rbi/metronome_sdk/models/v1/customers/credit_create_params.rbi +6 -90
  202. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +6 -3
  203. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +76 -0
  204. data/rbi/metronome_sdk/models/v1/customers/plan_list_response.rbi +2 -0
  205. data/rbi/metronome_sdk/models/v1/plan_detail.rbi +2 -0
  206. data/rbi/metronome_sdk/models/v1/plan_list_charges_response.rbi +2 -0
  207. data/rbi/metronome_sdk/models/v1/plan_list_customers_response.rbi +2 -0
  208. data/rbi/metronome_sdk/models/v1/plan_list_response.rbi +8 -1
  209. data/rbi/metronome_sdk/models/v1/usage_list_response.rbi +45 -86
  210. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +2 -0
  211. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +66 -76
  212. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +66 -76
  213. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +3563 -7329
  214. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1181 -6070
  215. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +5 -9867
  216. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +6 -9866
  217. data/rbi/metronome_sdk/models.rbi +44 -0
  218. data/rbi/metronome_sdk/resources/v1/alerts.rbi +72 -2
  219. data/rbi/metronome_sdk/resources/v1/audit_logs.rbi +39 -4
  220. data/rbi/metronome_sdk/resources/v1/billable_metrics.rbi +54 -4
  221. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +27 -5
  222. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rbi +7 -2
  223. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +10 -3
  224. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards.rbi +109 -9
  225. data/rbi/metronome_sdk/resources/v1/contracts.rbi +257 -16
  226. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +5 -1
  227. data/rbi/metronome_sdk/resources/v1/custom_fields.rbi +57 -14
  228. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +108 -5
  229. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +119 -10
  230. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +104 -9
  231. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +123 -7
  232. data/rbi/metronome_sdk/resources/v1/customers.rbi +156 -11
  233. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +29 -3
  234. data/rbi/metronome_sdk/resources/v1/invoices.rbi +23 -2
  235. data/rbi/metronome_sdk/resources/v1/pricing_units.rbi +6 -1
  236. data/rbi/metronome_sdk/resources/v1/services.rbi +6 -4
  237. data/rbi/metronome_sdk/resources/v1/usage.rbi +188 -12
  238. data/rbi/metronome_sdk/resources/v2/contracts.rbi +128 -23
  239. data/sig/metronome_sdk/internal/body_cursor_page.rbs +13 -0
  240. data/sig/metronome_sdk/internal/cursor_page_without_limit.rbs +13 -0
  241. data/sig/metronome_sdk/internal/type/converter.rbs +17 -0
  242. data/sig/metronome_sdk/internal/type/union.rbs +2 -2
  243. data/sig/metronome_sdk/models/base_threshold_commit.rbs +26 -0
  244. data/sig/metronome_sdk/models/commit.rbs +17 -170
  245. data/sig/metronome_sdk/models/commit_hierarchy_configuration.rbs +117 -0
  246. data/sig/metronome_sdk/models/commit_rate.rbs +48 -0
  247. data/sig/metronome_sdk/models/commit_specifier.rbs +47 -0
  248. data/sig/metronome_sdk/models/commit_specifier_input.rbs +47 -0
  249. data/sig/metronome_sdk/models/contract.rbs +398 -0
  250. data/sig/metronome_sdk/models/contract_v2.rbs +2881 -0
  251. data/sig/metronome_sdk/models/contract_without_amendments.rbs +54 -976
  252. data/sig/metronome_sdk/models/credit.rbs +12 -170
  253. data/sig/metronome_sdk/models/hierarchy_configuration.rbs +71 -0
  254. data/sig/metronome_sdk/models/override.rbs +12 -101
  255. data/sig/metronome_sdk/models/override_tier.rbs +17 -0
  256. data/sig/metronome_sdk/models/overwrite_rate.rbs +78 -0
  257. data/sig/metronome_sdk/models/payment_gate_config.rbs +123 -0
  258. data/sig/metronome_sdk/models/payment_gate_config_v2.rbs +123 -0
  259. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +82 -0
  260. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +82 -0
  261. data/sig/metronome_sdk/models/recurring_commit_subscription_config.rbs +51 -0
  262. data/sig/metronome_sdk/models/schedule_point_in_time.rbs +7 -0
  263. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +35 -0
  264. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +35 -0
  265. data/sig/metronome_sdk/models/subscription.rbs +215 -0
  266. data/sig/metronome_sdk/models/update_base_threshold_commit.rbs +28 -0
  267. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +4 -2
  268. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +62 -343
  269. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +218 -1234
  270. data/sig/metronome_sdk/models/v1/contract_list_balances_response.rbs +4 -25
  271. data/sig/metronome_sdk/models/v1/contract_list_response.rbs +4 -1041
  272. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbs +6 -54
  273. data/sig/metronome_sdk/models/v1/contract_retrieve_response.rbs +4 -1041
  274. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +7 -0
  275. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbs +6 -54
  276. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +6 -54
  277. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +6 -54
  278. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +6 -54
  279. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbs +6 -54
  280. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_response.rbs +72 -94
  281. data/sig/metronome_sdk/models/v1/custom_field_list_keys_response.rbs +53 -75
  282. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +31 -4
  283. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbs +32 -0
  284. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbs +113 -0
  285. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbs +133 -0
  286. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +21 -0
  287. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +7 -1
  288. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +6 -1
  289. data/sig/metronome_sdk/models/v1/customers/commit_create_params.rbs +13 -50
  290. data/sig/metronome_sdk/models/v1/customers/credit_create_params.rbs +6 -50
  291. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +4 -2
  292. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +5 -0
  293. data/sig/metronome_sdk/models/v1/usage_list_response.rbs +33 -55
  294. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +24 -43
  295. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +24 -43
  296. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +400 -1911
  297. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +256 -2249
  298. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +4 -4426
  299. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +4 -4426
  300. data/sig/metronome_sdk/models.rbs +38 -0
  301. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +1 -0
  302. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -1
  303. data/sig/metronome_sdk/resources/v1/contracts.rbs +3 -3
  304. data/sig/metronome_sdk/resources/v1/credit_grants.rbs +1 -1
  305. data/sig/metronome_sdk/resources/v1/custom_fields.rbs +1 -1
  306. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +2 -1
  307. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +2 -2
  308. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +2 -2
  309. data/sig/metronome_sdk/resources/v1/customers.rbs +11 -0
  310. data/sig/metronome_sdk/resources/v1/usage.rbs +1 -1
  311. data/sig/metronome_sdk/resources/v2/contracts.rbs +9 -4
  312. metadata +74 -11
  313. data/lib/metronome_sdk/models/v1/customers/alert_list_response.rb +0 -29
  314. data/lib/metronome_sdk/models/v1/customers/commit_list_response.rb +0 -26
  315. data/lib/metronome_sdk/models/v1/customers/credit_list_response.rb +0 -26
  316. data/rbi/metronome_sdk/models/v1/customers/alert_list_response.rbi +0 -46
  317. data/rbi/metronome_sdk/models/v1/customers/commit_list_response.rbi +0 -45
  318. data/rbi/metronome_sdk/models/v1/customers/credit_list_response.rbi +0 -45
  319. data/sig/metronome_sdk/models/v1/customers/alert_list_response.rbs +0 -29
  320. data/sig/metronome_sdk/models/v1/customers/commit_list_response.rbs +0 -26
  321. data/sig/metronome_sdk/models/v1/customers/credit_list_response.rbs +0 -26
@@ -36,70 +36,55 @@ module MetronomeSDK
36
36
  #
37
37
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddDiscount>, nil]
38
38
  optional :add_discounts,
39
- -> {
40
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddDiscount]
41
- }
39
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddDiscount] }
42
40
 
43
41
  # @!attribute add_overrides
44
42
  #
45
43
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride>, nil]
46
44
  optional :add_overrides,
47
- -> {
48
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddOverride]
49
- }
45
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddOverride] }
50
46
 
51
47
  # @!attribute add_prepaid_balance_threshold_configuration
52
48
  #
53
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration, nil]
49
+ # @return [MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2, nil]
54
50
  optional :add_prepaid_balance_threshold_configuration,
55
- -> { MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration }
51
+ -> { MetronomeSDK::PrepaidBalanceThresholdConfigurationV2 }
56
52
 
57
53
  # @!attribute add_professional_services
58
54
  # This field's availability is dependent on your client's configuration.
59
55
  #
60
56
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddProfessionalService>, nil]
61
57
  optional :add_professional_services,
62
- -> {
63
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddProfessionalService]
64
- }
58
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddProfessionalService] }
65
59
 
66
60
  # @!attribute add_recurring_commits
67
61
  #
68
62
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit>, nil]
69
63
  optional :add_recurring_commits,
70
- -> {
71
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCommit]
72
- }
64
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCommit] }
73
65
 
74
66
  # @!attribute add_recurring_credits
75
67
  #
76
68
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit>, nil]
77
69
  optional :add_recurring_credits,
78
- -> {
79
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCredit]
80
- }
70
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCredit] }
81
71
 
82
72
  # @!attribute add_reseller_royalties
83
73
  #
84
74
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddResellerRoyalty>, nil]
85
75
  optional :add_reseller_royalties,
86
- -> {
87
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty]
88
- }
76
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty] }
89
77
 
90
78
  # @!attribute add_scheduled_charges
91
79
  #
92
80
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge>, nil]
93
81
  optional :add_scheduled_charges,
94
- -> {
95
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddScheduledCharge]
96
- }
82
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddScheduledCharge] }
97
83
 
98
84
  # @!attribute add_spend_threshold_configuration
99
85
  #
100
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration, nil]
101
- optional :add_spend_threshold_configuration,
102
- -> { MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration }
86
+ # @return [MetronomeSDK::Models::SpendThresholdConfigurationV2, nil]
87
+ optional :add_spend_threshold_configuration, -> { MetronomeSDK::SpendThresholdConfigurationV2 }
103
88
 
104
89
  # @!attribute add_subscriptions
105
90
  # Optional list of
@@ -108,9 +93,7 @@ module MetronomeSDK
108
93
  #
109
94
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddSubscription>, nil]
110
95
  optional :add_subscriptions,
111
- -> {
112
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddSubscription]
113
- }
96
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddSubscription] }
114
97
 
115
98
  # @!attribute allow_contract_ending_before_finalized_invoice
116
99
  # If true, allows setting the contract end date earlier than the end_timestamp of
@@ -126,44 +109,40 @@ module MetronomeSDK
126
109
  #
127
110
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::ArchiveCommit>, nil]
128
111
  optional :archive_commits,
129
- -> {
130
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::ArchiveCommit]
131
- }
112
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::ArchiveCommit] }
132
113
 
133
114
  # @!attribute archive_credits
134
115
  # IDs of credits to archive
135
116
  #
136
117
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::ArchiveCredit>, nil]
137
118
  optional :archive_credits,
138
- -> {
139
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::ArchiveCredit]
140
- }
119
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::ArchiveCredit] }
141
120
 
142
121
  # @!attribute archive_scheduled_charges
143
122
  # IDs of scheduled charges to archive
144
123
  #
145
124
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::ArchiveScheduledCharge>, nil]
146
125
  optional :archive_scheduled_charges,
147
- -> {
148
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::ArchiveScheduledCharge]
149
- }
126
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::ArchiveScheduledCharge] }
150
127
 
151
128
  # @!attribute remove_overrides
152
129
  # IDs of overrides to remove
153
130
  #
154
131
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::RemoveOverride>, nil]
155
132
  optional :remove_overrides,
156
- -> {
157
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::RemoveOverride]
158
- }
133
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::RemoveOverride] }
134
+
135
+ # @!attribute uniqueness_key
136
+ # Optional uniqueness key to prevent duplicate contract edits.
137
+ #
138
+ # @return [String, nil]
139
+ optional :uniqueness_key, String
159
140
 
160
141
  # @!attribute update_commits
161
142
  #
162
143
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit>, nil]
163
144
  optional :update_commits,
164
- -> {
165
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit]
166
- }
145
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit] }
167
146
 
168
147
  # @!attribute update_contract_end_date
169
148
  # RFC 3339 timestamp indicating when the contract will end (exclusive).
@@ -182,9 +161,7 @@ module MetronomeSDK
182
161
  #
183
162
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit>, nil]
184
163
  optional :update_credits,
185
- -> {
186
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit]
187
- }
164
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit] }
188
165
 
189
166
  # @!attribute update_prepaid_balance_threshold_configuration
190
167
  #
@@ -199,9 +176,7 @@ module MetronomeSDK
199
176
  #
200
177
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit>, nil]
201
178
  optional :update_recurring_commits,
202
- -> {
203
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit]
204
- }
179
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit] }
205
180
 
206
181
  # @!attribute update_recurring_credits
207
182
  # Edits to these recurring credits will only affect credits whose access schedules
@@ -210,17 +185,13 @@ module MetronomeSDK
210
185
  #
211
186
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit>, nil]
212
187
  optional :update_recurring_credits,
213
- -> {
214
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateRecurringCredit]
215
- }
188
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateRecurringCredit] }
216
189
 
217
190
  # @!attribute update_scheduled_charges
218
191
  #
219
192
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge>, nil]
220
193
  optional :update_scheduled_charges,
221
- -> {
222
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge]
223
- }
194
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge] }
224
195
 
225
196
  # @!attribute update_spend_threshold_configuration
226
197
  #
@@ -233,11 +204,9 @@ module MetronomeSDK
233
204
  #
234
205
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription>, nil]
235
206
  optional :update_subscriptions,
236
- -> {
237
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription]
238
- }
207
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription] }
239
208
 
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: {})
209
+ # @!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, uniqueness_key: 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: {})
241
210
  # Some parameter documentations has been truncated, see
242
211
  # {MetronomeSDK::Models::V2::ContractEditParams} for more details.
243
212
  #
@@ -253,7 +222,7 @@ module MetronomeSDK
253
222
  #
254
223
  # @param add_overrides [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride>]
255
224
  #
256
- # @param add_prepaid_balance_threshold_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration]
225
+ # @param add_prepaid_balance_threshold_configuration [MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2]
257
226
  #
258
227
  # @param add_professional_services [Array<MetronomeSDK::Models::V2::ContractEditParams::AddProfessionalService>] This field's availability is dependent on your client's configuration.
259
228
  #
@@ -265,7 +234,7 @@ module MetronomeSDK
265
234
  #
266
235
  # @param add_scheduled_charges [Array<MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge>]
267
236
  #
268
- # @param add_spend_threshold_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration]
237
+ # @param add_spend_threshold_configuration [MetronomeSDK::Models::SpendThresholdConfigurationV2]
269
238
  #
270
239
  # @param add_subscriptions [Array<MetronomeSDK::Models::V2::ContractEditParams::AddSubscription>] Optional list of [subscriptions](https://docs.metronome.com/manage-product-acces
271
240
  #
@@ -279,6 +248,8 @@ module MetronomeSDK
279
248
  #
280
249
  # @param remove_overrides [Array<MetronomeSDK::Models::V2::ContractEditParams::RemoveOverride>] IDs of overrides to remove
281
250
  #
251
+ # @param uniqueness_key [String] Optional uniqueness key to prevent duplicate contract edits.
252
+ #
282
253
  # @param update_commits [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit>]
283
254
  #
284
255
  # @param update_contract_end_date [Time, nil] RFC 3339 timestamp indicating when the contract will end (exclusive).
@@ -343,6 +314,7 @@ module MetronomeSDK
343
314
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
344
315
 
345
316
  # @!attribute custom_fields
317
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
346
318
  #
347
319
  # @return [Hash{Symbol=>String}, nil]
348
320
  optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
@@ -356,9 +328,8 @@ module MetronomeSDK
356
328
  # @!attribute hierarchy_configuration
357
329
  # Optional configuration for commit hierarchy access control
358
330
  #
359
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration, nil]
360
- optional :hierarchy_configuration,
361
- -> { MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration }
331
+ # @return [MetronomeSDK::Models::CommitHierarchyConfiguration, nil]
332
+ optional :hierarchy_configuration, -> { MetronomeSDK::CommitHierarchyConfiguration }
362
333
 
363
334
  # @!attribute invoice_schedule
364
335
  # Required for "POSTPAID" commits: the true up invoice will be generated at this
@@ -385,10 +356,7 @@ module MetronomeSDK
385
356
  # optionally payment gate this commit
386
357
  #
387
358
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig, nil]
388
- optional :payment_gate_config,
389
- -> {
390
- MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig
391
- }
359
+ optional :payment_gate_config, -> { MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig }
392
360
 
393
361
  # @!attribute priority
394
362
  # If multiple commits are applicable, the one with the lower priority will apply
@@ -416,11 +384,8 @@ module MetronomeSDK
416
384
  # Instead, to target usage by product or product tag, pass those values in the
417
385
  # body of `specifiers`.
418
386
  #
419
- # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit::Specifier>, nil]
420
- optional :specifiers,
421
- -> {
422
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCommit::Specifier]
423
- }
387
+ # @return [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil]
388
+ optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifierInput] }
424
389
 
425
390
  # @!attribute temporary_id
426
391
  # A temporary ID for the commit that can be used to reference the commit for
@@ -445,11 +410,11 @@ module MetronomeSDK
445
410
  #
446
411
  # @param applicable_product_tags [Array<String>] Which tags the commit applies to. If applicable*product_ids, applicable_product*
447
412
  #
448
- # @param custom_fields [Hash{Symbol=>String}]
413
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
449
414
  #
450
415
  # @param description [String] Used only in UI/API. It is not exposed to end customers.
451
416
  #
452
- # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration] Optional configuration for commit hierarchy access control
417
+ # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for commit hierarchy access control
453
418
  #
454
419
  # @param invoice_schedule [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule] Required for "POSTPAID" commits: the true up invoice will be generated at this t
455
420
  #
@@ -465,7 +430,7 @@ module MetronomeSDK
465
430
  #
466
431
  # @param rollover_fraction [Float] Fraction of unused segments that will be rolled over. Must be between 0 and 1.
467
432
  #
468
- # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
433
+ # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifierInput>] List of filters that determine what kind of customer usage draws down a commit o
469
434
  #
470
435
  # @param temporary_id [String] A temporary ID for the commit that can be used to reference the commit for commi
471
436
 
@@ -486,9 +451,7 @@ module MetronomeSDK
486
451
  #
487
452
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit::AccessSchedule::ScheduleItem>]
488
453
  required :schedule_items,
489
- -> {
490
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCommit::AccessSchedule::ScheduleItem]
491
- }
454
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCommit::AccessSchedule::ScheduleItem] }
492
455
 
493
456
  # @!attribute credit_type_id
494
457
  #
@@ -530,117 +493,6 @@ module MetronomeSDK
530
493
  end
531
494
  end
532
495
 
533
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit#hierarchy_configuration
534
- class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
535
- # @!attribute child_access
536
- #
537
- # @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]
538
- required :child_access,
539
- union: -> {
540
- MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess
541
- }
542
-
543
- # @!method initialize(child_access:)
544
- # Optional configuration for commit hierarchy access control
545
- #
546
- # @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]
547
-
548
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration#child_access
549
- module ChildAccess
550
- extend MetronomeSDK::Internal::Type::Union
551
-
552
- variant -> {
553
- MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
554
- }
555
-
556
- variant -> {
557
- MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
558
- }
559
-
560
- variant -> {
561
- MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
562
- }
563
-
564
- class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
565
- # @!attribute type
566
- #
567
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
568
- required :type,
569
- enum: -> {
570
- MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
571
- }
572
-
573
- # @!method initialize(type:)
574
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
575
-
576
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
577
- module Type
578
- extend MetronomeSDK::Internal::Type::Enum
579
-
580
- ALL = :ALL
581
-
582
- # @!method self.values
583
- # @return [Array<Symbol>]
584
- end
585
- end
586
-
587
- class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
588
- # @!attribute type
589
- #
590
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
591
- required :type,
592
- enum: -> {
593
- MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
594
- }
595
-
596
- # @!method initialize(type:)
597
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
598
-
599
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
600
- module Type
601
- extend MetronomeSDK::Internal::Type::Enum
602
-
603
- NONE = :NONE
604
-
605
- # @!method self.values
606
- # @return [Array<Symbol>]
607
- end
608
- end
609
-
610
- class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
611
- # @!attribute contract_ids
612
- #
613
- # @return [Array<String>]
614
- required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
615
-
616
- # @!attribute type
617
- #
618
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
619
- required :type,
620
- enum: -> {
621
- MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
622
- }
623
-
624
- # @!method initialize(contract_ids:, type:)
625
- # @param contract_ids [Array<String>]
626
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
627
-
628
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
629
- module Type
630
- extend MetronomeSDK::Internal::Type::Enum
631
-
632
- CONTRACT_IDS = :CONTRACT_IDS
633
-
634
- # @!method self.values
635
- # @return [Array<Symbol>]
636
- end
637
- end
638
-
639
- # @!method self.variants
640
- # @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)]
641
- end
642
- end
643
-
644
496
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit#invoice_schedule
645
497
  class InvoiceSchedule < MetronomeSDK::Internal::Type::BaseModel
646
498
  # @!attribute credit_type_id
@@ -649,6 +501,13 @@ module MetronomeSDK
649
501
  # @return [String, nil]
650
502
  optional :credit_type_id, String
651
503
 
504
+ # @!attribute do_not_invoice
505
+ # This field is only applicable to commit invoice schedules. If true, this
506
+ # schedule will not generate an invoice.
507
+ #
508
+ # @return [Boolean, nil]
509
+ optional :do_not_invoice, MetronomeSDK::Internal::Type::Boolean
510
+
652
511
  # @!attribute recurring_schedule
653
512
  # Enter the unit price and quantity for the charge or instead only send the
654
513
  # amount. If amount is sent, the unit price is assumed to be the amount and
@@ -656,20 +515,16 @@ module MetronomeSDK
656
515
  #
657
516
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule, nil]
658
517
  optional :recurring_schedule,
659
- -> {
660
- MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule
661
- }
518
+ -> { MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule }
662
519
 
663
520
  # @!attribute schedule_items
664
521
  # Either provide amount or provide both unit_price and quantity.
665
522
  #
666
523
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::ScheduleItem>, nil]
667
524
  optional :schedule_items,
668
- -> {
669
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::ScheduleItem]
670
- }
525
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::ScheduleItem] }
671
526
 
672
- # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
527
+ # @!method initialize(credit_type_id: nil, do_not_invoice: nil, recurring_schedule: nil, schedule_items: nil)
673
528
  # Some parameter documentations has been truncated, see
674
529
  # {MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule} for
675
530
  # more details.
@@ -681,6 +536,8 @@ module MetronomeSDK
681
536
  #
682
537
  # @param credit_type_id [String] Defaults to USD (cents) if not passed.
683
538
  #
539
+ # @param do_not_invoice [Boolean] This field is only applicable to commit invoice schedules. If true, this schedul
540
+ #
684
541
  # @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
685
542
  #
686
543
  # @param schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
@@ -691,9 +548,7 @@ module MetronomeSDK
691
548
  #
692
549
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::AmountDistribution]
693
550
  required :amount_distribution,
694
- enum: -> {
695
- MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::AmountDistribution
696
- }
551
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::AmountDistribution }
697
552
 
698
553
  # @!attribute ending_before
699
554
  # RFC 3339 timestamp (exclusive).
@@ -705,9 +560,7 @@ module MetronomeSDK
705
560
  #
706
561
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::Frequency]
707
562
  required :frequency,
708
- enum: -> {
709
- MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::Frequency
710
- }
563
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::Frequency }
711
564
 
712
565
  # @!attribute starting_at
713
566
  # RFC 3339 timestamp (inclusive).
@@ -845,18 +698,14 @@ module MetronomeSDK
845
698
  #
846
699
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::PaymentGateType]
847
700
  required :payment_gate_type,
848
- enum: -> {
849
- MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::PaymentGateType
850
- }
701
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::PaymentGateType }
851
702
 
852
703
  # @!attribute precalculated_tax_config
853
704
  # Only applicable if using PRECALCULATED as your tax type.
854
705
  #
855
706
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::PrecalculatedTaxConfig, nil]
856
707
  optional :precalculated_tax_config,
857
- -> {
858
- MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::PrecalculatedTaxConfig
859
- }
708
+ -> { MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::PrecalculatedTaxConfig }
860
709
 
861
710
  # @!attribute stripe_config
862
711
  # Only applicable if using STRIPE as your payment gateway type.
@@ -941,9 +790,7 @@ module MetronomeSDK
941
790
  #
942
791
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::PaymentType]
943
792
  required :payment_type,
944
- enum: -> {
945
- MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::PaymentType
946
- }
793
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::PaymentType }
947
794
 
948
795
  # @!attribute invoice_metadata
949
796
  # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
@@ -952,7 +799,20 @@ module MetronomeSDK
952
799
  # @return [Hash{Symbol=>String}, nil]
953
800
  optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
954
801
 
955
- # @!method initialize(payment_type:, invoice_metadata: nil)
802
+ # @!attribute on_session_payment
803
+ # If true, the payment will be made assuming the customer is present (i.e. on
804
+ # session).
805
+ #
806
+ # If false, the payment will be made assuming the customer is not present (i.e.
807
+ # off session). For cardholders from a country with an e-mandate requirement (e.g.
808
+ # India), the payment may be declined.
809
+ #
810
+ # If left blank, will default to false.
811
+ #
812
+ # @return [Boolean, nil]
813
+ optional :on_session_payment, MetronomeSDK::Internal::Type::Boolean
814
+
815
+ # @!method initialize(payment_type:, invoice_metadata: nil, on_session_payment: nil)
956
816
  # Some parameter documentations has been truncated, see
957
817
  # {MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig}
958
818
  # for more details.
@@ -962,6 +822,8 @@ module MetronomeSDK
962
822
  # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
963
823
  #
964
824
  # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
825
+ #
826
+ # @param on_session_payment [Boolean] If true, the payment will be made assuming the customer is present (i.e. on sess
965
827
 
966
828
  # If left blank, will default to INVOICE
967
829
  #
@@ -1005,44 +867,6 @@ module MetronomeSDK
1005
867
  # @!method self.values
1006
868
  # @return [Array<Symbol>]
1007
869
  end
1008
-
1009
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
1010
- # @!attribute presentation_group_values
1011
- #
1012
- # @return [Hash{Symbol=>String}, nil]
1013
- optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1014
-
1015
- # @!attribute pricing_group_values
1016
- #
1017
- # @return [Hash{Symbol=>String}, nil]
1018
- optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1019
-
1020
- # @!attribute product_id
1021
- # If provided, the specifier will only apply to the product with the specified ID.
1022
- #
1023
- # @return [String, nil]
1024
- optional :product_id, String
1025
-
1026
- # @!attribute product_tags
1027
- # If provided, the specifier will only apply to products with all the specified
1028
- # tags.
1029
- #
1030
- # @return [Array<String>, nil]
1031
- optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1032
-
1033
- # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
1034
- # Some parameter documentations has been truncated, see
1035
- # {MetronomeSDK::Models::V2::ContractEditParams::AddCommit::Specifier} for more
1036
- # details.
1037
- #
1038
- # @param presentation_group_values [Hash{Symbol=>String}]
1039
- #
1040
- # @param pricing_group_values [Hash{Symbol=>String}]
1041
- #
1042
- # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
1043
- #
1044
- # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
1045
- end
1046
870
  end
1047
871
 
1048
872
  class AddCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -1072,6 +896,7 @@ module MetronomeSDK
1072
896
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1073
897
 
1074
898
  # @!attribute custom_fields
899
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
1075
900
  #
1076
901
  # @return [Hash{Symbol=>String}, nil]
1077
902
  optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
@@ -1085,9 +910,8 @@ module MetronomeSDK
1085
910
  # @!attribute hierarchy_configuration
1086
911
  # Optional configuration for credit hierarchy access control
1087
912
  #
1088
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration, nil]
1089
- optional :hierarchy_configuration,
1090
- -> { MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration }
913
+ # @return [MetronomeSDK::Models::CommitHierarchyConfiguration, nil]
914
+ optional :hierarchy_configuration, -> { MetronomeSDK::CommitHierarchyConfiguration }
1091
915
 
1092
916
  # @!attribute name
1093
917
  # displayed on invoices
@@ -1121,11 +945,8 @@ module MetronomeSDK
1121
945
  # Instead, to target usage by product or product tag, pass those values in the
1122
946
  # body of `specifiers`.
1123
947
  #
1124
- # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCredit::Specifier>, nil]
1125
- optional :specifiers,
1126
- -> {
1127
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCredit::Specifier]
1128
- }
948
+ # @return [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil]
949
+ optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifierInput] }
1129
950
 
1130
951
  # @!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)
1131
952
  # Some parameter documentations has been truncated, see
@@ -1139,11 +960,11 @@ module MetronomeSDK
1139
960
  #
1140
961
  # @param applicable_product_tags [Array<String>] Which tags the credit applies to. If both applicable*product_ids and applicable*
1141
962
  #
1142
- # @param custom_fields [Hash{Symbol=>String}]
963
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
1143
964
  #
1144
965
  # @param description [String] Used only in UI/API. It is not exposed to end customers.
1145
966
  #
1146
- # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration] Optional configuration for credit hierarchy access control
967
+ # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for credit hierarchy access control
1147
968
  #
1148
969
  # @param name [String] displayed on invoices
1149
970
  #
@@ -1153,7 +974,7 @@ module MetronomeSDK
1153
974
  #
1154
975
  # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::RateType]
1155
976
  #
1156
- # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCredit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
977
+ # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifierInput>] List of filters that determine what kind of customer usage draws down a commit o
1157
978
 
1158
979
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit#access_schedule
1159
980
  class AccessSchedule < MetronomeSDK::Internal::Type::BaseModel
@@ -1161,9 +982,7 @@ module MetronomeSDK
1161
982
  #
1162
983
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCredit::AccessSchedule::ScheduleItem>]
1163
984
  required :schedule_items,
1164
- -> {
1165
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCredit::AccessSchedule::ScheduleItem]
1166
- }
985
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCredit::AccessSchedule::ScheduleItem] }
1167
986
 
1168
987
  # @!attribute credit_type_id
1169
988
  #
@@ -1203,117 +1022,6 @@ module MetronomeSDK
1203
1022
  end
1204
1023
  end
1205
1024
 
1206
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit#hierarchy_configuration
1207
- class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
1208
- # @!attribute child_access
1209
- #
1210
- # @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]
1211
- required :child_access,
1212
- union: -> {
1213
- MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess
1214
- }
1215
-
1216
- # @!method initialize(child_access:)
1217
- # Optional configuration for credit hierarchy access control
1218
- #
1219
- # @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]
1220
-
1221
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration#child_access
1222
- module ChildAccess
1223
- extend MetronomeSDK::Internal::Type::Union
1224
-
1225
- variant -> {
1226
- MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
1227
- }
1228
-
1229
- variant -> {
1230
- MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
1231
- }
1232
-
1233
- variant -> {
1234
- MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
1235
- }
1236
-
1237
- class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
1238
- # @!attribute type
1239
- #
1240
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
1241
- required :type,
1242
- enum: -> {
1243
- MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
1244
- }
1245
-
1246
- # @!method initialize(type:)
1247
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
1248
-
1249
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
1250
- module Type
1251
- extend MetronomeSDK::Internal::Type::Enum
1252
-
1253
- ALL = :ALL
1254
-
1255
- # @!method self.values
1256
- # @return [Array<Symbol>]
1257
- end
1258
- end
1259
-
1260
- class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
1261
- # @!attribute type
1262
- #
1263
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
1264
- required :type,
1265
- enum: -> {
1266
- MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
1267
- }
1268
-
1269
- # @!method initialize(type:)
1270
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
1271
-
1272
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
1273
- module Type
1274
- extend MetronomeSDK::Internal::Type::Enum
1275
-
1276
- NONE = :NONE
1277
-
1278
- # @!method self.values
1279
- # @return [Array<Symbol>]
1280
- end
1281
- end
1282
-
1283
- class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
1284
- # @!attribute contract_ids
1285
- #
1286
- # @return [Array<String>]
1287
- required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1288
-
1289
- # @!attribute type
1290
- #
1291
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
1292
- required :type,
1293
- enum: -> {
1294
- MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
1295
- }
1296
-
1297
- # @!method initialize(contract_ids:, type:)
1298
- # @param contract_ids [Array<String>]
1299
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
1300
-
1301
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
1302
- module Type
1303
- extend MetronomeSDK::Internal::Type::Enum
1304
-
1305
- CONTRACT_IDS = :CONTRACT_IDS
1306
-
1307
- # @!method self.values
1308
- # @return [Array<Symbol>]
1309
- end
1310
- end
1311
-
1312
- # @!method self.variants
1313
- # @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)]
1314
- end
1315
- end
1316
-
1317
1025
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit#rate_type
1318
1026
  module RateType
1319
1027
  extend MetronomeSDK::Internal::Type::Enum
@@ -1324,44 +1032,6 @@ module MetronomeSDK
1324
1032
  # @!method self.values
1325
1033
  # @return [Array<Symbol>]
1326
1034
  end
1327
-
1328
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
1329
- # @!attribute presentation_group_values
1330
- #
1331
- # @return [Hash{Symbol=>String}, nil]
1332
- optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1333
-
1334
- # @!attribute pricing_group_values
1335
- #
1336
- # @return [Hash{Symbol=>String}, nil]
1337
- optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1338
-
1339
- # @!attribute product_id
1340
- # If provided, the specifier will only apply to the product with the specified ID.
1341
- #
1342
- # @return [String, nil]
1343
- optional :product_id, String
1344
-
1345
- # @!attribute product_tags
1346
- # If provided, the specifier will only apply to products with all the specified
1347
- # tags.
1348
- #
1349
- # @return [Array<String>, nil]
1350
- optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1351
-
1352
- # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
1353
- # Some parameter documentations has been truncated, see
1354
- # {MetronomeSDK::Models::V2::ContractEditParams::AddCredit::Specifier} for more
1355
- # details.
1356
- #
1357
- # @param presentation_group_values [Hash{Symbol=>String}]
1358
- #
1359
- # @param pricing_group_values [Hash{Symbol=>String}]
1360
- #
1361
- # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
1362
- #
1363
- # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
1364
- end
1365
1035
  end
1366
1036
 
1367
1037
  class AddDiscount < MetronomeSDK::Internal::Type::BaseModel
@@ -1377,6 +1047,7 @@ module MetronomeSDK
1377
1047
  required :schedule, -> { MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule }
1378
1048
 
1379
1049
  # @!attribute custom_fields
1050
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
1380
1051
  #
1381
1052
  # @return [Hash{Symbol=>String}, nil]
1382
1053
  optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
@@ -1398,7 +1069,7 @@ module MetronomeSDK
1398
1069
  #
1399
1070
  # @param schedule [MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule] Must provide either schedule_items or recurring_schedule.
1400
1071
  #
1401
- # @param custom_fields [Hash{Symbol=>String}]
1072
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
1402
1073
  #
1403
1074
  # @param name [String] displayed on invoices
1404
1075
  #
@@ -1412,6 +1083,13 @@ module MetronomeSDK
1412
1083
  # @return [String, nil]
1413
1084
  optional :credit_type_id, String
1414
1085
 
1086
+ # @!attribute do_not_invoice
1087
+ # This field is only applicable to commit invoice schedules. If true, this
1088
+ # schedule will not generate an invoice.
1089
+ #
1090
+ # @return [Boolean, nil]
1091
+ optional :do_not_invoice, MetronomeSDK::Internal::Type::Boolean
1092
+
1415
1093
  # @!attribute recurring_schedule
1416
1094
  # Enter the unit price and quantity for the charge or instead only send the
1417
1095
  # amount. If amount is sent, the unit price is assumed to be the amount and
@@ -1426,11 +1104,9 @@ module MetronomeSDK
1426
1104
  #
1427
1105
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::ScheduleItem>, nil]
1428
1106
  optional :schedule_items,
1429
- -> {
1430
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::ScheduleItem]
1431
- }
1107
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::ScheduleItem] }
1432
1108
 
1433
- # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
1109
+ # @!method initialize(credit_type_id: nil, do_not_invoice: nil, recurring_schedule: nil, schedule_items: nil)
1434
1110
  # Some parameter documentations has been truncated, see
1435
1111
  # {MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule} for more
1436
1112
  # details.
@@ -1439,6 +1115,8 @@ module MetronomeSDK
1439
1115
  #
1440
1116
  # @param credit_type_id [String] Defaults to USD (cents) if not passed.
1441
1117
  #
1118
+ # @param do_not_invoice [Boolean] This field is only applicable to commit invoice schedules. If true, this schedul
1119
+ #
1442
1120
  # @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
1443
1121
  #
1444
1122
  # @param schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
@@ -1449,9 +1127,7 @@ module MetronomeSDK
1449
1127
  #
1450
1128
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::AmountDistribution]
1451
1129
  required :amount_distribution,
1452
- enum: -> {
1453
- MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::AmountDistribution
1454
- }
1130
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::AmountDistribution }
1455
1131
 
1456
1132
  # @!attribute ending_before
1457
1133
  # RFC 3339 timestamp (exclusive).
@@ -1463,9 +1139,7 @@ module MetronomeSDK
1463
1139
  #
1464
1140
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::Frequency]
1465
1141
  required :frequency,
1466
- enum: -> {
1467
- MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::Frequency
1468
- }
1142
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::Frequency }
1469
1143
 
1470
1144
  # @!attribute starting_at
1471
1145
  # RFC 3339 timestamp (inclusive).
@@ -1638,9 +1312,7 @@ module MetronomeSDK
1638
1312
  #
1639
1313
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier>, nil]
1640
1314
  optional :override_specifiers,
1641
- -> {
1642
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddOverride::OverrideSpecifier]
1643
- }
1315
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddOverride::OverrideSpecifier] }
1644
1316
 
1645
1317
  # @!attribute overwrite_rate
1646
1318
  # Required for OVERWRITE type.
@@ -1676,9 +1348,7 @@ module MetronomeSDK
1676
1348
  #
1677
1349
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride::Tier>, nil]
1678
1350
  optional :tiers,
1679
- -> {
1680
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddOverride::Tier]
1681
- }
1351
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddOverride::Tier] }
1682
1352
 
1683
1353
  # @!attribute type
1684
1354
  # Overwrites are prioritized over multipliers and tiered overrides.
@@ -1721,9 +1391,7 @@ module MetronomeSDK
1721
1391
  #
1722
1392
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier::BillingFrequency, nil]
1723
1393
  optional :billing_frequency,
1724
- enum: -> {
1725
- MetronomeSDK::V2::ContractEditParams::AddOverride::OverrideSpecifier::BillingFrequency
1726
- }
1394
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddOverride::OverrideSpecifier::BillingFrequency }
1727
1395
 
1728
1396
  # @!attribute commit_ids
1729
1397
  # If provided, the override will only apply to the specified commits. Can only be
@@ -1942,455 +1610,118 @@ module MetronomeSDK
1942
1610
  end
1943
1611
  end
1944
1612
 
1945
- class AddPrepaidBalanceThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
1946
- # @!attribute commit
1613
+ class AddProfessionalService < MetronomeSDK::Internal::Type::BaseModel
1614
+ # @!attribute max_amount
1615
+ # Maximum amount for the term.
1947
1616
  #
1948
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit]
1949
- required :commit,
1950
- -> {
1951
- MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit
1952
- }
1617
+ # @return [Float]
1618
+ required :max_amount, Float
1953
1619
 
1954
- # @!attribute is_enabled
1955
- # When set to false, the contract will not be evaluated against the
1956
- # threshold_amount. Toggling to true will result an immediate evaluation,
1957
- # regardless of prior state.
1620
+ # @!attribute product_id
1958
1621
  #
1959
- # @return [Boolean]
1960
- required :is_enabled, MetronomeSDK::Internal::Type::Boolean
1622
+ # @return [String]
1623
+ required :product_id, String
1961
1624
 
1962
- # @!attribute payment_gate_config
1625
+ # @!attribute quantity
1626
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
1627
+ # amount.
1963
1628
  #
1964
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig]
1965
- required :payment_gate_config,
1966
- -> {
1967
- MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig
1968
- }
1629
+ # @return [Float]
1630
+ required :quantity, Float
1969
1631
 
1970
- # @!attribute recharge_to_amount
1971
- # Specify the amount the balance should be recharged to.
1632
+ # @!attribute unit_price
1633
+ # Unit price for the charge. Will be multiplied by quantity to determine the
1634
+ # amount and must be specified.
1972
1635
  #
1973
1636
  # @return [Float]
1974
- required :recharge_to_amount, Float
1637
+ required :unit_price, Float
1975
1638
 
1976
- # @!attribute threshold_amount
1977
- # Specify the threshold amount for the contract. Each time the contract's balance
1978
- # lowers to this amount, a threshold charge will be initiated.
1639
+ # @!attribute custom_fields
1640
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
1979
1641
  #
1980
- # @return [Float]
1981
- required :threshold_amount, Float
1642
+ # @return [Hash{Symbol=>String}, nil]
1643
+ optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
1982
1644
 
1983
- # @!attribute custom_credit_type_id
1984
- # If provided, the threshold, recharge-to amount, and the resulting threshold
1985
- # commit amount will be in terms of this credit type instead of the fiat currency.
1645
+ # @!attribute description
1646
+ #
1647
+ # @return [String, nil]
1648
+ optional :description, String
1649
+
1650
+ # @!attribute netsuite_sales_order_id
1651
+ # This field's availability is dependent on your client's configuration.
1986
1652
  #
1987
1653
  # @return [String, nil]
1988
- optional :custom_credit_type_id, String
1654
+ optional :netsuite_sales_order_id, String
1989
1655
 
1990
- # @!method initialize(commit:, is_enabled:, payment_gate_config:, recharge_to_amount:, threshold_amount:, custom_credit_type_id: nil)
1656
+ # @!method initialize(max_amount:, product_id:, quantity:, unit_price:, custom_fields: nil, description: nil, netsuite_sales_order_id: nil)
1991
1657
  # Some parameter documentations has been truncated, see
1992
- # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration}
1993
- # for more details.
1658
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddProfessionalService} for more
1659
+ # details.
1994
1660
  #
1995
- # @param commit [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit]
1661
+ # @param max_amount [Float] Maximum amount for the term.
1996
1662
  #
1997
- # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
1663
+ # @param product_id [String]
1664
+ #
1665
+ # @param quantity [Float] Quantity for the charge. Will be multiplied by unit_price to determine the amoun
1998
1666
  #
1999
- # @param payment_gate_config [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig]
1667
+ # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
2000
1668
  #
2001
- # @param recharge_to_amount [Float] Specify the amount the balance should be recharged to.
1669
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
2002
1670
  #
2003
- # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's balance
1671
+ # @param description [String]
2004
1672
  #
2005
- # @param custom_credit_type_id [String] If provided, the threshold, recharge-to amount, and the resulting threshold comm
1673
+ # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
1674
+ end
2006
1675
 
2007
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration#commit
2008
- class Commit < MetronomeSDK::Internal::Type::BaseModel
2009
- # @!attribute product_id
2010
- # The commit product that will be used to generate the line item for commit
2011
- # payment.
2012
- #
2013
- # @return [String]
2014
- required :product_id, String
1676
+ class AddRecurringCommit < MetronomeSDK::Internal::Type::BaseModel
1677
+ # @!attribute access_amount
1678
+ # The amount of commit to grant.
1679
+ #
1680
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::AccessAmount]
1681
+ required :access_amount, -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::AccessAmount }
2015
1682
 
2016
- # @!attribute applicable_product_ids
2017
- # Which products the threshold commit applies to. If applicable_product_ids,
2018
- # applicable_product_tags or specifiers are not provided, the commit applies to
2019
- # all products.
2020
- #
2021
- # @return [Array<String>, nil]
2022
- optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1683
+ # @!attribute commit_duration
1684
+ # Defines the length of the access schedule for each created commit/credit. The
1685
+ # value represents the number of units. Unit defaults to "PERIODS", where the
1686
+ # length of a period is determined by the recurrence_frequency.
1687
+ #
1688
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration]
1689
+ required :commit_duration, -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::CommitDuration }
2023
1690
 
2024
- # @!attribute applicable_product_tags
2025
- # Which tags the threshold commit applies to. If applicable_product_ids,
2026
- # applicable_product_tags or specifiers are not provided, the commit applies to
2027
- # all products.
2028
- #
2029
- # @return [Array<String>, nil]
2030
- optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1691
+ # @!attribute priority
1692
+ # Will be passed down to the individual commits
1693
+ #
1694
+ # @return [Float]
1695
+ required :priority, Float
2031
1696
 
2032
- # @!attribute description
2033
- #
2034
- # @return [String, nil]
2035
- optional :description, String
1697
+ # @!attribute product_id
1698
+ #
1699
+ # @return [String]
1700
+ required :product_id, String
2036
1701
 
2037
- # @!attribute name
2038
- # Specify the name of the line item for the threshold charge. If left blank, it
2039
- # will default to the commit product name.
2040
- #
2041
- # @return [String, nil]
2042
- optional :name, String
1702
+ # @!attribute starting_at
1703
+ # determines the start time for the first commit
1704
+ #
1705
+ # @return [Time]
1706
+ required :starting_at, Time
2043
1707
 
2044
- # @!attribute specifiers
2045
- # List of filters that determine what kind of customer usage draws down a commit
2046
- # or credit. A customer's usage needs to meet the condition of at least one of the
2047
- # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2048
- # be used together with `applicable_product_ids` or `applicable_product_tags`.
2049
- # Instead, to target usage by product or product tag, pass those values in the
2050
- # body of `specifiers`.
2051
- #
2052
- # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit::Specifier>, nil]
2053
- optional :specifiers,
2054
- -> {
2055
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit::Specifier]
2056
- }
1708
+ # @!attribute applicable_product_ids
1709
+ # Will be passed down to the individual commits
1710
+ #
1711
+ # @return [Array<String>, nil]
1712
+ optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
2057
1713
 
2058
- # @!method initialize(product_id:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, name: nil, specifiers: nil)
2059
- # Some parameter documentations has been truncated, see
2060
- # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit}
2061
- # for more details.
2062
- #
2063
- # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
2064
- #
2065
- # @param applicable_product_ids [Array<String>] Which products the threshold commit applies to. If applicable_product_ids, appli
2066
- #
2067
- # @param applicable_product_tags [Array<String>] Which tags the threshold commit applies to. If applicable_product_ids, applicabl
2068
- #
2069
- # @param description [String]
2070
- #
2071
- # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
2072
- #
2073
- # @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
1714
+ # @!attribute applicable_product_tags
1715
+ # Will be passed down to the individual commits
1716
+ #
1717
+ # @return [Array<String>, nil]
1718
+ optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
2074
1719
 
2075
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
2076
- # @!attribute presentation_group_values
2077
- #
2078
- # @return [Hash{Symbol=>String}, nil]
2079
- optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2080
-
2081
- # @!attribute pricing_group_values
2082
- #
2083
- # @return [Hash{Symbol=>String}, nil]
2084
- optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2085
-
2086
- # @!attribute product_id
2087
- # If provided, the specifier will only apply to the product with the specified ID.
2088
- #
2089
- # @return [String, nil]
2090
- optional :product_id, String
2091
-
2092
- # @!attribute product_tags
2093
- # If provided, the specifier will only apply to products with all the specified
2094
- # tags.
2095
- #
2096
- # @return [Array<String>, nil]
2097
- optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
2098
-
2099
- # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
2100
- # Some parameter documentations has been truncated, see
2101
- # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit::Specifier}
2102
- # for more details.
2103
- #
2104
- # @param presentation_group_values [Hash{Symbol=>String}]
2105
- #
2106
- # @param pricing_group_values [Hash{Symbol=>String}]
2107
- #
2108
- # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
2109
- #
2110
- # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
2111
- end
2112
- end
2113
-
2114
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration#payment_gate_config
2115
- class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
2116
- # @!attribute payment_gate_type
2117
- # Gate access to the commit balance based on successful collection of payment.
2118
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
2119
- # facilitate payment using your own payment integration. Select NONE if you do not
2120
- # wish to payment gate the commit balance.
2121
- #
2122
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType]
2123
- required :payment_gate_type,
2124
- enum: -> {
2125
- MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType
2126
- }
2127
-
2128
- # @!attribute precalculated_tax_config
2129
- # Only applicable if using PRECALCULATED as your tax type.
2130
- #
2131
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig, nil]
2132
- optional :precalculated_tax_config,
2133
- -> {
2134
- MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
2135
- }
2136
-
2137
- # @!attribute stripe_config
2138
- # Only applicable if using STRIPE as your payment gateway type.
2139
- #
2140
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
2141
- optional :stripe_config,
2142
- -> {
2143
- MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig
2144
- }
2145
-
2146
- # @!attribute tax_type
2147
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
2148
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
2149
- # will default to NONE.
2150
- #
2151
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType, nil]
2152
- optional :tax_type,
2153
- enum: -> {
2154
- MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType
2155
- }
2156
-
2157
- # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
2158
- # Some parameter documentations has been truncated, see
2159
- # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig}
2160
- # for more details.
2161
- #
2162
- # @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
2163
- #
2164
- # @param precalculated_tax_config [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
2165
- #
2166
- # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gateway type.
2167
- #
2168
- # @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
2169
-
2170
- # Gate access to the commit balance based on successful collection of payment.
2171
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
2172
- # facilitate payment using your own payment integration. Select NONE if you do not
2173
- # wish to payment gate the commit balance.
2174
- #
2175
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig#payment_gate_type
2176
- module PaymentGateType
2177
- extend MetronomeSDK::Internal::Type::Enum
2178
-
2179
- NONE = :NONE
2180
- STRIPE = :STRIPE
2181
- EXTERNAL = :EXTERNAL
2182
-
2183
- # @!method self.values
2184
- # @return [Array<Symbol>]
2185
- end
2186
-
2187
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig#precalculated_tax_config
2188
- class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
2189
- # @!attribute tax_amount
2190
- # Amount of tax to be applied. This should be in the same currency and
2191
- # denomination as the commit's invoice schedule
2192
- #
2193
- # @return [Float]
2194
- required :tax_amount, Float
2195
-
2196
- # @!attribute tax_name
2197
- # Name of the tax to be applied. This may be used in an invoice line item
2198
- # description.
2199
- #
2200
- # @return [String, nil]
2201
- optional :tax_name, String
2202
-
2203
- # @!method initialize(tax_amount:, tax_name: nil)
2204
- # Some parameter documentations has been truncated, see
2205
- # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig}
2206
- # for more details.
2207
- #
2208
- # Only applicable if using PRECALCULATED as your tax type.
2209
- #
2210
- # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
2211
- #
2212
- # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
2213
- end
2214
-
2215
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig#stripe_config
2216
- class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
2217
- # @!attribute payment_type
2218
- # If left blank, will default to INVOICE
2219
- #
2220
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
2221
- required :payment_type,
2222
- enum: -> {
2223
- MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
2224
- }
2225
-
2226
- # @!attribute invoice_metadata
2227
- # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
2228
- # your payment type.
2229
- #
2230
- # @return [Hash{Symbol=>String}, nil]
2231
- optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
2232
-
2233
- # @!method initialize(payment_type:, invoice_metadata: nil)
2234
- # Some parameter documentations has been truncated, see
2235
- # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig}
2236
- # for more details.
2237
- #
2238
- # Only applicable if using STRIPE as your payment gateway type.
2239
- #
2240
- # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
2241
- #
2242
- # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
2243
-
2244
- # If left blank, will default to INVOICE
2245
- #
2246
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
2247
- module PaymentType
2248
- extend MetronomeSDK::Internal::Type::Enum
2249
-
2250
- INVOICE = :INVOICE
2251
- PAYMENT_INTENT = :PAYMENT_INTENT
2252
-
2253
- # @!method self.values
2254
- # @return [Array<Symbol>]
2255
- end
2256
- end
2257
-
2258
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
2259
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
2260
- # will default to NONE.
2261
- #
2262
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig#tax_type
2263
- module TaxType
2264
- extend MetronomeSDK::Internal::Type::Enum
2265
-
2266
- NONE = :NONE
2267
- STRIPE = :STRIPE
2268
- ANROK = :ANROK
2269
- PRECALCULATED = :PRECALCULATED
2270
-
2271
- # @!method self.values
2272
- # @return [Array<Symbol>]
2273
- end
2274
- end
2275
- end
2276
-
2277
- class AddProfessionalService < MetronomeSDK::Internal::Type::BaseModel
2278
- # @!attribute max_amount
2279
- # Maximum amount for the term.
2280
- #
2281
- # @return [Float]
2282
- required :max_amount, Float
2283
-
2284
- # @!attribute product_id
2285
- #
2286
- # @return [String]
2287
- required :product_id, String
2288
-
2289
- # @!attribute quantity
2290
- # Quantity for the charge. Will be multiplied by unit_price to determine the
2291
- # amount.
2292
- #
2293
- # @return [Float]
2294
- required :quantity, Float
2295
-
2296
- # @!attribute unit_price
2297
- # Unit price for the charge. Will be multiplied by quantity to determine the
2298
- # amount and must be specified.
2299
- #
2300
- # @return [Float]
2301
- required :unit_price, Float
2302
-
2303
- # @!attribute custom_fields
2304
- #
2305
- # @return [Hash{Symbol=>String}, nil]
2306
- optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
2307
-
2308
- # @!attribute description
2309
- #
2310
- # @return [String, nil]
2311
- optional :description, String
2312
-
2313
- # @!attribute netsuite_sales_order_id
2314
- # This field's availability is dependent on your client's configuration.
2315
- #
2316
- # @return [String, nil]
2317
- optional :netsuite_sales_order_id, String
2318
-
2319
- # @!method initialize(max_amount:, product_id:, quantity:, unit_price:, custom_fields: nil, description: nil, netsuite_sales_order_id: nil)
2320
- # Some parameter documentations has been truncated, see
2321
- # {MetronomeSDK::Models::V2::ContractEditParams::AddProfessionalService} for more
2322
- # details.
2323
- #
2324
- # @param max_amount [Float] Maximum amount for the term.
2325
- #
2326
- # @param product_id [String]
2327
- #
2328
- # @param quantity [Float] Quantity for the charge. Will be multiplied by unit_price to determine the amoun
2329
- #
2330
- # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
2331
- #
2332
- # @param custom_fields [Hash{Symbol=>String}]
2333
- #
2334
- # @param description [String]
2335
- #
2336
- # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
2337
- end
2338
-
2339
- class AddRecurringCommit < MetronomeSDK::Internal::Type::BaseModel
2340
- # @!attribute access_amount
2341
- # The amount of commit to grant.
2342
- #
2343
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::AccessAmount]
2344
- required :access_amount,
2345
- -> {
2346
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::AccessAmount
2347
- }
2348
-
2349
- # @!attribute commit_duration
2350
- # Defines the length of the access schedule for each created commit/credit. The
2351
- # value represents the number of units. Unit defaults to "PERIODS", where the
2352
- # length of a period is determined by the recurrence_frequency.
2353
- #
2354
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration]
2355
- required :commit_duration,
2356
- -> {
2357
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::CommitDuration
2358
- }
2359
-
2360
- # @!attribute priority
2361
- # Will be passed down to the individual commits
2362
- #
2363
- # @return [Float]
2364
- required :priority, Float
2365
-
2366
- # @!attribute product_id
2367
- #
2368
- # @return [String]
2369
- required :product_id, String
2370
-
2371
- # @!attribute starting_at
2372
- # determines the start time for the first commit
2373
- #
2374
- # @return [Time]
2375
- required :starting_at, Time
2376
-
2377
- # @!attribute applicable_product_ids
2378
- # Will be passed down to the individual commits
2379
- #
2380
- # @return [Array<String>, nil]
2381
- optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
2382
-
2383
- # @!attribute applicable_product_tags
2384
- # Will be passed down to the individual commits
2385
- #
2386
- # @return [Array<String>, nil]
2387
- optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
2388
-
2389
- # @!attribute description
2390
- # Will be passed down to the individual commits
2391
- #
2392
- # @return [String, nil]
2393
- optional :description, String
1720
+ # @!attribute description
1721
+ # Will be passed down to the individual commits
1722
+ #
1723
+ # @return [String, nil]
1724
+ optional :description, String
2394
1725
 
2395
1726
  # @!attribute ending_before
2396
1727
  # Determines when the contract will stop creating recurring commits. optional
@@ -2401,18 +1732,14 @@ module MetronomeSDK
2401
1732
  # @!attribute hierarchy_configuration
2402
1733
  # Optional configuration for recurring credit hierarchy access control
2403
1734
  #
2404
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration, nil]
2405
- optional :hierarchy_configuration,
2406
- -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration }
1735
+ # @return [MetronomeSDK::Models::CommitHierarchyConfiguration, nil]
1736
+ optional :hierarchy_configuration, -> { MetronomeSDK::CommitHierarchyConfiguration }
2407
1737
 
2408
1738
  # @!attribute invoice_amount
2409
1739
  # The amount the customer should be billed for the commit. Not required.
2410
1740
  #
2411
1741
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount, nil]
2412
- optional :invoice_amount,
2413
- -> {
2414
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount
2415
- }
1742
+ optional :invoice_amount, -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount }
2416
1743
 
2417
1744
  # @!attribute name
2418
1745
  # displayed on invoices. will be passed through to the individual commits
@@ -2431,10 +1758,7 @@ module MetronomeSDK
2431
1758
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
2432
1759
  #
2433
1760
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Proration, nil]
2434
- optional :proration,
2435
- enum: -> {
2436
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration
2437
- }
1761
+ optional :proration, enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration }
2438
1762
 
2439
1763
  # @!attribute rate_type
2440
1764
  # Whether the created commits will use the commit rate or list rate
@@ -2469,11 +1793,8 @@ module MetronomeSDK
2469
1793
  # Instead, to target usage by product or product tag, pass those values in the
2470
1794
  # body of `specifiers`.
2471
1795
  #
2472
- # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Specifier>, nil]
2473
- optional :specifiers,
2474
- -> {
2475
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Specifier]
2476
- }
1796
+ # @return [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil]
1797
+ optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifierInput] }
2477
1798
 
2478
1799
  # @!attribute subscription_config
2479
1800
  # Attach a subscription to the recurring commit/credit.
@@ -2512,7 +1833,7 @@ module MetronomeSDK
2512
1833
  #
2513
1834
  # @param ending_before [Time] Determines when the contract will stop creating recurring commits. optional
2514
1835
  #
2515
- # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration] Optional configuration for recurring credit hierarchy access control
1836
+ # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for recurring credit hierarchy access control
2516
1837
  #
2517
1838
  # @param invoice_amount [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount] The amount the customer should be billed for the commit. Not required.
2518
1839
  #
@@ -2528,7 +1849,7 @@ module MetronomeSDK
2528
1849
  #
2529
1850
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
2530
1851
  #
2531
- # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
1852
+ # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifierInput>] List of filters that determine what kind of customer usage draws down a commit o
2532
1853
  #
2533
1854
  # @param subscription_config [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig] Attach a subscription to the recurring commit/credit.
2534
1855
  #
@@ -2547,8 +1868,8 @@ module MetronomeSDK
2547
1868
  required :unit_price, Float
2548
1869
 
2549
1870
  # @!attribute quantity
2550
- # This field is currently required. Upcoming recurring commit/credit configuration
2551
- # options will allow it to be optional.
1871
+ # This field is required unless a subscription is attached via
1872
+ # `subscription_config`.
2552
1873
  #
2553
1874
  # @return [Float, nil]
2554
1875
  optional :quantity, Float
@@ -2564,7 +1885,7 @@ module MetronomeSDK
2564
1885
  #
2565
1886
  # @param unit_price [Float]
2566
1887
  #
2567
- # @param quantity [Float] This field is currently required. Upcoming recurring commit/credit configuration
1888
+ # @param quantity [Float] This field is required unless a subscription is attached via `subscription_confi
2568
1889
  end
2569
1890
 
2570
1891
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#commit_duration
@@ -2578,9 +1899,7 @@ module MetronomeSDK
2578
1899
  #
2579
1900
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration::Unit, nil]
2580
1901
  optional :unit,
2581
- enum: -> {
2582
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::CommitDuration::Unit
2583
- }
1902
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::CommitDuration::Unit }
2584
1903
 
2585
1904
  # @!method initialize(value:, unit: nil)
2586
1905
  # Defines the length of the access schedule for each created commit/credit. The
@@ -2601,117 +1920,6 @@ module MetronomeSDK
2601
1920
  end
2602
1921
  end
2603
1922
 
2604
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#hierarchy_configuration
2605
- class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
2606
- # @!attribute child_access
2607
- #
2608
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
2609
- required :child_access,
2610
- union: -> {
2611
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess
2612
- }
2613
-
2614
- # @!method initialize(child_access:)
2615
- # Optional configuration for recurring credit hierarchy access control
2616
- #
2617
- # @param child_access [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
2618
-
2619
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration#child_access
2620
- module ChildAccess
2621
- extend MetronomeSDK::Internal::Type::Union
2622
-
2623
- variant -> {
2624
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
2625
- }
2626
-
2627
- variant -> {
2628
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
2629
- }
2630
-
2631
- variant -> {
2632
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
2633
- }
2634
-
2635
- class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
2636
- # @!attribute type
2637
- #
2638
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
2639
- required :type,
2640
- enum: -> {
2641
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
2642
- }
2643
-
2644
- # @!method initialize(type:)
2645
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
2646
-
2647
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
2648
- module Type
2649
- extend MetronomeSDK::Internal::Type::Enum
2650
-
2651
- ALL = :ALL
2652
-
2653
- # @!method self.values
2654
- # @return [Array<Symbol>]
2655
- end
2656
- end
2657
-
2658
- class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
2659
- # @!attribute type
2660
- #
2661
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
2662
- required :type,
2663
- enum: -> {
2664
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
2665
- }
2666
-
2667
- # @!method initialize(type:)
2668
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
2669
-
2670
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
2671
- module Type
2672
- extend MetronomeSDK::Internal::Type::Enum
2673
-
2674
- NONE = :NONE
2675
-
2676
- # @!method self.values
2677
- # @return [Array<Symbol>]
2678
- end
2679
- end
2680
-
2681
- class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
2682
- # @!attribute contract_ids
2683
- #
2684
- # @return [Array<String>]
2685
- required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
2686
-
2687
- # @!attribute type
2688
- #
2689
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
2690
- required :type,
2691
- enum: -> {
2692
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
2693
- }
2694
-
2695
- # @!method initialize(contract_ids:, type:)
2696
- # @param contract_ids [Array<String>]
2697
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
2698
-
2699
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
2700
- module Type
2701
- extend MetronomeSDK::Internal::Type::Enum
2702
-
2703
- CONTRACT_IDS = :CONTRACT_IDS
2704
-
2705
- # @!method self.values
2706
- # @return [Array<Symbol>]
2707
- end
2708
- end
2709
-
2710
- # @!method self.variants
2711
- # @return [Array(MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
2712
- end
2713
- end
2714
-
2715
1923
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#invoice_amount
2716
1924
  class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
2717
1925
  # @!attribute credit_type_id
@@ -2785,53 +1993,13 @@ module MetronomeSDK
2785
1993
  # @return [Array<Symbol>]
2786
1994
  end
2787
1995
 
2788
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
2789
- # @!attribute presentation_group_values
2790
- #
2791
- # @return [Hash{Symbol=>String}, nil]
2792
- optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2793
-
2794
- # @!attribute pricing_group_values
2795
- #
2796
- # @return [Hash{Symbol=>String}, nil]
2797
- optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2798
-
2799
- # @!attribute product_id
2800
- # If provided, the specifier will only apply to the product with the specified ID.
2801
- #
2802
- # @return [String, nil]
2803
- optional :product_id, String
2804
-
2805
- # @!attribute product_tags
2806
- # If provided, the specifier will only apply to products with all the specified
2807
- # tags.
2808
- #
2809
- # @return [Array<String>, nil]
2810
- optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
2811
-
2812
- # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
2813
- # Some parameter documentations has been truncated, see
2814
- # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Specifier}
2815
- # for more details.
2816
- #
2817
- # @param presentation_group_values [Hash{Symbol=>String}]
2818
- #
2819
- # @param pricing_group_values [Hash{Symbol=>String}]
2820
- #
2821
- # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
2822
- #
2823
- # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
2824
- end
2825
-
2826
1996
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#subscription_config
2827
1997
  class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
2828
1998
  # @!attribute apply_seat_increase_config
2829
1999
  #
2830
2000
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig]
2831
2001
  required :apply_seat_increase_config,
2832
- -> {
2833
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig
2834
- }
2002
+ -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig }
2835
2003
 
2836
2004
  # @!attribute subscription_id
2837
2005
  # ID of the subscription to configure on the recurring commit/credit.
@@ -2844,9 +2012,7 @@ module MetronomeSDK
2844
2012
  #
2845
2013
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation, nil]
2846
2014
  optional :allocation,
2847
- enum: -> {
2848
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation
2849
- }
2015
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation }
2850
2016
 
2851
2017
  # @!method initialize(apply_seat_increase_config:, subscription_id:, allocation: nil)
2852
2018
  # Attach a subscription to the recurring commit/credit.
@@ -2876,6 +2042,7 @@ module MetronomeSDK
2876
2042
  extend MetronomeSDK::Internal::Type::Enum
2877
2043
 
2878
2044
  POOLED = :POOLED
2045
+ INDIVIDUAL = :INDIVIDUAL
2879
2046
 
2880
2047
  # @!method self.values
2881
2048
  # @return [Array<Symbol>]
@@ -2888,10 +2055,7 @@ module MetronomeSDK
2888
2055
  # The amount of commit to grant.
2889
2056
  #
2890
2057
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::AccessAmount]
2891
- required :access_amount,
2892
- -> {
2893
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::AccessAmount
2894
- }
2058
+ required :access_amount, -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::AccessAmount }
2895
2059
 
2896
2060
  # @!attribute commit_duration
2897
2061
  # Defines the length of the access schedule for each created commit/credit. The
@@ -2899,10 +2063,7 @@ module MetronomeSDK
2899
2063
  # length of a period is determined by the recurrence_frequency.
2900
2064
  #
2901
2065
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::CommitDuration]
2902
- required :commit_duration,
2903
- -> {
2904
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration
2905
- }
2066
+ required :commit_duration, -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration }
2906
2067
 
2907
2068
  # @!attribute priority
2908
2069
  # Will be passed down to the individual commits
@@ -2948,9 +2109,8 @@ module MetronomeSDK
2948
2109
  # @!attribute hierarchy_configuration
2949
2110
  # Optional configuration for recurring credit hierarchy access control
2950
2111
  #
2951
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration, nil]
2952
- optional :hierarchy_configuration,
2953
- -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration }
2112
+ # @return [MetronomeSDK::Models::CommitHierarchyConfiguration, nil]
2113
+ optional :hierarchy_configuration, -> { MetronomeSDK::CommitHierarchyConfiguration }
2954
2114
 
2955
2115
  # @!attribute name
2956
2116
  # displayed on invoices. will be passed through to the individual commits
@@ -2969,10 +2129,7 @@ module MetronomeSDK
2969
2129
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
2970
2130
  #
2971
2131
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Proration, nil]
2972
- optional :proration,
2973
- enum: -> {
2974
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::Proration
2975
- }
2132
+ optional :proration, enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::Proration }
2976
2133
 
2977
2134
  # @!attribute rate_type
2978
2135
  # Whether the created commits will use the commit rate or list rate
@@ -3007,11 +2164,8 @@ module MetronomeSDK
3007
2164
  # Instead, to target usage by product or product tag, pass those values in the
3008
2165
  # body of `specifiers`.
3009
2166
  #
3010
- # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Specifier>, nil]
3011
- optional :specifiers,
3012
- -> {
3013
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::Specifier]
3014
- }
2167
+ # @return [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil]
2168
+ optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifierInput] }
3015
2169
 
3016
2170
  # @!attribute subscription_config
3017
2171
  # Attach a subscription to the recurring commit/credit.
@@ -3050,7 +2204,7 @@ module MetronomeSDK
3050
2204
  #
3051
2205
  # @param ending_before [Time] Determines when the contract will stop creating recurring commits. optional
3052
2206
  #
3053
- # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration] Optional configuration for recurring credit hierarchy access control
2207
+ # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for recurring credit hierarchy access control
3054
2208
  #
3055
2209
  # @param name [String] displayed on invoices. will be passed through to the individual commits
3056
2210
  #
@@ -3064,7 +2218,7 @@ module MetronomeSDK
3064
2218
  #
3065
2219
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
3066
2220
  #
3067
- # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
2221
+ # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifierInput>] List of filters that determine what kind of customer usage draws down a commit o
3068
2222
  #
3069
2223
  # @param subscription_config [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig] Attach a subscription to the recurring commit/credit.
3070
2224
  #
@@ -3083,8 +2237,8 @@ module MetronomeSDK
3083
2237
  required :unit_price, Float
3084
2238
 
3085
2239
  # @!attribute quantity
3086
- # This field is currently required. Upcoming recurring commit/credit configuration
3087
- # options will allow it to be optional.
2240
+ # This field is required unless a subscription is attached via
2241
+ # `subscription_config`.
3088
2242
  #
3089
2243
  # @return [Float, nil]
3090
2244
  optional :quantity, Float
@@ -3100,7 +2254,7 @@ module MetronomeSDK
3100
2254
  #
3101
2255
  # @param unit_price [Float]
3102
2256
  #
3103
- # @param quantity [Float] This field is currently required. Upcoming recurring commit/credit configuration
2257
+ # @param quantity [Float] This field is required unless a subscription is attached via `subscription_confi
3104
2258
  end
3105
2259
 
3106
2260
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#commit_duration
@@ -3114,9 +2268,7 @@ module MetronomeSDK
3114
2268
  #
3115
2269
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit, nil]
3116
2270
  optional :unit,
3117
- enum: -> {
3118
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit
3119
- }
2271
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit }
3120
2272
 
3121
2273
  # @!method initialize(value:, unit: nil)
3122
2274
  # Defines the length of the access schedule for each created commit/credit. The
@@ -3137,117 +2289,6 @@ module MetronomeSDK
3137
2289
  end
3138
2290
  end
3139
2291
 
3140
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#hierarchy_configuration
3141
- class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
3142
- # @!attribute child_access
3143
- #
3144
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
3145
- required :child_access,
3146
- union: -> {
3147
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess
3148
- }
3149
-
3150
- # @!method initialize(child_access:)
3151
- # Optional configuration for recurring credit hierarchy access control
3152
- #
3153
- # @param child_access [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
3154
-
3155
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration#child_access
3156
- module ChildAccess
3157
- extend MetronomeSDK::Internal::Type::Union
3158
-
3159
- variant -> {
3160
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
3161
- }
3162
-
3163
- variant -> {
3164
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
3165
- }
3166
-
3167
- variant -> {
3168
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
3169
- }
3170
-
3171
- class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
3172
- # @!attribute type
3173
- #
3174
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
3175
- required :type,
3176
- enum: -> {
3177
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
3178
- }
3179
-
3180
- # @!method initialize(type:)
3181
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
3182
-
3183
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
3184
- module Type
3185
- extend MetronomeSDK::Internal::Type::Enum
3186
-
3187
- ALL = :ALL
3188
-
3189
- # @!method self.values
3190
- # @return [Array<Symbol>]
3191
- end
3192
- end
3193
-
3194
- class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
3195
- # @!attribute type
3196
- #
3197
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
3198
- required :type,
3199
- enum: -> {
3200
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
3201
- }
3202
-
3203
- # @!method initialize(type:)
3204
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
3205
-
3206
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
3207
- module Type
3208
- extend MetronomeSDK::Internal::Type::Enum
3209
-
3210
- NONE = :NONE
3211
-
3212
- # @!method self.values
3213
- # @return [Array<Symbol>]
3214
- end
3215
- end
3216
-
3217
- class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
3218
- # @!attribute contract_ids
3219
- #
3220
- # @return [Array<String>]
3221
- required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
3222
-
3223
- # @!attribute type
3224
- #
3225
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
3226
- required :type,
3227
- enum: -> {
3228
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
3229
- }
3230
-
3231
- # @!method initialize(contract_ids:, type:)
3232
- # @param contract_ids [Array<String>]
3233
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
3234
-
3235
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
3236
- module Type
3237
- extend MetronomeSDK::Internal::Type::Enum
3238
-
3239
- CONTRACT_IDS = :CONTRACT_IDS
3240
-
3241
- # @!method self.values
3242
- # @return [Array<Symbol>]
3243
- end
3244
- end
3245
-
3246
- # @!method self.variants
3247
- # @return [Array(MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
3248
- end
3249
- end
3250
-
3251
2292
  # Determines whether the first and last commit will be prorated. If not provided,
3252
2293
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
3253
2294
  #
@@ -3292,46 +2333,8 @@ module MetronomeSDK
3292
2333
  ANNUAL = :ANNUAL
3293
2334
  WEEKLY = :WEEKLY
3294
2335
 
3295
- # @!method self.values
3296
- # @return [Array<Symbol>]
3297
- end
3298
-
3299
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
3300
- # @!attribute presentation_group_values
3301
- #
3302
- # @return [Hash{Symbol=>String}, nil]
3303
- optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
3304
-
3305
- # @!attribute pricing_group_values
3306
- #
3307
- # @return [Hash{Symbol=>String}, nil]
3308
- optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
3309
-
3310
- # @!attribute product_id
3311
- # If provided, the specifier will only apply to the product with the specified ID.
3312
- #
3313
- # @return [String, nil]
3314
- optional :product_id, String
3315
-
3316
- # @!attribute product_tags
3317
- # If provided, the specifier will only apply to products with all the specified
3318
- # tags.
3319
- #
3320
- # @return [Array<String>, nil]
3321
- optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
3322
-
3323
- # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
3324
- # Some parameter documentations has been truncated, see
3325
- # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Specifier}
3326
- # for more details.
3327
- #
3328
- # @param presentation_group_values [Hash{Symbol=>String}]
3329
- #
3330
- # @param pricing_group_values [Hash{Symbol=>String}]
3331
- #
3332
- # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
3333
- #
3334
- # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
2336
+ # @!method self.values
2337
+ # @return [Array<Symbol>]
3335
2338
  end
3336
2339
 
3337
2340
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#subscription_config
@@ -3340,9 +2343,7 @@ module MetronomeSDK
3340
2343
  #
3341
2344
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig]
3342
2345
  required :apply_seat_increase_config,
3343
- -> {
3344
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig
3345
- }
2346
+ -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig }
3346
2347
 
3347
2348
  # @!attribute subscription_id
3348
2349
  # ID of the subscription to configure on the recurring commit/credit.
@@ -3355,9 +2356,7 @@ module MetronomeSDK
3355
2356
  #
3356
2357
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation, nil]
3357
2358
  optional :allocation,
3358
- enum: -> {
3359
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation
3360
- }
2359
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation }
3361
2360
 
3362
2361
  # @!method initialize(apply_seat_increase_config:, subscription_id:, allocation: nil)
3363
2362
  # Attach a subscription to the recurring commit/credit.
@@ -3387,6 +2386,7 @@ module MetronomeSDK
3387
2386
  extend MetronomeSDK::Internal::Type::Enum
3388
2387
 
3389
2388
  POOLED = :POOLED
2389
+ INDIVIDUAL = :INDIVIDUAL
3390
2390
 
3391
2391
  # @!method self.values
3392
2392
  # @return [Array<Symbol>]
@@ -3536,6 +2536,12 @@ module MetronomeSDK
3536
2536
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule]
3537
2537
  required :schedule, -> { MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule }
3538
2538
 
2539
+ # @!attribute custom_fields
2540
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
2541
+ #
2542
+ # @return [Hash{Symbol=>String}, nil]
2543
+ optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
2544
+
3539
2545
  # @!attribute name
3540
2546
  # displayed on invoices
3541
2547
  #
@@ -3548,11 +2554,13 @@ module MetronomeSDK
3548
2554
  # @return [String, nil]
3549
2555
  optional :netsuite_sales_order_id, String
3550
2556
 
3551
- # @!method initialize(product_id:, schedule:, name: nil, netsuite_sales_order_id: nil)
2557
+ # @!method initialize(product_id:, schedule:, custom_fields: nil, name: nil, netsuite_sales_order_id: nil)
3552
2558
  # @param product_id [String]
3553
2559
  #
3554
2560
  # @param schedule [MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule] Must provide either schedule_items or recurring_schedule.
3555
2561
  #
2562
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
2563
+ #
3556
2564
  # @param name [String] displayed on invoices
3557
2565
  #
3558
2566
  # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
@@ -3565,6 +2573,13 @@ module MetronomeSDK
3565
2573
  # @return [String, nil]
3566
2574
  optional :credit_type_id, String
3567
2575
 
2576
+ # @!attribute do_not_invoice
2577
+ # This field is only applicable to commit invoice schedules. If true, this
2578
+ # schedule will not generate an invoice.
2579
+ #
2580
+ # @return [Boolean, nil]
2581
+ optional :do_not_invoice, MetronomeSDK::Internal::Type::Boolean
2582
+
3568
2583
  # @!attribute recurring_schedule
3569
2584
  # Enter the unit price and quantity for the charge or instead only send the
3570
2585
  # amount. If amount is sent, the unit price is assumed to be the amount and
@@ -3572,20 +2587,16 @@ module MetronomeSDK
3572
2587
  #
3573
2588
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule, nil]
3574
2589
  optional :recurring_schedule,
3575
- -> {
3576
- MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule
3577
- }
2590
+ -> { MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule }
3578
2591
 
3579
2592
  # @!attribute schedule_items
3580
2593
  # Either provide amount or provide both unit_price and quantity.
3581
2594
  #
3582
2595
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::ScheduleItem>, nil]
3583
2596
  optional :schedule_items,
3584
- -> {
3585
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::ScheduleItem]
3586
- }
2597
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::ScheduleItem] }
3587
2598
 
3588
- # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
2599
+ # @!method initialize(credit_type_id: nil, do_not_invoice: nil, recurring_schedule: nil, schedule_items: nil)
3589
2600
  # Some parameter documentations has been truncated, see
3590
2601
  # {MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule} for
3591
2602
  # more details.
@@ -3594,6 +2605,8 @@ module MetronomeSDK
3594
2605
  #
3595
2606
  # @param credit_type_id [String] Defaults to USD (cents) if not passed.
3596
2607
  #
2608
+ # @param do_not_invoice [Boolean] This field is only applicable to commit invoice schedules. If true, this schedul
2609
+ #
3597
2610
  # @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
3598
2611
  #
3599
2612
  # @param schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
@@ -3604,9 +2617,7 @@ module MetronomeSDK
3604
2617
  #
3605
2618
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::AmountDistribution]
3606
2619
  required :amount_distribution,
3607
- enum: -> {
3608
- MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::AmountDistribution
3609
- }
2620
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::AmountDistribution }
3610
2621
 
3611
2622
  # @!attribute ending_before
3612
2623
  # RFC 3339 timestamp (exclusive).
@@ -3618,9 +2629,7 @@ module MetronomeSDK
3618
2629
  #
3619
2630
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::Frequency]
3620
2631
  required :frequency,
3621
- enum: -> {
3622
- MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::Frequency
3623
- }
2632
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::Frequency }
3624
2633
 
3625
2634
  # @!attribute starting_at
3626
2635
  # RFC 3339 timestamp (inclusive).
@@ -3749,247 +2758,6 @@ module MetronomeSDK
3749
2758
  end
3750
2759
  end
3751
2760
 
3752
- class AddSpendThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
3753
- # @!attribute commit
3754
- #
3755
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::Commit]
3756
- required :commit,
3757
- -> {
3758
- MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::Commit
3759
- }
3760
-
3761
- # @!attribute is_enabled
3762
- # When set to false, the contract will not be evaluated against the
3763
- # threshold_amount. Toggling to true will result an immediate evaluation,
3764
- # regardless of prior state.
3765
- #
3766
- # @return [Boolean]
3767
- required :is_enabled, MetronomeSDK::Internal::Type::Boolean
3768
-
3769
- # @!attribute payment_gate_config
3770
- #
3771
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig]
3772
- required :payment_gate_config,
3773
- -> {
3774
- MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig
3775
- }
3776
-
3777
- # @!attribute threshold_amount
3778
- # Specify the threshold amount for the contract. Each time the contract's usage
3779
- # hits this amount, a threshold charge will be initiated.
3780
- #
3781
- # @return [Float]
3782
- required :threshold_amount, Float
3783
-
3784
- # @!method initialize(commit:, is_enabled:, payment_gate_config:, threshold_amount:)
3785
- # Some parameter documentations has been truncated, see
3786
- # {MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration}
3787
- # for more details.
3788
- #
3789
- # @param commit [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::Commit]
3790
- #
3791
- # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
3792
- #
3793
- # @param payment_gate_config [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig]
3794
- #
3795
- # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's usage hi
3796
-
3797
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration#commit
3798
- class Commit < MetronomeSDK::Internal::Type::BaseModel
3799
- # @!attribute product_id
3800
- # The commit product that will be used to generate the line item for commit
3801
- # payment.
3802
- #
3803
- # @return [String]
3804
- required :product_id, String
3805
-
3806
- # @!attribute description
3807
- #
3808
- # @return [String, nil]
3809
- optional :description, String
3810
-
3811
- # @!attribute name
3812
- # Specify the name of the line item for the threshold charge. If left blank, it
3813
- # will default to the commit product name.
3814
- #
3815
- # @return [String, nil]
3816
- optional :name, String
3817
-
3818
- # @!method initialize(product_id:, description: nil, name: nil)
3819
- # Some parameter documentations has been truncated, see
3820
- # {MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::Commit}
3821
- # for more details.
3822
- #
3823
- # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
3824
- #
3825
- # @param description [String]
3826
- #
3827
- # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
3828
- end
3829
-
3830
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration#payment_gate_config
3831
- class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
3832
- # @!attribute payment_gate_type
3833
- # Gate access to the commit balance based on successful collection of payment.
3834
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
3835
- # facilitate payment using your own payment integration. Select NONE if you do not
3836
- # wish to payment gate the commit balance.
3837
- #
3838
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType]
3839
- required :payment_gate_type,
3840
- enum: -> {
3841
- MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType
3842
- }
3843
-
3844
- # @!attribute precalculated_tax_config
3845
- # Only applicable if using PRECALCULATED as your tax type.
3846
- #
3847
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig, nil]
3848
- optional :precalculated_tax_config,
3849
- -> {
3850
- MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
3851
- }
3852
-
3853
- # @!attribute stripe_config
3854
- # Only applicable if using STRIPE as your payment gateway type.
3855
- #
3856
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
3857
- optional :stripe_config,
3858
- -> {
3859
- MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig
3860
- }
3861
-
3862
- # @!attribute tax_type
3863
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
3864
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
3865
- # will default to NONE.
3866
- #
3867
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType, nil]
3868
- optional :tax_type,
3869
- enum: -> {
3870
- MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType
3871
- }
3872
-
3873
- # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
3874
- # Some parameter documentations has been truncated, see
3875
- # {MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig}
3876
- # for more details.
3877
- #
3878
- # @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
3879
- #
3880
- # @param precalculated_tax_config [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
3881
- #
3882
- # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gateway type.
3883
- #
3884
- # @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
3885
-
3886
- # Gate access to the commit balance based on successful collection of payment.
3887
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
3888
- # facilitate payment using your own payment integration. Select NONE if you do not
3889
- # wish to payment gate the commit balance.
3890
- #
3891
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig#payment_gate_type
3892
- module PaymentGateType
3893
- extend MetronomeSDK::Internal::Type::Enum
3894
-
3895
- NONE = :NONE
3896
- STRIPE = :STRIPE
3897
- EXTERNAL = :EXTERNAL
3898
-
3899
- # @!method self.values
3900
- # @return [Array<Symbol>]
3901
- end
3902
-
3903
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig#precalculated_tax_config
3904
- class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
3905
- # @!attribute tax_amount
3906
- # Amount of tax to be applied. This should be in the same currency and
3907
- # denomination as the commit's invoice schedule
3908
- #
3909
- # @return [Float]
3910
- required :tax_amount, Float
3911
-
3912
- # @!attribute tax_name
3913
- # Name of the tax to be applied. This may be used in an invoice line item
3914
- # description.
3915
- #
3916
- # @return [String, nil]
3917
- optional :tax_name, String
3918
-
3919
- # @!method initialize(tax_amount:, tax_name: nil)
3920
- # Some parameter documentations has been truncated, see
3921
- # {MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig}
3922
- # for more details.
3923
- #
3924
- # Only applicable if using PRECALCULATED as your tax type.
3925
- #
3926
- # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
3927
- #
3928
- # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
3929
- end
3930
-
3931
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig#stripe_config
3932
- class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
3933
- # @!attribute payment_type
3934
- # If left blank, will default to INVOICE
3935
- #
3936
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
3937
- required :payment_type,
3938
- enum: -> {
3939
- MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
3940
- }
3941
-
3942
- # @!attribute invoice_metadata
3943
- # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
3944
- # your payment type.
3945
- #
3946
- # @return [Hash{Symbol=>String}, nil]
3947
- optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
3948
-
3949
- # @!method initialize(payment_type:, invoice_metadata: nil)
3950
- # Some parameter documentations has been truncated, see
3951
- # {MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig}
3952
- # for more details.
3953
- #
3954
- # Only applicable if using STRIPE as your payment gateway type.
3955
- #
3956
- # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
3957
- #
3958
- # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
3959
-
3960
- # If left blank, will default to INVOICE
3961
- #
3962
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
3963
- module PaymentType
3964
- extend MetronomeSDK::Internal::Type::Enum
3965
-
3966
- INVOICE = :INVOICE
3967
- PAYMENT_INTENT = :PAYMENT_INTENT
3968
-
3969
- # @!method self.values
3970
- # @return [Array<Symbol>]
3971
- end
3972
- end
3973
-
3974
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
3975
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
3976
- # will default to NONE.
3977
- #
3978
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig#tax_type
3979
- module TaxType
3980
- extend MetronomeSDK::Internal::Type::Enum
3981
-
3982
- NONE = :NONE
3983
- STRIPE = :STRIPE
3984
- ANROK = :ANROK
3985
- PRECALCULATED = :PRECALCULATED
3986
-
3987
- # @!method self.values
3988
- # @return [Array<Symbol>]
3989
- end
3990
- end
3991
- end
3992
-
3993
2761
  class AddSubscription < MetronomeSDK::Internal::Type::BaseModel
3994
2762
  # @!attribute collection_schedule
3995
2763
  #
@@ -3997,11 +2765,6 @@ module MetronomeSDK
3997
2765
  required :collection_schedule,
3998
2766
  enum: -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::CollectionSchedule }
3999
2767
 
4000
- # @!attribute initial_quantity
4001
- #
4002
- # @return [Float]
4003
- required :initial_quantity, Float
4004
-
4005
2768
  # @!attribute proration
4006
2769
  #
4007
2770
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration]
@@ -4014,6 +2777,7 @@ module MetronomeSDK
4014
2777
  -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::SubscriptionRate }
4015
2778
 
4016
2779
  # @!attribute custom_fields
2780
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
4017
2781
  #
4018
2782
  # @return [Hash{Symbol=>String}, nil]
4019
2783
  optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
@@ -4030,11 +2794,28 @@ module MetronomeSDK
4030
2794
  # @return [Time, nil]
4031
2795
  optional :ending_before, Time
4032
2796
 
2797
+ # @!attribute initial_quantity
2798
+ # The initial quantity for the subscription. It must be non-negative value.
2799
+ # Required if quantity_management_mode is QUANTITY_ONLY.
2800
+ #
2801
+ # @return [Float, nil]
2802
+ optional :initial_quantity, Float
2803
+
4033
2804
  # @!attribute name
4034
2805
  #
4035
2806
  # @return [String, nil]
4036
2807
  optional :name, String
4037
2808
 
2809
+ # @!attribute quantity_management_mode
2810
+ # Determines how the subscription's quantity is controlled. Defaults to
2811
+ # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
2812
+ # directly on the subscription. `initial_quantity` must be provided with this
2813
+ # option. Compatible with recurring commits/credits that use POOLED allocation.
2814
+ #
2815
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::QuantityManagementMode, nil]
2816
+ optional :quantity_management_mode,
2817
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::QuantityManagementMode }
2818
+
4038
2819
  # @!attribute starting_at
4039
2820
  # Inclusive start time for the subscription. If not provided, defaults to contract
4040
2821
  # start date
@@ -4049,27 +2830,29 @@ module MetronomeSDK
4049
2830
  # @return [String, nil]
4050
2831
  optional :temporary_id, String
4051
2832
 
4052
- # @!method initialize(collection_schedule:, initial_quantity:, proration:, subscription_rate:, custom_fields: nil, description: nil, ending_before: nil, name: nil, starting_at: nil, temporary_id: nil)
2833
+ # @!method initialize(collection_schedule:, proration:, subscription_rate:, custom_fields: nil, description: nil, ending_before: nil, initial_quantity: nil, name: nil, quantity_management_mode: nil, starting_at: nil, temporary_id: nil)
4053
2834
  # Some parameter documentations has been truncated, see
4054
2835
  # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription} for more
4055
2836
  # details.
4056
2837
  #
4057
2838
  # @param collection_schedule [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::CollectionSchedule]
4058
2839
  #
4059
- # @param initial_quantity [Float]
4060
- #
4061
2840
  # @param proration [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration]
4062
2841
  #
4063
2842
  # @param subscription_rate [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SubscriptionRate]
4064
2843
  #
4065
- # @param custom_fields [Hash{Symbol=>String}]
2844
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
4066
2845
  #
4067
2846
  # @param description [String]
4068
2847
  #
4069
2848
  # @param ending_before [Time] Exclusive end time for the subscription. If not provided, subscription inherits
4070
2849
  #
2850
+ # @param initial_quantity [Float] The initial quantity for the subscription. It must be non-negative value. Requir
2851
+ #
4071
2852
  # @param name [String]
4072
2853
  #
2854
+ # @param quantity_management_mode [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::QuantityManagementMode] Determines how the subscription's quantity is controlled. Defaults to QUANTITY_O
2855
+ #
4073
2856
  # @param starting_at [Time] Inclusive start time for the subscription. If not provided, defaults to contract
4074
2857
  #
4075
2858
  # @param temporary_id [String] A temporary ID used to reference the subscription in recurring commit/credit sub
@@ -4096,9 +2879,7 @@ module MetronomeSDK
4096
2879
  #
4097
2880
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration::InvoiceBehavior, nil]
4098
2881
  optional :invoice_behavior,
4099
- enum: -> {
4100
- MetronomeSDK::V2::ContractEditParams::AddSubscription::Proration::InvoiceBehavior
4101
- }
2882
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::Proration::InvoiceBehavior }
4102
2883
 
4103
2884
  # @!attribute is_prorated
4104
2885
  # Indicates if the partial period will be prorated or charged a full amount.
@@ -4141,9 +2922,7 @@ module MetronomeSDK
4141
2922
  #
4142
2923
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SubscriptionRate::BillingFrequency]
4143
2924
  required :billing_frequency,
4144
- enum: -> {
4145
- MetronomeSDK::V2::ContractEditParams::AddSubscription::SubscriptionRate::BillingFrequency
4146
- }
2925
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::SubscriptionRate::BillingFrequency }
4147
2926
 
4148
2927
  # @!attribute product_id
4149
2928
  # Must be subscription type product
@@ -4176,6 +2955,22 @@ module MetronomeSDK
4176
2955
  # @return [Array<Symbol>]
4177
2956
  end
4178
2957
  end
2958
+
2959
+ # Determines how the subscription's quantity is controlled. Defaults to
2960
+ # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
2961
+ # directly on the subscription. `initial_quantity` must be provided with this
2962
+ # option. Compatible with recurring commits/credits that use POOLED allocation.
2963
+ #
2964
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription#quantity_management_mode
2965
+ module QuantityManagementMode
2966
+ extend MetronomeSDK::Internal::Type::Enum
2967
+
2968
+ SEAT_BASED = :SEAT_BASED
2969
+ QUANTITY_ONLY = :QUANTITY_ONLY
2970
+
2971
+ # @!method self.values
2972
+ # @return [Array<Symbol>]
2973
+ end
4179
2974
  end
4180
2975
 
4181
2976
  class ArchiveCommit < MetronomeSDK::Internal::Type::BaseModel
@@ -4248,34 +3043,43 @@ module MetronomeSDK
4248
3043
  # @!attribute hierarchy_configuration
4249
3044
  # Optional configuration for commit hierarchy access control
4250
3045
  #
4251
- # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration, nil]
4252
- optional :hierarchy_configuration,
4253
- -> { MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration }
3046
+ # @return [MetronomeSDK::Models::CommitHierarchyConfiguration, nil]
3047
+ optional :hierarchy_configuration, -> { MetronomeSDK::CommitHierarchyConfiguration }
4254
3048
 
4255
3049
  # @!attribute invoice_schedule
4256
3050
  #
4257
3051
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule, nil]
4258
- optional :invoice_schedule,
4259
- -> {
4260
- MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule
4261
- }
3052
+ optional :invoice_schedule, -> { MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule }
4262
3053
 
4263
3054
  # @!attribute netsuite_sales_order_id
4264
3055
  #
4265
3056
  # @return [String, nil]
4266
3057
  optional :netsuite_sales_order_id, String, nil?: true
4267
3058
 
3059
+ # @!attribute priority
3060
+ #
3061
+ # @return [Float, nil]
3062
+ optional :priority, Float, nil?: true
3063
+
4268
3064
  # @!attribute product_id
4269
3065
  #
4270
3066
  # @return [String, nil]
4271
3067
  optional :product_id, String
4272
3068
 
3069
+ # @!attribute rate_type
3070
+ # If provided, updates the commit to use the specified rate type for current and
3071
+ # future invoices. Previously finalized invoices will need to be voided and
3072
+ # regenerated to reflect the rate type change.
3073
+ #
3074
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::RateType, nil]
3075
+ optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::UpdateCommit::RateType }
3076
+
4273
3077
  # @!attribute rollover_fraction
4274
3078
  #
4275
3079
  # @return [Float, nil]
4276
3080
  optional :rollover_fraction, Float, nil?: true
4277
3081
 
4278
- # @!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)
3082
+ # @!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, priority: nil, product_id: nil, rate_type: nil, rollover_fraction: nil)
4279
3083
  # Some parameter documentations has been truncated, see
4280
3084
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit} for more details.
4281
3085
  #
@@ -4287,14 +3091,18 @@ module MetronomeSDK
4287
3091
  #
4288
3092
  # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If applicable*product_ids, applicable_product*
4289
3093
  #
4290
- # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration] Optional configuration for commit hierarchy access control
3094
+ # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for commit hierarchy access control
4291
3095
  #
4292
3096
  # @param invoice_schedule [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule]
4293
3097
  #
4294
3098
  # @param netsuite_sales_order_id [String, nil]
4295
3099
  #
3100
+ # @param priority [Float, nil]
3101
+ #
4296
3102
  # @param product_id [String]
4297
3103
  #
3104
+ # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::RateType] If provided, updates the commit to use the specified rate type for current and f
3105
+ #
4298
3106
  # @param rollover_fraction [Float, nil]
4299
3107
 
4300
3108
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit#access_schedule
@@ -4303,25 +3111,19 @@ module MetronomeSDK
4303
3111
  #
4304
3112
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule::AddScheduleItem>, nil]
4305
3113
  optional :add_schedule_items,
4306
- -> {
4307
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::AddScheduleItem]
4308
- }
3114
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::AddScheduleItem] }
4309
3115
 
4310
3116
  # @!attribute remove_schedule_items
4311
3117
  #
4312
3118
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule::RemoveScheduleItem>, nil]
4313
3119
  optional :remove_schedule_items,
4314
- -> {
4315
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::RemoveScheduleItem]
4316
- }
3120
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::RemoveScheduleItem] }
4317
3121
 
4318
3122
  # @!attribute update_schedule_items
4319
3123
  #
4320
3124
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule::UpdateScheduleItem>, nil]
4321
3125
  optional :update_schedule_items,
4322
- -> {
4323
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::UpdateScheduleItem]
4324
- }
3126
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::UpdateScheduleItem] }
4325
3127
 
4326
3128
  # @!method initialize(add_schedule_items: nil, remove_schedule_items: nil, update_schedule_items: nil)
4327
3129
  # @param add_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule::AddScheduleItem>]
@@ -4367,136 +3169,25 @@ module MetronomeSDK
4367
3169
  required :id, String
4368
3170
 
4369
3171
  # @!attribute amount
4370
- #
4371
- # @return [Float, nil]
4372
- optional :amount, Float
4373
-
4374
- # @!attribute ending_before
4375
- #
4376
- # @return [Time, nil]
4377
- optional :ending_before, Time
4378
-
4379
- # @!attribute starting_at
4380
- #
4381
- # @return [Time, nil]
4382
- optional :starting_at, Time
4383
-
4384
- # @!method initialize(id:, amount: nil, ending_before: nil, starting_at: nil)
4385
- # @param id [String]
4386
- # @param amount [Float]
4387
- # @param ending_before [Time]
4388
- # @param starting_at [Time]
4389
- end
4390
- end
4391
-
4392
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit#hierarchy_configuration
4393
- class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
4394
- # @!attribute child_access
4395
- #
4396
- # @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]
4397
- required :child_access,
4398
- union: -> {
4399
- MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess
4400
- }
4401
-
4402
- # @!method initialize(child_access:)
4403
- # Optional configuration for commit hierarchy access control
4404
- #
4405
- # @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]
4406
-
4407
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration#child_access
4408
- module ChildAccess
4409
- extend MetronomeSDK::Internal::Type::Union
4410
-
4411
- variant -> {
4412
- MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
4413
- }
4414
-
4415
- variant -> {
4416
- MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
4417
- }
4418
-
4419
- variant -> {
4420
- MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
4421
- }
4422
-
4423
- class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
4424
- # @!attribute type
4425
- #
4426
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
4427
- required :type,
4428
- enum: -> {
4429
- MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
4430
- }
4431
-
4432
- # @!method initialize(type:)
4433
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
4434
-
4435
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
4436
- module Type
4437
- extend MetronomeSDK::Internal::Type::Enum
4438
-
4439
- ALL = :ALL
4440
-
4441
- # @!method self.values
4442
- # @return [Array<Symbol>]
4443
- end
4444
- end
4445
-
4446
- class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
4447
- # @!attribute type
4448
- #
4449
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
4450
- required :type,
4451
- enum: -> {
4452
- MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
4453
- }
4454
-
4455
- # @!method initialize(type:)
4456
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
4457
-
4458
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
4459
- module Type
4460
- extend MetronomeSDK::Internal::Type::Enum
4461
-
4462
- NONE = :NONE
3172
+ #
3173
+ # @return [Float, nil]
3174
+ optional :amount, Float
4463
3175
 
4464
- # @!method self.values
4465
- # @return [Array<Symbol>]
4466
- end
4467
- end
3176
+ # @!attribute ending_before
3177
+ #
3178
+ # @return [Time, nil]
3179
+ optional :ending_before, Time
4468
3180
 
4469
- class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
4470
- # @!attribute contract_ids
4471
- #
4472
- # @return [Array<String>]
4473
- required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
4474
-
4475
- # @!attribute type
4476
- #
4477
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
4478
- required :type,
4479
- enum: -> {
4480
- MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
4481
- }
4482
-
4483
- # @!method initialize(contract_ids:, type:)
4484
- # @param contract_ids [Array<String>]
4485
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
4486
-
4487
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
4488
- module Type
4489
- extend MetronomeSDK::Internal::Type::Enum
4490
-
4491
- CONTRACT_IDS = :CONTRACT_IDS
4492
-
4493
- # @!method self.values
4494
- # @return [Array<Symbol>]
4495
- end
4496
- end
3181
+ # @!attribute starting_at
3182
+ #
3183
+ # @return [Time, nil]
3184
+ optional :starting_at, Time
4497
3185
 
4498
- # @!method self.variants
4499
- # @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)]
3186
+ # @!method initialize(id:, amount: nil, ending_before: nil, starting_at: nil)
3187
+ # @param id [String]
3188
+ # @param amount [Float]
3189
+ # @param ending_before [Time]
3190
+ # @param starting_at [Time]
4500
3191
  end
4501
3192
  end
4502
3193
 
@@ -4506,25 +3197,19 @@ module MetronomeSDK
4506
3197
  #
4507
3198
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::AddScheduleItem>, nil]
4508
3199
  optional :add_schedule_items,
4509
- -> {
4510
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::AddScheduleItem]
4511
- }
3200
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::AddScheduleItem] }
4512
3201
 
4513
3202
  # @!attribute remove_schedule_items
4514
3203
  #
4515
3204
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::RemoveScheduleItem>, nil]
4516
3205
  optional :remove_schedule_items,
4517
- -> {
4518
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::RemoveScheduleItem]
4519
- }
3206
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::RemoveScheduleItem] }
4520
3207
 
4521
3208
  # @!attribute update_schedule_items
4522
3209
  #
4523
3210
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::UpdateScheduleItem>, nil]
4524
3211
  optional :update_schedule_items,
4525
- -> {
4526
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::UpdateScheduleItem]
4527
- }
3212
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::UpdateScheduleItem] }
4528
3213
 
4529
3214
  # @!method initialize(add_schedule_items: nil, remove_schedule_items: nil, update_schedule_items: nil)
4530
3215
  # @param add_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::AddScheduleItem>]
@@ -4603,6 +3288,21 @@ module MetronomeSDK
4603
3288
  # @param unit_price [Float]
4604
3289
  end
4605
3290
  end
3291
+
3292
+ # If provided, updates the commit to use the specified rate type for current and
3293
+ # future invoices. Previously finalized invoices will need to be voided and
3294
+ # regenerated to reflect the rate type change.
3295
+ #
3296
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit#rate_type
3297
+ module RateType
3298
+ extend MetronomeSDK::Internal::Type::Enum
3299
+
3300
+ LIST_RATE = :LIST_RATE
3301
+ COMMIT_RATE = :COMMIT_RATE
3302
+
3303
+ # @!method self.values
3304
+ # @return [Array<Symbol>]
3305
+ end
4606
3306
  end
4607
3307
 
4608
3308
  class UpdateCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -4635,21 +3335,33 @@ module MetronomeSDK
4635
3335
  # @!attribute hierarchy_configuration
4636
3336
  # Optional configuration for commit hierarchy access control
4637
3337
  #
4638
- # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration, nil]
4639
- optional :hierarchy_configuration,
4640
- -> { MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration }
3338
+ # @return [MetronomeSDK::Models::CommitHierarchyConfiguration, nil]
3339
+ optional :hierarchy_configuration, -> { MetronomeSDK::CommitHierarchyConfiguration }
4641
3340
 
4642
3341
  # @!attribute netsuite_sales_order_id
4643
3342
  #
4644
3343
  # @return [String, nil]
4645
3344
  optional :netsuite_sales_order_id, String, nil?: true
4646
3345
 
3346
+ # @!attribute priority
3347
+ #
3348
+ # @return [Float, nil]
3349
+ optional :priority, Float, nil?: true
3350
+
4647
3351
  # @!attribute product_id
4648
3352
  #
4649
3353
  # @return [String, nil]
4650
3354
  optional :product_id, String
4651
3355
 
4652
- # @!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)
3356
+ # @!attribute rate_type
3357
+ # If provided, updates the credit to use the specified rate type for current and
3358
+ # future invoices. Previously finalized invoices will need to be voided and
3359
+ # regenerated to reflect the rate type change.
3360
+ #
3361
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::RateType, nil]
3362
+ optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::UpdateCredit::RateType }
3363
+
3364
+ # @!method initialize(credit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, hierarchy_configuration: nil, netsuite_sales_order_id: nil, priority: nil, product_id: nil, rate_type: nil)
4653
3365
  # Some parameter documentations has been truncated, see
4654
3366
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit} for more details.
4655
3367
  #
@@ -4661,11 +3373,15 @@ module MetronomeSDK
4661
3373
  #
4662
3374
  # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If applicable*product_ids, applicable_product*
4663
3375
  #
4664
- # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration] Optional configuration for commit hierarchy access control
3376
+ # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for commit hierarchy access control
4665
3377
  #
4666
3378
  # @param netsuite_sales_order_id [String, nil]
4667
3379
  #
3380
+ # @param priority [Float, nil]
3381
+ #
4668
3382
  # @param product_id [String]
3383
+ #
3384
+ # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::RateType] If provided, updates the credit to use the specified rate type for current and f
4669
3385
 
4670
3386
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit#access_schedule
4671
3387
  class AccessSchedule < MetronomeSDK::Internal::Type::BaseModel
@@ -4673,25 +3389,19 @@ module MetronomeSDK
4673
3389
  #
4674
3390
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::AddScheduleItem>, nil]
4675
3391
  optional :add_schedule_items,
4676
- -> {
4677
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::AddScheduleItem]
4678
- }
3392
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::AddScheduleItem] }
4679
3393
 
4680
3394
  # @!attribute remove_schedule_items
4681
3395
  #
4682
3396
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::RemoveScheduleItem>, nil]
4683
3397
  optional :remove_schedule_items,
4684
- -> {
4685
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::RemoveScheduleItem]
4686
- }
3398
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::RemoveScheduleItem] }
4687
3399
 
4688
3400
  # @!attribute update_schedule_items
4689
3401
  #
4690
3402
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::UpdateScheduleItem>, nil]
4691
3403
  optional :update_schedule_items,
4692
- -> {
4693
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::UpdateScheduleItem]
4694
- }
3404
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::UpdateScheduleItem] }
4695
3405
 
4696
3406
  # @!method initialize(add_schedule_items: nil, remove_schedule_items: nil, update_schedule_items: nil)
4697
3407
  # @param add_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::AddScheduleItem>]
@@ -4759,115 +3469,19 @@ module MetronomeSDK
4759
3469
  end
4760
3470
  end
4761
3471
 
4762
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit#hierarchy_configuration
4763
- class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
4764
- # @!attribute child_access
4765
- #
4766
- # @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]
4767
- required :child_access,
4768
- union: -> {
4769
- MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess
4770
- }
4771
-
4772
- # @!method initialize(child_access:)
4773
- # Optional configuration for commit hierarchy access control
4774
- #
4775
- # @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]
4776
-
4777
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration#child_access
4778
- module ChildAccess
4779
- extend MetronomeSDK::Internal::Type::Union
4780
-
4781
- variant -> {
4782
- MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
4783
- }
4784
-
4785
- variant -> {
4786
- MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
4787
- }
4788
-
4789
- variant -> {
4790
- MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
4791
- }
4792
-
4793
- class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
4794
- # @!attribute type
4795
- #
4796
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
4797
- required :type,
4798
- enum: -> {
4799
- MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
4800
- }
4801
-
4802
- # @!method initialize(type:)
4803
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
4804
-
4805
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
4806
- module Type
4807
- extend MetronomeSDK::Internal::Type::Enum
4808
-
4809
- ALL = :ALL
4810
-
4811
- # @!method self.values
4812
- # @return [Array<Symbol>]
4813
- end
4814
- end
4815
-
4816
- class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
4817
- # @!attribute type
4818
- #
4819
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
4820
- required :type,
4821
- enum: -> {
4822
- MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
4823
- }
4824
-
4825
- # @!method initialize(type:)
4826
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
4827
-
4828
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
4829
- module Type
4830
- extend MetronomeSDK::Internal::Type::Enum
4831
-
4832
- NONE = :NONE
4833
-
4834
- # @!method self.values
4835
- # @return [Array<Symbol>]
4836
- end
4837
- end
3472
+ # If provided, updates the credit to use the specified rate type for current and
3473
+ # future invoices. Previously finalized invoices will need to be voided and
3474
+ # regenerated to reflect the rate type change.
3475
+ #
3476
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit#rate_type
3477
+ module RateType
3478
+ extend MetronomeSDK::Internal::Type::Enum
4838
3479
 
4839
- class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
4840
- # @!attribute contract_ids
4841
- #
4842
- # @return [Array<String>]
4843
- required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
4844
-
4845
- # @!attribute type
4846
- #
4847
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
4848
- required :type,
4849
- enum: -> {
4850
- MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
4851
- }
4852
-
4853
- # @!method initialize(contract_ids:, type:)
4854
- # @param contract_ids [Array<String>]
4855
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
4856
-
4857
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
4858
- module Type
4859
- extend MetronomeSDK::Internal::Type::Enum
4860
-
4861
- CONTRACT_IDS = :CONTRACT_IDS
4862
-
4863
- # @!method self.values
4864
- # @return [Array<Symbol>]
4865
- end
4866
- end
3480
+ LIST_RATE = :LIST_RATE
3481
+ COMMIT_RATE = :COMMIT_RATE
4867
3482
 
4868
- # @!method self.variants
4869
- # @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)]
4870
- end
3483
+ # @!method self.values
3484
+ # @return [Array<Symbol>]
4871
3485
  end
4872
3486
  end
4873
3487
 
@@ -4876,330 +3490,98 @@ module MetronomeSDK
4876
3490
  #
4877
3491
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit, nil]
4878
3492
  optional :commit,
4879
- -> {
4880
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit
4881
- }
3493
+ -> { MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit }
4882
3494
 
4883
3495
  # @!attribute custom_credit_type_id
4884
3496
  # If provided, the threshold, recharge-to amount, and the resulting threshold
4885
- # commit amount will be in terms of this credit type instead of the fiat currency.
4886
- #
4887
- # @return [String, nil]
4888
- optional :custom_credit_type_id, String, nil?: true
4889
-
4890
- # @!attribute is_enabled
4891
- # When set to false, the contract will not be evaluated against the
4892
- # threshold_amount. Toggling to true will result an immediate evaluation,
4893
- # regardless of prior state.
4894
- #
4895
- # @return [Boolean, nil]
4896
- optional :is_enabled, MetronomeSDK::Internal::Type::Boolean
4897
-
4898
- # @!attribute payment_gate_config
4899
- #
4900
- # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig, nil]
4901
- optional :payment_gate_config,
4902
- -> {
4903
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig
4904
- }
4905
-
4906
- # @!attribute recharge_to_amount
4907
- # Specify the amount the balance should be recharged to.
4908
- #
4909
- # @return [Float, nil]
4910
- optional :recharge_to_amount, Float
4911
-
4912
- # @!attribute threshold_amount
4913
- # Specify the threshold amount for the contract. Each time the contract's balance
4914
- # lowers to this amount, a threshold charge will be initiated.
4915
- #
4916
- # @return [Float, nil]
4917
- optional :threshold_amount, Float
4918
-
4919
- # @!method initialize(commit: nil, custom_credit_type_id: nil, is_enabled: nil, payment_gate_config: nil, recharge_to_amount: nil, threshold_amount: nil)
4920
- # Some parameter documentations has been truncated, see
4921
- # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration}
4922
- # for more details.
4923
- #
4924
- # @param commit [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit]
4925
- #
4926
- # @param custom_credit_type_id [String, nil] If provided, the threshold, recharge-to amount, and the resulting threshold comm
4927
- #
4928
- # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
4929
- #
4930
- # @param payment_gate_config [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig]
4931
- #
4932
- # @param recharge_to_amount [Float] Specify the amount the balance should be recharged to.
4933
- #
4934
- # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's balance
4935
-
4936
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration#commit
4937
- class Commit < MetronomeSDK::Internal::Type::BaseModel
4938
- # @!attribute applicable_product_ids
4939
- # Which products the threshold commit applies to. If both applicable_product_ids
4940
- # and applicable_product_tags are not provided, the commit applies to all
4941
- # products.
4942
- #
4943
- # @return [Array<String>, nil]
4944
- optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
4945
-
4946
- # @!attribute applicable_product_tags
4947
- # Which tags the threshold commit applies to. If both applicable_product_ids and
4948
- # applicable_product_tags are not provided, the commit applies to all products.
4949
- #
4950
- # @return [Array<String>, nil]
4951
- optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
4952
-
4953
- # @!attribute description
4954
- #
4955
- # @return [String, nil]
4956
- optional :description, String
4957
-
4958
- # @!attribute name
4959
- # Specify the name of the line item for the threshold charge. If left blank, it
4960
- # will default to the commit product name.
4961
- #
4962
- # @return [String, nil]
4963
- optional :name, String
4964
-
4965
- # @!attribute product_id
4966
- # The commit product that will be used to generate the line item for commit
4967
- # payment.
4968
- #
4969
- # @return [String, nil]
4970
- optional :product_id, String
4971
-
4972
- # @!attribute specifiers
4973
- # List of filters that determine what kind of customer usage draws down a commit
4974
- # or credit. A customer's usage needs to meet the condition of at least one of the
4975
- # specifiers to contribute to a commit's or credit's drawdown. This field cannot
4976
- # be used together with `applicable_product_ids` or `applicable_product_tags`.
4977
- # Instead, to target usage by product or product tag, pass those values in the
4978
- # body of `specifiers`.
4979
- #
4980
- # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier>, nil]
4981
- optional :specifiers,
4982
- -> {
4983
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier]
4984
- },
4985
- nil?: true
4986
-
4987
- # @!method initialize(applicable_product_ids: nil, applicable_product_tags: nil, description: nil, name: nil, product_id: nil, specifiers: nil)
4988
- # Some parameter documentations has been truncated, see
4989
- # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit}
4990
- # for more details.
4991
- #
4992
- # @param applicable_product_ids [Array<String>, nil] Which products the threshold commit applies to. If both applicable_product_ids a
4993
- #
4994
- # @param applicable_product_tags [Array<String>, nil] Which tags the threshold commit applies to. If both applicable_product_ids and a
4995
- #
4996
- # @param description [String]
4997
- #
4998
- # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
4999
- #
5000
- # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
5001
- #
5002
- # @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
5003
-
5004
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
5005
- # @!attribute presentation_group_values
5006
- #
5007
- # @return [Hash{Symbol=>String}, nil]
5008
- optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
5009
-
5010
- # @!attribute pricing_group_values
5011
- #
5012
- # @return [Hash{Symbol=>String}, nil]
5013
- optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
5014
-
5015
- # @!attribute product_id
5016
- # If provided, the specifier will only apply to the product with the specified ID.
5017
- #
5018
- # @return [String, nil]
5019
- optional :product_id, String
5020
-
5021
- # @!attribute product_tags
5022
- # If provided, the specifier will only apply to products with all the specified
5023
- # tags.
5024
- #
5025
- # @return [Array<String>, nil]
5026
- optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
5027
-
5028
- # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
5029
- # Some parameter documentations has been truncated, see
5030
- # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier}
5031
- # for more details.
5032
- #
5033
- # @param presentation_group_values [Hash{Symbol=>String}]
5034
- #
5035
- # @param pricing_group_values [Hash{Symbol=>String}]
5036
- #
5037
- # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
5038
- #
5039
- # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
5040
- end
5041
- end
5042
-
5043
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration#payment_gate_config
5044
- class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
5045
- # @!attribute payment_gate_type
5046
- # Gate access to the commit balance based on successful collection of payment.
5047
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
5048
- # facilitate payment using your own payment integration. Select NONE if you do not
5049
- # wish to payment gate the commit balance.
5050
- #
5051
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType]
5052
- required :payment_gate_type,
5053
- enum: -> {
5054
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType
5055
- }
5056
-
5057
- # @!attribute precalculated_tax_config
5058
- # Only applicable if using PRECALCULATED as your tax type.
5059
- #
5060
- # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig, nil]
5061
- optional :precalculated_tax_config,
5062
- -> {
5063
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
5064
- }
5065
-
5066
- # @!attribute stripe_config
5067
- # Only applicable if using STRIPE as your payment gateway type.
5068
- #
5069
- # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
5070
- optional :stripe_config,
5071
- -> {
5072
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig
5073
- }
5074
-
5075
- # @!attribute tax_type
5076
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
5077
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
5078
- # will default to NONE.
5079
- #
5080
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType, nil]
5081
- optional :tax_type,
5082
- enum: -> {
5083
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType
5084
- }
5085
-
5086
- # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
5087
- # Some parameter documentations has been truncated, see
5088
- # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig}
5089
- # for more details.
5090
- #
5091
- # @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
5092
- #
5093
- # @param precalculated_tax_config [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
5094
- #
5095
- # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gateway type.
5096
- #
5097
- # @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
5098
-
5099
- # Gate access to the commit balance based on successful collection of payment.
5100
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
5101
- # facilitate payment using your own payment integration. Select NONE if you do not
5102
- # wish to payment gate the commit balance.
5103
- #
5104
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig#payment_gate_type
5105
- module PaymentGateType
5106
- extend MetronomeSDK::Internal::Type::Enum
5107
-
5108
- NONE = :NONE
5109
- STRIPE = :STRIPE
5110
- EXTERNAL = :EXTERNAL
5111
-
5112
- # @!method self.values
5113
- # @return [Array<Symbol>]
5114
- end
5115
-
5116
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig#precalculated_tax_config
5117
- class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
5118
- # @!attribute tax_amount
5119
- # Amount of tax to be applied. This should be in the same currency and
5120
- # denomination as the commit's invoice schedule
5121
- #
5122
- # @return [Float]
5123
- required :tax_amount, Float
5124
-
5125
- # @!attribute tax_name
5126
- # Name of the tax to be applied. This may be used in an invoice line item
5127
- # description.
5128
- #
5129
- # @return [String, nil]
5130
- optional :tax_name, String
5131
-
5132
- # @!method initialize(tax_amount:, tax_name: nil)
5133
- # Some parameter documentations has been truncated, see
5134
- # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig}
5135
- # for more details.
5136
- #
5137
- # Only applicable if using PRECALCULATED as your tax type.
5138
- #
5139
- # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
5140
- #
5141
- # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
5142
- end
3497
+ # commit amount will be in terms of this credit type instead of the fiat currency.
3498
+ #
3499
+ # @return [String, nil]
3500
+ optional :custom_credit_type_id, String, nil?: true
5143
3501
 
5144
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig#stripe_config
5145
- class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
5146
- # @!attribute payment_type
5147
- # If left blank, will default to INVOICE
5148
- #
5149
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
5150
- required :payment_type,
5151
- enum: -> {
5152
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
5153
- }
3502
+ # @!attribute is_enabled
3503
+ # When set to false, the contract will not be evaluated against the
3504
+ # threshold_amount. Toggling to true will result an immediate evaluation,
3505
+ # regardless of prior state.
3506
+ #
3507
+ # @return [Boolean, nil]
3508
+ optional :is_enabled, MetronomeSDK::Internal::Type::Boolean
5154
3509
 
5155
- # @!attribute invoice_metadata
5156
- # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
5157
- # your payment type.
5158
- #
5159
- # @return [Hash{Symbol=>String}, nil]
5160
- optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
3510
+ # @!attribute payment_gate_config
3511
+ #
3512
+ # @return [MetronomeSDK::Models::PaymentGateConfigV2, nil]
3513
+ optional :payment_gate_config, -> { MetronomeSDK::PaymentGateConfigV2 }
5161
3514
 
5162
- # @!method initialize(payment_type:, invoice_metadata: nil)
5163
- # Some parameter documentations has been truncated, see
5164
- # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig}
5165
- # for more details.
5166
- #
5167
- # Only applicable if using STRIPE as your payment gateway type.
5168
- #
5169
- # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
5170
- #
5171
- # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
3515
+ # @!attribute recharge_to_amount
3516
+ # Specify the amount the balance should be recharged to.
3517
+ #
3518
+ # @return [Float, nil]
3519
+ optional :recharge_to_amount, Float
5172
3520
 
5173
- # If left blank, will default to INVOICE
5174
- #
5175
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
5176
- module PaymentType
5177
- extend MetronomeSDK::Internal::Type::Enum
3521
+ # @!attribute threshold_amount
3522
+ # Specify the threshold amount for the contract. Each time the contract's balance
3523
+ # lowers to this amount, a threshold charge will be initiated.
3524
+ #
3525
+ # @return [Float, nil]
3526
+ optional :threshold_amount, Float
5178
3527
 
5179
- INVOICE = :INVOICE
5180
- PAYMENT_INTENT = :PAYMENT_INTENT
3528
+ # @!method initialize(commit: nil, custom_credit_type_id: nil, is_enabled: nil, payment_gate_config: nil, recharge_to_amount: nil, threshold_amount: nil)
3529
+ # Some parameter documentations has been truncated, see
3530
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration}
3531
+ # for more details.
3532
+ #
3533
+ # @param commit [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit]
3534
+ #
3535
+ # @param custom_credit_type_id [String, nil] If provided, the threshold, recharge-to amount, and the resulting threshold comm
3536
+ #
3537
+ # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
3538
+ #
3539
+ # @param payment_gate_config [MetronomeSDK::Models::PaymentGateConfigV2]
3540
+ #
3541
+ # @param recharge_to_amount [Float] Specify the amount the balance should be recharged to.
3542
+ #
3543
+ # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's balance
5181
3544
 
5182
- # @!method self.values
5183
- # @return [Array<Symbol>]
5184
- end
5185
- end
3545
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration#commit
3546
+ class Commit < MetronomeSDK::Models::UpdateBaseThresholdCommit
3547
+ # @!attribute applicable_product_ids
3548
+ # Which products the threshold commit applies to. If both applicable_product_ids
3549
+ # and applicable_product_tags are not provided, the commit applies to all
3550
+ # products.
3551
+ #
3552
+ # @return [Array<String>, nil]
3553
+ optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
5186
3554
 
5187
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
5188
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
5189
- # will default to NONE.
3555
+ # @!attribute applicable_product_tags
3556
+ # Which tags the threshold commit applies to. If both applicable_product_ids and
3557
+ # applicable_product_tags are not provided, the commit applies to all products.
5190
3558
  #
5191
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig#tax_type
5192
- module TaxType
5193
- extend MetronomeSDK::Internal::Type::Enum
3559
+ # @return [Array<String>, nil]
3560
+ optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
5194
3561
 
5195
- NONE = :NONE
5196
- STRIPE = :STRIPE
5197
- ANROK = :ANROK
5198
- PRECALCULATED = :PRECALCULATED
3562
+ # @!attribute specifiers
3563
+ # List of filters that determine what kind of customer usage draws down a commit
3564
+ # or credit. A customer's usage needs to meet the condition of at least one of the
3565
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
3566
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
3567
+ # Instead, to target usage by product or product tag, pass those values in the
3568
+ # body of `specifiers`.
3569
+ #
3570
+ # @return [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil]
3571
+ optional :specifiers,
3572
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifierInput] },
3573
+ nil?: true
5199
3574
 
5200
- # @!method self.values
5201
- # @return [Array<Symbol>]
5202
- end
3575
+ # @!method initialize(applicable_product_ids: nil, applicable_product_tags: nil, specifiers: nil)
3576
+ # Some parameter documentations has been truncated, see
3577
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit}
3578
+ # for more details.
3579
+ #
3580
+ # @param applicable_product_ids [Array<String>, nil] Which products the threshold commit applies to. If both applicable_product_ids a
3581
+ #
3582
+ # @param applicable_product_tags [Array<String>, nil] Which tags the threshold commit applies to. If both applicable_product_ids and a
3583
+ #
3584
+ # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil] List of filters that determine what kind of customer usage draws down a commit o
5203
3585
  end
5204
3586
  end
5205
3587
 
@@ -5212,10 +3594,7 @@ module MetronomeSDK
5212
3594
  # @!attribute access_amount
5213
3595
  #
5214
3596
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::AccessAmount, nil]
5215
- optional :access_amount,
5216
- -> {
5217
- MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit::AccessAmount
5218
- }
3597
+ optional :access_amount, -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit::AccessAmount }
5219
3598
 
5220
3599
  # @!attribute ending_before
5221
3600
  #
@@ -5278,10 +3657,7 @@ module MetronomeSDK
5278
3657
  # @!attribute access_amount
5279
3658
  #
5280
3659
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::AccessAmount, nil]
5281
- optional :access_amount,
5282
- -> {
5283
- MetronomeSDK::V2::ContractEditParams::UpdateRecurringCredit::AccessAmount
5284
- }
3660
+ optional :access_amount, -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCredit::AccessAmount }
5285
3661
 
5286
3662
  # @!attribute ending_before
5287
3663
  #
@@ -5339,25 +3715,19 @@ module MetronomeSDK
5339
3715
  #
5340
3716
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::AddScheduleItem>, nil]
5341
3717
  optional :add_schedule_items,
5342
- -> {
5343
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::AddScheduleItem]
5344
- }
3718
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::AddScheduleItem] }
5345
3719
 
5346
3720
  # @!attribute remove_schedule_items
5347
3721
  #
5348
3722
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::RemoveScheduleItem>, nil]
5349
3723
  optional :remove_schedule_items,
5350
- -> {
5351
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::RemoveScheduleItem]
5352
- }
3724
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::RemoveScheduleItem] }
5353
3725
 
5354
3726
  # @!attribute update_schedule_items
5355
3727
  #
5356
3728
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::UpdateScheduleItem>, nil]
5357
3729
  optional :update_schedule_items,
5358
- -> {
5359
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::UpdateScheduleItem]
5360
- }
3730
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::UpdateScheduleItem] }
5361
3731
 
5362
3732
  # @!method initialize(add_schedule_items: nil, remove_schedule_items: nil, update_schedule_items: nil)
5363
3733
  # @param add_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::AddScheduleItem>]
@@ -5441,11 +3811,8 @@ module MetronomeSDK
5441
3811
  class UpdateSpendThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
5442
3812
  # @!attribute commit
5443
3813
  #
5444
- # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::Commit, nil]
5445
- optional :commit,
5446
- -> {
5447
- MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::Commit
5448
- }
3814
+ # @return [MetronomeSDK::Models::UpdateBaseThresholdCommit, nil]
3815
+ optional :commit, -> { MetronomeSDK::UpdateBaseThresholdCommit }
5449
3816
 
5450
3817
  # @!attribute is_enabled
5451
3818
  # When set to false, the contract will not be evaluated against the
@@ -5457,11 +3824,8 @@ module MetronomeSDK
5457
3824
 
5458
3825
  # @!attribute payment_gate_config
5459
3826
  #
5460
- # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig, nil]
5461
- optional :payment_gate_config,
5462
- -> {
5463
- MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig
5464
- }
3827
+ # @return [MetronomeSDK::Models::PaymentGateConfigV2, nil]
3828
+ optional :payment_gate_config, -> { MetronomeSDK::PaymentGateConfigV2 }
5465
3829
 
5466
3830
  # @!attribute threshold_amount
5467
3831
  # Specify the threshold amount for the contract. Each time the contract's usage
@@ -5475,208 +3839,13 @@ module MetronomeSDK
5475
3839
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration}
5476
3840
  # for more details.
5477
3841
  #
5478
- # @param commit [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::Commit]
3842
+ # @param commit [MetronomeSDK::Models::UpdateBaseThresholdCommit]
5479
3843
  #
5480
3844
  # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
5481
3845
  #
5482
- # @param payment_gate_config [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig]
3846
+ # @param payment_gate_config [MetronomeSDK::Models::PaymentGateConfigV2]
5483
3847
  #
5484
3848
  # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's usage hi
5485
-
5486
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration#commit
5487
- class Commit < MetronomeSDK::Internal::Type::BaseModel
5488
- # @!attribute description
5489
- #
5490
- # @return [String, nil]
5491
- optional :description, String
5492
-
5493
- # @!attribute name
5494
- # Specify the name of the line item for the threshold charge. If left blank, it
5495
- # will default to the commit product name.
5496
- #
5497
- # @return [String, nil]
5498
- optional :name, String
5499
-
5500
- # @!attribute product_id
5501
- # The commit product that will be used to generate the line item for commit
5502
- # payment.
5503
- #
5504
- # @return [String, nil]
5505
- optional :product_id, String
5506
-
5507
- # @!method initialize(description: nil, name: nil, product_id: nil)
5508
- # Some parameter documentations has been truncated, see
5509
- # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::Commit}
5510
- # for more details.
5511
- #
5512
- # @param description [String]
5513
- #
5514
- # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
5515
- #
5516
- # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
5517
- end
5518
-
5519
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration#payment_gate_config
5520
- class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
5521
- # @!attribute payment_gate_type
5522
- # Gate access to the commit balance based on successful collection of payment.
5523
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
5524
- # facilitate payment using your own payment integration. Select NONE if you do not
5525
- # wish to payment gate the commit balance.
5526
- #
5527
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType]
5528
- required :payment_gate_type,
5529
- enum: -> {
5530
- MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType
5531
- }
5532
-
5533
- # @!attribute precalculated_tax_config
5534
- # Only applicable if using PRECALCULATED as your tax type.
5535
- #
5536
- # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig, nil]
5537
- optional :precalculated_tax_config,
5538
- -> {
5539
- MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
5540
- }
5541
-
5542
- # @!attribute stripe_config
5543
- # Only applicable if using STRIPE as your payment gateway type.
5544
- #
5545
- # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
5546
- optional :stripe_config,
5547
- -> {
5548
- MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig
5549
- }
5550
-
5551
- # @!attribute tax_type
5552
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
5553
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
5554
- # will default to NONE.
5555
- #
5556
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType, nil]
5557
- optional :tax_type,
5558
- enum: -> {
5559
- MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType
5560
- }
5561
-
5562
- # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
5563
- # Some parameter documentations has been truncated, see
5564
- # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig}
5565
- # for more details.
5566
- #
5567
- # @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
5568
- #
5569
- # @param precalculated_tax_config [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
5570
- #
5571
- # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gateway type.
5572
- #
5573
- # @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
5574
-
5575
- # Gate access to the commit balance based on successful collection of payment.
5576
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
5577
- # facilitate payment using your own payment integration. Select NONE if you do not
5578
- # wish to payment gate the commit balance.
5579
- #
5580
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig#payment_gate_type
5581
- module PaymentGateType
5582
- extend MetronomeSDK::Internal::Type::Enum
5583
-
5584
- NONE = :NONE
5585
- STRIPE = :STRIPE
5586
- EXTERNAL = :EXTERNAL
5587
-
5588
- # @!method self.values
5589
- # @return [Array<Symbol>]
5590
- end
5591
-
5592
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig#precalculated_tax_config
5593
- class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
5594
- # @!attribute tax_amount
5595
- # Amount of tax to be applied. This should be in the same currency and
5596
- # denomination as the commit's invoice schedule
5597
- #
5598
- # @return [Float]
5599
- required :tax_amount, Float
5600
-
5601
- # @!attribute tax_name
5602
- # Name of the tax to be applied. This may be used in an invoice line item
5603
- # description.
5604
- #
5605
- # @return [String, nil]
5606
- optional :tax_name, String
5607
-
5608
- # @!method initialize(tax_amount:, tax_name: nil)
5609
- # Some parameter documentations has been truncated, see
5610
- # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig}
5611
- # for more details.
5612
- #
5613
- # Only applicable if using PRECALCULATED as your tax type.
5614
- #
5615
- # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
5616
- #
5617
- # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
5618
- end
5619
-
5620
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig#stripe_config
5621
- class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
5622
- # @!attribute payment_type
5623
- # If left blank, will default to INVOICE
5624
- #
5625
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
5626
- required :payment_type,
5627
- enum: -> {
5628
- MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
5629
- }
5630
-
5631
- # @!attribute invoice_metadata
5632
- # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
5633
- # your payment type.
5634
- #
5635
- # @return [Hash{Symbol=>String}, nil]
5636
- optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
5637
-
5638
- # @!method initialize(payment_type:, invoice_metadata: nil)
5639
- # Some parameter documentations has been truncated, see
5640
- # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig}
5641
- # for more details.
5642
- #
5643
- # Only applicable if using STRIPE as your payment gateway type.
5644
- #
5645
- # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
5646
- #
5647
- # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
5648
-
5649
- # If left blank, will default to INVOICE
5650
- #
5651
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
5652
- module PaymentType
5653
- extend MetronomeSDK::Internal::Type::Enum
5654
-
5655
- INVOICE = :INVOICE
5656
- PAYMENT_INTENT = :PAYMENT_INTENT
5657
-
5658
- # @!method self.values
5659
- # @return [Array<Symbol>]
5660
- end
5661
- end
5662
-
5663
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
5664
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
5665
- # will default to NONE.
5666
- #
5667
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig#tax_type
5668
- module TaxType
5669
- extend MetronomeSDK::Internal::Type::Enum
5670
-
5671
- NONE = :NONE
5672
- STRIPE = :STRIPE
5673
- ANROK = :ANROK
5674
- PRECALCULATED = :PRECALCULATED
5675
-
5676
- # @!method self.values
5677
- # @return [Array<Symbol>]
5678
- end
5679
- end
5680
3849
  end
5681
3850
 
5682
3851
  class UpdateSubscription < MetronomeSDK::Internal::Type::BaseModel
@@ -5697,9 +3866,7 @@ module MetronomeSDK
5697
3866
  #
5698
3867
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityUpdate>, nil]
5699
3868
  optional :quantity_updates,
5700
- -> {
5701
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityUpdate]
5702
- }
3869
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityUpdate] }
5703
3870
 
5704
3871
  # @!method initialize(subscription_id:, ending_before: nil, quantity_updates: nil)
5705
3872
  # Some parameter documentations has been truncated, see