metronome-sdk 0.2.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (321) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +61 -0
  3. data/README.md +9 -9
  4. data/lib/metronome_sdk/internal/body_cursor_page.rb +86 -0
  5. data/lib/metronome_sdk/internal/cursor_page_without_limit.rb +86 -0
  6. data/lib/metronome_sdk/internal/transport/base_client.rb +1 -4
  7. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +1 -9
  8. data/lib/metronome_sdk/internal/type/array_of.rb +1 -0
  9. data/lib/metronome_sdk/internal/type/base_model.rb +9 -14
  10. data/lib/metronome_sdk/internal/type/converter.rb +27 -0
  11. data/lib/metronome_sdk/internal/type/hash_of.rb +1 -0
  12. data/lib/metronome_sdk/internal/type/union.rb +20 -7
  13. data/lib/metronome_sdk/internal/util.rb +1 -1
  14. data/lib/metronome_sdk/models/base_threshold_commit.rb +36 -0
  15. data/lib/metronome_sdk/models/commit.rb +26 -170
  16. data/lib/metronome_sdk/models/commit_hierarchy_configuration.rb +98 -0
  17. data/lib/metronome_sdk/models/commit_rate.rb +48 -0
  18. data/lib/metronome_sdk/models/commit_specifier.rb +42 -0
  19. data/lib/metronome_sdk/models/commit_specifier_input.rb +42 -0
  20. data/lib/metronome_sdk/models/contract.rb +404 -0
  21. data/lib/metronome_sdk/models/contract_v2.rb +2919 -0
  22. data/lib/metronome_sdk/models/contract_without_amendments.rb +36 -1126
  23. data/lib/metronome_sdk/models/credit.rb +9 -156
  24. data/lib/metronome_sdk/models/discount.rb +2 -1
  25. data/lib/metronome_sdk/models/hierarchy_configuration.rb +76 -0
  26. data/lib/metronome_sdk/models/override.rb +6 -101
  27. data/lib/metronome_sdk/models/override_tier.rb +21 -0
  28. data/lib/metronome_sdk/models/overwrite_rate.rb +82 -0
  29. data/lib/metronome_sdk/models/payment_gate_config.rb +149 -0
  30. data/lib/metronome_sdk/models/payment_gate_config_v2.rb +149 -0
  31. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +100 -0
  32. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +102 -0
  33. data/lib/metronome_sdk/models/pro_service.rb +2 -1
  34. data/lib/metronome_sdk/models/recurring_commit_subscription_config.rb +51 -0
  35. data/lib/metronome_sdk/models/schedule_point_in_time.rb +14 -1
  36. data/lib/metronome_sdk/models/scheduled_charge.rb +2 -1
  37. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +44 -0
  38. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +44 -0
  39. data/lib/metronome_sdk/models/subscription.rb +227 -0
  40. data/lib/metronome_sdk/models/update_base_threshold_commit.rb +36 -0
  41. data/lib/metronome_sdk/models/v1/alert_create_params.rb +4 -6
  42. data/lib/metronome_sdk/models/v1/billable_metric_create_params.rb +1 -2
  43. data/lib/metronome_sdk/models/v1/billable_metric_list_response.rb +3 -3
  44. data/lib/metronome_sdk/models/v1/billable_metric_retrieve_response.rb +4 -7
  45. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +110 -415
  46. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_params.rb +7 -16
  47. data/lib/metronome_sdk/models/v1/contract_create_params.rb +287 -1480
  48. data/lib/metronome_sdk/models/v1/contract_list_balances_response.rb +6 -23
  49. data/lib/metronome_sdk/models/v1/contract_list_response.rb +3 -1153
  50. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rb +2 -6
  51. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rb +5 -50
  52. data/lib/metronome_sdk/models/v1/contract_retrieve_response.rb +3 -1154
  53. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_params.rb +1 -3
  54. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +9 -1
  55. data/lib/metronome_sdk/models/v1/contracts/product_list_response.rb +8 -1
  56. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_response.rb +8 -1
  57. data/lib/metronome_sdk/models/v1/contracts/quantity_rounding.rb +1 -4
  58. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_params.rb +4 -7
  59. data/lib/metronome_sdk/models/v1/contracts/rate_card_list_response.rb +10 -1
  60. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rb +2 -6
  61. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rb +5 -50
  62. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rb +10 -1
  63. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_params.rb +1 -3
  64. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_params.rb +1 -3
  65. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +6 -61
  66. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +3 -49
  67. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +4 -51
  68. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rb +2 -6
  69. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rb +5 -49
  70. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_response.rb +103 -123
  71. data/lib/metronome_sdk/models/v1/credit_grant_list_response.rb +3 -5
  72. data/lib/metronome_sdk/models/v1/custom_field_list_keys_params.rb +1 -3
  73. data/lib/metronome_sdk/models/v1/custom_field_list_keys_response.rb +41 -58
  74. data/lib/metronome_sdk/models/v1/custom_field_set_values_params.rb +5 -1
  75. data/lib/metronome_sdk/models/v1/customer.rb +2 -1
  76. data/lib/metronome_sdk/models/v1/customer_create_params.rb +37 -11
  77. data/lib/metronome_sdk/models/v1/customer_detail.rb +2 -1
  78. data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_response.rb +3 -3
  79. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +1 -3
  80. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rb +28 -0
  81. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rb +128 -0
  82. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb +143 -0
  83. data/lib/metronome_sdk/models/v1/customers/alert_list_params.rb +1 -3
  84. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +30 -1
  85. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +2 -0
  86. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +2 -0
  87. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +20 -61
  88. data/lib/metronome_sdk/models/v1/customers/credit_create_params.rb +6 -48
  89. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +8 -16
  90. data/lib/metronome_sdk/models/v1/customers/invoice.rb +68 -43
  91. data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_params.rb +1 -4
  92. data/lib/metronome_sdk/models/v1/customers/plan_add_params.rb +2 -6
  93. data/lib/metronome_sdk/models/v1/customers/plan_list_response.rb +2 -1
  94. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +4 -11
  95. data/lib/metronome_sdk/models/v1/plan_detail.rb +9 -5
  96. data/lib/metronome_sdk/models/v1/plan_list_charges_response.rb +2 -1
  97. data/lib/metronome_sdk/models/v1/plan_list_customers_response.rb +2 -1
  98. data/lib/metronome_sdk/models/v1/plan_list_response.rb +5 -1
  99. data/lib/metronome_sdk/models/v1/usage_ingest_params.rb +1 -4
  100. data/lib/metronome_sdk/models/v1/usage_list_params.rb +1 -3
  101. data/lib/metronome_sdk/models/v1/usage_list_response.rb +45 -62
  102. data/lib/metronome_sdk/models/v1/usage_search_response.rb +4 -7
  103. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +38 -58
  104. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +35 -49
  105. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +469 -2302
  106. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +358 -2414
  107. data/lib/metronome_sdk/models/v2/contract_list_response.rb +3 -4520
  108. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +3 -4528
  109. data/lib/metronome_sdk/models.rb +38 -0
  110. data/lib/metronome_sdk/resources/v1/alerts.rb +72 -2
  111. data/lib/metronome_sdk/resources/v1/audit_logs.rb +39 -4
  112. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +54 -4
  113. data/lib/metronome_sdk/resources/v1/contracts/products.rb +27 -6
  114. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rb +7 -2
  115. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +10 -2
  116. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +109 -10
  117. data/lib/metronome_sdk/resources/v1/contracts.rb +254 -18
  118. data/lib/metronome_sdk/resources/v1/credit_grants.rb +2 -1
  119. data/lib/metronome_sdk/resources/v1/custom_fields.rb +51 -14
  120. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +103 -8
  121. data/lib/metronome_sdk/resources/v1/customers/commits.rb +119 -9
  122. data/lib/metronome_sdk/resources/v1/customers/credits.rb +104 -8
  123. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +124 -8
  124. data/lib/metronome_sdk/resources/v1/customers.rb +169 -12
  125. data/lib/metronome_sdk/resources/v1/dashboards.rb +29 -3
  126. data/lib/metronome_sdk/resources/v1/invoices.rb +23 -2
  127. data/lib/metronome_sdk/resources/v1/pricing_units.rb +6 -1
  128. data/lib/metronome_sdk/resources/v1/services.rb +6 -4
  129. data/lib/metronome_sdk/resources/v1/usage.rb +185 -12
  130. data/lib/metronome_sdk/resources/v2/contracts.rb +118 -18
  131. data/lib/metronome_sdk/version.rb +1 -1
  132. data/lib/metronome_sdk.rb +24 -3
  133. data/rbi/metronome_sdk/errors.rbi +2 -2
  134. data/rbi/metronome_sdk/internal/body_cursor_page.rbi +22 -0
  135. data/rbi/metronome_sdk/internal/cursor_page_without_limit.rbi +22 -0
  136. data/rbi/metronome_sdk/internal/type/converter.rbi +58 -0
  137. data/rbi/metronome_sdk/internal/type/union.rbi +9 -2
  138. data/rbi/metronome_sdk/models/base_threshold_commit.rbi +58 -0
  139. data/rbi/metronome_sdk/models/commit.rbi +26 -348
  140. data/rbi/metronome_sdk/models/commit_hierarchy_configuration.rbi +280 -0
  141. data/rbi/metronome_sdk/models/commit_rate.rbi +85 -0
  142. data/rbi/metronome_sdk/models/commit_specifier.rbi +71 -0
  143. data/rbi/metronome_sdk/models/commit_specifier_input.rbi +74 -0
  144. data/rbi/metronome_sdk/models/contract.rbi +768 -0
  145. data/rbi/metronome_sdk/models/contract_v2.rbi +5822 -0
  146. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +184 -2507
  147. data/rbi/metronome_sdk/models/credit.rbi +10 -348
  148. data/rbi/metronome_sdk/models/discount.rbi +2 -0
  149. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +180 -0
  150. data/rbi/metronome_sdk/models/override.rbi +8 -193
  151. data/rbi/metronome_sdk/models/override_tier.rbi +29 -0
  152. data/rbi/metronome_sdk/models/overwrite_rate.rbi +137 -0
  153. data/rbi/metronome_sdk/models/payment_gate_config.rbi +312 -0
  154. data/rbi/metronome_sdk/models/payment_gate_config_v2.rbi +321 -0
  155. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +183 -0
  156. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +188 -0
  157. data/rbi/metronome_sdk/models/pro_service.rbi +2 -0
  158. data/rbi/metronome_sdk/models/recurring_commit_subscription_config.rbi +125 -0
  159. data/rbi/metronome_sdk/models/schedule_point_in_time.rbi +17 -1
  160. data/rbi/metronome_sdk/models/scheduled_charge.rbi +2 -0
  161. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +76 -0
  162. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -0
  163. data/rbi/metronome_sdk/models/subscription.rbi +460 -0
  164. data/rbi/metronome_sdk/models/update_base_threshold_commit.rbi +61 -0
  165. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +6 -3
  166. data/rbi/metronome_sdk/models/v1/billable_metric_list_response.rbi +2 -0
  167. data/rbi/metronome_sdk/models/v1/billable_metric_retrieve_response.rbi +2 -0
  168. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +120 -771
  169. data/rbi/metronome_sdk/models/v1/contract_create_historical_invoices_params.rbi +2 -0
  170. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1613 -4069
  171. data/rbi/metronome_sdk/models/v1/contract_list_balances_response.rbi +8 -59
  172. data/rbi/metronome_sdk/models/v1/contract_list_response.rbi +5 -2420
  173. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbi +6 -129
  174. data/rbi/metronome_sdk/models/v1/contract_retrieve_response.rbi +4 -2419
  175. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +11 -0
  176. data/rbi/metronome_sdk/models/v1/contracts/product_list_response.rbi +2 -0
  177. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_response.rbi +2 -0
  178. data/rbi/metronome_sdk/models/v1/contracts/rate_card_create_params.rbi +2 -0
  179. data/rbi/metronome_sdk/models/v1/contracts/rate_card_list_response.rbi +2 -0
  180. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbi +6 -129
  181. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbi +2 -0
  182. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +4 -129
  183. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +4 -129
  184. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +4 -129
  185. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbi +6 -129
  186. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_response.rbi +147 -198
  187. data/rbi/metronome_sdk/models/v1/credit_grant_list_response.rbi +2 -0
  188. data/rbi/metronome_sdk/models/v1/custom_field_list_keys_response.rbi +117 -165
  189. data/rbi/metronome_sdk/models/v1/custom_field_set_values_params.rbi +8 -1
  190. data/rbi/metronome_sdk/models/v1/customer.rbi +2 -0
  191. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +88 -3
  192. data/rbi/metronome_sdk/models/v1/customer_detail.rbi +2 -0
  193. data/rbi/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbi +2 -0
  194. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbi +51 -0
  195. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbi +265 -0
  196. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbi +348 -0
  197. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +60 -0
  198. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +10 -0
  199. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +10 -0
  200. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +19 -90
  201. data/rbi/metronome_sdk/models/v1/customers/credit_create_params.rbi +6 -90
  202. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +6 -3
  203. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +76 -0
  204. data/rbi/metronome_sdk/models/v1/customers/plan_list_response.rbi +2 -0
  205. data/rbi/metronome_sdk/models/v1/plan_detail.rbi +2 -0
  206. data/rbi/metronome_sdk/models/v1/plan_list_charges_response.rbi +2 -0
  207. data/rbi/metronome_sdk/models/v1/plan_list_customers_response.rbi +2 -0
  208. data/rbi/metronome_sdk/models/v1/plan_list_response.rbi +8 -1
  209. data/rbi/metronome_sdk/models/v1/usage_list_response.rbi +45 -86
  210. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +2 -0
  211. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +66 -76
  212. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +66 -76
  213. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +3563 -7329
  214. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1181 -6070
  215. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +5 -9867
  216. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +6 -9866
  217. data/rbi/metronome_sdk/models.rbi +44 -0
  218. data/rbi/metronome_sdk/resources/v1/alerts.rbi +72 -2
  219. data/rbi/metronome_sdk/resources/v1/audit_logs.rbi +39 -4
  220. data/rbi/metronome_sdk/resources/v1/billable_metrics.rbi +54 -4
  221. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +27 -5
  222. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rbi +7 -2
  223. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +10 -3
  224. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards.rbi +109 -9
  225. data/rbi/metronome_sdk/resources/v1/contracts.rbi +257 -16
  226. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +5 -1
  227. data/rbi/metronome_sdk/resources/v1/custom_fields.rbi +57 -14
  228. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +108 -5
  229. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +119 -10
  230. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +104 -9
  231. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +123 -7
  232. data/rbi/metronome_sdk/resources/v1/customers.rbi +156 -11
  233. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +29 -3
  234. data/rbi/metronome_sdk/resources/v1/invoices.rbi +23 -2
  235. data/rbi/metronome_sdk/resources/v1/pricing_units.rbi +6 -1
  236. data/rbi/metronome_sdk/resources/v1/services.rbi +6 -4
  237. data/rbi/metronome_sdk/resources/v1/usage.rbi +188 -12
  238. data/rbi/metronome_sdk/resources/v2/contracts.rbi +128 -23
  239. data/sig/metronome_sdk/internal/body_cursor_page.rbs +13 -0
  240. data/sig/metronome_sdk/internal/cursor_page_without_limit.rbs +13 -0
  241. data/sig/metronome_sdk/internal/type/converter.rbs +17 -0
  242. data/sig/metronome_sdk/internal/type/union.rbs +2 -2
  243. data/sig/metronome_sdk/models/base_threshold_commit.rbs +26 -0
  244. data/sig/metronome_sdk/models/commit.rbs +17 -170
  245. data/sig/metronome_sdk/models/commit_hierarchy_configuration.rbs +117 -0
  246. data/sig/metronome_sdk/models/commit_rate.rbs +48 -0
  247. data/sig/metronome_sdk/models/commit_specifier.rbs +47 -0
  248. data/sig/metronome_sdk/models/commit_specifier_input.rbs +47 -0
  249. data/sig/metronome_sdk/models/contract.rbs +398 -0
  250. data/sig/metronome_sdk/models/contract_v2.rbs +2881 -0
  251. data/sig/metronome_sdk/models/contract_without_amendments.rbs +54 -976
  252. data/sig/metronome_sdk/models/credit.rbs +12 -170
  253. data/sig/metronome_sdk/models/hierarchy_configuration.rbs +71 -0
  254. data/sig/metronome_sdk/models/override.rbs +12 -101
  255. data/sig/metronome_sdk/models/override_tier.rbs +17 -0
  256. data/sig/metronome_sdk/models/overwrite_rate.rbs +78 -0
  257. data/sig/metronome_sdk/models/payment_gate_config.rbs +123 -0
  258. data/sig/metronome_sdk/models/payment_gate_config_v2.rbs +123 -0
  259. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +82 -0
  260. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +82 -0
  261. data/sig/metronome_sdk/models/recurring_commit_subscription_config.rbs +51 -0
  262. data/sig/metronome_sdk/models/schedule_point_in_time.rbs +7 -0
  263. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +35 -0
  264. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +35 -0
  265. data/sig/metronome_sdk/models/subscription.rbs +215 -0
  266. data/sig/metronome_sdk/models/update_base_threshold_commit.rbs +28 -0
  267. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +4 -2
  268. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +62 -343
  269. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +218 -1234
  270. data/sig/metronome_sdk/models/v1/contract_list_balances_response.rbs +4 -25
  271. data/sig/metronome_sdk/models/v1/contract_list_response.rbs +4 -1041
  272. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbs +6 -54
  273. data/sig/metronome_sdk/models/v1/contract_retrieve_response.rbs +4 -1041
  274. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +7 -0
  275. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbs +6 -54
  276. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +6 -54
  277. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +6 -54
  278. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +6 -54
  279. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbs +6 -54
  280. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_response.rbs +72 -94
  281. data/sig/metronome_sdk/models/v1/custom_field_list_keys_response.rbs +53 -75
  282. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +31 -4
  283. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbs +32 -0
  284. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbs +113 -0
  285. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbs +133 -0
  286. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +21 -0
  287. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +7 -1
  288. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +6 -1
  289. data/sig/metronome_sdk/models/v1/customers/commit_create_params.rbs +13 -50
  290. data/sig/metronome_sdk/models/v1/customers/credit_create_params.rbs +6 -50
  291. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +4 -2
  292. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +5 -0
  293. data/sig/metronome_sdk/models/v1/usage_list_response.rbs +33 -55
  294. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +24 -43
  295. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +24 -43
  296. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +400 -1911
  297. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +256 -2249
  298. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +4 -4426
  299. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +4 -4426
  300. data/sig/metronome_sdk/models.rbs +38 -0
  301. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +1 -0
  302. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -1
  303. data/sig/metronome_sdk/resources/v1/contracts.rbs +3 -3
  304. data/sig/metronome_sdk/resources/v1/credit_grants.rbs +1 -1
  305. data/sig/metronome_sdk/resources/v1/custom_fields.rbs +1 -1
  306. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +2 -1
  307. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +2 -2
  308. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +2 -2
  309. data/sig/metronome_sdk/resources/v1/customers.rbs +11 -0
  310. data/sig/metronome_sdk/resources/v1/usage.rbs +1 -1
  311. data/sig/metronome_sdk/resources/v2/contracts.rbs +9 -4
  312. metadata +74 -11
  313. data/lib/metronome_sdk/models/v1/customers/alert_list_response.rb +0 -29
  314. data/lib/metronome_sdk/models/v1/customers/commit_list_response.rb +0 -26
  315. data/lib/metronome_sdk/models/v1/customers/credit_list_response.rb +0 -26
  316. data/rbi/metronome_sdk/models/v1/customers/alert_list_response.rbi +0 -46
  317. data/rbi/metronome_sdk/models/v1/customers/commit_list_response.rbi +0 -45
  318. data/rbi/metronome_sdk/models/v1/customers/credit_list_response.rbi +0 -45
  319. data/sig/metronome_sdk/models/v1/customers/alert_list_response.rbs +0 -29
  320. data/sig/metronome_sdk/models/v1/customers/commit_list_response.rbs +0 -26
  321. data/sig/metronome_sdk/models/v1/customers/credit_list_response.rbs +0 -26
@@ -40,6 +40,7 @@ module MetronomeSDK
40
40
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Credit] }
41
41
 
42
42
  # @!attribute custom_fields
43
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
43
44
  #
44
45
  # @return [Hash{Symbol=>String}, nil]
45
46
  optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
@@ -49,9 +50,7 @@ module MetronomeSDK
49
50
  #
50
51
  # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Discount>, nil]
51
52
  optional :discounts,
52
- -> {
53
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Discount]
54
- }
53
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Discount] }
55
54
 
56
55
  # @!attribute ending_before
57
56
  # exclusive contract end time
@@ -62,10 +61,7 @@ module MetronomeSDK
62
61
  # @!attribute hierarchy_configuration
63
62
  #
64
63
  # @return [MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration, nil]
65
- optional :hierarchy_configuration,
66
- -> {
67
- MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration
68
- }
64
+ optional :hierarchy_configuration, -> { MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration }
69
65
 
70
66
  # @!attribute multiplier_override_prioritization
71
67
  # Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list
@@ -97,15 +93,13 @@ module MetronomeSDK
97
93
  #
98
94
  # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Override>, nil]
99
95
  optional :overrides,
100
- -> {
101
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Override]
102
- }
96
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Override] }
103
97
 
104
98
  # @!attribute prepaid_balance_threshold_configuration
105
99
  #
106
- # @return [MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration, nil]
100
+ # @return [MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration, nil]
107
101
  optional :prepaid_balance_threshold_configuration,
108
- -> { MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration }
102
+ -> { MetronomeSDK::PrepaidBalanceThresholdConfiguration }
109
103
 
110
104
  # @!attribute priority
111
105
  # Priority of the contract.
@@ -118,9 +112,7 @@ module MetronomeSDK
118
112
  #
119
113
  # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::ProfessionalService>, nil]
120
114
  optional :professional_services,
121
- -> {
122
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::ProfessionalService]
123
- }
115
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::ProfessionalService] }
124
116
 
125
117
  # @!attribute rate_card_alias
126
118
  # Selects the rate card linked to the specified alias as of the contract's start
@@ -138,26 +130,20 @@ module MetronomeSDK
138
130
  #
139
131
  # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit>, nil]
140
132
  optional :recurring_commits,
141
- -> {
142
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::RecurringCommit]
143
- }
133
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::RecurringCommit] }
144
134
 
145
135
  # @!attribute recurring_credits
146
136
  #
147
137
  # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit>, nil]
148
138
  optional :recurring_credits,
149
- -> {
150
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::RecurringCredit]
151
- }
139
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::RecurringCredit] }
152
140
 
153
141
  # @!attribute reseller_royalties
154
142
  # This field's availability is dependent on your client's configuration.
155
143
  #
156
144
  # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::ResellerRoyalty>, nil]
157
145
  optional :reseller_royalties,
158
- -> {
159
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::ResellerRoyalty]
160
- }
146
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::ResellerRoyalty] }
161
147
 
162
148
  # @!attribute salesforce_opportunity_id
163
149
  # This field's availability is dependent on your client's configuration.
@@ -169,9 +155,7 @@ module MetronomeSDK
169
155
  #
170
156
  # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge>, nil]
171
157
  optional :scheduled_charges,
172
- -> {
173
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::ScheduledCharge]
174
- }
158
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::ScheduledCharge] }
175
159
 
176
160
  # @!attribute scheduled_charges_on_usage_invoices
177
161
  # Determines which scheduled and commit charges to consolidate onto the Contract's
@@ -186,9 +170,8 @@ module MetronomeSDK
186
170
 
187
171
  # @!attribute spend_threshold_configuration
188
172
  #
189
- # @return [MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration, nil]
190
- optional :spend_threshold_configuration,
191
- -> { MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration }
173
+ # @return [MetronomeSDK::Models::SpendThresholdConfiguration, nil]
174
+ optional :spend_threshold_configuration, -> { MetronomeSDK::SpendThresholdConfiguration }
192
175
 
193
176
  # @!attribute subscriptions
194
177
  # Optional list of
@@ -197,9 +180,7 @@ module MetronomeSDK
197
180
  #
198
181
  # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Subscription>, nil]
199
182
  optional :subscriptions,
200
- -> {
201
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Subscription]
202
- }
183
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Subscription] }
203
184
 
204
185
  # @!attribute total_contract_value
205
186
  # This field's availability is dependent on your client's configuration.
@@ -228,10 +209,7 @@ module MetronomeSDK
228
209
  # @!attribute usage_statement_schedule
229
210
  #
230
211
  # @return [MetronomeSDK::Models::V1::ContractCreateParams::UsageStatementSchedule, nil]
231
- optional :usage_statement_schedule,
232
- -> {
233
- MetronomeSDK::V1::ContractCreateParams::UsageStatementSchedule
234
- }
212
+ optional :usage_statement_schedule, -> { MetronomeSDK::V1::ContractCreateParams::UsageStatementSchedule }
235
213
 
236
214
  # @!method initialize(customer_id:, starting_at:, billing_provider_configuration: nil, commits: nil, credits: nil, custom_fields: nil, discounts: nil, ending_before: nil, hierarchy_configuration: nil, multiplier_override_prioritization: nil, name: nil, net_payment_terms_days: nil, netsuite_sales_order_id: nil, overrides: nil, prepaid_balance_threshold_configuration: nil, priority: nil, professional_services: nil, rate_card_alias: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, reseller_royalties: nil, salesforce_opportunity_id: nil, scheduled_charges: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, subscriptions: nil, total_contract_value: nil, transition: nil, uniqueness_key: nil, usage_filter: nil, usage_statement_schedule: nil, request_options: {})
237
215
  # Some parameter documentations has been truncated, see
@@ -247,7 +225,7 @@ module MetronomeSDK
247
225
  #
248
226
  # @param credits [Array<MetronomeSDK::Models::V1::ContractCreateParams::Credit>]
249
227
  #
250
- # @param custom_fields [Hash{Symbol=>String}]
228
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
251
229
  #
252
230
  # @param discounts [Array<MetronomeSDK::Models::V1::ContractCreateParams::Discount>] This field's availability is dependent on your client's configuration.
253
231
  #
@@ -265,7 +243,7 @@ module MetronomeSDK
265
243
  #
266
244
  # @param overrides [Array<MetronomeSDK::Models::V1::ContractCreateParams::Override>]
267
245
  #
268
- # @param prepaid_balance_threshold_configuration [MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration]
246
+ # @param prepaid_balance_threshold_configuration [MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration]
269
247
  #
270
248
  # @param priority [Float] Priority of the contract.
271
249
  #
@@ -287,7 +265,7 @@ module MetronomeSDK
287
265
  #
288
266
  # @param scheduled_charges_on_usage_invoices [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::ScheduledChargesOnUsageInvoices] Determines which scheduled and commit charges to consolidate onto the Contract's
289
267
  #
290
- # @param spend_threshold_configuration [MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration]
268
+ # @param spend_threshold_configuration [MetronomeSDK::Models::SpendThresholdConfiguration]
291
269
  #
292
270
  # @param subscriptions [Array<MetronomeSDK::Models::V1::ContractCreateParams::Subscription>] Optional list of [subscriptions](https://docs.metronome.com/manage-product-acces
293
271
  #
@@ -309,9 +287,7 @@ module MetronomeSDK
309
287
  #
310
288
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::BillingProviderConfiguration::BillingProvider, nil]
311
289
  optional :billing_provider,
312
- enum: -> {
313
- MetronomeSDK::V1::ContractCreateParams::BillingProviderConfiguration::BillingProvider
314
- }
290
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::BillingProviderConfiguration::BillingProvider }
315
291
 
316
292
  # @!attribute billing_provider_configuration_id
317
293
  # The Metronome ID of the billing provider configuration. Use when a customer has
@@ -326,9 +302,7 @@ module MetronomeSDK
326
302
  #
327
303
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::BillingProviderConfiguration::DeliveryMethod, nil]
328
304
  optional :delivery_method,
329
- enum: -> {
330
- MetronomeSDK::V1::ContractCreateParams::BillingProviderConfiguration::DeliveryMethod
331
- }
305
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::BillingProviderConfiguration::DeliveryMethod }
332
306
 
333
307
  # @!method initialize(billing_provider: nil, billing_provider_configuration_id: nil, delivery_method: nil)
334
308
  # Some parameter documentations has been truncated, see
@@ -418,6 +392,7 @@ module MetronomeSDK
418
392
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
419
393
 
420
394
  # @!attribute custom_fields
395
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
421
396
  #
422
397
  # @return [Hash{Symbol=>String}, nil]
423
398
  optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
@@ -431,9 +406,8 @@ module MetronomeSDK
431
406
  # @!attribute hierarchy_configuration
432
407
  # Optional configuration for commit hierarchy access control
433
408
  #
434
- # @return [MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration, nil]
435
- optional :hierarchy_configuration,
436
- -> { MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration }
409
+ # @return [MetronomeSDK::Models::CommitHierarchyConfiguration, nil]
410
+ optional :hierarchy_configuration, -> { MetronomeSDK::CommitHierarchyConfiguration }
437
411
 
438
412
  # @!attribute invoice_schedule
439
413
  # Required for "POSTPAID" commits: the true up invoice will be generated at this
@@ -460,10 +434,7 @@ module MetronomeSDK
460
434
  # optionally payment gate this commit
461
435
  #
462
436
  # @return [MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig, nil]
463
- optional :payment_gate_config,
464
- -> {
465
- MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig
466
- }
437
+ optional :payment_gate_config, -> { MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig }
467
438
 
468
439
  # @!attribute priority
469
440
  # If multiple commits are applicable, the one with the lower priority will apply
@@ -489,11 +460,8 @@ module MetronomeSDK
489
460
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
490
461
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
491
462
  #
492
- # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Commit::Specifier>, nil]
493
- optional :specifiers,
494
- -> {
495
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Commit::Specifier]
496
- }
463
+ # @return [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil]
464
+ optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifierInput] }
497
465
 
498
466
  # @!attribute temporary_id
499
467
  # A temporary ID for the commit that can be used to reference the commit for
@@ -518,11 +486,11 @@ module MetronomeSDK
518
486
  #
519
487
  # @param applicable_product_tags [Array<String>] Which tags the commit applies to. If applicable*product_ids, applicable_product*
520
488
  #
521
- # @param custom_fields [Hash{Symbol=>String}]
489
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
522
490
  #
523
491
  # @param description [String] Used only in UI/API. It is not exposed to end customers.
524
492
  #
525
- # @param hierarchy_configuration [MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration] Optional configuration for commit hierarchy access control
493
+ # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for commit hierarchy access control
526
494
  #
527
495
  # @param invoice_schedule [MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule] Required for "POSTPAID" commits: the true up invoice will be generated at this t
528
496
  #
@@ -538,7 +506,7 @@ module MetronomeSDK
538
506
  #
539
507
  # @param rollover_fraction [Float] Fraction of unused segments that will be rolled over. Must be between 0 and 1.
540
508
  #
541
- # @param specifiers [Array<MetronomeSDK::Models::V1::ContractCreateParams::Commit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
509
+ # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifierInput>] List of filters that determine what kind of customer usage draws down a commit o
542
510
  #
543
511
  # @param temporary_id [String] A temporary ID for the commit that can be used to reference the commit for commi
544
512
 
@@ -559,9 +527,7 @@ module MetronomeSDK
559
527
  #
560
528
  # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Commit::AccessSchedule::ScheduleItem>]
561
529
  required :schedule_items,
562
- -> {
563
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Commit::AccessSchedule::ScheduleItem]
564
- }
530
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Commit::AccessSchedule::ScheduleItem] }
565
531
 
566
532
  # @!attribute credit_type_id
567
533
  # Defaults to USD (cents) if not passed
@@ -605,117 +571,6 @@ module MetronomeSDK
605
571
  end
606
572
  end
607
573
 
608
- # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit#hierarchy_configuration
609
- class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
610
- # @!attribute child_access
611
- #
612
- # @return [MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
613
- required :child_access,
614
- union: -> {
615
- MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess
616
- }
617
-
618
- # @!method initialize(child_access:)
619
- # Optional configuration for commit hierarchy access control
620
- #
621
- # @param child_access [MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
622
-
623
- # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration#child_access
624
- module ChildAccess
625
- extend MetronomeSDK::Internal::Type::Union
626
-
627
- variant -> {
628
- MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
629
- }
630
-
631
- variant -> {
632
- MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
633
- }
634
-
635
- variant -> {
636
- MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
637
- }
638
-
639
- class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
640
- # @!attribute type
641
- #
642
- # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
643
- required :type,
644
- enum: -> {
645
- MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
646
- }
647
-
648
- # @!method initialize(type:)
649
- # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
650
-
651
- # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
652
- module Type
653
- extend MetronomeSDK::Internal::Type::Enum
654
-
655
- ALL = :ALL
656
-
657
- # @!method self.values
658
- # @return [Array<Symbol>]
659
- end
660
- end
661
-
662
- class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
663
- # @!attribute type
664
- #
665
- # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
666
- required :type,
667
- enum: -> {
668
- MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
669
- }
670
-
671
- # @!method initialize(type:)
672
- # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
673
-
674
- # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
675
- module Type
676
- extend MetronomeSDK::Internal::Type::Enum
677
-
678
- NONE = :NONE
679
-
680
- # @!method self.values
681
- # @return [Array<Symbol>]
682
- end
683
- end
684
-
685
- class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
686
- # @!attribute contract_ids
687
- #
688
- # @return [Array<String>]
689
- required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
690
-
691
- # @!attribute type
692
- #
693
- # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
694
- required :type,
695
- enum: -> {
696
- MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
697
- }
698
-
699
- # @!method initialize(contract_ids:, type:)
700
- # @param contract_ids [Array<String>]
701
- # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
702
-
703
- # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
704
- module Type
705
- extend MetronomeSDK::Internal::Type::Enum
706
-
707
- CONTRACT_IDS = :CONTRACT_IDS
708
-
709
- # @!method self.values
710
- # @return [Array<Symbol>]
711
- end
712
- end
713
-
714
- # @!method self.variants
715
- # @return [Array(MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
716
- end
717
- end
718
-
719
574
  # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit#invoice_schedule
720
575
  class InvoiceSchedule < MetronomeSDK::Internal::Type::BaseModel
721
576
  # @!attribute credit_type_id
@@ -724,6 +579,13 @@ module MetronomeSDK
724
579
  # @return [String, nil]
725
580
  optional :credit_type_id, String
726
581
 
582
+ # @!attribute do_not_invoice
583
+ # This field is only applicable to commit invoice schedules. If true, this
584
+ # schedule will not generate an invoice.
585
+ #
586
+ # @return [Boolean, nil]
587
+ optional :do_not_invoice, MetronomeSDK::Internal::Type::Boolean
588
+
727
589
  # @!attribute recurring_schedule
728
590
  # Enter the unit price and quantity for the charge or instead only send the
729
591
  # amount. If amount is sent, the unit price is assumed to be the amount and
@@ -738,11 +600,9 @@ module MetronomeSDK
738
600
  #
739
601
  # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule::ScheduleItem>, nil]
740
602
  optional :schedule_items,
741
- -> {
742
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::ScheduleItem]
743
- }
603
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::ScheduleItem] }
744
604
 
745
- # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
605
+ # @!method initialize(credit_type_id: nil, do_not_invoice: nil, recurring_schedule: nil, schedule_items: nil)
746
606
  # Some parameter documentations has been truncated, see
747
607
  # {MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule} for
748
608
  # more details.
@@ -754,6 +614,8 @@ module MetronomeSDK
754
614
  #
755
615
  # @param credit_type_id [String] Defaults to USD (cents) if not passed.
756
616
  #
617
+ # @param do_not_invoice [Boolean] This field is only applicable to commit invoice schedules. If true, this schedul
618
+ #
757
619
  # @param recurring_schedule [MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
758
620
  #
759
621
  # @param schedule_items [Array<MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
@@ -764,9 +626,7 @@ module MetronomeSDK
764
626
  #
765
627
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule::AmountDistribution]
766
628
  required :amount_distribution,
767
- enum: -> {
768
- MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule::AmountDistribution
769
- }
629
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule::AmountDistribution }
770
630
 
771
631
  # @!attribute ending_before
772
632
  # RFC 3339 timestamp (exclusive).
@@ -778,9 +638,7 @@ module MetronomeSDK
778
638
  #
779
639
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule::Frequency]
780
640
  required :frequency,
781
- enum: -> {
782
- MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule::Frequency
783
- }
641
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule::Frequency }
784
642
 
785
643
  # @!attribute starting_at
786
644
  # RFC 3339 timestamp (inclusive).
@@ -917,18 +775,14 @@ module MetronomeSDK
917
775
  #
918
776
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig::PaymentGateType]
919
777
  required :payment_gate_type,
920
- enum: -> {
921
- MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::PaymentGateType
922
- }
778
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::PaymentGateType }
923
779
 
924
780
  # @!attribute precalculated_tax_config
925
781
  # Only applicable if using PRECALCULATED as your tax type.
926
782
  #
927
783
  # @return [MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig::PrecalculatedTaxConfig, nil]
928
784
  optional :precalculated_tax_config,
929
- -> {
930
- MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::PrecalculatedTaxConfig
931
- }
785
+ -> { MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::PrecalculatedTaxConfig }
932
786
 
933
787
  # @!attribute stripe_config
934
788
  # Only applicable if using STRIPE as your payment gate type.
@@ -1013,9 +867,7 @@ module MetronomeSDK
1013
867
  #
1014
868
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig::PaymentType]
1015
869
  required :payment_type,
1016
- enum: -> {
1017
- MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig::PaymentType
1018
- }
870
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig::PaymentType }
1019
871
 
1020
872
  # @!attribute invoice_metadata
1021
873
  # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
@@ -1024,7 +876,20 @@ module MetronomeSDK
1024
876
  # @return [Hash{Symbol=>String}, nil]
1025
877
  optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
1026
878
 
1027
- # @!method initialize(payment_type:, invoice_metadata: nil)
879
+ # @!attribute on_session_payment
880
+ # If true, the payment will be made assuming the customer is present (i.e. on
881
+ # session).
882
+ #
883
+ # If false, the payment will be made assuming the customer is not present (i.e.
884
+ # off session). For cardholders from a country with an e-mandate requirement (e.g.
885
+ # India), the payment may be declined.
886
+ #
887
+ # If left blank, will default to false.
888
+ #
889
+ # @return [Boolean, nil]
890
+ optional :on_session_payment, MetronomeSDK::Internal::Type::Boolean
891
+
892
+ # @!method initialize(payment_type:, invoice_metadata: nil, on_session_payment: nil)
1028
893
  # Some parameter documentations has been truncated, see
1029
894
  # {MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig}
1030
895
  # for more details.
@@ -1034,6 +899,8 @@ module MetronomeSDK
1034
899
  # @param payment_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
1035
900
  #
1036
901
  # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
902
+ #
903
+ # @param on_session_payment [Boolean] If true, the payment will be made assuming the customer is present (i.e. on sess
1037
904
 
1038
905
  # If left blank, will default to INVOICE
1039
906
  #
@@ -1077,44 +944,6 @@ module MetronomeSDK
1077
944
  # @!method self.values
1078
945
  # @return [Array<Symbol>]
1079
946
  end
1080
-
1081
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
1082
- # @!attribute presentation_group_values
1083
- #
1084
- # @return [Hash{Symbol=>String}, nil]
1085
- optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1086
-
1087
- # @!attribute pricing_group_values
1088
- #
1089
- # @return [Hash{Symbol=>String}, nil]
1090
- optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1091
-
1092
- # @!attribute product_id
1093
- # If provided, the specifier will only apply to the product with the specified ID.
1094
- #
1095
- # @return [String, nil]
1096
- optional :product_id, String
1097
-
1098
- # @!attribute product_tags
1099
- # If provided, the specifier will only apply to products with all the specified
1100
- # tags.
1101
- #
1102
- # @return [Array<String>, nil]
1103
- optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1104
-
1105
- # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
1106
- # Some parameter documentations has been truncated, see
1107
- # {MetronomeSDK::Models::V1::ContractCreateParams::Commit::Specifier} for more
1108
- # details.
1109
- #
1110
- # @param presentation_group_values [Hash{Symbol=>String}]
1111
- #
1112
- # @param pricing_group_values [Hash{Symbol=>String}]
1113
- #
1114
- # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
1115
- #
1116
- # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
1117
- end
1118
947
  end
1119
948
 
1120
949
  class Credit < MetronomeSDK::Internal::Type::BaseModel
@@ -1144,6 +973,7 @@ module MetronomeSDK
1144
973
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1145
974
 
1146
975
  # @!attribute custom_fields
976
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
1147
977
  #
1148
978
  # @return [Hash{Symbol=>String}, nil]
1149
979
  optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
@@ -1157,9 +987,8 @@ module MetronomeSDK
1157
987
  # @!attribute hierarchy_configuration
1158
988
  # Optional configuration for credit hierarchy access control
1159
989
  #
1160
- # @return [MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration, nil]
1161
- optional :hierarchy_configuration,
1162
- -> { MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration }
990
+ # @return [MetronomeSDK::Models::CommitHierarchyConfiguration, nil]
991
+ optional :hierarchy_configuration, -> { MetronomeSDK::CommitHierarchyConfiguration }
1163
992
 
1164
993
  # @!attribute name
1165
994
  # displayed on invoices
@@ -1191,11 +1020,8 @@ module MetronomeSDK
1191
1020
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
1192
1021
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
1193
1022
  #
1194
- # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Credit::Specifier>, nil]
1195
- optional :specifiers,
1196
- -> {
1197
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Credit::Specifier]
1198
- }
1023
+ # @return [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil]
1024
+ optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifierInput] }
1199
1025
 
1200
1026
  # @!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)
1201
1027
  # Some parameter documentations has been truncated, see
@@ -1209,11 +1035,11 @@ module MetronomeSDK
1209
1035
  #
1210
1036
  # @param applicable_product_tags [Array<String>] Which tags the credit applies to. If both applicable*product_ids and applicable*
1211
1037
  #
1212
- # @param custom_fields [Hash{Symbol=>String}]
1038
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
1213
1039
  #
1214
1040
  # @param description [String] Used only in UI/API. It is not exposed to end customers.
1215
1041
  #
1216
- # @param hierarchy_configuration [MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration] Optional configuration for credit hierarchy access control
1042
+ # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for credit hierarchy access control
1217
1043
  #
1218
1044
  # @param name [String] displayed on invoices
1219
1045
  #
@@ -1223,7 +1049,7 @@ module MetronomeSDK
1223
1049
  #
1224
1050
  # @param rate_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Credit::RateType]
1225
1051
  #
1226
- # @param specifiers [Array<MetronomeSDK::Models::V1::ContractCreateParams::Credit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
1052
+ # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifierInput>] List of filters that determine what kind of customer usage draws down a commit o
1227
1053
 
1228
1054
  # @see MetronomeSDK::Models::V1::ContractCreateParams::Credit#access_schedule
1229
1055
  class AccessSchedule < MetronomeSDK::Internal::Type::BaseModel
@@ -1231,9 +1057,7 @@ module MetronomeSDK
1231
1057
  #
1232
1058
  # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Credit::AccessSchedule::ScheduleItem>]
1233
1059
  required :schedule_items,
1234
- -> {
1235
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Credit::AccessSchedule::ScheduleItem]
1236
- }
1060
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Credit::AccessSchedule::ScheduleItem] }
1237
1061
 
1238
1062
  # @!attribute credit_type_id
1239
1063
  # Defaults to USD (cents) if not passed
@@ -1275,117 +1099,6 @@ module MetronomeSDK
1275
1099
  end
1276
1100
  end
1277
1101
 
1278
- # @see MetronomeSDK::Models::V1::ContractCreateParams::Credit#hierarchy_configuration
1279
- class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
1280
- # @!attribute child_access
1281
- #
1282
- # @return [MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
1283
- required :child_access,
1284
- union: -> {
1285
- MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess
1286
- }
1287
-
1288
- # @!method initialize(child_access:)
1289
- # Optional configuration for credit hierarchy access control
1290
- #
1291
- # @param child_access [MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
1292
-
1293
- # @see MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration#child_access
1294
- module ChildAccess
1295
- extend MetronomeSDK::Internal::Type::Union
1296
-
1297
- variant -> {
1298
- MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
1299
- }
1300
-
1301
- variant -> {
1302
- MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
1303
- }
1304
-
1305
- variant -> {
1306
- MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
1307
- }
1308
-
1309
- class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
1310
- # @!attribute type
1311
- #
1312
- # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
1313
- required :type,
1314
- enum: -> {
1315
- MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
1316
- }
1317
-
1318
- # @!method initialize(type:)
1319
- # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
1320
-
1321
- # @see MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
1322
- module Type
1323
- extend MetronomeSDK::Internal::Type::Enum
1324
-
1325
- ALL = :ALL
1326
-
1327
- # @!method self.values
1328
- # @return [Array<Symbol>]
1329
- end
1330
- end
1331
-
1332
- class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
1333
- # @!attribute type
1334
- #
1335
- # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
1336
- required :type,
1337
- enum: -> {
1338
- MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
1339
- }
1340
-
1341
- # @!method initialize(type:)
1342
- # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
1343
-
1344
- # @see MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
1345
- module Type
1346
- extend MetronomeSDK::Internal::Type::Enum
1347
-
1348
- NONE = :NONE
1349
-
1350
- # @!method self.values
1351
- # @return [Array<Symbol>]
1352
- end
1353
- end
1354
-
1355
- class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
1356
- # @!attribute contract_ids
1357
- #
1358
- # @return [Array<String>]
1359
- required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1360
-
1361
- # @!attribute type
1362
- #
1363
- # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
1364
- required :type,
1365
- enum: -> {
1366
- MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
1367
- }
1368
-
1369
- # @!method initialize(contract_ids:, type:)
1370
- # @param contract_ids [Array<String>]
1371
- # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
1372
-
1373
- # @see MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
1374
- module Type
1375
- extend MetronomeSDK::Internal::Type::Enum
1376
-
1377
- CONTRACT_IDS = :CONTRACT_IDS
1378
-
1379
- # @!method self.values
1380
- # @return [Array<Symbol>]
1381
- end
1382
- end
1383
-
1384
- # @!method self.variants
1385
- # @return [Array(MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
1386
- end
1387
- end
1388
-
1389
1102
  # @see MetronomeSDK::Models::V1::ContractCreateParams::Credit#rate_type
1390
1103
  module RateType
1391
1104
  extend MetronomeSDK::Internal::Type::Enum
@@ -1396,44 +1109,6 @@ module MetronomeSDK
1396
1109
  # @!method self.values
1397
1110
  # @return [Array<Symbol>]
1398
1111
  end
1399
-
1400
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
1401
- # @!attribute presentation_group_values
1402
- #
1403
- # @return [Hash{Symbol=>String}, nil]
1404
- optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1405
-
1406
- # @!attribute pricing_group_values
1407
- #
1408
- # @return [Hash{Symbol=>String}, nil]
1409
- optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1410
-
1411
- # @!attribute product_id
1412
- # If provided, the specifier will only apply to the product with the specified ID.
1413
- #
1414
- # @return [String, nil]
1415
- optional :product_id, String
1416
-
1417
- # @!attribute product_tags
1418
- # If provided, the specifier will only apply to products with all the specified
1419
- # tags.
1420
- #
1421
- # @return [Array<String>, nil]
1422
- optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1423
-
1424
- # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
1425
- # Some parameter documentations has been truncated, see
1426
- # {MetronomeSDK::Models::V1::ContractCreateParams::Credit::Specifier} for more
1427
- # details.
1428
- #
1429
- # @param presentation_group_values [Hash{Symbol=>String}]
1430
- #
1431
- # @param pricing_group_values [Hash{Symbol=>String}]
1432
- #
1433
- # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
1434
- #
1435
- # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
1436
- end
1437
1112
  end
1438
1113
 
1439
1114
  class Discount < MetronomeSDK::Internal::Type::BaseModel
@@ -1449,6 +1124,7 @@ module MetronomeSDK
1449
1124
  required :schedule, -> { MetronomeSDK::V1::ContractCreateParams::Discount::Schedule }
1450
1125
 
1451
1126
  # @!attribute custom_fields
1127
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
1452
1128
  #
1453
1129
  # @return [Hash{Symbol=>String}, nil]
1454
1130
  optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
@@ -1470,7 +1146,7 @@ module MetronomeSDK
1470
1146
  #
1471
1147
  # @param schedule [MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule] Must provide either schedule_items or recurring_schedule.
1472
1148
  #
1473
- # @param custom_fields [Hash{Symbol=>String}]
1149
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
1474
1150
  #
1475
1151
  # @param name [String] displayed on invoices
1476
1152
  #
@@ -1484,6 +1160,13 @@ module MetronomeSDK
1484
1160
  # @return [String, nil]
1485
1161
  optional :credit_type_id, String
1486
1162
 
1163
+ # @!attribute do_not_invoice
1164
+ # This field is only applicable to commit invoice schedules. If true, this
1165
+ # schedule will not generate an invoice.
1166
+ #
1167
+ # @return [Boolean, nil]
1168
+ optional :do_not_invoice, MetronomeSDK::Internal::Type::Boolean
1169
+
1487
1170
  # @!attribute recurring_schedule
1488
1171
  # Enter the unit price and quantity for the charge or instead only send the
1489
1172
  # amount. If amount is sent, the unit price is assumed to be the amount and
@@ -1498,11 +1181,9 @@ module MetronomeSDK
1498
1181
  #
1499
1182
  # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule::ScheduleItem>, nil]
1500
1183
  optional :schedule_items,
1501
- -> {
1502
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::ScheduleItem]
1503
- }
1184
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::ScheduleItem] }
1504
1185
 
1505
- # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
1186
+ # @!method initialize(credit_type_id: nil, do_not_invoice: nil, recurring_schedule: nil, schedule_items: nil)
1506
1187
  # Some parameter documentations has been truncated, see
1507
1188
  # {MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule} for more
1508
1189
  # details.
@@ -1511,6 +1192,8 @@ module MetronomeSDK
1511
1192
  #
1512
1193
  # @param credit_type_id [String] Defaults to USD (cents) if not passed.
1513
1194
  #
1195
+ # @param do_not_invoice [Boolean] This field is only applicable to commit invoice schedules. If true, this schedul
1196
+ #
1514
1197
  # @param recurring_schedule [MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
1515
1198
  #
1516
1199
  # @param schedule_items [Array<MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
@@ -1521,9 +1204,7 @@ module MetronomeSDK
1521
1204
  #
1522
1205
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule::AmountDistribution]
1523
1206
  required :amount_distribution,
1524
- enum: -> {
1525
- MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule::AmountDistribution
1526
- }
1207
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule::AmountDistribution }
1527
1208
 
1528
1209
  # @!attribute ending_before
1529
1210
  # RFC 3339 timestamp (exclusive).
@@ -1535,9 +1216,7 @@ module MetronomeSDK
1535
1216
  #
1536
1217
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule::Frequency]
1537
1218
  required :frequency,
1538
- enum: -> {
1539
- MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule::Frequency
1540
- }
1219
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule::Frequency }
1541
1220
 
1542
1221
  # @!attribute starting_at
1543
1222
  # RFC 3339 timestamp (inclusive).
@@ -1752,9 +1431,7 @@ module MetronomeSDK
1752
1431
  #
1753
1432
  # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Override::OverrideSpecifier>, nil]
1754
1433
  optional :override_specifiers,
1755
- -> {
1756
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Override::OverrideSpecifier]
1757
- }
1434
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Override::OverrideSpecifier] }
1758
1435
 
1759
1436
  # @!attribute overwrite_rate
1760
1437
  # Required for OVERWRITE type.
@@ -1791,9 +1468,7 @@ module MetronomeSDK
1791
1468
  #
1792
1469
  # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Override::Tier>, nil]
1793
1470
  optional :tiers,
1794
- -> {
1795
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Override::Tier]
1796
- }
1471
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Override::Tier] }
1797
1472
 
1798
1473
  # @!attribute type
1799
1474
  # Overwrites are prioritized over multipliers and tiered overrides.
@@ -1836,14 +1511,12 @@ module MetronomeSDK
1836
1511
  #
1837
1512
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Override::OverrideSpecifier::BillingFrequency, nil]
1838
1513
  optional :billing_frequency,
1839
- enum: -> {
1840
- MetronomeSDK::V1::ContractCreateParams::Override::OverrideSpecifier::BillingFrequency
1841
- }
1514
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::Override::OverrideSpecifier::BillingFrequency }
1842
1515
 
1843
1516
  # @!attribute commit_ids
1844
1517
  # Can only be used for commit specific overrides. Must be used in conjunction with
1845
- # one of product_id, product_tags, pricing_group_values, or
1846
- # presentation_group_values. If provided, the override will only apply to the
1518
+ # one of `product_id`, `product_tags`, `pricing_group_values`, or
1519
+ # `presentation_group_values`. If provided, the override will only apply to the
1847
1520
  # specified commits. If not provided, the override will apply to all commits.
1848
1521
  #
1849
1522
  # @return [Array<String>, nil]
@@ -1878,18 +1551,18 @@ module MetronomeSDK
1878
1551
 
1879
1552
  # @!attribute recurring_commit_ids
1880
1553
  # Can only be used for commit specific overrides. Must be used in conjunction with
1881
- # one of product_id, product_tags, pricing_group_values, or
1882
- # presentation_group_values. If provided, the override will only apply to commits
1883
- # created by the specified recurring commit ids.
1554
+ # one of `product_id`, `product_tags`, `pricing_group_values`, or
1555
+ # `presentation_group_values`. If provided, the override will only apply to
1556
+ # commits created by the specified recurring commit ids.
1884
1557
  #
1885
1558
  # @return [Array<String>, nil]
1886
1559
  optional :recurring_commit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1887
1560
 
1888
1561
  # @!attribute recurring_credit_ids
1889
1562
  # Can only be used for commit specific overrides. Must be used in conjunction with
1890
- # one of product_id, product_tags, pricing_group_values, or
1891
- # presentation_group_values. If provided, the override will only apply to credits
1892
- # created by the specified recurring credit ids.
1563
+ # one of `product_id`, `product_tags`, `pricing_group_values`, or
1564
+ # `presentation_group_values`. If provided, the override will only apply to
1565
+ # credits created by the specified recurring credit ids.
1893
1566
  #
1894
1567
  # @return [Array<String>, nil]
1895
1568
  optional :recurring_credit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
@@ -2057,473 +1730,136 @@ module MetronomeSDK
2057
1730
  end
2058
1731
  end
2059
1732
 
2060
- class PrepaidBalanceThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
2061
- # @!attribute commit
1733
+ class ProfessionalService < MetronomeSDK::Internal::Type::BaseModel
1734
+ # @!attribute max_amount
1735
+ # Maximum amount for the term.
2062
1736
  #
2063
- # @return [MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::Commit]
2064
- required :commit,
2065
- -> { MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::Commit }
1737
+ # @return [Float]
1738
+ required :max_amount, Float
2066
1739
 
2067
- # @!attribute is_enabled
2068
- # When set to false, the contract will not be evaluated against the
2069
- # threshold_amount. Toggling to true will result an immediate evaluation,
2070
- # regardless of prior state.
1740
+ # @!attribute product_id
2071
1741
  #
2072
- # @return [Boolean]
2073
- required :is_enabled, MetronomeSDK::Internal::Type::Boolean
1742
+ # @return [String]
1743
+ required :product_id, String
2074
1744
 
2075
- # @!attribute payment_gate_config
1745
+ # @!attribute quantity
1746
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
1747
+ # amount.
2076
1748
  #
2077
- # @return [MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig]
2078
- required :payment_gate_config,
2079
- -> {
2080
- MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig
2081
- }
1749
+ # @return [Float]
1750
+ required :quantity, Float
2082
1751
 
2083
- # @!attribute recharge_to_amount
2084
- # Specify the amount the balance should be recharged to.
1752
+ # @!attribute unit_price
1753
+ # Unit price for the charge. Will be multiplied by quantity to determine the
1754
+ # amount and must be specified.
2085
1755
  #
2086
1756
  # @return [Float]
2087
- required :recharge_to_amount, Float
1757
+ required :unit_price, Float
2088
1758
 
2089
- # @!attribute threshold_amount
2090
- # Specify the threshold amount for the contract. Each time the contract's prepaid
2091
- # balance lowers to this amount, a threshold charge will be initiated.
1759
+ # @!attribute custom_fields
1760
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
2092
1761
  #
2093
- # @return [Float]
2094
- required :threshold_amount, Float
1762
+ # @return [Hash{Symbol=>String}, nil]
1763
+ optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
1764
+
1765
+ # @!attribute description
1766
+ #
1767
+ # @return [String, nil]
1768
+ optional :description, String
2095
1769
 
2096
- # @!attribute custom_credit_type_id
2097
- # If provided, the threshold, recharge-to amount, and the resulting threshold
2098
- # commit amount will be in terms of this credit type instead of the fiat currency.
1770
+ # @!attribute netsuite_sales_order_id
1771
+ # This field's availability is dependent on your client's configuration.
2099
1772
  #
2100
1773
  # @return [String, nil]
2101
- optional :custom_credit_type_id, String
1774
+ optional :netsuite_sales_order_id, String
2102
1775
 
2103
- # @!method initialize(commit:, is_enabled:, payment_gate_config:, recharge_to_amount:, threshold_amount:, custom_credit_type_id: nil)
1776
+ # @!method initialize(max_amount:, product_id:, quantity:, unit_price:, custom_fields: nil, description: nil, netsuite_sales_order_id: nil)
2104
1777
  # Some parameter documentations has been truncated, see
2105
- # {MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration}
2106
- # for more details.
1778
+ # {MetronomeSDK::Models::V1::ContractCreateParams::ProfessionalService} for more
1779
+ # details.
1780
+ #
1781
+ # @param max_amount [Float] Maximum amount for the term.
2107
1782
  #
2108
- # @param commit [MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::Commit]
1783
+ # @param product_id [String]
2109
1784
  #
2110
- # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
1785
+ # @param quantity [Float] Quantity for the charge. Will be multiplied by unit_price to determine the amoun
2111
1786
  #
2112
- # @param payment_gate_config [MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig]
1787
+ # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
2113
1788
  #
2114
- # @param recharge_to_amount [Float] Specify the amount the balance should be recharged to.
1789
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
2115
1790
  #
2116
- # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's prepaid
1791
+ # @param description [String]
2117
1792
  #
2118
- # @param custom_credit_type_id [String] If provided, the threshold, recharge-to amount, and the resulting threshold comm
2119
-
2120
- # @see MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration#commit
2121
- class Commit < MetronomeSDK::Internal::Type::BaseModel
2122
- # @!attribute product_id
2123
- # The commit product that will be used to generate the line item for commit
2124
- # payment.
2125
- #
2126
- # @return [String]
2127
- required :product_id, String
1793
+ # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
1794
+ end
2128
1795
 
2129
- # @!attribute applicable_product_ids
2130
- # Which products the threshold commit applies to. If applicable_product_ids,
2131
- # applicable_product_tags or specifiers are not provided, the commit applies to
2132
- # all products.
2133
- #
2134
- # @return [Array<String>, nil]
2135
- optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1796
+ class RecurringCommit < MetronomeSDK::Internal::Type::BaseModel
1797
+ # @!attribute access_amount
1798
+ # The amount of commit to grant.
1799
+ #
1800
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::AccessAmount]
1801
+ required :access_amount, -> { MetronomeSDK::V1::ContractCreateParams::RecurringCommit::AccessAmount }
2136
1802
 
2137
- # @!attribute applicable_product_tags
2138
- # Which tags the threshold commit applies to. If applicable_product_ids,
2139
- # applicable_product_tags or specifiers are not provided, the commit applies to
2140
- # all products.
2141
- #
2142
- # @return [Array<String>, nil]
2143
- optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1803
+ # @!attribute commit_duration
1804
+ # Defines the length of the access schedule for each created commit/credit. The
1805
+ # value represents the number of units. Unit defaults to "PERIODS", where the
1806
+ # length of a period is determined by the recurrence_frequency.
1807
+ #
1808
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::CommitDuration]
1809
+ required :commit_duration, -> { MetronomeSDK::V1::ContractCreateParams::RecurringCommit::CommitDuration }
2144
1810
 
2145
- # @!attribute description
2146
- #
2147
- # @return [String, nil]
2148
- optional :description, String
1811
+ # @!attribute priority
1812
+ # Will be passed down to the individual commits
1813
+ #
1814
+ # @return [Float]
1815
+ required :priority, Float
2149
1816
 
2150
- # @!attribute name
2151
- # Specify the name of the line item for the threshold charge. If left blank, it
2152
- # will default to the commit product name.
2153
- #
2154
- # @return [String, nil]
2155
- optional :name, String
1817
+ # @!attribute product_id
1818
+ #
1819
+ # @return [String]
1820
+ required :product_id, String
2156
1821
 
2157
- # @!attribute specifiers
2158
- # List of filters that determine what kind of customer usage draws down a commit
2159
- # or credit. A customer's usage needs to meet the condition of at least one of the
2160
- # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2161
- # be used together with `applicable_product_ids` or `applicable_product_tags`.
2162
- #
2163
- # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::Commit::Specifier>, nil]
2164
- optional :specifiers,
2165
- -> {
2166
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::Commit::Specifier]
2167
- }
1822
+ # @!attribute starting_at
1823
+ # determines the start time for the first commit
1824
+ #
1825
+ # @return [Time]
1826
+ required :starting_at, Time
2168
1827
 
2169
- # @!method initialize(product_id:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, name: nil, specifiers: nil)
2170
- # Some parameter documentations has been truncated, see
2171
- # {MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::Commit}
2172
- # for more details.
2173
- #
2174
- # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
2175
- #
2176
- # @param applicable_product_ids [Array<String>] Which products the threshold commit applies to. If applicable_product_ids, appli
2177
- #
2178
- # @param applicable_product_tags [Array<String>] Which tags the threshold commit applies to. If applicable_product_ids, applicabl
2179
- #
2180
- # @param description [String]
2181
- #
2182
- # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
2183
- #
2184
- # @param specifiers [Array<MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::Commit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
1828
+ # @!attribute applicable_product_ids
1829
+ # Will be passed down to the individual commits
1830
+ #
1831
+ # @return [Array<String>, nil]
1832
+ optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
2185
1833
 
2186
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
2187
- # @!attribute presentation_group_values
2188
- #
2189
- # @return [Hash{Symbol=>String}, nil]
2190
- optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1834
+ # @!attribute applicable_product_tags
1835
+ # Will be passed down to the individual commits
1836
+ #
1837
+ # @return [Array<String>, nil]
1838
+ optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
2191
1839
 
2192
- # @!attribute pricing_group_values
2193
- #
2194
- # @return [Hash{Symbol=>String}, nil]
2195
- optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1840
+ # @!attribute description
1841
+ # Will be passed down to the individual commits
1842
+ #
1843
+ # @return [String, nil]
1844
+ optional :description, String
2196
1845
 
2197
- # @!attribute product_id
2198
- # If provided, the specifier will only apply to the product with the specified ID.
2199
- #
2200
- # @return [String, nil]
2201
- optional :product_id, String
1846
+ # @!attribute ending_before
1847
+ # Determines when the contract will stop creating recurring commits. optional
1848
+ #
1849
+ # @return [Time, nil]
1850
+ optional :ending_before, Time
2202
1851
 
2203
- # @!attribute product_tags
2204
- # If provided, the specifier will only apply to products with all the specified
2205
- # tags.
2206
- #
2207
- # @return [Array<String>, nil]
2208
- optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1852
+ # @!attribute hierarchy_configuration
1853
+ # Optional configuration for recurring commit/credit hierarchy access control
1854
+ #
1855
+ # @return [MetronomeSDK::Models::CommitHierarchyConfiguration, nil]
1856
+ optional :hierarchy_configuration, -> { MetronomeSDK::CommitHierarchyConfiguration }
2209
1857
 
2210
- # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
2211
- # Some parameter documentations has been truncated, see
2212
- # {MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::Commit::Specifier}
2213
- # for more details.
2214
- #
2215
- # @param presentation_group_values [Hash{Symbol=>String}]
2216
- #
2217
- # @param pricing_group_values [Hash{Symbol=>String}]
2218
- #
2219
- # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
2220
- #
2221
- # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
2222
- end
2223
- end
2224
-
2225
- # @see MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration#payment_gate_config
2226
- class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
2227
- # @!attribute payment_gate_type
2228
- # Gate access to the commit balance based on successful collection of payment.
2229
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
2230
- # facilitate payment using your own payment integration. Select NONE if you do not
2231
- # wish to payment gate the commit balance.
2232
- #
2233
- # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType]
2234
- required :payment_gate_type,
2235
- enum: -> {
2236
- MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType
2237
- }
2238
-
2239
- # @!attribute precalculated_tax_config
2240
- # Only applicable if using PRECALCULATED as your tax type.
2241
- #
2242
- # @return [MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig, nil]
2243
- optional :precalculated_tax_config,
2244
- -> {
2245
- MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
2246
- }
2247
-
2248
- # @!attribute stripe_config
2249
- # Only applicable if using STRIPE as your payment gate type.
2250
- #
2251
- # @return [MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
2252
- optional :stripe_config,
2253
- -> {
2254
- MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig
2255
- }
2256
-
2257
- # @!attribute tax_type
2258
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
2259
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
2260
- # will default to NONE.
2261
- #
2262
- # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType, nil]
2263
- optional :tax_type,
2264
- enum: -> {
2265
- MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType
2266
- }
2267
-
2268
- # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
2269
- # Some parameter documentations has been truncated, see
2270
- # {MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig}
2271
- # for more details.
2272
- #
2273
- # @param payment_gate_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
2274
- #
2275
- # @param precalculated_tax_config [MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
2276
- #
2277
- # @param stripe_config [MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gate type.
2278
- #
2279
- # @param tax_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
2280
-
2281
- # Gate access to the commit balance based on successful collection of payment.
2282
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
2283
- # facilitate payment using your own payment integration. Select NONE if you do not
2284
- # wish to payment gate the commit balance.
2285
- #
2286
- # @see MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig#payment_gate_type
2287
- module PaymentGateType
2288
- extend MetronomeSDK::Internal::Type::Enum
2289
-
2290
- NONE = :NONE
2291
- STRIPE = :STRIPE
2292
- EXTERNAL = :EXTERNAL
2293
-
2294
- # @!method self.values
2295
- # @return [Array<Symbol>]
2296
- end
2297
-
2298
- # @see MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig#precalculated_tax_config
2299
- class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
2300
- # @!attribute tax_amount
2301
- # Amount of tax to be applied. This should be in the same currency and
2302
- # denomination as the commit's invoice schedule
2303
- #
2304
- # @return [Float]
2305
- required :tax_amount, Float
2306
-
2307
- # @!attribute tax_name
2308
- # Name of the tax to be applied. This may be used in an invoice line item
2309
- # description.
2310
- #
2311
- # @return [String, nil]
2312
- optional :tax_name, String
2313
-
2314
- # @!method initialize(tax_amount:, tax_name: nil)
2315
- # Some parameter documentations has been truncated, see
2316
- # {MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig}
2317
- # for more details.
2318
- #
2319
- # Only applicable if using PRECALCULATED as your tax type.
2320
- #
2321
- # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
2322
- #
2323
- # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
2324
- end
2325
-
2326
- # @see MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig#stripe_config
2327
- class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
2328
- # @!attribute payment_type
2329
- # If left blank, will default to INVOICE
2330
- #
2331
- # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
2332
- required :payment_type,
2333
- enum: -> {
2334
- MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
2335
- }
2336
-
2337
- # @!attribute invoice_metadata
2338
- # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
2339
- # your payment type.
2340
- #
2341
- # @return [Hash{Symbol=>String}, nil]
2342
- optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
2343
-
2344
- # @!method initialize(payment_type:, invoice_metadata: nil)
2345
- # Some parameter documentations has been truncated, see
2346
- # {MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig}
2347
- # for more details.
2348
- #
2349
- # Only applicable if using STRIPE as your payment gate type.
2350
- #
2351
- # @param payment_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
2352
- #
2353
- # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
2354
-
2355
- # If left blank, will default to INVOICE
2356
- #
2357
- # @see MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
2358
- module PaymentType
2359
- extend MetronomeSDK::Internal::Type::Enum
2360
-
2361
- INVOICE = :INVOICE
2362
- PAYMENT_INTENT = :PAYMENT_INTENT
2363
-
2364
- # @!method self.values
2365
- # @return [Array<Symbol>]
2366
- end
2367
- end
2368
-
2369
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
2370
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
2371
- # will default to NONE.
2372
- #
2373
- # @see MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig#tax_type
2374
- module TaxType
2375
- extend MetronomeSDK::Internal::Type::Enum
2376
-
2377
- NONE = :NONE
2378
- STRIPE = :STRIPE
2379
- ANROK = :ANROK
2380
- PRECALCULATED = :PRECALCULATED
2381
-
2382
- # @!method self.values
2383
- # @return [Array<Symbol>]
2384
- end
2385
- end
2386
- end
2387
-
2388
- class ProfessionalService < MetronomeSDK::Internal::Type::BaseModel
2389
- # @!attribute max_amount
2390
- # Maximum amount for the term.
2391
- #
2392
- # @return [Float]
2393
- required :max_amount, Float
2394
-
2395
- # @!attribute product_id
2396
- #
2397
- # @return [String]
2398
- required :product_id, String
2399
-
2400
- # @!attribute quantity
2401
- # Quantity for the charge. Will be multiplied by unit_price to determine the
2402
- # amount.
2403
- #
2404
- # @return [Float]
2405
- required :quantity, Float
2406
-
2407
- # @!attribute unit_price
2408
- # Unit price for the charge. Will be multiplied by quantity to determine the
2409
- # amount and must be specified.
2410
- #
2411
- # @return [Float]
2412
- required :unit_price, Float
2413
-
2414
- # @!attribute custom_fields
2415
- #
2416
- # @return [Hash{Symbol=>String}, nil]
2417
- optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
2418
-
2419
- # @!attribute description
2420
- #
2421
- # @return [String, nil]
2422
- optional :description, String
2423
-
2424
- # @!attribute netsuite_sales_order_id
2425
- # This field's availability is dependent on your client's configuration.
2426
- #
2427
- # @return [String, nil]
2428
- optional :netsuite_sales_order_id, String
2429
-
2430
- # @!method initialize(max_amount:, product_id:, quantity:, unit_price:, custom_fields: nil, description: nil, netsuite_sales_order_id: nil)
2431
- # Some parameter documentations has been truncated, see
2432
- # {MetronomeSDK::Models::V1::ContractCreateParams::ProfessionalService} for more
2433
- # details.
2434
- #
2435
- # @param max_amount [Float] Maximum amount for the term.
2436
- #
2437
- # @param product_id [String]
2438
- #
2439
- # @param quantity [Float] Quantity for the charge. Will be multiplied by unit_price to determine the amoun
2440
- #
2441
- # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
2442
- #
2443
- # @param custom_fields [Hash{Symbol=>String}]
2444
- #
2445
- # @param description [String]
2446
- #
2447
- # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
2448
- end
2449
-
2450
- class RecurringCommit < MetronomeSDK::Internal::Type::BaseModel
2451
- # @!attribute access_amount
2452
- # The amount of commit to grant.
2453
- #
2454
- # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::AccessAmount]
2455
- required :access_amount,
2456
- -> {
2457
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::AccessAmount
2458
- }
2459
-
2460
- # @!attribute commit_duration
2461
- # Defines the length of the access schedule for each created commit/credit. The
2462
- # value represents the number of units. Unit defaults to "PERIODS", where the
2463
- # length of a period is determined by the recurrence_frequency.
2464
- #
2465
- # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::CommitDuration]
2466
- required :commit_duration,
2467
- -> {
2468
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::CommitDuration
2469
- }
2470
-
2471
- # @!attribute priority
2472
- # Will be passed down to the individual commits
2473
- #
2474
- # @return [Float]
2475
- required :priority, Float
2476
-
2477
- # @!attribute product_id
2478
- #
2479
- # @return [String]
2480
- required :product_id, String
2481
-
2482
- # @!attribute starting_at
2483
- # determines the start time for the first commit
2484
- #
2485
- # @return [Time]
2486
- required :starting_at, Time
2487
-
2488
- # @!attribute applicable_product_ids
2489
- # Will be passed down to the individual commits
2490
- #
2491
- # @return [Array<String>, nil]
2492
- optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
2493
-
2494
- # @!attribute applicable_product_tags
2495
- # Will be passed down to the individual commits
2496
- #
2497
- # @return [Array<String>, nil]
2498
- optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
2499
-
2500
- # @!attribute description
2501
- # Will be passed down to the individual commits
2502
- #
2503
- # @return [String, nil]
2504
- optional :description, String
2505
-
2506
- # @!attribute ending_before
2507
- # Determines when the contract will stop creating recurring commits. optional
2508
- #
2509
- # @return [Time, nil]
2510
- optional :ending_before, Time
2511
-
2512
- # @!attribute hierarchy_configuration
2513
- # Optional configuration for recurring commit/credit hierarchy access control
2514
- #
2515
- # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration, nil]
2516
- optional :hierarchy_configuration,
2517
- -> { MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration }
2518
-
2519
- # @!attribute invoice_amount
2520
- # The amount the customer should be billed for the commit. Not required.
2521
- #
2522
- # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::InvoiceAmount, nil]
2523
- optional :invoice_amount,
2524
- -> {
2525
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::InvoiceAmount
2526
- }
1858
+ # @!attribute invoice_amount
1859
+ # The amount the customer should be billed for the commit. Not required.
1860
+ #
1861
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::InvoiceAmount, nil]
1862
+ optional :invoice_amount, -> { MetronomeSDK::V1::ContractCreateParams::RecurringCommit::InvoiceAmount }
2527
1863
 
2528
1864
  # @!attribute name
2529
1865
  # displayed on invoices. will be passed through to the individual commits
@@ -2575,11 +1911,8 @@ module MetronomeSDK
2575
1911
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2576
1912
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
2577
1913
  #
2578
- # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::Specifier>, nil]
2579
- optional :specifiers,
2580
- -> {
2581
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Specifier]
2582
- }
1914
+ # @return [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil]
1915
+ optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifierInput] }
2583
1916
 
2584
1917
  # @!attribute subscription_config
2585
1918
  # Attach a subscription to the recurring commit/credit.
@@ -2618,7 +1951,7 @@ module MetronomeSDK
2618
1951
  #
2619
1952
  # @param ending_before [Time] Determines when the contract will stop creating recurring commits. optional
2620
1953
  #
2621
- # @param hierarchy_configuration [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration] Optional configuration for recurring commit/credit hierarchy access control
1954
+ # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for recurring commit/credit hierarchy access control
2622
1955
  #
2623
1956
  # @param invoice_amount [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::InvoiceAmount] The amount the customer should be billed for the commit. Not required.
2624
1957
  #
@@ -2634,7 +1967,7 @@ module MetronomeSDK
2634
1967
  #
2635
1968
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
2636
1969
  #
2637
- # @param specifiers [Array<MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
1970
+ # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifierInput>] List of filters that determine what kind of customer usage draws down a commit o
2638
1971
  #
2639
1972
  # @param subscription_config [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig] Attach a subscription to the recurring commit/credit.
2640
1973
  #
@@ -2653,8 +1986,8 @@ module MetronomeSDK
2653
1986
  required :unit_price, Float
2654
1987
 
2655
1988
  # @!attribute quantity
2656
- # This field is currently required. Upcoming recurring commit/credit configuration
2657
- # options will allow it to be optional.
1989
+ # This field is required unless a subscription is attached via
1990
+ # `subscription_config`.
2658
1991
  #
2659
1992
  # @return [Float, nil]
2660
1993
  optional :quantity, Float
@@ -2670,7 +2003,7 @@ module MetronomeSDK
2670
2003
  #
2671
2004
  # @param unit_price [Float]
2672
2005
  #
2673
- # @param quantity [Float] This field is currently required. Upcoming recurring commit/credit configuration
2006
+ # @param quantity [Float] This field is required unless a subscription is attached via `subscription_confi
2674
2007
  end
2675
2008
 
2676
2009
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit#commit_duration
@@ -2683,10 +2016,7 @@ module MetronomeSDK
2683
2016
  # @!attribute unit
2684
2017
  #
2685
2018
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::CommitDuration::Unit, nil]
2686
- optional :unit,
2687
- enum: -> {
2688
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::CommitDuration::Unit
2689
- }
2019
+ optional :unit, enum: -> { MetronomeSDK::V1::ContractCreateParams::RecurringCommit::CommitDuration::Unit }
2690
2020
 
2691
2021
  # @!method initialize(value:, unit: nil)
2692
2022
  # Defines the length of the access schedule for each created commit/credit. The
@@ -2707,117 +2037,6 @@ module MetronomeSDK
2707
2037
  end
2708
2038
  end
2709
2039
 
2710
- # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit#hierarchy_configuration
2711
- class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
2712
- # @!attribute child_access
2713
- #
2714
- # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
2715
- required :child_access,
2716
- union: -> {
2717
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess
2718
- }
2719
-
2720
- # @!method initialize(child_access:)
2721
- # Optional configuration for recurring commit/credit hierarchy access control
2722
- #
2723
- # @param child_access [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
2724
-
2725
- # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration#child_access
2726
- module ChildAccess
2727
- extend MetronomeSDK::Internal::Type::Union
2728
-
2729
- variant -> {
2730
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
2731
- }
2732
-
2733
- variant -> {
2734
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
2735
- }
2736
-
2737
- variant -> {
2738
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
2739
- }
2740
-
2741
- class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
2742
- # @!attribute type
2743
- #
2744
- # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
2745
- required :type,
2746
- enum: -> {
2747
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
2748
- }
2749
-
2750
- # @!method initialize(type:)
2751
- # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
2752
-
2753
- # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
2754
- module Type
2755
- extend MetronomeSDK::Internal::Type::Enum
2756
-
2757
- ALL = :ALL
2758
-
2759
- # @!method self.values
2760
- # @return [Array<Symbol>]
2761
- end
2762
- end
2763
-
2764
- class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
2765
- # @!attribute type
2766
- #
2767
- # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
2768
- required :type,
2769
- enum: -> {
2770
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
2771
- }
2772
-
2773
- # @!method initialize(type:)
2774
- # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
2775
-
2776
- # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
2777
- module Type
2778
- extend MetronomeSDK::Internal::Type::Enum
2779
-
2780
- NONE = :NONE
2781
-
2782
- # @!method self.values
2783
- # @return [Array<Symbol>]
2784
- end
2785
- end
2786
-
2787
- class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
2788
- # @!attribute contract_ids
2789
- #
2790
- # @return [Array<String>]
2791
- required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
2792
-
2793
- # @!attribute type
2794
- #
2795
- # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
2796
- required :type,
2797
- enum: -> {
2798
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
2799
- }
2800
-
2801
- # @!method initialize(contract_ids:, type:)
2802
- # @param contract_ids [Array<String>]
2803
- # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
2804
-
2805
- # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
2806
- module Type
2807
- extend MetronomeSDK::Internal::Type::Enum
2808
-
2809
- CONTRACT_IDS = :CONTRACT_IDS
2810
-
2811
- # @!method self.values
2812
- # @return [Array<Symbol>]
2813
- end
2814
- end
2815
-
2816
- # @!method self.variants
2817
- # @return [Array(MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
2818
- end
2819
- end
2820
-
2821
2040
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit#invoice_amount
2822
2041
  class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
2823
2042
  # @!attribute credit_type_id
@@ -2891,53 +2110,13 @@ module MetronomeSDK
2891
2110
  # @return [Array<Symbol>]
2892
2111
  end
2893
2112
 
2894
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
2895
- # @!attribute presentation_group_values
2896
- #
2897
- # @return [Hash{Symbol=>String}, nil]
2898
- optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2899
-
2900
- # @!attribute pricing_group_values
2901
- #
2902
- # @return [Hash{Symbol=>String}, nil]
2903
- optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2904
-
2905
- # @!attribute product_id
2906
- # If provided, the specifier will only apply to the product with the specified ID.
2907
- #
2908
- # @return [String, nil]
2909
- optional :product_id, String
2910
-
2911
- # @!attribute product_tags
2912
- # If provided, the specifier will only apply to products with all the specified
2913
- # tags.
2914
- #
2915
- # @return [Array<String>, nil]
2916
- optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
2917
-
2918
- # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
2919
- # Some parameter documentations has been truncated, see
2920
- # {MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::Specifier} for
2921
- # more details.
2922
- #
2923
- # @param presentation_group_values [Hash{Symbol=>String}]
2924
- #
2925
- # @param pricing_group_values [Hash{Symbol=>String}]
2926
- #
2927
- # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
2928
- #
2929
- # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
2930
- end
2931
-
2932
2113
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit#subscription_config
2933
2114
  class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
2934
2115
  # @!attribute apply_seat_increase_config
2935
2116
  #
2936
2117
  # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig]
2937
2118
  required :apply_seat_increase_config,
2938
- -> {
2939
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig
2940
- }
2119
+ -> { MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig }
2941
2120
 
2942
2121
  # @!attribute subscription_id
2943
2122
  # ID of the subscription to configure on the recurring commit/credit.
@@ -2950,9 +2129,7 @@ module MetronomeSDK
2950
2129
  #
2951
2130
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation, nil]
2952
2131
  optional :allocation,
2953
- enum: -> {
2954
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation
2955
- }
2132
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation }
2956
2133
 
2957
2134
  # @!method initialize(apply_seat_increase_config:, subscription_id:, allocation: nil)
2958
2135
  # Attach a subscription to the recurring commit/credit.
@@ -2981,6 +2158,7 @@ module MetronomeSDK
2981
2158
  module Allocation
2982
2159
  extend MetronomeSDK::Internal::Type::Enum
2983
2160
 
2161
+ INDIVIDUAL = :INDIVIDUAL
2984
2162
  POOLED = :POOLED
2985
2163
 
2986
2164
  # @!method self.values
@@ -2994,10 +2172,7 @@ module MetronomeSDK
2994
2172
  # The amount of commit to grant.
2995
2173
  #
2996
2174
  # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::AccessAmount]
2997
- required :access_amount,
2998
- -> {
2999
- MetronomeSDK::V1::ContractCreateParams::RecurringCredit::AccessAmount
3000
- }
2175
+ required :access_amount, -> { MetronomeSDK::V1::ContractCreateParams::RecurringCredit::AccessAmount }
3001
2176
 
3002
2177
  # @!attribute commit_duration
3003
2178
  # Defines the length of the access schedule for each created commit/credit. The
@@ -3005,10 +2180,7 @@ module MetronomeSDK
3005
2180
  # length of a period is determined by the recurrence_frequency.
3006
2181
  #
3007
2182
  # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::CommitDuration]
3008
- required :commit_duration,
3009
- -> {
3010
- MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration
3011
- }
2183
+ required :commit_duration, -> { MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration }
3012
2184
 
3013
2185
  # @!attribute priority
3014
2186
  # Will be passed down to the individual commits
@@ -3054,9 +2226,8 @@ module MetronomeSDK
3054
2226
  # @!attribute hierarchy_configuration
3055
2227
  # Optional configuration for recurring commit/credit hierarchy access control
3056
2228
  #
3057
- # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration, nil]
3058
- optional :hierarchy_configuration,
3059
- -> { MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration }
2229
+ # @return [MetronomeSDK::Models::CommitHierarchyConfiguration, nil]
2230
+ optional :hierarchy_configuration, -> { MetronomeSDK::CommitHierarchyConfiguration }
3060
2231
 
3061
2232
  # @!attribute name
3062
2233
  # displayed on invoices. will be passed through to the individual commits
@@ -3108,11 +2279,8 @@ module MetronomeSDK
3108
2279
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
3109
2280
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
3110
2281
  #
3111
- # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::Specifier>, nil]
3112
- optional :specifiers,
3113
- -> {
3114
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::RecurringCredit::Specifier]
3115
- }
2282
+ # @return [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil]
2283
+ optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifierInput] }
3116
2284
 
3117
2285
  # @!attribute subscription_config
3118
2286
  # Attach a subscription to the recurring commit/credit.
@@ -3151,7 +2319,7 @@ module MetronomeSDK
3151
2319
  #
3152
2320
  # @param ending_before [Time] Determines when the contract will stop creating recurring commits. optional
3153
2321
  #
3154
- # @param hierarchy_configuration [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration] Optional configuration for recurring commit/credit hierarchy access control
2322
+ # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for recurring commit/credit hierarchy access control
3155
2323
  #
3156
2324
  # @param name [String] displayed on invoices. will be passed through to the individual commits
3157
2325
  #
@@ -3165,7 +2333,7 @@ module MetronomeSDK
3165
2333
  #
3166
2334
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
3167
2335
  #
3168
- # @param specifiers [Array<MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
2336
+ # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifierInput>] List of filters that determine what kind of customer usage draws down a commit o
3169
2337
  #
3170
2338
  # @param subscription_config [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig] Attach a subscription to the recurring commit/credit.
3171
2339
  #
@@ -3184,8 +2352,8 @@ module MetronomeSDK
3184
2352
  required :unit_price, Float
3185
2353
 
3186
2354
  # @!attribute quantity
3187
- # This field is currently required. Upcoming recurring commit/credit configuration
3188
- # options will allow it to be optional.
2355
+ # This field is required unless a subscription is attached via
2356
+ # `subscription_config`.
3189
2357
  #
3190
2358
  # @return [Float, nil]
3191
2359
  optional :quantity, Float
@@ -3201,7 +2369,7 @@ module MetronomeSDK
3201
2369
  #
3202
2370
  # @param unit_price [Float]
3203
2371
  #
3204
- # @param quantity [Float] This field is currently required. Upcoming recurring commit/credit configuration
2372
+ # @param quantity [Float] This field is required unless a subscription is attached via `subscription_confi
3205
2373
  end
3206
2374
 
3207
2375
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit#commit_duration
@@ -3214,10 +2382,7 @@ module MetronomeSDK
3214
2382
  # @!attribute unit
3215
2383
  #
3216
2384
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit, nil]
3217
- optional :unit,
3218
- enum: -> {
3219
- MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit
3220
- }
2385
+ optional :unit, enum: -> { MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit }
3221
2386
 
3222
2387
  # @!method initialize(value:, unit: nil)
3223
2388
  # Defines the length of the access schedule for each created commit/credit. The
@@ -3238,117 +2403,6 @@ module MetronomeSDK
3238
2403
  end
3239
2404
  end
3240
2405
 
3241
- # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit#hierarchy_configuration
3242
- class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
3243
- # @!attribute child_access
3244
- #
3245
- # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
3246
- required :child_access,
3247
- union: -> {
3248
- MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess
3249
- }
3250
-
3251
- # @!method initialize(child_access:)
3252
- # Optional configuration for recurring commit/credit hierarchy access control
3253
- #
3254
- # @param child_access [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
3255
-
3256
- # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration#child_access
3257
- module ChildAccess
3258
- extend MetronomeSDK::Internal::Type::Union
3259
-
3260
- variant -> {
3261
- MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
3262
- }
3263
-
3264
- variant -> {
3265
- MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
3266
- }
3267
-
3268
- variant -> {
3269
- MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
3270
- }
3271
-
3272
- class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
3273
- # @!attribute type
3274
- #
3275
- # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
3276
- required :type,
3277
- enum: -> {
3278
- MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
3279
- }
3280
-
3281
- # @!method initialize(type:)
3282
- # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
3283
-
3284
- # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
3285
- module Type
3286
- extend MetronomeSDK::Internal::Type::Enum
3287
-
3288
- ALL = :ALL
3289
-
3290
- # @!method self.values
3291
- # @return [Array<Symbol>]
3292
- end
3293
- end
3294
-
3295
- class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
3296
- # @!attribute type
3297
- #
3298
- # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
3299
- required :type,
3300
- enum: -> {
3301
- MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
3302
- }
3303
-
3304
- # @!method initialize(type:)
3305
- # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
3306
-
3307
- # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
3308
- module Type
3309
- extend MetronomeSDK::Internal::Type::Enum
3310
-
3311
- NONE = :NONE
3312
-
3313
- # @!method self.values
3314
- # @return [Array<Symbol>]
3315
- end
3316
- end
3317
-
3318
- class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
3319
- # @!attribute contract_ids
3320
- #
3321
- # @return [Array<String>]
3322
- required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
3323
-
3324
- # @!attribute type
3325
- #
3326
- # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
3327
- required :type,
3328
- enum: -> {
3329
- MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
3330
- }
3331
-
3332
- # @!method initialize(contract_ids:, type:)
3333
- # @param contract_ids [Array<String>]
3334
- # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
3335
-
3336
- # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
3337
- module Type
3338
- extend MetronomeSDK::Internal::Type::Enum
3339
-
3340
- CONTRACT_IDS = :CONTRACT_IDS
3341
-
3342
- # @!method self.values
3343
- # @return [Array<Symbol>]
3344
- end
3345
- end
3346
-
3347
- # @!method self.variants
3348
- # @return [Array(MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
3349
- end
3350
- end
3351
-
3352
2406
  # Determines whether the first and last commit will be prorated. If not provided,
3353
2407
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
3354
2408
  #
@@ -3397,53 +2451,13 @@ module MetronomeSDK
3397
2451
  # @return [Array<Symbol>]
3398
2452
  end
3399
2453
 
3400
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
3401
- # @!attribute presentation_group_values
3402
- #
3403
- # @return [Hash{Symbol=>String}, nil]
3404
- optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
3405
-
3406
- # @!attribute pricing_group_values
3407
- #
3408
- # @return [Hash{Symbol=>String}, nil]
3409
- optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
3410
-
3411
- # @!attribute product_id
3412
- # If provided, the specifier will only apply to the product with the specified ID.
3413
- #
3414
- # @return [String, nil]
3415
- optional :product_id, String
3416
-
3417
- # @!attribute product_tags
3418
- # If provided, the specifier will only apply to products with all the specified
3419
- # tags.
3420
- #
3421
- # @return [Array<String>, nil]
3422
- optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
3423
-
3424
- # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
3425
- # Some parameter documentations has been truncated, see
3426
- # {MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::Specifier} for
3427
- # more details.
3428
- #
3429
- # @param presentation_group_values [Hash{Symbol=>String}]
3430
- #
3431
- # @param pricing_group_values [Hash{Symbol=>String}]
3432
- #
3433
- # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
3434
- #
3435
- # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
3436
- end
3437
-
3438
2454
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit#subscription_config
3439
2455
  class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
3440
2456
  # @!attribute apply_seat_increase_config
3441
2457
  #
3442
2458
  # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig]
3443
2459
  required :apply_seat_increase_config,
3444
- -> {
3445
- MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig
3446
- }
2460
+ -> { MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig }
3447
2461
 
3448
2462
  # @!attribute subscription_id
3449
2463
  # ID of the subscription to configure on the recurring commit/credit.
@@ -3456,9 +2470,7 @@ module MetronomeSDK
3456
2470
  #
3457
2471
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation, nil]
3458
2472
  optional :allocation,
3459
- enum: -> {
3460
- MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation
3461
- }
2473
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation }
3462
2474
 
3463
2475
  # @!method initialize(apply_seat_increase_config:, subscription_id:, allocation: nil)
3464
2476
  # Attach a subscription to the recurring commit/credit.
@@ -3487,6 +2499,7 @@ module MetronomeSDK
3487
2499
  module Allocation
3488
2500
  extend MetronomeSDK::Internal::Type::Enum
3489
2501
 
2502
+ INDIVIDUAL = :INDIVIDUAL
3490
2503
  POOLED = :POOLED
3491
2504
 
3492
2505
  # @!method self.values
@@ -3636,6 +2649,12 @@ module MetronomeSDK
3636
2649
  # @return [MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule]
3637
2650
  required :schedule, -> { MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule }
3638
2651
 
2652
+ # @!attribute custom_fields
2653
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
2654
+ #
2655
+ # @return [Hash{Symbol=>String}, nil]
2656
+ optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
2657
+
3639
2658
  # @!attribute name
3640
2659
  # displayed on invoices
3641
2660
  #
@@ -3648,11 +2667,13 @@ module MetronomeSDK
3648
2667
  # @return [String, nil]
3649
2668
  optional :netsuite_sales_order_id, String
3650
2669
 
3651
- # @!method initialize(product_id:, schedule:, name: nil, netsuite_sales_order_id: nil)
2670
+ # @!method initialize(product_id:, schedule:, custom_fields: nil, name: nil, netsuite_sales_order_id: nil)
3652
2671
  # @param product_id [String]
3653
2672
  #
3654
2673
  # @param schedule [MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule] Must provide either schedule_items or recurring_schedule.
3655
2674
  #
2675
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
2676
+ #
3656
2677
  # @param name [String] displayed on invoices
3657
2678
  #
3658
2679
  # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
@@ -3665,6 +2686,13 @@ module MetronomeSDK
3665
2686
  # @return [String, nil]
3666
2687
  optional :credit_type_id, String
3667
2688
 
2689
+ # @!attribute do_not_invoice
2690
+ # This field is only applicable to commit invoice schedules. If true, this
2691
+ # schedule will not generate an invoice.
2692
+ #
2693
+ # @return [Boolean, nil]
2694
+ optional :do_not_invoice, MetronomeSDK::Internal::Type::Boolean
2695
+
3668
2696
  # @!attribute recurring_schedule
3669
2697
  # Enter the unit price and quantity for the charge or instead only send the
3670
2698
  # amount. If amount is sent, the unit price is assumed to be the amount and
@@ -3672,20 +2700,16 @@ module MetronomeSDK
3672
2700
  #
3673
2701
  # @return [MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule, nil]
3674
2702
  optional :recurring_schedule,
3675
- -> {
3676
- MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule
3677
- }
2703
+ -> { MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule }
3678
2704
 
3679
2705
  # @!attribute schedule_items
3680
2706
  # Either provide amount or provide both unit_price and quantity.
3681
2707
  #
3682
2708
  # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule::ScheduleItem>, nil]
3683
2709
  optional :schedule_items,
3684
- -> {
3685
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::ScheduleItem]
3686
- }
2710
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::ScheduleItem] }
3687
2711
 
3688
- # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
2712
+ # @!method initialize(credit_type_id: nil, do_not_invoice: nil, recurring_schedule: nil, schedule_items: nil)
3689
2713
  # Some parameter documentations has been truncated, see
3690
2714
  # {MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule} for
3691
2715
  # more details.
@@ -3694,6 +2718,8 @@ module MetronomeSDK
3694
2718
  #
3695
2719
  # @param credit_type_id [String] Defaults to USD (cents) if not passed.
3696
2720
  #
2721
+ # @param do_not_invoice [Boolean] This field is only applicable to commit invoice schedules. If true, this schedul
2722
+ #
3697
2723
  # @param recurring_schedule [MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
3698
2724
  #
3699
2725
  # @param schedule_items [Array<MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
@@ -3704,9 +2730,7 @@ module MetronomeSDK
3704
2730
  #
3705
2731
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule::AmountDistribution]
3706
2732
  required :amount_distribution,
3707
- enum: -> {
3708
- MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule::AmountDistribution
3709
- }
2733
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule::AmountDistribution }
3710
2734
 
3711
2735
  # @!attribute ending_before
3712
2736
  # RFC 3339 timestamp (exclusive).
@@ -3718,9 +2742,7 @@ module MetronomeSDK
3718
2742
  #
3719
2743
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule::Frequency]
3720
2744
  required :frequency,
3721
- enum: -> {
3722
- MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule::Frequency
3723
- }
2745
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule::Frequency }
3724
2746
 
3725
2747
  # @!attribute starting_at
3726
2748
  # RFC 3339 timestamp (inclusive).
@@ -3862,244 +2884,6 @@ module MetronomeSDK
3862
2884
  # @return [Array<Symbol>]
3863
2885
  end
3864
2886
 
3865
- class SpendThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
3866
- # @!attribute commit
3867
- #
3868
- # @return [MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::Commit]
3869
- required :commit, -> { MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::Commit }
3870
-
3871
- # @!attribute is_enabled
3872
- # When set to false, the contract will not be evaluated against the
3873
- # threshold_amount. Toggling to true will result an immediate evaluation,
3874
- # regardless of prior state.
3875
- #
3876
- # @return [Boolean]
3877
- required :is_enabled, MetronomeSDK::Internal::Type::Boolean
3878
-
3879
- # @!attribute payment_gate_config
3880
- #
3881
- # @return [MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig]
3882
- required :payment_gate_config,
3883
- -> {
3884
- MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig
3885
- }
3886
-
3887
- # @!attribute threshold_amount
3888
- # Specify the threshold amount for the contract. Each time the contract's usage
3889
- # hits this amount, a threshold charge will be initiated.
3890
- #
3891
- # @return [Float]
3892
- required :threshold_amount, Float
3893
-
3894
- # @!method initialize(commit:, is_enabled:, payment_gate_config:, threshold_amount:)
3895
- # Some parameter documentations has been truncated, see
3896
- # {MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration}
3897
- # for more details.
3898
- #
3899
- # @param commit [MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::Commit]
3900
- #
3901
- # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
3902
- #
3903
- # @param payment_gate_config [MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig]
3904
- #
3905
- # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's usage hi
3906
-
3907
- # @see MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration#commit
3908
- class Commit < MetronomeSDK::Internal::Type::BaseModel
3909
- # @!attribute product_id
3910
- # The commit product that will be used to generate the line item for commit
3911
- # payment.
3912
- #
3913
- # @return [String]
3914
- required :product_id, String
3915
-
3916
- # @!attribute description
3917
- #
3918
- # @return [String, nil]
3919
- optional :description, String
3920
-
3921
- # @!attribute name
3922
- # Specify the name of the line item for the threshold charge. If left blank, it
3923
- # will default to the commit product name.
3924
- #
3925
- # @return [String, nil]
3926
- optional :name, String
3927
-
3928
- # @!method initialize(product_id:, description: nil, name: nil)
3929
- # Some parameter documentations has been truncated, see
3930
- # {MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::Commit}
3931
- # for more details.
3932
- #
3933
- # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
3934
- #
3935
- # @param description [String]
3936
- #
3937
- # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
3938
- end
3939
-
3940
- # @see MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration#payment_gate_config
3941
- class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
3942
- # @!attribute payment_gate_type
3943
- # Gate access to the commit balance based on successful collection of payment.
3944
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
3945
- # facilitate payment using your own payment integration. Select NONE if you do not
3946
- # wish to payment gate the commit balance.
3947
- #
3948
- # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType]
3949
- required :payment_gate_type,
3950
- enum: -> {
3951
- MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType
3952
- }
3953
-
3954
- # @!attribute precalculated_tax_config
3955
- # Only applicable if using PRECALCULATED as your tax type.
3956
- #
3957
- # @return [MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig, nil]
3958
- optional :precalculated_tax_config,
3959
- -> {
3960
- MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
3961
- }
3962
-
3963
- # @!attribute stripe_config
3964
- # Only applicable if using STRIPE as your payment gate type.
3965
- #
3966
- # @return [MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
3967
- optional :stripe_config,
3968
- -> {
3969
- MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig
3970
- }
3971
-
3972
- # @!attribute tax_type
3973
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
3974
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
3975
- # will default to NONE.
3976
- #
3977
- # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::TaxType, nil]
3978
- optional :tax_type,
3979
- enum: -> {
3980
- MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::TaxType
3981
- }
3982
-
3983
- # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
3984
- # Some parameter documentations has been truncated, see
3985
- # {MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig}
3986
- # for more details.
3987
- #
3988
- # @param payment_gate_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
3989
- #
3990
- # @param precalculated_tax_config [MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
3991
- #
3992
- # @param stripe_config [MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gate type.
3993
- #
3994
- # @param tax_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
3995
-
3996
- # Gate access to the commit balance based on successful collection of payment.
3997
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
3998
- # facilitate payment using your own payment integration. Select NONE if you do not
3999
- # wish to payment gate the commit balance.
4000
- #
4001
- # @see MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig#payment_gate_type
4002
- module PaymentGateType
4003
- extend MetronomeSDK::Internal::Type::Enum
4004
-
4005
- NONE = :NONE
4006
- STRIPE = :STRIPE
4007
- EXTERNAL = :EXTERNAL
4008
-
4009
- # @!method self.values
4010
- # @return [Array<Symbol>]
4011
- end
4012
-
4013
- # @see MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig#precalculated_tax_config
4014
- class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
4015
- # @!attribute tax_amount
4016
- # Amount of tax to be applied. This should be in the same currency and
4017
- # denomination as the commit's invoice schedule
4018
- #
4019
- # @return [Float]
4020
- required :tax_amount, Float
4021
-
4022
- # @!attribute tax_name
4023
- # Name of the tax to be applied. This may be used in an invoice line item
4024
- # description.
4025
- #
4026
- # @return [String, nil]
4027
- optional :tax_name, String
4028
-
4029
- # @!method initialize(tax_amount:, tax_name: nil)
4030
- # Some parameter documentations has been truncated, see
4031
- # {MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig}
4032
- # for more details.
4033
- #
4034
- # Only applicable if using PRECALCULATED as your tax type.
4035
- #
4036
- # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
4037
- #
4038
- # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
4039
- end
4040
-
4041
- # @see MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig#stripe_config
4042
- class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
4043
- # @!attribute payment_type
4044
- # If left blank, will default to INVOICE
4045
- #
4046
- # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
4047
- required :payment_type,
4048
- enum: -> {
4049
- MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
4050
- }
4051
-
4052
- # @!attribute invoice_metadata
4053
- # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
4054
- # your payment type.
4055
- #
4056
- # @return [Hash{Symbol=>String}, nil]
4057
- optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
4058
-
4059
- # @!method initialize(payment_type:, invoice_metadata: nil)
4060
- # Some parameter documentations has been truncated, see
4061
- # {MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig}
4062
- # for more details.
4063
- #
4064
- # Only applicable if using STRIPE as your payment gate type.
4065
- #
4066
- # @param payment_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
4067
- #
4068
- # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
4069
-
4070
- # If left blank, will default to INVOICE
4071
- #
4072
- # @see MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
4073
- module PaymentType
4074
- extend MetronomeSDK::Internal::Type::Enum
4075
-
4076
- INVOICE = :INVOICE
4077
- PAYMENT_INTENT = :PAYMENT_INTENT
4078
-
4079
- # @!method self.values
4080
- # @return [Array<Symbol>]
4081
- end
4082
- end
4083
-
4084
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
4085
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
4086
- # will default to NONE.
4087
- #
4088
- # @see MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig#tax_type
4089
- module TaxType
4090
- extend MetronomeSDK::Internal::Type::Enum
4091
-
4092
- NONE = :NONE
4093
- STRIPE = :STRIPE
4094
- ANROK = :ANROK
4095
- PRECALCULATED = :PRECALCULATED
4096
-
4097
- # @!method self.values
4098
- # @return [Array<Symbol>]
4099
- end
4100
- end
4101
- end
4102
-
4103
2887
  class Subscription < MetronomeSDK::Internal::Type::BaseModel
4104
2888
  # @!attribute collection_schedule
4105
2889
  #
@@ -4107,12 +2891,6 @@ module MetronomeSDK
4107
2891
  required :collection_schedule,
4108
2892
  enum: -> { MetronomeSDK::V1::ContractCreateParams::Subscription::CollectionSchedule }
4109
2893
 
4110
- # @!attribute initial_quantity
4111
- # The initial quantity for the subscription. It must be non-negative value.
4112
- #
4113
- # @return [Float]
4114
- required :initial_quantity, Float
4115
-
4116
2894
  # @!attribute proration
4117
2895
  #
4118
2896
  # @return [MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration]
@@ -4121,12 +2899,10 @@ module MetronomeSDK
4121
2899
  # @!attribute subscription_rate
4122
2900
  #
4123
2901
  # @return [MetronomeSDK::Models::V1::ContractCreateParams::Subscription::SubscriptionRate]
4124
- required :subscription_rate,
4125
- -> {
4126
- MetronomeSDK::V1::ContractCreateParams::Subscription::SubscriptionRate
4127
- }
2902
+ required :subscription_rate, -> { MetronomeSDK::V1::ContractCreateParams::Subscription::SubscriptionRate }
4128
2903
 
4129
2904
  # @!attribute custom_fields
2905
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
4130
2906
  #
4131
2907
  # @return [Hash{Symbol=>String}, nil]
4132
2908
  optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
@@ -4143,11 +2919,28 @@ module MetronomeSDK
4143
2919
  # @return [Time, nil]
4144
2920
  optional :ending_before, Time
4145
2921
 
2922
+ # @!attribute initial_quantity
2923
+ # The initial quantity for the subscription. It must be non-negative value.
2924
+ # Required if quantity_management_mode is QUANTITY_ONLY.
2925
+ #
2926
+ # @return [Float, nil]
2927
+ optional :initial_quantity, Float
2928
+
4146
2929
  # @!attribute name
4147
2930
  #
4148
2931
  # @return [String, nil]
4149
2932
  optional :name, String
4150
2933
 
2934
+ # @!attribute quantity_management_mode
2935
+ # Determines how the subscription's quantity is controlled. Defaults to
2936
+ # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
2937
+ # directly on the subscription. `initial_quantity` must be provided with this
2938
+ # option. Compatible with recurring commits/credits that use POOLED allocation.
2939
+ #
2940
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::QuantityManagementMode, nil]
2941
+ optional :quantity_management_mode,
2942
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::Subscription::QuantityManagementMode }
2943
+
4151
2944
  # @!attribute starting_at
4152
2945
  # Inclusive start time for the subscription. If not provided, defaults to contract
4153
2946
  # start date
@@ -4162,26 +2955,28 @@ module MetronomeSDK
4162
2955
  # @return [String, nil]
4163
2956
  optional :temporary_id, String
4164
2957
 
4165
- # @!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)
2958
+ # @!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)
4166
2959
  # Some parameter documentations has been truncated, see
4167
2960
  # {MetronomeSDK::Models::V1::ContractCreateParams::Subscription} for more details.
4168
2961
  #
4169
2962
  # @param collection_schedule [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::CollectionSchedule]
4170
2963
  #
4171
- # @param initial_quantity [Float] The initial quantity for the subscription. It must be non-negative value.
4172
- #
4173
2964
  # @param proration [MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration]
4174
2965
  #
4175
2966
  # @param subscription_rate [MetronomeSDK::Models::V1::ContractCreateParams::Subscription::SubscriptionRate]
4176
2967
  #
4177
- # @param custom_fields [Hash{Symbol=>String}]
2968
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
4178
2969
  #
4179
2970
  # @param description [String]
4180
2971
  #
4181
2972
  # @param ending_before [Time] Exclusive end time for the subscription. If not provided, subscription inherits
4182
2973
  #
2974
+ # @param initial_quantity [Float] The initial quantity for the subscription. It must be non-negative value. Requir
2975
+ #
4183
2976
  # @param name [String]
4184
2977
  #
2978
+ # @param quantity_management_mode [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::QuantityManagementMode] Determines how the subscription's quantity is controlled. Defaults to QUANTITY_O
2979
+ #
4185
2980
  # @param starting_at [Time] Inclusive start time for the subscription. If not provided, defaults to contract
4186
2981
  #
4187
2982
  # @param temporary_id [String] A temporary ID used to reference the subscription in recurring commit/credit sub
@@ -4208,9 +3003,7 @@ module MetronomeSDK
4208
3003
  #
4209
3004
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration::InvoiceBehavior, nil]
4210
3005
  optional :invoice_behavior,
4211
- enum: -> {
4212
- MetronomeSDK::V1::ContractCreateParams::Subscription::Proration::InvoiceBehavior
4213
- }
3006
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::Subscription::Proration::InvoiceBehavior }
4214
3007
 
4215
3008
  # @!attribute is_prorated
4216
3009
  # Indicates if the partial period will be prorated or charged a full amount.
@@ -4253,9 +3046,7 @@ module MetronomeSDK
4253
3046
  #
4254
3047
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::SubscriptionRate::BillingFrequency]
4255
3048
  required :billing_frequency,
4256
- enum: -> {
4257
- MetronomeSDK::V1::ContractCreateParams::Subscription::SubscriptionRate::BillingFrequency
4258
- }
3049
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::Subscription::SubscriptionRate::BillingFrequency }
4259
3050
 
4260
3051
  # @!attribute product_id
4261
3052
  # Must be subscription type product
@@ -4288,6 +3079,22 @@ module MetronomeSDK
4288
3079
  # @return [Array<Symbol>]
4289
3080
  end
4290
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::V1::ContractCreateParams::Subscription#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
4291
3098
  end
4292
3099
 
4293
3100
  class Transition < MetronomeSDK::Internal::Type::BaseModel