metronome-sdk 0.3.0 → 2.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 (363) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +91 -0
  3. data/README.md +9 -9
  4. data/lib/metronome_sdk/errors.rb +25 -11
  5. data/lib/metronome_sdk/file_part.rb +10 -7
  6. data/lib/metronome_sdk/internal/body_cursor_page.rb +86 -0
  7. data/lib/metronome_sdk/internal/cursor_page.rb +1 -1
  8. data/lib/metronome_sdk/internal/cursor_page_without_limit.rb +86 -0
  9. data/lib/metronome_sdk/internal/transport/base_client.rb +12 -11
  10. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +8 -19
  11. data/lib/metronome_sdk/internal/type/base_model.rb +6 -13
  12. data/lib/metronome_sdk/internal/type/base_page.rb +1 -1
  13. data/lib/metronome_sdk/internal/type/enum.rb +25 -0
  14. data/lib/metronome_sdk/internal/type/file_input.rb +7 -4
  15. data/lib/metronome_sdk/internal/type/union.rb +11 -0
  16. data/lib/metronome_sdk/internal/util.rb +9 -8
  17. data/lib/metronome_sdk/models/base_threshold_commit.rb +36 -0
  18. data/lib/metronome_sdk/models/commit.rb +26 -170
  19. data/lib/metronome_sdk/models/commit_hierarchy_configuration.rb +98 -0
  20. data/lib/metronome_sdk/models/commit_rate.rb +48 -0
  21. data/lib/metronome_sdk/models/commit_specifier.rb +42 -0
  22. data/lib/metronome_sdk/models/commit_specifier_input.rb +42 -0
  23. data/lib/metronome_sdk/models/contract.rb +404 -0
  24. data/lib/metronome_sdk/models/contract_v2.rb +3169 -0
  25. data/lib/metronome_sdk/models/contract_without_amendments.rb +38 -1128
  26. data/lib/metronome_sdk/models/credit.rb +9 -156
  27. data/lib/metronome_sdk/models/discount.rb +2 -1
  28. data/lib/metronome_sdk/models/hierarchy_configuration.rb +173 -0
  29. data/lib/metronome_sdk/models/override.rb +6 -101
  30. data/lib/metronome_sdk/models/override_tier.rb +21 -0
  31. data/lib/metronome_sdk/models/overwrite_rate.rb +82 -0
  32. data/lib/metronome_sdk/models/payment_gate_config.rb +150 -0
  33. data/lib/metronome_sdk/models/payment_gate_config_v2.rb +150 -0
  34. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +100 -0
  35. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +102 -0
  36. data/lib/metronome_sdk/models/pro_service.rb +2 -1
  37. data/lib/metronome_sdk/models/recurring_commit_subscription_config.rb +51 -0
  38. data/lib/metronome_sdk/models/scheduled_charge.rb +2 -1
  39. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +44 -0
  40. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +44 -0
  41. data/lib/metronome_sdk/models/subscription.rb +311 -0
  42. data/lib/metronome_sdk/models/update_base_threshold_commit.rb +36 -0
  43. data/lib/metronome_sdk/models/v1/alert_archive_params.rb +8 -4
  44. data/lib/metronome_sdk/models/v1/alert_create_params.rb +42 -42
  45. data/lib/metronome_sdk/models/v1/billable_metric_create_params.rb +1 -2
  46. data/lib/metronome_sdk/models/v1/billable_metric_list_response.rb +3 -3
  47. data/lib/metronome_sdk/models/v1/billable_metric_retrieve_response.rb +4 -7
  48. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +58 -411
  49. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_params.rb +7 -16
  50. data/lib/metronome_sdk/models/v1/contract_create_params.rb +315 -1459
  51. data/lib/metronome_sdk/models/v1/contract_list_balances_response.rb +6 -23
  52. data/lib/metronome_sdk/models/v1/contract_list_response.rb +3 -1153
  53. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rb +2 -6
  54. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rb +5 -50
  55. data/lib/metronome_sdk/models/v1/contract_retrieve_response.rb +3 -1154
  56. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_params.rb +1 -3
  57. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +2 -1
  58. data/lib/metronome_sdk/models/v1/contracts/product_list_response.rb +8 -1
  59. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_response.rb +8 -1
  60. data/lib/metronome_sdk/models/v1/contracts/quantity_rounding.rb +1 -4
  61. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_params.rb +4 -7
  62. data/lib/metronome_sdk/models/v1/contracts/rate_card_list_response.rb +10 -1
  63. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rb +2 -6
  64. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rb +5 -50
  65. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rb +10 -1
  66. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_params.rb +1 -3
  67. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_params.rb +1 -3
  68. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +6 -61
  69. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +3 -49
  70. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +4 -51
  71. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rb +2 -6
  72. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rb +5 -49
  73. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_response.rb +103 -123
  74. data/lib/metronome_sdk/models/v1/credit_grant_list_response.rb +3 -5
  75. data/lib/metronome_sdk/models/v1/custom_field_list_keys_params.rb +1 -3
  76. data/lib/metronome_sdk/models/v1/custom_field_list_keys_response.rb +41 -58
  77. data/lib/metronome_sdk/models/v1/custom_field_set_values_params.rb +5 -1
  78. data/lib/metronome_sdk/models/v1/customer.rb +2 -1
  79. data/lib/metronome_sdk/models/v1/customer_create_params.rb +37 -11
  80. data/lib/metronome_sdk/models/v1/customer_detail.rb +11 -2
  81. data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_response.rb +3 -3
  82. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +6 -18
  83. data/lib/metronome_sdk/models/v1/customer_preview_events_response.rb +3 -3
  84. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rb +28 -0
  85. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rb +128 -0
  86. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb +143 -0
  87. data/lib/metronome_sdk/models/v1/customers/alert_list_params.rb +4 -6
  88. data/lib/metronome_sdk/models/v1/customers/alert_reset_params.rb +2 -2
  89. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +37 -8
  90. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +2 -0
  91. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +2 -0
  92. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +10 -60
  93. data/lib/metronome_sdk/models/v1/customers/credit_create_params.rb +6 -48
  94. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +48 -54
  95. data/lib/metronome_sdk/models/v1/customers/invoice.rb +197 -66
  96. data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_params.rb +1 -4
  97. data/lib/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rb +30 -0
  98. data/lib/metronome_sdk/models/v1/customers/plan_add_params.rb +2 -6
  99. data/lib/metronome_sdk/models/v1/customers/plan_list_response.rb +2 -1
  100. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +4 -11
  101. data/lib/metronome_sdk/models/v1/payment.rb +151 -0
  102. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +28 -0
  103. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +18 -0
  104. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +28 -0
  105. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +18 -0
  106. data/lib/metronome_sdk/models/v1/payment_list_params.rb +53 -0
  107. data/lib/metronome_sdk/models/v1/payment_status.rb +19 -0
  108. data/lib/metronome_sdk/models/v1/plan_detail.rb +9 -5
  109. data/lib/metronome_sdk/models/v1/plan_list_charges_response.rb +2 -1
  110. data/lib/metronome_sdk/models/v1/plan_list_customers_response.rb +2 -1
  111. data/lib/metronome_sdk/models/v1/plan_list_response.rb +5 -1
  112. data/lib/metronome_sdk/models/v1/usage_ingest_params.rb +1 -4
  113. data/lib/metronome_sdk/models/v1/usage_list_params.rb +1 -3
  114. data/lib/metronome_sdk/models/v1/usage_list_response.rb +45 -62
  115. data/lib/metronome_sdk/models/v1/usage_search_response.rb +4 -7
  116. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +37 -58
  117. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +34 -49
  118. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +552 -2265
  119. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +417 -2317
  120. data/lib/metronome_sdk/models/v2/contract_list_response.rb +3 -4520
  121. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +3 -4528
  122. data/lib/metronome_sdk/models.rb +38 -0
  123. data/lib/metronome_sdk/resources/v1/alerts.rb +90 -16
  124. data/lib/metronome_sdk/resources/v1/audit_logs.rb +39 -4
  125. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +54 -4
  126. data/lib/metronome_sdk/resources/v1/contracts/products.rb +25 -6
  127. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rb +7 -2
  128. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +10 -2
  129. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +109 -10
  130. data/lib/metronome_sdk/resources/v1/contracts.rb +255 -18
  131. data/lib/metronome_sdk/resources/v1/credit_grants.rb +2 -1
  132. data/lib/metronome_sdk/resources/v1/custom_fields.rb +51 -14
  133. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +127 -13
  134. data/lib/metronome_sdk/resources/v1/customers/commits.rb +119 -9
  135. data/lib/metronome_sdk/resources/v1/customers/credits.rb +104 -8
  136. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +179 -8
  137. data/lib/metronome_sdk/resources/v1/customers.rb +175 -15
  138. data/lib/metronome_sdk/resources/v1/dashboards.rb +29 -3
  139. data/lib/metronome_sdk/resources/v1/invoices.rb +23 -2
  140. data/lib/metronome_sdk/resources/v1/payments.rb +102 -0
  141. data/lib/metronome_sdk/resources/v1/pricing_units.rb +6 -1
  142. data/lib/metronome_sdk/resources/v1/services.rb +6 -4
  143. data/lib/metronome_sdk/resources/v1/usage.rb +188 -13
  144. data/lib/metronome_sdk/resources/v1.rb +4 -0
  145. data/lib/metronome_sdk/resources/v2/contracts.rb +120 -18
  146. data/lib/metronome_sdk/version.rb +1 -1
  147. data/lib/metronome_sdk.rb +33 -3
  148. data/rbi/metronome_sdk/errors.rbi +31 -4
  149. data/rbi/metronome_sdk/file_part.rbi +1 -1
  150. data/rbi/metronome_sdk/internal/body_cursor_page.rbi +22 -0
  151. data/rbi/metronome_sdk/internal/cursor_page_without_limit.rbi +22 -0
  152. data/rbi/metronome_sdk/internal/transport/base_client.rbi +4 -5
  153. data/rbi/metronome_sdk/internal/type/base_page.rbi +1 -1
  154. data/rbi/metronome_sdk/internal/util.rbi +1 -1
  155. data/rbi/metronome_sdk/models/base_threshold_commit.rbi +58 -0
  156. data/rbi/metronome_sdk/models/commit.rbi +26 -348
  157. data/rbi/metronome_sdk/models/commit_hierarchy_configuration.rbi +280 -0
  158. data/rbi/metronome_sdk/models/commit_rate.rbi +85 -0
  159. data/rbi/metronome_sdk/models/commit_specifier.rbi +71 -0
  160. data/rbi/metronome_sdk/models/commit_specifier_input.rbi +74 -0
  161. data/rbi/metronome_sdk/models/contract.rbi +768 -0
  162. data/rbi/metronome_sdk/models/contract_v2.rbi +6415 -0
  163. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +186 -2509
  164. data/rbi/metronome_sdk/models/credit.rbi +10 -348
  165. data/rbi/metronome_sdk/models/discount.rbi +2 -0
  166. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +424 -0
  167. data/rbi/metronome_sdk/models/override.rbi +8 -193
  168. data/rbi/metronome_sdk/models/override_tier.rbi +29 -0
  169. data/rbi/metronome_sdk/models/overwrite_rate.rbi +137 -0
  170. data/rbi/metronome_sdk/models/payment_gate_config.rbi +317 -0
  171. data/rbi/metronome_sdk/models/payment_gate_config_v2.rbi +326 -0
  172. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +183 -0
  173. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +188 -0
  174. data/rbi/metronome_sdk/models/pro_service.rbi +2 -0
  175. data/rbi/metronome_sdk/models/recurring_commit_subscription_config.rbi +125 -0
  176. data/rbi/metronome_sdk/models/scheduled_charge.rbi +2 -0
  177. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +76 -0
  178. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -0
  179. data/rbi/metronome_sdk/models/subscription.rbi +635 -0
  180. data/rbi/metronome_sdk/models/update_base_threshold_commit.rbi +61 -0
  181. data/rbi/metronome_sdk/models/v1/alert_archive_params.rbi +6 -4
  182. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +57 -50
  183. data/rbi/metronome_sdk/models/v1/billable_metric_list_response.rbi +2 -0
  184. data/rbi/metronome_sdk/models/v1/billable_metric_retrieve_response.rbi +2 -0
  185. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +49 -768
  186. data/rbi/metronome_sdk/models/v1/contract_create_historical_invoices_params.rbi +2 -0
  187. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1843 -4119
  188. data/rbi/metronome_sdk/models/v1/contract_list_balances_response.rbi +8 -59
  189. data/rbi/metronome_sdk/models/v1/contract_list_response.rbi +5 -2420
  190. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbi +6 -129
  191. data/rbi/metronome_sdk/models/v1/contract_retrieve_response.rbi +4 -2419
  192. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +2 -0
  193. data/rbi/metronome_sdk/models/v1/contracts/product_list_response.rbi +2 -0
  194. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_response.rbi +2 -0
  195. data/rbi/metronome_sdk/models/v1/contracts/rate_card_create_params.rbi +2 -0
  196. data/rbi/metronome_sdk/models/v1/contracts/rate_card_list_response.rbi +2 -0
  197. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbi +6 -129
  198. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbi +2 -0
  199. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +4 -129
  200. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +4 -129
  201. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +4 -129
  202. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbi +6 -129
  203. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_response.rbi +147 -198
  204. data/rbi/metronome_sdk/models/v1/credit_grant_list_response.rbi +2 -0
  205. data/rbi/metronome_sdk/models/v1/custom_field_list_keys_response.rbi +117 -165
  206. data/rbi/metronome_sdk/models/v1/custom_field_set_values_params.rbi +8 -1
  207. data/rbi/metronome_sdk/models/v1/customer.rbi +2 -0
  208. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +88 -3
  209. data/rbi/metronome_sdk/models/v1/customer_detail.rbi +10 -0
  210. data/rbi/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbi +2 -0
  211. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +6 -21
  212. data/rbi/metronome_sdk/models/v1/customer_preview_events_response.rbi +10 -9
  213. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbi +51 -0
  214. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbi +265 -0
  215. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbi +348 -0
  216. data/rbi/metronome_sdk/models/v1/customers/alert_list_params.rbi +4 -4
  217. data/rbi/metronome_sdk/models/v1/customers/alert_reset_params.rbi +2 -2
  218. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +68 -8
  219. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +10 -0
  220. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +10 -0
  221. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +6 -90
  222. data/rbi/metronome_sdk/models/v1/customers/credit_create_params.rbi +6 -90
  223. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +54 -47
  224. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +316 -68
  225. data/rbi/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rbi +50 -0
  226. data/rbi/metronome_sdk/models/v1/customers/plan_list_response.rbi +2 -0
  227. data/rbi/metronome_sdk/models/v1/payment.rbi +316 -0
  228. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +48 -0
  229. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +35 -0
  230. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +48 -0
  231. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +35 -0
  232. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +91 -0
  233. data/rbi/metronome_sdk/models/v1/payment_status.rbi +33 -0
  234. data/rbi/metronome_sdk/models/v1/plan_detail.rbi +2 -0
  235. data/rbi/metronome_sdk/models/v1/plan_list_charges_response.rbi +2 -0
  236. data/rbi/metronome_sdk/models/v1/plan_list_customers_response.rbi +2 -0
  237. data/rbi/metronome_sdk/models/v1/plan_list_response.rbi +8 -1
  238. data/rbi/metronome_sdk/models/v1/usage_list_response.rbi +45 -86
  239. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +2 -0
  240. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +74 -76
  241. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +74 -76
  242. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +3875 -7234
  243. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1733 -6207
  244. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +5 -9867
  245. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +6 -9866
  246. data/rbi/metronome_sdk/models.rbi +44 -0
  247. data/rbi/metronome_sdk/resources/v1/alerts.rbi +101 -27
  248. data/rbi/metronome_sdk/resources/v1/audit_logs.rbi +39 -4
  249. data/rbi/metronome_sdk/resources/v1/billable_metrics.rbi +54 -4
  250. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +25 -5
  251. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rbi +7 -2
  252. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +10 -3
  253. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards.rbi +109 -9
  254. data/rbi/metronome_sdk/resources/v1/contracts.rbi +258 -16
  255. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +5 -1
  256. data/rbi/metronome_sdk/resources/v1/custom_fields.rbi +57 -14
  257. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +133 -11
  258. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +119 -10
  259. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +104 -9
  260. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +159 -7
  261. data/rbi/metronome_sdk/resources/v1/customers.rbi +162 -14
  262. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +29 -3
  263. data/rbi/metronome_sdk/resources/v1/invoices.rbi +23 -2
  264. data/rbi/metronome_sdk/resources/v1/payments.rbi +72 -0
  265. data/rbi/metronome_sdk/resources/v1/pricing_units.rbi +6 -1
  266. data/rbi/metronome_sdk/resources/v1/services.rbi +6 -4
  267. data/rbi/metronome_sdk/resources/v1/usage.rbi +191 -13
  268. data/rbi/metronome_sdk/resources/v1.rbi +3 -0
  269. data/rbi/metronome_sdk/resources/v2/contracts.rbi +134 -23
  270. data/sig/metronome_sdk/errors.rbs +7 -0
  271. data/sig/metronome_sdk/file_part.rbs +1 -1
  272. data/sig/metronome_sdk/internal/body_cursor_page.rbs +13 -0
  273. data/sig/metronome_sdk/internal/cursor_page_without_limit.rbs +13 -0
  274. data/sig/metronome_sdk/models/base_threshold_commit.rbs +26 -0
  275. data/sig/metronome_sdk/models/commit.rbs +17 -170
  276. data/sig/metronome_sdk/models/commit_hierarchy_configuration.rbs +117 -0
  277. data/sig/metronome_sdk/models/commit_rate.rbs +48 -0
  278. data/sig/metronome_sdk/models/commit_specifier.rbs +47 -0
  279. data/sig/metronome_sdk/models/commit_specifier_input.rbs +47 -0
  280. data/sig/metronome_sdk/models/contract.rbs +398 -0
  281. data/sig/metronome_sdk/models/contract_v2.rbs +3108 -0
  282. data/sig/metronome_sdk/models/contract_without_amendments.rbs +54 -976
  283. data/sig/metronome_sdk/models/credit.rbs +12 -170
  284. data/sig/metronome_sdk/models/hierarchy_configuration.rbs +152 -0
  285. data/sig/metronome_sdk/models/override.rbs +12 -101
  286. data/sig/metronome_sdk/models/override_tier.rbs +17 -0
  287. data/sig/metronome_sdk/models/overwrite_rate.rbs +78 -0
  288. data/sig/metronome_sdk/models/payment_gate_config.rbs +124 -0
  289. data/sig/metronome_sdk/models/payment_gate_config_v2.rbs +124 -0
  290. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +82 -0
  291. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +82 -0
  292. data/sig/metronome_sdk/models/recurring_commit_subscription_config.rbs +51 -0
  293. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +35 -0
  294. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +35 -0
  295. data/sig/metronome_sdk/models/subscription.rbs +295 -0
  296. data/sig/metronome_sdk/models/update_base_threshold_commit.rbs +28 -0
  297. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +4 -2
  298. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +26 -341
  299. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +219 -1184
  300. data/sig/metronome_sdk/models/v1/contract_list_balances_response.rbs +4 -25
  301. data/sig/metronome_sdk/models/v1/contract_list_response.rbs +4 -1041
  302. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbs +6 -54
  303. data/sig/metronome_sdk/models/v1/contract_retrieve_response.rbs +4 -1041
  304. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbs +6 -54
  305. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +6 -54
  306. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +6 -54
  307. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +6 -54
  308. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbs +6 -54
  309. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_response.rbs +72 -94
  310. data/sig/metronome_sdk/models/v1/custom_field_list_keys_response.rbs +53 -75
  311. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +31 -4
  312. data/sig/metronome_sdk/models/v1/customer_detail.rbs +5 -0
  313. data/sig/metronome_sdk/models/v1/customer_preview_events_params.rbs +0 -7
  314. data/sig/metronome_sdk/models/v1/customer_preview_events_response.rbs +6 -4
  315. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbs +32 -0
  316. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbs +113 -0
  317. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbs +133 -0
  318. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +21 -0
  319. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +7 -1
  320. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +6 -1
  321. data/sig/metronome_sdk/models/v1/customers/commit_create_params.rbs +6 -50
  322. data/sig/metronome_sdk/models/v1/customers/credit_create_params.rbs +6 -50
  323. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +4 -2
  324. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +137 -24
  325. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rbs +32 -0
  326. data/sig/metronome_sdk/models/v1/payment.rbs +191 -0
  327. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +30 -0
  328. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +15 -0
  329. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +30 -0
  330. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +15 -0
  331. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +56 -0
  332. data/sig/metronome_sdk/models/v1/payment_status.rbs +19 -0
  333. data/sig/metronome_sdk/models/v1/usage_list_response.rbs +33 -55
  334. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +28 -43
  335. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +28 -43
  336. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +412 -1793
  337. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +342 -2149
  338. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +4 -4426
  339. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +4 -4426
  340. data/sig/metronome_sdk/models.rbs +38 -0
  341. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -1
  342. data/sig/metronome_sdk/resources/v1/contracts.rbs +3 -3
  343. data/sig/metronome_sdk/resources/v1/credit_grants.rbs +1 -1
  344. data/sig/metronome_sdk/resources/v1/custom_fields.rbs +1 -1
  345. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +2 -1
  346. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +2 -2
  347. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +2 -2
  348. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +6 -0
  349. data/sig/metronome_sdk/resources/v1/customers.rbs +11 -0
  350. data/sig/metronome_sdk/resources/v1/payments.rbs +30 -0
  351. data/sig/metronome_sdk/resources/v1/usage.rbs +1 -1
  352. data/sig/metronome_sdk/resources/v1.rbs +2 -0
  353. data/sig/metronome_sdk/resources/v2/contracts.rbs +10 -4
  354. metadata +101 -11
  355. data/lib/metronome_sdk/models/v1/customers/alert_list_response.rb +0 -29
  356. data/lib/metronome_sdk/models/v1/customers/commit_list_response.rb +0 -26
  357. data/lib/metronome_sdk/models/v1/customers/credit_list_response.rb +0 -26
  358. data/rbi/metronome_sdk/models/v1/customers/alert_list_response.rbi +0 -46
  359. data/rbi/metronome_sdk/models/v1/customers/commit_list_response.rbi +0 -45
  360. data/rbi/metronome_sdk/models/v1/customers/credit_list_response.rbi +0 -45
  361. data/sig/metronome_sdk/models/v1/customers/alert_list_response.rbs +0 -29
  362. data/sig/metronome_sdk/models/v1/customers/commit_list_response.rbs +0 -26
  363. data/sig/metronome_sdk/models/v1/customers/credit_list_response.rbs +0 -26
@@ -20,6 +20,15 @@ module MetronomeSDK
20
20
  # @return [String]
21
21
  required :customer_id, String
22
22
 
23
+ # @!attribute add_billing_provider_configuration_update
24
+ # Update the billing provider configuration on the contract. Currently only
25
+ # supports adding a billing provider configuration to a contract that does not
26
+ # already have one.
27
+ #
28
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate, nil]
29
+ optional :add_billing_provider_configuration_update,
30
+ -> { MetronomeSDK::V2::ContractEditParams::AddBillingProviderConfigurationUpdate }
31
+
23
32
  # @!attribute add_commits
24
33
  #
25
34
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit>, nil]
@@ -36,70 +45,55 @@ module MetronomeSDK
36
45
  #
37
46
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddDiscount>, nil]
38
47
  optional :add_discounts,
39
- -> {
40
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddDiscount]
41
- }
48
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddDiscount] }
42
49
 
43
50
  # @!attribute add_overrides
44
51
  #
45
52
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride>, nil]
46
53
  optional :add_overrides,
47
- -> {
48
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddOverride]
49
- }
54
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddOverride] }
50
55
 
51
56
  # @!attribute add_prepaid_balance_threshold_configuration
52
57
  #
53
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration, nil]
58
+ # @return [MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2, nil]
54
59
  optional :add_prepaid_balance_threshold_configuration,
55
- -> { MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration }
60
+ -> { MetronomeSDK::PrepaidBalanceThresholdConfigurationV2 }
56
61
 
57
62
  # @!attribute add_professional_services
58
63
  # This field's availability is dependent on your client's configuration.
59
64
  #
60
65
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddProfessionalService>, nil]
61
66
  optional :add_professional_services,
62
- -> {
63
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddProfessionalService]
64
- }
67
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddProfessionalService] }
65
68
 
66
69
  # @!attribute add_recurring_commits
67
70
  #
68
71
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit>, nil]
69
72
  optional :add_recurring_commits,
70
- -> {
71
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCommit]
72
- }
73
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCommit] }
73
74
 
74
75
  # @!attribute add_recurring_credits
75
76
  #
76
77
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit>, nil]
77
78
  optional :add_recurring_credits,
78
- -> {
79
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCredit]
80
- }
79
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCredit] }
81
80
 
82
81
  # @!attribute add_reseller_royalties
83
82
  #
84
83
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddResellerRoyalty>, nil]
85
84
  optional :add_reseller_royalties,
86
- -> {
87
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty]
88
- }
85
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty] }
89
86
 
90
87
  # @!attribute add_scheduled_charges
91
88
  #
92
89
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge>, nil]
93
90
  optional :add_scheduled_charges,
94
- -> {
95
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddScheduledCharge]
96
- }
91
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddScheduledCharge] }
97
92
 
98
93
  # @!attribute add_spend_threshold_configuration
99
94
  #
100
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration, nil]
101
- optional :add_spend_threshold_configuration,
102
- -> { MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration }
95
+ # @return [MetronomeSDK::Models::SpendThresholdConfigurationV2, nil]
96
+ optional :add_spend_threshold_configuration, -> { MetronomeSDK::SpendThresholdConfigurationV2 }
103
97
 
104
98
  # @!attribute add_subscriptions
105
99
  # Optional list of
@@ -108,9 +102,7 @@ module MetronomeSDK
108
102
  #
109
103
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddSubscription>, nil]
110
104
  optional :add_subscriptions,
111
- -> {
112
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddSubscription]
113
- }
105
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddSubscription] }
114
106
 
115
107
  # @!attribute allow_contract_ending_before_finalized_invoice
116
108
  # If true, allows setting the contract end date earlier than the end_timestamp of
@@ -126,44 +118,40 @@ module MetronomeSDK
126
118
  #
127
119
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::ArchiveCommit>, nil]
128
120
  optional :archive_commits,
129
- -> {
130
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::ArchiveCommit]
131
- }
121
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::ArchiveCommit] }
132
122
 
133
123
  # @!attribute archive_credits
134
124
  # IDs of credits to archive
135
125
  #
136
126
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::ArchiveCredit>, nil]
137
127
  optional :archive_credits,
138
- -> {
139
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::ArchiveCredit]
140
- }
128
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::ArchiveCredit] }
141
129
 
142
130
  # @!attribute archive_scheduled_charges
143
131
  # IDs of scheduled charges to archive
144
132
  #
145
133
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::ArchiveScheduledCharge>, nil]
146
134
  optional :archive_scheduled_charges,
147
- -> {
148
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::ArchiveScheduledCharge]
149
- }
135
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::ArchiveScheduledCharge] }
150
136
 
151
137
  # @!attribute remove_overrides
152
138
  # IDs of overrides to remove
153
139
  #
154
140
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::RemoveOverride>, nil]
155
141
  optional :remove_overrides,
156
- -> {
157
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::RemoveOverride]
158
- }
142
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::RemoveOverride] }
143
+
144
+ # @!attribute uniqueness_key
145
+ # Optional uniqueness key to prevent duplicate contract edits.
146
+ #
147
+ # @return [String, nil]
148
+ optional :uniqueness_key, String
159
149
 
160
150
  # @!attribute update_commits
161
151
  #
162
152
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit>, nil]
163
153
  optional :update_commits,
164
- -> {
165
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit]
166
- }
154
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit] }
167
155
 
168
156
  # @!attribute update_contract_end_date
169
157
  # RFC 3339 timestamp indicating when the contract will end (exclusive).
@@ -182,9 +170,7 @@ module MetronomeSDK
182
170
  #
183
171
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit>, nil]
184
172
  optional :update_credits,
185
- -> {
186
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit]
187
- }
173
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit] }
188
174
 
189
175
  # @!attribute update_prepaid_balance_threshold_configuration
190
176
  #
@@ -199,9 +185,7 @@ module MetronomeSDK
199
185
  #
200
186
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit>, nil]
201
187
  optional :update_recurring_commits,
202
- -> {
203
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit]
204
- }
188
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit] }
205
189
 
206
190
  # @!attribute update_recurring_credits
207
191
  # Edits to these recurring credits will only affect credits whose access schedules
@@ -210,17 +194,13 @@ module MetronomeSDK
210
194
  #
211
195
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit>, nil]
212
196
  optional :update_recurring_credits,
213
- -> {
214
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateRecurringCredit]
215
- }
197
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateRecurringCredit] }
216
198
 
217
199
  # @!attribute update_scheduled_charges
218
200
  #
219
201
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge>, nil]
220
202
  optional :update_scheduled_charges,
221
- -> {
222
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge]
223
- }
203
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge] }
224
204
 
225
205
  # @!attribute update_spend_threshold_configuration
226
206
  #
@@ -233,11 +213,9 @@ module MetronomeSDK
233
213
  #
234
214
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription>, nil]
235
215
  optional :update_subscriptions,
236
- -> {
237
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription]
238
- }
216
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription] }
239
217
 
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: {})
218
+ # @!method initialize(contract_id:, customer_id:, add_billing_provider_configuration_update: nil, 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
219
  # Some parameter documentations has been truncated, see
242
220
  # {MetronomeSDK::Models::V2::ContractEditParams} for more details.
243
221
  #
@@ -245,6 +223,8 @@ module MetronomeSDK
245
223
  #
246
224
  # @param customer_id [String] ID of the customer whose contract is being edited
247
225
  #
226
+ # @param add_billing_provider_configuration_update [MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate] Update the billing provider configuration on the contract. Currently only suppor
227
+ #
248
228
  # @param add_commits [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit>]
249
229
  #
250
230
  # @param add_credits [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCredit>]
@@ -253,7 +233,7 @@ module MetronomeSDK
253
233
  #
254
234
  # @param add_overrides [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride>]
255
235
  #
256
- # @param add_prepaid_balance_threshold_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration]
236
+ # @param add_prepaid_balance_threshold_configuration [MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2]
257
237
  #
258
238
  # @param add_professional_services [Array<MetronomeSDK::Models::V2::ContractEditParams::AddProfessionalService>] This field's availability is dependent on your client's configuration.
259
239
  #
@@ -265,7 +245,7 @@ module MetronomeSDK
265
245
  #
266
246
  # @param add_scheduled_charges [Array<MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge>]
267
247
  #
268
- # @param add_spend_threshold_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration]
248
+ # @param add_spend_threshold_configuration [MetronomeSDK::Models::SpendThresholdConfigurationV2]
269
249
  #
270
250
  # @param add_subscriptions [Array<MetronomeSDK::Models::V2::ContractEditParams::AddSubscription>] Optional list of [subscriptions](https://docs.metronome.com/manage-product-acces
271
251
  #
@@ -279,6 +259,8 @@ module MetronomeSDK
279
259
  #
280
260
  # @param remove_overrides [Array<MetronomeSDK::Models::V2::ContractEditParams::RemoveOverride>] IDs of overrides to remove
281
261
  #
262
+ # @param uniqueness_key [String] Optional uniqueness key to prevent duplicate contract edits.
263
+ #
282
264
  # @param update_commits [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit>]
283
265
  #
284
266
  # @param update_contract_end_date [Time, nil] RFC 3339 timestamp indicating when the contract will end (exclusive).
@@ -301,6 +283,118 @@ module MetronomeSDK
301
283
  #
302
284
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
303
285
 
286
+ class AddBillingProviderConfigurationUpdate < MetronomeSDK::Internal::Type::BaseModel
287
+ # @!attribute billing_provider_configuration
288
+ #
289
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration]
290
+ required :billing_provider_configuration,
291
+ -> { MetronomeSDK::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration }
292
+
293
+ # @!attribute schedule
294
+ # Indicates when the billing provider will be active on the contract. Any charges
295
+ # accrued during the schedule will be billed to the indicated billing provider.
296
+ #
297
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::Schedule]
298
+ required :schedule,
299
+ -> { MetronomeSDK::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::Schedule }
300
+
301
+ # @!method initialize(billing_provider_configuration:, schedule:)
302
+ # Some parameter documentations has been truncated, see
303
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate}
304
+ # for more details.
305
+ #
306
+ # Update the billing provider configuration on the contract. Currently only
307
+ # supports adding a billing provider configuration to a contract that does not
308
+ # already have one.
309
+ #
310
+ # @param billing_provider_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration]
311
+ #
312
+ # @param schedule [MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::Schedule] Indicates when the billing provider will be active on the contract. Any charges
313
+
314
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate#billing_provider_configuration
315
+ class BillingProviderConfiguration < MetronomeSDK::Internal::Type::BaseModel
316
+ # @!attribute billing_provider
317
+ #
318
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration::BillingProvider, nil]
319
+ optional :billing_provider,
320
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration::BillingProvider }
321
+
322
+ # @!attribute billing_provider_configuration_id
323
+ #
324
+ # @return [String, nil]
325
+ optional :billing_provider_configuration_id, String
326
+
327
+ # @!attribute delivery_method
328
+ #
329
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration::DeliveryMethod, nil]
330
+ optional :delivery_method,
331
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration::DeliveryMethod }
332
+
333
+ # @!method initialize(billing_provider: nil, billing_provider_configuration_id: nil, delivery_method: nil)
334
+ # @param billing_provider [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration::BillingProvider]
335
+ # @param billing_provider_configuration_id [String]
336
+ # @param delivery_method [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration::DeliveryMethod]
337
+
338
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration#billing_provider
339
+ module BillingProvider
340
+ extend MetronomeSDK::Internal::Type::Enum
341
+
342
+ AWS_MARKETPLACE = :aws_marketplace
343
+ STRIPE = :stripe
344
+ NETSUITE = :netsuite
345
+ CUSTOM = :custom
346
+ AZURE_MARKETPLACE = :azure_marketplace
347
+ QUICKBOOKS_ONLINE = :quickbooks_online
348
+ WORKDAY = :workday
349
+ GCP_MARKETPLACE = :gcp_marketplace
350
+
351
+ # @!method self.values
352
+ # @return [Array<Symbol>]
353
+ end
354
+
355
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration#delivery_method
356
+ module DeliveryMethod
357
+ extend MetronomeSDK::Internal::Type::Enum
358
+
359
+ DIRECT_TO_BILLING_PROVIDER = :direct_to_billing_provider
360
+ AWS_SQS = :aws_sqs
361
+ TACKLE = :tackle
362
+ AWS_SNS = :aws_sns
363
+
364
+ # @!method self.values
365
+ # @return [Array<Symbol>]
366
+ end
367
+ end
368
+
369
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate#schedule
370
+ class Schedule < MetronomeSDK::Internal::Type::BaseModel
371
+ # @!attribute effective_at
372
+ # When the billing provider update will take effect.
373
+ #
374
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::Schedule::EffectiveAt]
375
+ required :effective_at,
376
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::Schedule::EffectiveAt }
377
+
378
+ # @!method initialize(effective_at:)
379
+ # Indicates when the billing provider will be active on the contract. Any charges
380
+ # accrued during the schedule will be billed to the indicated billing provider.
381
+ #
382
+ # @param effective_at [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::Schedule::EffectiveAt] When the billing provider update will take effect.
383
+
384
+ # When the billing provider update will take effect.
385
+ #
386
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::Schedule#effective_at
387
+ module EffectiveAt
388
+ extend MetronomeSDK::Internal::Type::Enum
389
+
390
+ START_OF_CURRENT_PERIOD = :START_OF_CURRENT_PERIOD
391
+
392
+ # @!method self.values
393
+ # @return [Array<Symbol>]
394
+ end
395
+ end
396
+ end
397
+
304
398
  class AddCommit < MetronomeSDK::Internal::Type::BaseModel
305
399
  # @!attribute product_id
306
400
  #
@@ -343,6 +437,7 @@ module MetronomeSDK
343
437
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
344
438
 
345
439
  # @!attribute custom_fields
440
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
346
441
  #
347
442
  # @return [Hash{Symbol=>String}, nil]
348
443
  optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
@@ -356,9 +451,8 @@ module MetronomeSDK
356
451
  # @!attribute hierarchy_configuration
357
452
  # Optional configuration for commit hierarchy access control
358
453
  #
359
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration, nil]
360
- optional :hierarchy_configuration,
361
- -> { MetronomeSDK::V2::ContractEditParams::AddCommit::HierarchyConfiguration }
454
+ # @return [MetronomeSDK::Models::CommitHierarchyConfiguration, nil]
455
+ optional :hierarchy_configuration, -> { MetronomeSDK::CommitHierarchyConfiguration }
362
456
 
363
457
  # @!attribute invoice_schedule
364
458
  # Required for "POSTPAID" commits: the true up invoice will be generated at this
@@ -385,10 +479,7 @@ module MetronomeSDK
385
479
  # optionally payment gate this commit
386
480
  #
387
481
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig, nil]
388
- optional :payment_gate_config,
389
- -> {
390
- MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig
391
- }
482
+ optional :payment_gate_config, -> { MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig }
392
483
 
393
484
  # @!attribute priority
394
485
  # If multiple commits are applicable, the one with the lower priority will apply
@@ -416,11 +507,8 @@ module MetronomeSDK
416
507
  # Instead, to target usage by product or product tag, pass those values in the
417
508
  # body of `specifiers`.
418
509
  #
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
- }
510
+ # @return [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil]
511
+ optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifierInput] }
424
512
 
425
513
  # @!attribute temporary_id
426
514
  # A temporary ID for the commit that can be used to reference the commit for
@@ -445,11 +533,11 @@ module MetronomeSDK
445
533
  #
446
534
  # @param applicable_product_tags [Array<String>] Which tags the commit applies to. If applicable*product_ids, applicable_product*
447
535
  #
448
- # @param custom_fields [Hash{Symbol=>String}]
536
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
449
537
  #
450
538
  # @param description [String] Used only in UI/API. It is not exposed to end customers.
451
539
  #
452
- # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::HierarchyConfiguration] Optional configuration for commit hierarchy access control
540
+ # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for commit hierarchy access control
453
541
  #
454
542
  # @param invoice_schedule [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule] Required for "POSTPAID" commits: the true up invoice will be generated at this t
455
543
  #
@@ -465,7 +553,7 @@ module MetronomeSDK
465
553
  #
466
554
  # @param rollover_fraction [Float] Fraction of unused segments that will be rolled over. Must be between 0 and 1.
467
555
  #
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
556
+ # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifierInput>] List of filters that determine what kind of customer usage draws down a commit o
469
557
  #
470
558
  # @param temporary_id [String] A temporary ID for the commit that can be used to reference the commit for commi
471
559
 
@@ -486,9 +574,7 @@ module MetronomeSDK
486
574
  #
487
575
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit::AccessSchedule::ScheduleItem>]
488
576
  required :schedule_items,
489
- -> {
490
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCommit::AccessSchedule::ScheduleItem]
491
- }
577
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCommit::AccessSchedule::ScheduleItem] }
492
578
 
493
579
  # @!attribute credit_type_id
494
580
  #
@@ -530,117 +616,6 @@ module MetronomeSDK
530
616
  end
531
617
  end
532
618
 
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
619
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit#invoice_schedule
645
620
  class InvoiceSchedule < MetronomeSDK::Internal::Type::BaseModel
646
621
  # @!attribute credit_type_id
@@ -663,18 +638,14 @@ module MetronomeSDK
663
638
  #
664
639
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule, nil]
665
640
  optional :recurring_schedule,
666
- -> {
667
- MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule
668
- }
641
+ -> { MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule }
669
642
 
670
643
  # @!attribute schedule_items
671
644
  # Either provide amount or provide both unit_price and quantity.
672
645
  #
673
646
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::ScheduleItem>, nil]
674
647
  optional :schedule_items,
675
- -> {
676
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::ScheduleItem]
677
- }
648
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::ScheduleItem] }
678
649
 
679
650
  # @!method initialize(credit_type_id: nil, do_not_invoice: nil, recurring_schedule: nil, schedule_items: nil)
680
651
  # Some parameter documentations has been truncated, see
@@ -700,9 +671,7 @@ module MetronomeSDK
700
671
  #
701
672
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::AmountDistribution]
702
673
  required :amount_distribution,
703
- enum: -> {
704
- MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::AmountDistribution
705
- }
674
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::AmountDistribution }
706
675
 
707
676
  # @!attribute ending_before
708
677
  # RFC 3339 timestamp (exclusive).
@@ -714,9 +683,7 @@ module MetronomeSDK
714
683
  #
715
684
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::Frequency]
716
685
  required :frequency,
717
- enum: -> {
718
- MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::Frequency
719
- }
686
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::Frequency }
720
687
 
721
688
  # @!attribute starting_at
722
689
  # RFC 3339 timestamp (inclusive).
@@ -854,18 +821,14 @@ module MetronomeSDK
854
821
  #
855
822
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::PaymentGateType]
856
823
  required :payment_gate_type,
857
- enum: -> {
858
- MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::PaymentGateType
859
- }
824
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::PaymentGateType }
860
825
 
861
826
  # @!attribute precalculated_tax_config
862
827
  # Only applicable if using PRECALCULATED as your tax type.
863
828
  #
864
829
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::PrecalculatedTaxConfig, nil]
865
830
  optional :precalculated_tax_config,
866
- -> {
867
- MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::PrecalculatedTaxConfig
868
- }
831
+ -> { MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::PrecalculatedTaxConfig }
869
832
 
870
833
  # @!attribute stripe_config
871
834
  # Only applicable if using STRIPE as your payment gateway type.
@@ -950,9 +913,7 @@ module MetronomeSDK
950
913
  #
951
914
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::PaymentType]
952
915
  required :payment_type,
953
- enum: -> {
954
- MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::PaymentType
955
- }
916
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::PaymentType }
956
917
 
957
918
  # @!attribute invoice_metadata
958
919
  # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
@@ -1012,6 +973,7 @@ module MetronomeSDK
1012
973
  NONE = :NONE
1013
974
  STRIPE = :STRIPE
1014
975
  ANROK = :ANROK
976
+ AVALARA = :AVALARA
1015
977
  PRECALCULATED = :PRECALCULATED
1016
978
 
1017
979
  # @!method self.values
@@ -1029,44 +991,6 @@ module MetronomeSDK
1029
991
  # @!method self.values
1030
992
  # @return [Array<Symbol>]
1031
993
  end
1032
-
1033
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
1034
- # @!attribute presentation_group_values
1035
- #
1036
- # @return [Hash{Symbol=>String}, nil]
1037
- optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1038
-
1039
- # @!attribute pricing_group_values
1040
- #
1041
- # @return [Hash{Symbol=>String}, nil]
1042
- optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1043
-
1044
- # @!attribute product_id
1045
- # If provided, the specifier will only apply to the product with the specified ID.
1046
- #
1047
- # @return [String, nil]
1048
- optional :product_id, String
1049
-
1050
- # @!attribute product_tags
1051
- # If provided, the specifier will only apply to products with all the specified
1052
- # tags.
1053
- #
1054
- # @return [Array<String>, nil]
1055
- optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1056
-
1057
- # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
1058
- # Some parameter documentations has been truncated, see
1059
- # {MetronomeSDK::Models::V2::ContractEditParams::AddCommit::Specifier} for more
1060
- # details.
1061
- #
1062
- # @param presentation_group_values [Hash{Symbol=>String}]
1063
- #
1064
- # @param pricing_group_values [Hash{Symbol=>String}]
1065
- #
1066
- # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
1067
- #
1068
- # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
1069
- end
1070
994
  end
1071
995
 
1072
996
  class AddCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -1096,6 +1020,7 @@ module MetronomeSDK
1096
1020
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1097
1021
 
1098
1022
  # @!attribute custom_fields
1023
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
1099
1024
  #
1100
1025
  # @return [Hash{Symbol=>String}, nil]
1101
1026
  optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
@@ -1109,9 +1034,8 @@ module MetronomeSDK
1109
1034
  # @!attribute hierarchy_configuration
1110
1035
  # Optional configuration for credit hierarchy access control
1111
1036
  #
1112
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration, nil]
1113
- optional :hierarchy_configuration,
1114
- -> { MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration }
1037
+ # @return [MetronomeSDK::Models::CommitHierarchyConfiguration, nil]
1038
+ optional :hierarchy_configuration, -> { MetronomeSDK::CommitHierarchyConfiguration }
1115
1039
 
1116
1040
  # @!attribute name
1117
1041
  # displayed on invoices
@@ -1145,11 +1069,8 @@ module MetronomeSDK
1145
1069
  # Instead, to target usage by product or product tag, pass those values in the
1146
1070
  # body of `specifiers`.
1147
1071
  #
1148
- # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCredit::Specifier>, nil]
1149
- optional :specifiers,
1150
- -> {
1151
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCredit::Specifier]
1152
- }
1072
+ # @return [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil]
1073
+ optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifierInput] }
1153
1074
 
1154
1075
  # @!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)
1155
1076
  # Some parameter documentations has been truncated, see
@@ -1163,11 +1084,11 @@ module MetronomeSDK
1163
1084
  #
1164
1085
  # @param applicable_product_tags [Array<String>] Which tags the credit applies to. If both applicable*product_ids and applicable*
1165
1086
  #
1166
- # @param custom_fields [Hash{Symbol=>String}]
1087
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
1167
1088
  #
1168
1089
  # @param description [String] Used only in UI/API. It is not exposed to end customers.
1169
1090
  #
1170
- # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration] Optional configuration for credit hierarchy access control
1091
+ # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for credit hierarchy access control
1171
1092
  #
1172
1093
  # @param name [String] displayed on invoices
1173
1094
  #
@@ -1177,7 +1098,7 @@ module MetronomeSDK
1177
1098
  #
1178
1099
  # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::RateType]
1179
1100
  #
1180
- # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCredit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
1101
+ # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifierInput>] List of filters that determine what kind of customer usage draws down a commit o
1181
1102
 
1182
1103
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit#access_schedule
1183
1104
  class AccessSchedule < MetronomeSDK::Internal::Type::BaseModel
@@ -1185,9 +1106,7 @@ module MetronomeSDK
1185
1106
  #
1186
1107
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCredit::AccessSchedule::ScheduleItem>]
1187
1108
  required :schedule_items,
1188
- -> {
1189
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCredit::AccessSchedule::ScheduleItem]
1190
- }
1109
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCredit::AccessSchedule::ScheduleItem] }
1191
1110
 
1192
1111
  # @!attribute credit_type_id
1193
1112
  #
@@ -1227,117 +1146,6 @@ module MetronomeSDK
1227
1146
  end
1228
1147
  end
1229
1148
 
1230
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit#hierarchy_configuration
1231
- class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
1232
- # @!attribute child_access
1233
- #
1234
- # @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]
1235
- required :child_access,
1236
- union: -> {
1237
- MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess
1238
- }
1239
-
1240
- # @!method initialize(child_access:)
1241
- # Optional configuration for credit hierarchy access control
1242
- #
1243
- # @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]
1244
-
1245
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration#child_access
1246
- module ChildAccess
1247
- extend MetronomeSDK::Internal::Type::Union
1248
-
1249
- variant -> {
1250
- MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
1251
- }
1252
-
1253
- variant -> {
1254
- MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
1255
- }
1256
-
1257
- variant -> {
1258
- MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
1259
- }
1260
-
1261
- class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
1262
- # @!attribute type
1263
- #
1264
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
1265
- required :type,
1266
- enum: -> {
1267
- MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
1268
- }
1269
-
1270
- # @!method initialize(type:)
1271
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
1272
-
1273
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
1274
- module Type
1275
- extend MetronomeSDK::Internal::Type::Enum
1276
-
1277
- ALL = :ALL
1278
-
1279
- # @!method self.values
1280
- # @return [Array<Symbol>]
1281
- end
1282
- end
1283
-
1284
- class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
1285
- # @!attribute type
1286
- #
1287
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
1288
- required :type,
1289
- enum: -> {
1290
- MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
1291
- }
1292
-
1293
- # @!method initialize(type:)
1294
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
1295
-
1296
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
1297
- module Type
1298
- extend MetronomeSDK::Internal::Type::Enum
1299
-
1300
- NONE = :NONE
1301
-
1302
- # @!method self.values
1303
- # @return [Array<Symbol>]
1304
- end
1305
- end
1306
-
1307
- class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
1308
- # @!attribute contract_ids
1309
- #
1310
- # @return [Array<String>]
1311
- required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1312
-
1313
- # @!attribute type
1314
- #
1315
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
1316
- required :type,
1317
- enum: -> {
1318
- MetronomeSDK::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
1319
- }
1320
-
1321
- # @!method initialize(contract_ids:, type:)
1322
- # @param contract_ids [Array<String>]
1323
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
1324
-
1325
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
1326
- module Type
1327
- extend MetronomeSDK::Internal::Type::Enum
1328
-
1329
- CONTRACT_IDS = :CONTRACT_IDS
1330
-
1331
- # @!method self.values
1332
- # @return [Array<Symbol>]
1333
- end
1334
- end
1335
-
1336
- # @!method self.variants
1337
- # @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)]
1338
- end
1339
- end
1340
-
1341
1149
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit#rate_type
1342
1150
  module RateType
1343
1151
  extend MetronomeSDK::Internal::Type::Enum
@@ -1348,44 +1156,6 @@ module MetronomeSDK
1348
1156
  # @!method self.values
1349
1157
  # @return [Array<Symbol>]
1350
1158
  end
1351
-
1352
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
1353
- # @!attribute presentation_group_values
1354
- #
1355
- # @return [Hash{Symbol=>String}, nil]
1356
- optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1357
-
1358
- # @!attribute pricing_group_values
1359
- #
1360
- # @return [Hash{Symbol=>String}, nil]
1361
- optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1362
-
1363
- # @!attribute product_id
1364
- # If provided, the specifier will only apply to the product with the specified ID.
1365
- #
1366
- # @return [String, nil]
1367
- optional :product_id, String
1368
-
1369
- # @!attribute product_tags
1370
- # If provided, the specifier will only apply to products with all the specified
1371
- # tags.
1372
- #
1373
- # @return [Array<String>, nil]
1374
- optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1375
-
1376
- # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
1377
- # Some parameter documentations has been truncated, see
1378
- # {MetronomeSDK::Models::V2::ContractEditParams::AddCredit::Specifier} for more
1379
- # details.
1380
- #
1381
- # @param presentation_group_values [Hash{Symbol=>String}]
1382
- #
1383
- # @param pricing_group_values [Hash{Symbol=>String}]
1384
- #
1385
- # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
1386
- #
1387
- # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
1388
- end
1389
1159
  end
1390
1160
 
1391
1161
  class AddDiscount < MetronomeSDK::Internal::Type::BaseModel
@@ -1401,6 +1171,7 @@ module MetronomeSDK
1401
1171
  required :schedule, -> { MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule }
1402
1172
 
1403
1173
  # @!attribute custom_fields
1174
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
1404
1175
  #
1405
1176
  # @return [Hash{Symbol=>String}, nil]
1406
1177
  optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
@@ -1422,7 +1193,7 @@ module MetronomeSDK
1422
1193
  #
1423
1194
  # @param schedule [MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule] Must provide either schedule_items or recurring_schedule.
1424
1195
  #
1425
- # @param custom_fields [Hash{Symbol=>String}]
1196
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
1426
1197
  #
1427
1198
  # @param name [String] displayed on invoices
1428
1199
  #
@@ -1457,9 +1228,7 @@ module MetronomeSDK
1457
1228
  #
1458
1229
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::ScheduleItem>, nil]
1459
1230
  optional :schedule_items,
1460
- -> {
1461
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::ScheduleItem]
1462
- }
1231
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::ScheduleItem] }
1463
1232
 
1464
1233
  # @!method initialize(credit_type_id: nil, do_not_invoice: nil, recurring_schedule: nil, schedule_items: nil)
1465
1234
  # Some parameter documentations has been truncated, see
@@ -1482,9 +1251,7 @@ module MetronomeSDK
1482
1251
  #
1483
1252
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::AmountDistribution]
1484
1253
  required :amount_distribution,
1485
- enum: -> {
1486
- MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::AmountDistribution
1487
- }
1254
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::AmountDistribution }
1488
1255
 
1489
1256
  # @!attribute ending_before
1490
1257
  # RFC 3339 timestamp (exclusive).
@@ -1496,9 +1263,7 @@ module MetronomeSDK
1496
1263
  #
1497
1264
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::Frequency]
1498
1265
  required :frequency,
1499
- enum: -> {
1500
- MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::Frequency
1501
- }
1266
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::Frequency }
1502
1267
 
1503
1268
  # @!attribute starting_at
1504
1269
  # RFC 3339 timestamp (inclusive).
@@ -1671,9 +1436,7 @@ module MetronomeSDK
1671
1436
  #
1672
1437
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier>, nil]
1673
1438
  optional :override_specifiers,
1674
- -> {
1675
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddOverride::OverrideSpecifier]
1676
- }
1439
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddOverride::OverrideSpecifier] }
1677
1440
 
1678
1441
  # @!attribute overwrite_rate
1679
1442
  # Required for OVERWRITE type.
@@ -1709,9 +1472,7 @@ module MetronomeSDK
1709
1472
  #
1710
1473
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride::Tier>, nil]
1711
1474
  optional :tiers,
1712
- -> {
1713
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddOverride::Tier]
1714
- }
1475
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddOverride::Tier] }
1715
1476
 
1716
1477
  # @!attribute type
1717
1478
  # Overwrites are prioritized over multipliers and tiered overrides.
@@ -1754,9 +1515,7 @@ module MetronomeSDK
1754
1515
  #
1755
1516
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier::BillingFrequency, nil]
1756
1517
  optional :billing_frequency,
1757
- enum: -> {
1758
- MetronomeSDK::V2::ContractEditParams::AddOverride::OverrideSpecifier::BillingFrequency
1759
- }
1518
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddOverride::OverrideSpecifier::BillingFrequency }
1760
1519
 
1761
1520
  # @!attribute commit_ids
1762
1521
  # If provided, the override will only apply to the specified commits. Can only be
@@ -1975,431 +1734,94 @@ module MetronomeSDK
1975
1734
  end
1976
1735
  end
1977
1736
 
1978
- class AddPrepaidBalanceThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
1979
- # @!attribute commit
1737
+ class AddProfessionalService < MetronomeSDK::Internal::Type::BaseModel
1738
+ # @!attribute max_amount
1739
+ # Maximum amount for the term.
1980
1740
  #
1981
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit]
1982
- required :commit,
1983
- -> {
1984
- MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit
1985
- }
1741
+ # @return [Float]
1742
+ required :max_amount, Float
1986
1743
 
1987
- # @!attribute is_enabled
1988
- # When set to false, the contract will not be evaluated against the
1989
- # threshold_amount. Toggling to true will result an immediate evaluation,
1990
- # regardless of prior state.
1744
+ # @!attribute product_id
1991
1745
  #
1992
- # @return [Boolean]
1993
- required :is_enabled, MetronomeSDK::Internal::Type::Boolean
1746
+ # @return [String]
1747
+ required :product_id, String
1994
1748
 
1995
- # @!attribute payment_gate_config
1749
+ # @!attribute quantity
1750
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
1751
+ # amount.
1996
1752
  #
1997
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig]
1998
- required :payment_gate_config,
1999
- -> {
2000
- MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig
2001
- }
1753
+ # @return [Float]
1754
+ required :quantity, Float
2002
1755
 
2003
- # @!attribute recharge_to_amount
2004
- # Specify the amount the balance should be recharged to.
1756
+ # @!attribute unit_price
1757
+ # Unit price for the charge. Will be multiplied by quantity to determine the
1758
+ # amount and must be specified.
2005
1759
  #
2006
1760
  # @return [Float]
2007
- required :recharge_to_amount, Float
1761
+ required :unit_price, Float
2008
1762
 
2009
- # @!attribute threshold_amount
2010
- # Specify the threshold amount for the contract. Each time the contract's balance
2011
- # lowers to this amount, a threshold charge will be initiated.
1763
+ # @!attribute custom_fields
1764
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
2012
1765
  #
2013
- # @return [Float]
2014
- required :threshold_amount, Float
1766
+ # @return [Hash{Symbol=>String}, nil]
1767
+ optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
2015
1768
 
2016
- # @!attribute custom_credit_type_id
2017
- # If provided, the threshold, recharge-to amount, and the resulting threshold
2018
- # commit amount will be in terms of this credit type instead of the fiat currency.
1769
+ # @!attribute description
2019
1770
  #
2020
1771
  # @return [String, nil]
2021
- optional :custom_credit_type_id, String
1772
+ optional :description, String
1773
+
1774
+ # @!attribute netsuite_sales_order_id
1775
+ # This field's availability is dependent on your client's configuration.
1776
+ #
1777
+ # @return [String, nil]
1778
+ optional :netsuite_sales_order_id, String
2022
1779
 
2023
- # @!method initialize(commit:, is_enabled:, payment_gate_config:, recharge_to_amount:, threshold_amount:, custom_credit_type_id: nil)
1780
+ # @!method initialize(max_amount:, product_id:, quantity:, unit_price:, custom_fields: nil, description: nil, netsuite_sales_order_id: nil)
2024
1781
  # Some parameter documentations has been truncated, see
2025
- # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration}
2026
- # for more details.
1782
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddProfessionalService} for more
1783
+ # details.
2027
1784
  #
2028
- # @param commit [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit]
1785
+ # @param max_amount [Float] Maximum amount for the term.
2029
1786
  #
2030
- # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
1787
+ # @param product_id [String]
2031
1788
  #
2032
- # @param payment_gate_config [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig]
1789
+ # @param quantity [Float] Quantity for the charge. Will be multiplied by unit_price to determine the amoun
2033
1790
  #
2034
- # @param recharge_to_amount [Float] Specify the amount the balance should be recharged to.
1791
+ # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
2035
1792
  #
2036
- # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's balance
1793
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
1794
+ #
1795
+ # @param description [String]
2037
1796
  #
2038
- # @param custom_credit_type_id [String] If provided, the threshold, recharge-to amount, and the resulting threshold comm
1797
+ # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
1798
+ end
2039
1799
 
2040
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration#commit
2041
- class Commit < MetronomeSDK::Internal::Type::BaseModel
2042
- # @!attribute product_id
2043
- # The commit product that will be used to generate the line item for commit
2044
- # payment.
2045
- #
2046
- # @return [String]
2047
- required :product_id, String
1800
+ class AddRecurringCommit < MetronomeSDK::Internal::Type::BaseModel
1801
+ # @!attribute access_amount
1802
+ # The amount of commit to grant.
1803
+ #
1804
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::AccessAmount]
1805
+ required :access_amount, -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::AccessAmount }
2048
1806
 
2049
- # @!attribute applicable_product_ids
2050
- # Which products the threshold commit applies to. If applicable_product_ids,
2051
- # applicable_product_tags or specifiers are not provided, the commit applies to
2052
- # all products.
2053
- #
2054
- # @return [Array<String>, nil]
2055
- optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1807
+ # @!attribute commit_duration
1808
+ # Defines the length of the access schedule for each created commit/credit. The
1809
+ # value represents the number of units. Unit defaults to "PERIODS", where the
1810
+ # length of a period is determined by the recurrence_frequency.
1811
+ #
1812
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration]
1813
+ required :commit_duration, -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::CommitDuration }
2056
1814
 
2057
- # @!attribute applicable_product_tags
2058
- # Which tags the threshold commit applies to. If applicable_product_ids,
2059
- # applicable_product_tags or specifiers are not provided, the commit applies to
2060
- # all products.
2061
- #
2062
- # @return [Array<String>, nil]
2063
- optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1815
+ # @!attribute priority
1816
+ # Will be passed down to the individual commits
1817
+ #
1818
+ # @return [Float]
1819
+ required :priority, Float
2064
1820
 
2065
- # @!attribute description
2066
- #
2067
- # @return [String, nil]
2068
- optional :description, String
2069
-
2070
- # @!attribute name
2071
- # Specify the name of the line item for the threshold charge. If left blank, it
2072
- # will default to the commit product name.
2073
- #
2074
- # @return [String, nil]
2075
- optional :name, String
2076
-
2077
- # @!attribute specifiers
2078
- # List of filters that determine what kind of customer usage draws down a commit
2079
- # or credit. A customer's usage needs to meet the condition of at least one of the
2080
- # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2081
- # be used together with `applicable_product_ids` or `applicable_product_tags`.
2082
- # Instead, to target usage by product or product tag, pass those values in the
2083
- # body of `specifiers`.
2084
- #
2085
- # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit::Specifier>, nil]
2086
- optional :specifiers,
2087
- -> {
2088
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit::Specifier]
2089
- }
2090
-
2091
- # @!method initialize(product_id:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, name: nil, specifiers: nil)
2092
- # Some parameter documentations has been truncated, see
2093
- # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit}
2094
- # for more details.
2095
- #
2096
- # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
2097
- #
2098
- # @param applicable_product_ids [Array<String>] Which products the threshold commit applies to. If applicable_product_ids, appli
2099
- #
2100
- # @param applicable_product_tags [Array<String>] Which tags the threshold commit applies to. If applicable_product_ids, applicabl
2101
- #
2102
- # @param description [String]
2103
- #
2104
- # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
2105
- #
2106
- # @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
2107
-
2108
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
2109
- # @!attribute presentation_group_values
2110
- #
2111
- # @return [Hash{Symbol=>String}, nil]
2112
- optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2113
-
2114
- # @!attribute pricing_group_values
2115
- #
2116
- # @return [Hash{Symbol=>String}, nil]
2117
- optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2118
-
2119
- # @!attribute product_id
2120
- # If provided, the specifier will only apply to the product with the specified ID.
2121
- #
2122
- # @return [String, nil]
2123
- optional :product_id, String
2124
-
2125
- # @!attribute product_tags
2126
- # If provided, the specifier will only apply to products with all the specified
2127
- # tags.
2128
- #
2129
- # @return [Array<String>, nil]
2130
- optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
2131
-
2132
- # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
2133
- # Some parameter documentations has been truncated, see
2134
- # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit::Specifier}
2135
- # for more details.
2136
- #
2137
- # @param presentation_group_values [Hash{Symbol=>String}]
2138
- #
2139
- # @param pricing_group_values [Hash{Symbol=>String}]
2140
- #
2141
- # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
2142
- #
2143
- # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
2144
- end
2145
- end
2146
-
2147
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration#payment_gate_config
2148
- class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
2149
- # @!attribute payment_gate_type
2150
- # Gate access to the commit balance based on successful collection of payment.
2151
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
2152
- # facilitate payment using your own payment integration. Select NONE if you do not
2153
- # wish to payment gate the commit balance.
2154
- #
2155
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType]
2156
- required :payment_gate_type,
2157
- enum: -> {
2158
- MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType
2159
- }
2160
-
2161
- # @!attribute precalculated_tax_config
2162
- # Only applicable if using PRECALCULATED as your tax type.
2163
- #
2164
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig, nil]
2165
- optional :precalculated_tax_config,
2166
- -> {
2167
- MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
2168
- }
2169
-
2170
- # @!attribute stripe_config
2171
- # Only applicable if using STRIPE as your payment gateway type.
2172
- #
2173
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
2174
- optional :stripe_config,
2175
- -> {
2176
- MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig
2177
- }
2178
-
2179
- # @!attribute tax_type
2180
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
2181
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
2182
- # will default to NONE.
2183
- #
2184
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType, nil]
2185
- optional :tax_type,
2186
- enum: -> {
2187
- MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType
2188
- }
2189
-
2190
- # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
2191
- # Some parameter documentations has been truncated, see
2192
- # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig}
2193
- # for more details.
2194
- #
2195
- # @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
2196
- #
2197
- # @param precalculated_tax_config [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
2198
- #
2199
- # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gateway type.
2200
- #
2201
- # @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
2202
-
2203
- # Gate access to the commit balance based on successful collection of payment.
2204
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
2205
- # facilitate payment using your own payment integration. Select NONE if you do not
2206
- # wish to payment gate the commit balance.
2207
- #
2208
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig#payment_gate_type
2209
- module PaymentGateType
2210
- extend MetronomeSDK::Internal::Type::Enum
2211
-
2212
- NONE = :NONE
2213
- STRIPE = :STRIPE
2214
- EXTERNAL = :EXTERNAL
2215
-
2216
- # @!method self.values
2217
- # @return [Array<Symbol>]
2218
- end
2219
-
2220
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig#precalculated_tax_config
2221
- class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
2222
- # @!attribute tax_amount
2223
- # Amount of tax to be applied. This should be in the same currency and
2224
- # denomination as the commit's invoice schedule
2225
- #
2226
- # @return [Float]
2227
- required :tax_amount, Float
2228
-
2229
- # @!attribute tax_name
2230
- # Name of the tax to be applied. This may be used in an invoice line item
2231
- # description.
2232
- #
2233
- # @return [String, nil]
2234
- optional :tax_name, String
2235
-
2236
- # @!method initialize(tax_amount:, tax_name: nil)
2237
- # Some parameter documentations has been truncated, see
2238
- # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig}
2239
- # for more details.
2240
- #
2241
- # Only applicable if using PRECALCULATED as your tax type.
2242
- #
2243
- # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
2244
- #
2245
- # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
2246
- end
2247
-
2248
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig#stripe_config
2249
- class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
2250
- # @!attribute payment_type
2251
- # If left blank, will default to INVOICE
2252
- #
2253
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
2254
- required :payment_type,
2255
- enum: -> {
2256
- MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
2257
- }
2258
-
2259
- # @!attribute invoice_metadata
2260
- # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
2261
- # your payment type.
2262
- #
2263
- # @return [Hash{Symbol=>String}, nil]
2264
- optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
2265
-
2266
- # @!method initialize(payment_type:, invoice_metadata: nil)
2267
- # Some parameter documentations has been truncated, see
2268
- # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig}
2269
- # for more details.
2270
- #
2271
- # Only applicable if using STRIPE as your payment gateway type.
2272
- #
2273
- # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
2274
- #
2275
- # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
2276
-
2277
- # If left blank, will default to INVOICE
2278
- #
2279
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
2280
- module PaymentType
2281
- extend MetronomeSDK::Internal::Type::Enum
2282
-
2283
- INVOICE = :INVOICE
2284
- PAYMENT_INTENT = :PAYMENT_INTENT
2285
-
2286
- # @!method self.values
2287
- # @return [Array<Symbol>]
2288
- end
2289
- end
2290
-
2291
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
2292
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
2293
- # will default to NONE.
2294
- #
2295
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig#tax_type
2296
- module TaxType
2297
- extend MetronomeSDK::Internal::Type::Enum
2298
-
2299
- NONE = :NONE
2300
- STRIPE = :STRIPE
2301
- ANROK = :ANROK
2302
- PRECALCULATED = :PRECALCULATED
2303
-
2304
- # @!method self.values
2305
- # @return [Array<Symbol>]
2306
- end
2307
- end
2308
- end
2309
-
2310
- class AddProfessionalService < MetronomeSDK::Internal::Type::BaseModel
2311
- # @!attribute max_amount
2312
- # Maximum amount for the term.
2313
- #
2314
- # @return [Float]
2315
- required :max_amount, Float
2316
-
2317
- # @!attribute product_id
2318
- #
2319
- # @return [String]
2320
- required :product_id, String
2321
-
2322
- # @!attribute quantity
2323
- # Quantity for the charge. Will be multiplied by unit_price to determine the
2324
- # amount.
2325
- #
2326
- # @return [Float]
2327
- required :quantity, Float
2328
-
2329
- # @!attribute unit_price
2330
- # Unit price for the charge. Will be multiplied by quantity to determine the
2331
- # amount and must be specified.
2332
- #
2333
- # @return [Float]
2334
- required :unit_price, Float
2335
-
2336
- # @!attribute custom_fields
2337
- #
2338
- # @return [Hash{Symbol=>String}, nil]
2339
- optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
2340
-
2341
- # @!attribute description
2342
- #
2343
- # @return [String, nil]
2344
- optional :description, String
2345
-
2346
- # @!attribute netsuite_sales_order_id
2347
- # This field's availability is dependent on your client's configuration.
2348
- #
2349
- # @return [String, nil]
2350
- optional :netsuite_sales_order_id, String
2351
-
2352
- # @!method initialize(max_amount:, product_id:, quantity:, unit_price:, custom_fields: nil, description: nil, netsuite_sales_order_id: nil)
2353
- # Some parameter documentations has been truncated, see
2354
- # {MetronomeSDK::Models::V2::ContractEditParams::AddProfessionalService} for more
2355
- # details.
2356
- #
2357
- # @param max_amount [Float] Maximum amount for the term.
2358
- #
2359
- # @param product_id [String]
2360
- #
2361
- # @param quantity [Float] Quantity for the charge. Will be multiplied by unit_price to determine the amoun
2362
- #
2363
- # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
2364
- #
2365
- # @param custom_fields [Hash{Symbol=>String}]
2366
- #
2367
- # @param description [String]
2368
- #
2369
- # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
2370
- end
2371
-
2372
- class AddRecurringCommit < MetronomeSDK::Internal::Type::BaseModel
2373
- # @!attribute access_amount
2374
- # The amount of commit to grant.
2375
- #
2376
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::AccessAmount]
2377
- required :access_amount,
2378
- -> {
2379
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::AccessAmount
2380
- }
2381
-
2382
- # @!attribute commit_duration
2383
- # Defines the length of the access schedule for each created commit/credit. The
2384
- # value represents the number of units. Unit defaults to "PERIODS", where the
2385
- # length of a period is determined by the recurrence_frequency.
2386
- #
2387
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration]
2388
- required :commit_duration,
2389
- -> {
2390
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::CommitDuration
2391
- }
2392
-
2393
- # @!attribute priority
2394
- # Will be passed down to the individual commits
2395
- #
2396
- # @return [Float]
2397
- required :priority, Float
2398
-
2399
- # @!attribute product_id
2400
- #
2401
- # @return [String]
2402
- required :product_id, String
1821
+ # @!attribute product_id
1822
+ #
1823
+ # @return [String]
1824
+ required :product_id, String
2403
1825
 
2404
1826
  # @!attribute starting_at
2405
1827
  # determines the start time for the first commit
@@ -2434,18 +1856,14 @@ module MetronomeSDK
2434
1856
  # @!attribute hierarchy_configuration
2435
1857
  # Optional configuration for recurring credit hierarchy access control
2436
1858
  #
2437
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration, nil]
2438
- optional :hierarchy_configuration,
2439
- -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration }
1859
+ # @return [MetronomeSDK::Models::CommitHierarchyConfiguration, nil]
1860
+ optional :hierarchy_configuration, -> { MetronomeSDK::CommitHierarchyConfiguration }
2440
1861
 
2441
1862
  # @!attribute invoice_amount
2442
1863
  # The amount the customer should be billed for the commit. Not required.
2443
1864
  #
2444
1865
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount, nil]
2445
- optional :invoice_amount,
2446
- -> {
2447
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount
2448
- }
1866
+ optional :invoice_amount, -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount }
2449
1867
 
2450
1868
  # @!attribute name
2451
1869
  # displayed on invoices. will be passed through to the individual commits
@@ -2464,10 +1882,7 @@ module MetronomeSDK
2464
1882
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
2465
1883
  #
2466
1884
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Proration, nil]
2467
- optional :proration,
2468
- enum: -> {
2469
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration
2470
- }
1885
+ optional :proration, enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration }
2471
1886
 
2472
1887
  # @!attribute rate_type
2473
1888
  # Whether the created commits will use the commit rate or list rate
@@ -2502,11 +1917,8 @@ module MetronomeSDK
2502
1917
  # Instead, to target usage by product or product tag, pass those values in the
2503
1918
  # body of `specifiers`.
2504
1919
  #
2505
- # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Specifier>, nil]
2506
- optional :specifiers,
2507
- -> {
2508
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Specifier]
2509
- }
1920
+ # @return [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil]
1921
+ optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifierInput] }
2510
1922
 
2511
1923
  # @!attribute subscription_config
2512
1924
  # Attach a subscription to the recurring commit/credit.
@@ -2545,7 +1957,7 @@ module MetronomeSDK
2545
1957
  #
2546
1958
  # @param ending_before [Time] Determines when the contract will stop creating recurring commits. optional
2547
1959
  #
2548
- # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration] Optional configuration for recurring credit hierarchy access control
1960
+ # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for recurring credit hierarchy access control
2549
1961
  #
2550
1962
  # @param invoice_amount [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount] The amount the customer should be billed for the commit. Not required.
2551
1963
  #
@@ -2561,7 +1973,7 @@ module MetronomeSDK
2561
1973
  #
2562
1974
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
2563
1975
  #
2564
- # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
1976
+ # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifierInput>] List of filters that determine what kind of customer usage draws down a commit o
2565
1977
  #
2566
1978
  # @param subscription_config [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig] Attach a subscription to the recurring commit/credit.
2567
1979
  #
@@ -2611,9 +2023,7 @@ module MetronomeSDK
2611
2023
  #
2612
2024
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration::Unit, nil]
2613
2025
  optional :unit,
2614
- enum: -> {
2615
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::CommitDuration::Unit
2616
- }
2026
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::CommitDuration::Unit }
2617
2027
 
2618
2028
  # @!method initialize(value:, unit: nil)
2619
2029
  # Defines the length of the access schedule for each created commit/credit. The
@@ -2634,117 +2044,6 @@ module MetronomeSDK
2634
2044
  end
2635
2045
  end
2636
2046
 
2637
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#hierarchy_configuration
2638
- class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
2639
- # @!attribute child_access
2640
- #
2641
- # @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]
2642
- required :child_access,
2643
- union: -> {
2644
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess
2645
- }
2646
-
2647
- # @!method initialize(child_access:)
2648
- # Optional configuration for recurring credit hierarchy access control
2649
- #
2650
- # @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]
2651
-
2652
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration#child_access
2653
- module ChildAccess
2654
- extend MetronomeSDK::Internal::Type::Union
2655
-
2656
- variant -> {
2657
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
2658
- }
2659
-
2660
- variant -> {
2661
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
2662
- }
2663
-
2664
- variant -> {
2665
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
2666
- }
2667
-
2668
- class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
2669
- # @!attribute type
2670
- #
2671
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
2672
- required :type,
2673
- enum: -> {
2674
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
2675
- }
2676
-
2677
- # @!method initialize(type:)
2678
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
2679
-
2680
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
2681
- module Type
2682
- extend MetronomeSDK::Internal::Type::Enum
2683
-
2684
- ALL = :ALL
2685
-
2686
- # @!method self.values
2687
- # @return [Array<Symbol>]
2688
- end
2689
- end
2690
-
2691
- class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
2692
- # @!attribute type
2693
- #
2694
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
2695
- required :type,
2696
- enum: -> {
2697
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
2698
- }
2699
-
2700
- # @!method initialize(type:)
2701
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
2702
-
2703
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
2704
- module Type
2705
- extend MetronomeSDK::Internal::Type::Enum
2706
-
2707
- NONE = :NONE
2708
-
2709
- # @!method self.values
2710
- # @return [Array<Symbol>]
2711
- end
2712
- end
2713
-
2714
- class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
2715
- # @!attribute contract_ids
2716
- #
2717
- # @return [Array<String>]
2718
- required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
2719
-
2720
- # @!attribute type
2721
- #
2722
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
2723
- required :type,
2724
- enum: -> {
2725
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
2726
- }
2727
-
2728
- # @!method initialize(contract_ids:, type:)
2729
- # @param contract_ids [Array<String>]
2730
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
2731
-
2732
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
2733
- module Type
2734
- extend MetronomeSDK::Internal::Type::Enum
2735
-
2736
- CONTRACT_IDS = :CONTRACT_IDS
2737
-
2738
- # @!method self.values
2739
- # @return [Array<Symbol>]
2740
- end
2741
- end
2742
-
2743
- # @!method self.variants
2744
- # @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)]
2745
- end
2746
- end
2747
-
2748
2047
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#invoice_amount
2749
2048
  class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
2750
2049
  # @!attribute credit_type_id
@@ -2818,53 +2117,13 @@ module MetronomeSDK
2818
2117
  # @return [Array<Symbol>]
2819
2118
  end
2820
2119
 
2821
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
2822
- # @!attribute presentation_group_values
2823
- #
2824
- # @return [Hash{Symbol=>String}, nil]
2825
- optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2826
-
2827
- # @!attribute pricing_group_values
2828
- #
2829
- # @return [Hash{Symbol=>String}, nil]
2830
- optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2831
-
2832
- # @!attribute product_id
2833
- # If provided, the specifier will only apply to the product with the specified ID.
2834
- #
2835
- # @return [String, nil]
2836
- optional :product_id, String
2837
-
2838
- # @!attribute product_tags
2839
- # If provided, the specifier will only apply to products with all the specified
2840
- # tags.
2841
- #
2842
- # @return [Array<String>, nil]
2843
- optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
2844
-
2845
- # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
2846
- # Some parameter documentations has been truncated, see
2847
- # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Specifier}
2848
- # for more details.
2849
- #
2850
- # @param presentation_group_values [Hash{Symbol=>String}]
2851
- #
2852
- # @param pricing_group_values [Hash{Symbol=>String}]
2853
- #
2854
- # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
2855
- #
2856
- # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
2857
- end
2858
-
2859
2120
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#subscription_config
2860
2121
  class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
2861
2122
  # @!attribute apply_seat_increase_config
2862
2123
  #
2863
2124
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig]
2864
2125
  required :apply_seat_increase_config,
2865
- -> {
2866
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig
2867
- }
2126
+ -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig }
2868
2127
 
2869
2128
  # @!attribute subscription_id
2870
2129
  # ID of the subscription to configure on the recurring commit/credit.
@@ -2877,9 +2136,7 @@ module MetronomeSDK
2877
2136
  #
2878
2137
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation, nil]
2879
2138
  optional :allocation,
2880
- enum: -> {
2881
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation
2882
- }
2139
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation }
2883
2140
 
2884
2141
  # @!method initialize(apply_seat_increase_config:, subscription_id:, allocation: nil)
2885
2142
  # Attach a subscription to the recurring commit/credit.
@@ -2909,6 +2166,7 @@ module MetronomeSDK
2909
2166
  extend MetronomeSDK::Internal::Type::Enum
2910
2167
 
2911
2168
  POOLED = :POOLED
2169
+ INDIVIDUAL = :INDIVIDUAL
2912
2170
 
2913
2171
  # @!method self.values
2914
2172
  # @return [Array<Symbol>]
@@ -2921,10 +2179,7 @@ module MetronomeSDK
2921
2179
  # The amount of commit to grant.
2922
2180
  #
2923
2181
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::AccessAmount]
2924
- required :access_amount,
2925
- -> {
2926
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::AccessAmount
2927
- }
2182
+ required :access_amount, -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::AccessAmount }
2928
2183
 
2929
2184
  # @!attribute commit_duration
2930
2185
  # Defines the length of the access schedule for each created commit/credit. The
@@ -2932,10 +2187,7 @@ module MetronomeSDK
2932
2187
  # length of a period is determined by the recurrence_frequency.
2933
2188
  #
2934
2189
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::CommitDuration]
2935
- required :commit_duration,
2936
- -> {
2937
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration
2938
- }
2190
+ required :commit_duration, -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration }
2939
2191
 
2940
2192
  # @!attribute priority
2941
2193
  # Will be passed down to the individual commits
@@ -2981,9 +2233,8 @@ module MetronomeSDK
2981
2233
  # @!attribute hierarchy_configuration
2982
2234
  # Optional configuration for recurring credit hierarchy access control
2983
2235
  #
2984
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration, nil]
2985
- optional :hierarchy_configuration,
2986
- -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration }
2236
+ # @return [MetronomeSDK::Models::CommitHierarchyConfiguration, nil]
2237
+ optional :hierarchy_configuration, -> { MetronomeSDK::CommitHierarchyConfiguration }
2987
2238
 
2988
2239
  # @!attribute name
2989
2240
  # displayed on invoices. will be passed through to the individual commits
@@ -3002,10 +2253,7 @@ module MetronomeSDK
3002
2253
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
3003
2254
  #
3004
2255
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Proration, nil]
3005
- optional :proration,
3006
- enum: -> {
3007
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::Proration
3008
- }
2256
+ optional :proration, enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::Proration }
3009
2257
 
3010
2258
  # @!attribute rate_type
3011
2259
  # Whether the created commits will use the commit rate or list rate
@@ -3040,11 +2288,8 @@ module MetronomeSDK
3040
2288
  # Instead, to target usage by product or product tag, pass those values in the
3041
2289
  # body of `specifiers`.
3042
2290
  #
3043
- # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Specifier>, nil]
3044
- optional :specifiers,
3045
- -> {
3046
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::Specifier]
3047
- }
2291
+ # @return [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil]
2292
+ optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifierInput] }
3048
2293
 
3049
2294
  # @!attribute subscription_config
3050
2295
  # Attach a subscription to the recurring commit/credit.
@@ -3083,7 +2328,7 @@ module MetronomeSDK
3083
2328
  #
3084
2329
  # @param ending_before [Time] Determines when the contract will stop creating recurring commits. optional
3085
2330
  #
3086
- # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration] Optional configuration for recurring credit hierarchy access control
2331
+ # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for recurring credit hierarchy access control
3087
2332
  #
3088
2333
  # @param name [String] displayed on invoices. will be passed through to the individual commits
3089
2334
  #
@@ -3097,7 +2342,7 @@ module MetronomeSDK
3097
2342
  #
3098
2343
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
3099
2344
  #
3100
- # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
2345
+ # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifierInput>] List of filters that determine what kind of customer usage draws down a commit o
3101
2346
  #
3102
2347
  # @param subscription_config [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig] Attach a subscription to the recurring commit/credit.
3103
2348
  #
@@ -3147,9 +2392,7 @@ module MetronomeSDK
3147
2392
  #
3148
2393
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit, nil]
3149
2394
  optional :unit,
3150
- enum: -> {
3151
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit
3152
- }
2395
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit }
3153
2396
 
3154
2397
  # @!method initialize(value:, unit: nil)
3155
2398
  # Defines the length of the access schedule for each created commit/credit. The
@@ -3170,117 +2413,6 @@ module MetronomeSDK
3170
2413
  end
3171
2414
  end
3172
2415
 
3173
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#hierarchy_configuration
3174
- class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
3175
- # @!attribute child_access
3176
- #
3177
- # @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]
3178
- required :child_access,
3179
- union: -> {
3180
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess
3181
- }
3182
-
3183
- # @!method initialize(child_access:)
3184
- # Optional configuration for recurring credit hierarchy access control
3185
- #
3186
- # @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]
3187
-
3188
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration#child_access
3189
- module ChildAccess
3190
- extend MetronomeSDK::Internal::Type::Union
3191
-
3192
- variant -> {
3193
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
3194
- }
3195
-
3196
- variant -> {
3197
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
3198
- }
3199
-
3200
- variant -> {
3201
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
3202
- }
3203
-
3204
- class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
3205
- # @!attribute type
3206
- #
3207
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
3208
- required :type,
3209
- enum: -> {
3210
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
3211
- }
3212
-
3213
- # @!method initialize(type:)
3214
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
3215
-
3216
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
3217
- module Type
3218
- extend MetronomeSDK::Internal::Type::Enum
3219
-
3220
- ALL = :ALL
3221
-
3222
- # @!method self.values
3223
- # @return [Array<Symbol>]
3224
- end
3225
- end
3226
-
3227
- class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
3228
- # @!attribute type
3229
- #
3230
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
3231
- required :type,
3232
- enum: -> {
3233
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
3234
- }
3235
-
3236
- # @!method initialize(type:)
3237
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
3238
-
3239
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
3240
- module Type
3241
- extend MetronomeSDK::Internal::Type::Enum
3242
-
3243
- NONE = :NONE
3244
-
3245
- # @!method self.values
3246
- # @return [Array<Symbol>]
3247
- end
3248
- end
3249
-
3250
- class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
3251
- # @!attribute contract_ids
3252
- #
3253
- # @return [Array<String>]
3254
- required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
3255
-
3256
- # @!attribute type
3257
- #
3258
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
3259
- required :type,
3260
- enum: -> {
3261
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
3262
- }
3263
-
3264
- # @!method initialize(contract_ids:, type:)
3265
- # @param contract_ids [Array<String>]
3266
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
3267
-
3268
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
3269
- module Type
3270
- extend MetronomeSDK::Internal::Type::Enum
3271
-
3272
- CONTRACT_IDS = :CONTRACT_IDS
3273
-
3274
- # @!method self.values
3275
- # @return [Array<Symbol>]
3276
- end
3277
- end
3278
-
3279
- # @!method self.variants
3280
- # @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)]
3281
- end
3282
- end
3283
-
3284
2416
  # Determines whether the first and last commit will be prorated. If not provided,
3285
2417
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
3286
2418
  #
@@ -3316,55 +2448,17 @@ module MetronomeSDK
3316
2448
  # be created aligned with the recurring commit's starting_at rather than the usage
3317
2449
  # invoice dates.
3318
2450
  #
3319
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#recurrence_frequency
3320
- module RecurrenceFrequency
3321
- extend MetronomeSDK::Internal::Type::Enum
3322
-
3323
- MONTHLY = :MONTHLY
3324
- QUARTERLY = :QUARTERLY
3325
- ANNUAL = :ANNUAL
3326
- WEEKLY = :WEEKLY
3327
-
3328
- # @!method self.values
3329
- # @return [Array<Symbol>]
3330
- end
3331
-
3332
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
3333
- # @!attribute presentation_group_values
3334
- #
3335
- # @return [Hash{Symbol=>String}, nil]
3336
- optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
3337
-
3338
- # @!attribute pricing_group_values
3339
- #
3340
- # @return [Hash{Symbol=>String}, nil]
3341
- optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
3342
-
3343
- # @!attribute product_id
3344
- # If provided, the specifier will only apply to the product with the specified ID.
3345
- #
3346
- # @return [String, nil]
3347
- optional :product_id, String
3348
-
3349
- # @!attribute product_tags
3350
- # If provided, the specifier will only apply to products with all the specified
3351
- # tags.
3352
- #
3353
- # @return [Array<String>, nil]
3354
- optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
2451
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#recurrence_frequency
2452
+ module RecurrenceFrequency
2453
+ extend MetronomeSDK::Internal::Type::Enum
3355
2454
 
3356
- # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
3357
- # Some parameter documentations has been truncated, see
3358
- # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Specifier}
3359
- # for more details.
3360
- #
3361
- # @param presentation_group_values [Hash{Symbol=>String}]
3362
- #
3363
- # @param pricing_group_values [Hash{Symbol=>String}]
3364
- #
3365
- # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
3366
- #
3367
- # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
2455
+ MONTHLY = :MONTHLY
2456
+ QUARTERLY = :QUARTERLY
2457
+ ANNUAL = :ANNUAL
2458
+ WEEKLY = :WEEKLY
2459
+
2460
+ # @!method self.values
2461
+ # @return [Array<Symbol>]
3368
2462
  end
3369
2463
 
3370
2464
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#subscription_config
@@ -3373,9 +2467,7 @@ module MetronomeSDK
3373
2467
  #
3374
2468
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig]
3375
2469
  required :apply_seat_increase_config,
3376
- -> {
3377
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig
3378
- }
2470
+ -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig }
3379
2471
 
3380
2472
  # @!attribute subscription_id
3381
2473
  # ID of the subscription to configure on the recurring commit/credit.
@@ -3388,9 +2480,7 @@ module MetronomeSDK
3388
2480
  #
3389
2481
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation, nil]
3390
2482
  optional :allocation,
3391
- enum: -> {
3392
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation
3393
- }
2483
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation }
3394
2484
 
3395
2485
  # @!method initialize(apply_seat_increase_config:, subscription_id:, allocation: nil)
3396
2486
  # Attach a subscription to the recurring commit/credit.
@@ -3420,6 +2510,7 @@ module MetronomeSDK
3420
2510
  extend MetronomeSDK::Internal::Type::Enum
3421
2511
 
3422
2512
  POOLED = :POOLED
2513
+ INDIVIDUAL = :INDIVIDUAL
3423
2514
 
3424
2515
  # @!method self.values
3425
2516
  # @return [Array<Symbol>]
@@ -3570,6 +2661,7 @@ module MetronomeSDK
3570
2661
  required :schedule, -> { MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule }
3571
2662
 
3572
2663
  # @!attribute custom_fields
2664
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
3573
2665
  #
3574
2666
  # @return [Hash{Symbol=>String}, nil]
3575
2667
  optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
@@ -3591,7 +2683,7 @@ module MetronomeSDK
3591
2683
  #
3592
2684
  # @param schedule [MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule] Must provide either schedule_items or recurring_schedule.
3593
2685
  #
3594
- # @param custom_fields [Hash{Symbol=>String}]
2686
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
3595
2687
  #
3596
2688
  # @param name [String] displayed on invoices
3597
2689
  #
@@ -3619,18 +2711,14 @@ module MetronomeSDK
3619
2711
  #
3620
2712
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule, nil]
3621
2713
  optional :recurring_schedule,
3622
- -> {
3623
- MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule
3624
- }
2714
+ -> { MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule }
3625
2715
 
3626
2716
  # @!attribute schedule_items
3627
2717
  # Either provide amount or provide both unit_price and quantity.
3628
2718
  #
3629
2719
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::ScheduleItem>, nil]
3630
2720
  optional :schedule_items,
3631
- -> {
3632
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::ScheduleItem]
3633
- }
2721
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::ScheduleItem] }
3634
2722
 
3635
2723
  # @!method initialize(credit_type_id: nil, do_not_invoice: nil, recurring_schedule: nil, schedule_items: nil)
3636
2724
  # Some parameter documentations has been truncated, see
@@ -3653,9 +2741,7 @@ module MetronomeSDK
3653
2741
  #
3654
2742
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::AmountDistribution]
3655
2743
  required :amount_distribution,
3656
- enum: -> {
3657
- MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::AmountDistribution
3658
- }
2744
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::AmountDistribution }
3659
2745
 
3660
2746
  # @!attribute ending_before
3661
2747
  # RFC 3339 timestamp (exclusive).
@@ -3667,9 +2753,7 @@ module MetronomeSDK
3667
2753
  #
3668
2754
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::Frequency]
3669
2755
  required :frequency,
3670
- enum: -> {
3671
- MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::Frequency
3672
- }
2756
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::Frequency }
3673
2757
 
3674
2758
  # @!attribute starting_at
3675
2759
  # RFC 3339 timestamp (inclusive).
@@ -3798,247 +2882,6 @@ module MetronomeSDK
3798
2882
  end
3799
2883
  end
3800
2884
 
3801
- class AddSpendThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
3802
- # @!attribute commit
3803
- #
3804
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::Commit]
3805
- required :commit,
3806
- -> {
3807
- MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::Commit
3808
- }
3809
-
3810
- # @!attribute is_enabled
3811
- # When set to false, the contract will not be evaluated against the
3812
- # threshold_amount. Toggling to true will result an immediate evaluation,
3813
- # regardless of prior state.
3814
- #
3815
- # @return [Boolean]
3816
- required :is_enabled, MetronomeSDK::Internal::Type::Boolean
3817
-
3818
- # @!attribute payment_gate_config
3819
- #
3820
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig]
3821
- required :payment_gate_config,
3822
- -> {
3823
- MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig
3824
- }
3825
-
3826
- # @!attribute threshold_amount
3827
- # Specify the threshold amount for the contract. Each time the contract's usage
3828
- # hits this amount, a threshold charge will be initiated.
3829
- #
3830
- # @return [Float]
3831
- required :threshold_amount, Float
3832
-
3833
- # @!method initialize(commit:, is_enabled:, payment_gate_config:, threshold_amount:)
3834
- # Some parameter documentations has been truncated, see
3835
- # {MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration}
3836
- # for more details.
3837
- #
3838
- # @param commit [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::Commit]
3839
- #
3840
- # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
3841
- #
3842
- # @param payment_gate_config [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig]
3843
- #
3844
- # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's usage hi
3845
-
3846
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration#commit
3847
- class Commit < MetronomeSDK::Internal::Type::BaseModel
3848
- # @!attribute product_id
3849
- # The commit product that will be used to generate the line item for commit
3850
- # payment.
3851
- #
3852
- # @return [String]
3853
- required :product_id, String
3854
-
3855
- # @!attribute description
3856
- #
3857
- # @return [String, nil]
3858
- optional :description, String
3859
-
3860
- # @!attribute name
3861
- # Specify the name of the line item for the threshold charge. If left blank, it
3862
- # will default to the commit product name.
3863
- #
3864
- # @return [String, nil]
3865
- optional :name, String
3866
-
3867
- # @!method initialize(product_id:, description: nil, name: nil)
3868
- # Some parameter documentations has been truncated, see
3869
- # {MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::Commit}
3870
- # for more details.
3871
- #
3872
- # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
3873
- #
3874
- # @param description [String]
3875
- #
3876
- # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
3877
- end
3878
-
3879
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration#payment_gate_config
3880
- class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
3881
- # @!attribute payment_gate_type
3882
- # Gate access to the commit balance based on successful collection of payment.
3883
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
3884
- # facilitate payment using your own payment integration. Select NONE if you do not
3885
- # wish to payment gate the commit balance.
3886
- #
3887
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType]
3888
- required :payment_gate_type,
3889
- enum: -> {
3890
- MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType
3891
- }
3892
-
3893
- # @!attribute precalculated_tax_config
3894
- # Only applicable if using PRECALCULATED as your tax type.
3895
- #
3896
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig, nil]
3897
- optional :precalculated_tax_config,
3898
- -> {
3899
- MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
3900
- }
3901
-
3902
- # @!attribute stripe_config
3903
- # Only applicable if using STRIPE as your payment gateway type.
3904
- #
3905
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
3906
- optional :stripe_config,
3907
- -> {
3908
- MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig
3909
- }
3910
-
3911
- # @!attribute tax_type
3912
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
3913
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
3914
- # will default to NONE.
3915
- #
3916
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType, nil]
3917
- optional :tax_type,
3918
- enum: -> {
3919
- MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType
3920
- }
3921
-
3922
- # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
3923
- # Some parameter documentations has been truncated, see
3924
- # {MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig}
3925
- # for more details.
3926
- #
3927
- # @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
3928
- #
3929
- # @param precalculated_tax_config [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
3930
- #
3931
- # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gateway type.
3932
- #
3933
- # @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
3934
-
3935
- # Gate access to the commit balance based on successful collection of payment.
3936
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
3937
- # facilitate payment using your own payment integration. Select NONE if you do not
3938
- # wish to payment gate the commit balance.
3939
- #
3940
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig#payment_gate_type
3941
- module PaymentGateType
3942
- extend MetronomeSDK::Internal::Type::Enum
3943
-
3944
- NONE = :NONE
3945
- STRIPE = :STRIPE
3946
- EXTERNAL = :EXTERNAL
3947
-
3948
- # @!method self.values
3949
- # @return [Array<Symbol>]
3950
- end
3951
-
3952
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig#precalculated_tax_config
3953
- class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
3954
- # @!attribute tax_amount
3955
- # Amount of tax to be applied. This should be in the same currency and
3956
- # denomination as the commit's invoice schedule
3957
- #
3958
- # @return [Float]
3959
- required :tax_amount, Float
3960
-
3961
- # @!attribute tax_name
3962
- # Name of the tax to be applied. This may be used in an invoice line item
3963
- # description.
3964
- #
3965
- # @return [String, nil]
3966
- optional :tax_name, String
3967
-
3968
- # @!method initialize(tax_amount:, tax_name: nil)
3969
- # Some parameter documentations has been truncated, see
3970
- # {MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig}
3971
- # for more details.
3972
- #
3973
- # Only applicable if using PRECALCULATED as your tax type.
3974
- #
3975
- # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
3976
- #
3977
- # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
3978
- end
3979
-
3980
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig#stripe_config
3981
- class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
3982
- # @!attribute payment_type
3983
- # If left blank, will default to INVOICE
3984
- #
3985
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
3986
- required :payment_type,
3987
- enum: -> {
3988
- MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
3989
- }
3990
-
3991
- # @!attribute invoice_metadata
3992
- # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
3993
- # your payment type.
3994
- #
3995
- # @return [Hash{Symbol=>String}, nil]
3996
- optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
3997
-
3998
- # @!method initialize(payment_type:, invoice_metadata: nil)
3999
- # Some parameter documentations has been truncated, see
4000
- # {MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig}
4001
- # for more details.
4002
- #
4003
- # Only applicable if using STRIPE as your payment gateway type.
4004
- #
4005
- # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
4006
- #
4007
- # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
4008
-
4009
- # If left blank, will default to INVOICE
4010
- #
4011
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
4012
- module PaymentType
4013
- extend MetronomeSDK::Internal::Type::Enum
4014
-
4015
- INVOICE = :INVOICE
4016
- PAYMENT_INTENT = :PAYMENT_INTENT
4017
-
4018
- # @!method self.values
4019
- # @return [Array<Symbol>]
4020
- end
4021
- end
4022
-
4023
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
4024
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
4025
- # will default to NONE.
4026
- #
4027
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig#tax_type
4028
- module TaxType
4029
- extend MetronomeSDK::Internal::Type::Enum
4030
-
4031
- NONE = :NONE
4032
- STRIPE = :STRIPE
4033
- ANROK = :ANROK
4034
- PRECALCULATED = :PRECALCULATED
4035
-
4036
- # @!method self.values
4037
- # @return [Array<Symbol>]
4038
- end
4039
- end
4040
- end
4041
-
4042
2885
  class AddSubscription < MetronomeSDK::Internal::Type::BaseModel
4043
2886
  # @!attribute collection_schedule
4044
2887
  #
@@ -4046,11 +2889,6 @@ module MetronomeSDK
4046
2889
  required :collection_schedule,
4047
2890
  enum: -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::CollectionSchedule }
4048
2891
 
4049
- # @!attribute initial_quantity
4050
- #
4051
- # @return [Float]
4052
- required :initial_quantity, Float
4053
-
4054
2892
  # @!attribute proration
4055
2893
  #
4056
2894
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration]
@@ -4063,6 +2901,7 @@ module MetronomeSDK
4063
2901
  -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::SubscriptionRate }
4064
2902
 
4065
2903
  # @!attribute custom_fields
2904
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
4066
2905
  #
4067
2906
  # @return [Hash{Symbol=>String}, nil]
4068
2907
  optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
@@ -4079,11 +2918,28 @@ module MetronomeSDK
4079
2918
  # @return [Time, nil]
4080
2919
  optional :ending_before, Time
4081
2920
 
2921
+ # @!attribute initial_quantity
2922
+ # The initial quantity for the subscription. It must be non-negative value.
2923
+ # Required if quantity_management_mode is QUANTITY_ONLY.
2924
+ #
2925
+ # @return [Float, nil]
2926
+ optional :initial_quantity, Float
2927
+
4082
2928
  # @!attribute name
4083
2929
  #
4084
2930
  # @return [String, nil]
4085
2931
  optional :name, String
4086
2932
 
2933
+ # @!attribute quantity_management_mode
2934
+ # Determines how the subscription's quantity is controlled. Defaults to
2935
+ # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
2936
+ # directly on the subscription. `initial_quantity` must be provided with this
2937
+ # option. Compatible with recurring commits/credits that use POOLED allocation.
2938
+ #
2939
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::QuantityManagementMode, nil]
2940
+ optional :quantity_management_mode,
2941
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::QuantityManagementMode }
2942
+
4087
2943
  # @!attribute starting_at
4088
2944
  # Inclusive start time for the subscription. If not provided, defaults to contract
4089
2945
  # start date
@@ -4098,27 +2954,29 @@ module MetronomeSDK
4098
2954
  # @return [String, nil]
4099
2955
  optional :temporary_id, String
4100
2956
 
4101
- # @!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)
2957
+ # @!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)
4102
2958
  # Some parameter documentations has been truncated, see
4103
2959
  # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription} for more
4104
2960
  # details.
4105
2961
  #
4106
2962
  # @param collection_schedule [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::CollectionSchedule]
4107
2963
  #
4108
- # @param initial_quantity [Float]
4109
- #
4110
2964
  # @param proration [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration]
4111
2965
  #
4112
2966
  # @param subscription_rate [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SubscriptionRate]
4113
2967
  #
4114
- # @param custom_fields [Hash{Symbol=>String}]
2968
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
4115
2969
  #
4116
2970
  # @param description [String]
4117
2971
  #
4118
2972
  # @param ending_before [Time] Exclusive end time for the subscription. If not provided, subscription inherits
4119
2973
  #
2974
+ # @param initial_quantity [Float] The initial quantity for the subscription. It must be non-negative value. Requir
2975
+ #
4120
2976
  # @param name [String]
4121
2977
  #
2978
+ # @param quantity_management_mode [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::QuantityManagementMode] Determines how the subscription's quantity is controlled. Defaults to QUANTITY_O
2979
+ #
4122
2980
  # @param starting_at [Time] Inclusive start time for the subscription. If not provided, defaults to contract
4123
2981
  #
4124
2982
  # @param temporary_id [String] A temporary ID used to reference the subscription in recurring commit/credit sub
@@ -4145,9 +3003,7 @@ module MetronomeSDK
4145
3003
  #
4146
3004
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration::InvoiceBehavior, nil]
4147
3005
  optional :invoice_behavior,
4148
- enum: -> {
4149
- MetronomeSDK::V2::ContractEditParams::AddSubscription::Proration::InvoiceBehavior
4150
- }
3006
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::Proration::InvoiceBehavior }
4151
3007
 
4152
3008
  # @!attribute is_prorated
4153
3009
  # Indicates if the partial period will be prorated or charged a full amount.
@@ -4190,9 +3046,7 @@ module MetronomeSDK
4190
3046
  #
4191
3047
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SubscriptionRate::BillingFrequency]
4192
3048
  required :billing_frequency,
4193
- enum: -> {
4194
- MetronomeSDK::V2::ContractEditParams::AddSubscription::SubscriptionRate::BillingFrequency
4195
- }
3049
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::SubscriptionRate::BillingFrequency }
4196
3050
 
4197
3051
  # @!attribute product_id
4198
3052
  # Must be subscription type product
@@ -4225,6 +3079,22 @@ module MetronomeSDK
4225
3079
  # @return [Array<Symbol>]
4226
3080
  end
4227
3081
  end
3082
+
3083
+ # Determines how the subscription's quantity is controlled. Defaults to
3084
+ # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
3085
+ # directly on the subscription. `initial_quantity` must be provided with this
3086
+ # option. Compatible with recurring commits/credits that use POOLED allocation.
3087
+ #
3088
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription#quantity_management_mode
3089
+ module QuantityManagementMode
3090
+ extend MetronomeSDK::Internal::Type::Enum
3091
+
3092
+ SEAT_BASED = :SEAT_BASED
3093
+ QUANTITY_ONLY = :QUANTITY_ONLY
3094
+
3095
+ # @!method self.values
3096
+ # @return [Array<Symbol>]
3097
+ end
4228
3098
  end
4229
3099
 
4230
3100
  class ArchiveCommit < MetronomeSDK::Internal::Type::BaseModel
@@ -4297,17 +3167,13 @@ module MetronomeSDK
4297
3167
  # @!attribute hierarchy_configuration
4298
3168
  # Optional configuration for commit hierarchy access control
4299
3169
  #
4300
- # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration, nil]
4301
- optional :hierarchy_configuration,
4302
- -> { MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration }
3170
+ # @return [MetronomeSDK::Models::CommitHierarchyConfiguration, nil]
3171
+ optional :hierarchy_configuration, -> { MetronomeSDK::CommitHierarchyConfiguration }
4303
3172
 
4304
3173
  # @!attribute invoice_schedule
4305
3174
  #
4306
3175
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule, nil]
4307
- optional :invoice_schedule,
4308
- -> {
4309
- MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule
4310
- }
3176
+ optional :invoice_schedule, -> { MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule }
4311
3177
 
4312
3178
  # @!attribute netsuite_sales_order_id
4313
3179
  #
@@ -4324,12 +3190,20 @@ module MetronomeSDK
4324
3190
  # @return [String, nil]
4325
3191
  optional :product_id, String
4326
3192
 
3193
+ # @!attribute rate_type
3194
+ # If provided, updates the commit to use the specified rate type for current and
3195
+ # future invoices. Previously finalized invoices will need to be voided and
3196
+ # regenerated to reflect the rate type change.
3197
+ #
3198
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::RateType, nil]
3199
+ optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::UpdateCommit::RateType }
3200
+
4327
3201
  # @!attribute rollover_fraction
4328
3202
  #
4329
3203
  # @return [Float, nil]
4330
3204
  optional :rollover_fraction, Float, nil?: true
4331
3205
 
4332
- # @!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, rollover_fraction: nil)
3206
+ # @!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)
4333
3207
  # Some parameter documentations has been truncated, see
4334
3208
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit} for more details.
4335
3209
  #
@@ -4341,7 +3215,7 @@ module MetronomeSDK
4341
3215
  #
4342
3216
  # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If applicable*product_ids, applicable_product*
4343
3217
  #
4344
- # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration] Optional configuration for commit hierarchy access control
3218
+ # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for commit hierarchy access control
4345
3219
  #
4346
3220
  # @param invoice_schedule [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule]
4347
3221
  #
@@ -4351,6 +3225,8 @@ module MetronomeSDK
4351
3225
  #
4352
3226
  # @param product_id [String]
4353
3227
  #
3228
+ # @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
3229
+ #
4354
3230
  # @param rollover_fraction [Float, nil]
4355
3231
 
4356
3232
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit#access_schedule
@@ -4359,25 +3235,19 @@ module MetronomeSDK
4359
3235
  #
4360
3236
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule::AddScheduleItem>, nil]
4361
3237
  optional :add_schedule_items,
4362
- -> {
4363
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::AddScheduleItem]
4364
- }
3238
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::AddScheduleItem] }
4365
3239
 
4366
3240
  # @!attribute remove_schedule_items
4367
3241
  #
4368
3242
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule::RemoveScheduleItem>, nil]
4369
3243
  optional :remove_schedule_items,
4370
- -> {
4371
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::RemoveScheduleItem]
4372
- }
3244
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::RemoveScheduleItem] }
4373
3245
 
4374
3246
  # @!attribute update_schedule_items
4375
3247
  #
4376
3248
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule::UpdateScheduleItem>, nil]
4377
3249
  optional :update_schedule_items,
4378
- -> {
4379
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::UpdateScheduleItem]
4380
- }
3250
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::UpdateScheduleItem] }
4381
3251
 
4382
3252
  # @!method initialize(add_schedule_items: nil, remove_schedule_items: nil, update_schedule_items: nil)
4383
3253
  # @param add_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule::AddScheduleItem>]
@@ -4420,139 +3290,28 @@ module MetronomeSDK
4420
3290
  # @!attribute id
4421
3291
  #
4422
3292
  # @return [String]
4423
- required :id, String
4424
-
4425
- # @!attribute amount
4426
- #
4427
- # @return [Float, nil]
4428
- optional :amount, Float
4429
-
4430
- # @!attribute ending_before
4431
- #
4432
- # @return [Time, nil]
4433
- optional :ending_before, Time
4434
-
4435
- # @!attribute starting_at
4436
- #
4437
- # @return [Time, nil]
4438
- optional :starting_at, Time
4439
-
4440
- # @!method initialize(id:, amount: nil, ending_before: nil, starting_at: nil)
4441
- # @param id [String]
4442
- # @param amount [Float]
4443
- # @param ending_before [Time]
4444
- # @param starting_at [Time]
4445
- end
4446
- end
4447
-
4448
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit#hierarchy_configuration
4449
- class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
4450
- # @!attribute child_access
4451
- #
4452
- # @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]
4453
- required :child_access,
4454
- union: -> {
4455
- MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess
4456
- }
4457
-
4458
- # @!method initialize(child_access:)
4459
- # Optional configuration for commit hierarchy access control
4460
- #
4461
- # @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]
4462
-
4463
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration#child_access
4464
- module ChildAccess
4465
- extend MetronomeSDK::Internal::Type::Union
4466
-
4467
- variant -> {
4468
- MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
4469
- }
4470
-
4471
- variant -> {
4472
- MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
4473
- }
4474
-
4475
- variant -> {
4476
- MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
4477
- }
4478
-
4479
- class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
4480
- # @!attribute type
4481
- #
4482
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
4483
- required :type,
4484
- enum: -> {
4485
- MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
4486
- }
4487
-
4488
- # @!method initialize(type:)
4489
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
4490
-
4491
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
4492
- module Type
4493
- extend MetronomeSDK::Internal::Type::Enum
4494
-
4495
- ALL = :ALL
4496
-
4497
- # @!method self.values
4498
- # @return [Array<Symbol>]
4499
- end
4500
- end
4501
-
4502
- class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
4503
- # @!attribute type
4504
- #
4505
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
4506
- required :type,
4507
- enum: -> {
4508
- MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
4509
- }
4510
-
4511
- # @!method initialize(type:)
4512
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
4513
-
4514
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
4515
- module Type
4516
- extend MetronomeSDK::Internal::Type::Enum
3293
+ required :id, String
4517
3294
 
4518
- NONE = :NONE
3295
+ # @!attribute amount
3296
+ #
3297
+ # @return [Float, nil]
3298
+ optional :amount, Float
4519
3299
 
4520
- # @!method self.values
4521
- # @return [Array<Symbol>]
4522
- end
4523
- end
3300
+ # @!attribute ending_before
3301
+ #
3302
+ # @return [Time, nil]
3303
+ optional :ending_before, Time
4524
3304
 
4525
- class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
4526
- # @!attribute contract_ids
4527
- #
4528
- # @return [Array<String>]
4529
- required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
4530
-
4531
- # @!attribute type
4532
- #
4533
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
4534
- required :type,
4535
- enum: -> {
4536
- MetronomeSDK::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
4537
- }
4538
-
4539
- # @!method initialize(contract_ids:, type:)
4540
- # @param contract_ids [Array<String>]
4541
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
4542
-
4543
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
4544
- module Type
4545
- extend MetronomeSDK::Internal::Type::Enum
4546
-
4547
- CONTRACT_IDS = :CONTRACT_IDS
4548
-
4549
- # @!method self.values
4550
- # @return [Array<Symbol>]
4551
- end
4552
- end
3305
+ # @!attribute starting_at
3306
+ #
3307
+ # @return [Time, nil]
3308
+ optional :starting_at, Time
4553
3309
 
4554
- # @!method self.variants
4555
- # @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)]
3310
+ # @!method initialize(id:, amount: nil, ending_before: nil, starting_at: nil)
3311
+ # @param id [String]
3312
+ # @param amount [Float]
3313
+ # @param ending_before [Time]
3314
+ # @param starting_at [Time]
4556
3315
  end
4557
3316
  end
4558
3317
 
@@ -4562,25 +3321,19 @@ module MetronomeSDK
4562
3321
  #
4563
3322
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::AddScheduleItem>, nil]
4564
3323
  optional :add_schedule_items,
4565
- -> {
4566
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::AddScheduleItem]
4567
- }
3324
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::AddScheduleItem] }
4568
3325
 
4569
3326
  # @!attribute remove_schedule_items
4570
3327
  #
4571
3328
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::RemoveScheduleItem>, nil]
4572
3329
  optional :remove_schedule_items,
4573
- -> {
4574
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::RemoveScheduleItem]
4575
- }
3330
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::RemoveScheduleItem] }
4576
3331
 
4577
3332
  # @!attribute update_schedule_items
4578
3333
  #
4579
3334
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::UpdateScheduleItem>, nil]
4580
3335
  optional :update_schedule_items,
4581
- -> {
4582
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::UpdateScheduleItem]
4583
- }
3336
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::UpdateScheduleItem] }
4584
3337
 
4585
3338
  # @!method initialize(add_schedule_items: nil, remove_schedule_items: nil, update_schedule_items: nil)
4586
3339
  # @param add_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::AddScheduleItem>]
@@ -4659,6 +3412,21 @@ module MetronomeSDK
4659
3412
  # @param unit_price [Float]
4660
3413
  end
4661
3414
  end
3415
+
3416
+ # If provided, updates the commit to use the specified rate type for current and
3417
+ # future invoices. Previously finalized invoices will need to be voided and
3418
+ # regenerated to reflect the rate type change.
3419
+ #
3420
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit#rate_type
3421
+ module RateType
3422
+ extend MetronomeSDK::Internal::Type::Enum
3423
+
3424
+ LIST_RATE = :LIST_RATE
3425
+ COMMIT_RATE = :COMMIT_RATE
3426
+
3427
+ # @!method self.values
3428
+ # @return [Array<Symbol>]
3429
+ end
4662
3430
  end
4663
3431
 
4664
3432
  class UpdateCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -4691,9 +3459,8 @@ module MetronomeSDK
4691
3459
  # @!attribute hierarchy_configuration
4692
3460
  # Optional configuration for commit hierarchy access control
4693
3461
  #
4694
- # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration, nil]
4695
- optional :hierarchy_configuration,
4696
- -> { MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration }
3462
+ # @return [MetronomeSDK::Models::CommitHierarchyConfiguration, nil]
3463
+ optional :hierarchy_configuration, -> { MetronomeSDK::CommitHierarchyConfiguration }
4697
3464
 
4698
3465
  # @!attribute netsuite_sales_order_id
4699
3466
  #
@@ -4710,7 +3477,15 @@ module MetronomeSDK
4710
3477
  # @return [String, nil]
4711
3478
  optional :product_id, String
4712
3479
 
4713
- # @!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)
3480
+ # @!attribute rate_type
3481
+ # If provided, updates the credit to use the specified rate type for current and
3482
+ # future invoices. Previously finalized invoices will need to be voided and
3483
+ # regenerated to reflect the rate type change.
3484
+ #
3485
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::RateType, nil]
3486
+ optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::UpdateCredit::RateType }
3487
+
3488
+ # @!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)
4714
3489
  # Some parameter documentations has been truncated, see
4715
3490
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit} for more details.
4716
3491
  #
@@ -4722,13 +3497,15 @@ module MetronomeSDK
4722
3497
  #
4723
3498
  # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If applicable*product_ids, applicable_product*
4724
3499
  #
4725
- # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration] Optional configuration for commit hierarchy access control
3500
+ # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for commit hierarchy access control
4726
3501
  #
4727
3502
  # @param netsuite_sales_order_id [String, nil]
4728
3503
  #
4729
3504
  # @param priority [Float, nil]
4730
3505
  #
4731
3506
  # @param product_id [String]
3507
+ #
3508
+ # @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
4732
3509
 
4733
3510
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit#access_schedule
4734
3511
  class AccessSchedule < MetronomeSDK::Internal::Type::BaseModel
@@ -4736,25 +3513,19 @@ module MetronomeSDK
4736
3513
  #
4737
3514
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::AddScheduleItem>, nil]
4738
3515
  optional :add_schedule_items,
4739
- -> {
4740
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::AddScheduleItem]
4741
- }
3516
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::AddScheduleItem] }
4742
3517
 
4743
3518
  # @!attribute remove_schedule_items
4744
3519
  #
4745
3520
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::RemoveScheduleItem>, nil]
4746
3521
  optional :remove_schedule_items,
4747
- -> {
4748
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::RemoveScheduleItem]
4749
- }
3522
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::RemoveScheduleItem] }
4750
3523
 
4751
3524
  # @!attribute update_schedule_items
4752
3525
  #
4753
3526
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::UpdateScheduleItem>, nil]
4754
3527
  optional :update_schedule_items,
4755
- -> {
4756
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::UpdateScheduleItem]
4757
- }
3528
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::UpdateScheduleItem] }
4758
3529
 
4759
3530
  # @!method initialize(add_schedule_items: nil, remove_schedule_items: nil, update_schedule_items: nil)
4760
3531
  # @param add_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::AddScheduleItem>]
@@ -4822,115 +3593,19 @@ module MetronomeSDK
4822
3593
  end
4823
3594
  end
4824
3595
 
4825
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit#hierarchy_configuration
4826
- class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
4827
- # @!attribute child_access
4828
- #
4829
- # @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]
4830
- required :child_access,
4831
- union: -> {
4832
- MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess
4833
- }
4834
-
4835
- # @!method initialize(child_access:)
4836
- # Optional configuration for commit hierarchy access control
4837
- #
4838
- # @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]
4839
-
4840
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration#child_access
4841
- module ChildAccess
4842
- extend MetronomeSDK::Internal::Type::Union
4843
-
4844
- variant -> {
4845
- MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
4846
- }
4847
-
4848
- variant -> {
4849
- MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
4850
- }
4851
-
4852
- variant -> {
4853
- MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
4854
- }
4855
-
4856
- class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
4857
- # @!attribute type
4858
- #
4859
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
4860
- required :type,
4861
- enum: -> {
4862
- MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
4863
- }
4864
-
4865
- # @!method initialize(type:)
4866
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
4867
-
4868
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
4869
- module Type
4870
- extend MetronomeSDK::Internal::Type::Enum
4871
-
4872
- ALL = :ALL
4873
-
4874
- # @!method self.values
4875
- # @return [Array<Symbol>]
4876
- end
4877
- end
4878
-
4879
- class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
4880
- # @!attribute type
4881
- #
4882
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
4883
- required :type,
4884
- enum: -> {
4885
- MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
4886
- }
4887
-
4888
- # @!method initialize(type:)
4889
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
4890
-
4891
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
4892
- module Type
4893
- extend MetronomeSDK::Internal::Type::Enum
4894
-
4895
- NONE = :NONE
4896
-
4897
- # @!method self.values
4898
- # @return [Array<Symbol>]
4899
- end
4900
- end
3596
+ # If provided, updates the credit to use the specified rate type for current and
3597
+ # future invoices. Previously finalized invoices will need to be voided and
3598
+ # regenerated to reflect the rate type change.
3599
+ #
3600
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit#rate_type
3601
+ module RateType
3602
+ extend MetronomeSDK::Internal::Type::Enum
4901
3603
 
4902
- class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
4903
- # @!attribute contract_ids
4904
- #
4905
- # @return [Array<String>]
4906
- required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
4907
-
4908
- # @!attribute type
4909
- #
4910
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
4911
- required :type,
4912
- enum: -> {
4913
- MetronomeSDK::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
4914
- }
4915
-
4916
- # @!method initialize(contract_ids:, type:)
4917
- # @param contract_ids [Array<String>]
4918
- # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
4919
-
4920
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
4921
- module Type
4922
- extend MetronomeSDK::Internal::Type::Enum
4923
-
4924
- CONTRACT_IDS = :CONTRACT_IDS
4925
-
4926
- # @!method self.values
4927
- # @return [Array<Symbol>]
4928
- end
4929
- end
3604
+ LIST_RATE = :LIST_RATE
3605
+ COMMIT_RATE = :COMMIT_RATE
4930
3606
 
4931
- # @!method self.variants
4932
- # @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)]
4933
- end
3607
+ # @!method self.values
3608
+ # @return [Array<Symbol>]
4934
3609
  end
4935
3610
  end
4936
3611
 
@@ -4939,9 +3614,7 @@ module MetronomeSDK
4939
3614
  #
4940
3615
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit, nil]
4941
3616
  optional :commit,
4942
- -> {
4943
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit
4944
- }
3617
+ -> { MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit }
4945
3618
 
4946
3619
  # @!attribute custom_credit_type_id
4947
3620
  # If provided, the threshold, recharge-to amount, and the resulting threshold
@@ -4960,11 +3633,8 @@ module MetronomeSDK
4960
3633
 
4961
3634
  # @!attribute payment_gate_config
4962
3635
  #
4963
- # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig, nil]
4964
- optional :payment_gate_config,
4965
- -> {
4966
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig
4967
- }
3636
+ # @return [MetronomeSDK::Models::PaymentGateConfigV2, nil]
3637
+ optional :payment_gate_config, -> { MetronomeSDK::PaymentGateConfigV2 }
4968
3638
 
4969
3639
  # @!attribute recharge_to_amount
4970
3640
  # Specify the amount the balance should be recharged to.
@@ -4973,296 +3643,69 @@ module MetronomeSDK
4973
3643
  optional :recharge_to_amount, Float
4974
3644
 
4975
3645
  # @!attribute threshold_amount
4976
- # Specify the threshold amount for the contract. Each time the contract's balance
4977
- # lowers to this amount, a threshold charge will be initiated.
4978
- #
4979
- # @return [Float, nil]
4980
- optional :threshold_amount, Float
4981
-
4982
- # @!method initialize(commit: nil, custom_credit_type_id: nil, is_enabled: nil, payment_gate_config: nil, recharge_to_amount: nil, threshold_amount: nil)
4983
- # Some parameter documentations has been truncated, see
4984
- # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration}
4985
- # for more details.
4986
- #
4987
- # @param commit [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit]
4988
- #
4989
- # @param custom_credit_type_id [String, nil] If provided, the threshold, recharge-to amount, and the resulting threshold comm
4990
- #
4991
- # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
4992
- #
4993
- # @param payment_gate_config [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig]
4994
- #
4995
- # @param recharge_to_amount [Float] Specify the amount the balance should be recharged to.
4996
- #
4997
- # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's balance
4998
-
4999
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration#commit
5000
- class Commit < MetronomeSDK::Internal::Type::BaseModel
5001
- # @!attribute applicable_product_ids
5002
- # Which products the threshold commit applies to. If both applicable_product_ids
5003
- # and applicable_product_tags are not provided, the commit applies to all
5004
- # products.
5005
- #
5006
- # @return [Array<String>, nil]
5007
- optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
5008
-
5009
- # @!attribute applicable_product_tags
5010
- # Which tags the threshold commit applies to. If both applicable_product_ids and
5011
- # applicable_product_tags are not provided, the commit applies to all products.
5012
- #
5013
- # @return [Array<String>, nil]
5014
- optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
5015
-
5016
- # @!attribute description
5017
- #
5018
- # @return [String, nil]
5019
- optional :description, String
5020
-
5021
- # @!attribute name
5022
- # Specify the name of the line item for the threshold charge. If left blank, it
5023
- # will default to the commit product name.
5024
- #
5025
- # @return [String, nil]
5026
- optional :name, String
5027
-
5028
- # @!attribute product_id
5029
- # The commit product that will be used to generate the line item for commit
5030
- # payment.
5031
- #
5032
- # @return [String, nil]
5033
- optional :product_id, String
5034
-
5035
- # @!attribute specifiers
5036
- # List of filters that determine what kind of customer usage draws down a commit
5037
- # or credit. A customer's usage needs to meet the condition of at least one of the
5038
- # specifiers to contribute to a commit's or credit's drawdown. This field cannot
5039
- # be used together with `applicable_product_ids` or `applicable_product_tags`.
5040
- # Instead, to target usage by product or product tag, pass those values in the
5041
- # body of `specifiers`.
5042
- #
5043
- # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier>, nil]
5044
- optional :specifiers,
5045
- -> {
5046
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier]
5047
- },
5048
- nil?: true
5049
-
5050
- # @!method initialize(applicable_product_ids: nil, applicable_product_tags: nil, description: nil, name: nil, product_id: nil, specifiers: nil)
5051
- # Some parameter documentations has been truncated, see
5052
- # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit}
5053
- # for more details.
5054
- #
5055
- # @param applicable_product_ids [Array<String>, nil] Which products the threshold commit applies to. If both applicable_product_ids a
5056
- #
5057
- # @param applicable_product_tags [Array<String>, nil] Which tags the threshold commit applies to. If both applicable_product_ids and a
5058
- #
5059
- # @param description [String]
5060
- #
5061
- # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
5062
- #
5063
- # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
5064
- #
5065
- # @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
5066
-
5067
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
5068
- # @!attribute presentation_group_values
5069
- #
5070
- # @return [Hash{Symbol=>String}, nil]
5071
- optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
5072
-
5073
- # @!attribute pricing_group_values
5074
- #
5075
- # @return [Hash{Symbol=>String}, nil]
5076
- optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
5077
-
5078
- # @!attribute product_id
5079
- # If provided, the specifier will only apply to the product with the specified ID.
5080
- #
5081
- # @return [String, nil]
5082
- optional :product_id, String
5083
-
5084
- # @!attribute product_tags
5085
- # If provided, the specifier will only apply to products with all the specified
5086
- # tags.
5087
- #
5088
- # @return [Array<String>, nil]
5089
- optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
5090
-
5091
- # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
5092
- # Some parameter documentations has been truncated, see
5093
- # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier}
5094
- # for more details.
5095
- #
5096
- # @param presentation_group_values [Hash{Symbol=>String}]
5097
- #
5098
- # @param pricing_group_values [Hash{Symbol=>String}]
5099
- #
5100
- # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
5101
- #
5102
- # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
5103
- end
5104
- end
5105
-
5106
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration#payment_gate_config
5107
- class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
5108
- # @!attribute payment_gate_type
5109
- # Gate access to the commit balance based on successful collection of payment.
5110
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
5111
- # facilitate payment using your own payment integration. Select NONE if you do not
5112
- # wish to payment gate the commit balance.
5113
- #
5114
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType]
5115
- required :payment_gate_type,
5116
- enum: -> {
5117
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType
5118
- }
5119
-
5120
- # @!attribute precalculated_tax_config
5121
- # Only applicable if using PRECALCULATED as your tax type.
5122
- #
5123
- # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig, nil]
5124
- optional :precalculated_tax_config,
5125
- -> {
5126
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
5127
- }
5128
-
5129
- # @!attribute stripe_config
5130
- # Only applicable if using STRIPE as your payment gateway type.
5131
- #
5132
- # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
5133
- optional :stripe_config,
5134
- -> {
5135
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig
5136
- }
5137
-
5138
- # @!attribute tax_type
5139
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
5140
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
5141
- # will default to NONE.
5142
- #
5143
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType, nil]
5144
- optional :tax_type,
5145
- enum: -> {
5146
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType
5147
- }
5148
-
5149
- # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
5150
- # Some parameter documentations has been truncated, see
5151
- # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig}
5152
- # for more details.
5153
- #
5154
- # @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
5155
- #
5156
- # @param precalculated_tax_config [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
5157
- #
5158
- # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gateway type.
5159
- #
5160
- # @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
5161
-
5162
- # Gate access to the commit balance based on successful collection of payment.
5163
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
5164
- # facilitate payment using your own payment integration. Select NONE if you do not
5165
- # wish to payment gate the commit balance.
5166
- #
5167
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig#payment_gate_type
5168
- module PaymentGateType
5169
- extend MetronomeSDK::Internal::Type::Enum
5170
-
5171
- NONE = :NONE
5172
- STRIPE = :STRIPE
5173
- EXTERNAL = :EXTERNAL
5174
-
5175
- # @!method self.values
5176
- # @return [Array<Symbol>]
5177
- end
5178
-
5179
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig#precalculated_tax_config
5180
- class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
5181
- # @!attribute tax_amount
5182
- # Amount of tax to be applied. This should be in the same currency and
5183
- # denomination as the commit's invoice schedule
5184
- #
5185
- # @return [Float]
5186
- required :tax_amount, Float
5187
-
5188
- # @!attribute tax_name
5189
- # Name of the tax to be applied. This may be used in an invoice line item
5190
- # description.
5191
- #
5192
- # @return [String, nil]
5193
- optional :tax_name, String
5194
-
5195
- # @!method initialize(tax_amount:, tax_name: nil)
5196
- # Some parameter documentations has been truncated, see
5197
- # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig}
5198
- # for more details.
5199
- #
5200
- # Only applicable if using PRECALCULATED as your tax type.
5201
- #
5202
- # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
5203
- #
5204
- # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
5205
- end
5206
-
5207
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig#stripe_config
5208
- class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
5209
- # @!attribute payment_type
5210
- # If left blank, will default to INVOICE
5211
- #
5212
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
5213
- required :payment_type,
5214
- enum: -> {
5215
- MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
5216
- }
5217
-
5218
- # @!attribute invoice_metadata
5219
- # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
5220
- # your payment type.
5221
- #
5222
- # @return [Hash{Symbol=>String}, nil]
5223
- optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
5224
-
5225
- # @!method initialize(payment_type:, invoice_metadata: nil)
5226
- # Some parameter documentations has been truncated, see
5227
- # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig}
5228
- # for more details.
5229
- #
5230
- # Only applicable if using STRIPE as your payment gateway type.
5231
- #
5232
- # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
5233
- #
5234
- # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
5235
-
5236
- # If left blank, will default to INVOICE
5237
- #
5238
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
5239
- module PaymentType
5240
- extend MetronomeSDK::Internal::Type::Enum
3646
+ # Specify the threshold amount for the contract. Each time the contract's balance
3647
+ # lowers to this amount, a threshold charge will be initiated.
3648
+ #
3649
+ # @return [Float, nil]
3650
+ optional :threshold_amount, Float
5241
3651
 
5242
- INVOICE = :INVOICE
5243
- PAYMENT_INTENT = :PAYMENT_INTENT
3652
+ # @!method initialize(commit: nil, custom_credit_type_id: nil, is_enabled: nil, payment_gate_config: nil, recharge_to_amount: nil, threshold_amount: nil)
3653
+ # Some parameter documentations has been truncated, see
3654
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration}
3655
+ # for more details.
3656
+ #
3657
+ # @param commit [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit]
3658
+ #
3659
+ # @param custom_credit_type_id [String, nil] If provided, the threshold, recharge-to amount, and the resulting threshold comm
3660
+ #
3661
+ # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
3662
+ #
3663
+ # @param payment_gate_config [MetronomeSDK::Models::PaymentGateConfigV2]
3664
+ #
3665
+ # @param recharge_to_amount [Float] Specify the amount the balance should be recharged to.
3666
+ #
3667
+ # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's balance
5244
3668
 
5245
- # @!method self.values
5246
- # @return [Array<Symbol>]
5247
- end
5248
- end
3669
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration#commit
3670
+ class Commit < MetronomeSDK::Models::UpdateBaseThresholdCommit
3671
+ # @!attribute applicable_product_ids
3672
+ # Which products the threshold commit applies to. If both applicable_product_ids
3673
+ # and applicable_product_tags are not provided, the commit applies to all
3674
+ # products.
3675
+ #
3676
+ # @return [Array<String>, nil]
3677
+ optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
5249
3678
 
5250
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
5251
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
5252
- # will default to NONE.
3679
+ # @!attribute applicable_product_tags
3680
+ # Which tags the threshold commit applies to. If both applicable_product_ids and
3681
+ # applicable_product_tags are not provided, the commit applies to all products.
5253
3682
  #
5254
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig#tax_type
5255
- module TaxType
5256
- extend MetronomeSDK::Internal::Type::Enum
3683
+ # @return [Array<String>, nil]
3684
+ optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
5257
3685
 
5258
- NONE = :NONE
5259
- STRIPE = :STRIPE
5260
- ANROK = :ANROK
5261
- PRECALCULATED = :PRECALCULATED
3686
+ # @!attribute specifiers
3687
+ # List of filters that determine what kind of customer usage draws down a commit
3688
+ # or credit. A customer's usage needs to meet the condition of at least one of the
3689
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
3690
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
3691
+ # Instead, to target usage by product or product tag, pass those values in the
3692
+ # body of `specifiers`.
3693
+ #
3694
+ # @return [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil]
3695
+ optional :specifiers,
3696
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifierInput] },
3697
+ nil?: true
5262
3698
 
5263
- # @!method self.values
5264
- # @return [Array<Symbol>]
5265
- end
3699
+ # @!method initialize(applicable_product_ids: nil, applicable_product_tags: nil, specifiers: nil)
3700
+ # Some parameter documentations has been truncated, see
3701
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit}
3702
+ # for more details.
3703
+ #
3704
+ # @param applicable_product_ids [Array<String>, nil] Which products the threshold commit applies to. If both applicable_product_ids a
3705
+ #
3706
+ # @param applicable_product_tags [Array<String>, nil] Which tags the threshold commit applies to. If both applicable_product_ids and a
3707
+ #
3708
+ # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil] List of filters that determine what kind of customer usage draws down a commit o
5266
3709
  end
5267
3710
  end
5268
3711
 
@@ -5275,10 +3718,7 @@ module MetronomeSDK
5275
3718
  # @!attribute access_amount
5276
3719
  #
5277
3720
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::AccessAmount, nil]
5278
- optional :access_amount,
5279
- -> {
5280
- MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit::AccessAmount
5281
- }
3721
+ optional :access_amount, -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit::AccessAmount }
5282
3722
 
5283
3723
  # @!attribute ending_before
5284
3724
  #
@@ -5291,11 +3731,27 @@ module MetronomeSDK
5291
3731
  optional :invoice_amount,
5292
3732
  -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit::InvoiceAmount }
5293
3733
 
5294
- # @!method initialize(recurring_commit_id:, access_amount: nil, ending_before: nil, invoice_amount: nil)
3734
+ # @!attribute rate_type
3735
+ # If provided, updates the recurring commit to use the specified rate type when
3736
+ # generating future commits.
3737
+ #
3738
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::RateType, nil]
3739
+ optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit::RateType }
3740
+
3741
+ # @!method initialize(recurring_commit_id:, access_amount: nil, ending_before: nil, invoice_amount: nil, rate_type: nil)
3742
+ # Some parameter documentations has been truncated, see
3743
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit} for more
3744
+ # details.
3745
+ #
5295
3746
  # @param recurring_commit_id [String]
3747
+ #
5296
3748
  # @param access_amount [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::AccessAmount]
3749
+ #
5297
3750
  # @param ending_before [Time, nil]
3751
+ #
5298
3752
  # @param invoice_amount [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::InvoiceAmount]
3753
+ #
3754
+ # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::RateType] If provided, updates the recurring commit to use the specified rate type when ge
5299
3755
 
5300
3756
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit#access_amount
5301
3757
  class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
@@ -5330,6 +3786,20 @@ module MetronomeSDK
5330
3786
  # @param quantity [Float]
5331
3787
  # @param unit_price [Float]
5332
3788
  end
3789
+
3790
+ # If provided, updates the recurring commit to use the specified rate type when
3791
+ # generating future commits.
3792
+ #
3793
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit#rate_type
3794
+ module RateType
3795
+ extend MetronomeSDK::Internal::Type::Enum
3796
+
3797
+ LIST_RATE = :LIST_RATE
3798
+ COMMIT_RATE = :COMMIT_RATE
3799
+
3800
+ # @!method self.values
3801
+ # @return [Array<Symbol>]
3802
+ end
5333
3803
  end
5334
3804
 
5335
3805
  class UpdateRecurringCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -5341,20 +3811,32 @@ module MetronomeSDK
5341
3811
  # @!attribute access_amount
5342
3812
  #
5343
3813
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::AccessAmount, nil]
5344
- optional :access_amount,
5345
- -> {
5346
- MetronomeSDK::V2::ContractEditParams::UpdateRecurringCredit::AccessAmount
5347
- }
3814
+ optional :access_amount, -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCredit::AccessAmount }
5348
3815
 
5349
3816
  # @!attribute ending_before
5350
3817
  #
5351
3818
  # @return [Time, nil]
5352
3819
  optional :ending_before, Time, nil?: true
5353
3820
 
5354
- # @!method initialize(recurring_credit_id:, access_amount: nil, ending_before: nil)
3821
+ # @!attribute rate_type
3822
+ # If provided, updates the recurring credit to use the specified rate type when
3823
+ # generating future credits.
3824
+ #
3825
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::RateType, nil]
3826
+ optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCredit::RateType }
3827
+
3828
+ # @!method initialize(recurring_credit_id:, access_amount: nil, ending_before: nil, rate_type: nil)
3829
+ # Some parameter documentations has been truncated, see
3830
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit} for more
3831
+ # details.
3832
+ #
5355
3833
  # @param recurring_credit_id [String]
3834
+ #
5356
3835
  # @param access_amount [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::AccessAmount]
3836
+ #
5357
3837
  # @param ending_before [Time, nil]
3838
+ #
3839
+ # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::RateType] If provided, updates the recurring credit to use the specified rate type when ge
5358
3840
 
5359
3841
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit#access_amount
5360
3842
  class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
@@ -5372,6 +3854,20 @@ module MetronomeSDK
5372
3854
  # @param quantity [Float]
5373
3855
  # @param unit_price [Float]
5374
3856
  end
3857
+
3858
+ # If provided, updates the recurring credit to use the specified rate type when
3859
+ # generating future credits.
3860
+ #
3861
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit#rate_type
3862
+ module RateType
3863
+ extend MetronomeSDK::Internal::Type::Enum
3864
+
3865
+ LIST_RATE = :LIST_RATE
3866
+ COMMIT_RATE = :COMMIT_RATE
3867
+
3868
+ # @!method self.values
3869
+ # @return [Array<Symbol>]
3870
+ end
5375
3871
  end
5376
3872
 
5377
3873
  class UpdateScheduledCharge < MetronomeSDK::Internal::Type::BaseModel
@@ -5402,25 +3898,19 @@ module MetronomeSDK
5402
3898
  #
5403
3899
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::AddScheduleItem>, nil]
5404
3900
  optional :add_schedule_items,
5405
- -> {
5406
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::AddScheduleItem]
5407
- }
3901
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::AddScheduleItem] }
5408
3902
 
5409
3903
  # @!attribute remove_schedule_items
5410
3904
  #
5411
3905
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::RemoveScheduleItem>, nil]
5412
3906
  optional :remove_schedule_items,
5413
- -> {
5414
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::RemoveScheduleItem]
5415
- }
3907
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::RemoveScheduleItem] }
5416
3908
 
5417
3909
  # @!attribute update_schedule_items
5418
3910
  #
5419
3911
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::UpdateScheduleItem>, nil]
5420
3912
  optional :update_schedule_items,
5421
- -> {
5422
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::UpdateScheduleItem]
5423
- }
3913
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::UpdateScheduleItem] }
5424
3914
 
5425
3915
  # @!method initialize(add_schedule_items: nil, remove_schedule_items: nil, update_schedule_items: nil)
5426
3916
  # @param add_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::AddScheduleItem>]
@@ -5504,11 +3994,8 @@ module MetronomeSDK
5504
3994
  class UpdateSpendThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
5505
3995
  # @!attribute commit
5506
3996
  #
5507
- # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::Commit, nil]
5508
- optional :commit,
5509
- -> {
5510
- MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::Commit
5511
- }
3997
+ # @return [MetronomeSDK::Models::UpdateBaseThresholdCommit, nil]
3998
+ optional :commit, -> { MetronomeSDK::UpdateBaseThresholdCommit }
5512
3999
 
5513
4000
  # @!attribute is_enabled
5514
4001
  # When set to false, the contract will not be evaluated against the
@@ -5520,11 +4007,8 @@ module MetronomeSDK
5520
4007
 
5521
4008
  # @!attribute payment_gate_config
5522
4009
  #
5523
- # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig, nil]
5524
- optional :payment_gate_config,
5525
- -> {
5526
- MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig
5527
- }
4010
+ # @return [MetronomeSDK::Models::PaymentGateConfigV2, nil]
4011
+ optional :payment_gate_config, -> { MetronomeSDK::PaymentGateConfigV2 }
5528
4012
 
5529
4013
  # @!attribute threshold_amount
5530
4014
  # Specify the threshold amount for the contract. Each time the contract's usage
@@ -5538,208 +4022,13 @@ module MetronomeSDK
5538
4022
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration}
5539
4023
  # for more details.
5540
4024
  #
5541
- # @param commit [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::Commit]
4025
+ # @param commit [MetronomeSDK::Models::UpdateBaseThresholdCommit]
5542
4026
  #
5543
4027
  # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
5544
4028
  #
5545
- # @param payment_gate_config [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig]
4029
+ # @param payment_gate_config [MetronomeSDK::Models::PaymentGateConfigV2]
5546
4030
  #
5547
4031
  # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's usage hi
5548
-
5549
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration#commit
5550
- class Commit < MetronomeSDK::Internal::Type::BaseModel
5551
- # @!attribute description
5552
- #
5553
- # @return [String, nil]
5554
- optional :description, String
5555
-
5556
- # @!attribute name
5557
- # Specify the name of the line item for the threshold charge. If left blank, it
5558
- # will default to the commit product name.
5559
- #
5560
- # @return [String, nil]
5561
- optional :name, String
5562
-
5563
- # @!attribute product_id
5564
- # The commit product that will be used to generate the line item for commit
5565
- # payment.
5566
- #
5567
- # @return [String, nil]
5568
- optional :product_id, String
5569
-
5570
- # @!method initialize(description: nil, name: nil, product_id: nil)
5571
- # Some parameter documentations has been truncated, see
5572
- # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::Commit}
5573
- # for more details.
5574
- #
5575
- # @param description [String]
5576
- #
5577
- # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
5578
- #
5579
- # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
5580
- end
5581
-
5582
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration#payment_gate_config
5583
- class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
5584
- # @!attribute payment_gate_type
5585
- # Gate access to the commit balance based on successful collection of payment.
5586
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
5587
- # facilitate payment using your own payment integration. Select NONE if you do not
5588
- # wish to payment gate the commit balance.
5589
- #
5590
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType]
5591
- required :payment_gate_type,
5592
- enum: -> {
5593
- MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType
5594
- }
5595
-
5596
- # @!attribute precalculated_tax_config
5597
- # Only applicable if using PRECALCULATED as your tax type.
5598
- #
5599
- # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig, nil]
5600
- optional :precalculated_tax_config,
5601
- -> {
5602
- MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
5603
- }
5604
-
5605
- # @!attribute stripe_config
5606
- # Only applicable if using STRIPE as your payment gateway type.
5607
- #
5608
- # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
5609
- optional :stripe_config,
5610
- -> {
5611
- MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig
5612
- }
5613
-
5614
- # @!attribute tax_type
5615
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
5616
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
5617
- # will default to NONE.
5618
- #
5619
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType, nil]
5620
- optional :tax_type,
5621
- enum: -> {
5622
- MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType
5623
- }
5624
-
5625
- # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
5626
- # Some parameter documentations has been truncated, see
5627
- # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig}
5628
- # for more details.
5629
- #
5630
- # @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
5631
- #
5632
- # @param precalculated_tax_config [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
5633
- #
5634
- # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gateway type.
5635
- #
5636
- # @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
5637
-
5638
- # Gate access to the commit balance based on successful collection of payment.
5639
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
5640
- # facilitate payment using your own payment integration. Select NONE if you do not
5641
- # wish to payment gate the commit balance.
5642
- #
5643
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig#payment_gate_type
5644
- module PaymentGateType
5645
- extend MetronomeSDK::Internal::Type::Enum
5646
-
5647
- NONE = :NONE
5648
- STRIPE = :STRIPE
5649
- EXTERNAL = :EXTERNAL
5650
-
5651
- # @!method self.values
5652
- # @return [Array<Symbol>]
5653
- end
5654
-
5655
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig#precalculated_tax_config
5656
- class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
5657
- # @!attribute tax_amount
5658
- # Amount of tax to be applied. This should be in the same currency and
5659
- # denomination as the commit's invoice schedule
5660
- #
5661
- # @return [Float]
5662
- required :tax_amount, Float
5663
-
5664
- # @!attribute tax_name
5665
- # Name of the tax to be applied. This may be used in an invoice line item
5666
- # description.
5667
- #
5668
- # @return [String, nil]
5669
- optional :tax_name, String
5670
-
5671
- # @!method initialize(tax_amount:, tax_name: nil)
5672
- # Some parameter documentations has been truncated, see
5673
- # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig}
5674
- # for more details.
5675
- #
5676
- # Only applicable if using PRECALCULATED as your tax type.
5677
- #
5678
- # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
5679
- #
5680
- # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
5681
- end
5682
-
5683
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig#stripe_config
5684
- class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
5685
- # @!attribute payment_type
5686
- # If left blank, will default to INVOICE
5687
- #
5688
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
5689
- required :payment_type,
5690
- enum: -> {
5691
- MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
5692
- }
5693
-
5694
- # @!attribute invoice_metadata
5695
- # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
5696
- # your payment type.
5697
- #
5698
- # @return [Hash{Symbol=>String}, nil]
5699
- optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
5700
-
5701
- # @!method initialize(payment_type:, invoice_metadata: nil)
5702
- # Some parameter documentations has been truncated, see
5703
- # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig}
5704
- # for more details.
5705
- #
5706
- # Only applicable if using STRIPE as your payment gateway type.
5707
- #
5708
- # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
5709
- #
5710
- # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
5711
-
5712
- # If left blank, will default to INVOICE
5713
- #
5714
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
5715
- module PaymentType
5716
- extend MetronomeSDK::Internal::Type::Enum
5717
-
5718
- INVOICE = :INVOICE
5719
- PAYMENT_INTENT = :PAYMENT_INTENT
5720
-
5721
- # @!method self.values
5722
- # @return [Array<Symbol>]
5723
- end
5724
- end
5725
-
5726
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
5727
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
5728
- # will default to NONE.
5729
- #
5730
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig#tax_type
5731
- module TaxType
5732
- extend MetronomeSDK::Internal::Type::Enum
5733
-
5734
- NONE = :NONE
5735
- STRIPE = :STRIPE
5736
- ANROK = :ANROK
5737
- PRECALCULATED = :PRECALCULATED
5738
-
5739
- # @!method self.values
5740
- # @return [Array<Symbol>]
5741
- end
5742
- end
5743
4032
  end
5744
4033
 
5745
4034
  class UpdateSubscription < MetronomeSDK::Internal::Type::BaseModel
@@ -5760,9 +4049,7 @@ module MetronomeSDK
5760
4049
  #
5761
4050
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityUpdate>, nil]
5762
4051
  optional :quantity_updates,
5763
- -> {
5764
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityUpdate]
5765
- }
4052
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityUpdate] }
5766
4053
 
5767
4054
  # @!method initialize(subscription_id:, ending_before: nil, quantity_updates: nil)
5768
4055
  # Some parameter documentations has been truncated, see