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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (475) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +85 -0
  3. data/README.md +120 -74
  4. data/SECURITY.md +2 -2
  5. data/lib/metronome_sdk/client.rb +4 -4
  6. data/lib/metronome_sdk/errors.rb +22 -0
  7. data/lib/metronome_sdk/internal/transport/base_client.rb +10 -2
  8. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +3 -1
  9. data/lib/metronome_sdk/internal/type/array_of.rb +14 -1
  10. data/lib/metronome_sdk/internal/type/base_model.rb +92 -23
  11. data/lib/metronome_sdk/internal/type/boolean.rb +15 -1
  12. data/lib/metronome_sdk/internal/type/converter.rb +42 -34
  13. data/lib/metronome_sdk/internal/type/enum.rb +25 -2
  14. data/lib/metronome_sdk/internal/type/file_input.rb +13 -1
  15. data/lib/metronome_sdk/internal/type/hash_of.rb +14 -1
  16. data/lib/metronome_sdk/internal/type/union.rb +27 -7
  17. data/lib/metronome_sdk/internal/type/unknown.rb +15 -1
  18. data/lib/metronome_sdk/internal/util.rb +62 -10
  19. data/lib/metronome_sdk/internal.rb +3 -0
  20. data/lib/metronome_sdk/models/commit.rb +230 -87
  21. data/lib/metronome_sdk/models/contract_without_amendments.rb +551 -185
  22. data/lib/metronome_sdk/models/credit.rb +201 -51
  23. data/lib/metronome_sdk/models/discount.rb +5 -5
  24. data/lib/metronome_sdk/models/event_type_filter.rb +1 -1
  25. data/lib/metronome_sdk/models/override.rb +53 -34
  26. data/lib/metronome_sdk/models/pro_service.rb +2 -2
  27. data/lib/metronome_sdk/models/property_filter.rb +1 -1
  28. data/lib/metronome_sdk/models/rate.rb +9 -9
  29. data/lib/metronome_sdk/models/schedule_duration.rb +4 -4
  30. data/lib/metronome_sdk/models/schedule_point_in_time.rb +11 -11
  31. data/lib/metronome_sdk/models/scheduled_charge.rb +5 -5
  32. data/lib/metronome_sdk/models/v1/alert_archive_response.rb +2 -2
  33. data/lib/metronome_sdk/models/v1/alert_create_params.rb +15 -12
  34. data/lib/metronome_sdk/models/v1/alert_create_response.rb +2 -2
  35. data/lib/metronome_sdk/models/v1/audit_log_list_params.rb +2 -2
  36. data/lib/metronome_sdk/models/v1/billable_metric_archive_response.rb +2 -2
  37. data/lib/metronome_sdk/models/v1/billable_metric_create_params.rb +6 -6
  38. data/lib/metronome_sdk/models/v1/billable_metric_create_response.rb +2 -2
  39. data/lib/metronome_sdk/models/v1/billable_metric_list_response.rb +4 -4
  40. data/lib/metronome_sdk/models/v1/billable_metric_retrieve_response.rb +4 -4
  41. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +577 -152
  42. data/lib/metronome_sdk/models/v1/contract_amend_response.rb +2 -2
  43. data/lib/metronome_sdk/models/v1/contract_archive_response.rb +2 -2
  44. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_params.rb +12 -12
  45. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_response.rb +2 -2
  46. data/lib/metronome_sdk/models/v1/contract_create_params.rb +1317 -341
  47. data/lib/metronome_sdk/models/v1/contract_create_response.rb +2 -2
  48. data/lib/metronome_sdk/models/v1/contract_list_balances_response.rb +3 -7
  49. data/lib/metronome_sdk/models/v1/contract_list_response.rb +421 -36
  50. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rb +33 -5
  51. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rb +28 -7
  52. data/lib/metronome_sdk/models/v1/contract_retrieve_response.rb +422 -36
  53. data/lib/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_params.rb +34 -0
  54. data/lib/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_response.rb +81 -0
  55. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_params.rb +4 -4
  56. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rb +2 -2
  57. data/lib/metronome_sdk/models/v1/contract_update_end_date_response.rb +2 -2
  58. data/lib/metronome_sdk/models/v1/contracts/product_archive_response.rb +2 -2
  59. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +6 -6
  60. data/lib/metronome_sdk/models/v1/contracts/product_create_response.rb +2 -2
  61. data/lib/metronome_sdk/models/v1/contracts/product_list_item_state.rb +5 -5
  62. data/lib/metronome_sdk/models/v1/contracts/product_list_params.rb +4 -4
  63. data/lib/metronome_sdk/models/v1/contracts/product_list_response.rb +8 -8
  64. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_response.rb +8 -8
  65. data/lib/metronome_sdk/models/v1/contracts/product_update_params.rb +4 -4
  66. data/lib/metronome_sdk/models/v1/contracts/product_update_response.rb +2 -2
  67. data/lib/metronome_sdk/models/v1/contracts/quantity_conversion.rb +3 -3
  68. data/lib/metronome_sdk/models/v1/contracts/quantity_rounding.rb +3 -3
  69. data/lib/metronome_sdk/models/v1/contracts/rate_card_archive_response.rb +2 -2
  70. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_params.rb +4 -4
  71. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_response.rb +2 -2
  72. data/lib/metronome_sdk/models/v1/contracts/rate_card_list_response.rb +4 -4
  73. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rb +33 -5
  74. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rb +26 -5
  75. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rb +4 -4
  76. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_params.rb +2 -2
  77. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_response.rb +2 -2
  78. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rb +2 -2
  79. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_params.rb +2 -2
  80. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rb +2 -2
  81. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +46 -18
  82. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rb +2 -2
  83. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +36 -12
  84. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +6 -6
  85. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rb +33 -5
  86. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rb +26 -5
  87. data/lib/metronome_sdk/models/v1/credit_grant_create_params.rb +12 -20
  88. data/lib/metronome_sdk/models/v1/credit_grant_create_response.rb +2 -2
  89. data/lib/metronome_sdk/models/v1/credit_grant_edit_response.rb +2 -2
  90. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_params.rb +20 -1
  91. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_response.rb +6 -6
  92. data/lib/metronome_sdk/models/v1/credit_grant_list_response.rb +8 -8
  93. data/lib/metronome_sdk/models/v1/credit_grant_void_response.rb +2 -2
  94. data/lib/metronome_sdk/models/v1/credit_ledger_entry.rb +1 -1
  95. data/lib/metronome_sdk/models/v1/custom_field_add_key_params.rb +2 -2
  96. data/lib/metronome_sdk/models/v1/custom_field_delete_values_params.rb +2 -2
  97. data/lib/metronome_sdk/models/v1/custom_field_list_keys_params.rb +2 -2
  98. data/lib/metronome_sdk/models/v1/custom_field_remove_key_params.rb +2 -2
  99. data/lib/metronome_sdk/models/v1/custom_field_set_values_params.rb +2 -2
  100. data/lib/metronome_sdk/models/v1/customer.rb +1 -1
  101. data/lib/metronome_sdk/models/v1/customer_archive_response.rb +2 -2
  102. data/lib/metronome_sdk/models/v1/customer_create_params.rb +20 -20
  103. data/lib/metronome_sdk/models/v1/customer_create_response.rb +2 -2
  104. data/lib/metronome_sdk/models/v1/customer_detail.rb +10 -10
  105. data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_response.rb +4 -4
  106. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +115 -0
  107. data/lib/metronome_sdk/models/v1/customer_preview_events_response.rb +18 -0
  108. data/lib/metronome_sdk/models/v1/customer_retrieve_response.rb +2 -2
  109. data/lib/metronome_sdk/models/v1/customer_set_name_response.rb +2 -2
  110. data/lib/metronome_sdk/models/v1/customers/alert_list_params.rb +2 -2
  111. data/lib/metronome_sdk/models/v1/customers/alert_list_response.rb +2 -2
  112. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +2 -2
  113. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_response.rb +2 -2
  114. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +6 -6
  115. data/lib/metronome_sdk/models/v1/customers/billing_config_delete_params.rb +2 -2
  116. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rb +2 -2
  117. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +9 -1
  118. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +86 -32
  119. data/lib/metronome_sdk/models/v1/customers/commit_create_response.rb +2 -2
  120. data/lib/metronome_sdk/models/v1/customers/commit_list_response.rb +2 -2
  121. data/lib/metronome_sdk/models/v1/customers/commit_update_end_date_response.rb +2 -2
  122. data/lib/metronome_sdk/models/v1/customers/credit_create_params.rb +59 -7
  123. data/lib/metronome_sdk/models/v1/customers/credit_create_response.rb +2 -2
  124. data/lib/metronome_sdk/models/v1/customers/credit_list_response.rb +2 -2
  125. data/lib/metronome_sdk/models/v1/customers/credit_update_end_date_response.rb +2 -2
  126. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +24 -24
  127. data/lib/metronome_sdk/models/v1/customers/invoice.rb +74 -73
  128. data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_params.rb +4 -4
  129. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +2 -2
  130. data/lib/metronome_sdk/models/v1/customers/invoice_retrieve_response.rb +2 -2
  131. data/lib/metronome_sdk/models/v1/customers/plan_add_params.rb +16 -15
  132. data/lib/metronome_sdk/models/v1/customers/plan_add_response.rb +2 -2
  133. data/lib/metronome_sdk/models/v1/customers/plan_list_response.rb +2 -2
  134. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +14 -13
  135. data/lib/metronome_sdk/models/v1/plan_detail.rb +18 -18
  136. data/lib/metronome_sdk/models/v1/plan_get_details_response.rb +2 -2
  137. data/lib/metronome_sdk/models/v1/plan_list_charges_response.rb +2 -2
  138. data/lib/metronome_sdk/models/v1/plan_list_customers_params.rb +2 -2
  139. data/lib/metronome_sdk/models/v1/plan_list_customers_response.rb +2 -2
  140. data/lib/metronome_sdk/models/v1/rollover_amount_max_amount.rb +3 -3
  141. data/lib/metronome_sdk/models/v1/rollover_amount_max_percentage.rb +3 -3
  142. data/lib/metronome_sdk/models/v1/usage_ingest_params.rb +2 -2
  143. data/lib/metronome_sdk/models/v1/usage_list_params.rb +9 -8
  144. data/lib/metronome_sdk/models/v1/usage_list_with_groups_params.rb +5 -5
  145. data/lib/metronome_sdk/models/v1/usage_search_params.rb +24 -0
  146. data/lib/metronome_sdk/models/v1/usage_search_response.rb +249 -0
  147. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +78 -23
  148. data/lib/metronome_sdk/models/v2/contract_edit_commit_response.rb +2 -2
  149. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +62 -9
  150. data/lib/metronome_sdk/models/v2/contract_edit_credit_response.rb +2 -2
  151. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +1995 -443
  152. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +2 -2
  153. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +1959 -140
  154. data/lib/metronome_sdk/models/v2/contract_list_response.rb +963 -91
  155. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +964 -91
  156. data/lib/metronome_sdk/models.rb +30 -19
  157. data/lib/metronome_sdk/resources/v1/alerts.rb +4 -4
  158. data/lib/metronome_sdk/resources/v1/audit_logs.rb +1 -1
  159. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +3 -3
  160. data/lib/metronome_sdk/resources/v1/contracts/products.rb +9 -6
  161. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rb +1 -1
  162. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +8 -6
  163. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +4 -4
  164. data/lib/metronome_sdk/resources/v1/contracts.rb +59 -28
  165. data/lib/metronome_sdk/resources/v1/credit_grants.rb +7 -5
  166. data/lib/metronome_sdk/resources/v1/custom_fields.rb +5 -5
  167. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +2 -2
  168. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +5 -5
  169. data/lib/metronome_sdk/resources/v1/customers/commits.rb +9 -7
  170. data/lib/metronome_sdk/resources/v1/customers/credits.rb +5 -3
  171. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +4 -4
  172. data/lib/metronome_sdk/resources/v1/customers/plans.rb +3 -3
  173. data/lib/metronome_sdk/resources/v1/customers.rb +43 -4
  174. data/lib/metronome_sdk/resources/v1/dashboards.rb +4 -4
  175. data/lib/metronome_sdk/resources/v1/plans.rb +1 -1
  176. data/lib/metronome_sdk/resources/v1/usage.rb +30 -5
  177. data/lib/metronome_sdk/resources/v2/contracts.rb +45 -31
  178. data/lib/metronome_sdk/version.rb +1 -1
  179. data/lib/metronome_sdk.rb +9 -1
  180. data/rbi/metronome_sdk/errors.rbi +16 -0
  181. data/rbi/metronome_sdk/internal/transport/pooled_net_requester.rbi +5 -1
  182. data/rbi/metronome_sdk/internal/type/array_of.rbi +6 -0
  183. data/rbi/metronome_sdk/internal/type/base_model.rbi +5 -0
  184. data/rbi/metronome_sdk/internal/type/boolean.rbi +8 -0
  185. data/rbi/metronome_sdk/internal/type/converter.rbi +15 -15
  186. data/rbi/metronome_sdk/internal/type/enum.rbi +5 -0
  187. data/rbi/metronome_sdk/internal/type/file_input.rbi +5 -0
  188. data/rbi/metronome_sdk/internal/type/hash_of.rbi +6 -0
  189. data/rbi/metronome_sdk/internal/type/union.rbi +10 -0
  190. data/rbi/metronome_sdk/internal/type/unknown.rbi +8 -0
  191. data/rbi/metronome_sdk/internal/util.rbi +36 -0
  192. data/rbi/metronome_sdk/internal.rbi +5 -0
  193. data/rbi/metronome_sdk/models/commit.rbi +376 -39
  194. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +791 -54
  195. data/rbi/metronome_sdk/models/credit.rbi +376 -25
  196. data/rbi/metronome_sdk/models/override.rbi +66 -0
  197. data/rbi/metronome_sdk/models/schedule_point_in_time.rbi +9 -9
  198. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +10 -4
  199. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +995 -17
  200. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +2220 -136
  201. data/rbi/metronome_sdk/models/v1/contract_list_balances_response.rbi +9 -2
  202. data/rbi/metronome_sdk/models/v1/contract_list_response.rbi +820 -28
  203. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rbi +72 -0
  204. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbi +66 -0
  205. data/rbi/metronome_sdk/models/v1/contract_retrieve_response.rbi +820 -28
  206. data/rbi/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_params.rbi +58 -0
  207. data/rbi/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_response.rbi +212 -0
  208. data/rbi/metronome_sdk/models/v1/contracts/product_list_params.rbi +3 -3
  209. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rbi +72 -0
  210. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbi +66 -0
  211. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +72 -0
  212. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +72 -0
  213. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rbi +72 -0
  214. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbi +66 -0
  215. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_params.rbi +58 -0
  216. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +214 -0
  217. data/rbi/metronome_sdk/models/v1/customer_preview_events_response.rbi +35 -0
  218. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +11 -0
  219. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +121 -8
  220. data/rbi/metronome_sdk/models/v1/customers/credit_create_params.rbi +109 -0
  221. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +5 -0
  222. data/rbi/metronome_sdk/models/v1/usage_search_params.rbi +48 -0
  223. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +438 -0
  224. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +113 -8
  225. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +101 -0
  226. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +3667 -315
  227. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +5965 -2014
  228. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +2279 -226
  229. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +2279 -226
  230. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -2
  231. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +2 -1
  232. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +5 -0
  233. data/rbi/metronome_sdk/resources/v1/contracts.rbi +36 -1
  234. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +4 -0
  235. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +15 -4
  236. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +9 -0
  237. data/rbi/metronome_sdk/resources/v1/customers.rbi +35 -1
  238. data/rbi/metronome_sdk/resources/v1/usage.rbi +17 -0
  239. data/rbi/metronome_sdk/resources/v2/contracts.rbi +65 -7
  240. data/sig/metronome_sdk/errors.rbs +9 -0
  241. data/sig/metronome_sdk/internal/transport/pooled_net_requester.rbs +2 -0
  242. data/sig/metronome_sdk/internal/type/array_of.rbs +3 -0
  243. data/sig/metronome_sdk/internal/type/base_model.rbs +2 -0
  244. data/sig/metronome_sdk/internal/type/boolean.rbs +3 -0
  245. data/sig/metronome_sdk/internal/type/converter.rbs +7 -1
  246. data/sig/metronome_sdk/internal/type/enum.rbs +2 -0
  247. data/sig/metronome_sdk/internal/type/file_input.rbs +2 -0
  248. data/sig/metronome_sdk/internal/type/hash_of.rbs +3 -0
  249. data/sig/metronome_sdk/internal/type/union.rbs +2 -0
  250. data/sig/metronome_sdk/internal/type/unknown.rbs +3 -0
  251. data/sig/metronome_sdk/internal/util.rbs +12 -0
  252. data/sig/metronome_sdk/internal.rbs +2 -0
  253. data/sig/metronome_sdk/models/base_usage_filter.rbs +6 -0
  254. data/sig/metronome_sdk/models/commit.rbs +374 -68
  255. data/sig/metronome_sdk/models/contract_without_amendments.rbs +620 -110
  256. data/sig/metronome_sdk/models/credit.rbs +286 -40
  257. data/sig/metronome_sdk/models/credit_type_data.rbs +2 -0
  258. data/sig/metronome_sdk/models/discount.rbs +11 -0
  259. data/sig/metronome_sdk/models/event_type_filter.rbs +5 -0
  260. data/sig/metronome_sdk/models/id.rbs +2 -0
  261. data/sig/metronome_sdk/models/override.rbs +92 -22
  262. data/sig/metronome_sdk/models/pro_service.rbs +11 -0
  263. data/sig/metronome_sdk/models/property_filter.rbs +7 -0
  264. data/sig/metronome_sdk/models/rate.rbs +16 -4
  265. data/sig/metronome_sdk/models/schedule_duration.rbs +12 -0
  266. data/sig/metronome_sdk/models/schedule_point_in_time.rbs +20 -6
  267. data/sig/metronome_sdk/models/scheduled_charge.rbs +12 -0
  268. data/sig/metronome_sdk/models/tier.rbs +2 -0
  269. data/sig/metronome_sdk/models/v1/alert_archive_params.rbs +6 -0
  270. data/sig/metronome_sdk/models/v1/alert_archive_response.rbs +2 -0
  271. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +29 -4
  272. data/sig/metronome_sdk/models/v1/alert_create_response.rbs +2 -0
  273. data/sig/metronome_sdk/models/v1/audit_log_list_params.rbs +11 -0
  274. data/sig/metronome_sdk/models/v1/audit_log_list_response.rbs +16 -0
  275. data/sig/metronome_sdk/models/v1/billable_metric_archive_params.rbs +2 -0
  276. data/sig/metronome_sdk/models/v1/billable_metric_archive_response.rbs +2 -0
  277. data/sig/metronome_sdk/models/v1/billable_metric_create_params.rbs +12 -0
  278. data/sig/metronome_sdk/models/v1/billable_metric_create_response.rbs +2 -0
  279. data/sig/metronome_sdk/models/v1/billable_metric_list_params.rbs +7 -0
  280. data/sig/metronome_sdk/models/v1/billable_metric_list_response.rbs +13 -0
  281. data/sig/metronome_sdk/models/v1/billable_metric_retrieve_params.rbs +5 -0
  282. data/sig/metronome_sdk/models/v1/billable_metric_retrieve_response.rbs +17 -0
  283. data/sig/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbs +11 -0
  284. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +719 -75
  285. data/sig/metronome_sdk/models/v1/contract_amend_response.rbs +2 -0
  286. data/sig/metronome_sdk/models/v1/contract_archive_params.rbs +7 -0
  287. data/sig/metronome_sdk/models/v1/contract_archive_response.rbs +2 -0
  288. data/sig/metronome_sdk/models/v1/contract_create_historical_invoices_params.rbs +47 -12
  289. data/sig/metronome_sdk/models/v1/contract_create_historical_invoices_response.rbs +2 -0
  290. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +1503 -250
  291. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +2 -0
  292. data/sig/metronome_sdk/models/v1/contract_list_balances_params.rbs +14 -0
  293. data/sig/metronome_sdk/models/v1/contract_list_balances_response.rbs +5 -0
  294. data/sig/metronome_sdk/models/v1/contract_list_params.rbs +10 -0
  295. data/sig/metronome_sdk/models/v1/contract_list_response.rbs +459 -10
  296. data/sig/metronome_sdk/models/v1/contract_retrieve_params.rbs +8 -0
  297. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rbs +39 -0
  298. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbs +48 -0
  299. data/sig/metronome_sdk/models/v1/contract_retrieve_response.rbs +459 -10
  300. data/sig/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_params.rbs +34 -0
  301. data/sig/metronome_sdk/models/v1/contract_retrieve_subscription_quantity_history_response.rbs +101 -0
  302. data/sig/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_params.rbs +21 -0
  303. data/sig/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rbs +2 -0
  304. data/sig/metronome_sdk/models/v1/contract_set_usage_filter_params.rbs +9 -0
  305. data/sig/metronome_sdk/models/v1/contract_update_end_date_params.rbs +8 -0
  306. data/sig/metronome_sdk/models/v1/contract_update_end_date_response.rbs +2 -0
  307. data/sig/metronome_sdk/models/v1/contracts/named_schedule_retrieve_params.rbs +7 -0
  308. data/sig/metronome_sdk/models/v1/contracts/named_schedule_retrieve_response.rbs +10 -0
  309. data/sig/metronome_sdk/models/v1/contracts/named_schedule_update_params.rbs +9 -0
  310. data/sig/metronome_sdk/models/v1/contracts/product_archive_params.rbs +5 -0
  311. data/sig/metronome_sdk/models/v1/contracts/product_archive_response.rbs +2 -0
  312. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +18 -0
  313. data/sig/metronome_sdk/models/v1/contracts/product_create_response.rbs +2 -0
  314. data/sig/metronome_sdk/models/v1/contracts/product_list_item_state.rbs +19 -0
  315. data/sig/metronome_sdk/models/v1/contracts/product_list_params.rbs +7 -0
  316. data/sig/metronome_sdk/models/v1/contracts/product_list_response.rbs +29 -0
  317. data/sig/metronome_sdk/models/v1/contracts/product_retrieve_params.rbs +2 -0
  318. data/sig/metronome_sdk/models/v1/contracts/product_retrieve_response.rbs +33 -0
  319. data/sig/metronome_sdk/models/v1/contracts/product_update_params.rbs +19 -0
  320. data/sig/metronome_sdk/models/v1/contracts/product_update_response.rbs +2 -0
  321. data/sig/metronome_sdk/models/v1/contracts/quantity_conversion.rbs +10 -4
  322. data/sig/metronome_sdk/models/v1/contracts/quantity_rounding.rbs +9 -4
  323. data/sig/metronome_sdk/models/v1/contracts/rate_card_archive_params.rbs +2 -0
  324. data/sig/metronome_sdk/models/v1/contracts/rate_card_archive_response.rbs +2 -0
  325. data/sig/metronome_sdk/models/v1/contracts/rate_card_create_params.rbs +21 -0
  326. data/sig/metronome_sdk/models/v1/contracts/rate_card_create_response.rbs +2 -0
  327. data/sig/metronome_sdk/models/v1/contracts/rate_card_list_params.rbs +7 -0
  328. data/sig/metronome_sdk/models/v1/contracts/rate_card_list_response.rbs +23 -0
  329. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rbs +2 -0
  330. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rbs +38 -0
  331. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbs +46 -0
  332. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbs +27 -0
  333. data/sig/metronome_sdk/models/v1/contracts/rate_card_update_params.rbs +14 -0
  334. data/sig/metronome_sdk/models/v1/contracts/rate_card_update_response.rbs +2 -0
  335. data/sig/metronome_sdk/models/v1/contracts/rate_cards/named_schedule_retrieve_params.rbs +8 -0
  336. data/sig/metronome_sdk/models/v1/contracts/rate_cards/named_schedule_retrieve_response.rbs +10 -0
  337. data/sig/metronome_sdk/models/v1/contracts/rate_cards/named_schedule_update_params.rbs +10 -0
  338. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_params.rbs +6 -0
  339. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rbs +2 -0
  340. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_params.rbs +8 -0
  341. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rbs +2 -0
  342. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +59 -8
  343. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rbs +2 -0
  344. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +51 -4
  345. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +23 -0
  346. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rbs +38 -0
  347. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbs +41 -0
  348. data/sig/metronome_sdk/models/v1/credit_grant_create_params.rbs +32 -4
  349. data/sig/metronome_sdk/models/v1/credit_grant_create_response.rbs +2 -0
  350. data/sig/metronome_sdk/models/v1/credit_grant_edit_params.rbs +8 -0
  351. data/sig/metronome_sdk/models/v1/credit_grant_edit_response.rbs +2 -0
  352. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_params.rbs +29 -0
  353. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_response.rbs +30 -0
  354. data/sig/metronome_sdk/models/v1/credit_grant_list_params.rbs +11 -0
  355. data/sig/metronome_sdk/models/v1/credit_grant_list_response.rbs +38 -0
  356. data/sig/metronome_sdk/models/v1/credit_grant_void_params.rbs +7 -0
  357. data/sig/metronome_sdk/models/v1/credit_grant_void_response.rbs +2 -0
  358. data/sig/metronome_sdk/models/v1/credit_ledger_entry.rbs +10 -0
  359. data/sig/metronome_sdk/models/v1/custom_field_add_key_params.rbs +7 -0
  360. data/sig/metronome_sdk/models/v1/custom_field_delete_values_params.rbs +7 -0
  361. data/sig/metronome_sdk/models/v1/custom_field_list_keys_params.rbs +12 -6
  362. data/sig/metronome_sdk/models/v1/custom_field_list_keys_response.rbs +11 -0
  363. data/sig/metronome_sdk/models/v1/custom_field_remove_key_params.rbs +6 -0
  364. data/sig/metronome_sdk/models/v1/custom_field_set_values_params.rbs +7 -0
  365. data/sig/metronome_sdk/models/v1/customer.rbs +8 -0
  366. data/sig/metronome_sdk/models/v1/customer_archive_params.rbs +2 -0
  367. data/sig/metronome_sdk/models/v1/customer_archive_response.rbs +2 -0
  368. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +52 -26
  369. data/sig/metronome_sdk/models/v1/customer_create_response.rbs +2 -0
  370. data/sig/metronome_sdk/models/v1/customer_detail.rbs +23 -4
  371. data/sig/metronome_sdk/models/v1/customer_list_billable_metrics_params.rbs +9 -0
  372. data/sig/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbs +17 -0
  373. data/sig/metronome_sdk/models/v1/customer_list_costs_params.rbs +9 -0
  374. data/sig/metronome_sdk/models/v1/customer_list_costs_response.rbs +19 -0
  375. data/sig/metronome_sdk/models/v1/customer_list_params.rbs +10 -0
  376. data/sig/metronome_sdk/models/v1/customer_preview_events_params.rbs +105 -0
  377. data/sig/metronome_sdk/models/v1/customer_preview_events_response.rbs +16 -0
  378. data/sig/metronome_sdk/models/v1/customer_retrieve_params.rbs +5 -0
  379. data/sig/metronome_sdk/models/v1/customer_retrieve_response.rbs +2 -0
  380. data/sig/metronome_sdk/models/v1/customer_set_ingest_aliases_params.rbs +6 -0
  381. data/sig/metronome_sdk/models/v1/customer_set_name_params.rbs +6 -0
  382. data/sig/metronome_sdk/models/v1/customer_set_name_response.rbs +2 -0
  383. data/sig/metronome_sdk/models/v1/customer_update_config_params.rbs +7 -0
  384. data/sig/metronome_sdk/models/v1/customers/alert_list_params.rbs +13 -6
  385. data/sig/metronome_sdk/models/v1/customers/alert_list_response.rbs +5 -0
  386. data/sig/metronome_sdk/models/v1/customers/alert_reset_params.rbs +6 -0
  387. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +7 -0
  388. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_response.rbs +2 -0
  389. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +10 -0
  390. data/sig/metronome_sdk/models/v1/customers/billing_config_delete_params.rbs +6 -0
  391. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rbs +6 -0
  392. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +23 -0
  393. data/sig/metronome_sdk/models/v1/customers/commit_create_params.rbs +116 -8
  394. data/sig/metronome_sdk/models/v1/customers/commit_create_response.rbs +2 -0
  395. data/sig/metronome_sdk/models/v1/customers/commit_list_params.rbs +14 -0
  396. data/sig/metronome_sdk/models/v1/customers/commit_list_response.rbs +5 -0
  397. data/sig/metronome_sdk/models/v1/customers/commit_update_end_date_params.rbs +8 -0
  398. data/sig/metronome_sdk/models/v1/customers/commit_update_end_date_response.rbs +2 -0
  399. data/sig/metronome_sdk/models/v1/customers/credit_create_params.rbs +82 -0
  400. data/sig/metronome_sdk/models/v1/customers/credit_create_response.rbs +2 -0
  401. data/sig/metronome_sdk/models/v1/customers/credit_list_params.rbs +14 -0
  402. data/sig/metronome_sdk/models/v1/customers/credit_list_response.rbs +5 -0
  403. data/sig/metronome_sdk/models/v1/customers/credit_update_end_date_params.rbs +7 -0
  404. data/sig/metronome_sdk/models/v1/customers/credit_update_end_date_response.rbs +2 -0
  405. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +45 -16
  406. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +195 -40
  407. data/sig/metronome_sdk/models/v1/customers/invoice_add_charge_params.rbs +11 -0
  408. data/sig/metronome_sdk/models/v1/customers/invoice_add_charge_response.rbs +2 -0
  409. data/sig/metronome_sdk/models/v1/customers/invoice_list_breakdowns_params.rbs +14 -0
  410. data/sig/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rbs +5 -0
  411. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +13 -0
  412. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_params.rbs +7 -0
  413. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_response.rbs +2 -0
  414. data/sig/metronome_sdk/models/v1/customers/named_schedule_retrieve_params.rbs +7 -0
  415. data/sig/metronome_sdk/models/v1/customers/named_schedule_retrieve_response.rbs +10 -0
  416. data/sig/metronome_sdk/models/v1/customers/named_schedule_update_params.rbs +9 -0
  417. data/sig/metronome_sdk/models/v1/customers/plan_add_params.rbs +38 -4
  418. data/sig/metronome_sdk/models/v1/customers/plan_add_response.rbs +2 -0
  419. data/sig/metronome_sdk/models/v1/customers/plan_end_params.rbs +9 -0
  420. data/sig/metronome_sdk/models/v1/customers/plan_end_response.rbs +2 -0
  421. data/sig/metronome_sdk/models/v1/customers/plan_list_params.rbs +7 -0
  422. data/sig/metronome_sdk/models/v1/customers/plan_list_price_adjustments_params.rbs +8 -0
  423. data/sig/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbs +14 -0
  424. data/sig/metronome_sdk/models/v1/customers/plan_list_response.rbs +23 -0
  425. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +30 -7
  426. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_response.rbs +6 -0
  427. data/sig/metronome_sdk/models/v1/invoice_regenerate_params.rbs +5 -0
  428. data/sig/metronome_sdk/models/v1/invoice_regenerate_response.rbs +6 -0
  429. data/sig/metronome_sdk/models/v1/invoice_void_params.rbs +5 -0
  430. data/sig/metronome_sdk/models/v1/invoice_void_response.rbs +6 -0
  431. data/sig/metronome_sdk/models/v1/plan_detail.rbs +38 -0
  432. data/sig/metronome_sdk/models/v1/plan_get_details_params.rbs +5 -0
  433. data/sig/metronome_sdk/models/v1/plan_get_details_response.rbs +2 -0
  434. data/sig/metronome_sdk/models/v1/plan_list_charges_params.rbs +7 -0
  435. data/sig/metronome_sdk/models/v1/plan_list_charges_response.rbs +28 -0
  436. data/sig/metronome_sdk/models/v1/plan_list_customers_params.rbs +8 -0
  437. data/sig/metronome_sdk/models/v1/plan_list_customers_response.rbs +14 -0
  438. data/sig/metronome_sdk/models/v1/plan_list_params.rbs +6 -0
  439. data/sig/metronome_sdk/models/v1/plan_list_response.rbs +7 -0
  440. data/sig/metronome_sdk/models/v1/pricing_unit_list_params.rbs +6 -0
  441. data/sig/metronome_sdk/models/v1/pricing_unit_list_response.rbs +2 -0
  442. data/sig/metronome_sdk/models/v1/rollover_amount_max_amount.rbs +12 -4
  443. data/sig/metronome_sdk/models/v1/rollover_amount_max_percentage.rbs +9 -4
  444. data/sig/metronome_sdk/models/v1/service_list_params.rbs +2 -0
  445. data/sig/metronome_sdk/models/v1/service_list_response.rbs +10 -0
  446. data/sig/metronome_sdk/models/v1/usage_ingest_params.rbs +13 -0
  447. data/sig/metronome_sdk/models/v1/usage_list_params.rbs +17 -0
  448. data/sig/metronome_sdk/models/v1/usage_list_response.rbs +15 -0
  449. data/sig/metronome_sdk/models/v1/usage_list_with_groups_params.rbs +15 -0
  450. data/sig/metronome_sdk/models/v1/usage_list_with_groups_response.rbs +8 -0
  451. data/sig/metronome_sdk/models/v1/usage_search_params.rbs +26 -0
  452. data/sig/metronome_sdk/models/v1/usage_search_response.rbs +230 -0
  453. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +106 -1
  454. data/sig/metronome_sdk/models/v2/contract_edit_commit_response.rbs +2 -0
  455. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +81 -1
  456. data/sig/metronome_sdk/models/v2/contract_edit_credit_response.rbs +2 -0
  457. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +2233 -303
  458. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +2 -0
  459. data/sig/metronome_sdk/models/v2/contract_get_edit_history_params.rbs +6 -0
  460. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +2475 -453
  461. data/sig/metronome_sdk/models/v2/contract_list_params.rbs +10 -0
  462. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +1400 -43
  463. data/sig/metronome_sdk/models/v2/contract_retrieve_params.rbs +9 -0
  464. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +1400 -43
  465. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -0
  466. data/sig/metronome_sdk/resources/v1/contracts.rbs +10 -0
  467. data/sig/metronome_sdk/resources/v1/credit_grants.rbs +1 -0
  468. data/sig/metronome_sdk/resources/v1/custom_fields.rbs +1 -1
  469. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -1
  470. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +1 -0
  471. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +1 -0
  472. data/sig/metronome_sdk/resources/v1/customers.rbs +8 -0
  473. data/sig/metronome_sdk/resources/v1/usage.rbs +5 -0
  474. data/sig/metronome_sdk/resources/v2/contracts.rbs +8 -1
  475. metadata +20 -2
@@ -20,21 +20,22 @@ module MetronomeSDK
20
20
  required :starting_at, Time
21
21
 
22
22
  # @!attribute billing_provider_configuration
23
- # The billing provider configuration associated with a contract.
23
+ # The billing provider configuration associated with a contract. Provide either an
24
+ # ID or the provider and delivery method.
24
25
  #
25
- # @return [MetronomeSDK::V1::ContractCreateParams::BillingProviderConfiguration, nil]
26
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::BillingProviderConfiguration, nil]
26
27
  optional :billing_provider_configuration,
27
28
  -> { MetronomeSDK::V1::ContractCreateParams::BillingProviderConfiguration }
28
29
 
29
30
  # @!attribute commits
30
31
  #
31
- # @return [Array<MetronomeSDK::V1::ContractCreateParams::Commit>, nil]
32
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Commit>, nil]
32
33
  optional :commits,
33
34
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Commit] }
34
35
 
35
36
  # @!attribute credits
36
37
  #
37
- # @return [Array<MetronomeSDK::V1::ContractCreateParams::Credit>, nil]
38
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Credit>, nil]
38
39
  optional :credits,
39
40
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Credit] }
40
41
 
@@ -46,7 +47,7 @@ module MetronomeSDK
46
47
  # @!attribute discounts
47
48
  # This field's availability is dependent on your client's configuration.
48
49
  #
49
- # @return [Array<MetronomeSDK::V1::ContractCreateParams::Discount>, nil]
50
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Discount>, nil]
50
51
  optional :discounts,
51
52
  -> {
52
53
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Discount]
@@ -58,13 +59,21 @@ module MetronomeSDK
58
59
  # @return [Time, nil]
59
60
  optional :ending_before, Time
60
61
 
62
+ # @!attribute hierarchy_configuration
63
+ #
64
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration, nil]
65
+ optional :hierarchy_configuration,
66
+ -> {
67
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration
68
+ }
69
+
61
70
  # @!attribute multiplier_override_prioritization
62
71
  # Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list
63
72
  # prices automatically. EXPLICIT prioritization requires specifying priorities for
64
73
  # each multiplier; the one with the lowest priority value will be prioritized
65
74
  # first. If tiered overrides are used, prioritization must be explicit.
66
75
  #
67
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::MultiplierOverridePrioritization, nil]
76
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::MultiplierOverridePrioritization, nil]
68
77
  optional :multiplier_override_prioritization,
69
78
  enum: -> { MetronomeSDK::V1::ContractCreateParams::MultiplierOverridePrioritization }
70
79
 
@@ -86,7 +95,7 @@ module MetronomeSDK
86
95
 
87
96
  # @!attribute overrides
88
97
  #
89
- # @return [Array<MetronomeSDK::V1::ContractCreateParams::Override>, nil]
98
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Override>, nil]
90
99
  optional :overrides,
91
100
  -> {
92
101
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Override]
@@ -94,14 +103,20 @@ module MetronomeSDK
94
103
 
95
104
  # @!attribute prepaid_balance_threshold_configuration
96
105
  #
97
- # @return [MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration, nil]
106
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration, nil]
98
107
  optional :prepaid_balance_threshold_configuration,
99
108
  -> { MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration }
100
109
 
110
+ # @!attribute priority
111
+ # Priority of the contract.
112
+ #
113
+ # @return [Float, nil]
114
+ optional :priority, Float
115
+
101
116
  # @!attribute professional_services
102
117
  # This field's availability is dependent on your client's configuration.
103
118
  #
104
- # @return [Array<MetronomeSDK::V1::ContractCreateParams::ProfessionalService>, nil]
119
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::ProfessionalService>, nil]
105
120
  optional :professional_services,
106
121
  -> {
107
122
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::ProfessionalService]
@@ -121,7 +136,7 @@ module MetronomeSDK
121
136
 
122
137
  # @!attribute recurring_commits
123
138
  #
124
- # @return [Array<MetronomeSDK::V1::ContractCreateParams::RecurringCommit>, nil]
139
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit>, nil]
125
140
  optional :recurring_commits,
126
141
  -> {
127
142
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::RecurringCommit]
@@ -129,7 +144,7 @@ module MetronomeSDK
129
144
 
130
145
  # @!attribute recurring_credits
131
146
  #
132
- # @return [Array<MetronomeSDK::V1::ContractCreateParams::RecurringCredit>, nil]
147
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit>, nil]
133
148
  optional :recurring_credits,
134
149
  -> {
135
150
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::RecurringCredit]
@@ -138,7 +153,7 @@ module MetronomeSDK
138
153
  # @!attribute reseller_royalties
139
154
  # This field's availability is dependent on your client's configuration.
140
155
  #
141
- # @return [Array<MetronomeSDK::V1::ContractCreateParams::ResellerRoyalty>, nil]
156
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::ResellerRoyalty>, nil]
142
157
  optional :reseller_royalties,
143
158
  -> {
144
159
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::ResellerRoyalty]
@@ -152,7 +167,7 @@ module MetronomeSDK
152
167
 
153
168
  # @!attribute scheduled_charges
154
169
  #
155
- # @return [Array<MetronomeSDK::V1::ContractCreateParams::ScheduledCharge>, nil]
170
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge>, nil]
156
171
  optional :scheduled_charges,
157
172
  -> {
158
173
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::ScheduledCharge]
@@ -165,16 +180,27 @@ module MetronomeSDK
165
180
  # after a Contract has been created. If this field is omitted, charges will appear
166
181
  # on a separate invoice from usage charges.
167
182
  #
168
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::ScheduledChargesOnUsageInvoices, nil]
183
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::ScheduledChargesOnUsageInvoices, nil]
169
184
  optional :scheduled_charges_on_usage_invoices,
170
185
  enum: -> { MetronomeSDK::V1::ContractCreateParams::ScheduledChargesOnUsageInvoices }
171
186
 
172
187
  # @!attribute spend_threshold_configuration
173
188
  #
174
- # @return [MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration, nil]
189
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration, nil]
175
190
  optional :spend_threshold_configuration,
176
191
  -> { MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration }
177
192
 
193
+ # @!attribute subscriptions
194
+ # Optional list of
195
+ # [subscriptions](https://docs.metronome.com/manage-product-access/create-subscription/)
196
+ # to add to the contract.
197
+ #
198
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Subscription>, nil]
199
+ optional :subscriptions,
200
+ -> {
201
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Subscription]
202
+ }
203
+
178
204
  # @!attribute total_contract_value
179
205
  # This field's availability is dependent on your client's configuration.
180
206
  #
@@ -183,7 +209,7 @@ module MetronomeSDK
183
209
 
184
210
  # @!attribute transition
185
211
  #
186
- # @return [MetronomeSDK::V1::ContractCreateParams::Transition, nil]
212
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Transition, nil]
187
213
  optional :transition, -> { MetronomeSDK::V1::ContractCreateParams::Transition }
188
214
 
189
215
  # @!attribute uniqueness_key
@@ -196,18 +222,18 @@ module MetronomeSDK
196
222
 
197
223
  # @!attribute usage_filter
198
224
  #
199
- # @return [MetronomeSDK::BaseUsageFilter, nil]
225
+ # @return [MetronomeSDK::Models::BaseUsageFilter, nil]
200
226
  optional :usage_filter, -> { MetronomeSDK::BaseUsageFilter }
201
227
 
202
228
  # @!attribute usage_statement_schedule
203
229
  #
204
- # @return [MetronomeSDK::V1::ContractCreateParams::UsageStatementSchedule, nil]
230
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::UsageStatementSchedule, nil]
205
231
  optional :usage_statement_schedule,
206
232
  -> {
207
233
  MetronomeSDK::V1::ContractCreateParams::UsageStatementSchedule
208
234
  }
209
235
 
210
- # @!method initialize(customer_id:, starting_at:, billing_provider_configuration: nil, commits: nil, credits: nil, custom_fields: nil, discounts: nil, ending_before: nil, multiplier_override_prioritization: nil, name: nil, net_payment_terms_days: nil, netsuite_sales_order_id: nil, overrides: nil, prepaid_balance_threshold_configuration: nil, professional_services: nil, rate_card_alias: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, reseller_royalties: nil, salesforce_opportunity_id: nil, scheduled_charges: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, total_contract_value: nil, transition: nil, uniqueness_key: nil, usage_filter: nil, usage_statement_schedule: nil, request_options: {})
236
+ # @!method initialize(customer_id:, starting_at:, billing_provider_configuration: nil, commits: nil, credits: nil, custom_fields: nil, discounts: nil, ending_before: nil, hierarchy_configuration: nil, multiplier_override_prioritization: nil, name: nil, net_payment_terms_days: nil, netsuite_sales_order_id: nil, overrides: nil, prepaid_balance_threshold_configuration: nil, priority: nil, professional_services: nil, rate_card_alias: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, reseller_royalties: nil, salesforce_opportunity_id: nil, scheduled_charges: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, subscriptions: nil, total_contract_value: nil, transition: nil, uniqueness_key: nil, usage_filter: nil, usage_statement_schedule: nil, request_options: {})
211
237
  # Some parameter documentations has been truncated, see
212
238
  # {MetronomeSDK::Models::V1::ContractCreateParams} for more details.
213
239
  #
@@ -215,19 +241,21 @@ module MetronomeSDK
215
241
  #
216
242
  # @param starting_at [Time] inclusive contract start time
217
243
  #
218
- # @param billing_provider_configuration [MetronomeSDK::V1::ContractCreateParams::BillingProviderConfiguration] The billing provider configuration associated with a contract.
244
+ # @param billing_provider_configuration [MetronomeSDK::Models::V1::ContractCreateParams::BillingProviderConfiguration] The billing provider configuration associated with a contract. Provide either an
219
245
  #
220
- # @param commits [Array<MetronomeSDK::V1::ContractCreateParams::Commit>]
246
+ # @param commits [Array<MetronomeSDK::Models::V1::ContractCreateParams::Commit>]
221
247
  #
222
- # @param credits [Array<MetronomeSDK::V1::ContractCreateParams::Credit>]
248
+ # @param credits [Array<MetronomeSDK::Models::V1::ContractCreateParams::Credit>]
223
249
  #
224
250
  # @param custom_fields [Hash{Symbol=>String}]
225
251
  #
226
- # @param discounts [Array<MetronomeSDK::V1::ContractCreateParams::Discount>] This field's availability is dependent on your client's configuration.
252
+ # @param discounts [Array<MetronomeSDK::Models::V1::ContractCreateParams::Discount>] This field's availability is dependent on your client's configuration.
227
253
  #
228
254
  # @param ending_before [Time] exclusive contract end time
229
255
  #
230
- # @param multiplier_override_prioritization [Symbol, MetronomeSDK::V1::ContractCreateParams::MultiplierOverridePrioritization] Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list price
256
+ # @param hierarchy_configuration [MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration]
257
+ #
258
+ # @param multiplier_override_prioritization [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::MultiplierOverridePrioritization] Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list price
231
259
  #
232
260
  # @param name [String]
233
261
  #
@@ -235,75 +263,90 @@ module MetronomeSDK
235
263
  #
236
264
  # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
237
265
  #
238
- # @param overrides [Array<MetronomeSDK::V1::ContractCreateParams::Override>]
266
+ # @param overrides [Array<MetronomeSDK::Models::V1::ContractCreateParams::Override>]
239
267
  #
240
- # @param prepaid_balance_threshold_configuration [MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration]
268
+ # @param prepaid_balance_threshold_configuration [MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration]
241
269
  #
242
- # @param professional_services [Array<MetronomeSDK::V1::ContractCreateParams::ProfessionalService>] This field's availability is dependent on your client's configuration.
270
+ # @param priority [Float] Priority of the contract.
271
+ #
272
+ # @param professional_services [Array<MetronomeSDK::Models::V1::ContractCreateParams::ProfessionalService>] This field's availability is dependent on your client's configuration.
243
273
  #
244
274
  # @param rate_card_alias [String] Selects the rate card linked to the specified alias as of the contract's start d
245
275
  #
246
276
  # @param rate_card_id [String]
247
277
  #
248
- # @param recurring_commits [Array<MetronomeSDK::V1::ContractCreateParams::RecurringCommit>]
278
+ # @param recurring_commits [Array<MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit>]
249
279
  #
250
- # @param recurring_credits [Array<MetronomeSDK::V1::ContractCreateParams::RecurringCredit>]
280
+ # @param recurring_credits [Array<MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit>]
251
281
  #
252
- # @param reseller_royalties [Array<MetronomeSDK::V1::ContractCreateParams::ResellerRoyalty>] This field's availability is dependent on your client's configuration.
282
+ # @param reseller_royalties [Array<MetronomeSDK::Models::V1::ContractCreateParams::ResellerRoyalty>] This field's availability is dependent on your client's configuration.
253
283
  #
254
284
  # @param salesforce_opportunity_id [String] This field's availability is dependent on your client's configuration.
255
285
  #
256
- # @param scheduled_charges [Array<MetronomeSDK::V1::ContractCreateParams::ScheduledCharge>]
286
+ # @param scheduled_charges [Array<MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge>]
287
+ #
288
+ # @param scheduled_charges_on_usage_invoices [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::ScheduledChargesOnUsageInvoices] Determines which scheduled and commit charges to consolidate onto the Contract's
257
289
  #
258
- # @param scheduled_charges_on_usage_invoices [Symbol, MetronomeSDK::V1::ContractCreateParams::ScheduledChargesOnUsageInvoices] Determines which scheduled and commit charges to consolidate onto the Contract's
290
+ # @param spend_threshold_configuration [MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration]
259
291
  #
260
- # @param spend_threshold_configuration [MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration]
292
+ # @param subscriptions [Array<MetronomeSDK::Models::V1::ContractCreateParams::Subscription>] Optional list of [subscriptions](https://docs.metronome.com/manage-product-acces
261
293
  #
262
294
  # @param total_contract_value [Float] This field's availability is dependent on your client's configuration.
263
295
  #
264
- # @param transition [MetronomeSDK::V1::ContractCreateParams::Transition]
296
+ # @param transition [MetronomeSDK::Models::V1::ContractCreateParams::Transition]
265
297
  #
266
298
  # @param uniqueness_key [String] Prevents the creation of duplicates. If a request to create a record is made wit
267
299
  #
268
- # @param usage_filter [MetronomeSDK::BaseUsageFilter]
300
+ # @param usage_filter [MetronomeSDK::Models::BaseUsageFilter]
269
301
  #
270
- # @param usage_statement_schedule [MetronomeSDK::V1::ContractCreateParams::UsageStatementSchedule]
302
+ # @param usage_statement_schedule [MetronomeSDK::Models::V1::ContractCreateParams::UsageStatementSchedule]
271
303
  #
272
304
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
273
305
 
274
306
  class BillingProviderConfiguration < MetronomeSDK::Internal::Type::BaseModel
275
307
  # @!attribute billing_provider
308
+ # Do not specify if using billing_provider_configuration_id.
276
309
  #
277
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::BillingProviderConfiguration::BillingProvider, nil]
310
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::BillingProviderConfiguration::BillingProvider, nil]
278
311
  optional :billing_provider,
279
312
  enum: -> {
280
313
  MetronomeSDK::V1::ContractCreateParams::BillingProviderConfiguration::BillingProvider
281
314
  }
282
315
 
283
316
  # @!attribute billing_provider_configuration_id
284
- # The Metronome ID of the billing provider configuration
317
+ # The Metronome ID of the billing provider configuration. Use when a customer has
318
+ # multiple configurations with the same billing provider and delivery method.
319
+ # Otherwise, specify the billing_provider and delivery_method.
285
320
  #
286
321
  # @return [String, nil]
287
322
  optional :billing_provider_configuration_id, String
288
323
 
289
324
  # @!attribute delivery_method
325
+ # Do not specify if using billing_provider_configuration_id.
290
326
  #
291
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::BillingProviderConfiguration::DeliveryMethod, nil]
327
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::BillingProviderConfiguration::DeliveryMethod, nil]
292
328
  optional :delivery_method,
293
329
  enum: -> {
294
330
  MetronomeSDK::V1::ContractCreateParams::BillingProviderConfiguration::DeliveryMethod
295
331
  }
296
332
 
297
333
  # @!method initialize(billing_provider: nil, billing_provider_configuration_id: nil, delivery_method: nil)
298
- # The billing provider configuration associated with a contract.
334
+ # Some parameter documentations has been truncated, see
335
+ # {MetronomeSDK::Models::V1::ContractCreateParams::BillingProviderConfiguration}
336
+ # for more details.
299
337
  #
300
- # @param billing_provider [Symbol, MetronomeSDK::V1::ContractCreateParams::BillingProviderConfiguration::BillingProvider]
338
+ # The billing provider configuration associated with a contract. Provide either an
339
+ # ID or the provider and delivery method.
301
340
  #
302
- # @param billing_provider_configuration_id [String] The Metronome ID of the billing provider configuration
341
+ # @param billing_provider [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::BillingProviderConfiguration::BillingProvider] Do not specify if using billing_provider_configuration_id.
303
342
  #
304
- # @param delivery_method [Symbol, MetronomeSDK::V1::ContractCreateParams::BillingProviderConfiguration::DeliveryMethod]
343
+ # @param billing_provider_configuration_id [String] The Metronome ID of the billing provider configuration. Use when a customer has
344
+ #
345
+ # @param delivery_method [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::BillingProviderConfiguration::DeliveryMethod] Do not specify if using billing_provider_configuration_id.
305
346
 
306
- # @see MetronomeSDK::V1::ContractCreateParams::BillingProviderConfiguration#billing_provider
347
+ # Do not specify if using billing_provider_configuration_id.
348
+ #
349
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::BillingProviderConfiguration#billing_provider
307
350
  module BillingProvider
308
351
  extend MetronomeSDK::Internal::Type::Enum
309
352
 
@@ -317,7 +360,9 @@ module MetronomeSDK
317
360
  # @return [Array<Symbol>]
318
361
  end
319
362
 
320
- # @see MetronomeSDK::V1::ContractCreateParams::BillingProviderConfiguration#delivery_method
363
+ # Do not specify if using billing_provider_configuration_id.
364
+ #
365
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::BillingProviderConfiguration#delivery_method
321
366
  module DeliveryMethod
322
367
  extend MetronomeSDK::Internal::Type::Enum
323
368
 
@@ -339,7 +384,7 @@ module MetronomeSDK
339
384
 
340
385
  # @!attribute type
341
386
  #
342
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::Commit::Type]
387
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::Type]
343
388
  required :type, enum: -> { MetronomeSDK::V1::ContractCreateParams::Commit::Type }
344
389
 
345
390
  # @!attribute access_schedule
@@ -347,7 +392,7 @@ module MetronomeSDK
347
392
  # commits only one schedule item is allowed and amount must match invoice_schedule
348
393
  # total.
349
394
  #
350
- # @return [MetronomeSDK::V1::ContractCreateParams::Commit::AccessSchedule, nil]
395
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Commit::AccessSchedule, nil]
351
396
  optional :access_schedule, -> { MetronomeSDK::V1::ContractCreateParams::Commit::AccessSchedule }
352
397
 
353
398
  # @!attribute amount
@@ -357,15 +402,17 @@ module MetronomeSDK
357
402
  optional :amount, Float
358
403
 
359
404
  # @!attribute applicable_product_ids
360
- # Which products the commit applies to. If both applicable_product_ids and
361
- # applicable_product_tags are not provided, the commit applies to all products.
405
+ # Which products the commit applies to. If applicable_product_ids,
406
+ # applicable_product_tags or specifiers are not provided, the commit applies to
407
+ # all products.
362
408
  #
363
409
  # @return [Array<String>, nil]
364
410
  optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
365
411
 
366
412
  # @!attribute applicable_product_tags
367
- # Which tags the commit applies to. If both applicable_product_ids and
368
- # applicable_product_tags are not provided, the commit applies to all products.
413
+ # Which tags the commit applies to. If applicable_product_ids,
414
+ # applicable_product_tags or specifiers are not provided, the commit applies to
415
+ # all products.
369
416
  #
370
417
  # @return [Array<String>, nil]
371
418
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
@@ -381,13 +428,20 @@ module MetronomeSDK
381
428
  # @return [String, nil]
382
429
  optional :description, String
383
430
 
431
+ # @!attribute hierarchy_configuration
432
+ # Optional configuration for commit hierarchy access control
433
+ #
434
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration, nil]
435
+ optional :hierarchy_configuration,
436
+ -> { MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration }
437
+
384
438
  # @!attribute invoice_schedule
385
439
  # Required for "POSTPAID" commits: the true up invoice will be generated at this
386
440
  # time and only one schedule item is allowed; the total must match access_schedule
387
441
  # amount. Optional for "PREPAID" commits: if not provided, this will be a
388
442
  # "complimentary" commit with no invoice.
389
443
  #
390
- # @return [MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule, nil]
444
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule, nil]
391
445
  optional :invoice_schedule, -> { MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule }
392
446
 
393
447
  # @!attribute name
@@ -405,7 +459,7 @@ module MetronomeSDK
405
459
  # @!attribute payment_gate_config
406
460
  # optionally payment gate this commit
407
461
  #
408
- # @return [MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig, nil]
462
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig, nil]
409
463
  optional :payment_gate_config,
410
464
  -> {
411
465
  MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig
@@ -420,7 +474,7 @@ module MetronomeSDK
420
474
 
421
475
  # @!attribute rate_type
422
476
  #
423
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::Commit::RateType, nil]
477
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::RateType, nil]
424
478
  optional :rate_type, enum: -> { MetronomeSDK::V1::ContractCreateParams::Commit::RateType }
425
479
 
426
480
  # @!attribute rollover_fraction
@@ -429,6 +483,18 @@ module MetronomeSDK
429
483
  # @return [Float, nil]
430
484
  optional :rollover_fraction, Float
431
485
 
486
+ # @!attribute specifiers
487
+ # List of filters that determine what kind of customer usage draws down a commit
488
+ # or credit. A customer's usage needs to meet the condition of at least one of the
489
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
490
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
491
+ #
492
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Commit::Specifier>, nil]
493
+ optional :specifiers,
494
+ -> {
495
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Commit::Specifier]
496
+ }
497
+
432
498
  # @!attribute temporary_id
433
499
  # A temporary ID for the commit that can be used to reference the commit for
434
500
  # commit specific overrides.
@@ -436,43 +502,47 @@ module MetronomeSDK
436
502
  # @return [String, nil]
437
503
  optional :temporary_id, String
438
504
 
439
- # @!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)
505
+ # @!method initialize(product_id:, type:, access_schedule: nil, amount: nil, applicable_product_ids: nil, applicable_product_tags: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, invoice_schedule: nil, name: nil, netsuite_sales_order_id: nil, payment_gate_config: nil, priority: nil, rate_type: nil, rollover_fraction: nil, specifiers: nil, temporary_id: nil)
440
506
  # Some parameter documentations has been truncated, see
441
- # {MetronomeSDK::V1::ContractCreateParams::Commit} for more details.
507
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Commit} for more details.
442
508
  #
443
509
  # @param product_id [String]
444
510
  #
445
- # @param type [Symbol, MetronomeSDK::V1::ContractCreateParams::Commit::Type]
511
+ # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::Type]
446
512
  #
447
- # @param access_schedule [MetronomeSDK::V1::ContractCreateParams::Commit::AccessSchedule] Required: Schedule for distributing the commit to the customer. For "POSTPAID" c
513
+ # @param access_schedule [MetronomeSDK::Models::V1::ContractCreateParams::Commit::AccessSchedule] Required: Schedule for distributing the commit to the customer. For "POSTPAID" c
448
514
  #
449
515
  # @param amount [Float] (DEPRECATED) Use access_schedule and invoice_schedule instead.
450
516
  #
451
- # @param applicable_product_ids [Array<String>] Which products the commit applies to. If both applicable_product_ids and applica
517
+ # @param applicable_product_ids [Array<String>] Which products the commit applies to. If applicable_product_ids, applicable_prod
452
518
  #
453
- # @param applicable_product_tags [Array<String>] Which tags the commit applies to. If both applicable*product_ids and applicable*
519
+ # @param applicable_product_tags [Array<String>] Which tags the commit applies to. If applicable*product_ids, applicable_product*
454
520
  #
455
521
  # @param custom_fields [Hash{Symbol=>String}]
456
522
  #
457
523
  # @param description [String] Used only in UI/API. It is not exposed to end customers.
458
524
  #
459
- # @param invoice_schedule [MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule] Required for "POSTPAID" commits: the true up invoice will be generated at this t
525
+ # @param hierarchy_configuration [MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration] Optional configuration for commit hierarchy access control
526
+ #
527
+ # @param invoice_schedule [MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule] Required for "POSTPAID" commits: the true up invoice will be generated at this t
460
528
  #
461
529
  # @param name [String] displayed on invoices
462
530
  #
463
531
  # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
464
532
  #
465
- # @param payment_gate_config [MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig] optionally payment gate this commit
533
+ # @param payment_gate_config [MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig] optionally payment gate this commit
466
534
  #
467
535
  # @param priority [Float] If multiple commits are applicable, the one with the lower priority will apply f
468
536
  #
469
- # @param rate_type [Symbol, MetronomeSDK::V1::ContractCreateParams::Commit::RateType]
537
+ # @param rate_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::RateType]
470
538
  #
471
539
  # @param rollover_fraction [Float] Fraction of unused segments that will be rolled over. Must be between 0 and 1.
472
540
  #
541
+ # @param specifiers [Array<MetronomeSDK::Models::V1::ContractCreateParams::Commit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
542
+ #
473
543
  # @param temporary_id [String] A temporary ID for the commit that can be used to reference the commit for commi
474
544
 
475
- # @see MetronomeSDK::V1::ContractCreateParams::Commit#type
545
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit#type
476
546
  module Type
477
547
  extend MetronomeSDK::Internal::Type::Enum
478
548
 
@@ -483,11 +553,11 @@ module MetronomeSDK
483
553
  # @return [Array<Symbol>]
484
554
  end
485
555
 
486
- # @see MetronomeSDK::V1::ContractCreateParams::Commit#access_schedule
556
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit#access_schedule
487
557
  class AccessSchedule < MetronomeSDK::Internal::Type::BaseModel
488
558
  # @!attribute schedule_items
489
559
  #
490
- # @return [Array<MetronomeSDK::V1::ContractCreateParams::Commit::AccessSchedule::ScheduleItem>]
560
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Commit::AccessSchedule::ScheduleItem>]
491
561
  required :schedule_items,
492
562
  -> {
493
563
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Commit::AccessSchedule::ScheduleItem]
@@ -504,7 +574,7 @@ module MetronomeSDK
504
574
  # commits only one schedule item is allowed and amount must match invoice_schedule
505
575
  # total.
506
576
  #
507
- # @param schedule_items [Array<MetronomeSDK::V1::ContractCreateParams::Commit::AccessSchedule::ScheduleItem>]
577
+ # @param schedule_items [Array<MetronomeSDK::Models::V1::ContractCreateParams::Commit::AccessSchedule::ScheduleItem>]
508
578
  #
509
579
  # @param credit_type_id [String] Defaults to USD (cents) if not passed
510
580
 
@@ -535,7 +605,118 @@ module MetronomeSDK
535
605
  end
536
606
  end
537
607
 
538
- # @see MetronomeSDK::V1::ContractCreateParams::Commit#invoice_schedule
608
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit#hierarchy_configuration
609
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
610
+ # @!attribute child_access
611
+ #
612
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
613
+ required :child_access,
614
+ union: -> {
615
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess
616
+ }
617
+
618
+ # @!method initialize(child_access:)
619
+ # Optional configuration for commit hierarchy access control
620
+ #
621
+ # @param child_access [MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
622
+
623
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration#child_access
624
+ module ChildAccess
625
+ extend MetronomeSDK::Internal::Type::Union
626
+
627
+ variant -> {
628
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
629
+ }
630
+
631
+ variant -> {
632
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
633
+ }
634
+
635
+ variant -> {
636
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
637
+ }
638
+
639
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
640
+ # @!attribute type
641
+ #
642
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
643
+ required :type,
644
+ enum: -> {
645
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
646
+ }
647
+
648
+ # @!method initialize(type:)
649
+ # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
650
+
651
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
652
+ module Type
653
+ extend MetronomeSDK::Internal::Type::Enum
654
+
655
+ ALL = :ALL
656
+
657
+ # @!method self.values
658
+ # @return [Array<Symbol>]
659
+ end
660
+ end
661
+
662
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
663
+ # @!attribute type
664
+ #
665
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
666
+ required :type,
667
+ enum: -> {
668
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
669
+ }
670
+
671
+ # @!method initialize(type:)
672
+ # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
673
+
674
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
675
+ module Type
676
+ extend MetronomeSDK::Internal::Type::Enum
677
+
678
+ NONE = :NONE
679
+
680
+ # @!method self.values
681
+ # @return [Array<Symbol>]
682
+ end
683
+ end
684
+
685
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
686
+ # @!attribute contract_ids
687
+ #
688
+ # @return [Array<String>]
689
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
690
+
691
+ # @!attribute type
692
+ #
693
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
694
+ required :type,
695
+ enum: -> {
696
+ MetronomeSDK::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
697
+ }
698
+
699
+ # @!method initialize(contract_ids:, type:)
700
+ # @param contract_ids [Array<String>]
701
+ # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
702
+
703
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
704
+ module Type
705
+ extend MetronomeSDK::Internal::Type::Enum
706
+
707
+ CONTRACT_IDS = :CONTRACT_IDS
708
+
709
+ # @!method self.values
710
+ # @return [Array<Symbol>]
711
+ end
712
+ end
713
+
714
+ # @!method self.variants
715
+ # @return [Array(MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
716
+ end
717
+ end
718
+
719
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit#invoice_schedule
539
720
  class InvoiceSchedule < MetronomeSDK::Internal::Type::BaseModel
540
721
  # @!attribute credit_type_id
541
722
  # Defaults to USD (cents) if not passed.
@@ -548,14 +729,14 @@ module MetronomeSDK
548
729
  # amount. If amount is sent, the unit price is assumed to be the amount and
549
730
  # quantity is inferred to be 1.
550
731
  #
551
- # @return [MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule, nil]
732
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule, nil]
552
733
  optional :recurring_schedule,
553
734
  -> { MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule }
554
735
 
555
736
  # @!attribute schedule_items
556
737
  # Either provide amount or provide both unit_price and quantity.
557
738
  #
558
- # @return [Array<MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::ScheduleItem>, nil]
739
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule::ScheduleItem>, nil]
559
740
  optional :schedule_items,
560
741
  -> {
561
742
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::ScheduleItem]
@@ -563,8 +744,8 @@ module MetronomeSDK
563
744
 
564
745
  # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
565
746
  # Some parameter documentations has been truncated, see
566
- # {MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule} for more
567
- # details.
747
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule} for
748
+ # more details.
568
749
  #
569
750
  # Required for "POSTPAID" commits: the true up invoice will be generated at this
570
751
  # time and only one schedule item is allowed; the total must match access_schedule
@@ -573,15 +754,15 @@ module MetronomeSDK
573
754
  #
574
755
  # @param credit_type_id [String] Defaults to USD (cents) if not passed.
575
756
  #
576
- # @param recurring_schedule [MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
757
+ # @param recurring_schedule [MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
577
758
  #
578
- # @param schedule_items [Array<MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
759
+ # @param schedule_items [Array<MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
579
760
 
580
- # @see MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule#recurring_schedule
761
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule#recurring_schedule
581
762
  class RecurringSchedule < MetronomeSDK::Internal::Type::BaseModel
582
763
  # @!attribute amount_distribution
583
764
  #
584
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule::AmountDistribution]
765
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule::AmountDistribution]
585
766
  required :amount_distribution,
586
767
  enum: -> {
587
768
  MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule::AmountDistribution
@@ -595,7 +776,7 @@ module MetronomeSDK
595
776
 
596
777
  # @!attribute frequency
597
778
  #
598
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule::Frequency]
779
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule::Frequency]
599
780
  required :frequency,
600
781
  enum: -> {
601
782
  MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule::Frequency
@@ -633,18 +814,18 @@ module MetronomeSDK
633
814
 
634
815
  # @!method initialize(amount_distribution:, ending_before:, frequency:, starting_at:, amount: nil, quantity: nil, unit_price: nil)
635
816
  # Some parameter documentations has been truncated, see
636
- # {MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule}
817
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule}
637
818
  # for more details.
638
819
  #
639
820
  # Enter the unit price and quantity for the charge or instead only send the
640
821
  # amount. If amount is sent, the unit price is assumed to be the amount and
641
822
  # quantity is inferred to be 1.
642
823
  #
643
- # @param amount_distribution [Symbol, MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule::AmountDistribution]
824
+ # @param amount_distribution [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule::AmountDistribution]
644
825
  #
645
826
  # @param ending_before [Time] RFC 3339 timestamp (exclusive).
646
827
  #
647
- # @param frequency [Symbol, MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule::Frequency]
828
+ # @param frequency [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule::Frequency]
648
829
  #
649
830
  # @param starting_at [Time] RFC 3339 timestamp (inclusive).
650
831
  #
@@ -654,7 +835,7 @@ module MetronomeSDK
654
835
  #
655
836
  # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
656
837
 
657
- # @see MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule#amount_distribution
838
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule#amount_distribution
658
839
  module AmountDistribution
659
840
  extend MetronomeSDK::Internal::Type::Enum
660
841
 
@@ -666,7 +847,7 @@ module MetronomeSDK
666
847
  # @return [Array<Symbol>]
667
848
  end
668
849
 
669
- # @see MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule#frequency
850
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule::RecurringSchedule#frequency
670
851
  module Frequency
671
852
  extend MetronomeSDK::Internal::Type::Enum
672
853
 
@@ -713,7 +894,7 @@ module MetronomeSDK
713
894
 
714
895
  # @!method initialize(timestamp:, amount: nil, quantity: nil, unit_price: nil)
715
896
  # Some parameter documentations has been truncated, see
716
- # {MetronomeSDK::V1::ContractCreateParams::Commit::InvoiceSchedule::ScheduleItem}
897
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Commit::InvoiceSchedule::ScheduleItem}
717
898
  # for more details.
718
899
  #
719
900
  # @param timestamp [Time] timestamp of the scheduled event
@@ -726,7 +907,7 @@ module MetronomeSDK
726
907
  end
727
908
  end
728
909
 
729
- # @see MetronomeSDK::V1::ContractCreateParams::Commit#payment_gate_config
910
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit#payment_gate_config
730
911
  class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
731
912
  # @!attribute payment_gate_type
732
913
  # Gate access to the commit balance based on successful collection of payment.
@@ -734,16 +915,25 @@ module MetronomeSDK
734
915
  # facilitate payment using your own payment integration. Select NONE if you do not
735
916
  # wish to payment gate the commit balance.
736
917
  #
737
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::PaymentGateType]
918
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig::PaymentGateType]
738
919
  required :payment_gate_type,
739
920
  enum: -> {
740
921
  MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::PaymentGateType
741
922
  }
742
923
 
924
+ # @!attribute precalculated_tax_config
925
+ # Only applicable if using PRECALCULATED as your tax type.
926
+ #
927
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig::PrecalculatedTaxConfig, nil]
928
+ optional :precalculated_tax_config,
929
+ -> {
930
+ MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::PrecalculatedTaxConfig
931
+ }
932
+
743
933
  # @!attribute stripe_config
744
- # Only applicable if using Stripe as your payment gateway through Metronome.
934
+ # Only applicable if using STRIPE as your payment gate type.
745
935
  #
746
- # @return [MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig, nil]
936
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig, nil]
747
937
  optional :stripe_config,
748
938
  -> { MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig }
749
939
 
@@ -752,29 +942,31 @@ module MetronomeSDK
752
942
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
753
943
  # will default to NONE.
754
944
  #
755
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::TaxType, nil]
945
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig::TaxType, nil]
756
946
  optional :tax_type,
757
947
  enum: -> { MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::TaxType }
758
948
 
759
- # @!method initialize(payment_gate_type:, stripe_config: nil, tax_type: nil)
949
+ # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
760
950
  # Some parameter documentations has been truncated, see
761
- # {MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig} for more
762
- # details.
951
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig} for
952
+ # more details.
763
953
  #
764
954
  # optionally payment gate this commit
765
955
  #
766
- # @param payment_gate_type [Symbol, MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
956
+ # @param payment_gate_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
957
+ #
958
+ # @param precalculated_tax_config [MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
767
959
  #
768
- # @param stripe_config [MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig] Only applicable if using Stripe as your payment gateway through Metronome.
960
+ # @param stripe_config [MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gate type.
769
961
  #
770
- # @param tax_type [Symbol, MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
962
+ # @param tax_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
771
963
 
772
964
  # Gate access to the commit balance based on successful collection of payment.
773
965
  # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
774
966
  # facilitate payment using your own payment integration. Select NONE if you do not
775
967
  # wish to payment gate the commit balance.
776
968
  #
777
- # @see MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig#payment_gate_type
969
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig#payment_gate_type
778
970
  module PaymentGateType
779
971
  extend MetronomeSDK::Internal::Type::Enum
780
972
 
@@ -786,25 +978,66 @@ module MetronomeSDK
786
978
  # @return [Array<Symbol>]
787
979
  end
788
980
 
789
- # @see MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig#stripe_config
981
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig#precalculated_tax_config
982
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
983
+ # @!attribute tax_amount
984
+ # Amount of tax to be applied. This should be in the same currency and
985
+ # denomination as the commit's invoice schedule
986
+ #
987
+ # @return [Float]
988
+ required :tax_amount, Float
989
+
990
+ # @!attribute tax_name
991
+ # Name of the tax to be applied. This may be used in an invoice line item
992
+ # description.
993
+ #
994
+ # @return [String, nil]
995
+ optional :tax_name, String
996
+
997
+ # @!method initialize(tax_amount:, tax_name: nil)
998
+ # Some parameter documentations has been truncated, see
999
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig::PrecalculatedTaxConfig}
1000
+ # for more details.
1001
+ #
1002
+ # Only applicable if using PRECALCULATED as your tax type.
1003
+ #
1004
+ # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
1005
+ #
1006
+ # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
1007
+ end
1008
+
1009
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig#stripe_config
790
1010
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
791
1011
  # @!attribute payment_type
792
1012
  # If left blank, will default to INVOICE
793
1013
  #
794
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig::PaymentType]
1014
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig::PaymentType]
795
1015
  required :payment_type,
796
1016
  enum: -> {
797
1017
  MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig::PaymentType
798
1018
  }
799
1019
 
800
- # @!method initialize(payment_type:)
801
- # Only applicable if using Stripe as your payment gateway through Metronome.
1020
+ # @!attribute invoice_metadata
1021
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
1022
+ # your payment type.
1023
+ #
1024
+ # @return [Hash{Symbol=>String}, nil]
1025
+ optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
1026
+
1027
+ # @!method initialize(payment_type:, invoice_metadata: nil)
1028
+ # Some parameter documentations has been truncated, see
1029
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig}
1030
+ # for more details.
1031
+ #
1032
+ # Only applicable if using STRIPE as your payment gate type.
1033
+ #
1034
+ # @param payment_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
802
1035
  #
803
- # @param payment_type [Symbol, MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
1036
+ # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
804
1037
 
805
1038
  # If left blank, will default to INVOICE
806
1039
  #
807
- # @see MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig#payment_type
1040
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig::StripeConfig#payment_type
808
1041
  module PaymentType
809
1042
  extend MetronomeSDK::Internal::Type::Enum
810
1043
 
@@ -820,19 +1053,21 @@ module MetronomeSDK
820
1053
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
821
1054
  # will default to NONE.
822
1055
  #
823
- # @see MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig#tax_type
1056
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit::PaymentGateConfig#tax_type
824
1057
  module TaxType
825
1058
  extend MetronomeSDK::Internal::Type::Enum
826
1059
 
827
1060
  NONE = :NONE
828
1061
  STRIPE = :STRIPE
1062
+ ANROK = :ANROK
1063
+ PRECALCULATED = :PRECALCULATED
829
1064
 
830
1065
  # @!method self.values
831
1066
  # @return [Array<Symbol>]
832
1067
  end
833
1068
  end
834
1069
 
835
- # @see MetronomeSDK::V1::ContractCreateParams::Commit#rate_type
1070
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Commit#rate_type
836
1071
  module RateType
837
1072
  extend MetronomeSDK::Internal::Type::Enum
838
1073
 
@@ -842,13 +1077,51 @@ module MetronomeSDK
842
1077
  # @!method self.values
843
1078
  # @return [Array<Symbol>]
844
1079
  end
1080
+
1081
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
1082
+ # @!attribute presentation_group_values
1083
+ #
1084
+ # @return [Hash{Symbol=>String}, nil]
1085
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1086
+
1087
+ # @!attribute pricing_group_values
1088
+ #
1089
+ # @return [Hash{Symbol=>String}, nil]
1090
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1091
+
1092
+ # @!attribute product_id
1093
+ # If provided, the specifier will only apply to the product with the specified ID.
1094
+ #
1095
+ # @return [String, nil]
1096
+ optional :product_id, String
1097
+
1098
+ # @!attribute product_tags
1099
+ # If provided, the specifier will only apply to products with all the specified
1100
+ # tags.
1101
+ #
1102
+ # @return [Array<String>, nil]
1103
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1104
+
1105
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
1106
+ # Some parameter documentations has been truncated, see
1107
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Commit::Specifier} for more
1108
+ # details.
1109
+ #
1110
+ # @param presentation_group_values [Hash{Symbol=>String}]
1111
+ #
1112
+ # @param pricing_group_values [Hash{Symbol=>String}]
1113
+ #
1114
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
1115
+ #
1116
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
1117
+ end
845
1118
  end
846
1119
 
847
1120
  class Credit < MetronomeSDK::Internal::Type::BaseModel
848
1121
  # @!attribute access_schedule
849
1122
  # Schedule for distributing the credit to the customer.
850
1123
  #
851
- # @return [MetronomeSDK::V1::ContractCreateParams::Credit::AccessSchedule]
1124
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Credit::AccessSchedule]
852
1125
  required :access_schedule, -> { MetronomeSDK::V1::ContractCreateParams::Credit::AccessSchedule }
853
1126
 
854
1127
  # @!attribute product_id
@@ -881,6 +1154,13 @@ module MetronomeSDK
881
1154
  # @return [String, nil]
882
1155
  optional :description, String
883
1156
 
1157
+ # @!attribute hierarchy_configuration
1158
+ # Optional configuration for credit hierarchy access control
1159
+ #
1160
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration, nil]
1161
+ optional :hierarchy_configuration,
1162
+ -> { MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration }
1163
+
884
1164
  # @!attribute name
885
1165
  # displayed on invoices
886
1166
  #
@@ -902,14 +1182,26 @@ module MetronomeSDK
902
1182
 
903
1183
  # @!attribute rate_type
904
1184
  #
905
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::Credit::RateType, nil]
1185
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Credit::RateType, nil]
906
1186
  optional :rate_type, enum: -> { MetronomeSDK::V1::ContractCreateParams::Credit::RateType }
907
1187
 
908
- # @!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)
1188
+ # @!attribute specifiers
1189
+ # List of filters that determine what kind of customer usage draws down a commit
1190
+ # or credit. A customer's usage needs to meet the condition of at least one of the
1191
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
1192
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
1193
+ #
1194
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Credit::Specifier>, nil]
1195
+ optional :specifiers,
1196
+ -> {
1197
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Credit::Specifier]
1198
+ }
1199
+
1200
+ # @!method initialize(access_schedule:, product_id:, applicable_product_ids: nil, applicable_product_tags: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, specifiers: nil)
909
1201
  # Some parameter documentations has been truncated, see
910
- # {MetronomeSDK::V1::ContractCreateParams::Credit} for more details.
1202
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Credit} for more details.
911
1203
  #
912
- # @param access_schedule [MetronomeSDK::V1::ContractCreateParams::Credit::AccessSchedule] Schedule for distributing the credit to the customer.
1204
+ # @param access_schedule [MetronomeSDK::Models::V1::ContractCreateParams::Credit::AccessSchedule] Schedule for distributing the credit to the customer.
913
1205
  #
914
1206
  # @param product_id [String]
915
1207
  #
@@ -921,19 +1213,23 @@ module MetronomeSDK
921
1213
  #
922
1214
  # @param description [String] Used only in UI/API. It is not exposed to end customers.
923
1215
  #
1216
+ # @param hierarchy_configuration [MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration] Optional configuration for credit hierarchy access control
1217
+ #
924
1218
  # @param name [String] displayed on invoices
925
1219
  #
926
1220
  # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
927
1221
  #
928
1222
  # @param priority [Float] If multiple credits are applicable, the one with the lower priority will apply f
929
1223
  #
930
- # @param rate_type [Symbol, MetronomeSDK::V1::ContractCreateParams::Credit::RateType]
1224
+ # @param rate_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Credit::RateType]
1225
+ #
1226
+ # @param specifiers [Array<MetronomeSDK::Models::V1::ContractCreateParams::Credit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
931
1227
 
932
- # @see MetronomeSDK::V1::ContractCreateParams::Credit#access_schedule
1228
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Credit#access_schedule
933
1229
  class AccessSchedule < MetronomeSDK::Internal::Type::BaseModel
934
1230
  # @!attribute schedule_items
935
1231
  #
936
- # @return [Array<MetronomeSDK::V1::ContractCreateParams::Credit::AccessSchedule::ScheduleItem>]
1232
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Credit::AccessSchedule::ScheduleItem>]
937
1233
  required :schedule_items,
938
1234
  -> {
939
1235
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Credit::AccessSchedule::ScheduleItem]
@@ -948,7 +1244,7 @@ module MetronomeSDK
948
1244
  # @!method initialize(schedule_items:, credit_type_id: nil)
949
1245
  # Schedule for distributing the credit to the customer.
950
1246
  #
951
- # @param schedule_items [Array<MetronomeSDK::V1::ContractCreateParams::Credit::AccessSchedule::ScheduleItem>]
1247
+ # @param schedule_items [Array<MetronomeSDK::Models::V1::ContractCreateParams::Credit::AccessSchedule::ScheduleItem>]
952
1248
  #
953
1249
  # @param credit_type_id [String] Defaults to USD (cents) if not passed
954
1250
 
@@ -979,7 +1275,118 @@ module MetronomeSDK
979
1275
  end
980
1276
  end
981
1277
 
982
- # @see MetronomeSDK::V1::ContractCreateParams::Credit#rate_type
1278
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Credit#hierarchy_configuration
1279
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
1280
+ # @!attribute child_access
1281
+ #
1282
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
1283
+ required :child_access,
1284
+ union: -> {
1285
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess
1286
+ }
1287
+
1288
+ # @!method initialize(child_access:)
1289
+ # Optional configuration for credit hierarchy access control
1290
+ #
1291
+ # @param child_access [MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
1292
+
1293
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration#child_access
1294
+ module ChildAccess
1295
+ extend MetronomeSDK::Internal::Type::Union
1296
+
1297
+ variant -> {
1298
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
1299
+ }
1300
+
1301
+ variant -> {
1302
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
1303
+ }
1304
+
1305
+ variant -> {
1306
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
1307
+ }
1308
+
1309
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
1310
+ # @!attribute type
1311
+ #
1312
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
1313
+ required :type,
1314
+ enum: -> {
1315
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
1316
+ }
1317
+
1318
+ # @!method initialize(type:)
1319
+ # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
1320
+
1321
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
1322
+ module Type
1323
+ extend MetronomeSDK::Internal::Type::Enum
1324
+
1325
+ ALL = :ALL
1326
+
1327
+ # @!method self.values
1328
+ # @return [Array<Symbol>]
1329
+ end
1330
+ end
1331
+
1332
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
1333
+ # @!attribute type
1334
+ #
1335
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
1336
+ required :type,
1337
+ enum: -> {
1338
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
1339
+ }
1340
+
1341
+ # @!method initialize(type:)
1342
+ # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
1343
+
1344
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
1345
+ module Type
1346
+ extend MetronomeSDK::Internal::Type::Enum
1347
+
1348
+ NONE = :NONE
1349
+
1350
+ # @!method self.values
1351
+ # @return [Array<Symbol>]
1352
+ end
1353
+ end
1354
+
1355
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
1356
+ # @!attribute contract_ids
1357
+ #
1358
+ # @return [Array<String>]
1359
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1360
+
1361
+ # @!attribute type
1362
+ #
1363
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
1364
+ required :type,
1365
+ enum: -> {
1366
+ MetronomeSDK::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
1367
+ }
1368
+
1369
+ # @!method initialize(contract_ids:, type:)
1370
+ # @param contract_ids [Array<String>]
1371
+ # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
1372
+
1373
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
1374
+ module Type
1375
+ extend MetronomeSDK::Internal::Type::Enum
1376
+
1377
+ CONTRACT_IDS = :CONTRACT_IDS
1378
+
1379
+ # @!method self.values
1380
+ # @return [Array<Symbol>]
1381
+ end
1382
+ end
1383
+
1384
+ # @!method self.variants
1385
+ # @return [Array(MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V1::ContractCreateParams::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
1386
+ end
1387
+ end
1388
+
1389
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Credit#rate_type
983
1390
  module RateType
984
1391
  extend MetronomeSDK::Internal::Type::Enum
985
1392
 
@@ -989,6 +1396,44 @@ module MetronomeSDK
989
1396
  # @!method self.values
990
1397
  # @return [Array<Symbol>]
991
1398
  end
1399
+
1400
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
1401
+ # @!attribute presentation_group_values
1402
+ #
1403
+ # @return [Hash{Symbol=>String}, nil]
1404
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1405
+
1406
+ # @!attribute pricing_group_values
1407
+ #
1408
+ # @return [Hash{Symbol=>String}, nil]
1409
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1410
+
1411
+ # @!attribute product_id
1412
+ # If provided, the specifier will only apply to the product with the specified ID.
1413
+ #
1414
+ # @return [String, nil]
1415
+ optional :product_id, String
1416
+
1417
+ # @!attribute product_tags
1418
+ # If provided, the specifier will only apply to products with all the specified
1419
+ # tags.
1420
+ #
1421
+ # @return [Array<String>, nil]
1422
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1423
+
1424
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
1425
+ # Some parameter documentations has been truncated, see
1426
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Credit::Specifier} for more
1427
+ # details.
1428
+ #
1429
+ # @param presentation_group_values [Hash{Symbol=>String}]
1430
+ #
1431
+ # @param pricing_group_values [Hash{Symbol=>String}]
1432
+ #
1433
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
1434
+ #
1435
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
1436
+ end
992
1437
  end
993
1438
 
994
1439
  class Discount < MetronomeSDK::Internal::Type::BaseModel
@@ -1000,7 +1445,7 @@ module MetronomeSDK
1000
1445
  # @!attribute schedule
1001
1446
  # Must provide either schedule_items or recurring_schedule.
1002
1447
  #
1003
- # @return [MetronomeSDK::V1::ContractCreateParams::Discount::Schedule]
1448
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule]
1004
1449
  required :schedule, -> { MetronomeSDK::V1::ContractCreateParams::Discount::Schedule }
1005
1450
 
1006
1451
  # @!attribute custom_fields
@@ -1023,7 +1468,7 @@ module MetronomeSDK
1023
1468
  # @!method initialize(product_id:, schedule:, custom_fields: nil, name: nil, netsuite_sales_order_id: nil)
1024
1469
  # @param product_id [String]
1025
1470
  #
1026
- # @param schedule [MetronomeSDK::V1::ContractCreateParams::Discount::Schedule] Must provide either schedule_items or recurring_schedule.
1471
+ # @param schedule [MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule] Must provide either schedule_items or recurring_schedule.
1027
1472
  #
1028
1473
  # @param custom_fields [Hash{Symbol=>String}]
1029
1474
  #
@@ -1031,7 +1476,7 @@ module MetronomeSDK
1031
1476
  #
1032
1477
  # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
1033
1478
 
1034
- # @see MetronomeSDK::V1::ContractCreateParams::Discount#schedule
1479
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Discount#schedule
1035
1480
  class Schedule < MetronomeSDK::Internal::Type::BaseModel
1036
1481
  # @!attribute credit_type_id
1037
1482
  # Defaults to USD (cents) if not passed.
@@ -1044,14 +1489,14 @@ module MetronomeSDK
1044
1489
  # amount. If amount is sent, the unit price is assumed to be the amount and
1045
1490
  # quantity is inferred to be 1.
1046
1491
  #
1047
- # @return [MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule, nil]
1492
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule, nil]
1048
1493
  optional :recurring_schedule,
1049
1494
  -> { MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule }
1050
1495
 
1051
1496
  # @!attribute schedule_items
1052
1497
  # Either provide amount or provide both unit_price and quantity.
1053
1498
  #
1054
- # @return [Array<MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::ScheduleItem>, nil]
1499
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule::ScheduleItem>, nil]
1055
1500
  optional :schedule_items,
1056
1501
  -> {
1057
1502
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::ScheduleItem]
@@ -1059,21 +1504,22 @@ module MetronomeSDK
1059
1504
 
1060
1505
  # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
1061
1506
  # Some parameter documentations has been truncated, see
1062
- # {MetronomeSDK::V1::ContractCreateParams::Discount::Schedule} for more details.
1507
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule} for more
1508
+ # details.
1063
1509
  #
1064
1510
  # Must provide either schedule_items or recurring_schedule.
1065
1511
  #
1066
1512
  # @param credit_type_id [String] Defaults to USD (cents) if not passed.
1067
1513
  #
1068
- # @param recurring_schedule [MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
1514
+ # @param recurring_schedule [MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
1069
1515
  #
1070
- # @param schedule_items [Array<MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
1516
+ # @param schedule_items [Array<MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
1071
1517
 
1072
- # @see MetronomeSDK::V1::ContractCreateParams::Discount::Schedule#recurring_schedule
1518
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule#recurring_schedule
1073
1519
  class RecurringSchedule < MetronomeSDK::Internal::Type::BaseModel
1074
1520
  # @!attribute amount_distribution
1075
1521
  #
1076
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule::AmountDistribution]
1522
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule::AmountDistribution]
1077
1523
  required :amount_distribution,
1078
1524
  enum: -> {
1079
1525
  MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule::AmountDistribution
@@ -1087,7 +1533,7 @@ module MetronomeSDK
1087
1533
 
1088
1534
  # @!attribute frequency
1089
1535
  #
1090
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule::Frequency]
1536
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule::Frequency]
1091
1537
  required :frequency,
1092
1538
  enum: -> {
1093
1539
  MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule::Frequency
@@ -1125,18 +1571,18 @@ module MetronomeSDK
1125
1571
 
1126
1572
  # @!method initialize(amount_distribution:, ending_before:, frequency:, starting_at:, amount: nil, quantity: nil, unit_price: nil)
1127
1573
  # Some parameter documentations has been truncated, see
1128
- # {MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule}
1574
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule}
1129
1575
  # for more details.
1130
1576
  #
1131
1577
  # Enter the unit price and quantity for the charge or instead only send the
1132
1578
  # amount. If amount is sent, the unit price is assumed to be the amount and
1133
1579
  # quantity is inferred to be 1.
1134
1580
  #
1135
- # @param amount_distribution [Symbol, MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule::AmountDistribution]
1581
+ # @param amount_distribution [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule::AmountDistribution]
1136
1582
  #
1137
1583
  # @param ending_before [Time] RFC 3339 timestamp (exclusive).
1138
1584
  #
1139
- # @param frequency [Symbol, MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule::Frequency]
1585
+ # @param frequency [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule::Frequency]
1140
1586
  #
1141
1587
  # @param starting_at [Time] RFC 3339 timestamp (inclusive).
1142
1588
  #
@@ -1146,7 +1592,7 @@ module MetronomeSDK
1146
1592
  #
1147
1593
  # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
1148
1594
 
1149
- # @see MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule#amount_distribution
1595
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule#amount_distribution
1150
1596
  module AmountDistribution
1151
1597
  extend MetronomeSDK::Internal::Type::Enum
1152
1598
 
@@ -1158,7 +1604,7 @@ module MetronomeSDK
1158
1604
  # @return [Array<Symbol>]
1159
1605
  end
1160
1606
 
1161
- # @see MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule#frequency
1607
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule::RecurringSchedule#frequency
1162
1608
  module Frequency
1163
1609
  extend MetronomeSDK::Internal::Type::Enum
1164
1610
 
@@ -1205,8 +1651,8 @@ module MetronomeSDK
1205
1651
 
1206
1652
  # @!method initialize(timestamp:, amount: nil, quantity: nil, unit_price: nil)
1207
1653
  # Some parameter documentations has been truncated, see
1208
- # {MetronomeSDK::V1::ContractCreateParams::Discount::Schedule::ScheduleItem} for
1209
- # more details.
1654
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Discount::Schedule::ScheduleItem}
1655
+ # for more details.
1210
1656
  #
1211
1657
  # @param timestamp [Time] timestamp of the scheduled event
1212
1658
  #
@@ -1219,6 +1665,33 @@ module MetronomeSDK
1219
1665
  end
1220
1666
  end
1221
1667
 
1668
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
1669
+ # @!attribute parent
1670
+ #
1671
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration::Parent]
1672
+ required :parent, -> { MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::Parent }
1673
+
1674
+ # @!method initialize(parent:)
1675
+ # @param parent [MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration::Parent]
1676
+
1677
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration#parent
1678
+ class Parent < MetronomeSDK::Internal::Type::BaseModel
1679
+ # @!attribute contract_id
1680
+ #
1681
+ # @return [String]
1682
+ required :contract_id, String
1683
+
1684
+ # @!attribute customer_id
1685
+ #
1686
+ # @return [String]
1687
+ required :customer_id, String
1688
+
1689
+ # @!method initialize(contract_id:, customer_id:)
1690
+ # @param contract_id [String]
1691
+ # @param customer_id [String]
1692
+ end
1693
+ end
1694
+
1222
1695
  # Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list
1223
1696
  # prices automatically. EXPLICIT prioritization requires specifying priorities for
1224
1697
  # each multiplier; the one with the lowest priority value will be prioritized
@@ -1277,7 +1750,7 @@ module MetronomeSDK
1277
1750
  # Cannot be used in conjunction with product_id or applicable_product_tags. If
1278
1751
  # provided, the override will apply to all products with the specified specifiers.
1279
1752
  #
1280
- # @return [Array<MetronomeSDK::V1::ContractCreateParams::Override::OverrideSpecifier>, nil]
1753
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Override::OverrideSpecifier>, nil]
1281
1754
  optional :override_specifiers,
1282
1755
  -> {
1283
1756
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Override::OverrideSpecifier]
@@ -1286,7 +1759,7 @@ module MetronomeSDK
1286
1759
  # @!attribute overwrite_rate
1287
1760
  # Required for OVERWRITE type.
1288
1761
  #
1289
- # @return [MetronomeSDK::V1::ContractCreateParams::Override::OverwriteRate, nil]
1762
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Override::OverwriteRate, nil]
1290
1763
  optional :overwrite_rate, -> { MetronomeSDK::V1::ContractCreateParams::Override::OverwriteRate }
1291
1764
 
1292
1765
  # @!attribute priority
@@ -1310,13 +1783,13 @@ module MetronomeSDK
1310
1783
  # be used for overrides that have `is_commit_specific` set to `true`. Defaults to
1311
1784
  # `"LIST_RATE"`.
1312
1785
  #
1313
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::Override::Target, nil]
1786
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Override::Target, nil]
1314
1787
  optional :target, enum: -> { MetronomeSDK::V1::ContractCreateParams::Override::Target }
1315
1788
 
1316
1789
  # @!attribute tiers
1317
1790
  # Required for TIERED type. Must have at least one tier.
1318
1791
  #
1319
- # @return [Array<MetronomeSDK::V1::ContractCreateParams::Override::Tier>, nil]
1792
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::Override::Tier>, nil]
1320
1793
  optional :tiers,
1321
1794
  -> {
1322
1795
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::Override::Tier]
@@ -1325,12 +1798,12 @@ module MetronomeSDK
1325
1798
  # @!attribute type
1326
1799
  # Overwrites are prioritized over multipliers and tiered overrides.
1327
1800
  #
1328
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::Override::Type, nil]
1801
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Override::Type, nil]
1329
1802
  optional :type, enum: -> { MetronomeSDK::V1::ContractCreateParams::Override::Type }
1330
1803
 
1331
1804
  # @!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)
1332
1805
  # Some parameter documentations has been truncated, see
1333
- # {MetronomeSDK::V1::ContractCreateParams::Override} for more details.
1806
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Override} for more details.
1334
1807
  #
1335
1808
  # @param starting_at [Time] RFC 3339 timestamp indicating when the override will start applying (inclusive)
1336
1809
  #
@@ -1344,21 +1817,29 @@ module MetronomeSDK
1344
1817
  #
1345
1818
  # @param multiplier [Float] Required for MULTIPLIER type. Must be >=0.
1346
1819
  #
1347
- # @param override_specifiers [Array<MetronomeSDK::V1::ContractCreateParams::Override::OverrideSpecifier>] Cannot be used in conjunction with product_id or applicable_product_tags. If pro
1820
+ # @param override_specifiers [Array<MetronomeSDK::Models::V1::ContractCreateParams::Override::OverrideSpecifier>] Cannot be used in conjunction with product_id or applicable_product_tags. If pro
1348
1821
  #
1349
- # @param overwrite_rate [MetronomeSDK::V1::ContractCreateParams::Override::OverwriteRate] Required for OVERWRITE type.
1822
+ # @param overwrite_rate [MetronomeSDK::Models::V1::ContractCreateParams::Override::OverwriteRate] Required for OVERWRITE type.
1350
1823
  #
1351
1824
  # @param priority [Float] Required for EXPLICIT multiplier prioritization scheme and all TIERED overrides.
1352
1825
  #
1353
1826
  # @param product_id [String] ID of the product whose rate is being overridden. Cannot be used in conjunction
1354
1827
  #
1355
- # @param target [Symbol, MetronomeSDK::V1::ContractCreateParams::Override::Target] Indicates whether the override applies to commit rates or list rates. Can only b
1828
+ # @param target [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Override::Target] Indicates whether the override applies to commit rates or list rates. Can only b
1356
1829
  #
1357
- # @param tiers [Array<MetronomeSDK::V1::ContractCreateParams::Override::Tier>] Required for TIERED type. Must have at least one tier.
1830
+ # @param tiers [Array<MetronomeSDK::Models::V1::ContractCreateParams::Override::Tier>] Required for TIERED type. Must have at least one tier.
1358
1831
  #
1359
- # @param type [Symbol, MetronomeSDK::V1::ContractCreateParams::Override::Type] Overwrites are prioritized over multipliers and tiered overrides.
1832
+ # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Override::Type] Overwrites are prioritized over multipliers and tiered overrides.
1360
1833
 
1361
1834
  class OverrideSpecifier < MetronomeSDK::Internal::Type::BaseModel
1835
+ # @!attribute billing_frequency
1836
+ #
1837
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Override::OverrideSpecifier::BillingFrequency, nil]
1838
+ optional :billing_frequency,
1839
+ enum: -> {
1840
+ MetronomeSDK::V1::ContractCreateParams::Override::OverrideSpecifier::BillingFrequency
1841
+ }
1842
+
1362
1843
  # @!attribute commit_ids
1363
1844
  # Can only be used for commit specific overrides. Must be used in conjunction with
1364
1845
  # one of product_id, product_tags, pricing_group_values, or
@@ -1413,10 +1894,12 @@ module MetronomeSDK
1413
1894
  # @return [Array<String>, nil]
1414
1895
  optional :recurring_credit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1415
1896
 
1416
- # @!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)
1897
+ # @!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)
1417
1898
  # Some parameter documentations has been truncated, see
1418
- # {MetronomeSDK::V1::ContractCreateParams::Override::OverrideSpecifier} for more
1419
- # details.
1899
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Override::OverrideSpecifier}
1900
+ # for more details.
1901
+ #
1902
+ # @param billing_frequency [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Override::OverrideSpecifier::BillingFrequency]
1420
1903
  #
1421
1904
  # @param commit_ids [Array<String>] Can only be used for commit specific overrides. Must be used in conjunction with
1422
1905
  #
@@ -1431,13 +1914,26 @@ module MetronomeSDK
1431
1914
  # @param recurring_commit_ids [Array<String>] Can only be used for commit specific overrides. Must be used in conjunction with
1432
1915
  #
1433
1916
  # @param recurring_credit_ids [Array<String>] Can only be used for commit specific overrides. Must be used in conjunction with
1917
+
1918
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Override::OverrideSpecifier#billing_frequency
1919
+ module BillingFrequency
1920
+ extend MetronomeSDK::Internal::Type::Enum
1921
+
1922
+ MONTHLY = :MONTHLY
1923
+ QUARTERLY = :QUARTERLY
1924
+ ANNUAL = :ANNUAL
1925
+ WEEKLY = :WEEKLY
1926
+
1927
+ # @!method self.values
1928
+ # @return [Array<Symbol>]
1929
+ end
1434
1930
  end
1435
1931
 
1436
- # @see MetronomeSDK::V1::ContractCreateParams::Override#overwrite_rate
1932
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Override#overwrite_rate
1437
1933
  class OverwriteRate < MetronomeSDK::Internal::Type::BaseModel
1438
1934
  # @!attribute rate_type
1439
1935
  #
1440
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::Override::OverwriteRate::RateType]
1936
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Override::OverwriteRate::RateType]
1441
1937
  required :rate_type,
1442
1938
  enum: -> { MetronomeSDK::V1::ContractCreateParams::Override::OverwriteRate::RateType }
1443
1939
 
@@ -1476,17 +1972,17 @@ module MetronomeSDK
1476
1972
  # @!attribute tiers
1477
1973
  # Only set for TIERED rate_type.
1478
1974
  #
1479
- # @return [Array<MetronomeSDK::Tier>, nil]
1975
+ # @return [Array<MetronomeSDK::Models::Tier>, nil]
1480
1976
  optional :tiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Tier] }
1481
1977
 
1482
1978
  # @!method initialize(rate_type:, credit_type_id: nil, custom_rate: nil, is_prorated: nil, price: nil, quantity: nil, tiers: nil)
1483
1979
  # Some parameter documentations has been truncated, see
1484
- # {MetronomeSDK::V1::ContractCreateParams::Override::OverwriteRate} for more
1485
- # details.
1980
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Override::OverwriteRate} for
1981
+ # more details.
1486
1982
  #
1487
1983
  # Required for OVERWRITE type.
1488
1984
  #
1489
- # @param rate_type [Symbol, MetronomeSDK::V1::ContractCreateParams::Override::OverwriteRate::RateType]
1985
+ # @param rate_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Override::OverwriteRate::RateType]
1490
1986
  #
1491
1987
  # @param credit_type_id [String]
1492
1988
  #
@@ -1498,9 +1994,9 @@ module MetronomeSDK
1498
1994
  #
1499
1995
  # @param quantity [Float] Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
1500
1996
  #
1501
- # @param tiers [Array<MetronomeSDK::Tier>] Only set for TIERED rate_type.
1997
+ # @param tiers [Array<MetronomeSDK::Models::Tier>] Only set for TIERED rate_type.
1502
1998
 
1503
- # @see MetronomeSDK::V1::ContractCreateParams::Override::OverwriteRate#rate_type
1999
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Override::OverwriteRate#rate_type
1504
2000
  module RateType
1505
2001
  extend MetronomeSDK::Internal::Type::Enum
1506
2002
 
@@ -1519,7 +2015,7 @@ module MetronomeSDK
1519
2015
  # be used for overrides that have `is_commit_specific` set to `true`. Defaults to
1520
2016
  # `"LIST_RATE"`.
1521
2017
  #
1522
- # @see MetronomeSDK::V1::ContractCreateParams::Override#target
2018
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Override#target
1523
2019
  module Target
1524
2020
  extend MetronomeSDK::Internal::Type::Enum
1525
2021
 
@@ -1548,7 +2044,7 @@ module MetronomeSDK
1548
2044
 
1549
2045
  # Overwrites are prioritized over multipliers and tiered overrides.
1550
2046
  #
1551
- # @see MetronomeSDK::V1::ContractCreateParams::Override#type
2047
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Override#type
1552
2048
  module Type
1553
2049
  extend MetronomeSDK::Internal::Type::Enum
1554
2050
 
@@ -1564,7 +2060,7 @@ module MetronomeSDK
1564
2060
  class PrepaidBalanceThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
1565
2061
  # @!attribute commit
1566
2062
  #
1567
- # @return [MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::Commit]
2063
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::Commit]
1568
2064
  required :commit,
1569
2065
  -> { MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::Commit }
1570
2066
 
@@ -1578,7 +2074,7 @@ module MetronomeSDK
1578
2074
 
1579
2075
  # @!attribute payment_gate_config
1580
2076
  #
1581
- # @return [MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig]
2077
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig]
1582
2078
  required :payment_gate_config,
1583
2079
  -> {
1584
2080
  MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig
@@ -1597,22 +2093,31 @@ module MetronomeSDK
1597
2093
  # @return [Float]
1598
2094
  required :threshold_amount, Float
1599
2095
 
1600
- # @!method initialize(commit:, is_enabled:, payment_gate_config:, recharge_to_amount:, threshold_amount:)
2096
+ # @!attribute custom_credit_type_id
2097
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
2098
+ # commit amount will be in terms of this credit type instead of the fiat currency.
2099
+ #
2100
+ # @return [String, nil]
2101
+ optional :custom_credit_type_id, String
2102
+
2103
+ # @!method initialize(commit:, is_enabled:, payment_gate_config:, recharge_to_amount:, threshold_amount:, custom_credit_type_id: nil)
1601
2104
  # Some parameter documentations has been truncated, see
1602
- # {MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration}
2105
+ # {MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration}
1603
2106
  # for more details.
1604
2107
  #
1605
- # @param commit [MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::Commit]
2108
+ # @param commit [MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::Commit]
1606
2109
  #
1607
2110
  # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
1608
2111
  #
1609
- # @param payment_gate_config [MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig]
2112
+ # @param payment_gate_config [MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig]
1610
2113
  #
1611
2114
  # @param recharge_to_amount [Float] Specify the amount the balance should be recharged to.
1612
2115
  #
1613
2116
  # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's prepaid
2117
+ #
2118
+ # @param custom_credit_type_id [String] If provided, the threshold, recharge-to amount, and the resulting threshold comm
1614
2119
 
1615
- # @see MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration#commit
2120
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration#commit
1616
2121
  class Commit < MetronomeSDK::Internal::Type::BaseModel
1617
2122
  # @!attribute product_id
1618
2123
  # The commit product that will be used to generate the line item for commit
@@ -1622,16 +2127,17 @@ module MetronomeSDK
1622
2127
  required :product_id, String
1623
2128
 
1624
2129
  # @!attribute applicable_product_ids
1625
- # Which products the threshold commit applies to. If both applicable_product_ids
1626
- # and applicable_product_tags are not provided, the commit applies to all
1627
- # products.
2130
+ # Which products the threshold commit applies to. If applicable_product_ids,
2131
+ # applicable_product_tags or specifiers are not provided, the commit applies to
2132
+ # all products.
1628
2133
  #
1629
2134
  # @return [Array<String>, nil]
1630
2135
  optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1631
2136
 
1632
2137
  # @!attribute applicable_product_tags
1633
- # Which tags the threshold commit applies to. If both applicable_product_ids and
1634
- # applicable_product_tags are not provided, the commit applies to all products.
2138
+ # Which tags the threshold commit applies to. If applicable_product_ids,
2139
+ # applicable_product_tags or specifiers are not provided, the commit applies to
2140
+ # all products.
1635
2141
  #
1636
2142
  # @return [Array<String>, nil]
1637
2143
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
@@ -1648,23 +2154,75 @@ module MetronomeSDK
1648
2154
  # @return [String, nil]
1649
2155
  optional :name, String
1650
2156
 
1651
- # @!method initialize(product_id:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, name: nil)
2157
+ # @!attribute specifiers
2158
+ # List of filters that determine what kind of customer usage draws down a commit
2159
+ # or credit. A customer's usage needs to meet the condition of at least one of the
2160
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2161
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
2162
+ #
2163
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::Commit::Specifier>, nil]
2164
+ optional :specifiers,
2165
+ -> {
2166
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::Commit::Specifier]
2167
+ }
2168
+
2169
+ # @!method initialize(product_id:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, name: nil, specifiers: nil)
1652
2170
  # Some parameter documentations has been truncated, see
1653
- # {MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::Commit}
2171
+ # {MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::Commit}
1654
2172
  # for more details.
1655
2173
  #
1656
2174
  # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
1657
2175
  #
1658
- # @param applicable_product_ids [Array<String>] Which products the threshold commit applies to. If both applicable_product_ids a
2176
+ # @param applicable_product_ids [Array<String>] Which products the threshold commit applies to. If applicable_product_ids, appli
1659
2177
  #
1660
- # @param applicable_product_tags [Array<String>] Which tags the threshold commit applies to. If both applicable_product_ids and a
2178
+ # @param applicable_product_tags [Array<String>] Which tags the threshold commit applies to. If applicable_product_ids, applicabl
1661
2179
  #
1662
2180
  # @param description [String]
1663
2181
  #
1664
2182
  # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
2183
+ #
2184
+ # @param specifiers [Array<MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::Commit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
2185
+
2186
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
2187
+ # @!attribute presentation_group_values
2188
+ #
2189
+ # @return [Hash{Symbol=>String}, nil]
2190
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2191
+
2192
+ # @!attribute pricing_group_values
2193
+ #
2194
+ # @return [Hash{Symbol=>String}, nil]
2195
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2196
+
2197
+ # @!attribute product_id
2198
+ # If provided, the specifier will only apply to the product with the specified ID.
2199
+ #
2200
+ # @return [String, nil]
2201
+ optional :product_id, String
2202
+
2203
+ # @!attribute product_tags
2204
+ # If provided, the specifier will only apply to products with all the specified
2205
+ # tags.
2206
+ #
2207
+ # @return [Array<String>, nil]
2208
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
2209
+
2210
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
2211
+ # Some parameter documentations has been truncated, see
2212
+ # {MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::Commit::Specifier}
2213
+ # for more details.
2214
+ #
2215
+ # @param presentation_group_values [Hash{Symbol=>String}]
2216
+ #
2217
+ # @param pricing_group_values [Hash{Symbol=>String}]
2218
+ #
2219
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
2220
+ #
2221
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
2222
+ end
1665
2223
  end
1666
2224
 
1667
- # @see MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration#payment_gate_config
2225
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration#payment_gate_config
1668
2226
  class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
1669
2227
  # @!attribute payment_gate_type
1670
2228
  # Gate access to the commit balance based on successful collection of payment.
@@ -1672,16 +2230,25 @@ module MetronomeSDK
1672
2230
  # facilitate payment using your own payment integration. Select NONE if you do not
1673
2231
  # wish to payment gate the commit balance.
1674
2232
  #
1675
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType]
2233
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType]
1676
2234
  required :payment_gate_type,
1677
2235
  enum: -> {
1678
2236
  MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType
1679
2237
  }
1680
2238
 
2239
+ # @!attribute precalculated_tax_config
2240
+ # Only applicable if using PRECALCULATED as your tax type.
2241
+ #
2242
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig, nil]
2243
+ optional :precalculated_tax_config,
2244
+ -> {
2245
+ MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
2246
+ }
2247
+
1681
2248
  # @!attribute stripe_config
1682
- # Only applicable if using Stripe as your payment gateway through Metronome.
2249
+ # Only applicable if using STRIPE as your payment gate type.
1683
2250
  #
1684
- # @return [MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
2251
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
1685
2252
  optional :stripe_config,
1686
2253
  -> {
1687
2254
  MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig
@@ -1692,29 +2259,31 @@ module MetronomeSDK
1692
2259
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
1693
2260
  # will default to NONE.
1694
2261
  #
1695
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType, nil]
2262
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType, nil]
1696
2263
  optional :tax_type,
1697
2264
  enum: -> {
1698
2265
  MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType
1699
2266
  }
1700
2267
 
1701
- # @!method initialize(payment_gate_type:, stripe_config: nil, tax_type: nil)
2268
+ # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
1702
2269
  # Some parameter documentations has been truncated, see
1703
- # {MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig}
2270
+ # {MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig}
1704
2271
  # for more details.
1705
2272
  #
1706
- # @param payment_gate_type [Symbol, MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
2273
+ # @param payment_gate_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
1707
2274
  #
1708
- # @param stripe_config [MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using Stripe as your payment gateway through Metronome.
2275
+ # @param precalculated_tax_config [MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
1709
2276
  #
1710
- # @param tax_type [Symbol, MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
2277
+ # @param stripe_config [MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gate type.
2278
+ #
2279
+ # @param tax_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
1711
2280
 
1712
2281
  # Gate access to the commit balance based on successful collection of payment.
1713
2282
  # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
1714
2283
  # facilitate payment using your own payment integration. Select NONE if you do not
1715
2284
  # wish to payment gate the commit balance.
1716
2285
  #
1717
- # @see MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig#payment_gate_type
2286
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig#payment_gate_type
1718
2287
  module PaymentGateType
1719
2288
  extend MetronomeSDK::Internal::Type::Enum
1720
2289
 
@@ -1726,25 +2295,66 @@ module MetronomeSDK
1726
2295
  # @return [Array<Symbol>]
1727
2296
  end
1728
2297
 
1729
- # @see MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig#stripe_config
2298
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig#precalculated_tax_config
2299
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
2300
+ # @!attribute tax_amount
2301
+ # Amount of tax to be applied. This should be in the same currency and
2302
+ # denomination as the commit's invoice schedule
2303
+ #
2304
+ # @return [Float]
2305
+ required :tax_amount, Float
2306
+
2307
+ # @!attribute tax_name
2308
+ # Name of the tax to be applied. This may be used in an invoice line item
2309
+ # description.
2310
+ #
2311
+ # @return [String, nil]
2312
+ optional :tax_name, String
2313
+
2314
+ # @!method initialize(tax_amount:, tax_name: nil)
2315
+ # Some parameter documentations has been truncated, see
2316
+ # {MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig}
2317
+ # for more details.
2318
+ #
2319
+ # Only applicable if using PRECALCULATED as your tax type.
2320
+ #
2321
+ # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
2322
+ #
2323
+ # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
2324
+ end
2325
+
2326
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig#stripe_config
1730
2327
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
1731
2328
  # @!attribute payment_type
1732
2329
  # If left blank, will default to INVOICE
1733
2330
  #
1734
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
2331
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
1735
2332
  required :payment_type,
1736
2333
  enum: -> {
1737
2334
  MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
1738
2335
  }
1739
2336
 
1740
- # @!method initialize(payment_type:)
1741
- # Only applicable if using Stripe as your payment gateway through Metronome.
2337
+ # @!attribute invoice_metadata
2338
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
2339
+ # your payment type.
1742
2340
  #
1743
- # @param payment_type [Symbol, MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
2341
+ # @return [Hash{Symbol=>String}, nil]
2342
+ optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
2343
+
2344
+ # @!method initialize(payment_type:, invoice_metadata: nil)
2345
+ # Some parameter documentations has been truncated, see
2346
+ # {MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig}
2347
+ # for more details.
2348
+ #
2349
+ # Only applicable if using STRIPE as your payment gate type.
2350
+ #
2351
+ # @param payment_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
2352
+ #
2353
+ # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
1744
2354
 
1745
2355
  # If left blank, will default to INVOICE
1746
2356
  #
1747
- # @see MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
2357
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
1748
2358
  module PaymentType
1749
2359
  extend MetronomeSDK::Internal::Type::Enum
1750
2360
 
@@ -1760,12 +2370,14 @@ module MetronomeSDK
1760
2370
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
1761
2371
  # will default to NONE.
1762
2372
  #
1763
- # @see MetronomeSDK::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig#tax_type
2373
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::PrepaidBalanceThresholdConfiguration::PaymentGateConfig#tax_type
1764
2374
  module TaxType
1765
2375
  extend MetronomeSDK::Internal::Type::Enum
1766
2376
 
1767
2377
  NONE = :NONE
1768
2378
  STRIPE = :STRIPE
2379
+ ANROK = :ANROK
2380
+ PRECALCULATED = :PRECALCULATED
1769
2381
 
1770
2382
  # @!method self.values
1771
2383
  # @return [Array<Symbol>]
@@ -1817,7 +2429,8 @@ module MetronomeSDK
1817
2429
 
1818
2430
  # @!method initialize(max_amount:, product_id:, quantity:, unit_price:, custom_fields: nil, description: nil, netsuite_sales_order_id: nil)
1819
2431
  # Some parameter documentations has been truncated, see
1820
- # {MetronomeSDK::V1::ContractCreateParams::ProfessionalService} for more details.
2432
+ # {MetronomeSDK::Models::V1::ContractCreateParams::ProfessionalService} for more
2433
+ # details.
1821
2434
  #
1822
2435
  # @param max_amount [Float] Maximum amount for the term.
1823
2436
  #
@@ -1838,16 +2451,18 @@ module MetronomeSDK
1838
2451
  # @!attribute access_amount
1839
2452
  # The amount of commit to grant.
1840
2453
  #
1841
- # @return [MetronomeSDK::V1::ContractCreateParams::RecurringCommit::AccessAmount]
2454
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::AccessAmount]
1842
2455
  required :access_amount,
1843
2456
  -> {
1844
2457
  MetronomeSDK::V1::ContractCreateParams::RecurringCommit::AccessAmount
1845
2458
  }
1846
2459
 
1847
2460
  # @!attribute commit_duration
1848
- # The amount of time the created commits will be valid for.
2461
+ # Defines the length of the access schedule for each created commit/credit. The
2462
+ # value represents the number of units. Unit defaults to "PERIODS", where the
2463
+ # length of a period is determined by the recurrence_frequency.
1849
2464
  #
1850
- # @return [MetronomeSDK::V1::ContractCreateParams::RecurringCommit::CommitDuration]
2465
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::CommitDuration]
1851
2466
  required :commit_duration,
1852
2467
  -> {
1853
2468
  MetronomeSDK::V1::ContractCreateParams::RecurringCommit::CommitDuration
@@ -1897,7 +2512,7 @@ module MetronomeSDK
1897
2512
  # @!attribute invoice_amount
1898
2513
  # The amount the customer should be billed for the commit. Not required.
1899
2514
  #
1900
- # @return [MetronomeSDK::V1::ContractCreateParams::RecurringCommit::InvoiceAmount, nil]
2515
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::InvoiceAmount, nil]
1901
2516
  optional :invoice_amount,
1902
2517
  -> {
1903
2518
  MetronomeSDK::V1::ContractCreateParams::RecurringCommit::InvoiceAmount
@@ -1919,23 +2534,23 @@ module MetronomeSDK
1919
2534
  # Determines whether the first and last commit will be prorated. If not provided,
1920
2535
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
1921
2536
  #
1922
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration, nil]
2537
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::Proration, nil]
1923
2538
  optional :proration, enum: -> { MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration }
1924
2539
 
1925
2540
  # @!attribute rate_type
1926
2541
  # Whether the created commits will use the commit rate or list rate
1927
2542
  #
1928
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RateType, nil]
2543
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::RateType, nil]
1929
2544
  optional :rate_type, enum: -> { MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RateType }
1930
2545
 
1931
2546
  # @!attribute recurrence_frequency
1932
2547
  # The frequency at which the recurring commits will be created. If not provided: -
1933
2548
  # The commits will be created on the usage invoice frequency. If provided: - The
1934
2549
  # period defined in the duration will correspond to this frequency. - Commits will
1935
- # be created aligned with the recurring commit's start_date rather than the usage
2550
+ # be created aligned with the recurring commit's starting_at rather than the usage
1936
2551
  # invoice dates.
1937
2552
  #
1938
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency, nil]
2553
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency, nil]
1939
2554
  optional :recurrence_frequency,
1940
2555
  enum: -> { MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency }
1941
2556
 
@@ -1947,6 +2562,18 @@ module MetronomeSDK
1947
2562
  # @return [Float, nil]
1948
2563
  optional :rollover_fraction, Float
1949
2564
 
2565
+ # @!attribute specifiers
2566
+ # List of filters that determine what kind of customer usage draws down a commit
2567
+ # or credit. A customer's usage needs to meet the condition of at least one of the
2568
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2569
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
2570
+ #
2571
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::Specifier>, nil]
2572
+ optional :specifiers,
2573
+ -> {
2574
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Specifier]
2575
+ }
2576
+
1950
2577
  # @!attribute temporary_id
1951
2578
  # A temporary ID that can be used to reference the recurring commit for commit
1952
2579
  # specific overrides.
@@ -1954,13 +2581,14 @@ module MetronomeSDK
1954
2581
  # @return [String, nil]
1955
2582
  optional :temporary_id, String
1956
2583
 
1957
- # @!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)
2584
+ # @!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)
1958
2585
  # Some parameter documentations has been truncated, see
1959
- # {MetronomeSDK::V1::ContractCreateParams::RecurringCommit} for more details.
2586
+ # {MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit} for more
2587
+ # details.
1960
2588
  #
1961
- # @param access_amount [MetronomeSDK::V1::ContractCreateParams::RecurringCommit::AccessAmount] The amount of commit to grant.
2589
+ # @param access_amount [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::AccessAmount] The amount of commit to grant.
1962
2590
  #
1963
- # @param commit_duration [MetronomeSDK::V1::ContractCreateParams::RecurringCommit::CommitDuration] The amount of time the created commits will be valid for.
2591
+ # @param commit_duration [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::CommitDuration] Defines the length of the access schedule for each created commit/credit. The va
1964
2592
  #
1965
2593
  # @param priority [Float] Will be passed down to the individual commits
1966
2594
  #
@@ -1976,69 +2604,81 @@ module MetronomeSDK
1976
2604
  #
1977
2605
  # @param ending_before [Time] Determines when the contract will stop creating recurring commits. optional
1978
2606
  #
1979
- # @param invoice_amount [MetronomeSDK::V1::ContractCreateParams::RecurringCommit::InvoiceAmount] The amount the customer should be billed for the commit. Not required.
2607
+ # @param invoice_amount [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::InvoiceAmount] The amount the customer should be billed for the commit. Not required.
1980
2608
  #
1981
2609
  # @param name [String] displayed on invoices. will be passed through to the individual commits
1982
2610
  #
1983
2611
  # @param netsuite_sales_order_id [String] Will be passed down to the individual commits
1984
2612
  #
1985
- # @param proration [Symbol, MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration] Determines whether the first and last commit will be prorated. If not provided,
2613
+ # @param proration [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::Proration] Determines whether the first and last commit will be prorated. If not provided,
1986
2614
  #
1987
- # @param rate_type [Symbol, MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RateType] Whether the created commits will use the commit rate or list rate
2615
+ # @param rate_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::RateType] Whether the created commits will use the commit rate or list rate
1988
2616
  #
1989
- # @param recurrence_frequency [Symbol, MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided:
2617
+ # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided:
1990
2618
  #
1991
2619
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
1992
2620
  #
2621
+ # @param specifiers [Array<MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
2622
+ #
1993
2623
  # @param temporary_id [String] A temporary ID that can be used to reference the recurring commit for commit spe
1994
2624
 
1995
- # @see MetronomeSDK::V1::ContractCreateParams::RecurringCommit#access_amount
2625
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit#access_amount
1996
2626
  class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
1997
2627
  # @!attribute credit_type_id
1998
2628
  #
1999
2629
  # @return [String]
2000
2630
  required :credit_type_id, String
2001
2631
 
2002
- # @!attribute quantity
2003
- #
2004
- # @return [Float]
2005
- required :quantity, Float
2006
-
2007
2632
  # @!attribute unit_price
2008
2633
  #
2009
2634
  # @return [Float]
2010
2635
  required :unit_price, Float
2011
2636
 
2012
- # @!method initialize(credit_type_id:, quantity:, unit_price:)
2637
+ # @!attribute quantity
2638
+ # This field is currently required. Upcoming recurring commit/credit configuration
2639
+ # options will allow it to be optional.
2640
+ #
2641
+ # @return [Float, nil]
2642
+ optional :quantity, Float
2643
+
2644
+ # @!method initialize(credit_type_id:, unit_price:, quantity: nil)
2645
+ # Some parameter documentations has been truncated, see
2646
+ # {MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::AccessAmount}
2647
+ # for more details.
2648
+ #
2013
2649
  # The amount of commit to grant.
2014
2650
  #
2015
2651
  # @param credit_type_id [String]
2016
- # @param quantity [Float]
2652
+ #
2017
2653
  # @param unit_price [Float]
2654
+ #
2655
+ # @param quantity [Float] This field is currently required. Upcoming recurring commit/credit configuration
2018
2656
  end
2019
2657
 
2020
- # @see MetronomeSDK::V1::ContractCreateParams::RecurringCommit#commit_duration
2658
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit#commit_duration
2021
2659
  class CommitDuration < MetronomeSDK::Internal::Type::BaseModel
2660
+ # @!attribute value
2661
+ #
2662
+ # @return [Float]
2663
+ required :value, Float
2664
+
2022
2665
  # @!attribute unit
2023
2666
  #
2024
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::RecurringCommit::CommitDuration::Unit]
2025
- required :unit,
2667
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::CommitDuration::Unit, nil]
2668
+ optional :unit,
2026
2669
  enum: -> {
2027
2670
  MetronomeSDK::V1::ContractCreateParams::RecurringCommit::CommitDuration::Unit
2028
2671
  }
2029
2672
 
2030
- # @!attribute value
2031
- #
2032
- # @return [Float]
2033
- required :value, Float
2034
-
2035
- # @!method initialize(unit:, value:)
2036
- # The amount of time the created commits will be valid for.
2673
+ # @!method initialize(value:, unit: nil)
2674
+ # Defines the length of the access schedule for each created commit/credit. The
2675
+ # value represents the number of units. Unit defaults to "PERIODS", where the
2676
+ # length of a period is determined by the recurrence_frequency.
2037
2677
  #
2038
- # @param unit [Symbol, MetronomeSDK::V1::ContractCreateParams::RecurringCommit::CommitDuration::Unit]
2039
2678
  # @param value [Float]
2679
+ # @param unit [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::CommitDuration::Unit]
2040
2680
 
2041
- # @see MetronomeSDK::V1::ContractCreateParams::RecurringCommit::CommitDuration#unit
2681
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::CommitDuration#unit
2042
2682
  module Unit
2043
2683
  extend MetronomeSDK::Internal::Type::Enum
2044
2684
 
@@ -2049,7 +2689,7 @@ module MetronomeSDK
2049
2689
  end
2050
2690
  end
2051
2691
 
2052
- # @see MetronomeSDK::V1::ContractCreateParams::RecurringCommit#invoice_amount
2692
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit#invoice_amount
2053
2693
  class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
2054
2694
  # @!attribute credit_type_id
2055
2695
  #
@@ -2077,7 +2717,7 @@ module MetronomeSDK
2077
2717
  # Determines whether the first and last commit will be prorated. If not provided,
2078
2718
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
2079
2719
  #
2080
- # @see MetronomeSDK::V1::ContractCreateParams::RecurringCommit#proration
2720
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit#proration
2081
2721
  module Proration
2082
2722
  extend MetronomeSDK::Internal::Type::Enum
2083
2723
 
@@ -2092,7 +2732,7 @@ module MetronomeSDK
2092
2732
 
2093
2733
  # Whether the created commits will use the commit rate or list rate
2094
2734
  #
2095
- # @see MetronomeSDK::V1::ContractCreateParams::RecurringCommit#rate_type
2735
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit#rate_type
2096
2736
  module RateType
2097
2737
  extend MetronomeSDK::Internal::Type::Enum
2098
2738
 
@@ -2106,10 +2746,10 @@ module MetronomeSDK
2106
2746
  # The frequency at which the recurring commits will be created. If not provided: -
2107
2747
  # The commits will be created on the usage invoice frequency. If provided: - The
2108
2748
  # period defined in the duration will correspond to this frequency. - Commits will
2109
- # be created aligned with the recurring commit's start_date rather than the usage
2749
+ # be created aligned with the recurring commit's starting_at rather than the usage
2110
2750
  # invoice dates.
2111
2751
  #
2112
- # @see MetronomeSDK::V1::ContractCreateParams::RecurringCommit#recurrence_frequency
2752
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit#recurrence_frequency
2113
2753
  module RecurrenceFrequency
2114
2754
  extend MetronomeSDK::Internal::Type::Enum
2115
2755
 
@@ -2121,22 +2761,62 @@ module MetronomeSDK
2121
2761
  # @!method self.values
2122
2762
  # @return [Array<Symbol>]
2123
2763
  end
2764
+
2765
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
2766
+ # @!attribute presentation_group_values
2767
+ #
2768
+ # @return [Hash{Symbol=>String}, nil]
2769
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2770
+
2771
+ # @!attribute pricing_group_values
2772
+ #
2773
+ # @return [Hash{Symbol=>String}, nil]
2774
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2775
+
2776
+ # @!attribute product_id
2777
+ # If provided, the specifier will only apply to the product with the specified ID.
2778
+ #
2779
+ # @return [String, nil]
2780
+ optional :product_id, String
2781
+
2782
+ # @!attribute product_tags
2783
+ # If provided, the specifier will only apply to products with all the specified
2784
+ # tags.
2785
+ #
2786
+ # @return [Array<String>, nil]
2787
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
2788
+
2789
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
2790
+ # Some parameter documentations has been truncated, see
2791
+ # {MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::Specifier} for
2792
+ # more details.
2793
+ #
2794
+ # @param presentation_group_values [Hash{Symbol=>String}]
2795
+ #
2796
+ # @param pricing_group_values [Hash{Symbol=>String}]
2797
+ #
2798
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
2799
+ #
2800
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
2801
+ end
2124
2802
  end
2125
2803
 
2126
2804
  class RecurringCredit < MetronomeSDK::Internal::Type::BaseModel
2127
2805
  # @!attribute access_amount
2128
2806
  # The amount of commit to grant.
2129
2807
  #
2130
- # @return [MetronomeSDK::V1::ContractCreateParams::RecurringCredit::AccessAmount]
2808
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::AccessAmount]
2131
2809
  required :access_amount,
2132
2810
  -> {
2133
2811
  MetronomeSDK::V1::ContractCreateParams::RecurringCredit::AccessAmount
2134
2812
  }
2135
2813
 
2136
2814
  # @!attribute commit_duration
2137
- # The amount of time the created commits will be valid for.
2815
+ # Defines the length of the access schedule for each created commit/credit. The
2816
+ # value represents the number of units. Unit defaults to "PERIODS", where the
2817
+ # length of a period is determined by the recurrence_frequency.
2138
2818
  #
2139
- # @return [MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration]
2819
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::CommitDuration]
2140
2820
  required :commit_duration,
2141
2821
  -> {
2142
2822
  MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration
@@ -2199,23 +2879,23 @@ module MetronomeSDK
2199
2879
  # Determines whether the first and last commit will be prorated. If not provided,
2200
2880
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
2201
2881
  #
2202
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::RecurringCredit::Proration, nil]
2882
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::Proration, nil]
2203
2883
  optional :proration, enum: -> { MetronomeSDK::V1::ContractCreateParams::RecurringCredit::Proration }
2204
2884
 
2205
2885
  # @!attribute rate_type
2206
2886
  # Whether the created commits will use the commit rate or list rate
2207
2887
  #
2208
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::RecurringCredit::RateType, nil]
2888
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::RateType, nil]
2209
2889
  optional :rate_type, enum: -> { MetronomeSDK::V1::ContractCreateParams::RecurringCredit::RateType }
2210
2890
 
2211
2891
  # @!attribute recurrence_frequency
2212
2892
  # The frequency at which the recurring commits will be created. If not provided: -
2213
2893
  # The commits will be created on the usage invoice frequency. If provided: - The
2214
2894
  # period defined in the duration will correspond to this frequency. - Commits will
2215
- # be created aligned with the recurring commit's start_date rather than the usage
2895
+ # be created aligned with the recurring commit's starting_at rather than the usage
2216
2896
  # invoice dates.
2217
2897
  #
2218
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::RecurringCredit::RecurrenceFrequency, nil]
2898
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::RecurrenceFrequency, nil]
2219
2899
  optional :recurrence_frequency,
2220
2900
  enum: -> { MetronomeSDK::V1::ContractCreateParams::RecurringCredit::RecurrenceFrequency }
2221
2901
 
@@ -2227,6 +2907,18 @@ module MetronomeSDK
2227
2907
  # @return [Float, nil]
2228
2908
  optional :rollover_fraction, Float
2229
2909
 
2910
+ # @!attribute specifiers
2911
+ # List of filters that determine what kind of customer usage draws down a commit
2912
+ # or credit. A customer's usage needs to meet the condition of at least one of the
2913
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2914
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
2915
+ #
2916
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::Specifier>, nil]
2917
+ optional :specifiers,
2918
+ -> {
2919
+ MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::RecurringCredit::Specifier]
2920
+ }
2921
+
2230
2922
  # @!attribute temporary_id
2231
2923
  # A temporary ID that can be used to reference the recurring commit for commit
2232
2924
  # specific overrides.
@@ -2234,13 +2926,14 @@ module MetronomeSDK
2234
2926
  # @return [String, nil]
2235
2927
  optional :temporary_id, String
2236
2928
 
2237
- # @!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)
2929
+ # @!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)
2238
2930
  # Some parameter documentations has been truncated, see
2239
- # {MetronomeSDK::V1::ContractCreateParams::RecurringCredit} for more details.
2931
+ # {MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit} for more
2932
+ # details.
2240
2933
  #
2241
- # @param access_amount [MetronomeSDK::V1::ContractCreateParams::RecurringCredit::AccessAmount] The amount of commit to grant.
2934
+ # @param access_amount [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::AccessAmount] The amount of commit to grant.
2242
2935
  #
2243
- # @param commit_duration [MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration] The amount of time the created commits will be valid for.
2936
+ # @param commit_duration [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::CommitDuration] Defines the length of the access schedule for each created commit/credit. The va
2244
2937
  #
2245
2938
  # @param priority [Float] Will be passed down to the individual commits
2246
2939
  #
@@ -2260,63 +2953,75 @@ module MetronomeSDK
2260
2953
  #
2261
2954
  # @param netsuite_sales_order_id [String] Will be passed down to the individual commits
2262
2955
  #
2263
- # @param proration [Symbol, MetronomeSDK::V1::ContractCreateParams::RecurringCredit::Proration] Determines whether the first and last commit will be prorated. If not provided,
2956
+ # @param proration [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::Proration] Determines whether the first and last commit will be prorated. If not provided,
2264
2957
  #
2265
- # @param rate_type [Symbol, MetronomeSDK::V1::ContractCreateParams::RecurringCredit::RateType] Whether the created commits will use the commit rate or list rate
2958
+ # @param rate_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::RateType] Whether the created commits will use the commit rate or list rate
2266
2959
  #
2267
- # @param recurrence_frequency [Symbol, MetronomeSDK::V1::ContractCreateParams::RecurringCredit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided:
2960
+ # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided:
2268
2961
  #
2269
2962
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
2270
2963
  #
2964
+ # @param specifiers [Array<MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
2965
+ #
2271
2966
  # @param temporary_id [String] A temporary ID that can be used to reference the recurring commit for commit spe
2272
2967
 
2273
- # @see MetronomeSDK::V1::ContractCreateParams::RecurringCredit#access_amount
2968
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit#access_amount
2274
2969
  class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
2275
2970
  # @!attribute credit_type_id
2276
2971
  #
2277
2972
  # @return [String]
2278
2973
  required :credit_type_id, String
2279
2974
 
2280
- # @!attribute quantity
2281
- #
2282
- # @return [Float]
2283
- required :quantity, Float
2284
-
2285
2975
  # @!attribute unit_price
2286
2976
  #
2287
2977
  # @return [Float]
2288
2978
  required :unit_price, Float
2289
2979
 
2290
- # @!method initialize(credit_type_id:, quantity:, unit_price:)
2980
+ # @!attribute quantity
2981
+ # This field is currently required. Upcoming recurring commit/credit configuration
2982
+ # options will allow it to be optional.
2983
+ #
2984
+ # @return [Float, nil]
2985
+ optional :quantity, Float
2986
+
2987
+ # @!method initialize(credit_type_id:, unit_price:, quantity: nil)
2988
+ # Some parameter documentations has been truncated, see
2989
+ # {MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::AccessAmount}
2990
+ # for more details.
2991
+ #
2291
2992
  # The amount of commit to grant.
2292
2993
  #
2293
2994
  # @param credit_type_id [String]
2294
- # @param quantity [Float]
2995
+ #
2295
2996
  # @param unit_price [Float]
2997
+ #
2998
+ # @param quantity [Float] This field is currently required. Upcoming recurring commit/credit configuration
2296
2999
  end
2297
3000
 
2298
- # @see MetronomeSDK::V1::ContractCreateParams::RecurringCredit#commit_duration
3001
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit#commit_duration
2299
3002
  class CommitDuration < MetronomeSDK::Internal::Type::BaseModel
3003
+ # @!attribute value
3004
+ #
3005
+ # @return [Float]
3006
+ required :value, Float
3007
+
2300
3008
  # @!attribute unit
2301
3009
  #
2302
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit]
2303
- required :unit,
3010
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit, nil]
3011
+ optional :unit,
2304
3012
  enum: -> {
2305
3013
  MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit
2306
3014
  }
2307
3015
 
2308
- # @!attribute value
2309
- #
2310
- # @return [Float]
2311
- required :value, Float
2312
-
2313
- # @!method initialize(unit:, value:)
2314
- # The amount of time the created commits will be valid for.
3016
+ # @!method initialize(value:, unit: nil)
3017
+ # Defines the length of the access schedule for each created commit/credit. The
3018
+ # value represents the number of units. Unit defaults to "PERIODS", where the
3019
+ # length of a period is determined by the recurrence_frequency.
2315
3020
  #
2316
- # @param unit [Symbol, MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit]
2317
3021
  # @param value [Float]
3022
+ # @param unit [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit]
2318
3023
 
2319
- # @see MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration#unit
3024
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::CommitDuration#unit
2320
3025
  module Unit
2321
3026
  extend MetronomeSDK::Internal::Type::Enum
2322
3027
 
@@ -2330,7 +3035,7 @@ module MetronomeSDK
2330
3035
  # Determines whether the first and last commit will be prorated. If not provided,
2331
3036
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
2332
3037
  #
2333
- # @see MetronomeSDK::V1::ContractCreateParams::RecurringCredit#proration
3038
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit#proration
2334
3039
  module Proration
2335
3040
  extend MetronomeSDK::Internal::Type::Enum
2336
3041
 
@@ -2345,7 +3050,7 @@ module MetronomeSDK
2345
3050
 
2346
3051
  # Whether the created commits will use the commit rate or list rate
2347
3052
  #
2348
- # @see MetronomeSDK::V1::ContractCreateParams::RecurringCredit#rate_type
3053
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit#rate_type
2349
3054
  module RateType
2350
3055
  extend MetronomeSDK::Internal::Type::Enum
2351
3056
 
@@ -2359,10 +3064,10 @@ module MetronomeSDK
2359
3064
  # The frequency at which the recurring commits will be created. If not provided: -
2360
3065
  # The commits will be created on the usage invoice frequency. If provided: - The
2361
3066
  # period defined in the duration will correspond to this frequency. - Commits will
2362
- # be created aligned with the recurring commit's start_date rather than the usage
3067
+ # be created aligned with the recurring commit's starting_at rather than the usage
2363
3068
  # invoice dates.
2364
3069
  #
2365
- # @see MetronomeSDK::V1::ContractCreateParams::RecurringCredit#recurrence_frequency
3070
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit#recurrence_frequency
2366
3071
  module RecurrenceFrequency
2367
3072
  extend MetronomeSDK::Internal::Type::Enum
2368
3073
 
@@ -2374,6 +3079,44 @@ module MetronomeSDK
2374
3079
  # @!method self.values
2375
3080
  # @return [Array<Symbol>]
2376
3081
  end
3082
+
3083
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
3084
+ # @!attribute presentation_group_values
3085
+ #
3086
+ # @return [Hash{Symbol=>String}, nil]
3087
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
3088
+
3089
+ # @!attribute pricing_group_values
3090
+ #
3091
+ # @return [Hash{Symbol=>String}, nil]
3092
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
3093
+
3094
+ # @!attribute product_id
3095
+ # If provided, the specifier will only apply to the product with the specified ID.
3096
+ #
3097
+ # @return [String, nil]
3098
+ optional :product_id, String
3099
+
3100
+ # @!attribute product_tags
3101
+ # If provided, the specifier will only apply to products with all the specified
3102
+ # tags.
3103
+ #
3104
+ # @return [Array<String>, nil]
3105
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
3106
+
3107
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
3108
+ # Some parameter documentations has been truncated, see
3109
+ # {MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::Specifier} for
3110
+ # more details.
3111
+ #
3112
+ # @param presentation_group_values [Hash{Symbol=>String}]
3113
+ #
3114
+ # @param pricing_group_values [Hash{Symbol=>String}]
3115
+ #
3116
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
3117
+ #
3118
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
3119
+ end
2377
3120
  end
2378
3121
 
2379
3122
  class ResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel
@@ -2389,7 +3132,7 @@ module MetronomeSDK
2389
3132
 
2390
3133
  # @!attribute reseller_type
2391
3134
  #
2392
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::ResellerRoyalty::ResellerType]
3135
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::ResellerRoyalty::ResellerType]
2393
3136
  required :reseller_type,
2394
3137
  enum: -> { MetronomeSDK::V1::ContractCreateParams::ResellerRoyalty::ResellerType }
2395
3138
 
@@ -2412,7 +3155,7 @@ module MetronomeSDK
2412
3155
 
2413
3156
  # @!attribute aws_options
2414
3157
  #
2415
- # @return [MetronomeSDK::V1::ContractCreateParams::ResellerRoyalty::AwsOptions, nil]
3158
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::ResellerRoyalty::AwsOptions, nil]
2416
3159
  optional :aws_options, -> { MetronomeSDK::V1::ContractCreateParams::ResellerRoyalty::AwsOptions }
2417
3160
 
2418
3161
  # @!attribute ending_before
@@ -2422,7 +3165,7 @@ module MetronomeSDK
2422
3165
 
2423
3166
  # @!attribute gcp_options
2424
3167
  #
2425
- # @return [MetronomeSDK::V1::ContractCreateParams::ResellerRoyalty::GcpOptions, nil]
3168
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::ResellerRoyalty::GcpOptions, nil]
2426
3169
  optional :gcp_options, -> { MetronomeSDK::V1::ContractCreateParams::ResellerRoyalty::GcpOptions }
2427
3170
 
2428
3171
  # @!attribute reseller_contract_value
@@ -2435,7 +3178,7 @@ module MetronomeSDK
2435
3178
  #
2436
3179
  # @param netsuite_reseller_id [String]
2437
3180
  #
2438
- # @param reseller_type [Symbol, MetronomeSDK::V1::ContractCreateParams::ResellerRoyalty::ResellerType]
3181
+ # @param reseller_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::ResellerRoyalty::ResellerType]
2439
3182
  #
2440
3183
  # @param starting_at [Time]
2441
3184
  #
@@ -2443,15 +3186,15 @@ module MetronomeSDK
2443
3186
  #
2444
3187
  # @param applicable_product_tags [Array<String>] Must provide at least one of applicable_product_ids or applicable_product_tags.
2445
3188
  #
2446
- # @param aws_options [MetronomeSDK::V1::ContractCreateParams::ResellerRoyalty::AwsOptions]
3189
+ # @param aws_options [MetronomeSDK::Models::V1::ContractCreateParams::ResellerRoyalty::AwsOptions]
2447
3190
  #
2448
3191
  # @param ending_before [Time]
2449
3192
  #
2450
- # @param gcp_options [MetronomeSDK::V1::ContractCreateParams::ResellerRoyalty::GcpOptions]
3193
+ # @param gcp_options [MetronomeSDK::Models::V1::ContractCreateParams::ResellerRoyalty::GcpOptions]
2451
3194
  #
2452
3195
  # @param reseller_contract_value [Float]
2453
3196
 
2454
- # @see MetronomeSDK::V1::ContractCreateParams::ResellerRoyalty#reseller_type
3197
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::ResellerRoyalty#reseller_type
2455
3198
  module ResellerType
2456
3199
  extend MetronomeSDK::Internal::Type::Enum
2457
3200
 
@@ -2464,7 +3207,7 @@ module MetronomeSDK
2464
3207
  # @return [Array<Symbol>]
2465
3208
  end
2466
3209
 
2467
- # @see MetronomeSDK::V1::ContractCreateParams::ResellerRoyalty#aws_options
3210
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::ResellerRoyalty#aws_options
2468
3211
  class AwsOptions < MetronomeSDK::Internal::Type::BaseModel
2469
3212
  # @!attribute aws_account_number
2470
3213
  #
@@ -2487,7 +3230,7 @@ module MetronomeSDK
2487
3230
  # @param aws_payer_reference_id [String]
2488
3231
  end
2489
3232
 
2490
- # @see MetronomeSDK::V1::ContractCreateParams::ResellerRoyalty#gcp_options
3233
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::ResellerRoyalty#gcp_options
2491
3234
  class GcpOptions < MetronomeSDK::Internal::Type::BaseModel
2492
3235
  # @!attribute gcp_account_id
2493
3236
  #
@@ -2514,7 +3257,7 @@ module MetronomeSDK
2514
3257
  # @!attribute schedule
2515
3258
  # Must provide either schedule_items or recurring_schedule.
2516
3259
  #
2517
- # @return [MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule]
3260
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule]
2518
3261
  required :schedule, -> { MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule }
2519
3262
 
2520
3263
  # @!attribute name
@@ -2532,13 +3275,13 @@ module MetronomeSDK
2532
3275
  # @!method initialize(product_id:, schedule:, name: nil, netsuite_sales_order_id: nil)
2533
3276
  # @param product_id [String]
2534
3277
  #
2535
- # @param schedule [MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule] Must provide either schedule_items or recurring_schedule.
3278
+ # @param schedule [MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule] Must provide either schedule_items or recurring_schedule.
2536
3279
  #
2537
3280
  # @param name [String] displayed on invoices
2538
3281
  #
2539
3282
  # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
2540
3283
 
2541
- # @see MetronomeSDK::V1::ContractCreateParams::ScheduledCharge#schedule
3284
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge#schedule
2542
3285
  class Schedule < MetronomeSDK::Internal::Type::BaseModel
2543
3286
  # @!attribute credit_type_id
2544
3287
  # Defaults to USD (cents) if not passed.
@@ -2551,7 +3294,7 @@ module MetronomeSDK
2551
3294
  # amount. If amount is sent, the unit price is assumed to be the amount and
2552
3295
  # quantity is inferred to be 1.
2553
3296
  #
2554
- # @return [MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule, nil]
3297
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule, nil]
2555
3298
  optional :recurring_schedule,
2556
3299
  -> {
2557
3300
  MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule
@@ -2560,7 +3303,7 @@ module MetronomeSDK
2560
3303
  # @!attribute schedule_items
2561
3304
  # Either provide amount or provide both unit_price and quantity.
2562
3305
  #
2563
- # @return [Array<MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::ScheduleItem>, nil]
3306
+ # @return [Array<MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule::ScheduleItem>, nil]
2564
3307
  optional :schedule_items,
2565
3308
  -> {
2566
3309
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::ScheduleItem]
@@ -2568,22 +3311,22 @@ module MetronomeSDK
2568
3311
 
2569
3312
  # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
2570
3313
  # Some parameter documentations has been truncated, see
2571
- # {MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule} for more
2572
- # details.
3314
+ # {MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule} for
3315
+ # more details.
2573
3316
  #
2574
3317
  # Must provide either schedule_items or recurring_schedule.
2575
3318
  #
2576
3319
  # @param credit_type_id [String] Defaults to USD (cents) if not passed.
2577
3320
  #
2578
- # @param recurring_schedule [MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
3321
+ # @param recurring_schedule [MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
2579
3322
  #
2580
- # @param schedule_items [Array<MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
3323
+ # @param schedule_items [Array<MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
2581
3324
 
2582
- # @see MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule#recurring_schedule
3325
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule#recurring_schedule
2583
3326
  class RecurringSchedule < MetronomeSDK::Internal::Type::BaseModel
2584
3327
  # @!attribute amount_distribution
2585
3328
  #
2586
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule::AmountDistribution]
3329
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule::AmountDistribution]
2587
3330
  required :amount_distribution,
2588
3331
  enum: -> {
2589
3332
  MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule::AmountDistribution
@@ -2597,7 +3340,7 @@ module MetronomeSDK
2597
3340
 
2598
3341
  # @!attribute frequency
2599
3342
  #
2600
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule::Frequency]
3343
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule::Frequency]
2601
3344
  required :frequency,
2602
3345
  enum: -> {
2603
3346
  MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule::Frequency
@@ -2635,18 +3378,18 @@ module MetronomeSDK
2635
3378
 
2636
3379
  # @!method initialize(amount_distribution:, ending_before:, frequency:, starting_at:, amount: nil, quantity: nil, unit_price: nil)
2637
3380
  # Some parameter documentations has been truncated, see
2638
- # {MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule}
3381
+ # {MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule}
2639
3382
  # for more details.
2640
3383
  #
2641
3384
  # Enter the unit price and quantity for the charge or instead only send the
2642
3385
  # amount. If amount is sent, the unit price is assumed to be the amount and
2643
3386
  # quantity is inferred to be 1.
2644
3387
  #
2645
- # @param amount_distribution [Symbol, MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule::AmountDistribution]
3388
+ # @param amount_distribution [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule::AmountDistribution]
2646
3389
  #
2647
3390
  # @param ending_before [Time] RFC 3339 timestamp (exclusive).
2648
3391
  #
2649
- # @param frequency [Symbol, MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule::Frequency]
3392
+ # @param frequency [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule::Frequency]
2650
3393
  #
2651
3394
  # @param starting_at [Time] RFC 3339 timestamp (inclusive).
2652
3395
  #
@@ -2656,7 +3399,7 @@ module MetronomeSDK
2656
3399
  #
2657
3400
  # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
2658
3401
 
2659
- # @see MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule#amount_distribution
3402
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule#amount_distribution
2660
3403
  module AmountDistribution
2661
3404
  extend MetronomeSDK::Internal::Type::Enum
2662
3405
 
@@ -2668,7 +3411,7 @@ module MetronomeSDK
2668
3411
  # @return [Array<Symbol>]
2669
3412
  end
2670
3413
 
2671
- # @see MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule#frequency
3414
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule::RecurringSchedule#frequency
2672
3415
  module Frequency
2673
3416
  extend MetronomeSDK::Internal::Type::Enum
2674
3417
 
@@ -2715,7 +3458,7 @@ module MetronomeSDK
2715
3458
 
2716
3459
  # @!method initialize(timestamp:, amount: nil, quantity: nil, unit_price: nil)
2717
3460
  # Some parameter documentations has been truncated, see
2718
- # {MetronomeSDK::V1::ContractCreateParams::ScheduledCharge::Schedule::ScheduleItem}
3461
+ # {MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge::Schedule::ScheduleItem}
2719
3462
  # for more details.
2720
3463
  #
2721
3464
  # @param timestamp [Time] timestamp of the scheduled event
@@ -2746,7 +3489,7 @@ module MetronomeSDK
2746
3489
  class SpendThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
2747
3490
  # @!attribute commit
2748
3491
  #
2749
- # @return [MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::Commit]
3492
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::Commit]
2750
3493
  required :commit, -> { MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::Commit }
2751
3494
 
2752
3495
  # @!attribute is_enabled
@@ -2759,7 +3502,7 @@ module MetronomeSDK
2759
3502
 
2760
3503
  # @!attribute payment_gate_config
2761
3504
  #
2762
- # @return [MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig]
3505
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig]
2763
3506
  required :payment_gate_config,
2764
3507
  -> {
2765
3508
  MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig
@@ -2774,18 +3517,18 @@ module MetronomeSDK
2774
3517
 
2775
3518
  # @!method initialize(commit:, is_enabled:, payment_gate_config:, threshold_amount:)
2776
3519
  # Some parameter documentations has been truncated, see
2777
- # {MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration} for more
2778
- # details.
3520
+ # {MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration}
3521
+ # for more details.
2779
3522
  #
2780
- # @param commit [MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::Commit]
3523
+ # @param commit [MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::Commit]
2781
3524
  #
2782
3525
  # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
2783
3526
  #
2784
- # @param payment_gate_config [MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig]
3527
+ # @param payment_gate_config [MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig]
2785
3528
  #
2786
3529
  # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's usage hi
2787
3530
 
2788
- # @see MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration#commit
3531
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration#commit
2789
3532
  class Commit < MetronomeSDK::Internal::Type::BaseModel
2790
3533
  # @!attribute product_id
2791
3534
  # The commit product that will be used to generate the line item for commit
@@ -2808,7 +3551,7 @@ module MetronomeSDK
2808
3551
 
2809
3552
  # @!method initialize(product_id:, description: nil, name: nil)
2810
3553
  # Some parameter documentations has been truncated, see
2811
- # {MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::Commit}
3554
+ # {MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::Commit}
2812
3555
  # for more details.
2813
3556
  #
2814
3557
  # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
@@ -2818,7 +3561,7 @@ module MetronomeSDK
2818
3561
  # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
2819
3562
  end
2820
3563
 
2821
- # @see MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration#payment_gate_config
3564
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration#payment_gate_config
2822
3565
  class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
2823
3566
  # @!attribute payment_gate_type
2824
3567
  # Gate access to the commit balance based on successful collection of payment.
@@ -2826,16 +3569,25 @@ module MetronomeSDK
2826
3569
  # facilitate payment using your own payment integration. Select NONE if you do not
2827
3570
  # wish to payment gate the commit balance.
2828
3571
  #
2829
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType]
3572
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType]
2830
3573
  required :payment_gate_type,
2831
3574
  enum: -> {
2832
3575
  MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType
2833
3576
  }
2834
3577
 
3578
+ # @!attribute precalculated_tax_config
3579
+ # Only applicable if using PRECALCULATED as your tax type.
3580
+ #
3581
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig, nil]
3582
+ optional :precalculated_tax_config,
3583
+ -> {
3584
+ MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
3585
+ }
3586
+
2835
3587
  # @!attribute stripe_config
2836
- # Only applicable if using Stripe as your payment gateway through Metronome.
3588
+ # Only applicable if using STRIPE as your payment gate type.
2837
3589
  #
2838
- # @return [MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
3590
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
2839
3591
  optional :stripe_config,
2840
3592
  -> {
2841
3593
  MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig
@@ -2846,29 +3598,31 @@ module MetronomeSDK
2846
3598
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
2847
3599
  # will default to NONE.
2848
3600
  #
2849
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::TaxType, nil]
3601
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::TaxType, nil]
2850
3602
  optional :tax_type,
2851
3603
  enum: -> {
2852
3604
  MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::TaxType
2853
3605
  }
2854
3606
 
2855
- # @!method initialize(payment_gate_type:, stripe_config: nil, tax_type: nil)
3607
+ # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
2856
3608
  # Some parameter documentations has been truncated, see
2857
- # {MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig}
3609
+ # {MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig}
2858
3610
  # for more details.
2859
3611
  #
2860
- # @param payment_gate_type [Symbol, MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
3612
+ # @param payment_gate_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
2861
3613
  #
2862
- # @param stripe_config [MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using Stripe as your payment gateway through Metronome.
3614
+ # @param precalculated_tax_config [MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
2863
3615
  #
2864
- # @param tax_type [Symbol, MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
3616
+ # @param stripe_config [MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gate type.
3617
+ #
3618
+ # @param tax_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
2865
3619
 
2866
3620
  # Gate access to the commit balance based on successful collection of payment.
2867
3621
  # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
2868
3622
  # facilitate payment using your own payment integration. Select NONE if you do not
2869
3623
  # wish to payment gate the commit balance.
2870
3624
  #
2871
- # @see MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig#payment_gate_type
3625
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig#payment_gate_type
2872
3626
  module PaymentGateType
2873
3627
  extend MetronomeSDK::Internal::Type::Enum
2874
3628
 
@@ -2880,25 +3634,66 @@ module MetronomeSDK
2880
3634
  # @return [Array<Symbol>]
2881
3635
  end
2882
3636
 
2883
- # @see MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig#stripe_config
3637
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig#precalculated_tax_config
3638
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
3639
+ # @!attribute tax_amount
3640
+ # Amount of tax to be applied. This should be in the same currency and
3641
+ # denomination as the commit's invoice schedule
3642
+ #
3643
+ # @return [Float]
3644
+ required :tax_amount, Float
3645
+
3646
+ # @!attribute tax_name
3647
+ # Name of the tax to be applied. This may be used in an invoice line item
3648
+ # description.
3649
+ #
3650
+ # @return [String, nil]
3651
+ optional :tax_name, String
3652
+
3653
+ # @!method initialize(tax_amount:, tax_name: nil)
3654
+ # Some parameter documentations has been truncated, see
3655
+ # {MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig}
3656
+ # for more details.
3657
+ #
3658
+ # Only applicable if using PRECALCULATED as your tax type.
3659
+ #
3660
+ # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
3661
+ #
3662
+ # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
3663
+ end
3664
+
3665
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig#stripe_config
2884
3666
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
2885
3667
  # @!attribute payment_type
2886
3668
  # If left blank, will default to INVOICE
2887
3669
  #
2888
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
3670
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType]
2889
3671
  required :payment_type,
2890
3672
  enum: -> {
2891
3673
  MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
2892
3674
  }
2893
3675
 
2894
- # @!method initialize(payment_type:)
2895
- # Only applicable if using Stripe as your payment gateway through Metronome.
3676
+ # @!attribute invoice_metadata
3677
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
3678
+ # your payment type.
3679
+ #
3680
+ # @return [Hash{Symbol=>String}, nil]
3681
+ optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
3682
+
3683
+ # @!method initialize(payment_type:, invoice_metadata: nil)
3684
+ # Some parameter documentations has been truncated, see
3685
+ # {MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig}
3686
+ # for more details.
3687
+ #
3688
+ # Only applicable if using STRIPE as your payment gate type.
2896
3689
  #
2897
- # @param payment_type [Symbol, MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
3690
+ # @param payment_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
3691
+ #
3692
+ # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
2898
3693
 
2899
3694
  # If left blank, will default to INVOICE
2900
3695
  #
2901
- # @see MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
3696
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig#payment_type
2902
3697
  module PaymentType
2903
3698
  extend MetronomeSDK::Internal::Type::Enum
2904
3699
 
@@ -2914,12 +3709,193 @@ module MetronomeSDK
2914
3709
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
2915
3710
  # will default to NONE.
2916
3711
  #
2917
- # @see MetronomeSDK::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig#tax_type
3712
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::SpendThresholdConfiguration::PaymentGateConfig#tax_type
2918
3713
  module TaxType
2919
3714
  extend MetronomeSDK::Internal::Type::Enum
2920
3715
 
2921
3716
  NONE = :NONE
2922
3717
  STRIPE = :STRIPE
3718
+ ANROK = :ANROK
3719
+ PRECALCULATED = :PRECALCULATED
3720
+
3721
+ # @!method self.values
3722
+ # @return [Array<Symbol>]
3723
+ end
3724
+ end
3725
+ end
3726
+
3727
+ class Subscription < MetronomeSDK::Internal::Type::BaseModel
3728
+ # @!attribute collection_schedule
3729
+ #
3730
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::CollectionSchedule]
3731
+ required :collection_schedule,
3732
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::Subscription::CollectionSchedule }
3733
+
3734
+ # @!attribute initial_quantity
3735
+ # The initial quantity for the subscription. It must be non-negative value.
3736
+ #
3737
+ # @return [Float]
3738
+ required :initial_quantity, Float
3739
+
3740
+ # @!attribute proration
3741
+ #
3742
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration]
3743
+ required :proration, -> { MetronomeSDK::V1::ContractCreateParams::Subscription::Proration }
3744
+
3745
+ # @!attribute subscription_rate
3746
+ #
3747
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Subscription::SubscriptionRate]
3748
+ required :subscription_rate,
3749
+ -> {
3750
+ MetronomeSDK::V1::ContractCreateParams::Subscription::SubscriptionRate
3751
+ }
3752
+
3753
+ # @!attribute custom_fields
3754
+ #
3755
+ # @return [Hash{Symbol=>String}, nil]
3756
+ optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
3757
+
3758
+ # @!attribute description
3759
+ #
3760
+ # @return [String, nil]
3761
+ optional :description, String
3762
+
3763
+ # @!attribute ending_before
3764
+ # Exclusive end time for the subscription. If not provided, subscription inherits
3765
+ # contract end date.
3766
+ #
3767
+ # @return [Time, nil]
3768
+ optional :ending_before, Time
3769
+
3770
+ # @!attribute name
3771
+ #
3772
+ # @return [String, nil]
3773
+ optional :name, String
3774
+
3775
+ # @!attribute starting_at
3776
+ # Inclusive start time for the subscription. If not provided, defaults to contract
3777
+ # start date
3778
+ #
3779
+ # @return [Time, nil]
3780
+ optional :starting_at, Time
3781
+
3782
+ # @!method initialize(collection_schedule:, initial_quantity:, proration:, subscription_rate:, custom_fields: nil, description: nil, ending_before: nil, name: nil, starting_at: nil)
3783
+ # Some parameter documentations has been truncated, see
3784
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Subscription} for more details.
3785
+ #
3786
+ # @param collection_schedule [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::CollectionSchedule]
3787
+ #
3788
+ # @param initial_quantity [Float] The initial quantity for the subscription. It must be non-negative value.
3789
+ #
3790
+ # @param proration [MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration]
3791
+ #
3792
+ # @param subscription_rate [MetronomeSDK::Models::V1::ContractCreateParams::Subscription::SubscriptionRate]
3793
+ #
3794
+ # @param custom_fields [Hash{Symbol=>String}]
3795
+ #
3796
+ # @param description [String]
3797
+ #
3798
+ # @param ending_before [Time] Exclusive end time for the subscription. If not provided, subscription inherits
3799
+ #
3800
+ # @param name [String]
3801
+ #
3802
+ # @param starting_at [Time] Inclusive start time for the subscription. If not provided, defaults to contract
3803
+
3804
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Subscription#collection_schedule
3805
+ module CollectionSchedule
3806
+ extend MetronomeSDK::Internal::Type::Enum
3807
+
3808
+ ADVANCE = :ADVANCE
3809
+ ARREARS = :ARREARS
3810
+
3811
+ # @!method self.values
3812
+ # @return [Array<Symbol>]
3813
+ end
3814
+
3815
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Subscription#proration
3816
+ class Proration < MetronomeSDK::Internal::Type::BaseModel
3817
+ # @!attribute invoice_behavior
3818
+ # Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
3819
+ # is selected, the quantity increase will be billed on the scheduled date. If
3820
+ # BILL_ON_NEXT_COLLECTION_DATE is selected, the quantity increase will be billed
3821
+ # for in-arrears at the end of the period.
3822
+ #
3823
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration::InvoiceBehavior, nil]
3824
+ optional :invoice_behavior,
3825
+ enum: -> {
3826
+ MetronomeSDK::V1::ContractCreateParams::Subscription::Proration::InvoiceBehavior
3827
+ }
3828
+
3829
+ # @!attribute is_prorated
3830
+ # Indicates if the partial period will be prorated or charged a full amount.
3831
+ #
3832
+ # @return [Boolean, nil]
3833
+ optional :is_prorated, MetronomeSDK::Internal::Type::Boolean
3834
+
3835
+ # @!method initialize(invoice_behavior: nil, is_prorated: nil)
3836
+ # Some parameter documentations has been truncated, see
3837
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration} for
3838
+ # more details.
3839
+ #
3840
+ # @param invoice_behavior [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration::InvoiceBehavior] Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
3841
+ #
3842
+ # @param is_prorated [Boolean] Indicates if the partial period will be prorated or charged a full amount.
3843
+
3844
+ # Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
3845
+ # is selected, the quantity increase will be billed on the scheduled date. If
3846
+ # BILL_ON_NEXT_COLLECTION_DATE is selected, the quantity increase will be billed
3847
+ # for in-arrears at the end of the period.
3848
+ #
3849
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Subscription::Proration#invoice_behavior
3850
+ module InvoiceBehavior
3851
+ extend MetronomeSDK::Internal::Type::Enum
3852
+
3853
+ BILL_IMMEDIATELY = :BILL_IMMEDIATELY
3854
+ BILL_ON_NEXT_COLLECTION_DATE = :BILL_ON_NEXT_COLLECTION_DATE
3855
+
3856
+ # @!method self.values
3857
+ # @return [Array<Symbol>]
3858
+ end
3859
+ end
3860
+
3861
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Subscription#subscription_rate
3862
+ class SubscriptionRate < MetronomeSDK::Internal::Type::BaseModel
3863
+ # @!attribute billing_frequency
3864
+ # Frequency to bill subscription with. Together with product_id, must match
3865
+ # existing rate on the rate card.
3866
+ #
3867
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::SubscriptionRate::BillingFrequency]
3868
+ required :billing_frequency,
3869
+ enum: -> {
3870
+ MetronomeSDK::V1::ContractCreateParams::Subscription::SubscriptionRate::BillingFrequency
3871
+ }
3872
+
3873
+ # @!attribute product_id
3874
+ # Must be subscription type product
3875
+ #
3876
+ # @return [String]
3877
+ required :product_id, String
3878
+
3879
+ # @!method initialize(billing_frequency:, product_id:)
3880
+ # Some parameter documentations has been truncated, see
3881
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Subscription::SubscriptionRate}
3882
+ # for more details.
3883
+ #
3884
+ # @param billing_frequency [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::SubscriptionRate::BillingFrequency] Frequency to bill subscription with. Together with product_id, must match existi
3885
+ #
3886
+ # @param product_id [String] Must be subscription type product
3887
+
3888
+ # Frequency to bill subscription with. Together with product_id, must match
3889
+ # existing rate on the rate card.
3890
+ #
3891
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Subscription::SubscriptionRate#billing_frequency
3892
+ module BillingFrequency
3893
+ extend MetronomeSDK::Internal::Type::Enum
3894
+
3895
+ MONTHLY = :MONTHLY
3896
+ QUARTERLY = :QUARTERLY
3897
+ ANNUAL = :ANNUAL
3898
+ WEEKLY = :WEEKLY
2923
3899
 
2924
3900
  # @!method self.values
2925
3901
  # @return [Array<Symbol>]
@@ -2936,25 +3912,25 @@ module MetronomeSDK
2936
3912
  # @!attribute type
2937
3913
  # This field's available values may vary based on your client's configuration.
2938
3914
  #
2939
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::Transition::Type]
3915
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Transition::Type]
2940
3916
  required :type, enum: -> { MetronomeSDK::V1::ContractCreateParams::Transition::Type }
2941
3917
 
2942
3918
  # @!attribute future_invoice_behavior
2943
3919
  #
2944
- # @return [MetronomeSDK::V1::ContractCreateParams::Transition::FutureInvoiceBehavior, nil]
3920
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Transition::FutureInvoiceBehavior, nil]
2945
3921
  optional :future_invoice_behavior,
2946
3922
  -> { MetronomeSDK::V1::ContractCreateParams::Transition::FutureInvoiceBehavior }
2947
3923
 
2948
3924
  # @!method initialize(from_contract_id:, type:, future_invoice_behavior: nil)
2949
3925
  # @param from_contract_id [String]
2950
3926
  #
2951
- # @param type [Symbol, MetronomeSDK::V1::ContractCreateParams::Transition::Type] This field's available values may vary based on your client's configuration.
3927
+ # @param type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Transition::Type] This field's available values may vary based on your client's configuration.
2952
3928
  #
2953
- # @param future_invoice_behavior [MetronomeSDK::V1::ContractCreateParams::Transition::FutureInvoiceBehavior]
3929
+ # @param future_invoice_behavior [MetronomeSDK::Models::V1::ContractCreateParams::Transition::FutureInvoiceBehavior]
2954
3930
 
2955
3931
  # This field's available values may vary based on your client's configuration.
2956
3932
  #
2957
- # @see MetronomeSDK::V1::ContractCreateParams::Transition#type
3933
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Transition#type
2958
3934
  module Type
2959
3935
  extend MetronomeSDK::Internal::Type::Enum
2960
3936
 
@@ -2965,13 +3941,13 @@ module MetronomeSDK
2965
3941
  # @return [Array<Symbol>]
2966
3942
  end
2967
3943
 
2968
- # @see MetronomeSDK::V1::ContractCreateParams::Transition#future_invoice_behavior
3944
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Transition#future_invoice_behavior
2969
3945
  class FutureInvoiceBehavior < MetronomeSDK::Internal::Type::BaseModel
2970
3946
  # @!attribute trueup
2971
3947
  # Controls whether future trueup invoices are billed or removed. Default behavior
2972
3948
  # is AS_IS if not specified.
2973
3949
  #
2974
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::Transition::FutureInvoiceBehavior::Trueup, nil]
3950
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Transition::FutureInvoiceBehavior::Trueup, nil]
2975
3951
  optional :trueup,
2976
3952
  enum: -> {
2977
3953
  MetronomeSDK::V1::ContractCreateParams::Transition::FutureInvoiceBehavior::Trueup
@@ -2980,15 +3956,15 @@ module MetronomeSDK
2980
3956
 
2981
3957
  # @!method initialize(trueup: nil)
2982
3958
  # Some parameter documentations has been truncated, see
2983
- # {MetronomeSDK::V1::ContractCreateParams::Transition::FutureInvoiceBehavior} for
2984
- # more details.
3959
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Transition::FutureInvoiceBehavior}
3960
+ # for more details.
2985
3961
  #
2986
- # @param trueup [Symbol, MetronomeSDK::V1::ContractCreateParams::Transition::FutureInvoiceBehavior::Trueup, nil] Controls whether future trueup invoices are billed or removed. Default behavior
3962
+ # @param trueup [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Transition::FutureInvoiceBehavior::Trueup, nil] Controls whether future trueup invoices are billed or removed. Default behavior
2987
3963
 
2988
3964
  # Controls whether future trueup invoices are billed or removed. Default behavior
2989
3965
  # is AS_IS if not specified.
2990
3966
  #
2991
- # @see MetronomeSDK::V1::ContractCreateParams::Transition::FutureInvoiceBehavior#trueup
3967
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Transition::FutureInvoiceBehavior#trueup
2992
3968
  module Trueup
2993
3969
  extend MetronomeSDK::Internal::Type::Enum
2994
3970
 
@@ -3004,7 +3980,7 @@ module MetronomeSDK
3004
3980
  class UsageStatementSchedule < MetronomeSDK::Internal::Type::BaseModel
3005
3981
  # @!attribute frequency
3006
3982
  #
3007
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::UsageStatementSchedule::Frequency]
3983
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::UsageStatementSchedule::Frequency]
3008
3984
  required :frequency,
3009
3985
  enum: -> { MetronomeSDK::V1::ContractCreateParams::UsageStatementSchedule::Frequency }
3010
3986
 
@@ -3021,7 +3997,7 @@ module MetronomeSDK
3021
3997
  # @!attribute day
3022
3998
  # If not provided, defaults to the first day of the month.
3023
3999
  #
3024
- # @return [Symbol, MetronomeSDK::V1::ContractCreateParams::UsageStatementSchedule::Day, nil]
4000
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::UsageStatementSchedule::Day, nil]
3025
4001
  optional :day, enum: -> { MetronomeSDK::V1::ContractCreateParams::UsageStatementSchedule::Day }
3026
4002
 
3027
4003
  # @!attribute invoice_generation_starting_at
@@ -3035,18 +4011,18 @@ module MetronomeSDK
3035
4011
 
3036
4012
  # @!method initialize(frequency:, billing_anchor_date: nil, day: nil, invoice_generation_starting_at: nil)
3037
4013
  # Some parameter documentations has been truncated, see
3038
- # {MetronomeSDK::V1::ContractCreateParams::UsageStatementSchedule} for more
3039
- # details.
4014
+ # {MetronomeSDK::Models::V1::ContractCreateParams::UsageStatementSchedule} for
4015
+ # more details.
3040
4016
  #
3041
- # @param frequency [Symbol, MetronomeSDK::V1::ContractCreateParams::UsageStatementSchedule::Frequency]
4017
+ # @param frequency [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::UsageStatementSchedule::Frequency]
3042
4018
  #
3043
4019
  # @param billing_anchor_date [Time] Required when using CUSTOM_DATE. This option lets you set a historical billing a
3044
4020
  #
3045
- # @param day [Symbol, MetronomeSDK::V1::ContractCreateParams::UsageStatementSchedule::Day] If not provided, defaults to the first day of the month.
4021
+ # @param day [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::UsageStatementSchedule::Day] If not provided, defaults to the first day of the month.
3046
4022
  #
3047
4023
  # @param invoice_generation_starting_at [Time] The date Metronome should start generating usage invoices. If unspecified, contr
3048
4024
 
3049
- # @see MetronomeSDK::V1::ContractCreateParams::UsageStatementSchedule#frequency
4025
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::UsageStatementSchedule#frequency
3050
4026
  module Frequency
3051
4027
  extend MetronomeSDK::Internal::Type::Enum
3052
4028
 
@@ -3061,7 +4037,7 @@ module MetronomeSDK
3061
4037
 
3062
4038
  # If not provided, defaults to the first day of the month.
3063
4039
  #
3064
- # @see MetronomeSDK::V1::ContractCreateParams::UsageStatementSchedule#day
4040
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::UsageStatementSchedule#day
3065
4041
  module Day
3066
4042
  extend MetronomeSDK::Internal::Type::Enum
3067
4043