metronome-sdk 0.1.0.pre.alpha.1 → 0.1.0.pre.alpha.3

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 (723) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +97 -0
  3. data/README.md +138 -81
  4. data/SECURITY.md +2 -2
  5. data/lib/metronome_sdk/client.rb +4 -4
  6. data/lib/metronome_sdk/errors.rb +1 -1
  7. data/lib/metronome_sdk/file_part.rb +2 -2
  8. data/lib/metronome_sdk/internal/cursor_page.rb +3 -3
  9. data/lib/metronome_sdk/internal/transport/base_client.rb +80 -8
  10. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +17 -1
  11. data/lib/metronome_sdk/internal/type/array_of.rb +9 -1
  12. data/lib/metronome_sdk/internal/type/base_model.rb +76 -39
  13. data/lib/metronome_sdk/internal/type/boolean.rb +8 -0
  14. data/lib/metronome_sdk/internal/type/converter.rb +18 -0
  15. data/lib/metronome_sdk/internal/type/enum.rb +13 -0
  16. data/lib/metronome_sdk/internal/type/file_input.rb +7 -0
  17. data/lib/metronome_sdk/internal/type/hash_of.rb +9 -1
  18. data/lib/metronome_sdk/internal/type/request_parameters.rb +6 -12
  19. data/lib/metronome_sdk/internal/type/union.rb +13 -0
  20. data/lib/metronome_sdk/internal/type/unknown.rb +8 -0
  21. data/lib/metronome_sdk/internal/util.rb +131 -6
  22. data/lib/metronome_sdk/internal.rb +9 -0
  23. data/lib/metronome_sdk/models/v1/alert_archive_response.rb +14 -3
  24. data/lib/metronome_sdk/models/v1/alert_create_params.rb +8 -16
  25. data/lib/metronome_sdk/models/v1/alert_create_response.rb +14 -3
  26. data/lib/metronome_sdk/models/v1/audit_log_list_params.rb +1 -4
  27. data/lib/metronome_sdk/models/v1/billable_metric_archive_params.rb +8 -2
  28. data/lib/metronome_sdk/models/v1/billable_metric_archive_response.rb +14 -3
  29. data/lib/metronome_sdk/models/v1/billable_metric_create_params.rb +86 -12
  30. data/lib/metronome_sdk/models/v1/billable_metric_create_response.rb +14 -3
  31. data/lib/metronome_sdk/models/v1/billable_metric_list_response.rb +84 -10
  32. data/lib/metronome_sdk/models/v1/billable_metric_retrieve_response.rb +85 -10
  33. data/lib/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rb +0 -2
  34. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +241 -98
  35. data/lib/metronome_sdk/models/v1/contract_amend_response.rb +14 -3
  36. data/lib/metronome_sdk/models/v1/contract_archive_params.rb +0 -1
  37. data/lib/metronome_sdk/models/v1/contract_archive_response.rb +14 -3
  38. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_params.rb +15 -9
  39. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_response.rb +1276 -3
  40. data/lib/metronome_sdk/models/v1/contract_create_params.rb +933 -402
  41. data/lib/metronome_sdk/models/v1/contract_create_response.rb +14 -3
  42. data/lib/metronome_sdk/models/v1/contract_list_balances_params.rb +0 -2
  43. data/lib/metronome_sdk/models/v1/contract_list_balances_response.rb +1645 -5
  44. data/lib/metronome_sdk/models/v1/contract_list_params.rb +0 -4
  45. data/lib/metronome_sdk/models/v1/contract_list_response.rb +11371 -152
  46. data/lib/metronome_sdk/models/v1/contract_retrieve_params.rb +0 -2
  47. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rb +32 -7
  48. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rb +317 -11
  49. data/lib/metronome_sdk/models/v1/contract_retrieve_response.rb +11400 -152
  50. data/lib/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_params.rb +34 -0
  51. data/lib/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_response.rb +81 -0
  52. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_params.rb +3 -3
  53. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rb +1276 -3
  54. data/lib/metronome_sdk/models/v1/contract_update_end_date_params.rb +0 -2
  55. data/lib/metronome_sdk/models/v1/contract_update_end_date_response.rb +14 -3
  56. data/lib/metronome_sdk/models/v1/contracts/named_schedule_retrieve_params.rb +0 -1
  57. data/lib/metronome_sdk/models/v1/contracts/named_schedule_update_params.rb +0 -1
  58. data/lib/metronome_sdk/models/v1/contracts/product_archive_response.rb +14 -3
  59. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +98 -13
  60. data/lib/metronome_sdk/models/v1/contracts/product_create_response.rb +14 -3
  61. data/lib/metronome_sdk/models/v1/contracts/product_list_params.rb +4 -5
  62. data/lib/metronome_sdk/models/v1/contracts/product_list_response.rb +561 -16
  63. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_params.rb +8 -2
  64. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_response.rb +561 -16
  65. data/lib/metronome_sdk/models/v1/contracts/product_update_params.rb +97 -18
  66. data/lib/metronome_sdk/models/v1/contracts/product_update_response.rb +14 -3
  67. data/lib/metronome_sdk/models/v1/contracts/rate_card_archive_params.rb +24 -0
  68. data/lib/metronome_sdk/models/v1/contracts/rate_card_archive_response.rb +31 -0
  69. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_params.rb +6 -4
  70. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_response.rb +14 -3
  71. data/lib/metronome_sdk/models/v1/contracts/rate_card_list_response.rb +42 -6
  72. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rb +8 -2
  73. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rb +32 -6
  74. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rb +181 -8
  75. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rb +42 -6
  76. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_params.rb +3 -2
  77. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_response.rb +14 -3
  78. data/lib/metronome_sdk/models/v1/contracts/rate_cards/named_schedule_retrieve_params.rb +0 -1
  79. data/lib/metronome_sdk/models/v1/contracts/rate_cards/named_schedule_update_params.rb +0 -1
  80. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rb +14 -3
  81. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_params.rb +3 -1
  82. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rb +14 -3
  83. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +83 -18
  84. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rb +16 -3
  85. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +74 -17
  86. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +61 -15
  87. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rb +32 -6
  88. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rb +180 -8
  89. data/lib/metronome_sdk/models/v1/credit_grant_create_params.rb +81 -15
  90. data/lib/metronome_sdk/models/v1/credit_grant_create_response.rb +14 -3
  91. data/lib/metronome_sdk/models/v1/credit_grant_edit_response.rb +14 -3
  92. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_params.rb +0 -4
  93. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_response.rb +153 -15
  94. data/lib/metronome_sdk/models/v1/credit_grant_list_params.rb +0 -3
  95. data/lib/metronome_sdk/models/v1/credit_grant_list_response.rb +175 -18
  96. data/lib/metronome_sdk/models/v1/credit_grant_void_response.rb +14 -3
  97. data/lib/metronome_sdk/models/v1/custom_field_add_key_params.rb +1 -1
  98. data/lib/metronome_sdk/models/v1/custom_field_delete_values_params.rb +1 -1
  99. data/lib/metronome_sdk/models/v1/custom_field_list_keys_params.rb +3 -1
  100. data/lib/metronome_sdk/models/v1/custom_field_remove_key_params.rb +1 -1
  101. data/lib/metronome_sdk/models/v1/custom_field_set_values_params.rb +1 -1
  102. data/lib/metronome_sdk/models/v1/customer_archive_params.rb +8 -2
  103. data/lib/metronome_sdk/models/v1/customer_archive_response.rb +14 -3
  104. data/lib/metronome_sdk/models/v1/customer_create_params.rb +13 -12
  105. data/lib/metronome_sdk/models/v1/customer_create_response.rb +50 -3
  106. data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_params.rb +0 -1
  107. data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_response.rb +85 -10
  108. data/lib/metronome_sdk/models/v1/customer_list_params.rb +0 -2
  109. data/lib/metronome_sdk/models/v1/{customer_detail.rb → customer_list_response.rb} +15 -17
  110. data/lib/metronome_sdk/models/v1/customer_retrieve_response.rb +126 -3
  111. data/lib/metronome_sdk/models/v1/customer_set_name_params.rb +0 -1
  112. data/lib/metronome_sdk/models/v1/customer_set_name_response.rb +50 -3
  113. data/lib/metronome_sdk/models/v1/customer_update_config_params.rb +0 -1
  114. data/lib/metronome_sdk/models/v1/customers/alert_list_params.rb +3 -2
  115. data/lib/metronome_sdk/models/v1/customers/alert_list_response.rb +276 -3
  116. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +26 -1
  117. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_response.rb +279 -3
  118. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +3 -5
  119. data/lib/metronome_sdk/models/v1/customers/billing_config_delete_params.rb +1 -1
  120. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rb +1 -1
  121. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +0 -3
  122. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +72 -27
  123. data/lib/metronome_sdk/models/v1/customers/commit_create_response.rb +14 -3
  124. data/lib/metronome_sdk/models/v1/customers/commit_list_params.rb +0 -2
  125. data/lib/metronome_sdk/models/v1/customers/commit_list_response.rb +1047 -3
  126. data/lib/metronome_sdk/models/v1/customers/commit_update_end_date_params.rb +0 -2
  127. data/lib/metronome_sdk/models/v1/customers/commit_update_end_date_response.rb +14 -3
  128. data/lib/metronome_sdk/models/v1/customers/credit_create_params.rb +58 -9
  129. data/lib/metronome_sdk/models/v1/customers/credit_create_response.rb +14 -3
  130. data/lib/metronome_sdk/models/v1/customers/credit_list_params.rb +0 -2
  131. data/lib/metronome_sdk/models/v1/customers/credit_list_response.rb +593 -3
  132. data/lib/metronome_sdk/models/v1/customers/credit_update_end_date_params.rb +0 -1
  133. data/lib/metronome_sdk/models/v1/customers/credit_update_end_date_response.rb +14 -3
  134. data/lib/metronome_sdk/models/v1/customers/invoice_add_charge_params.rb +0 -2
  135. data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_params.rb +4 -6
  136. data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rb +1271 -2
  137. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +1 -4
  138. data/lib/metronome_sdk/models/v1/customers/{invoice.rb → invoice_list_response.rb} +321 -117
  139. data/lib/metronome_sdk/models/v1/customers/invoice_retrieve_response.rb +1276 -3
  140. data/lib/metronome_sdk/models/v1/customers/named_schedule_retrieve_params.rb +0 -1
  141. data/lib/metronome_sdk/models/v1/customers/named_schedule_update_params.rb +0 -1
  142. data/lib/metronome_sdk/models/v1/customers/plan_add_params.rb +9 -14
  143. data/lib/metronome_sdk/models/v1/customers/plan_add_response.rb +14 -3
  144. data/lib/metronome_sdk/models/v1/customers/plan_end_params.rb +0 -3
  145. data/lib/metronome_sdk/models/v1/customers/plan_list_response.rb +21 -3
  146. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +11 -7
  147. data/lib/metronome_sdk/models/v1/plan_get_details_response.rb +286 -3
  148. data/lib/metronome_sdk/models/v1/plan_list_charges_response.rb +20 -6
  149. data/lib/metronome_sdk/models/v1/plan_list_customers_params.rb +2 -2
  150. data/lib/metronome_sdk/models/v1/plan_list_customers_response.rb +128 -3
  151. data/lib/metronome_sdk/models/v1/usage_ingest_params.rb +3 -1
  152. data/lib/metronome_sdk/models/v1/usage_list_params.rb +5 -7
  153. data/lib/metronome_sdk/models/v1/usage_list_response.rb +0 -1
  154. data/lib/metronome_sdk/models/v1/usage_list_with_groups_params.rb +2 -5
  155. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +73 -11
  156. data/lib/metronome_sdk/models/v2/contract_edit_commit_response.rb +14 -3
  157. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +63 -7
  158. data/lib/metronome_sdk/models/v2/contract_edit_credit_response.rb +14 -3
  159. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +1751 -462
  160. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +14 -3
  161. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +2212 -142
  162. data/lib/metronome_sdk/models/v2/contract_list_params.rb +0 -4
  163. data/lib/metronome_sdk/models/v2/contract_list_response.rb +1485 -342
  164. data/lib/metronome_sdk/models/v2/contract_retrieve_params.rb +0 -3
  165. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +1482 -336
  166. data/lib/metronome_sdk/models.rb +45 -0
  167. data/lib/metronome_sdk/request_options.rb +4 -0
  168. data/lib/metronome_sdk/resources/v1/alerts.rb +2 -12
  169. data/lib/metronome_sdk/resources/v1/audit_logs.rb +1 -4
  170. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +6 -10
  171. data/lib/metronome_sdk/resources/v1/contracts/named_schedules.rb +2 -4
  172. data/lib/metronome_sdk/resources/v1/contracts/products.rb +13 -28
  173. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/named_schedules.rb +2 -5
  174. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rb +2 -4
  175. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +7 -13
  176. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +26 -11
  177. data/lib/metronome_sdk/resources/v1/contracts.rb +43 -35
  178. data/lib/metronome_sdk/resources/v1/credit_grants.rb +6 -18
  179. data/lib/metronome_sdk/resources/v1/custom_fields.rb +5 -5
  180. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +9 -5
  181. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +3 -4
  182. data/lib/metronome_sdk/resources/v1/customers/commits.rb +6 -17
  183. data/lib/metronome_sdk/resources/v1/customers/credits.rb +6 -12
  184. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +6 -18
  185. data/lib/metronome_sdk/resources/v1/customers/named_schedules.rb +2 -4
  186. data/lib/metronome_sdk/resources/v1/customers/plans.rb +4 -14
  187. data/lib/metronome_sdk/resources/v1/customers.rb +13 -19
  188. data/lib/metronome_sdk/resources/v1/dashboards.rb +1 -1
  189. data/lib/metronome_sdk/resources/v1/invoices.rb +2 -2
  190. data/lib/metronome_sdk/resources/v1/plans.rb +5 -5
  191. data/lib/metronome_sdk/resources/v1/pricing_units.rb +1 -1
  192. data/lib/metronome_sdk/resources/v1/usage.rb +3 -8
  193. data/lib/metronome_sdk/resources/v2/contracts.rb +32 -20
  194. data/lib/metronome_sdk/version.rb +1 -1
  195. data/lib/metronome_sdk.rb +12 -28
  196. data/rbi/metronome_sdk/client.rbi +5 -4
  197. data/rbi/metronome_sdk/errors.rbi +34 -15
  198. data/rbi/metronome_sdk/file_part.rbi +9 -6
  199. data/rbi/metronome_sdk/internal/cursor_page.rbi +2 -1
  200. data/rbi/metronome_sdk/internal/transport/base_client.rbi +165 -77
  201. data/rbi/metronome_sdk/internal/transport/pooled_net_requester.rbi +33 -13
  202. data/rbi/metronome_sdk/internal/type/array_of.rbi +40 -24
  203. data/rbi/metronome_sdk/internal/type/base_model.rbi +160 -70
  204. data/rbi/metronome_sdk/internal/type/base_page.rbi +13 -8
  205. data/rbi/metronome_sdk/internal/type/boolean.rbi +22 -14
  206. data/rbi/metronome_sdk/internal/type/converter.rbi +72 -28
  207. data/rbi/metronome_sdk/internal/type/enum.rbi +29 -13
  208. data/rbi/metronome_sdk/internal/type/file_input.rbi +13 -4
  209. data/rbi/metronome_sdk/internal/type/hash_of.rbi +40 -24
  210. data/rbi/metronome_sdk/internal/type/request_parameters.rbi +14 -4
  211. data/rbi/metronome_sdk/internal/type/union.rbi +58 -22
  212. data/rbi/metronome_sdk/internal/type/unknown.rbi +22 -6
  213. data/rbi/metronome_sdk/internal/util.rbi +272 -89
  214. data/rbi/metronome_sdk/internal.rbi +7 -0
  215. data/rbi/metronome_sdk/models/v1/alert_archive_params.rbi +22 -11
  216. data/rbi/metronome_sdk/models/v1/alert_archive_response.rbi +49 -6
  217. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +175 -81
  218. data/rbi/metronome_sdk/models/v1/alert_create_response.rbi +49 -6
  219. data/rbi/metronome_sdk/models/v1/audit_log_list_params.rbi +59 -26
  220. data/rbi/metronome_sdk/models/v1/audit_log_list_response.rbi +127 -45
  221. data/rbi/metronome_sdk/models/v1/billable_metric_archive_params.rbi +25 -6
  222. data/rbi/metronome_sdk/models/v1/billable_metric_archive_response.rbi +56 -6
  223. data/rbi/metronome_sdk/models/v1/billable_metric_create_params.rbi +253 -41
  224. data/rbi/metronome_sdk/models/v1/billable_metric_create_response.rbi +55 -6
  225. data/rbi/metronome_sdk/models/v1/billable_metric_list_params.rbi +23 -14
  226. data/rbi/metronome_sdk/models/v1/billable_metric_list_response.rbi +253 -41
  227. data/rbi/metronome_sdk/models/v1/billable_metric_retrieve_params.rbi +22 -6
  228. data/rbi/metronome_sdk/models/v1/billable_metric_retrieve_response.rbi +264 -50
  229. data/rbi/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbi +27 -18
  230. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +1808 -784
  231. data/rbi/metronome_sdk/models/v1/contract_amend_response.rbi +49 -6
  232. data/rbi/metronome_sdk/models/v1/contract_archive_params.rbi +23 -14
  233. data/rbi/metronome_sdk/models/v1/contract_archive_response.rbi +51 -6
  234. data/rbi/metronome_sdk/models/v1/contract_create_historical_invoices_params.rbi +178 -110
  235. data/rbi/metronome_sdk/models/v1/contract_create_historical_invoices_response.rbi +2611 -6
  236. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +4937 -2578
  237. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +49 -6
  238. data/rbi/metronome_sdk/models/v1/contract_list_balances_params.rbi +30 -21
  239. data/rbi/metronome_sdk/models/v1/contract_list_balances_response.rbi +3411 -15
  240. data/rbi/metronome_sdk/models/v1/contract_list_params.rbi +26 -17
  241. data/rbi/metronome_sdk/models/v1/contract_list_response.rbi +24250 -325
  242. data/rbi/metronome_sdk/models/v1/contract_retrieve_params.rbi +24 -15
  243. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rbi +143 -45
  244. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbi +804 -74
  245. data/rbi/metronome_sdk/models/v1/contract_retrieve_response.rbi +24250 -337
  246. data/rbi/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_params.rbi +58 -0
  247. data/rbi/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_response.rbi +212 -0
  248. data/rbi/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_params.rbi +66 -41
  249. data/rbi/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rbi +2611 -6
  250. data/rbi/metronome_sdk/models/v1/contract_set_usage_filter_params.rbi +22 -15
  251. data/rbi/metronome_sdk/models/v1/contract_update_end_date_params.rbi +24 -15
  252. data/rbi/metronome_sdk/models/v1/contract_update_end_date_response.rbi +56 -6
  253. data/rbi/metronome_sdk/models/v1/contracts/named_schedule_retrieve_params.rbi +23 -14
  254. data/rbi/metronome_sdk/models/v1/contracts/named_schedule_retrieve_response.rbi +54 -17
  255. data/rbi/metronome_sdk/models/v1/contracts/named_schedule_update_params.rbi +25 -16
  256. data/rbi/metronome_sdk/models/v1/contracts/product_archive_params.rbi +23 -6
  257. data/rbi/metronome_sdk/models/v1/contracts/product_archive_response.rbi +58 -6
  258. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +308 -46
  259. data/rbi/metronome_sdk/models/v1/contracts/product_create_response.rbi +58 -6
  260. data/rbi/metronome_sdk/models/v1/contracts/product_list_params.rbi +66 -28
  261. data/rbi/metronome_sdk/models/v1/contracts/product_list_response.rbi +1247 -90
  262. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_params.rbi +25 -6
  263. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_response.rbi +1278 -116
  264. data/rbi/metronome_sdk/models/v1/contracts/product_update_params.rbi +257 -33
  265. data/rbi/metronome_sdk/models/v1/contracts/product_update_response.rbi +58 -6
  266. data/rbi/metronome_sdk/models/v1/contracts/rate_card_archive_params.rbi +42 -0
  267. data/rbi/metronome_sdk/models/v1/contracts/rate_card_archive_response.rbi +75 -0
  268. data/rbi/metronome_sdk/models/v1/contracts/rate_card_create_params.rbi +109 -45
  269. data/rbi/metronome_sdk/models/v1/contracts/rate_card_create_response.rbi +58 -6
  270. data/rbi/metronome_sdk/models/v1/contracts/rate_card_list_params.rbi +23 -14
  271. data/rbi/metronome_sdk/models/v1/contracts/rate_card_list_response.rbi +182 -55
  272. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rbi +25 -6
  273. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rbi +138 -44
  274. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbi +509 -71
  275. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbi +213 -81
  276. data/rbi/metronome_sdk/models/v1/contracts/rate_card_update_params.rbi +70 -25
  277. data/rbi/metronome_sdk/models/v1/contracts/rate_card_update_response.rbi +58 -6
  278. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/named_schedule_retrieve_params.rbi +24 -15
  279. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/named_schedule_retrieve_response.rbi +54 -19
  280. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/named_schedule_update_params.rbi +26 -17
  281. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_params.rbi +22 -13
  282. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rbi +58 -6
  283. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_params.rbi +55 -24
  284. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rbi +58 -6
  285. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +323 -98
  286. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rbi +60 -6
  287. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +310 -78
  288. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +277 -81
  289. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rbi +144 -44
  290. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbi +482 -51
  291. data/rbi/metronome_sdk/models/v1/credit_grant_create_params.rbi +303 -80
  292. data/rbi/metronome_sdk/models/v1/credit_grant_create_response.rbi +53 -6
  293. data/rbi/metronome_sdk/models/v1/credit_grant_edit_params.rbi +24 -15
  294. data/rbi/metronome_sdk/models/v1/credit_grant_edit_response.rbi +51 -6
  295. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_params.rbi +25 -16
  296. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_response.rbi +383 -77
  297. data/rbi/metronome_sdk/models/v1/credit_grant_list_params.rbi +27 -18
  298. data/rbi/metronome_sdk/models/v1/credit_grant_list_response.rbi +436 -72
  299. data/rbi/metronome_sdk/models/v1/credit_grant_void_params.rbi +23 -14
  300. data/rbi/metronome_sdk/models/v1/credit_grant_void_response.rbi +51 -6
  301. data/rbi/metronome_sdk/models/v1/custom_field_add_key_params.rbi +122 -37
  302. data/rbi/metronome_sdk/models/v1/custom_field_delete_values_params.rbi +120 -37
  303. data/rbi/metronome_sdk/models/v1/custom_field_list_keys_params.rbi +140 -37
  304. data/rbi/metronome_sdk/models/v1/custom_field_list_keys_response.rbi +136 -43
  305. data/rbi/metronome_sdk/models/v1/custom_field_remove_key_params.rbi +126 -36
  306. data/rbi/metronome_sdk/models/v1/custom_field_set_values_params.rbi +127 -37
  307. data/rbi/metronome_sdk/models/v1/customer_archive_params.rbi +25 -6
  308. data/rbi/metronome_sdk/models/v1/customer_archive_response.rbi +51 -6
  309. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +247 -158
  310. data/rbi/metronome_sdk/models/v1/customer_create_response.rbi +96 -7
  311. data/rbi/metronome_sdk/models/v1/customer_list_billable_metrics_params.rbi +25 -16
  312. data/rbi/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbi +237 -44
  313. data/rbi/metronome_sdk/models/v1/customer_list_costs_params.rbi +25 -16
  314. data/rbi/metronome_sdk/models/v1/customer_list_costs_response.rbi +100 -49
  315. data/rbi/metronome_sdk/models/v1/customer_list_params.rbi +26 -17
  316. data/rbi/metronome_sdk/models/v1/customer_list_response.rbi +242 -0
  317. data/rbi/metronome_sdk/models/v1/customer_retrieve_params.rbi +22 -6
  318. data/rbi/metronome_sdk/models/v1/customer_retrieve_response.rbi +267 -7
  319. data/rbi/metronome_sdk/models/v1/customer_set_ingest_aliases_params.rbi +21 -13
  320. data/rbi/metronome_sdk/models/v1/customer_set_name_params.rbi +22 -6
  321. data/rbi/metronome_sdk/models/v1/customer_set_name_response.rbi +98 -7
  322. data/rbi/metronome_sdk/models/v1/customer_update_config_params.rbi +23 -14
  323. data/rbi/metronome_sdk/models/v1/customers/alert_list_params.rbi +69 -25
  324. data/rbi/metronome_sdk/models/v1/customers/alert_list_response.rbi +641 -9
  325. data/rbi/metronome_sdk/models/v1/customers/alert_reset_params.rbi +15 -5
  326. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +77 -5
  327. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_response.rbi +642 -8
  328. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +129 -79
  329. data/rbi/metronome_sdk/models/v1/customers/billing_config_delete_params.rbi +54 -29
  330. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rbi +54 -29
  331. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +111 -68
  332. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +429 -171
  333. data/rbi/metronome_sdk/models/v1/customers/commit_create_response.rbi +58 -6
  334. data/rbi/metronome_sdk/models/v1/customers/commit_list_params.rbi +30 -21
  335. data/rbi/metronome_sdk/models/v1/customers/commit_list_response.rbi +2183 -6
  336. data/rbi/metronome_sdk/models/v1/customers/commit_update_end_date_params.rbi +24 -15
  337. data/rbi/metronome_sdk/models/v1/customers/commit_update_end_date_response.rbi +58 -6
  338. data/rbi/metronome_sdk/models/v1/customers/credit_create_params.rbi +250 -66
  339. data/rbi/metronome_sdk/models/v1/customers/credit_create_response.rbi +58 -6
  340. data/rbi/metronome_sdk/models/v1/customers/credit_list_params.rbi +30 -21
  341. data/rbi/metronome_sdk/models/v1/customers/credit_list_response.rbi +1243 -6
  342. data/rbi/metronome_sdk/models/v1/customers/credit_update_end_date_params.rbi +23 -14
  343. data/rbi/metronome_sdk/models/v1/customers/credit_update_end_date_response.rbi +58 -6
  344. data/rbi/metronome_sdk/models/v1/customers/invoice_add_charge_params.rbi +27 -18
  345. data/rbi/metronome_sdk/models/v1/customers/invoice_add_charge_response.rbi +12 -2
  346. data/rbi/metronome_sdk/models/v1/customers/invoice_list_breakdowns_params.rbi +101 -43
  347. data/rbi/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rbi +2579 -5
  348. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +70 -28
  349. data/rbi/metronome_sdk/models/v1/customers/invoice_list_response.rbi +2587 -0
  350. data/rbi/metronome_sdk/models/v1/customers/invoice_retrieve_params.rbi +23 -14
  351. data/rbi/metronome_sdk/models/v1/customers/invoice_retrieve_response.rbi +2628 -7
  352. data/rbi/metronome_sdk/models/v1/customers/named_schedule_retrieve_params.rbi +23 -14
  353. data/rbi/metronome_sdk/models/v1/customers/named_schedule_retrieve_response.rbi +54 -17
  354. data/rbi/metronome_sdk/models/v1/customers/named_schedule_update_params.rbi +25 -16
  355. data/rbi/metronome_sdk/models/v1/customers/plan_add_params.rbi +205 -119
  356. data/rbi/metronome_sdk/models/v1/customers/plan_add_response.rbi +55 -6
  357. data/rbi/metronome_sdk/models/v1/customers/plan_end_params.rbi +25 -16
  358. data/rbi/metronome_sdk/models/v1/customers/plan_end_response.rbi +12 -2
  359. data/rbi/metronome_sdk/models/v1/customers/plan_list_params.rbi +23 -14
  360. data/rbi/metronome_sdk/models/v1/customers/plan_list_price_adjustments_params.rbi +24 -15
  361. data/rbi/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbi +98 -48
  362. data/rbi/metronome_sdk/models/v1/customers/plan_list_response.rbi +133 -50
  363. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +215 -122
  364. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_response.rbi +44 -13
  365. data/rbi/metronome_sdk/models/v1/invoice_regenerate_params.rbi +20 -9
  366. data/rbi/metronome_sdk/models/v1/invoice_regenerate_response.rbi +42 -13
  367. data/rbi/metronome_sdk/models/v1/invoice_void_params.rbi +20 -9
  368. data/rbi/metronome_sdk/models/v1/invoice_void_response.rbi +41 -11
  369. data/rbi/metronome_sdk/models/v1/plan_get_details_params.rbi +19 -6
  370. data/rbi/metronome_sdk/models/v1/plan_get_details_response.rbi +572 -7
  371. data/rbi/metronome_sdk/models/v1/plan_list_charges_params.rbi +23 -14
  372. data/rbi/metronome_sdk/models/v1/plan_list_charges_response.rbi +200 -76
  373. data/rbi/metronome_sdk/models/v1/plan_list_customers_params.rbi +71 -25
  374. data/rbi/metronome_sdk/models/v1/plan_list_customers_response.rbi +300 -32
  375. data/rbi/metronome_sdk/models/v1/plan_list_params.rbi +22 -6
  376. data/rbi/metronome_sdk/models/v1/plan_list_response.rbi +18 -4
  377. data/rbi/metronome_sdk/models/v1/pricing_unit_list_params.rbi +22 -6
  378. data/rbi/metronome_sdk/models/v1/pricing_unit_list_response.rbi +23 -5
  379. data/rbi/metronome_sdk/models/v1/service_list_params.rbi +18 -5
  380. data/rbi/metronome_sdk/models/v1/service_list_response.rbi +73 -24
  381. data/rbi/metronome_sdk/models/v1/usage_ingest_params.rbi +51 -31
  382. data/rbi/metronome_sdk/models/v1/usage_list_params.rbi +126 -45
  383. data/rbi/metronome_sdk/models/v1/usage_list_response.rbi +51 -24
  384. data/rbi/metronome_sdk/models/v1/usage_list_with_groups_params.rbi +96 -37
  385. data/rbi/metronome_sdk/models/v1/usage_list_with_groups_response.rbi +28 -14
  386. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +425 -169
  387. data/rbi/metronome_sdk/models/v2/contract_edit_commit_response.rbi +53 -6
  388. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +274 -89
  389. data/rbi/metronome_sdk/models/v2/contract_edit_credit_response.rbi +53 -6
  390. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +6953 -2830
  391. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +49 -6
  392. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_params.rbi +14 -5
  393. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +8529 -3060
  394. data/rbi/metronome_sdk/models/v2/contract_list_params.rbi +26 -17
  395. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +7013 -3240
  396. data/rbi/metronome_sdk/models/v2/contract_retrieve_params.rbi +25 -16
  397. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +7017 -3332
  398. data/rbi/metronome_sdk/models.rbi +7 -0
  399. data/rbi/metronome_sdk/request_options.rbi +18 -7
  400. data/rbi/metronome_sdk/resources/v1/alerts.rbi +25 -13
  401. data/rbi/metronome_sdk/resources/v1/audit_logs.rbi +11 -5
  402. data/rbi/metronome_sdk/resources/v1/billable_metrics.rbi +35 -17
  403. data/rbi/metronome_sdk/resources/v1/contracts/named_schedules.rbi +13 -8
  404. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +61 -23
  405. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/named_schedules.rbi +16 -9
  406. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rbi +21 -14
  407. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +45 -31
  408. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards.rbi +77 -33
  409. data/rbi/metronome_sdk/resources/v1/contracts.rbi +170 -105
  410. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +36 -26
  411. data/rbi/metronome_sdk/resources/v1/custom_fields.rbi +34 -26
  412. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +34 -11
  413. data/rbi/metronome_sdk/resources/v1/customers/billing_config.rbi +28 -17
  414. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +35 -22
  415. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +31 -17
  416. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +36 -18
  417. data/rbi/metronome_sdk/resources/v1/customers/named_schedules.rbi +13 -8
  418. data/rbi/metronome_sdk/resources/v1/customers/plans.rbi +38 -30
  419. data/rbi/metronome_sdk/resources/v1/customers.rbi +69 -39
  420. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +21 -24
  421. data/rbi/metronome_sdk/resources/v1/invoices.rbi +16 -7
  422. data/rbi/metronome_sdk/resources/v1/plans.rbi +37 -14
  423. data/rbi/metronome_sdk/resources/v1/pricing_units.rbi +14 -4
  424. data/rbi/metronome_sdk/resources/v1/services.rbi +9 -3
  425. data/rbi/metronome_sdk/resources/v1/usage.rbi +30 -17
  426. data/rbi/metronome_sdk/resources/v1.rbi +2 -1
  427. data/rbi/metronome_sdk/resources/v2/contracts.rbi +167 -69
  428. data/rbi/metronome_sdk/resources/v2.rbi +2 -1
  429. data/sig/metronome_sdk/internal/transport/base_client.rbs +16 -1
  430. data/sig/metronome_sdk/internal/transport/pooled_net_requester.rbs +4 -0
  431. data/sig/metronome_sdk/internal/type/array_of.rbs +3 -0
  432. data/sig/metronome_sdk/internal/type/base_model.rbs +13 -5
  433. data/sig/metronome_sdk/internal/type/base_page.rbs +1 -1
  434. data/sig/metronome_sdk/internal/type/boolean.rbs +3 -0
  435. data/sig/metronome_sdk/internal/type/converter.rbs +2 -0
  436. data/sig/metronome_sdk/internal/type/enum.rbs +3 -0
  437. data/sig/metronome_sdk/internal/type/file_input.rbs +2 -0
  438. data/sig/metronome_sdk/internal/type/hash_of.rbs +3 -0
  439. data/sig/metronome_sdk/internal/type/request_parameters.rbs +5 -1
  440. data/sig/metronome_sdk/internal/type/union.rbs +3 -0
  441. data/sig/metronome_sdk/internal/type/unknown.rbs +3 -0
  442. data/sig/metronome_sdk/internal/util.rbs +27 -0
  443. data/sig/metronome_sdk/internal.rbs +4 -0
  444. data/sig/metronome_sdk/models/v1/alert_archive_params.rbs +5 -1
  445. data/sig/metronome_sdk/models/v1/alert_archive_response.rbs +19 -4
  446. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +32 -13
  447. data/sig/metronome_sdk/models/v1/alert_create_response.rbs +19 -4
  448. data/sig/metronome_sdk/models/v1/audit_log_list_params.rbs +10 -1
  449. data/sig/metronome_sdk/models/v1/audit_log_list_response.rbs +13 -3
  450. data/sig/metronome_sdk/models/v1/billable_metric_archive_params.rbs +12 -4
  451. data/sig/metronome_sdk/models/v1/billable_metric_archive_response.rbs +19 -4
  452. data/sig/metronome_sdk/models/v1/billable_metric_create_params.rbs +82 -11
  453. data/sig/metronome_sdk/models/v1/billable_metric_create_response.rbs +19 -4
  454. data/sig/metronome_sdk/models/v1/billable_metric_list_params.rbs +6 -1
  455. data/sig/metronome_sdk/models/v1/billable_metric_list_response.rbs +83 -11
  456. data/sig/metronome_sdk/models/v1/billable_metric_retrieve_params.rbs +4 -1
  457. data/sig/metronome_sdk/models/v1/billable_metric_retrieve_response.rbs +86 -12
  458. data/sig/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbs +10 -1
  459. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +481 -160
  460. data/sig/metronome_sdk/models/v1/contract_amend_response.rbs +19 -4
  461. data/sig/metronome_sdk/models/v1/contract_archive_params.rbs +6 -1
  462. data/sig/metronome_sdk/models/v1/contract_archive_response.rbs +19 -4
  463. data/sig/metronome_sdk/models/v1/contract_create_historical_invoices_params.rbs +42 -15
  464. data/sig/metronome_sdk/models/v1/contract_create_historical_invoices_response.rbs +1291 -4
  465. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +1196 -401
  466. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +19 -4
  467. data/sig/metronome_sdk/models/v1/contract_list_balances_params.rbs +13 -1
  468. data/sig/metronome_sdk/models/v1/contract_list_balances_response.rbs +1647 -3
  469. data/sig/metronome_sdk/models/v1/contract_list_params.rbs +9 -1
  470. data/sig/metronome_sdk/models/v1/contract_list_response.rbs +11114 -146
  471. data/sig/metronome_sdk/models/v1/contract_retrieve_params.rbs +7 -1
  472. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rbs +42 -7
  473. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbs +312 -16
  474. data/sig/metronome_sdk/models/v1/contract_retrieve_response.rbs +11114 -146
  475. data/sig/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_params.rbs +34 -0
  476. data/sig/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_response.rbs +101 -0
  477. data/sig/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_params.rbs +22 -5
  478. data/sig/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rbs +1291 -4
  479. data/sig/metronome_sdk/models/v1/contract_set_usage_filter_params.rbs +8 -1
  480. data/sig/metronome_sdk/models/v1/contract_update_end_date_params.rbs +7 -1
  481. data/sig/metronome_sdk/models/v1/contract_update_end_date_response.rbs +18 -4
  482. data/sig/metronome_sdk/models/v1/contracts/named_schedule_retrieve_params.rbs +6 -1
  483. data/sig/metronome_sdk/models/v1/contracts/named_schedule_retrieve_response.rbs +8 -2
  484. data/sig/metronome_sdk/models/v1/contracts/named_schedule_update_params.rbs +8 -1
  485. data/sig/metronome_sdk/models/v1/contracts/product_archive_params.rbs +4 -1
  486. data/sig/metronome_sdk/models/v1/contracts/product_archive_response.rbs +21 -4
  487. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +97 -7
  488. data/sig/metronome_sdk/models/v1/contracts/product_create_response.rbs +21 -4
  489. data/sig/metronome_sdk/models/v1/contracts/product_list_params.rbs +6 -1
  490. data/sig/metronome_sdk/models/v1/contracts/product_list_response.rbs +489 -14
  491. data/sig/metronome_sdk/models/v1/contracts/product_retrieve_params.rbs +12 -4
  492. data/sig/metronome_sdk/models/v1/contracts/product_retrieve_response.rbs +492 -15
  493. data/sig/metronome_sdk/models/v1/contracts/product_update_params.rbs +98 -7
  494. data/sig/metronome_sdk/models/v1/contracts/product_update_response.rbs +21 -4
  495. data/sig/metronome_sdk/models/v1/contracts/rate_card_archive_params.rbs +27 -0
  496. data/sig/metronome_sdk/models/v1/contracts/rate_card_archive_response.rbs +34 -0
  497. data/sig/metronome_sdk/models/v1/contracts/rate_card_create_params.rbs +28 -13
  498. data/sig/metronome_sdk/models/v1/contracts/rate_card_create_response.rbs +21 -4
  499. data/sig/metronome_sdk/models/v1/contracts/rate_card_list_params.rbs +6 -1
  500. data/sig/metronome_sdk/models/v1/contracts/rate_card_list_response.rbs +52 -11
  501. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rbs +12 -4
  502. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rbs +41 -7
  503. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbs +185 -11
  504. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbs +55 -12
  505. data/sig/metronome_sdk/models/v1/contracts/rate_card_update_params.rbs +17 -7
  506. data/sig/metronome_sdk/models/v1/contracts/rate_card_update_response.rbs +21 -4
  507. data/sig/metronome_sdk/models/v1/contracts/rate_cards/named_schedule_retrieve_params.rbs +7 -1
  508. data/sig/metronome_sdk/models/v1/contracts/rate_cards/named_schedule_retrieve_response.rbs +8 -2
  509. data/sig/metronome_sdk/models/v1/contracts/rate_cards/named_schedule_update_params.rbs +9 -1
  510. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_params.rbs +5 -1
  511. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rbs +21 -4
  512. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_params.rbs +9 -5
  513. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rbs +20 -4
  514. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +94 -21
  515. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rbs +21 -4
  516. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +88 -17
  517. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +75 -18
  518. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rbs +41 -7
  519. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbs +181 -10
  520. data/sig/metronome_sdk/models/v1/credit_grant_create_params.rbs +102 -18
  521. data/sig/metronome_sdk/models/v1/credit_grant_create_response.rbs +19 -4
  522. data/sig/metronome_sdk/models/v1/credit_grant_edit_params.rbs +7 -1
  523. data/sig/metronome_sdk/models/v1/credit_grant_edit_response.rbs +19 -4
  524. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_params.rbs +8 -1
  525. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_response.rbs +140 -14
  526. data/sig/metronome_sdk/models/v1/credit_grant_list_params.rbs +10 -1
  527. data/sig/metronome_sdk/models/v1/credit_grant_list_response.rbs +169 -17
  528. data/sig/metronome_sdk/models/v1/credit_grant_void_params.rbs +6 -1
  529. data/sig/metronome_sdk/models/v1/credit_grant_void_response.rbs +19 -4
  530. data/sig/metronome_sdk/models/v1/custom_field_add_key_params.rbs +6 -1
  531. data/sig/metronome_sdk/models/v1/custom_field_delete_values_params.rbs +6 -1
  532. data/sig/metronome_sdk/models/v1/custom_field_list_keys_params.rbs +5 -1
  533. data/sig/metronome_sdk/models/v1/custom_field_list_keys_response.rbs +9 -2
  534. data/sig/metronome_sdk/models/v1/custom_field_remove_key_params.rbs +5 -1
  535. data/sig/metronome_sdk/models/v1/custom_field_set_values_params.rbs +6 -1
  536. data/sig/metronome_sdk/models/v1/customer_archive_params.rbs +12 -4
  537. data/sig/metronome_sdk/models/v1/customer_archive_response.rbs +19 -4
  538. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +33 -13
  539. data/sig/metronome_sdk/models/v1/customer_create_response.rbs +47 -4
  540. data/sig/metronome_sdk/models/v1/customer_list_billable_metrics_params.rbs +8 -1
  541. data/sig/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbs +87 -11
  542. data/sig/metronome_sdk/models/v1/customer_list_costs_params.rbs +8 -1
  543. data/sig/metronome_sdk/models/v1/customer_list_costs_response.rbs +16 -3
  544. data/sig/metronome_sdk/models/v1/customer_list_params.rbs +9 -1
  545. data/sig/metronome_sdk/models/v1/{customer_detail.rbs → customer_list_response.rbs} +30 -17
  546. data/sig/metronome_sdk/models/v1/customer_retrieve_params.rbs +4 -1
  547. data/sig/metronome_sdk/models/v1/customer_retrieve_response.rbs +112 -4
  548. data/sig/metronome_sdk/models/v1/customer_set_ingest_aliases_params.rbs +5 -1
  549. data/sig/metronome_sdk/models/v1/customer_set_name_params.rbs +5 -1
  550. data/sig/metronome_sdk/models/v1/customer_set_name_response.rbs +47 -4
  551. data/sig/metronome_sdk/models/v1/customer_update_config_params.rbs +6 -1
  552. data/sig/metronome_sdk/models/v1/customers/alert_list_params.rbs +6 -1
  553. data/sig/metronome_sdk/models/v1/customers/alert_list_response.rbs +246 -4
  554. data/sig/metronome_sdk/models/v1/customers/alert_reset_params.rbs +5 -1
  555. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +29 -2
  556. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_response.rbs +247 -4
  557. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +9 -1
  558. data/sig/metronome_sdk/models/v1/customers/billing_config_delete_params.rbs +5 -1
  559. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rbs +5 -1
  560. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +14 -2
  561. data/sig/metronome_sdk/models/v1/customers/commit_create_params.rbs +123 -27
  562. data/sig/metronome_sdk/models/v1/customers/commit_create_response.rbs +21 -4
  563. data/sig/metronome_sdk/models/v1/customers/commit_list_params.rbs +13 -1
  564. data/sig/metronome_sdk/models/v1/customers/commit_list_response.rbs +1060 -4
  565. data/sig/metronome_sdk/models/v1/customers/commit_update_end_date_params.rbs +7 -1
  566. data/sig/metronome_sdk/models/v1/customers/commit_update_end_date_response.rbs +20 -4
  567. data/sig/metronome_sdk/models/v1/customers/credit_create_params.rbs +85 -9
  568. data/sig/metronome_sdk/models/v1/customers/credit_create_response.rbs +21 -4
  569. data/sig/metronome_sdk/models/v1/customers/credit_list_params.rbs +13 -1
  570. data/sig/metronome_sdk/models/v1/customers/credit_list_response.rbs +599 -4
  571. data/sig/metronome_sdk/models/v1/customers/credit_update_end_date_params.rbs +6 -1
  572. data/sig/metronome_sdk/models/v1/customers/credit_update_end_date_response.rbs +20 -4
  573. data/sig/metronome_sdk/models/v1/customers/invoice_add_charge_params.rbs +10 -1
  574. data/sig/metronome_sdk/models/v1/customers/invoice_add_charge_response.rbs +1 -1
  575. data/sig/metronome_sdk/models/v1/customers/invoice_list_breakdowns_params.rbs +13 -1
  576. data/sig/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rbs +1281 -8
  577. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +12 -1
  578. data/sig/metronome_sdk/models/v1/customers/{invoice.rbs → invoice_list_response.rbs} +432 -137
  579. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_params.rbs +6 -1
  580. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_response.rbs +1292 -4
  581. data/sig/metronome_sdk/models/v1/customers/named_schedule_retrieve_params.rbs +6 -1
  582. data/sig/metronome_sdk/models/v1/customers/named_schedule_retrieve_response.rbs +8 -2
  583. data/sig/metronome_sdk/models/v1/customers/named_schedule_update_params.rbs +8 -1
  584. data/sig/metronome_sdk/models/v1/customers/plan_add_params.rbs +49 -25
  585. data/sig/metronome_sdk/models/v1/customers/plan_add_response.rbs +19 -4
  586. data/sig/metronome_sdk/models/v1/customers/plan_end_params.rbs +8 -1
  587. data/sig/metronome_sdk/models/v1/customers/plan_end_response.rbs +1 -1
  588. data/sig/metronome_sdk/models/v1/customers/plan_list_params.rbs +6 -1
  589. data/sig/metronome_sdk/models/v1/customers/plan_list_price_adjustments_params.rbs +7 -1
  590. data/sig/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbs +12 -2
  591. data/sig/metronome_sdk/models/v1/customers/plan_list_response.rbs +35 -6
  592. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +33 -19
  593. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_response.rbs +4 -2
  594. data/sig/metronome_sdk/models/v1/invoice_regenerate_params.rbs +4 -1
  595. data/sig/metronome_sdk/models/v1/invoice_regenerate_response.rbs +4 -2
  596. data/sig/metronome_sdk/models/v1/invoice_void_params.rbs +4 -1
  597. data/sig/metronome_sdk/models/v1/invoice_void_response.rbs +4 -2
  598. data/sig/metronome_sdk/models/v1/plan_get_details_params.rbs +4 -1
  599. data/sig/metronome_sdk/models/v1/plan_get_details_response.rbs +266 -4
  600. data/sig/metronome_sdk/models/v1/plan_list_charges_params.rbs +6 -1
  601. data/sig/metronome_sdk/models/v1/plan_list_charges_response.rbs +40 -6
  602. data/sig/metronome_sdk/models/v1/plan_list_customers_params.rbs +7 -1
  603. data/sig/metronome_sdk/models/v1/plan_list_customers_response.rbs +119 -5
  604. data/sig/metronome_sdk/models/v1/plan_list_params.rbs +5 -1
  605. data/sig/metronome_sdk/models/v1/plan_list_response.rbs +6 -1
  606. data/sig/metronome_sdk/models/v1/pricing_unit_list_params.rbs +5 -1
  607. data/sig/metronome_sdk/models/v1/pricing_unit_list_response.rbs +1 -1
  608. data/sig/metronome_sdk/models/v1/service_list_params.rbs +1 -1
  609. data/sig/metronome_sdk/models/v1/service_list_response.rbs +8 -2
  610. data/sig/metronome_sdk/models/v1/usage_ingest_params.rbs +16 -7
  611. data/sig/metronome_sdk/models/v1/usage_list_params.rbs +24 -13
  612. data/sig/metronome_sdk/models/v1/usage_list_response.rbs +13 -2
  613. data/sig/metronome_sdk/models/v1/usage_list_with_groups_params.rbs +18 -7
  614. data/sig/metronome_sdk/models/v1/usage_list_with_groups_response.rbs +7 -1
  615. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +141 -50
  616. data/sig/metronome_sdk/models/v2/contract_edit_commit_response.rbs +19 -4
  617. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +100 -26
  618. data/sig/metronome_sdk/models/v2/contract_edit_credit_response.rbs +19 -4
  619. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +1888 -430
  620. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +19 -4
  621. data/sig/metronome_sdk/models/v2/contract_get_edit_history_params.rbs +5 -1
  622. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +2826 -521
  623. data/sig/metronome_sdk/models/v2/contract_list_params.rbs +9 -1
  624. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +1849 -334
  625. data/sig/metronome_sdk/models/v2/contract_retrieve_params.rbs +8 -1
  626. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +1849 -334
  627. data/sig/metronome_sdk/models.rbs +5 -0
  628. data/sig/metronome_sdk/request_options.rbs +1 -1
  629. data/sig/metronome_sdk/resources/v1/alerts.rbs +2 -2
  630. data/sig/metronome_sdk/resources/v1/billable_metrics.rbs +2 -2
  631. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +4 -4
  632. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rbs +1 -1
  633. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +5 -4
  634. data/sig/metronome_sdk/resources/v1/contracts/rate_cards.rbs +9 -4
  635. data/sig/metronome_sdk/resources/v1/contracts.rbs +33 -25
  636. data/sig/metronome_sdk/resources/v1/credit_grants.rbs +3 -3
  637. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  638. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +3 -2
  639. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +2 -1
  640. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -1
  641. data/sig/metronome_sdk/resources/v1/customers/plans.rbs +3 -3
  642. data/sig/metronome_sdk/resources/v1/customers.rbs +3 -3
  643. data/sig/metronome_sdk/resources/v1/dashboards.rbs +3 -3
  644. data/sig/metronome_sdk/resources/v1/usage.rbs +3 -3
  645. data/sig/metronome_sdk/resources/v2/contracts.rbs +31 -21
  646. metadata +25 -85
  647. data/lib/metronome_sdk/models/base_usage_filter.rb +0 -27
  648. data/lib/metronome_sdk/models/commit.rb +0 -848
  649. data/lib/metronome_sdk/models/contract_without_amendments.rb +0 -1431
  650. data/lib/metronome_sdk/models/credit.rb +0 -476
  651. data/lib/metronome_sdk/models/credit_type_data.rb +0 -21
  652. data/lib/metronome_sdk/models/discount.rb +0 -68
  653. data/lib/metronome_sdk/models/event_type_filter.rb +0 -35
  654. data/lib/metronome_sdk/models/id.rb +0 -15
  655. data/lib/metronome_sdk/models/override.rb +0 -368
  656. data/lib/metronome_sdk/models/pro_service.rb +0 -75
  657. data/lib/metronome_sdk/models/property_filter.rb +0 -55
  658. data/lib/metronome_sdk/models/rate.rb +0 -106
  659. data/lib/metronome_sdk/models/schedule_duration.rb +0 -50
  660. data/lib/metronome_sdk/models/schedule_point_in_time.rb +0 -62
  661. data/lib/metronome_sdk/models/scheduled_charge.rb +0 -76
  662. data/lib/metronome_sdk/models/tier.rb +0 -21
  663. data/lib/metronome_sdk/models/v1/contracts/product_list_item_state.rb +0 -152
  664. data/lib/metronome_sdk/models/v1/contracts/quantity_conversion.rb +0 -57
  665. data/lib/metronome_sdk/models/v1/contracts/quantity_rounding.rb +0 -43
  666. data/lib/metronome_sdk/models/v1/credit_ledger_entry.rb +0 -71
  667. data/lib/metronome_sdk/models/v1/customer.rb +0 -55
  668. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +0 -269
  669. data/lib/metronome_sdk/models/v1/plan_detail.rb +0 -200
  670. data/lib/metronome_sdk/models/v1/rollover_amount_max_amount.rb +0 -38
  671. data/lib/metronome_sdk/models/v1/rollover_amount_max_percentage.rb +0 -38
  672. data/rbi/metronome_sdk/models/base_usage_filter.rbi +0 -27
  673. data/rbi/metronome_sdk/models/commit.rbi +0 -1283
  674. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +0 -2407
  675. data/rbi/metronome_sdk/models/credit.rbi +0 -697
  676. data/rbi/metronome_sdk/models/credit_type_data.rbi +0 -19
  677. data/rbi/metronome_sdk/models/discount.rbi +0 -90
  678. data/rbi/metronome_sdk/models/event_type_filter.rbi +0 -40
  679. data/rbi/metronome_sdk/models/id.rbi +0 -16
  680. data/rbi/metronome_sdk/models/override.rbi +0 -503
  681. data/rbi/metronome_sdk/models/pro_service.rbi +0 -92
  682. data/rbi/metronome_sdk/models/property_filter.rbi +0 -75
  683. data/rbi/metronome_sdk/models/rate.rbi +0 -143
  684. data/rbi/metronome_sdk/models/schedule_duration.rbi +0 -58
  685. data/rbi/metronome_sdk/models/schedule_point_in_time.rbi +0 -92
  686. data/rbi/metronome_sdk/models/scheduled_charge.rbi +0 -104
  687. data/rbi/metronome_sdk/models/tier.rbi +0 -22
  688. data/rbi/metronome_sdk/models/v1/contracts/product_list_item_state.rbi +0 -214
  689. data/rbi/metronome_sdk/models/v1/contracts/quantity_conversion.rbi +0 -80
  690. data/rbi/metronome_sdk/models/v1/contracts/quantity_rounding.rbi +0 -62
  691. data/rbi/metronome_sdk/models/v1/credit_ledger_entry.rbi +0 -81
  692. data/rbi/metronome_sdk/models/v1/customer.rbi +0 -68
  693. data/rbi/metronome_sdk/models/v1/customer_detail.rbi +0 -175
  694. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +0 -445
  695. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +0 -1756
  696. data/rbi/metronome_sdk/models/v1/plan_detail.rbi +0 -303
  697. data/rbi/metronome_sdk/models/v1/rollover_amount_max_amount.rbi +0 -43
  698. data/rbi/metronome_sdk/models/v1/rollover_amount_max_percentage.rbi +0 -48
  699. data/sig/metronome_sdk/models/base_usage_filter.rbs +0 -24
  700. data/sig/metronome_sdk/models/commit.rbs +0 -750
  701. data/sig/metronome_sdk/models/contract_without_amendments.rbs +0 -1122
  702. data/sig/metronome_sdk/models/credit.rbs +0 -415
  703. data/sig/metronome_sdk/models/credit_type_data.rbs +0 -15
  704. data/sig/metronome_sdk/models/discount.rbs +0 -56
  705. data/sig/metronome_sdk/models/event_type_filter.rbs +0 -23
  706. data/sig/metronome_sdk/models/id.rbs +0 -13
  707. data/sig/metronome_sdk/models/override.rbs +0 -343
  708. data/sig/metronome_sdk/models/pro_service.rbs +0 -52
  709. data/sig/metronome_sdk/models/property_filter.rbs +0 -36
  710. data/sig/metronome_sdk/models/rate.rbs +0 -86
  711. data/sig/metronome_sdk/models/schedule_duration.rbs +0 -48
  712. data/sig/metronome_sdk/models/schedule_point_in_time.rbs +0 -65
  713. data/sig/metronome_sdk/models/scheduled_charge.rbs +0 -62
  714. data/sig/metronome_sdk/models/tier.rbs +0 -17
  715. data/sig/metronome_sdk/models/v1/contracts/product_list_item_state.rbs +0 -104
  716. data/sig/metronome_sdk/models/v1/contracts/quantity_conversion.rbs +0 -43
  717. data/sig/metronome_sdk/models/v1/contracts/quantity_rounding.rbs +0 -38
  718. data/sig/metronome_sdk/models/v1/credit_ledger_entry.rbs +0 -44
  719. data/sig/metronome_sdk/models/v1/customer.rbs +0 -38
  720. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +0 -213
  721. data/sig/metronome_sdk/models/v1/plan_detail.rbs +0 -173
  722. data/sig/metronome_sdk/models/v1/rollover_amount_max_amount.rbs +0 -34
  723. data/sig/metronome_sdk/models/v1/rollover_amount_max_percentage.rbs +0 -34
@@ -24,116 +24,216 @@ module MetronomeSDK
24
24
  #
25
25
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit>, nil]
26
26
  optional :add_commits,
27
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::AddCommit] }
27
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCommit] }
28
28
 
29
29
  # @!attribute add_credits
30
30
  #
31
31
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCredit>, nil]
32
32
  optional :add_credits,
33
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::AddCredit] }
33
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCredit] }
34
34
 
35
35
  # @!attribute add_discounts
36
36
  #
37
37
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddDiscount>, nil]
38
38
  optional :add_discounts,
39
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::AddDiscount] }
39
+ -> {
40
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddDiscount]
41
+ }
40
42
 
41
43
  # @!attribute add_overrides
42
44
  #
43
45
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride>, nil]
44
46
  optional :add_overrides,
45
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::AddOverride] }
47
+ -> {
48
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddOverride]
49
+ }
50
+
51
+ # @!attribute add_prepaid_balance_threshold_configuration
52
+ #
53
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration, nil]
54
+ optional :add_prepaid_balance_threshold_configuration,
55
+ -> { MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration }
46
56
 
47
57
  # @!attribute add_professional_services
48
58
  # This field's availability is dependent on your client's configuration.
49
59
  #
50
60
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddProfessionalService>, nil]
51
61
  optional :add_professional_services,
52
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::AddProfessionalService] }
62
+ -> {
63
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddProfessionalService]
64
+ }
53
65
 
54
66
  # @!attribute add_recurring_commits
55
67
  #
56
68
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit>, nil]
57
69
  optional :add_recurring_commits,
58
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit] }
70
+ -> {
71
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCommit]
72
+ }
59
73
 
60
74
  # @!attribute add_recurring_credits
61
75
  #
62
76
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit>, nil]
63
77
  optional :add_recurring_credits,
64
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit] }
78
+ -> {
79
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCredit]
80
+ }
65
81
 
66
82
  # @!attribute add_reseller_royalties
67
83
  #
68
84
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddResellerRoyalty>, nil]
69
85
  optional :add_reseller_royalties,
70
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::AddResellerRoyalty] }
86
+ -> {
87
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty]
88
+ }
71
89
 
72
90
  # @!attribute add_scheduled_charges
73
91
  #
74
92
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge>, nil]
75
93
  optional :add_scheduled_charges,
76
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge] }
94
+ -> {
95
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddScheduledCharge]
96
+ }
77
97
 
78
98
  # @!attribute add_spend_threshold_configuration
79
99
  #
80
100
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration, nil]
81
101
  optional :add_spend_threshold_configuration,
82
- -> { MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration }
102
+ -> { MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration }
103
+
104
+ # @!attribute add_subscriptions
105
+ # (beta) Optional list of
106
+ # [subscriptions](https://docs.metronome.com/manage-product-access/create-subscription/)
107
+ # to add to the contract.
108
+ #
109
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddSubscription>, nil]
110
+ optional :add_subscriptions,
111
+ -> {
112
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddSubscription]
113
+ }
114
+
115
+ # @!attribute allow_contract_ending_before_finalized_invoice
116
+ # If true, allows setting the contract end date earlier than the end_timestamp of
117
+ # existing finalized invoices. Finalized invoices will be unchanged; if you want
118
+ # to incorporate the new end date, you can void and regenerate finalized usage
119
+ # invoices. Defaults to true.
120
+ #
121
+ # @return [Boolean, nil]
122
+ optional :allow_contract_ending_before_finalized_invoice, MetronomeSDK::Internal::Type::Boolean
83
123
 
84
124
  # @!attribute archive_commits
85
125
  # IDs of commits to archive
86
126
  #
87
127
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::ArchiveCommit>, nil]
88
128
  optional :archive_commits,
89
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::ArchiveCommit] }
129
+ -> {
130
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::ArchiveCommit]
131
+ }
90
132
 
91
133
  # @!attribute archive_credits
92
134
  # IDs of credits to archive
93
135
  #
94
136
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::ArchiveCredit>, nil]
95
137
  optional :archive_credits,
96
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::ArchiveCredit] }
138
+ -> {
139
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::ArchiveCredit]
140
+ }
97
141
 
98
142
  # @!attribute archive_scheduled_charges
99
143
  # IDs of scheduled charges to archive
100
144
  #
101
145
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::ArchiveScheduledCharge>, nil]
102
146
  optional :archive_scheduled_charges,
103
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::ArchiveScheduledCharge] }
147
+ -> {
148
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::ArchiveScheduledCharge]
149
+ }
104
150
 
105
151
  # @!attribute remove_overrides
106
152
  # IDs of overrides to remove
107
153
  #
108
154
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::RemoveOverride>, nil]
109
155
  optional :remove_overrides,
110
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::RemoveOverride] }
156
+ -> {
157
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::RemoveOverride]
158
+ }
111
159
 
112
160
  # @!attribute update_commits
113
161
  #
114
162
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit>, nil]
115
163
  optional :update_commits,
116
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit] }
164
+ -> {
165
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit]
166
+ }
167
+
168
+ # @!attribute update_contract_end_date
169
+ # RFC 3339 timestamp indicating when the contract will end (exclusive).
170
+ #
171
+ # @return [Time, nil]
172
+ optional :update_contract_end_date, Time, nil?: true
117
173
 
118
174
  # @!attribute update_credits
119
175
  #
120
176
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit>, nil]
121
177
  optional :update_credits,
122
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit] }
178
+ -> {
179
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit]
180
+ }
181
+
182
+ # @!attribute update_prepaid_balance_threshold_configuration
183
+ #
184
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration, nil]
185
+ optional :update_prepaid_balance_threshold_configuration,
186
+ -> { MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration }
187
+
188
+ # @!attribute update_recurring_commits
189
+ # Edits to these recurring commits will only affect commits whose access schedules
190
+ # has not started. Expired commits, and commits with an active access schedule
191
+ # will remain unchanged.
192
+ #
193
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit>, nil]
194
+ optional :update_recurring_commits,
195
+ -> {
196
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit]
197
+ }
198
+
199
+ # @!attribute update_recurring_credits
200
+ # Edits to these recurring credits will only affect credits whose access schedules
201
+ # has not started. Expired credits, and credits with an active access schedule
202
+ # will remain unchanged.
203
+ #
204
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit>, nil]
205
+ optional :update_recurring_credits,
206
+ -> {
207
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateRecurringCredit]
208
+ }
123
209
 
124
210
  # @!attribute update_scheduled_charges
125
211
  #
126
212
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge>, nil]
127
213
  optional :update_scheduled_charges,
128
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge] }
214
+ -> {
215
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge]
216
+ }
129
217
 
130
218
  # @!attribute update_spend_threshold_configuration
131
219
  #
132
220
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration, nil]
133
221
  optional :update_spend_threshold_configuration,
134
- -> { MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration }
222
+ -> { MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration }
135
223
 
136
- # @!method initialize(contract_id:, customer_id:, add_commits: nil, add_credits: nil, add_discounts: nil, add_overrides: nil, add_professional_services: nil, add_recurring_commits: nil, add_recurring_credits: nil, add_reseller_royalties: nil, add_scheduled_charges: nil, add_spend_threshold_configuration: nil, archive_commits: nil, archive_credits: nil, archive_scheduled_charges: nil, remove_overrides: nil, update_commits: nil, update_credits: nil, update_scheduled_charges: nil, update_spend_threshold_configuration: nil, request_options: {})
224
+ # @!attribute update_subscriptions
225
+ # (beta) Optional list of subscriptions to update.
226
+ #
227
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription>, nil]
228
+ optional :update_subscriptions,
229
+ -> {
230
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription]
231
+ }
232
+
233
+ # @!method initialize(contract_id:, customer_id:, add_commits: nil, add_credits: nil, add_discounts: nil, add_overrides: nil, add_prepaid_balance_threshold_configuration: nil, add_professional_services: nil, add_recurring_commits: nil, add_recurring_credits: nil, add_reseller_royalties: nil, add_scheduled_charges: nil, add_spend_threshold_configuration: nil, add_subscriptions: nil, allow_contract_ending_before_finalized_invoice: nil, archive_commits: nil, archive_credits: nil, archive_scheduled_charges: nil, remove_overrides: nil, update_commits: nil, update_contract_end_date: nil, update_credits: nil, update_prepaid_balance_threshold_configuration: nil, update_recurring_commits: nil, update_recurring_credits: nil, update_scheduled_charges: nil, update_spend_threshold_configuration: nil, update_subscriptions: nil, request_options: {})
234
+ # Some parameter documentations has been truncated, see
235
+ # {MetronomeSDK::Models::V2::ContractEditParams} for more details.
236
+ #
137
237
  # @param contract_id [String] ID of the contract being edited
138
238
  #
139
239
  # @param customer_id [String] ID of the customer whose contract is being edited
@@ -146,6 +246,8 @@ module MetronomeSDK
146
246
  #
147
247
  # @param add_overrides [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride>]
148
248
  #
249
+ # @param add_prepaid_balance_threshold_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration]
250
+ #
149
251
  # @param add_professional_services [Array<MetronomeSDK::Models::V2::ContractEditParams::AddProfessionalService>] This field's availability is dependent on your client's configuration.
150
252
  #
151
253
  # @param add_recurring_commits [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit>]
@@ -158,6 +260,10 @@ module MetronomeSDK
158
260
  #
159
261
  # @param add_spend_threshold_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration]
160
262
  #
263
+ # @param add_subscriptions [Array<MetronomeSDK::Models::V2::ContractEditParams::AddSubscription>] (beta) Optional list of [subscriptions](https://docs.metronome.com/manage-produc
264
+ #
265
+ # @param allow_contract_ending_before_finalized_invoice [Boolean] If true, allows setting the contract end date earlier than the end_timestamp of
266
+ #
161
267
  # @param archive_commits [Array<MetronomeSDK::Models::V2::ContractEditParams::ArchiveCommit>] IDs of commits to archive
162
268
  #
163
269
  # @param archive_credits [Array<MetronomeSDK::Models::V2::ContractEditParams::ArchiveCredit>] IDs of credits to archive
@@ -168,12 +274,22 @@ module MetronomeSDK
168
274
  #
169
275
  # @param update_commits [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit>]
170
276
  #
277
+ # @param update_contract_end_date [Time, nil] RFC 3339 timestamp indicating when the contract will end (exclusive).
278
+ #
171
279
  # @param update_credits [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit>]
172
280
  #
281
+ # @param update_prepaid_balance_threshold_configuration [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration]
282
+ #
283
+ # @param update_recurring_commits [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit>] Edits to these recurring commits will only affect commits whose access schedules
284
+ #
285
+ # @param update_recurring_credits [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit>] Edits to these recurring credits will only affect credits whose access schedules
286
+ #
173
287
  # @param update_scheduled_charges [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge>]
174
288
  #
175
289
  # @param update_spend_threshold_configuration [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration]
176
290
  #
291
+ # @param update_subscriptions [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription>] (beta) Optional list of subscriptions to update.
292
+ #
177
293
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
178
294
 
179
295
  class AddCommit < MetronomeSDK::Internal::Type::BaseModel
@@ -185,7 +301,7 @@ module MetronomeSDK
185
301
  # @!attribute type
186
302
  #
187
303
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::Type]
188
- required :type, enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddCommit::Type }
304
+ required :type, enum: -> { MetronomeSDK::V2::ContractEditParams::AddCommit::Type }
189
305
 
190
306
  # @!attribute access_schedule
191
307
  # Required: Schedule for distributing the commit to the customer. For "POSTPAID"
@@ -193,7 +309,7 @@ module MetronomeSDK
193
309
  # total.
194
310
  #
195
311
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::AccessSchedule, nil]
196
- optional :access_schedule, -> { MetronomeSDK::Models::V2::ContractEditParams::AddCommit::AccessSchedule }
312
+ optional :access_schedule, -> { MetronomeSDK::V2::ContractEditParams::AddCommit::AccessSchedule }
197
313
 
198
314
  # @!attribute amount
199
315
  # (DEPRECATED) Use access_schedule and invoice_schedule instead.
@@ -233,8 +349,7 @@ module MetronomeSDK
233
349
  # "complimentary" commit with no invoice.
234
350
  #
235
351
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule, nil]
236
- optional :invoice_schedule,
237
- -> { MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule }
352
+ optional :invoice_schedule, -> { MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule }
238
353
 
239
354
  # @!attribute name
240
355
  # displayed on invoices
@@ -253,7 +368,9 @@ module MetronomeSDK
253
368
  #
254
369
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig, nil]
255
370
  optional :payment_gate_config,
256
- -> { MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig }
371
+ -> {
372
+ MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig
373
+ }
257
374
 
258
375
  # @!attribute priority
259
376
  # If multiple commits are applicable, the one with the lower priority will apply
@@ -265,7 +382,7 @@ module MetronomeSDK
265
382
  # @!attribute rate_type
266
383
  #
267
384
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::RateType, nil]
268
- optional :rate_type, enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddCommit::RateType }
385
+ optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::AddCommit::RateType }
269
386
 
270
387
  # @!attribute rollover_fraction
271
388
  # Fraction of unused segments that will be rolled over. Must be between 0 and 1.
@@ -273,6 +390,18 @@ module MetronomeSDK
273
390
  # @return [Float, nil]
274
391
  optional :rollover_fraction, Float
275
392
 
393
+ # @!attribute specifiers
394
+ # List of filters that determine what kind of customer usage draws down a commit
395
+ # or credit. A customer's usage needs to meet the condition of at least one of the
396
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
397
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
398
+ #
399
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit::Specifier>, nil]
400
+ optional :specifiers,
401
+ -> {
402
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCommit::Specifier]
403
+ }
404
+
276
405
  # @!attribute temporary_id
277
406
  # A temporary ID for the commit that can be used to reference the commit for
278
407
  # commit specific overrides.
@@ -280,7 +409,7 @@ module MetronomeSDK
280
409
  # @return [String, nil]
281
410
  optional :temporary_id, String
282
411
 
283
- # @!method initialize(product_id:, type:, access_schedule: nil, amount: nil, applicable_product_ids: nil, applicable_product_tags: nil, custom_fields: nil, description: nil, invoice_schedule: nil, name: nil, netsuite_sales_order_id: nil, payment_gate_config: nil, priority: nil, rate_type: nil, rollover_fraction: nil, temporary_id: nil)
412
+ # @!method initialize(product_id:, type:, access_schedule: nil, amount: nil, applicable_product_ids: nil, applicable_product_tags: nil, custom_fields: nil, description: nil, invoice_schedule: nil, name: nil, netsuite_sales_order_id: nil, payment_gate_config: nil, priority: nil, rate_type: nil, rollover_fraction: nil, specifiers: nil, temporary_id: nil)
284
413
  # Some parameter documentations has been truncated, see
285
414
  # {MetronomeSDK::Models::V2::ContractEditParams::AddCommit} for more details.
286
415
  #
@@ -289,22 +418,18 @@ module MetronomeSDK
289
418
  # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::Type]
290
419
  #
291
420
  # @param access_schedule [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::AccessSchedule] Required: Schedule for distributing the commit to the customer. For "POSTPAID" c
292
- # ...
293
421
  #
294
422
  # @param amount [Float] (DEPRECATED) Use access_schedule and invoice_schedule instead.
295
423
  #
296
424
  # @param applicable_product_ids [Array<String>] Which products the commit applies to. If both applicable_product_ids and applica
297
- # ...
298
425
  #
299
426
  # @param applicable_product_tags [Array<String>] Which tags the commit applies to. If both applicable*product_ids and applicable*
300
- # ...
301
427
  #
302
428
  # @param custom_fields [Hash{Symbol=>String}]
303
429
  #
304
430
  # @param description [String] Used only in UI/API. It is not exposed to end customers.
305
431
  #
306
432
  # @param invoice_schedule [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule] Required for "POSTPAID" commits: the true up invoice will be generated at this t
307
- # ...
308
433
  #
309
434
  # @param name [String] displayed on invoices
310
435
  #
@@ -313,14 +438,14 @@ module MetronomeSDK
313
438
  # @param payment_gate_config [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig] optionally payment gate this commit
314
439
  #
315
440
  # @param priority [Float] If multiple commits are applicable, the one with the lower priority will apply f
316
- # ...
317
441
  #
318
442
  # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::RateType]
319
443
  #
320
444
  # @param rollover_fraction [Float] Fraction of unused segments that will be rolled over. Must be between 0 and 1.
321
445
  #
446
+ # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
447
+ #
322
448
  # @param temporary_id [String] A temporary ID for the commit that can be used to reference the commit for commi
323
- # ...
324
449
 
325
450
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit#type
326
451
  module Type
@@ -339,7 +464,9 @@ module MetronomeSDK
339
464
  #
340
465
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit::AccessSchedule::ScheduleItem>]
341
466
  required :schedule_items,
342
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::AddCommit::AccessSchedule::ScheduleItem] }
467
+ -> {
468
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCommit::AccessSchedule::ScheduleItem]
469
+ }
343
470
 
344
471
  # @!attribute credit_type_id
345
472
  #
@@ -396,14 +523,18 @@ module MetronomeSDK
396
523
  #
397
524
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule, nil]
398
525
  optional :recurring_schedule,
399
- -> { MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule }
526
+ -> {
527
+ MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule
528
+ }
400
529
 
401
530
  # @!attribute schedule_items
402
531
  # Either provide amount or provide both unit_price and quantity.
403
532
  #
404
533
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::ScheduleItem>, nil]
405
534
  optional :schedule_items,
406
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::ScheduleItem] }
535
+ -> {
536
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::ScheduleItem]
537
+ }
407
538
 
408
539
  # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
409
540
  # Some parameter documentations has been truncated, see
@@ -418,7 +549,6 @@ module MetronomeSDK
418
549
  # @param credit_type_id [String] Defaults to USD if not passed. Only USD is supported at this time.
419
550
  #
420
551
  # @param recurring_schedule [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
421
- # ...
422
552
  #
423
553
  # @param schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
424
554
 
@@ -428,7 +558,9 @@ module MetronomeSDK
428
558
  #
429
559
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::AmountDistribution]
430
560
  required :amount_distribution,
431
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::AmountDistribution }
561
+ enum: -> {
562
+ MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::AmountDistribution
563
+ }
432
564
 
433
565
  # @!attribute ending_before
434
566
  # RFC 3339 timestamp (exclusive).
@@ -440,7 +572,9 @@ module MetronomeSDK
440
572
  #
441
573
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::Frequency]
442
574
  required :frequency,
443
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::Frequency }
575
+ enum: -> {
576
+ MetronomeSDK::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule::Frequency
577
+ }
444
578
 
445
579
  # @!attribute starting_at
446
580
  # RFC 3339 timestamp (inclusive).
@@ -490,13 +624,10 @@ module MetronomeSDK
490
624
  # @param starting_at [Time] RFC 3339 timestamp (inclusive).
491
625
  #
492
626
  # @param amount [Float] Amount for the charge. Can be provided instead of unit_price and quantity. If am
493
- # ...
494
627
  #
495
628
  # @param quantity [Float] Quantity for the charge. Will be multiplied by unit_price to determine the amoun
496
- # ...
497
629
  #
498
630
  # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
499
- # ...
500
631
 
501
632
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddCommit::InvoiceSchedule::RecurringSchedule#amount_distribution
502
633
  module AmountDistribution
@@ -564,13 +695,10 @@ module MetronomeSDK
564
695
  # @param timestamp [Time] timestamp of the scheduled event
565
696
  #
566
697
  # @param amount [Float] Amount for the charge. Can be provided instead of unit_price and quantity. If am
567
- # ...
568
698
  #
569
699
  # @param quantity [Float] Quantity for the charge. Will be multiplied by unit_price to determine the amoun
570
- # ...
571
700
  #
572
701
  # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
573
- # ...
574
702
  end
575
703
  end
576
704
 
@@ -584,14 +712,16 @@ module MetronomeSDK
584
712
  #
585
713
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::PaymentGateType]
586
714
  required :payment_gate_type,
587
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::PaymentGateType }
715
+ enum: -> {
716
+ MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::PaymentGateType
717
+ }
588
718
 
589
719
  # @!attribute stripe_config
590
720
  # Only applicable if using Stripe as your payment gateway through Metronome.
591
721
  #
592
722
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig, nil]
593
723
  optional :stripe_config,
594
- -> { MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig }
724
+ -> { MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig }
595
725
 
596
726
  # @!attribute tax_type
597
727
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
@@ -600,7 +730,7 @@ module MetronomeSDK
600
730
  #
601
731
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::TaxType, nil]
602
732
  optional :tax_type,
603
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::TaxType }
733
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::TaxType }
604
734
 
605
735
  # @!method initialize(payment_gate_type:, stripe_config: nil, tax_type: nil)
606
736
  # Some parameter documentations has been truncated, see
@@ -610,12 +740,10 @@ module MetronomeSDK
610
740
  # optionally payment gate this commit
611
741
  #
612
742
  # @param payment_gate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
613
- # ...
614
743
  #
615
744
  # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig] Only applicable if using Stripe as your payment gateway through Metronome.
616
745
  #
617
746
  # @param tax_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
618
- # ...
619
747
 
620
748
  # Gate access to the commit balance based on successful collection of payment.
621
749
  # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
@@ -641,7 +769,9 @@ module MetronomeSDK
641
769
  #
642
770
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::PaymentType]
643
771
  required :payment_type,
644
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::PaymentType }
772
+ enum: -> {
773
+ MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::StripeConfig::PaymentType
774
+ }
645
775
 
646
776
  # @!method initialize(payment_type:)
647
777
  # Only applicable if using Stripe as your payment gateway through Metronome.
@@ -688,6 +818,44 @@ module MetronomeSDK
688
818
  # @!method self.values
689
819
  # @return [Array<Symbol>]
690
820
  end
821
+
822
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
823
+ # @!attribute presentation_group_values
824
+ #
825
+ # @return [Hash{Symbol=>String}, nil]
826
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
827
+
828
+ # @!attribute pricing_group_values
829
+ #
830
+ # @return [Hash{Symbol=>String}, nil]
831
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
832
+
833
+ # @!attribute product_id
834
+ # If provided, the specifier will only apply to the product with the specified ID.
835
+ #
836
+ # @return [String, nil]
837
+ optional :product_id, String
838
+
839
+ # @!attribute product_tags
840
+ # If provided, the specifier will only apply to products with all the specified
841
+ # tags.
842
+ #
843
+ # @return [Array<String>, nil]
844
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
845
+
846
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
847
+ # Some parameter documentations has been truncated, see
848
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddCommit::Specifier} for more
849
+ # details.
850
+ #
851
+ # @param presentation_group_values [Hash{Symbol=>String}]
852
+ #
853
+ # @param pricing_group_values [Hash{Symbol=>String}]
854
+ #
855
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
856
+ #
857
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
858
+ end
691
859
  end
692
860
 
693
861
  class AddCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -695,7 +863,7 @@ module MetronomeSDK
695
863
  # Schedule for distributing the credit to the customer.
696
864
  #
697
865
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddCredit::AccessSchedule]
698
- required :access_schedule, -> { MetronomeSDK::Models::V2::ContractEditParams::AddCredit::AccessSchedule }
866
+ required :access_schedule, -> { MetronomeSDK::V2::ContractEditParams::AddCredit::AccessSchedule }
699
867
 
700
868
  # @!attribute product_id
701
869
  #
@@ -749,9 +917,21 @@ module MetronomeSDK
749
917
  # @!attribute rate_type
750
918
  #
751
919
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::RateType, nil]
752
- optional :rate_type, enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddCredit::RateType }
920
+ optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::AddCredit::RateType }
921
+
922
+ # @!attribute specifiers
923
+ # List of filters that determine what kind of customer usage draws down a commit
924
+ # or credit. A customer's usage needs to meet the condition of at least one of the
925
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
926
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
927
+ #
928
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCredit::Specifier>, nil]
929
+ optional :specifiers,
930
+ -> {
931
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCredit::Specifier]
932
+ }
753
933
 
754
- # @!method initialize(access_schedule:, product_id:, applicable_product_ids: nil, applicable_product_tags: nil, custom_fields: nil, description: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil)
934
+ # @!method initialize(access_schedule:, product_id:, applicable_product_ids: nil, applicable_product_tags: nil, custom_fields: nil, description: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, specifiers: nil)
755
935
  # Some parameter documentations has been truncated, see
756
936
  # {MetronomeSDK::Models::V2::ContractEditParams::AddCredit} for more details.
757
937
  #
@@ -760,10 +940,8 @@ module MetronomeSDK
760
940
  # @param product_id [String]
761
941
  #
762
942
  # @param applicable_product_ids [Array<String>] Which products the credit applies to. If both applicable_product_ids and applica
763
- # ...
764
943
  #
765
944
  # @param applicable_product_tags [Array<String>] Which tags the credit applies to. If both applicable*product_ids and applicable*
766
- # ...
767
945
  #
768
946
  # @param custom_fields [Hash{Symbol=>String}]
769
947
  #
@@ -774,9 +952,10 @@ module MetronomeSDK
774
952
  # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
775
953
  #
776
954
  # @param priority [Float] If multiple credits are applicable, the one with the lower priority will apply f
777
- # ...
778
955
  #
779
956
  # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::RateType]
957
+ #
958
+ # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCredit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
780
959
 
781
960
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit#access_schedule
782
961
  class AccessSchedule < MetronomeSDK::Internal::Type::BaseModel
@@ -784,7 +963,9 @@ module MetronomeSDK
784
963
  #
785
964
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCredit::AccessSchedule::ScheduleItem>]
786
965
  required :schedule_items,
787
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::AddCredit::AccessSchedule::ScheduleItem] }
966
+ -> {
967
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddCredit::AccessSchedule::ScheduleItem]
968
+ }
788
969
 
789
970
  # @!attribute credit_type_id
790
971
  #
@@ -834,6 +1015,44 @@ module MetronomeSDK
834
1015
  # @!method self.values
835
1016
  # @return [Array<Symbol>]
836
1017
  end
1018
+
1019
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
1020
+ # @!attribute presentation_group_values
1021
+ #
1022
+ # @return [Hash{Symbol=>String}, nil]
1023
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1024
+
1025
+ # @!attribute pricing_group_values
1026
+ #
1027
+ # @return [Hash{Symbol=>String}, nil]
1028
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1029
+
1030
+ # @!attribute product_id
1031
+ # If provided, the specifier will only apply to the product with the specified ID.
1032
+ #
1033
+ # @return [String, nil]
1034
+ optional :product_id, String
1035
+
1036
+ # @!attribute product_tags
1037
+ # If provided, the specifier will only apply to products with all the specified
1038
+ # tags.
1039
+ #
1040
+ # @return [Array<String>, nil]
1041
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1042
+
1043
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
1044
+ # Some parameter documentations has been truncated, see
1045
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddCredit::Specifier} for more
1046
+ # details.
1047
+ #
1048
+ # @param presentation_group_values [Hash{Symbol=>String}]
1049
+ #
1050
+ # @param pricing_group_values [Hash{Symbol=>String}]
1051
+ #
1052
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
1053
+ #
1054
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
1055
+ end
837
1056
  end
838
1057
 
839
1058
  class AddDiscount < MetronomeSDK::Internal::Type::BaseModel
@@ -846,7 +1065,7 @@ module MetronomeSDK
846
1065
  # Must provide either schedule_items or recurring_schedule.
847
1066
  #
848
1067
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule]
849
- required :schedule, -> { MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule }
1068
+ required :schedule, -> { MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule }
850
1069
 
851
1070
  # @!attribute custom_fields
852
1071
  #
@@ -891,14 +1110,16 @@ module MetronomeSDK
891
1110
  #
892
1111
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule, nil]
893
1112
  optional :recurring_schedule,
894
- -> { MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule }
1113
+ -> { MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule }
895
1114
 
896
1115
  # @!attribute schedule_items
897
1116
  # Either provide amount or provide both unit_price and quantity.
898
1117
  #
899
1118
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::ScheduleItem>, nil]
900
1119
  optional :schedule_items,
901
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::ScheduleItem] }
1120
+ -> {
1121
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::ScheduleItem]
1122
+ }
902
1123
 
903
1124
  # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
904
1125
  # Some parameter documentations has been truncated, see
@@ -910,7 +1131,6 @@ module MetronomeSDK
910
1131
  # @param credit_type_id [String] Defaults to USD if not passed. Only USD is supported at this time.
911
1132
  #
912
1133
  # @param recurring_schedule [MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
913
- # ...
914
1134
  #
915
1135
  # @param schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
916
1136
 
@@ -920,7 +1140,9 @@ module MetronomeSDK
920
1140
  #
921
1141
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::AmountDistribution]
922
1142
  required :amount_distribution,
923
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::AmountDistribution }
1143
+ enum: -> {
1144
+ MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::AmountDistribution
1145
+ }
924
1146
 
925
1147
  # @!attribute ending_before
926
1148
  # RFC 3339 timestamp (exclusive).
@@ -932,7 +1154,9 @@ module MetronomeSDK
932
1154
  #
933
1155
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::Frequency]
934
1156
  required :frequency,
935
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::Frequency }
1157
+ enum: -> {
1158
+ MetronomeSDK::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule::Frequency
1159
+ }
936
1160
 
937
1161
  # @!attribute starting_at
938
1162
  # RFC 3339 timestamp (inclusive).
@@ -982,13 +1206,10 @@ module MetronomeSDK
982
1206
  # @param starting_at [Time] RFC 3339 timestamp (inclusive).
983
1207
  #
984
1208
  # @param amount [Float] Amount for the charge. Can be provided instead of unit_price and quantity. If am
985
- # ...
986
1209
  #
987
1210
  # @param quantity [Float] Quantity for the charge. Will be multiplied by unit_price to determine the amoun
988
- # ...
989
1211
  #
990
1212
  # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
991
- # ...
992
1213
 
993
1214
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddDiscount::Schedule::RecurringSchedule#amount_distribution
994
1215
  module AmountDistribution
@@ -1056,13 +1277,10 @@ module MetronomeSDK
1056
1277
  # @param timestamp [Time] timestamp of the scheduled event
1057
1278
  #
1058
1279
  # @param amount [Float] Amount for the charge. Can be provided instead of unit_price and quantity. If am
1059
- # ...
1060
1280
  #
1061
1281
  # @param quantity [Float] Quantity for the charge. Will be multiplied by unit_price to determine the amoun
1062
- # ...
1063
1282
  #
1064
1283
  # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
1065
- # ...
1066
1284
  end
1067
1285
  end
1068
1286
  end
@@ -1111,13 +1329,15 @@ module MetronomeSDK
1111
1329
  #
1112
1330
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier>, nil]
1113
1331
  optional :override_specifiers,
1114
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier] }
1332
+ -> {
1333
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddOverride::OverrideSpecifier]
1334
+ }
1115
1335
 
1116
1336
  # @!attribute overwrite_rate
1117
1337
  # Required for OVERWRITE type.
1118
1338
  #
1119
1339
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate, nil]
1120
- optional :overwrite_rate, -> { MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate }
1340
+ optional :overwrite_rate, -> { MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate }
1121
1341
 
1122
1342
  # @!attribute priority
1123
1343
  # Required for EXPLICIT multiplier prioritization scheme and all TIERED overrides.
@@ -1140,20 +1360,22 @@ module MetronomeSDK
1140
1360
  # `"LIST_RATE"`.
1141
1361
  #
1142
1362
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::Target, nil]
1143
- optional :target, enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddOverride::Target }
1363
+ optional :target, enum: -> { MetronomeSDK::V2::ContractEditParams::AddOverride::Target }
1144
1364
 
1145
1365
  # @!attribute tiers
1146
1366
  # Required for TIERED type. Must have at least one tier.
1147
1367
  #
1148
1368
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride::Tier>, nil]
1149
1369
  optional :tiers,
1150
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::AddOverride::Tier] }
1370
+ -> {
1371
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddOverride::Tier]
1372
+ }
1151
1373
 
1152
1374
  # @!attribute type
1153
1375
  # Overwrites are prioritized over multipliers and tiered overrides.
1154
1376
  #
1155
1377
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::Type, nil]
1156
- optional :type, enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddOverride::Type }
1378
+ optional :type, enum: -> { MetronomeSDK::V2::ContractEditParams::AddOverride::Type }
1157
1379
 
1158
1380
  # @!method initialize(starting_at:, applicable_product_tags: nil, ending_before: nil, entitled: nil, is_commit_specific: nil, multiplier: nil, override_specifiers: nil, overwrite_rate: nil, priority: nil, product_id: nil, target: nil, tiers: nil, type: nil)
1159
1381
  # Some parameter documentations has been truncated, see
@@ -1168,28 +1390,32 @@ module MetronomeSDK
1168
1390
  # @param entitled [Boolean]
1169
1391
  #
1170
1392
  # @param is_commit_specific [Boolean] Indicates whether the override should only apply to commits. Defaults to `false`
1171
- # ...
1172
1393
  #
1173
1394
  # @param multiplier [Float] Required for MULTIPLIER type. Must be >=0.
1174
1395
  #
1175
1396
  # @param override_specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier>] Cannot be used in conjunction with product_id or applicable_product_tags. If pro
1176
- # ...
1177
1397
  #
1178
1398
  # @param overwrite_rate [MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate] Required for OVERWRITE type.
1179
1399
  #
1180
1400
  # @param priority [Float] Required for EXPLICIT multiplier prioritization scheme and all TIERED overrides.
1181
- # ...
1182
1401
  #
1183
1402
  # @param product_id [String] ID of the product whose rate is being overridden
1184
1403
  #
1185
1404
  # @param target [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::Target] Indicates whether the override applies to commit rates or list rates. Can only b
1186
- # ...
1187
1405
  #
1188
1406
  # @param tiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride::Tier>] Required for TIERED type. Must have at least one tier.
1189
1407
  #
1190
1408
  # @param type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::Type] Overwrites are prioritized over multipliers and tiered overrides.
1191
1409
 
1192
1410
  class OverrideSpecifier < MetronomeSDK::Internal::Type::BaseModel
1411
+ # @!attribute billing_frequency
1412
+ #
1413
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier::BillingFrequency, nil]
1414
+ optional :billing_frequency,
1415
+ enum: -> {
1416
+ MetronomeSDK::V2::ContractEditParams::AddOverride::OverrideSpecifier::BillingFrequency
1417
+ }
1418
+
1193
1419
  # @!attribute commit_ids
1194
1420
  # If provided, the override will only apply to the specified commits. Can only be
1195
1421
  # used for commit specific overrides. If not provided, the override will apply to
@@ -1244,30 +1470,39 @@ module MetronomeSDK
1244
1470
  # @return [Array<String>, nil]
1245
1471
  optional :recurring_credit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1246
1472
 
1247
- # @!method initialize(commit_ids: nil, presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil, recurring_commit_ids: nil, recurring_credit_ids: nil)
1473
+ # @!method initialize(billing_frequency: nil, commit_ids: nil, presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil, recurring_commit_ids: nil, recurring_credit_ids: nil)
1248
1474
  # Some parameter documentations has been truncated, see
1249
1475
  # {MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier}
1250
1476
  # for more details.
1251
1477
  #
1478
+ # @param billing_frequency [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier::BillingFrequency]
1479
+ #
1252
1480
  # @param commit_ids [Array<String>] If provided, the override will only apply to the specified commits. Can only be
1253
- # ...
1254
1481
  #
1255
1482
  # @param presentation_group_values [Hash{Symbol=>String}] A map of group names to values. The override will only apply to line items with
1256
- # ...
1257
1483
  #
1258
1484
  # @param pricing_group_values [Hash{Symbol=>String}] A map of pricing group names to values. The override will only apply to products
1259
- # ...
1260
1485
  #
1261
1486
  # @param product_id [String] If provided, the override will only apply to the product with the specified ID.
1262
1487
  #
1263
1488
  # @param product_tags [Array<String>] If provided, the override will only apply to products with all the specified tag
1264
- # ...
1265
1489
  #
1266
1490
  # @param recurring_commit_ids [Array<String>] Can only be used for commit specific overrides. Must be used in conjunction with
1267
- # ...
1268
1491
  #
1269
1492
  # @param recurring_credit_ids [Array<String>] Can only be used for commit specific overrides. Must be used in conjunction with
1270
- # ...
1493
+
1494
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier#billing_frequency
1495
+ module BillingFrequency
1496
+ extend MetronomeSDK::Internal::Type::Enum
1497
+
1498
+ MONTHLY = :MONTHLY
1499
+ QUARTERLY = :QUARTERLY
1500
+ ANNUAL = :ANNUAL
1501
+ WEEKLY = :WEEKLY
1502
+
1503
+ # @!method self.values
1504
+ # @return [Array<Symbol>]
1505
+ end
1271
1506
  end
1272
1507
 
1273
1508
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddOverride#overwrite_rate
@@ -1276,7 +1511,7 @@ module MetronomeSDK
1276
1511
  #
1277
1512
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate::RateType]
1278
1513
  required :rate_type,
1279
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate::RateType }
1514
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate::RateType }
1280
1515
 
1281
1516
  # @!attribute credit_type_id
1282
1517
  #
@@ -1313,8 +1548,11 @@ module MetronomeSDK
1313
1548
  # @!attribute tiers
1314
1549
  # Only set for TIERED rate_type.
1315
1550
  #
1316
- # @return [Array<MetronomeSDK::Models::Tier>, nil]
1317
- optional :tiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::Tier] }
1551
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate::Tier>, nil]
1552
+ optional :tiers,
1553
+ -> {
1554
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate::Tier]
1555
+ }
1318
1556
 
1319
1557
  # @!method initialize(rate_type:, credit_type_id: nil, custom_rate: nil, is_prorated: nil, price: nil, quantity: nil, tiers: nil)
1320
1558
  # Some parameter documentations has been truncated, see
@@ -1328,17 +1566,14 @@ module MetronomeSDK
1328
1566
  # @param credit_type_id [String]
1329
1567
  #
1330
1568
  # @param custom_rate [Hash{Symbol=>Object}] Only set for CUSTOM rate_type. This field is interpreted by custom rate processo
1331
- # ...
1332
1569
  #
1333
1570
  # @param is_prorated [Boolean] Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
1334
- # ...
1335
1571
  #
1336
1572
  # @param price [Float] Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type, t
1337
- # ...
1338
1573
  #
1339
1574
  # @param quantity [Float] Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
1340
1575
  #
1341
- # @param tiers [Array<MetronomeSDK::Models::Tier>] Only set for TIERED rate_type.
1576
+ # @param tiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate::Tier>] Only set for TIERED rate_type.
1342
1577
 
1343
1578
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate#rate_type
1344
1579
  module RateType
@@ -1353,6 +1588,22 @@ module MetronomeSDK
1353
1588
  # @!method self.values
1354
1589
  # @return [Array<Symbol>]
1355
1590
  end
1591
+
1592
+ class Tier < MetronomeSDK::Internal::Type::BaseModel
1593
+ # @!attribute price
1594
+ #
1595
+ # @return [Float]
1596
+ required :price, Float
1597
+
1598
+ # @!attribute size
1599
+ #
1600
+ # @return [Float, nil]
1601
+ optional :size, Float
1602
+
1603
+ # @!method initialize(price:, size: nil)
1604
+ # @param price [Float]
1605
+ # @param size [Float]
1606
+ end
1356
1607
  end
1357
1608
 
1358
1609
  # Indicates whether the override applies to commit rates or list rates. Can only
@@ -1401,141 +1652,413 @@ module MetronomeSDK
1401
1652
  end
1402
1653
  end
1403
1654
 
1404
- class AddProfessionalService < MetronomeSDK::Internal::Type::BaseModel
1405
- # @!attribute max_amount
1406
- # Maximum amount for the term.
1655
+ class AddPrepaidBalanceThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
1656
+ # @!attribute commit
1407
1657
  #
1408
- # @return [Float]
1409
- required :max_amount, Float
1658
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit]
1659
+ required :commit,
1660
+ -> {
1661
+ MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit
1662
+ }
1410
1663
 
1411
- # @!attribute product_id
1664
+ # @!attribute is_enabled
1665
+ # When set to false, the contract will not be evaluated against the
1666
+ # threshold_amount. Toggling to true will result an immediate evaluation,
1667
+ # regardless of prior state.
1412
1668
  #
1413
- # @return [String]
1414
- required :product_id, String
1669
+ # @return [Boolean]
1670
+ required :is_enabled, MetronomeSDK::Internal::Type::Boolean
1415
1671
 
1416
- # @!attribute quantity
1417
- # Quantity for the charge. Will be multiplied by unit_price to determine the
1418
- # amount.
1672
+ # @!attribute payment_gate_config
1419
1673
  #
1420
- # @return [Float]
1421
- required :quantity, Float
1674
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig]
1675
+ required :payment_gate_config,
1676
+ -> {
1677
+ MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig
1678
+ }
1422
1679
 
1423
- # @!attribute unit_price
1424
- # Unit price for the charge. Will be multiplied by quantity to determine the
1425
- # amount and must be specified.
1680
+ # @!attribute recharge_to_amount
1681
+ # Specify the amount the balance should be recharged to.
1426
1682
  #
1427
1683
  # @return [Float]
1428
- required :unit_price, Float
1429
-
1430
- # @!attribute custom_fields
1431
- #
1432
- # @return [Hash{Symbol=>String}, nil]
1433
- optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
1684
+ required :recharge_to_amount, Float
1434
1685
 
1435
- # @!attribute description
1436
- #
1437
- # @return [String, nil]
1438
- optional :description, String
1439
-
1440
- # @!attribute netsuite_sales_order_id
1441
- # This field's availability is dependent on your client's configuration.
1686
+ # @!attribute threshold_amount
1687
+ # Specify the threshold amount for the contract. Each time the contract's balance
1688
+ # lowers to this amount, a threshold charge will be initiated.
1442
1689
  #
1443
- # @return [String, nil]
1444
- optional :netsuite_sales_order_id, String
1690
+ # @return [Float]
1691
+ required :threshold_amount, Float
1445
1692
 
1446
- # @!method initialize(max_amount:, product_id:, quantity:, unit_price:, custom_fields: nil, description: nil, netsuite_sales_order_id: nil)
1693
+ # @!method initialize(commit:, is_enabled:, payment_gate_config:, recharge_to_amount:, threshold_amount:)
1447
1694
  # Some parameter documentations has been truncated, see
1448
- # {MetronomeSDK::Models::V2::ContractEditParams::AddProfessionalService} for more
1449
- # details.
1450
- #
1451
- # @param max_amount [Float] Maximum amount for the term.
1452
- #
1453
- # @param product_id [String]
1695
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration}
1696
+ # for more details.
1454
1697
  #
1455
- # @param quantity [Float] Quantity for the charge. Will be multiplied by unit_price to determine the amoun
1456
- # ...
1698
+ # @param commit [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit]
1457
1699
  #
1458
- # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
1459
- # ...
1700
+ # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
1460
1701
  #
1461
- # @param custom_fields [Hash{Symbol=>String}]
1702
+ # @param payment_gate_config [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig]
1462
1703
  #
1463
- # @param description [String]
1704
+ # @param recharge_to_amount [Float] Specify the amount the balance should be recharged to.
1464
1705
  #
1465
- # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
1466
- end
1706
+ # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's balance
1467
1707
 
1468
- class AddRecurringCommit < MetronomeSDK::Internal::Type::BaseModel
1469
- # @!attribute access_amount
1470
- # The amount of commit to grant.
1471
- #
1472
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::AccessAmount]
1473
- required :access_amount,
1474
- -> { MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::AccessAmount }
1708
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration#commit
1709
+ class Commit < MetronomeSDK::Internal::Type::BaseModel
1710
+ # @!attribute product_id
1711
+ # The commit product that will be used to generate the line item for commit
1712
+ # payment.
1713
+ #
1714
+ # @return [String]
1715
+ required :product_id, String
1475
1716
 
1476
- # @!attribute commit_duration
1477
- # The amount of time the created commits will be valid for.
1478
- #
1479
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration]
1480
- required :commit_duration,
1481
- -> { MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration }
1717
+ # @!attribute applicable_product_ids
1718
+ # Which products the threshold commit applies to. If both applicable_product_ids
1719
+ # and applicable_product_tags are not provided, the commit applies to all
1720
+ # products.
1721
+ #
1722
+ # @return [Array<String>, nil]
1723
+ optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1482
1724
 
1483
- # @!attribute priority
1484
- # Will be passed down to the individual commits
1485
- #
1486
- # @return [Float]
1487
- required :priority, Float
1725
+ # @!attribute applicable_product_tags
1726
+ # Which tags the threshold commit applies to. If both applicable_product_ids and
1727
+ # applicable_product_tags are not provided, the commit applies to all products.
1728
+ #
1729
+ # @return [Array<String>, nil]
1730
+ optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1488
1731
 
1489
- # @!attribute product_id
1490
- #
1491
- # @return [String]
1492
- required :product_id, String
1732
+ # @!attribute description
1733
+ #
1734
+ # @return [String, nil]
1735
+ optional :description, String
1493
1736
 
1494
- # @!attribute starting_at
1495
- # determines the start time for the first commit
1496
- #
1497
- # @return [Time]
1498
- required :starting_at, Time
1737
+ # @!attribute name
1738
+ # Specify the name of the line item for the threshold charge. If left blank, it
1739
+ # will default to the commit product name.
1740
+ #
1741
+ # @return [String, nil]
1742
+ optional :name, String
1499
1743
 
1500
- # @!attribute applicable_product_ids
1501
- # Will be passed down to the individual commits
1502
- #
1503
- # @return [Array<String>, nil]
1504
- optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1744
+ # @!attribute specifiers
1745
+ # List of filters that determine what kind of customer usage draws down a commit
1746
+ # or credit. A customer's usage needs to meet the condition of at least one of the
1747
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
1748
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
1749
+ #
1750
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit::Specifier>, nil]
1751
+ optional :specifiers,
1752
+ -> {
1753
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit::Specifier]
1754
+ }
1505
1755
 
1506
- # @!attribute applicable_product_tags
1507
- # Will be passed down to the individual commits
1508
- #
1509
- # @return [Array<String>, nil]
1510
- optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1756
+ # @!method initialize(product_id:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, name: nil, specifiers: nil)
1757
+ # Some parameter documentations has been truncated, see
1758
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit}
1759
+ # for more details.
1760
+ #
1761
+ # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
1762
+ #
1763
+ # @param applicable_product_ids [Array<String>] Which products the threshold commit applies to. If both applicable_product_ids a
1764
+ #
1765
+ # @param applicable_product_tags [Array<String>] Which tags the threshold commit applies to. If both applicable_product_ids and a
1766
+ #
1767
+ # @param description [String]
1768
+ #
1769
+ # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
1770
+ #
1771
+ # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
1511
1772
 
1512
- # @!attribute description
1513
- # Will be passed down to the individual commits
1514
- #
1515
- # @return [String, nil]
1516
- optional :description, String
1773
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
1774
+ # @!attribute presentation_group_values
1775
+ #
1776
+ # @return [Hash{Symbol=>String}, nil]
1777
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1517
1778
 
1518
- # @!attribute ending_before
1519
- # Determines when the contract will stop creating recurring commits. optional
1520
- #
1521
- # @return [Time, nil]
1522
- optional :ending_before, Time
1779
+ # @!attribute pricing_group_values
1780
+ #
1781
+ # @return [Hash{Symbol=>String}, nil]
1782
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1523
1783
 
1524
- # @!attribute invoice_amount
1525
- # The amount the customer should be billed for the commit. Not required.
1526
- #
1527
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount, nil]
1528
- optional :invoice_amount,
1529
- -> { MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount }
1784
+ # @!attribute product_id
1785
+ # If provided, the specifier will only apply to the product with the specified ID.
1786
+ #
1787
+ # @return [String, nil]
1788
+ optional :product_id, String
1530
1789
 
1531
- # @!attribute name
1532
- # displayed on invoices. will be passed through to the individual commits
1533
- #
1534
- # @return [String, nil]
1535
- optional :name, String
1790
+ # @!attribute product_tags
1791
+ # If provided, the specifier will only apply to products with all the specified
1792
+ # tags.
1793
+ #
1794
+ # @return [Array<String>, nil]
1795
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1536
1796
 
1537
- # @!attribute netsuite_sales_order_id
1538
- # Will be passed down to the individual commits
1797
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
1798
+ # Some parameter documentations has been truncated, see
1799
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::Commit::Specifier}
1800
+ # for more details.
1801
+ #
1802
+ # @param presentation_group_values [Hash{Symbol=>String}]
1803
+ #
1804
+ # @param pricing_group_values [Hash{Symbol=>String}]
1805
+ #
1806
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
1807
+ #
1808
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
1809
+ end
1810
+ end
1811
+
1812
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration#payment_gate_config
1813
+ class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
1814
+ # @!attribute payment_gate_type
1815
+ # Gate access to the commit balance based on successful collection of payment.
1816
+ # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
1817
+ # facilitate payment using your own payment integration. Select NONE if you do not
1818
+ # wish to payment gate the commit balance.
1819
+ #
1820
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType]
1821
+ required :payment_gate_type,
1822
+ enum: -> {
1823
+ MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType
1824
+ }
1825
+
1826
+ # @!attribute stripe_config
1827
+ # Only applicable if using Stripe as your payment gateway through Metronome.
1828
+ #
1829
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
1830
+ optional :stripe_config,
1831
+ -> {
1832
+ MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig
1833
+ }
1834
+
1835
+ # @!attribute tax_type
1836
+ # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
1837
+ # not wish Metronome to calculate tax on your behalf. Leaving this field blank
1838
+ # will default to NONE.
1839
+ #
1840
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType, nil]
1841
+ optional :tax_type,
1842
+ enum: -> {
1843
+ MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType
1844
+ }
1845
+
1846
+ # @!method initialize(payment_gate_type:, stripe_config: nil, tax_type: nil)
1847
+ # Some parameter documentations has been truncated, see
1848
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig}
1849
+ # for more details.
1850
+ #
1851
+ # @param payment_gate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
1852
+ #
1853
+ # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using Stripe as your payment gateway through Metronome.
1854
+ #
1855
+ # @param tax_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
1856
+
1857
+ # Gate access to the commit balance based on successful collection of payment.
1858
+ # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
1859
+ # facilitate payment using your own payment integration. Select NONE if you do not
1860
+ # wish to payment gate the commit balance.
1861
+ #
1862
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig#payment_gate_type
1863
+ module PaymentGateType
1864
+ extend MetronomeSDK::Internal::Type::Enum
1865
+
1866
+ NONE = :NONE
1867
+ STRIPE = :STRIPE
1868
+ EXTERNAL = :EXTERNAL
1869
+
1870
+ # @!method self.values
1871
+ # @return [Array<Symbol>]
1872
+ end
1873
+
1874
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig#stripe_config
1875
+ class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
1876
+ # @!attribute payment_type
1877
+ # If left blank, will default to INVOICE
1878
+ #
1879
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
1880
+ required :payment_type,
1881
+ enum: -> {
1882
+ MetronomeSDK::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
1883
+ }
1884
+
1885
+ # @!method initialize(payment_type:)
1886
+ # Only applicable if using Stripe as your payment gateway through Metronome.
1887
+ #
1888
+ # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
1889
+
1890
+ # If left blank, will default to INVOICE
1891
+ #
1892
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
1893
+ module PaymentType
1894
+ extend MetronomeSDK::Internal::Type::Enum
1895
+
1896
+ INVOICE = :INVOICE
1897
+ PAYMENT_INTENT = :PAYMENT_INTENT
1898
+
1899
+ # @!method self.values
1900
+ # @return [Array<Symbol>]
1901
+ end
1902
+ end
1903
+
1904
+ # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
1905
+ # not wish Metronome to calculate tax on your behalf. Leaving this field blank
1906
+ # will default to NONE.
1907
+ #
1908
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig#tax_type
1909
+ module TaxType
1910
+ extend MetronomeSDK::Internal::Type::Enum
1911
+
1912
+ NONE = :NONE
1913
+ STRIPE = :STRIPE
1914
+
1915
+ # @!method self.values
1916
+ # @return [Array<Symbol>]
1917
+ end
1918
+ end
1919
+ end
1920
+
1921
+ class AddProfessionalService < MetronomeSDK::Internal::Type::BaseModel
1922
+ # @!attribute max_amount
1923
+ # Maximum amount for the term.
1924
+ #
1925
+ # @return [Float]
1926
+ required :max_amount, Float
1927
+
1928
+ # @!attribute product_id
1929
+ #
1930
+ # @return [String]
1931
+ required :product_id, String
1932
+
1933
+ # @!attribute quantity
1934
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
1935
+ # amount.
1936
+ #
1937
+ # @return [Float]
1938
+ required :quantity, Float
1939
+
1940
+ # @!attribute unit_price
1941
+ # Unit price for the charge. Will be multiplied by quantity to determine the
1942
+ # amount and must be specified.
1943
+ #
1944
+ # @return [Float]
1945
+ required :unit_price, Float
1946
+
1947
+ # @!attribute custom_fields
1948
+ #
1949
+ # @return [Hash{Symbol=>String}, nil]
1950
+ optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
1951
+
1952
+ # @!attribute description
1953
+ #
1954
+ # @return [String, nil]
1955
+ optional :description, String
1956
+
1957
+ # @!attribute netsuite_sales_order_id
1958
+ # This field's availability is dependent on your client's configuration.
1959
+ #
1960
+ # @return [String, nil]
1961
+ optional :netsuite_sales_order_id, String
1962
+
1963
+ # @!method initialize(max_amount:, product_id:, quantity:, unit_price:, custom_fields: nil, description: nil, netsuite_sales_order_id: nil)
1964
+ # Some parameter documentations has been truncated, see
1965
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddProfessionalService} for more
1966
+ # details.
1967
+ #
1968
+ # @param max_amount [Float] Maximum amount for the term.
1969
+ #
1970
+ # @param product_id [String]
1971
+ #
1972
+ # @param quantity [Float] Quantity for the charge. Will be multiplied by unit_price to determine the amoun
1973
+ #
1974
+ # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
1975
+ #
1976
+ # @param custom_fields [Hash{Symbol=>String}]
1977
+ #
1978
+ # @param description [String]
1979
+ #
1980
+ # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
1981
+ end
1982
+
1983
+ class AddRecurringCommit < MetronomeSDK::Internal::Type::BaseModel
1984
+ # @!attribute access_amount
1985
+ # The amount of commit to grant.
1986
+ #
1987
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::AccessAmount]
1988
+ required :access_amount,
1989
+ -> {
1990
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::AccessAmount
1991
+ }
1992
+
1993
+ # @!attribute commit_duration
1994
+ # Defines the length of the access schedule for each created commit/credit. The
1995
+ # value represents the number of units. Unit defaults to "PERIODS", where the
1996
+ # length of a period is determined by the recurrence_frequency.
1997
+ #
1998
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration]
1999
+ required :commit_duration,
2000
+ -> {
2001
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::CommitDuration
2002
+ }
2003
+
2004
+ # @!attribute priority
2005
+ # Will be passed down to the individual commits
2006
+ #
2007
+ # @return [Float]
2008
+ required :priority, Float
2009
+
2010
+ # @!attribute product_id
2011
+ #
2012
+ # @return [String]
2013
+ required :product_id, String
2014
+
2015
+ # @!attribute starting_at
2016
+ # determines the start time for the first commit
2017
+ #
2018
+ # @return [Time]
2019
+ required :starting_at, Time
2020
+
2021
+ # @!attribute applicable_product_ids
2022
+ # Will be passed down to the individual commits
2023
+ #
2024
+ # @return [Array<String>, nil]
2025
+ optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
2026
+
2027
+ # @!attribute applicable_product_tags
2028
+ # Will be passed down to the individual commits
2029
+ #
2030
+ # @return [Array<String>, nil]
2031
+ optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
2032
+
2033
+ # @!attribute description
2034
+ # Will be passed down to the individual commits
2035
+ #
2036
+ # @return [String, nil]
2037
+ optional :description, String
2038
+
2039
+ # @!attribute ending_before
2040
+ # Determines when the contract will stop creating recurring commits. optional
2041
+ #
2042
+ # @return [Time, nil]
2043
+ optional :ending_before, Time
2044
+
2045
+ # @!attribute invoice_amount
2046
+ # The amount the customer should be billed for the commit. Not required.
2047
+ #
2048
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount, nil]
2049
+ optional :invoice_amount,
2050
+ -> {
2051
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount
2052
+ }
2053
+
2054
+ # @!attribute name
2055
+ # displayed on invoices. will be passed through to the individual commits
2056
+ #
2057
+ # @return [String, nil]
2058
+ optional :name, String
2059
+
2060
+ # @!attribute netsuite_sales_order_id
2061
+ # Will be passed down to the individual commits
1539
2062
  #
1540
2063
  # @return [String, nil]
1541
2064
  optional :netsuite_sales_order_id, String
@@ -1546,25 +2069,26 @@ module MetronomeSDK
1546
2069
  #
1547
2070
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Proration, nil]
1548
2071
  optional :proration,
1549
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Proration }
2072
+ enum: -> {
2073
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration
2074
+ }
1550
2075
 
1551
2076
  # @!attribute rate_type
1552
2077
  # Whether the created commits will use the commit rate or list rate
1553
2078
  #
1554
2079
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::RateType, nil]
1555
- optional :rate_type,
1556
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::RateType }
2080
+ optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RateType }
1557
2081
 
1558
2082
  # @!attribute recurrence_frequency
1559
2083
  # The frequency at which the recurring commits will be created. If not provided: -
1560
2084
  # The commits will be created on the usage invoice frequency. If provided: - The
1561
2085
  # period defined in the duration will correspond to this frequency. - Commits will
1562
- # be created aligned with the recurring commit's start_date rather than the usage
2086
+ # be created aligned with the recurring commit's starting_at rather than the usage
1563
2087
  # invoice dates.
1564
2088
  #
1565
2089
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency, nil]
1566
2090
  optional :recurrence_frequency,
1567
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency }
2091
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency }
1568
2092
 
1569
2093
  # @!attribute rollover_fraction
1570
2094
  # Will be passed down to the individual commits. This controls how much of an
@@ -1574,6 +2098,18 @@ module MetronomeSDK
1574
2098
  # @return [Float, nil]
1575
2099
  optional :rollover_fraction, Float
1576
2100
 
2101
+ # @!attribute specifiers
2102
+ # List of filters that determine what kind of customer usage draws down a commit
2103
+ # or credit. A customer's usage needs to meet the condition of at least one of the
2104
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2105
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
2106
+ #
2107
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Specifier>, nil]
2108
+ optional :specifiers,
2109
+ -> {
2110
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Specifier]
2111
+ }
2112
+
1577
2113
  # @!attribute temporary_id
1578
2114
  # A temporary ID that can be used to reference the recurring commit for commit
1579
2115
  # specific overrides.
@@ -1581,14 +2117,14 @@ module MetronomeSDK
1581
2117
  # @return [String, nil]
1582
2118
  optional :temporary_id, String
1583
2119
 
1584
- # @!method initialize(access_amount:, commit_duration:, priority:, product_id:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, ending_before: nil, invoice_amount: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, rate_type: nil, recurrence_frequency: nil, rollover_fraction: nil, temporary_id: nil)
2120
+ # @!method initialize(access_amount:, commit_duration:, priority:, product_id:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, ending_before: nil, invoice_amount: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, rate_type: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, temporary_id: nil)
1585
2121
  # Some parameter documentations has been truncated, see
1586
2122
  # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit} for more
1587
2123
  # details.
1588
2124
  #
1589
2125
  # @param access_amount [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::AccessAmount] The amount of commit to grant.
1590
2126
  #
1591
- # @param commit_duration [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration] The amount of time the created commits will be valid for.
2127
+ # @param commit_duration [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration] Defines the length of the access schedule for each created commit/credit. The va
1592
2128
  #
1593
2129
  # @param priority [Float] Will be passed down to the individual commits
1594
2130
  #
@@ -1611,18 +2147,16 @@ module MetronomeSDK
1611
2147
  # @param netsuite_sales_order_id [String] Will be passed down to the individual commits
1612
2148
  #
1613
2149
  # @param proration [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Proration] Determines whether the first and last commit will be prorated. If not provided,
1614
- # ...
1615
2150
  #
1616
2151
  # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::RateType] Whether the created commits will use the commit rate or list rate
1617
2152
  #
1618
2153
  # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
1619
- # ...
1620
2154
  #
1621
2155
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
1622
- # ...
2156
+ #
2157
+ # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
1623
2158
  #
1624
2159
  # @param temporary_id [String] A temporary ID that can be used to reference the recurring commit for commit spe
1625
- # ...
1626
2160
 
1627
2161
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#access_amount
1628
2162
  class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
@@ -1651,22 +2185,26 @@ module MetronomeSDK
1651
2185
 
1652
2186
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#commit_duration
1653
2187
  class CommitDuration < MetronomeSDK::Internal::Type::BaseModel
1654
- # @!attribute unit
1655
- #
1656
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration::Unit]
1657
- required :unit,
1658
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration::Unit }
1659
-
1660
2188
  # @!attribute value
1661
2189
  #
1662
2190
  # @return [Float]
1663
2191
  required :value, Float
1664
2192
 
1665
- # @!method initialize(unit:, value:)
1666
- # The amount of time the created commits will be valid for.
2193
+ # @!attribute unit
2194
+ #
2195
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration::Unit, nil]
2196
+ optional :unit,
2197
+ enum: -> {
2198
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::CommitDuration::Unit
2199
+ }
2200
+
2201
+ # @!method initialize(value:, unit: nil)
2202
+ # Defines the length of the access schedule for each created commit/credit. The
2203
+ # value represents the number of units. Unit defaults to "PERIODS", where the
2204
+ # length of a period is determined by the recurrence_frequency.
1667
2205
  #
1668
- # @param unit [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration::Unit]
1669
2206
  # @param value [Float]
2207
+ # @param unit [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration::Unit]
1670
2208
 
1671
2209
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::CommitDuration#unit
1672
2210
  module Unit
@@ -1736,7 +2274,7 @@ module MetronomeSDK
1736
2274
  # The frequency at which the recurring commits will be created. If not provided: -
1737
2275
  # The commits will be created on the usage invoice frequency. If provided: - The
1738
2276
  # period defined in the duration will correspond to this frequency. - Commits will
1739
- # be created aligned with the recurring commit's start_date rather than the usage
2277
+ # be created aligned with the recurring commit's starting_at rather than the usage
1740
2278
  # invoice dates.
1741
2279
  #
1742
2280
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit#recurrence_frequency
@@ -1751,28 +2289,72 @@ module MetronomeSDK
1751
2289
  # @!method self.values
1752
2290
  # @return [Array<Symbol>]
1753
2291
  end
1754
- end
1755
2292
 
1756
- class AddRecurringCredit < MetronomeSDK::Internal::Type::BaseModel
1757
- # @!attribute access_amount
1758
- # The amount of commit to grant.
1759
- #
1760
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::AccessAmount]
1761
- required :access_amount,
1762
- -> { MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::AccessAmount }
2293
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
2294
+ # @!attribute presentation_group_values
2295
+ #
2296
+ # @return [Hash{Symbol=>String}, nil]
2297
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1763
2298
 
1764
- # @!attribute commit_duration
1765
- # The amount of time the created commits will be valid for.
1766
- #
1767
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::CommitDuration]
1768
- required :commit_duration,
1769
- -> { MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::CommitDuration }
2299
+ # @!attribute pricing_group_values
2300
+ #
2301
+ # @return [Hash{Symbol=>String}, nil]
2302
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1770
2303
 
1771
- # @!attribute priority
1772
- # Will be passed down to the individual commits
1773
- #
1774
- # @return [Float]
1775
- required :priority, Float
2304
+ # @!attribute product_id
2305
+ # If provided, the specifier will only apply to the product with the specified ID.
2306
+ #
2307
+ # @return [String, nil]
2308
+ optional :product_id, String
2309
+
2310
+ # @!attribute product_tags
2311
+ # If provided, the specifier will only apply to products with all the specified
2312
+ # tags.
2313
+ #
2314
+ # @return [Array<String>, nil]
2315
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
2316
+
2317
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
2318
+ # Some parameter documentations has been truncated, see
2319
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::Specifier}
2320
+ # for more details.
2321
+ #
2322
+ # @param presentation_group_values [Hash{Symbol=>String}]
2323
+ #
2324
+ # @param pricing_group_values [Hash{Symbol=>String}]
2325
+ #
2326
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
2327
+ #
2328
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
2329
+ end
2330
+ end
2331
+
2332
+ class AddRecurringCredit < MetronomeSDK::Internal::Type::BaseModel
2333
+ # @!attribute access_amount
2334
+ # The amount of commit to grant.
2335
+ #
2336
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::AccessAmount]
2337
+ required :access_amount,
2338
+ -> {
2339
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::AccessAmount
2340
+ }
2341
+
2342
+ # @!attribute commit_duration
2343
+ # Defines the length of the access schedule for each created commit/credit. The
2344
+ # value represents the number of units. Unit defaults to "PERIODS", where the
2345
+ # length of a period is determined by the recurrence_frequency.
2346
+ #
2347
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::CommitDuration]
2348
+ required :commit_duration,
2349
+ -> {
2350
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration
2351
+ }
2352
+
2353
+ # @!attribute priority
2354
+ # Will be passed down to the individual commits
2355
+ #
2356
+ # @return [Float]
2357
+ required :priority, Float
1776
2358
 
1777
2359
  # @!attribute product_id
1778
2360
  #
@@ -1827,25 +2409,26 @@ module MetronomeSDK
1827
2409
  #
1828
2410
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Proration, nil]
1829
2411
  optional :proration,
1830
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Proration }
2412
+ enum: -> {
2413
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::Proration
2414
+ }
1831
2415
 
1832
2416
  # @!attribute rate_type
1833
2417
  # Whether the created commits will use the commit rate or list rate
1834
2418
  #
1835
2419
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::RateType, nil]
1836
- optional :rate_type,
1837
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::RateType }
2420
+ optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::RateType }
1838
2421
 
1839
2422
  # @!attribute recurrence_frequency
1840
2423
  # The frequency at which the recurring commits will be created. If not provided: -
1841
2424
  # The commits will be created on the usage invoice frequency. If provided: - The
1842
2425
  # period defined in the duration will correspond to this frequency. - Commits will
1843
- # be created aligned with the recurring commit's start_date rather than the usage
2426
+ # be created aligned with the recurring commit's starting_at rather than the usage
1844
2427
  # invoice dates.
1845
2428
  #
1846
2429
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::RecurrenceFrequency, nil]
1847
2430
  optional :recurrence_frequency,
1848
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::RecurrenceFrequency }
2431
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::RecurrenceFrequency }
1849
2432
 
1850
2433
  # @!attribute rollover_fraction
1851
2434
  # Will be passed down to the individual commits. This controls how much of an
@@ -1855,6 +2438,18 @@ module MetronomeSDK
1855
2438
  # @return [Float, nil]
1856
2439
  optional :rollover_fraction, Float
1857
2440
 
2441
+ # @!attribute specifiers
2442
+ # List of filters that determine what kind of customer usage draws down a commit
2443
+ # or credit. A customer's usage needs to meet the condition of at least one of the
2444
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2445
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
2446
+ #
2447
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Specifier>, nil]
2448
+ optional :specifiers,
2449
+ -> {
2450
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::Specifier]
2451
+ }
2452
+
1858
2453
  # @!attribute temporary_id
1859
2454
  # A temporary ID that can be used to reference the recurring commit for commit
1860
2455
  # specific overrides.
@@ -1862,14 +2457,14 @@ module MetronomeSDK
1862
2457
  # @return [String, nil]
1863
2458
  optional :temporary_id, String
1864
2459
 
1865
- # @!method initialize(access_amount:, commit_duration:, priority:, product_id:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, ending_before: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, rate_type: nil, recurrence_frequency: nil, rollover_fraction: nil, temporary_id: nil)
2460
+ # @!method initialize(access_amount:, commit_duration:, priority:, product_id:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, ending_before: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, rate_type: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, temporary_id: nil)
1866
2461
  # Some parameter documentations has been truncated, see
1867
2462
  # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit} for more
1868
2463
  # details.
1869
2464
  #
1870
2465
  # @param access_amount [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::AccessAmount] The amount of commit to grant.
1871
2466
  #
1872
- # @param commit_duration [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::CommitDuration] The amount of time the created commits will be valid for.
2467
+ # @param commit_duration [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::CommitDuration] Defines the length of the access schedule for each created commit/credit. The va
1873
2468
  #
1874
2469
  # @param priority [Float] Will be passed down to the individual commits
1875
2470
  #
@@ -1890,18 +2485,16 @@ module MetronomeSDK
1890
2485
  # @param netsuite_sales_order_id [String] Will be passed down to the individual commits
1891
2486
  #
1892
2487
  # @param proration [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Proration] Determines whether the first and last commit will be prorated. If not provided,
1893
- # ...
1894
2488
  #
1895
2489
  # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::RateType] Whether the created commits will use the commit rate or list rate
1896
2490
  #
1897
2491
  # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
1898
- # ...
1899
2492
  #
1900
2493
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
1901
- # ...
2494
+ #
2495
+ # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
1902
2496
  #
1903
2497
  # @param temporary_id [String] A temporary ID that can be used to reference the recurring commit for commit spe
1904
- # ...
1905
2498
 
1906
2499
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#access_amount
1907
2500
  class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
@@ -1930,22 +2523,26 @@ module MetronomeSDK
1930
2523
 
1931
2524
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#commit_duration
1932
2525
  class CommitDuration < MetronomeSDK::Internal::Type::BaseModel
1933
- # @!attribute unit
1934
- #
1935
- # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit]
1936
- required :unit,
1937
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit }
1938
-
1939
2526
  # @!attribute value
1940
2527
  #
1941
2528
  # @return [Float]
1942
2529
  required :value, Float
1943
2530
 
1944
- # @!method initialize(unit:, value:)
1945
- # The amount of time the created commits will be valid for.
2531
+ # @!attribute unit
2532
+ #
2533
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit, nil]
2534
+ optional :unit,
2535
+ enum: -> {
2536
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit
2537
+ }
2538
+
2539
+ # @!method initialize(value:, unit: nil)
2540
+ # Defines the length of the access schedule for each created commit/credit. The
2541
+ # value represents the number of units. Unit defaults to "PERIODS", where the
2542
+ # length of a period is determined by the recurrence_frequency.
1946
2543
  #
1947
- # @param unit [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit]
1948
2544
  # @param value [Float]
2545
+ # @param unit [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit]
1949
2546
 
1950
2547
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::CommitDuration#unit
1951
2548
  module Unit
@@ -1990,7 +2587,7 @@ module MetronomeSDK
1990
2587
  # The frequency at which the recurring commits will be created. If not provided: -
1991
2588
  # The commits will be created on the usage invoice frequency. If provided: - The
1992
2589
  # period defined in the duration will correspond to this frequency. - Commits will
1993
- # be created aligned with the recurring commit's start_date rather than the usage
2590
+ # be created aligned with the recurring commit's starting_at rather than the usage
1994
2591
  # invoice dates.
1995
2592
  #
1996
2593
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit#recurrence_frequency
@@ -2005,6 +2602,44 @@ module MetronomeSDK
2005
2602
  # @!method self.values
2006
2603
  # @return [Array<Symbol>]
2007
2604
  end
2605
+
2606
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
2607
+ # @!attribute presentation_group_values
2608
+ #
2609
+ # @return [Hash{Symbol=>String}, nil]
2610
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2611
+
2612
+ # @!attribute pricing_group_values
2613
+ #
2614
+ # @return [Hash{Symbol=>String}, nil]
2615
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2616
+
2617
+ # @!attribute product_id
2618
+ # If provided, the specifier will only apply to the product with the specified ID.
2619
+ #
2620
+ # @return [String, nil]
2621
+ optional :product_id, String
2622
+
2623
+ # @!attribute product_tags
2624
+ # If provided, the specifier will only apply to products with all the specified
2625
+ # tags.
2626
+ #
2627
+ # @return [Array<String>, nil]
2628
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
2629
+
2630
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
2631
+ # Some parameter documentations has been truncated, see
2632
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::Specifier}
2633
+ # for more details.
2634
+ #
2635
+ # @param presentation_group_values [Hash{Symbol=>String}]
2636
+ #
2637
+ # @param pricing_group_values [Hash{Symbol=>String}]
2638
+ #
2639
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
2640
+ #
2641
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
2642
+ end
2008
2643
  end
2009
2644
 
2010
2645
  class AddResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel
@@ -2012,7 +2647,7 @@ module MetronomeSDK
2012
2647
  #
2013
2648
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddResellerRoyalty::ResellerType]
2014
2649
  required :reseller_type,
2015
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddResellerRoyalty::ResellerType }
2650
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty::ResellerType }
2016
2651
 
2017
2652
  # @!attribute applicable_product_ids
2018
2653
  # Must provide at least one of applicable_product_ids or applicable_product_tags.
@@ -2029,7 +2664,7 @@ module MetronomeSDK
2029
2664
  # @!attribute aws_options
2030
2665
  #
2031
2666
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddResellerRoyalty::AwsOptions, nil]
2032
- optional :aws_options, -> { MetronomeSDK::Models::V2::ContractEditParams::AddResellerRoyalty::AwsOptions }
2667
+ optional :aws_options, -> { MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty::AwsOptions }
2033
2668
 
2034
2669
  # @!attribute ending_before
2035
2670
  # Use null to indicate that the existing end timestamp should be removed.
@@ -2045,7 +2680,7 @@ module MetronomeSDK
2045
2680
  # @!attribute gcp_options
2046
2681
  #
2047
2682
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddResellerRoyalty::GcpOptions, nil]
2048
- optional :gcp_options, -> { MetronomeSDK::Models::V2::ContractEditParams::AddResellerRoyalty::GcpOptions }
2683
+ optional :gcp_options, -> { MetronomeSDK::V2::ContractEditParams::AddResellerRoyalty::GcpOptions }
2049
2684
 
2050
2685
  # @!attribute netsuite_reseller_id
2051
2686
  #
@@ -2147,7 +2782,7 @@ module MetronomeSDK
2147
2782
  # Must provide either schedule_items or recurring_schedule.
2148
2783
  #
2149
2784
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule]
2150
- required :schedule, -> { MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule }
2785
+ required :schedule, -> { MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule }
2151
2786
 
2152
2787
  # @!attribute name
2153
2788
  # displayed on invoices
@@ -2185,14 +2820,18 @@ module MetronomeSDK
2185
2820
  #
2186
2821
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule, nil]
2187
2822
  optional :recurring_schedule,
2188
- -> { MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule }
2823
+ -> {
2824
+ MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule
2825
+ }
2189
2826
 
2190
2827
  # @!attribute schedule_items
2191
2828
  # Either provide amount or provide both unit_price and quantity.
2192
2829
  #
2193
2830
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::ScheduleItem>, nil]
2194
2831
  optional :schedule_items,
2195
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::ScheduleItem] }
2832
+ -> {
2833
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::ScheduleItem]
2834
+ }
2196
2835
 
2197
2836
  # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
2198
2837
  # Some parameter documentations has been truncated, see
@@ -2204,7 +2843,6 @@ module MetronomeSDK
2204
2843
  # @param credit_type_id [String] Defaults to USD if not passed. Only USD is supported at this time.
2205
2844
  #
2206
2845
  # @param recurring_schedule [MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
2207
- # ...
2208
2846
  #
2209
2847
  # @param schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
2210
2848
 
@@ -2214,7 +2852,9 @@ module MetronomeSDK
2214
2852
  #
2215
2853
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::AmountDistribution]
2216
2854
  required :amount_distribution,
2217
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::AmountDistribution }
2855
+ enum: -> {
2856
+ MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::AmountDistribution
2857
+ }
2218
2858
 
2219
2859
  # @!attribute ending_before
2220
2860
  # RFC 3339 timestamp (exclusive).
@@ -2226,7 +2866,9 @@ module MetronomeSDK
2226
2866
  #
2227
2867
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::Frequency]
2228
2868
  required :frequency,
2229
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::Frequency }
2869
+ enum: -> {
2870
+ MetronomeSDK::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule::Frequency
2871
+ }
2230
2872
 
2231
2873
  # @!attribute starting_at
2232
2874
  # RFC 3339 timestamp (inclusive).
@@ -2276,13 +2918,10 @@ module MetronomeSDK
2276
2918
  # @param starting_at [Time] RFC 3339 timestamp (inclusive).
2277
2919
  #
2278
2920
  # @param amount [Float] Amount for the charge. Can be provided instead of unit_price and quantity. If am
2279
- # ...
2280
2921
  #
2281
2922
  # @param quantity [Float] Quantity for the charge. Will be multiplied by unit_price to determine the amoun
2282
- # ...
2283
2923
  #
2284
2924
  # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
2285
- # ...
2286
2925
 
2287
2926
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddScheduledCharge::Schedule::RecurringSchedule#amount_distribution
2288
2927
  module AmountDistribution
@@ -2350,13 +2989,10 @@ module MetronomeSDK
2350
2989
  # @param timestamp [Time] timestamp of the scheduled event
2351
2990
  #
2352
2991
  # @param amount [Float] Amount for the charge. Can be provided instead of unit_price and quantity. If am
2353
- # ...
2354
2992
  #
2355
2993
  # @param quantity [Float] Quantity for the charge. Will be multiplied by unit_price to determine the amoun
2356
- # ...
2357
2994
  #
2358
2995
  # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
2359
- # ...
2360
2996
  end
2361
2997
  end
2362
2998
  end
@@ -2366,7 +3002,9 @@ module MetronomeSDK
2366
3002
  #
2367
3003
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::Commit]
2368
3004
  required :commit,
2369
- -> { MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::Commit }
3005
+ -> {
3006
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::Commit
3007
+ }
2370
3008
 
2371
3009
  # @!attribute is_enabled
2372
3010
  # When set to false, the contract will not be evaluated against the
@@ -2380,7 +3018,9 @@ module MetronomeSDK
2380
3018
  #
2381
3019
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig]
2382
3020
  required :payment_gate_config,
2383
- -> { MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig }
3021
+ -> {
3022
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig
3023
+ }
2384
3024
 
2385
3025
  # @!attribute threshold_amount
2386
3026
  # Specify the threshold amount for the contract. Each time the contract's usage
@@ -2397,12 +3037,10 @@ module MetronomeSDK
2397
3037
  # @param commit [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::Commit]
2398
3038
  #
2399
3039
  # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
2400
- # ...
2401
3040
  #
2402
3041
  # @param payment_gate_config [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig]
2403
3042
  #
2404
3043
  # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's usage hi
2405
- # ...
2406
3044
 
2407
3045
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration#commit
2408
3046
  class Commit < MetronomeSDK::Internal::Type::BaseModel
@@ -2431,12 +3069,10 @@ module MetronomeSDK
2431
3069
  # for more details.
2432
3070
  #
2433
3071
  # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
2434
- # ...
2435
3072
  #
2436
3073
  # @param description [String]
2437
3074
  #
2438
3075
  # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
2439
- # ...
2440
3076
  end
2441
3077
 
2442
3078
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration#payment_gate_config
@@ -2449,14 +3085,18 @@ module MetronomeSDK
2449
3085
  #
2450
3086
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType]
2451
3087
  required :payment_gate_type,
2452
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType }
3088
+ enum: -> {
3089
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType
3090
+ }
2453
3091
 
2454
3092
  # @!attribute stripe_config
2455
3093
  # Only applicable if using Stripe as your payment gateway through Metronome.
2456
3094
  #
2457
3095
  # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
2458
3096
  optional :stripe_config,
2459
- -> { MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig }
3097
+ -> {
3098
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig
3099
+ }
2460
3100
 
2461
3101
  # @!attribute tax_type
2462
3102
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
@@ -2465,7 +3105,9 @@ module MetronomeSDK
2465
3105
  #
2466
3106
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType, nil]
2467
3107
  optional :tax_type,
2468
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType }
3108
+ enum: -> {
3109
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType
3110
+ }
2469
3111
 
2470
3112
  # @!method initialize(payment_gate_type:, stripe_config: nil, tax_type: nil)
2471
3113
  # Some parameter documentations has been truncated, see
@@ -2473,12 +3115,10 @@ module MetronomeSDK
2473
3115
  # for more details.
2474
3116
  #
2475
3117
  # @param payment_gate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
2476
- # ...
2477
3118
  #
2478
3119
  # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using Stripe as your payment gateway through Metronome.
2479
3120
  #
2480
3121
  # @param tax_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
2481
- # ...
2482
3122
 
2483
3123
  # Gate access to the commit balance based on successful collection of payment.
2484
3124
  # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
@@ -2504,7 +3144,9 @@ module MetronomeSDK
2504
3144
  #
2505
3145
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
2506
3146
  required :payment_type,
2507
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType }
3147
+ enum: -> {
3148
+ MetronomeSDK::V2::ContractEditParams::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
3149
+ }
2508
3150
 
2509
3151
  # @!method initialize(payment_type:)
2510
3152
  # Only applicable if using Stripe as your payment gateway through Metronome.
@@ -2542,6 +3184,183 @@ module MetronomeSDK
2542
3184
  end
2543
3185
  end
2544
3186
 
3187
+ class AddSubscription < MetronomeSDK::Internal::Type::BaseModel
3188
+ # @!attribute collection_schedule
3189
+ #
3190
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::CollectionSchedule]
3191
+ required :collection_schedule,
3192
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::CollectionSchedule }
3193
+
3194
+ # @!attribute initial_quantity
3195
+ #
3196
+ # @return [Float]
3197
+ required :initial_quantity, Float
3198
+
3199
+ # @!attribute proration
3200
+ #
3201
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration]
3202
+ required :proration, -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::Proration }
3203
+
3204
+ # @!attribute subscription_rate
3205
+ #
3206
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SubscriptionRate]
3207
+ required :subscription_rate,
3208
+ -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::SubscriptionRate }
3209
+
3210
+ # @!attribute custom_fields
3211
+ #
3212
+ # @return [Hash{Symbol=>String}, nil]
3213
+ optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
3214
+
3215
+ # @!attribute description
3216
+ #
3217
+ # @return [String, nil]
3218
+ optional :description, String
3219
+
3220
+ # @!attribute ending_before
3221
+ # Exclusive end time for the subscription. If not provided, subscription inherits
3222
+ # contract end date.
3223
+ #
3224
+ # @return [Time, nil]
3225
+ optional :ending_before, Time
3226
+
3227
+ # @!attribute name
3228
+ #
3229
+ # @return [String, nil]
3230
+ optional :name, String
3231
+
3232
+ # @!attribute starting_at
3233
+ # Inclusive start time for the subscription. If not provided, defaults to contract
3234
+ # start date
3235
+ #
3236
+ # @return [Time, nil]
3237
+ optional :starting_at, Time
3238
+
3239
+ # @!method initialize(collection_schedule:, initial_quantity:, proration:, subscription_rate:, custom_fields: nil, description: nil, ending_before: nil, name: nil, starting_at: nil)
3240
+ # Some parameter documentations has been truncated, see
3241
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription} for more
3242
+ # details.
3243
+ #
3244
+ # @param collection_schedule [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::CollectionSchedule]
3245
+ #
3246
+ # @param initial_quantity [Float]
3247
+ #
3248
+ # @param proration [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration]
3249
+ #
3250
+ # @param subscription_rate [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SubscriptionRate]
3251
+ #
3252
+ # @param custom_fields [Hash{Symbol=>String}]
3253
+ #
3254
+ # @param description [String]
3255
+ #
3256
+ # @param ending_before [Time] Exclusive end time for the subscription. If not provided, subscription inherits
3257
+ #
3258
+ # @param name [String]
3259
+ #
3260
+ # @param starting_at [Time] Inclusive start time for the subscription. If not provided, defaults to contract
3261
+
3262
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription#collection_schedule
3263
+ module CollectionSchedule
3264
+ extend MetronomeSDK::Internal::Type::Enum
3265
+
3266
+ ADVANCE = :ADVANCE
3267
+ ARREARS = :ARREARS
3268
+
3269
+ # @!method self.values
3270
+ # @return [Array<Symbol>]
3271
+ end
3272
+
3273
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription#proration
3274
+ class Proration < MetronomeSDK::Internal::Type::BaseModel
3275
+ # @!attribute invoice_behavior
3276
+ # Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
3277
+ # is selected, the quantity increase will be billed on the scheduled date. If
3278
+ # BILL_ON_NEXT_COLLECTION_DATE is selected, the quantity increase will be billed
3279
+ # for in-arrears at the end of the period.
3280
+ #
3281
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration::InvoiceBehavior, nil]
3282
+ optional :invoice_behavior,
3283
+ enum: -> {
3284
+ MetronomeSDK::V2::ContractEditParams::AddSubscription::Proration::InvoiceBehavior
3285
+ }
3286
+
3287
+ # @!attribute is_prorated
3288
+ # Indicates if the partial period will be prorated or charged a full amount.
3289
+ #
3290
+ # @return [Boolean, nil]
3291
+ optional :is_prorated, MetronomeSDK::Internal::Type::Boolean
3292
+
3293
+ # @!method initialize(invoice_behavior: nil, is_prorated: nil)
3294
+ # Some parameter documentations has been truncated, see
3295
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration} for
3296
+ # more details.
3297
+ #
3298
+ # @param invoice_behavior [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration::InvoiceBehavior] Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
3299
+ #
3300
+ # @param is_prorated [Boolean] Indicates if the partial period will be prorated or charged a full amount.
3301
+
3302
+ # Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
3303
+ # is selected, the quantity increase will be billed on the scheduled date. If
3304
+ # BILL_ON_NEXT_COLLECTION_DATE is selected, the quantity increase will be billed
3305
+ # for in-arrears at the end of the period.
3306
+ #
3307
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::Proration#invoice_behavior
3308
+ module InvoiceBehavior
3309
+ extend MetronomeSDK::Internal::Type::Enum
3310
+
3311
+ BILL_IMMEDIATELY = :BILL_IMMEDIATELY
3312
+ BILL_ON_NEXT_COLLECTION_DATE = :BILL_ON_NEXT_COLLECTION_DATE
3313
+
3314
+ # @!method self.values
3315
+ # @return [Array<Symbol>]
3316
+ end
3317
+ end
3318
+
3319
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription#subscription_rate
3320
+ class SubscriptionRate < MetronomeSDK::Internal::Type::BaseModel
3321
+ # @!attribute billing_frequency
3322
+ # Frequency to bill subscription with. Together with product_id, must match
3323
+ # existing rate on the rate card.
3324
+ #
3325
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SubscriptionRate::BillingFrequency]
3326
+ required :billing_frequency,
3327
+ enum: -> {
3328
+ MetronomeSDK::V2::ContractEditParams::AddSubscription::SubscriptionRate::BillingFrequency
3329
+ }
3330
+
3331
+ # @!attribute product_id
3332
+ # Must be subscription type product
3333
+ #
3334
+ # @return [String]
3335
+ required :product_id, String
3336
+
3337
+ # @!method initialize(billing_frequency:, product_id:)
3338
+ # Some parameter documentations has been truncated, see
3339
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SubscriptionRate}
3340
+ # for more details.
3341
+ #
3342
+ # @param billing_frequency [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SubscriptionRate::BillingFrequency] Frequency to bill subscription with. Together with product_id, must match existi
3343
+ #
3344
+ # @param product_id [String] Must be subscription type product
3345
+
3346
+ # Frequency to bill subscription with. Together with product_id, must match
3347
+ # existing rate on the rate card.
3348
+ #
3349
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SubscriptionRate#billing_frequency
3350
+ module BillingFrequency
3351
+ extend MetronomeSDK::Internal::Type::Enum
3352
+
3353
+ MONTHLY = :MONTHLY
3354
+ QUARTERLY = :QUARTERLY
3355
+ ANNUAL = :ANNUAL
3356
+ WEEKLY = :WEEKLY
3357
+
3358
+ # @!method self.values
3359
+ # @return [Array<Symbol>]
3360
+ end
3361
+ end
3362
+ end
3363
+
2545
3364
  class ArchiveCommit < MetronomeSDK::Internal::Type::BaseModel
2546
3365
  # @!attribute id
2547
3366
  #
@@ -2591,8 +3410,7 @@ module MetronomeSDK
2591
3410
  # @!attribute access_schedule
2592
3411
  #
2593
3412
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule, nil]
2594
- optional :access_schedule,
2595
- -> { MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule }
3413
+ optional :access_schedule, -> { MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule }
2596
3414
 
2597
3415
  # @!attribute applicable_product_ids
2598
3416
  # Which products the commit applies to. If both applicable_product_ids and
@@ -2612,7 +3430,9 @@ module MetronomeSDK
2612
3430
  #
2613
3431
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule, nil]
2614
3432
  optional :invoice_schedule,
2615
- -> { MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule }
3433
+ -> {
3434
+ MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule
3435
+ }
2616
3436
 
2617
3437
  # @!attribute netsuite_sales_order_id
2618
3438
  #
@@ -2638,10 +3458,8 @@ module MetronomeSDK
2638
3458
  # @param access_schedule [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule]
2639
3459
  #
2640
3460
  # @param applicable_product_ids [Array<String>, nil] Which products the commit applies to. If both applicable_product_ids and applica
2641
- # ...
2642
3461
  #
2643
3462
  # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If both applicable*product_ids and applicable*
2644
- # ...
2645
3463
  #
2646
3464
  # @param invoice_schedule [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule]
2647
3465
  #
@@ -2657,19 +3475,25 @@ module MetronomeSDK
2657
3475
  #
2658
3476
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule::AddScheduleItem>, nil]
2659
3477
  optional :add_schedule_items,
2660
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule::AddScheduleItem] }
3478
+ -> {
3479
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::AddScheduleItem]
3480
+ }
2661
3481
 
2662
3482
  # @!attribute remove_schedule_items
2663
3483
  #
2664
3484
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule::RemoveScheduleItem>, nil]
2665
3485
  optional :remove_schedule_items,
2666
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule::RemoveScheduleItem] }
3486
+ -> {
3487
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::RemoveScheduleItem]
3488
+ }
2667
3489
 
2668
3490
  # @!attribute update_schedule_items
2669
3491
  #
2670
3492
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule::UpdateScheduleItem>, nil]
2671
3493
  optional :update_schedule_items,
2672
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule::UpdateScheduleItem] }
3494
+ -> {
3495
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::UpdateScheduleItem]
3496
+ }
2673
3497
 
2674
3498
  # @!method initialize(add_schedule_items: nil, remove_schedule_items: nil, update_schedule_items: nil)
2675
3499
  # @param add_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::AccessSchedule::AddScheduleItem>]
@@ -2743,19 +3567,25 @@ module MetronomeSDK
2743
3567
  #
2744
3568
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::AddScheduleItem>, nil]
2745
3569
  optional :add_schedule_items,
2746
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::AddScheduleItem] }
3570
+ -> {
3571
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::AddScheduleItem]
3572
+ }
2747
3573
 
2748
3574
  # @!attribute remove_schedule_items
2749
3575
  #
2750
3576
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::RemoveScheduleItem>, nil]
2751
3577
  optional :remove_schedule_items,
2752
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::RemoveScheduleItem] }
3578
+ -> {
3579
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::RemoveScheduleItem]
3580
+ }
2753
3581
 
2754
3582
  # @!attribute update_schedule_items
2755
3583
  #
2756
3584
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::UpdateScheduleItem>, nil]
2757
3585
  optional :update_schedule_items,
2758
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::UpdateScheduleItem] }
3586
+ -> {
3587
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::UpdateScheduleItem]
3588
+ }
2759
3589
 
2760
3590
  # @!method initialize(add_schedule_items: nil, remove_schedule_items: nil, update_schedule_items: nil)
2761
3591
  # @param add_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::AddScheduleItem>]
@@ -2790,190 +3620,567 @@ module MetronomeSDK
2790
3620
  # @param unit_price [Float]
2791
3621
  end
2792
3622
 
2793
- class RemoveScheduleItem < MetronomeSDK::Internal::Type::BaseModel
2794
- # @!attribute id
2795
- #
2796
- # @return [String]
2797
- required :id, String
3623
+ class RemoveScheduleItem < MetronomeSDK::Internal::Type::BaseModel
3624
+ # @!attribute id
3625
+ #
3626
+ # @return [String]
3627
+ required :id, String
3628
+
3629
+ # @!method initialize(id:)
3630
+ # @param id [String]
3631
+ end
3632
+
3633
+ class UpdateScheduleItem < MetronomeSDK::Internal::Type::BaseModel
3634
+ # @!attribute id
3635
+ #
3636
+ # @return [String]
3637
+ required :id, String
3638
+
3639
+ # @!attribute amount
3640
+ #
3641
+ # @return [Float, nil]
3642
+ optional :amount, Float
3643
+
3644
+ # @!attribute quantity
3645
+ #
3646
+ # @return [Float, nil]
3647
+ optional :quantity, Float
3648
+
3649
+ # @!attribute timestamp
3650
+ #
3651
+ # @return [Time, nil]
3652
+ optional :timestamp, Time
3653
+
3654
+ # @!attribute unit_price
3655
+ #
3656
+ # @return [Float, nil]
3657
+ optional :unit_price, Float
3658
+
3659
+ # @!method initialize(id:, amount: nil, quantity: nil, timestamp: nil, unit_price: nil)
3660
+ # @param id [String]
3661
+ # @param amount [Float]
3662
+ # @param quantity [Float]
3663
+ # @param timestamp [Time]
3664
+ # @param unit_price [Float]
3665
+ end
3666
+ end
3667
+ end
3668
+
3669
+ class UpdateCredit < MetronomeSDK::Internal::Type::BaseModel
3670
+ # @!attribute credit_id
3671
+ #
3672
+ # @return [String]
3673
+ required :credit_id, String
3674
+
3675
+ # @!attribute access_schedule
3676
+ #
3677
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule, nil]
3678
+ optional :access_schedule, -> { MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule }
3679
+
3680
+ # @!attribute applicable_product_ids
3681
+ # Which products the commit applies to. If both applicable_product_ids and
3682
+ # applicable_product_tags are not provided, the commit applies to all products.
3683
+ #
3684
+ # @return [Array<String>, nil]
3685
+ optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
3686
+
3687
+ # @!attribute applicable_product_tags
3688
+ # Which tags the commit applies to. If both applicable_product_ids and
3689
+ # applicable_product_tags are not provided, the commit applies to all products.
3690
+ #
3691
+ # @return [Array<String>, nil]
3692
+ optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
3693
+
3694
+ # @!attribute netsuite_sales_order_id
3695
+ #
3696
+ # @return [String, nil]
3697
+ optional :netsuite_sales_order_id, String, nil?: true
3698
+
3699
+ # @!attribute product_id
3700
+ #
3701
+ # @return [String, nil]
3702
+ optional :product_id, String
3703
+
3704
+ # @!method initialize(credit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, netsuite_sales_order_id: nil, product_id: nil)
3705
+ # Some parameter documentations has been truncated, see
3706
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit} for more details.
3707
+ #
3708
+ # @param credit_id [String]
3709
+ #
3710
+ # @param access_schedule [MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule]
3711
+ #
3712
+ # @param applicable_product_ids [Array<String>, nil] Which products the commit applies to. If both applicable_product_ids and applica
3713
+ #
3714
+ # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If both applicable*product_ids and applicable*
3715
+ #
3716
+ # @param netsuite_sales_order_id [String, nil]
3717
+ #
3718
+ # @param product_id [String]
3719
+
3720
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit#access_schedule
3721
+ class AccessSchedule < MetronomeSDK::Internal::Type::BaseModel
3722
+ # @!attribute add_schedule_items
3723
+ #
3724
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::AddScheduleItem>, nil]
3725
+ optional :add_schedule_items,
3726
+ -> {
3727
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::AddScheduleItem]
3728
+ }
3729
+
3730
+ # @!attribute remove_schedule_items
3731
+ #
3732
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::RemoveScheduleItem>, nil]
3733
+ optional :remove_schedule_items,
3734
+ -> {
3735
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::RemoveScheduleItem]
3736
+ }
3737
+
3738
+ # @!attribute update_schedule_items
3739
+ #
3740
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::UpdateScheduleItem>, nil]
3741
+ optional :update_schedule_items,
3742
+ -> {
3743
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::UpdateScheduleItem]
3744
+ }
3745
+
3746
+ # @!method initialize(add_schedule_items: nil, remove_schedule_items: nil, update_schedule_items: nil)
3747
+ # @param add_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::AddScheduleItem>]
3748
+ # @param remove_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::RemoveScheduleItem>]
3749
+ # @param update_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::UpdateScheduleItem>]
3750
+
3751
+ class AddScheduleItem < MetronomeSDK::Internal::Type::BaseModel
3752
+ # @!attribute amount
3753
+ #
3754
+ # @return [Float]
3755
+ required :amount, Float
3756
+
3757
+ # @!attribute ending_before
3758
+ #
3759
+ # @return [Time]
3760
+ required :ending_before, Time
3761
+
3762
+ # @!attribute starting_at
3763
+ #
3764
+ # @return [Time]
3765
+ required :starting_at, Time
3766
+
3767
+ # @!method initialize(amount:, ending_before:, starting_at:)
3768
+ # @param amount [Float]
3769
+ # @param ending_before [Time]
3770
+ # @param starting_at [Time]
3771
+ end
3772
+
3773
+ class RemoveScheduleItem < MetronomeSDK::Internal::Type::BaseModel
3774
+ # @!attribute id
3775
+ #
3776
+ # @return [String]
3777
+ required :id, String
3778
+
3779
+ # @!method initialize(id:)
3780
+ # @param id [String]
3781
+ end
3782
+
3783
+ class UpdateScheduleItem < MetronomeSDK::Internal::Type::BaseModel
3784
+ # @!attribute id
3785
+ #
3786
+ # @return [String]
3787
+ required :id, String
3788
+
3789
+ # @!attribute amount
3790
+ #
3791
+ # @return [Float, nil]
3792
+ optional :amount, Float
3793
+
3794
+ # @!attribute ending_before
3795
+ #
3796
+ # @return [Time, nil]
3797
+ optional :ending_before, Time
3798
+
3799
+ # @!attribute starting_at
3800
+ #
3801
+ # @return [Time, nil]
3802
+ optional :starting_at, Time
3803
+
3804
+ # @!method initialize(id:, amount: nil, ending_before: nil, starting_at: nil)
3805
+ # @param id [String]
3806
+ # @param amount [Float]
3807
+ # @param ending_before [Time]
3808
+ # @param starting_at [Time]
3809
+ end
3810
+ end
3811
+ end
3812
+
3813
+ class UpdatePrepaidBalanceThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
3814
+ # @!attribute commit
3815
+ #
3816
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit, nil]
3817
+ optional :commit,
3818
+ -> {
3819
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit
3820
+ }
3821
+
3822
+ # @!attribute is_enabled
3823
+ # When set to false, the contract will not be evaluated against the
3824
+ # threshold_amount. Toggling to true will result an immediate evaluation,
3825
+ # regardless of prior state.
3826
+ #
3827
+ # @return [Boolean, nil]
3828
+ optional :is_enabled, MetronomeSDK::Internal::Type::Boolean
3829
+
3830
+ # @!attribute payment_gate_config
3831
+ #
3832
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig, nil]
3833
+ optional :payment_gate_config,
3834
+ -> {
3835
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig
3836
+ }
3837
+
3838
+ # @!attribute recharge_to_amount
3839
+ # Specify the amount the balance should be recharged to.
3840
+ #
3841
+ # @return [Float, nil]
3842
+ optional :recharge_to_amount, Float
3843
+
3844
+ # @!attribute threshold_amount
3845
+ # Specify the threshold amount for the contract. Each time the contract's balance
3846
+ # lowers to this amount, a threshold charge will be initiated.
3847
+ #
3848
+ # @return [Float, nil]
3849
+ optional :threshold_amount, Float
3850
+
3851
+ # @!method initialize(commit: nil, is_enabled: nil, payment_gate_config: nil, recharge_to_amount: nil, threshold_amount: nil)
3852
+ # Some parameter documentations has been truncated, see
3853
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration}
3854
+ # for more details.
3855
+ #
3856
+ # @param commit [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit]
3857
+ #
3858
+ # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
3859
+ #
3860
+ # @param payment_gate_config [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig]
3861
+ #
3862
+ # @param recharge_to_amount [Float] Specify the amount the balance should be recharged to.
3863
+ #
3864
+ # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's balance
3865
+
3866
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration#commit
3867
+ class Commit < MetronomeSDK::Internal::Type::BaseModel
3868
+ # @!attribute applicable_product_ids
3869
+ # Which products the threshold commit applies to. If both applicable_product_ids
3870
+ # and applicable_product_tags are not provided, the commit applies to all
3871
+ # products.
3872
+ #
3873
+ # @return [Array<String>, nil]
3874
+ optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
3875
+
3876
+ # @!attribute applicable_product_tags
3877
+ # Which tags the threshold commit applies to. If both applicable_product_ids and
3878
+ # applicable_product_tags are not provided, the commit applies to all products.
3879
+ #
3880
+ # @return [Array<String>, nil]
3881
+ optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
3882
+
3883
+ # @!attribute description
3884
+ #
3885
+ # @return [String, nil]
3886
+ optional :description, String
3887
+
3888
+ # @!attribute name
3889
+ # Specify the name of the line item for the threshold charge. If left blank, it
3890
+ # will default to the commit product name.
3891
+ #
3892
+ # @return [String, nil]
3893
+ optional :name, String
3894
+
3895
+ # @!attribute product_id
3896
+ # The commit product that will be used to generate the line item for commit
3897
+ # payment.
3898
+ #
3899
+ # @return [String, nil]
3900
+ optional :product_id, String
3901
+
3902
+ # @!attribute specifiers
3903
+ # List of filters that determine what kind of customer usage draws down a commit
3904
+ # or credit. A customer's usage needs to meet the condition of at least one of the
3905
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
3906
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
3907
+ #
3908
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier>, nil]
3909
+ optional :specifiers,
3910
+ -> {
3911
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier]
3912
+ }
3913
+
3914
+ # @!method initialize(applicable_product_ids: nil, applicable_product_tags: nil, description: nil, name: nil, product_id: nil, specifiers: nil)
3915
+ # Some parameter documentations has been truncated, see
3916
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit}
3917
+ # for more details.
3918
+ #
3919
+ # @param applicable_product_ids [Array<String>] Which products the threshold commit applies to. If both applicable_product_ids a
3920
+ #
3921
+ # @param applicable_product_tags [Array<String>] Which tags the threshold commit applies to. If both applicable_product_ids and a
3922
+ #
3923
+ # @param description [String]
3924
+ #
3925
+ # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
3926
+ #
3927
+ # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
3928
+ #
3929
+ # @param specifiers [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
3930
+
3931
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
3932
+ # @!attribute presentation_group_values
3933
+ #
3934
+ # @return [Hash{Symbol=>String}, nil]
3935
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
3936
+
3937
+ # @!attribute pricing_group_values
3938
+ #
3939
+ # @return [Hash{Symbol=>String}, nil]
3940
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
3941
+
3942
+ # @!attribute product_id
3943
+ # If provided, the specifier will only apply to the product with the specified ID.
3944
+ #
3945
+ # @return [String, nil]
3946
+ optional :product_id, String
3947
+
3948
+ # @!attribute product_tags
3949
+ # If provided, the specifier will only apply to products with all the specified
3950
+ # tags.
3951
+ #
3952
+ # @return [Array<String>, nil]
3953
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
3954
+
3955
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
3956
+ # Some parameter documentations has been truncated, see
3957
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier}
3958
+ # for more details.
3959
+ #
3960
+ # @param presentation_group_values [Hash{Symbol=>String}]
3961
+ #
3962
+ # @param pricing_group_values [Hash{Symbol=>String}]
3963
+ #
3964
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
3965
+ #
3966
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
3967
+ end
3968
+ end
3969
+
3970
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration#payment_gate_config
3971
+ class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
3972
+ # @!attribute payment_gate_type
3973
+ # Gate access to the commit balance based on successful collection of payment.
3974
+ # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
3975
+ # facilitate payment using your own payment integration. Select NONE if you do not
3976
+ # wish to payment gate the commit balance.
3977
+ #
3978
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType]
3979
+ required :payment_gate_type,
3980
+ enum: -> {
3981
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType
3982
+ }
3983
+
3984
+ # @!attribute stripe_config
3985
+ # Only applicable if using Stripe as your payment gateway through Metronome.
3986
+ #
3987
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
3988
+ optional :stripe_config,
3989
+ -> {
3990
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig
3991
+ }
3992
+
3993
+ # @!attribute tax_type
3994
+ # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
3995
+ # not wish Metronome to calculate tax on your behalf. Leaving this field blank
3996
+ # will default to NONE.
3997
+ #
3998
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType, nil]
3999
+ optional :tax_type,
4000
+ enum: -> {
4001
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType
4002
+ }
4003
+
4004
+ # @!method initialize(payment_gate_type:, stripe_config: nil, tax_type: nil)
4005
+ # Some parameter documentations has been truncated, see
4006
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig}
4007
+ # for more details.
4008
+ #
4009
+ # @param payment_gate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
4010
+ #
4011
+ # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using Stripe as your payment gateway through Metronome.
4012
+ #
4013
+ # @param tax_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
4014
+
4015
+ # Gate access to the commit balance based on successful collection of payment.
4016
+ # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
4017
+ # facilitate payment using your own payment integration. Select NONE if you do not
4018
+ # wish to payment gate the commit balance.
4019
+ #
4020
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig#payment_gate_type
4021
+ module PaymentGateType
4022
+ extend MetronomeSDK::Internal::Type::Enum
4023
+
4024
+ NONE = :NONE
4025
+ STRIPE = :STRIPE
4026
+ EXTERNAL = :EXTERNAL
2798
4027
 
2799
- # @!method initialize(id:)
2800
- # @param id [String]
4028
+ # @!method self.values
4029
+ # @return [Array<Symbol>]
2801
4030
  end
2802
4031
 
2803
- class UpdateScheduleItem < MetronomeSDK::Internal::Type::BaseModel
2804
- # @!attribute id
4032
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig#stripe_config
4033
+ class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
4034
+ # @!attribute payment_type
4035
+ # If left blank, will default to INVOICE
2805
4036
  #
2806
- # @return [String]
2807
- required :id, String
4037
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
4038
+ required :payment_type,
4039
+ enum: -> {
4040
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
4041
+ }
2808
4042
 
2809
- # @!attribute amount
4043
+ # @!method initialize(payment_type:)
4044
+ # Only applicable if using Stripe as your payment gateway through Metronome.
2810
4045
  #
2811
- # @return [Float, nil]
2812
- optional :amount, Float
4046
+ # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
2813
4047
 
2814
- # @!attribute quantity
4048
+ # If left blank, will default to INVOICE
2815
4049
  #
2816
- # @return [Float, nil]
2817
- optional :quantity, Float
4050
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
4051
+ module PaymentType
4052
+ extend MetronomeSDK::Internal::Type::Enum
2818
4053
 
2819
- # @!attribute timestamp
2820
- #
2821
- # @return [Time, nil]
2822
- optional :timestamp, Time
4054
+ INVOICE = :INVOICE
4055
+ PAYMENT_INTENT = :PAYMENT_INTENT
2823
4056
 
2824
- # @!attribute unit_price
2825
- #
2826
- # @return [Float, nil]
2827
- optional :unit_price, Float
4057
+ # @!method self.values
4058
+ # @return [Array<Symbol>]
4059
+ end
4060
+ end
2828
4061
 
2829
- # @!method initialize(id:, amount: nil, quantity: nil, timestamp: nil, unit_price: nil)
2830
- # @param id [String]
2831
- # @param amount [Float]
2832
- # @param quantity [Float]
2833
- # @param timestamp [Time]
2834
- # @param unit_price [Float]
4062
+ # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
4063
+ # not wish Metronome to calculate tax on your behalf. Leaving this field blank
4064
+ # will default to NONE.
4065
+ #
4066
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig#tax_type
4067
+ module TaxType
4068
+ extend MetronomeSDK::Internal::Type::Enum
4069
+
4070
+ NONE = :NONE
4071
+ STRIPE = :STRIPE
4072
+
4073
+ # @!method self.values
4074
+ # @return [Array<Symbol>]
2835
4075
  end
2836
4076
  end
2837
4077
  end
2838
4078
 
2839
- class UpdateCredit < MetronomeSDK::Internal::Type::BaseModel
2840
- # @!attribute credit_id
4079
+ class UpdateRecurringCommit < MetronomeSDK::Internal::Type::BaseModel
4080
+ # @!attribute recurring_commit_id
2841
4081
  #
2842
4082
  # @return [String]
2843
- required :credit_id, String
2844
-
2845
- # @!attribute access_schedule
2846
- #
2847
- # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule, nil]
2848
- optional :access_schedule,
2849
- -> { MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule }
2850
-
2851
- # @!attribute applicable_product_ids
2852
- # Which products the commit applies to. If both applicable_product_ids and
2853
- # applicable_product_tags are not provided, the commit applies to all products.
2854
- #
2855
- # @return [Array<String>, nil]
2856
- optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
2857
-
2858
- # @!attribute applicable_product_tags
2859
- # Which tags the commit applies to. If both applicable_product_ids and
2860
- # applicable_product_tags are not provided, the commit applies to all products.
2861
- #
2862
- # @return [Array<String>, nil]
2863
- optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
4083
+ required :recurring_commit_id, String
2864
4084
 
2865
- # @!attribute netsuite_sales_order_id
4085
+ # @!attribute access_amount
2866
4086
  #
2867
- # @return [String, nil]
2868
- optional :netsuite_sales_order_id, String, nil?: true
4087
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::AccessAmount, nil]
4088
+ optional :access_amount,
4089
+ -> {
4090
+ MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit::AccessAmount
4091
+ }
2869
4092
 
2870
- # @!attribute product_id
4093
+ # @!attribute ending_before
2871
4094
  #
2872
- # @return [String, nil]
2873
- optional :product_id, String
4095
+ # @return [Time, nil]
4096
+ optional :ending_before, Time, nil?: true
2874
4097
 
2875
- # @!method initialize(credit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, netsuite_sales_order_id: nil, product_id: nil)
2876
- # Some parameter documentations has been truncated, see
2877
- # {MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit} for more details.
2878
- #
2879
- # @param credit_id [String]
2880
- #
2881
- # @param access_schedule [MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule]
2882
- #
2883
- # @param applicable_product_ids [Array<String>, nil] Which products the commit applies to. If both applicable_product_ids and applica
2884
- # ...
2885
- #
2886
- # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If both applicable*product_ids and applicable*
2887
- # ...
2888
- #
2889
- # @param netsuite_sales_order_id [String, nil]
4098
+ # @!attribute invoice_amount
2890
4099
  #
2891
- # @param product_id [String]
4100
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::InvoiceAmount, nil]
4101
+ optional :invoice_amount,
4102
+ -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit::InvoiceAmount }
2892
4103
 
2893
- # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit#access_schedule
2894
- class AccessSchedule < MetronomeSDK::Internal::Type::BaseModel
2895
- # @!attribute add_schedule_items
2896
- #
2897
- # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::AddScheduleItem>, nil]
2898
- optional :add_schedule_items,
2899
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::AddScheduleItem] }
4104
+ # @!method initialize(recurring_commit_id:, access_amount: nil, ending_before: nil, invoice_amount: nil)
4105
+ # @param recurring_commit_id [String]
4106
+ # @param access_amount [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::AccessAmount]
4107
+ # @param ending_before [Time, nil]
4108
+ # @param invoice_amount [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::InvoiceAmount]
2900
4109
 
2901
- # @!attribute remove_schedule_items
4110
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit#access_amount
4111
+ class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
4112
+ # @!attribute quantity
2902
4113
  #
2903
- # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::RemoveScheduleItem>, nil]
2904
- optional :remove_schedule_items,
2905
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::RemoveScheduleItem] }
4114
+ # @return [Float, nil]
4115
+ optional :quantity, Float
2906
4116
 
2907
- # @!attribute update_schedule_items
4117
+ # @!attribute unit_price
2908
4118
  #
2909
- # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::UpdateScheduleItem>, nil]
2910
- optional :update_schedule_items,
2911
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::UpdateScheduleItem] }
2912
-
2913
- # @!method initialize(add_schedule_items: nil, remove_schedule_items: nil, update_schedule_items: nil)
2914
- # @param add_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::AddScheduleItem>]
2915
- # @param remove_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::RemoveScheduleItem>]
2916
- # @param update_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule::UpdateScheduleItem>]
4119
+ # @return [Float, nil]
4120
+ optional :unit_price, Float
2917
4121
 
2918
- class AddScheduleItem < MetronomeSDK::Internal::Type::BaseModel
2919
- # @!attribute amount
2920
- #
2921
- # @return [Float]
2922
- required :amount, Float
4122
+ # @!method initialize(quantity: nil, unit_price: nil)
4123
+ # @param quantity [Float]
4124
+ # @param unit_price [Float]
4125
+ end
2923
4126
 
2924
- # @!attribute ending_before
2925
- #
2926
- # @return [Time]
2927
- required :ending_before, Time
4127
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit#invoice_amount
4128
+ class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
4129
+ # @!attribute quantity
4130
+ #
4131
+ # @return [Float, nil]
4132
+ optional :quantity, Float
2928
4133
 
2929
- # @!attribute starting_at
2930
- #
2931
- # @return [Time]
2932
- required :starting_at, Time
4134
+ # @!attribute unit_price
4135
+ #
4136
+ # @return [Float, nil]
4137
+ optional :unit_price, Float
2933
4138
 
2934
- # @!method initialize(amount:, ending_before:, starting_at:)
2935
- # @param amount [Float]
2936
- # @param ending_before [Time]
2937
- # @param starting_at [Time]
2938
- end
4139
+ # @!method initialize(quantity: nil, unit_price: nil)
4140
+ # @param quantity [Float]
4141
+ # @param unit_price [Float]
4142
+ end
4143
+ end
2939
4144
 
2940
- class RemoveScheduleItem < MetronomeSDK::Internal::Type::BaseModel
2941
- # @!attribute id
2942
- #
2943
- # @return [String]
2944
- required :id, String
4145
+ class UpdateRecurringCredit < MetronomeSDK::Internal::Type::BaseModel
4146
+ # @!attribute recurring_credit_id
4147
+ #
4148
+ # @return [String]
4149
+ required :recurring_credit_id, String
2945
4150
 
2946
- # @!method initialize(id:)
2947
- # @param id [String]
2948
- end
4151
+ # @!attribute access_amount
4152
+ #
4153
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::AccessAmount, nil]
4154
+ optional :access_amount,
4155
+ -> {
4156
+ MetronomeSDK::V2::ContractEditParams::UpdateRecurringCredit::AccessAmount
4157
+ }
2949
4158
 
2950
- class UpdateScheduleItem < MetronomeSDK::Internal::Type::BaseModel
2951
- # @!attribute id
2952
- #
2953
- # @return [String]
2954
- required :id, String
4159
+ # @!attribute ending_before
4160
+ #
4161
+ # @return [Time, nil]
4162
+ optional :ending_before, Time, nil?: true
2955
4163
 
2956
- # @!attribute amount
2957
- #
2958
- # @return [Float, nil]
2959
- optional :amount, Float
4164
+ # @!method initialize(recurring_credit_id:, access_amount: nil, ending_before: nil)
4165
+ # @param recurring_credit_id [String]
4166
+ # @param access_amount [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::AccessAmount]
4167
+ # @param ending_before [Time, nil]
2960
4168
 
2961
- # @!attribute ending_before
2962
- #
2963
- # @return [Time, nil]
2964
- optional :ending_before, Time
4169
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit#access_amount
4170
+ class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
4171
+ # @!attribute quantity
4172
+ #
4173
+ # @return [Float, nil]
4174
+ optional :quantity, Float
2965
4175
 
2966
- # @!attribute starting_at
2967
- #
2968
- # @return [Time, nil]
2969
- optional :starting_at, Time
4176
+ # @!attribute unit_price
4177
+ #
4178
+ # @return [Float, nil]
4179
+ optional :unit_price, Float
2970
4180
 
2971
- # @!method initialize(id:, amount: nil, ending_before: nil, starting_at: nil)
2972
- # @param id [String]
2973
- # @param amount [Float]
2974
- # @param ending_before [Time]
2975
- # @param starting_at [Time]
2976
- end
4181
+ # @!method initialize(quantity: nil, unit_price: nil)
4182
+ # @param quantity [Float]
4183
+ # @param unit_price [Float]
2977
4184
  end
2978
4185
  end
2979
4186
 
@@ -2987,7 +4194,7 @@ module MetronomeSDK
2987
4194
  #
2988
4195
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule, nil]
2989
4196
  optional :invoice_schedule,
2990
- -> { MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule }
4197
+ -> { MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule }
2991
4198
 
2992
4199
  # @!attribute netsuite_sales_order_id
2993
4200
  #
@@ -3005,19 +4212,25 @@ module MetronomeSDK
3005
4212
  #
3006
4213
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::AddScheduleItem>, nil]
3007
4214
  optional :add_schedule_items,
3008
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::AddScheduleItem] }
4215
+ -> {
4216
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::AddScheduleItem]
4217
+ }
3009
4218
 
3010
4219
  # @!attribute remove_schedule_items
3011
4220
  #
3012
4221
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::RemoveScheduleItem>, nil]
3013
4222
  optional :remove_schedule_items,
3014
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::RemoveScheduleItem] }
4223
+ -> {
4224
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::RemoveScheduleItem]
4225
+ }
3015
4226
 
3016
4227
  # @!attribute update_schedule_items
3017
4228
  #
3018
4229
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::UpdateScheduleItem>, nil]
3019
4230
  optional :update_schedule_items,
3020
- -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::UpdateScheduleItem] }
4231
+ -> {
4232
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::UpdateScheduleItem]
4233
+ }
3021
4234
 
3022
4235
  # @!method initialize(add_schedule_items: nil, remove_schedule_items: nil, update_schedule_items: nil)
3023
4236
  # @param add_schedule_items [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateScheduledCharge::InvoiceSchedule::AddScheduleItem>]
@@ -3103,7 +4316,9 @@ module MetronomeSDK
3103
4316
  #
3104
4317
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::Commit, nil]
3105
4318
  optional :commit,
3106
- -> { MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::Commit }
4319
+ -> {
4320
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::Commit
4321
+ }
3107
4322
 
3108
4323
  # @!attribute is_enabled
3109
4324
  # When set to false, the contract will not be evaluated against the
@@ -3117,7 +4332,9 @@ module MetronomeSDK
3117
4332
  #
3118
4333
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig, nil]
3119
4334
  optional :payment_gate_config,
3120
- -> { MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig }
4335
+ -> {
4336
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig
4337
+ }
3121
4338
 
3122
4339
  # @!attribute threshold_amount
3123
4340
  # Specify the threshold amount for the contract. Each time the contract's usage
@@ -3134,28 +4351,28 @@ module MetronomeSDK
3134
4351
  # @param commit [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::Commit]
3135
4352
  #
3136
4353
  # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
3137
- # ...
3138
4354
  #
3139
4355
  # @param payment_gate_config [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig]
3140
4356
  #
3141
4357
  # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's usage hi
3142
- # ...
3143
4358
 
3144
4359
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration#commit
3145
4360
  class Commit < MetronomeSDK::Internal::Type::BaseModel
3146
4361
  # @!attribute description
3147
4362
  #
3148
4363
  # @return [String, nil]
3149
- optional :description, String, nil?: true
4364
+ optional :description, String
3150
4365
 
3151
4366
  # @!attribute name
3152
4367
  # Specify the name of the line item for the threshold charge. If left blank, it
3153
4368
  # will default to the commit product name.
3154
4369
  #
3155
4370
  # @return [String, nil]
3156
- optional :name, String, nil?: true
4371
+ optional :name, String
3157
4372
 
3158
4373
  # @!attribute product_id
4374
+ # The commit product that will be used to generate the line item for commit
4375
+ # payment.
3159
4376
  #
3160
4377
  # @return [String, nil]
3161
4378
  optional :product_id, String
@@ -3165,12 +4382,11 @@ module MetronomeSDK
3165
4382
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::Commit}
3166
4383
  # for more details.
3167
4384
  #
3168
- # @param description [String, nil]
4385
+ # @param description [String]
3169
4386
  #
3170
- # @param name [String, nil] Specify the name of the line item for the threshold charge. If left blank, it wi
3171
- # ...
4387
+ # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
3172
4388
  #
3173
- # @param product_id [String]
4389
+ # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
3174
4390
  end
3175
4391
 
3176
4392
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration#payment_gate_config
@@ -3183,14 +4399,18 @@ module MetronomeSDK
3183
4399
  #
3184
4400
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType]
3185
4401
  required :payment_gate_type,
3186
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType }
4402
+ enum: -> {
4403
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType
4404
+ }
3187
4405
 
3188
4406
  # @!attribute stripe_config
3189
4407
  # Only applicable if using Stripe as your payment gateway through Metronome.
3190
4408
  #
3191
4409
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
3192
4410
  optional :stripe_config,
3193
- -> { MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig }
4411
+ -> {
4412
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig
4413
+ }
3194
4414
 
3195
4415
  # @!attribute tax_type
3196
4416
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
@@ -3199,7 +4419,9 @@ module MetronomeSDK
3199
4419
  #
3200
4420
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType, nil]
3201
4421
  optional :tax_type,
3202
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType }
4422
+ enum: -> {
4423
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType
4424
+ }
3203
4425
 
3204
4426
  # @!method initialize(payment_gate_type:, stripe_config: nil, tax_type: nil)
3205
4427
  # Some parameter documentations has been truncated, see
@@ -3207,12 +4429,10 @@ module MetronomeSDK
3207
4429
  # for more details.
3208
4430
  #
3209
4431
  # @param payment_gate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
3210
- # ...
3211
4432
  #
3212
4433
  # @param stripe_config [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using Stripe as your payment gateway through Metronome.
3213
4434
  #
3214
4435
  # @param tax_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
3215
- # ...
3216
4436
 
3217
4437
  # Gate access to the commit balance based on successful collection of payment.
3218
4438
  # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
@@ -3238,7 +4458,9 @@ module MetronomeSDK
3238
4458
  #
3239
4459
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
3240
4460
  required :payment_type,
3241
- enum: -> { MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType }
4461
+ enum: -> {
4462
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
4463
+ }
3242
4464
 
3243
4465
  # @!method initialize(payment_type:)
3244
4466
  # Only applicable if using Stripe as your payment gateway through Metronome.
@@ -3275,6 +4497,73 @@ module MetronomeSDK
3275
4497
  end
3276
4498
  end
3277
4499
  end
4500
+
4501
+ class UpdateSubscription < MetronomeSDK::Internal::Type::BaseModel
4502
+ # @!attribute subscription_id
4503
+ #
4504
+ # @return [String]
4505
+ required :subscription_id, String
4506
+
4507
+ # @!attribute ending_before
4508
+ #
4509
+ # @return [Time, nil]
4510
+ optional :ending_before, Time, nil?: true
4511
+
4512
+ # @!attribute quantity_updates
4513
+ # Quantity changes are applied on the effective date based on the order which they
4514
+ # are sent. For example, if I scheduled the quantity to be 12 on May 21 and then
4515
+ # scheduled a quantity delta change of -1, the result from that day would be 11.
4516
+ #
4517
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityUpdate>, nil]
4518
+ optional :quantity_updates,
4519
+ -> {
4520
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityUpdate]
4521
+ }
4522
+
4523
+ # @!method initialize(subscription_id:, ending_before: nil, quantity_updates: nil)
4524
+ # Some parameter documentations has been truncated, see
4525
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription} for more
4526
+ # details.
4527
+ #
4528
+ # @param subscription_id [String]
4529
+ #
4530
+ # @param ending_before [Time, nil]
4531
+ #
4532
+ # @param quantity_updates [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityUpdate>] Quantity changes are applied on the effective date based on the order which they
4533
+
4534
+ class QuantityUpdate < MetronomeSDK::Internal::Type::BaseModel
4535
+ # @!attribute starting_at
4536
+ #
4537
+ # @return [Time]
4538
+ required :starting_at, Time
4539
+
4540
+ # @!attribute quantity
4541
+ # The new quantity for the subscription. Must be provided if quantity_delta is not
4542
+ # provided. Must be non-negative.
4543
+ #
4544
+ # @return [Float, nil]
4545
+ optional :quantity, Float
4546
+
4547
+ # @!attribute quantity_delta
4548
+ # The delta to add to the subscription's quantity. Must be provided if quantity is
4549
+ # not provided. Can't be zero. It also can't result in a negative quantity on the
4550
+ # subscription.
4551
+ #
4552
+ # @return [Float, nil]
4553
+ optional :quantity_delta, Float
4554
+
4555
+ # @!method initialize(starting_at:, quantity: nil, quantity_delta: nil)
4556
+ # Some parameter documentations has been truncated, see
4557
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityUpdate}
4558
+ # for more details.
4559
+ #
4560
+ # @param starting_at [Time]
4561
+ #
4562
+ # @param quantity [Float] The new quantity for the subscription. Must be provided if quantity_delta is not
4563
+ #
4564
+ # @param quantity_delta [Float] The delta to add to the subscription's quantity. Must be provided if quantity is
4565
+ end
4566
+ end
3278
4567
  end
3279
4568
  end
3280
4569
  end