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
@@ -49,7 +49,7 @@ module MetronomeSDK
49
49
 
50
50
  # @!attribute scheduled_charges
51
51
  #
52
- # @return [Array<MetronomeSDK::ScheduledCharge>]
52
+ # @return [Array<MetronomeSDK::Models::ScheduledCharge>]
53
53
  required :scheduled_charges,
54
54
  -> {
55
55
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::ScheduledCharge]
@@ -104,7 +104,7 @@ module MetronomeSDK
104
104
  # @!attribute discounts
105
105
  # This field's availability is dependent on your client's configuration.
106
106
  #
107
- # @return [Array<MetronomeSDK::Discount>, nil]
107
+ # @return [Array<MetronomeSDK::Models::Discount>, nil]
108
108
  optional :discounts, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Discount] }
109
109
 
110
110
  # @!attribute ending_before
@@ -112,6 +112,14 @@ module MetronomeSDK
112
112
  # @return [Time, nil]
113
113
  optional :ending_before, Time
114
114
 
115
+ # @!attribute hierarchy_configuration
116
+ # Either a **parent** configuration with a list of children or a **child**
117
+ # configuration with a single parent.
118
+ #
119
+ # @return [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::HierarchyConfiguration::ParentHierarchyConfiguration, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::HierarchyConfiguration::ChildHierarchyConfiguration, nil]
120
+ optional :hierarchy_configuration,
121
+ union: -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::HierarchyConfiguration }
122
+
115
123
  # @!attribute multiplier_override_prioritization
116
124
  # Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list
117
125
  # prices automatically. EXPLICIT prioritization requires specifying priorities for
@@ -144,10 +152,16 @@ module MetronomeSDK
144
152
  optional :prepaid_balance_threshold_configuration,
145
153
  -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration }
146
154
 
155
+ # @!attribute priority
156
+ # Priority of the contract.
157
+ #
158
+ # @return [Float, nil]
159
+ optional :priority, Float
160
+
147
161
  # @!attribute professional_services
148
162
  # This field's availability is dependent on your client's configuration.
149
163
  #
150
- # @return [Array<MetronomeSDK::ProService>, nil]
164
+ # @return [Array<MetronomeSDK::Models::ProService>, nil]
151
165
  optional :professional_services,
152
166
  -> {
153
167
  MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::ProService]
@@ -200,6 +214,13 @@ module MetronomeSDK
200
214
  optional :spend_threshold_configuration,
201
215
  -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::SpendThresholdConfiguration }
202
216
 
217
+ # @!attribute subscriptions
218
+ # List of subscriptions on the contract.
219
+ #
220
+ # @return [Array<MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription>, nil]
221
+ optional :subscriptions,
222
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription] }
223
+
203
224
  # @!attribute total_contract_value
204
225
  #
205
226
  # @return [Float, nil]
@@ -213,7 +234,7 @@ module MetronomeSDK
213
234
  # @return [String, nil]
214
235
  optional :uniqueness_key, String
215
236
 
216
- # @!method initialize(id:, commits:, created_at:, created_by:, customer_id:, overrides:, scheduled_charges:, starting_at:, transitions:, usage_filter:, usage_statement_schedule:, archived_at: nil, credits: nil, custom_fields: nil, customer_billing_provider_configuration: nil, discounts: nil, ending_before: nil, multiplier_override_prioritization: nil, name: nil, net_payment_terms_days: nil, netsuite_sales_order_id: nil, prepaid_balance_threshold_configuration: nil, professional_services: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, reseller_royalties: nil, salesforce_opportunity_id: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, total_contract_value: nil, uniqueness_key: nil)
237
+ # @!method initialize(id:, commits:, created_at:, created_by:, customer_id:, overrides:, scheduled_charges:, starting_at:, transitions:, usage_filter:, usage_statement_schedule:, archived_at: nil, credits: nil, custom_fields: nil, customer_billing_provider_configuration: 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, prepaid_balance_threshold_configuration: nil, priority: nil, professional_services: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, reseller_royalties: nil, salesforce_opportunity_id: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, subscriptions: nil, total_contract_value: nil, uniqueness_key: nil)
217
238
  # Some parameter documentations has been truncated, see
218
239
  # {MetronomeSDK::Models::V2::ContractRetrieveResponse::Data} for more details.
219
240
  #
@@ -229,7 +250,7 @@ module MetronomeSDK
229
250
  #
230
251
  # @param overrides [Array<MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Override>]
231
252
  #
232
- # @param scheduled_charges [Array<MetronomeSDK::ScheduledCharge>]
253
+ # @param scheduled_charges [Array<MetronomeSDK::Models::ScheduledCharge>]
233
254
  #
234
255
  # @param starting_at [Time]
235
256
  #
@@ -247,10 +268,12 @@ module MetronomeSDK
247
268
  #
248
269
  # @param customer_billing_provider_configuration [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::CustomerBillingProviderConfiguration] This field's availability is dependent on your client's configuration.
249
270
  #
250
- # @param discounts [Array<MetronomeSDK::Discount>] This field's availability is dependent on your client's configuration.
271
+ # @param discounts [Array<MetronomeSDK::Models::Discount>] This field's availability is dependent on your client's configuration.
251
272
  #
252
273
  # @param ending_before [Time]
253
274
  #
275
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::HierarchyConfiguration::ParentHierarchyConfiguration, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::HierarchyConfiguration::ChildHierarchyConfiguration] Either a **parent** configuration with a list of children or a **child** configu
276
+ #
254
277
  # @param multiplier_override_prioritization [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::MultiplierOverridePrioritization] Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list price
255
278
  #
256
279
  # @param name [String]
@@ -261,7 +284,9 @@ module MetronomeSDK
261
284
  #
262
285
  # @param prepaid_balance_threshold_configuration [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration]
263
286
  #
264
- # @param professional_services [Array<MetronomeSDK::ProService>] This field's availability is dependent on your client's configuration.
287
+ # @param priority [Float] Priority of the contract.
288
+ #
289
+ # @param professional_services [Array<MetronomeSDK::Models::ProService>] This field's availability is dependent on your client's configuration.
265
290
  #
266
291
  # @param rate_card_id [String]
267
292
  #
@@ -277,6 +302,8 @@ module MetronomeSDK
277
302
  #
278
303
  # @param spend_threshold_configuration [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::SpendThresholdConfiguration]
279
304
  #
305
+ # @param subscriptions [Array<MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription>] List of subscriptions on the contract.
306
+ #
280
307
  # @param total_contract_value [Float]
281
308
  #
282
309
  # @param uniqueness_key [String] Prevents the creation of duplicates. If a request to create a record is made wit
@@ -301,7 +328,7 @@ module MetronomeSDK
301
328
  # The schedule that the customer will gain access to the credits purposed with
302
329
  # this commit.
303
330
  #
304
- # @return [MetronomeSDK::ScheduleDuration, nil]
331
+ # @return [MetronomeSDK::Models::ScheduleDuration, nil]
305
332
  optional :access_schedule, -> { MetronomeSDK::ScheduleDuration }
306
333
 
307
334
  # @!attribute applicable_contract_ids
@@ -352,6 +379,13 @@ module MetronomeSDK
352
379
  # @return [String, nil]
353
380
  optional :description, String
354
381
 
382
+ # @!attribute hierarchy_configuration
383
+ # Optional configuration for commit hierarchy access control
384
+ #
385
+ # @return [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration, nil]
386
+ optional :hierarchy_configuration,
387
+ -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration }
388
+
355
389
  # @!attribute invoice_contract
356
390
  # The contract that this commit will be billed on.
357
391
  #
@@ -362,7 +396,7 @@ module MetronomeSDK
362
396
  # @!attribute invoice_schedule
363
397
  # The schedule that the customer will be invoiced for this commit.
364
398
  #
365
- # @return [MetronomeSDK::SchedulePointInTime, nil]
399
+ # @return [MetronomeSDK::Models::SchedulePointInTime, nil]
366
400
  optional :invoice_schedule, -> { MetronomeSDK::SchedulePointInTime }
367
401
 
368
402
  # @!attribute ledger
@@ -414,7 +448,16 @@ module MetronomeSDK
414
448
  # @return [String, nil]
415
449
  optional :salesforce_opportunity_id, String
416
450
 
417
- # @!method initialize(id:, product:, type:, access_schedule: nil, applicable_contract_ids: nil, applicable_product_ids: nil, applicable_product_tags: nil, archived_at: nil, balance: nil, contract: nil, custom_fields: nil, description: nil, invoice_contract: nil, invoice_schedule: nil, ledger: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, rolled_over_from: nil, rollover_fraction: nil, salesforce_opportunity_id: nil)
451
+ # @!attribute specifiers
452
+ # List of filters that determine what kind of customer usage draws down a commit
453
+ # or credit. A customer's usage needs to meet the condition of at least one of the
454
+ # specifiers to contribute to a commit's or credit's drawdown.
455
+ #
456
+ # @return [Array<MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Specifier>, nil]
457
+ optional :specifiers,
458
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Specifier] }
459
+
460
+ # @!method initialize(id:, product:, type:, access_schedule: nil, applicable_contract_ids: nil, applicable_product_ids: nil, applicable_product_tags: nil, archived_at: nil, balance: nil, contract: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, invoice_contract: nil, invoice_schedule: nil, ledger: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, rolled_over_from: nil, rollover_fraction: nil, salesforce_opportunity_id: nil, specifiers: nil)
418
461
  # Some parameter documentations has been truncated, see
419
462
  # {MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit} for more
420
463
  # details.
@@ -425,7 +468,7 @@ module MetronomeSDK
425
468
  #
426
469
  # @param type [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Type]
427
470
  #
428
- # @param access_schedule [MetronomeSDK::ScheduleDuration] The schedule that the customer will gain access to the credits purposed with thi
471
+ # @param access_schedule [MetronomeSDK::Models::ScheduleDuration] The schedule that the customer will gain access to the credits purposed with thi
429
472
  #
430
473
  # @param applicable_contract_ids [Array<String>]
431
474
  #
@@ -443,9 +486,11 @@ module MetronomeSDK
443
486
  #
444
487
  # @param description [String]
445
488
  #
489
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration] Optional configuration for commit hierarchy access control
490
+ #
446
491
  # @param invoice_contract [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::InvoiceContract] The contract that this commit will be billed on.
447
492
  #
448
- # @param invoice_schedule [MetronomeSDK::SchedulePointInTime] The schedule that the customer will be invoiced for this commit.
493
+ # @param invoice_schedule [MetronomeSDK::Models::SchedulePointInTime] The schedule that the customer will be invoiced for this commit.
449
494
  #
450
495
  # @param ledger [Array<MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PrepaidCommitSegmentStartLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PrepaidCommitRolloverLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PrepaidCommitExpirationLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PrepaidCommitCanceledLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PrepaidCommitCreditedLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PostpaidCommitInitialBalanceLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PostpaidCommitRolloverLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PostpaidCommitTrueupLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PrepaidCommitManualLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PostpaidCommitManualLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PostpaidCommitExpirationLedgerEntry>] A list of ordered events that impact the balance of a commit. For example, an in
451
496
  #
@@ -462,6 +507,8 @@ module MetronomeSDK
462
507
  # @param rollover_fraction [Float]
463
508
  #
464
509
  # @param salesforce_opportunity_id [String] This field's availability is dependent on your client's configuration.
510
+ #
511
+ # @param specifiers [Array<MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
465
512
 
466
513
  # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit#product
467
514
  class Product < MetronomeSDK::Internal::Type::BaseModel
@@ -502,6 +549,103 @@ module MetronomeSDK
502
549
  # @param id [String]
503
550
  end
504
551
 
552
+ # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit#hierarchy_configuration
553
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
554
+ # @!attribute child_access
555
+ #
556
+ # @return [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
557
+ required :child_access,
558
+ union: -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess }
559
+
560
+ # @!method initialize(child_access:)
561
+ # Optional configuration for commit hierarchy access control
562
+ #
563
+ # @param child_access [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
564
+
565
+ # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration#child_access
566
+ module ChildAccess
567
+ extend MetronomeSDK::Internal::Type::Union
568
+
569
+ variant -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll }
570
+
571
+ variant -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone }
572
+
573
+ variant -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs }
574
+
575
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
576
+ # @!attribute type
577
+ #
578
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
579
+ required :type,
580
+ enum: -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type }
581
+
582
+ # @!method initialize(type:)
583
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
584
+
585
+ # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
586
+ module Type
587
+ extend MetronomeSDK::Internal::Type::Enum
588
+
589
+ ALL = :ALL
590
+
591
+ # @!method self.values
592
+ # @return [Array<Symbol>]
593
+ end
594
+ end
595
+
596
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
597
+ # @!attribute type
598
+ #
599
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
600
+ required :type,
601
+ enum: -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type }
602
+
603
+ # @!method initialize(type:)
604
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
605
+
606
+ # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
607
+ module Type
608
+ extend MetronomeSDK::Internal::Type::Enum
609
+
610
+ NONE = :NONE
611
+
612
+ # @!method self.values
613
+ # @return [Array<Symbol>]
614
+ end
615
+ end
616
+
617
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
618
+ # @!attribute contract_ids
619
+ #
620
+ # @return [Array<String>]
621
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
622
+
623
+ # @!attribute type
624
+ #
625
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
626
+ required :type,
627
+ enum: -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type }
628
+
629
+ # @!method initialize(contract_ids:, type:)
630
+ # @param contract_ids [Array<String>]
631
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
632
+
633
+ # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
634
+ module Type
635
+ extend MetronomeSDK::Internal::Type::Enum
636
+
637
+ CONTRACT_IDS = :CONTRACT_IDS
638
+
639
+ # @!method self.values
640
+ # @return [Array<Symbol>]
641
+ end
642
+ end
643
+
644
+ # @!method self.variants
645
+ # @return [Array(MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
646
+ end
647
+ end
648
+
505
649
  # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit#invoice_contract
506
650
  class InvoiceContract < MetronomeSDK::Internal::Type::BaseModel
507
651
  # @!attribute id
@@ -1077,26 +1221,6 @@ module MetronomeSDK
1077
1221
 
1078
1222
  # @!method self.variants
1079
1223
  # @return [Array(MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PrepaidCommitSegmentStartLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PrepaidCommitRolloverLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PrepaidCommitExpirationLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PrepaidCommitCanceledLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PrepaidCommitCreditedLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PostpaidCommitInitialBalanceLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PostpaidCommitRolloverLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PostpaidCommitTrueupLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PrepaidCommitManualLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PostpaidCommitManualLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PostpaidCommitExpirationLedgerEntry)]
1080
-
1081
- define_sorbet_constant!(:Variants) do
1082
- T.type_alias do
1083
- T.any(
1084
- MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PrepaidCommitSegmentStartLedgerEntry,
1085
- MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry,
1086
- MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PrepaidCommitRolloverLedgerEntry,
1087
- MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PrepaidCommitExpirationLedgerEntry,
1088
- MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PrepaidCommitCanceledLedgerEntry,
1089
- MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PrepaidCommitCreditedLedgerEntry,
1090
- MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PostpaidCommitInitialBalanceLedgerEntry,
1091
- MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry,
1092
- MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PostpaidCommitRolloverLedgerEntry,
1093
- MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PostpaidCommitTrueupLedgerEntry,
1094
- MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PrepaidCommitManualLedgerEntry,
1095
- MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PostpaidCommitManualLedgerEntry,
1096
- MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Ledger::PostpaidCommitExpirationLedgerEntry
1097
- )
1098
- end
1099
- end
1100
1224
  end
1101
1225
 
1102
1226
  # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit#rate_type
@@ -1126,6 +1250,44 @@ module MetronomeSDK
1126
1250
  # @param commit_id [String]
1127
1251
  # @param contract_id [String]
1128
1252
  end
1253
+
1254
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
1255
+ # @!attribute presentation_group_values
1256
+ #
1257
+ # @return [Hash{Symbol=>String}, nil]
1258
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1259
+
1260
+ # @!attribute pricing_group_values
1261
+ #
1262
+ # @return [Hash{Symbol=>String}, nil]
1263
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1264
+
1265
+ # @!attribute product_id
1266
+ # If provided, the specifier will only apply to the product with the specified ID.
1267
+ #
1268
+ # @return [String, nil]
1269
+ optional :product_id, String
1270
+
1271
+ # @!attribute product_tags
1272
+ # If provided, the specifier will only apply to products with all the specified
1273
+ # tags.
1274
+ #
1275
+ # @return [Array<String>, nil]
1276
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1277
+
1278
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
1279
+ # Some parameter documentations has been truncated, see
1280
+ # {MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Commit::Specifier}
1281
+ # for more details.
1282
+ #
1283
+ # @param presentation_group_values [Hash{Symbol=>String}]
1284
+ #
1285
+ # @param pricing_group_values [Hash{Symbol=>String}]
1286
+ #
1287
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
1288
+ #
1289
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
1290
+ end
1129
1291
  end
1130
1292
 
1131
1293
  class Override < MetronomeSDK::Internal::Type::BaseModel
@@ -1219,6 +1381,12 @@ module MetronomeSDK
1219
1381
  # @param type [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Override::Type]
1220
1382
 
1221
1383
  class OverrideSpecifier < MetronomeSDK::Internal::Type::BaseModel
1384
+ # @!attribute billing_frequency
1385
+ #
1386
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Override::OverrideSpecifier::BillingFrequency, nil]
1387
+ optional :billing_frequency,
1388
+ enum: -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Override::OverrideSpecifier::BillingFrequency }
1389
+
1222
1390
  # @!attribute commit_ids
1223
1391
  #
1224
1392
  # @return [Array<String>, nil]
@@ -1254,7 +1422,8 @@ module MetronomeSDK
1254
1422
  # @return [Array<String>, nil]
1255
1423
  optional :recurring_credit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1256
1424
 
1257
- # @!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)
1425
+ # @!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)
1426
+ # @param billing_frequency [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Override::OverrideSpecifier::BillingFrequency]
1258
1427
  # @param commit_ids [Array<String>]
1259
1428
  # @param presentation_group_values [Hash{Symbol=>String, nil}]
1260
1429
  # @param pricing_group_values [Hash{Symbol=>String}]
@@ -1262,6 +1431,19 @@ module MetronomeSDK
1262
1431
  # @param product_tags [Array<String>]
1263
1432
  # @param recurring_commit_ids [Array<String>]
1264
1433
  # @param recurring_credit_ids [Array<String>]
1434
+
1435
+ # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Override::OverrideSpecifier#billing_frequency
1436
+ module BillingFrequency
1437
+ extend MetronomeSDK::Internal::Type::Enum
1438
+
1439
+ MONTHLY = :MONTHLY
1440
+ QUARTERLY = :QUARTERLY
1441
+ ANNUAL = :ANNUAL
1442
+ WEEKLY = :WEEKLY
1443
+
1444
+ # @!method self.values
1445
+ # @return [Array<Symbol>]
1446
+ end
1265
1447
  end
1266
1448
 
1267
1449
  class OverrideTier < MetronomeSDK::Internal::Type::BaseModel
@@ -1290,7 +1472,7 @@ module MetronomeSDK
1290
1472
 
1291
1473
  # @!attribute credit_type
1292
1474
  #
1293
- # @return [MetronomeSDK::CreditTypeData, nil]
1475
+ # @return [MetronomeSDK::Models::CreditTypeData, nil]
1294
1476
  optional :credit_type, -> { MetronomeSDK::CreditTypeData }
1295
1477
 
1296
1478
  # @!attribute custom_rate
@@ -1324,7 +1506,7 @@ module MetronomeSDK
1324
1506
  # @!attribute tiers
1325
1507
  # Only set for TIERED rate_type.
1326
1508
  #
1327
- # @return [Array<MetronomeSDK::Tier>, nil]
1509
+ # @return [Array<MetronomeSDK::Models::Tier>, nil]
1328
1510
  optional :tiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Tier] }
1329
1511
 
1330
1512
  # @!method initialize(rate_type:, credit_type: nil, custom_rate: nil, is_prorated: nil, price: nil, quantity: nil, tiers: nil)
@@ -1334,7 +1516,7 @@ module MetronomeSDK
1334
1516
  #
1335
1517
  # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Override::OverwriteRate::RateType]
1336
1518
  #
1337
- # @param credit_type [MetronomeSDK::CreditTypeData]
1519
+ # @param credit_type [MetronomeSDK::Models::CreditTypeData]
1338
1520
  #
1339
1521
  # @param custom_rate [Hash{Symbol=>Object}] Only set for CUSTOM rate_type. This field is interpreted by custom rate processo
1340
1522
  #
@@ -1344,7 +1526,7 @@ module MetronomeSDK
1344
1526
  #
1345
1527
  # @param quantity [Float] Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
1346
1528
  #
1347
- # @param tiers [Array<MetronomeSDK::Tier>] Only set for TIERED rate_type.
1529
+ # @param tiers [Array<MetronomeSDK::Models::Tier>] Only set for TIERED rate_type.
1348
1530
 
1349
1531
  # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Override::OverwriteRate#rate_type
1350
1532
  module RateType
@@ -1526,7 +1708,7 @@ module MetronomeSDK
1526
1708
  # @!attribute access_schedule
1527
1709
  # The schedule that the customer will gain access to the credits.
1528
1710
  #
1529
- # @return [MetronomeSDK::ScheduleDuration, nil]
1711
+ # @return [MetronomeSDK::Models::ScheduleDuration, nil]
1530
1712
  optional :access_schedule, -> { MetronomeSDK::ScheduleDuration }
1531
1713
 
1532
1714
  # @!attribute applicable_contract_ids
@@ -1572,6 +1754,13 @@ module MetronomeSDK
1572
1754
  # @return [String, nil]
1573
1755
  optional :description, String
1574
1756
 
1757
+ # @!attribute hierarchy_configuration
1758
+ # Optional configuration for credit hierarchy access control
1759
+ #
1760
+ # @return [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration, nil]
1761
+ optional :hierarchy_configuration,
1762
+ -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration }
1763
+
1575
1764
  # @!attribute ledger
1576
1765
  # A list of ordered events that impact the balance of a credit. For example, an
1577
1766
  # invoice deduction or an expiration.
@@ -1604,7 +1793,16 @@ module MetronomeSDK
1604
1793
  # @return [String, nil]
1605
1794
  optional :salesforce_opportunity_id, String
1606
1795
 
1607
- # @!method initialize(id:, product:, type:, access_schedule: nil, applicable_contract_ids: nil, applicable_product_ids: nil, applicable_product_tags: nil, balance: nil, contract: nil, custom_fields: nil, description: nil, ledger: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, salesforce_opportunity_id: nil)
1796
+ # @!attribute specifiers
1797
+ # List of filters that determine what kind of customer usage draws down a commit
1798
+ # or credit. A customer's usage needs to meet the condition of at least one of the
1799
+ # specifiers to contribute to a commit's or credit's drawdown.
1800
+ #
1801
+ # @return [Array<MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Specifier>, nil]
1802
+ optional :specifiers,
1803
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Specifier] }
1804
+
1805
+ # @!method initialize(id:, product:, type:, access_schedule: nil, applicable_contract_ids: nil, applicable_product_ids: nil, applicable_product_tags: nil, balance: nil, contract: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, ledger: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, salesforce_opportunity_id: nil, specifiers: nil)
1608
1806
  # Some parameter documentations has been truncated, see
1609
1807
  # {MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit} for more
1610
1808
  # details.
@@ -1615,7 +1813,7 @@ module MetronomeSDK
1615
1813
  #
1616
1814
  # @param type [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Type]
1617
1815
  #
1618
- # @param access_schedule [MetronomeSDK::ScheduleDuration] The schedule that the customer will gain access to the credits.
1816
+ # @param access_schedule [MetronomeSDK::Models::ScheduleDuration] The schedule that the customer will gain access to the credits.
1619
1817
  #
1620
1818
  # @param applicable_contract_ids [Array<String>]
1621
1819
  #
@@ -1631,6 +1829,8 @@ module MetronomeSDK
1631
1829
  #
1632
1830
  # @param description [String]
1633
1831
  #
1832
+ # @param hierarchy_configuration [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration] Optional configuration for credit hierarchy access control
1833
+ #
1634
1834
  # @param ledger [Array<MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Ledger::CreditSegmentStartLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Ledger::CreditExpirationLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Ledger::CreditCanceledLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Ledger::CreditCreditedLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Ledger::CreditManualLedgerEntry>] A list of ordered events that impact the balance of a credit. For example, an in
1635
1835
  #
1636
1836
  # @param name [String]
@@ -1640,6 +1840,8 @@ module MetronomeSDK
1640
1840
  # @param priority [Float] If multiple credits or commits are applicable, the one with the lower priority w
1641
1841
  #
1642
1842
  # @param salesforce_opportunity_id [String] This field's availability is dependent on your client's configuration.
1843
+ #
1844
+ # @param specifiers [Array<MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
1643
1845
 
1644
1846
  # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit#product
1645
1847
  class Product < MetronomeSDK::Internal::Type::BaseModel
@@ -1679,6 +1881,103 @@ module MetronomeSDK
1679
1881
  # @param id [String]
1680
1882
  end
1681
1883
 
1884
+ # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit#hierarchy_configuration
1885
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
1886
+ # @!attribute child_access
1887
+ #
1888
+ # @return [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
1889
+ required :child_access,
1890
+ union: -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess }
1891
+
1892
+ # @!method initialize(child_access:)
1893
+ # Optional configuration for credit hierarchy access control
1894
+ #
1895
+ # @param child_access [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
1896
+
1897
+ # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration#child_access
1898
+ module ChildAccess
1899
+ extend MetronomeSDK::Internal::Type::Union
1900
+
1901
+ variant -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll }
1902
+
1903
+ variant -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone }
1904
+
1905
+ variant -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs }
1906
+
1907
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
1908
+ # @!attribute type
1909
+ #
1910
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
1911
+ required :type,
1912
+ enum: -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type }
1913
+
1914
+ # @!method initialize(type:)
1915
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
1916
+
1917
+ # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
1918
+ module Type
1919
+ extend MetronomeSDK::Internal::Type::Enum
1920
+
1921
+ ALL = :ALL
1922
+
1923
+ # @!method self.values
1924
+ # @return [Array<Symbol>]
1925
+ end
1926
+ end
1927
+
1928
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
1929
+ # @!attribute type
1930
+ #
1931
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
1932
+ required :type,
1933
+ enum: -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type }
1934
+
1935
+ # @!method initialize(type:)
1936
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
1937
+
1938
+ # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
1939
+ module Type
1940
+ extend MetronomeSDK::Internal::Type::Enum
1941
+
1942
+ NONE = :NONE
1943
+
1944
+ # @!method self.values
1945
+ # @return [Array<Symbol>]
1946
+ end
1947
+ end
1948
+
1949
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
1950
+ # @!attribute contract_ids
1951
+ #
1952
+ # @return [Array<String>]
1953
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1954
+
1955
+ # @!attribute type
1956
+ #
1957
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
1958
+ required :type,
1959
+ enum: -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type }
1960
+
1961
+ # @!method initialize(contract_ids:, type:)
1962
+ # @param contract_ids [Array<String>]
1963
+ # @param type [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
1964
+
1965
+ # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
1966
+ module Type
1967
+ extend MetronomeSDK::Internal::Type::Enum
1968
+
1969
+ CONTRACT_IDS = :CONTRACT_IDS
1970
+
1971
+ # @!method self.values
1972
+ # @return [Array<Symbol>]
1973
+ end
1974
+ end
1975
+
1976
+ # @!method self.variants
1977
+ # @return [Array(MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
1978
+ end
1979
+ end
1980
+
1682
1981
  module Ledger
1683
1982
  extend MetronomeSDK::Internal::Type::Union
1684
1983
 
@@ -1948,19 +2247,44 @@ module MetronomeSDK
1948
2247
 
1949
2248
  # @!method self.variants
1950
2249
  # @return [Array(MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Ledger::CreditSegmentStartLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Ledger::CreditExpirationLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Ledger::CreditCanceledLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Ledger::CreditCreditedLedgerEntry, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Ledger::CreditManualLedgerEntry)]
2250
+ end
1951
2251
 
1952
- define_sorbet_constant!(:Variants) do
1953
- T.type_alias do
1954
- T.any(
1955
- MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Ledger::CreditSegmentStartLedgerEntry,
1956
- MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry,
1957
- MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Ledger::CreditExpirationLedgerEntry,
1958
- MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Ledger::CreditCanceledLedgerEntry,
1959
- MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Ledger::CreditCreditedLedgerEntry,
1960
- MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Ledger::CreditManualLedgerEntry
1961
- )
1962
- end
1963
- end
2252
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
2253
+ # @!attribute presentation_group_values
2254
+ #
2255
+ # @return [Hash{Symbol=>String}, nil]
2256
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2257
+
2258
+ # @!attribute pricing_group_values
2259
+ #
2260
+ # @return [Hash{Symbol=>String}, nil]
2261
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2262
+
2263
+ # @!attribute product_id
2264
+ # If provided, the specifier will only apply to the product with the specified ID.
2265
+ #
2266
+ # @return [String, nil]
2267
+ optional :product_id, String
2268
+
2269
+ # @!attribute product_tags
2270
+ # If provided, the specifier will only apply to products with all the specified
2271
+ # tags.
2272
+ #
2273
+ # @return [Array<String>, nil]
2274
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
2275
+
2276
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
2277
+ # Some parameter documentations has been truncated, see
2278
+ # {MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Credit::Specifier}
2279
+ # for more details.
2280
+ #
2281
+ # @param presentation_group_values [Hash{Symbol=>String}]
2282
+ #
2283
+ # @param pricing_group_values [Hash{Symbol=>String}]
2284
+ #
2285
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
2286
+ #
2287
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
1964
2288
  end
1965
2289
  end
1966
2290
 
@@ -2015,6 +2339,84 @@ module MetronomeSDK
2015
2339
  end
2016
2340
  end
2017
2341
 
2342
+ # Either a **parent** configuration with a list of children or a **child**
2343
+ # configuration with a single parent.
2344
+ #
2345
+ # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data#hierarchy_configuration
2346
+ module HierarchyConfiguration
2347
+ extend MetronomeSDK::Internal::Type::Union
2348
+
2349
+ variant -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::HierarchyConfiguration::ParentHierarchyConfiguration }
2350
+
2351
+ variant -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::HierarchyConfiguration::ChildHierarchyConfiguration }
2352
+
2353
+ class ParentHierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
2354
+ # @!attribute children
2355
+ # List of contracts that belong to this parent.
2356
+ #
2357
+ # @return [Array<MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::HierarchyConfiguration::ParentHierarchyConfiguration::Child>]
2358
+ required :children,
2359
+ -> do
2360
+ MetronomeSDK::Internal::Type::ArrayOf[
2361
+ MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::HierarchyConfiguration::ParentHierarchyConfiguration::Child
2362
+ ]
2363
+ end
2364
+
2365
+ # @!method initialize(children:)
2366
+ # @param children [Array<MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::HierarchyConfiguration::ParentHierarchyConfiguration::Child>] List of contracts that belong to this parent.
2367
+
2368
+ class Child < MetronomeSDK::Internal::Type::BaseModel
2369
+ # @!attribute contract_id
2370
+ #
2371
+ # @return [String]
2372
+ required :contract_id, String
2373
+
2374
+ # @!attribute customer_id
2375
+ #
2376
+ # @return [String]
2377
+ required :customer_id, String
2378
+
2379
+ # @!method initialize(contract_id:, customer_id:)
2380
+ # @param contract_id [String]
2381
+ # @param customer_id [String]
2382
+ end
2383
+ end
2384
+
2385
+ class ChildHierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
2386
+ # @!attribute parent
2387
+ # The single parent contract/customer for this child.
2388
+ #
2389
+ # @return [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::HierarchyConfiguration::ChildHierarchyConfiguration::Parent]
2390
+ required :parent,
2391
+ -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::HierarchyConfiguration::ChildHierarchyConfiguration::Parent }
2392
+
2393
+ # @!method initialize(parent:)
2394
+ # @param parent [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::HierarchyConfiguration::ChildHierarchyConfiguration::Parent] The single parent contract/customer for this child.
2395
+
2396
+ # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::HierarchyConfiguration::ChildHierarchyConfiguration#parent
2397
+ class Parent < MetronomeSDK::Internal::Type::BaseModel
2398
+ # @!attribute contract_id
2399
+ #
2400
+ # @return [String]
2401
+ required :contract_id, String
2402
+
2403
+ # @!attribute customer_id
2404
+ #
2405
+ # @return [String]
2406
+ required :customer_id, String
2407
+
2408
+ # @!method initialize(contract_id:, customer_id:)
2409
+ # The single parent contract/customer for this child.
2410
+ #
2411
+ # @param contract_id [String]
2412
+ # @param customer_id [String]
2413
+ end
2414
+ end
2415
+
2416
+ # @!method self.variants
2417
+ # @return [Array(MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::HierarchyConfiguration::ParentHierarchyConfiguration, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::HierarchyConfiguration::ChildHierarchyConfiguration)]
2418
+ end
2419
+
2018
2420
  # Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list
2019
2421
  # prices automatically. EXPLICIT prioritization requires specifying priorities for
2020
2422
  # each multiplier; the one with the lowest priority value will be prioritized
@@ -2066,7 +2468,14 @@ module MetronomeSDK
2066
2468
  # @return [Float]
2067
2469
  required :threshold_amount, Float
2068
2470
 
2069
- # @!method initialize(commit:, is_enabled:, payment_gate_config:, recharge_to_amount:, threshold_amount:)
2471
+ # @!attribute custom_credit_type_id
2472
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
2473
+ # commit amount will be in terms of this credit type instead of the fiat currency.
2474
+ #
2475
+ # @return [String, nil]
2476
+ optional :custom_credit_type_id, String
2477
+
2478
+ # @!method initialize(commit:, is_enabled:, payment_gate_config:, recharge_to_amount:, threshold_amount:, custom_credit_type_id: nil)
2070
2479
  # Some parameter documentations has been truncated, see
2071
2480
  # {MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration}
2072
2481
  # for more details.
@@ -2080,6 +2489,8 @@ module MetronomeSDK
2080
2489
  # @param recharge_to_amount [Float] Specify the amount the balance should be recharged to.
2081
2490
  #
2082
2491
  # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's balance
2492
+ #
2493
+ # @param custom_credit_type_id [String] If provided, the threshold, recharge-to amount, and the resulting threshold comm
2083
2494
 
2084
2495
  # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration#commit
2085
2496
  class Commit < MetronomeSDK::Internal::Type::BaseModel
@@ -2091,16 +2502,17 @@ module MetronomeSDK
2091
2502
  required :product_id, String
2092
2503
 
2093
2504
  # @!attribute applicable_product_ids
2094
- # Which products the threshold commit applies to. If both applicable_product_ids
2095
- # and applicable_product_tags are not provided, the commit applies to all
2096
- # products.
2505
+ # Which products the threshold commit applies to. If applicable_product_ids,
2506
+ # applicable_product_tags or specifiers are not provided, the commit applies to
2507
+ # all products.
2097
2508
  #
2098
2509
  # @return [Array<String>, nil]
2099
2510
  optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
2100
2511
 
2101
2512
  # @!attribute applicable_product_tags
2102
- # Which tags the threshold commit applies to. If both applicable_product_ids and
2103
- # applicable_product_tags are not provided, the commit applies to all products.
2513
+ # Which tags the threshold commit applies to. If applicable_product_ids,
2514
+ # applicable_product_tags or specifiers are not provided, the commit applies to
2515
+ # all products.
2104
2516
  #
2105
2517
  # @return [Array<String>, nil]
2106
2518
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
@@ -2117,20 +2529,74 @@ module MetronomeSDK
2117
2529
  # @return [String, nil]
2118
2530
  optional :name, String
2119
2531
 
2120
- # @!method initialize(product_id:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, name: nil)
2532
+ # @!attribute specifiers
2533
+ # List of filters that determine what kind of customer usage draws down a commit
2534
+ # or credit. A customer's usage needs to meet the condition of at least one of the
2535
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2536
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
2537
+ #
2538
+ # @return [Array<MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::Commit::Specifier>, nil]
2539
+ optional :specifiers,
2540
+ -> do
2541
+ MetronomeSDK::Internal::Type::ArrayOf[
2542
+ MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::Commit::Specifier
2543
+ ]
2544
+ end
2545
+
2546
+ # @!method initialize(product_id:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, name: nil, specifiers: nil)
2121
2547
  # Some parameter documentations has been truncated, see
2122
2548
  # {MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::Commit}
2123
2549
  # for more details.
2124
2550
  #
2125
2551
  # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
2126
2552
  #
2127
- # @param applicable_product_ids [Array<String>] Which products the threshold commit applies to. If both applicable_product_ids a
2553
+ # @param applicable_product_ids [Array<String>] Which products the threshold commit applies to. If applicable_product_ids, appli
2128
2554
  #
2129
- # @param applicable_product_tags [Array<String>] Which tags the threshold commit applies to. If both applicable_product_ids and a
2555
+ # @param applicable_product_tags [Array<String>] Which tags the threshold commit applies to. If applicable_product_ids, applicabl
2130
2556
  #
2131
2557
  # @param description [String]
2132
2558
  #
2133
2559
  # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
2560
+ #
2561
+ # @param specifiers [Array<MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::Commit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
2562
+
2563
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
2564
+ # @!attribute presentation_group_values
2565
+ #
2566
+ # @return [Hash{Symbol=>String}, nil]
2567
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2568
+
2569
+ # @!attribute pricing_group_values
2570
+ #
2571
+ # @return [Hash{Symbol=>String}, nil]
2572
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
2573
+
2574
+ # @!attribute product_id
2575
+ # If provided, the specifier will only apply to the product with the specified ID.
2576
+ #
2577
+ # @return [String, nil]
2578
+ optional :product_id, String
2579
+
2580
+ # @!attribute product_tags
2581
+ # If provided, the specifier will only apply to products with all the specified
2582
+ # tags.
2583
+ #
2584
+ # @return [Array<String>, nil]
2585
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
2586
+
2587
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
2588
+ # Some parameter documentations has been truncated, see
2589
+ # {MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::Commit::Specifier}
2590
+ # for more details.
2591
+ #
2592
+ # @param presentation_group_values [Hash{Symbol=>String}]
2593
+ #
2594
+ # @param pricing_group_values [Hash{Symbol=>String}]
2595
+ #
2596
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
2597
+ #
2598
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
2599
+ end
2134
2600
  end
2135
2601
 
2136
2602
  # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration#payment_gate_config
@@ -2145,8 +2611,15 @@ module MetronomeSDK
2145
2611
  required :payment_gate_type,
2146
2612
  enum: -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType }
2147
2613
 
2614
+ # @!attribute precalculated_tax_config
2615
+ # Only applicable if using PRECALCULATED as your tax type.
2616
+ #
2617
+ # @return [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig, nil]
2618
+ optional :precalculated_tax_config,
2619
+ -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig }
2620
+
2148
2621
  # @!attribute stripe_config
2149
- # Only applicable if using Stripe as your payment gateway through Metronome.
2622
+ # Only applicable if using STRIPE as your payment gateway type.
2150
2623
  #
2151
2624
  # @return [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
2152
2625
  optional :stripe_config,
@@ -2161,14 +2634,16 @@ module MetronomeSDK
2161
2634
  optional :tax_type,
2162
2635
  enum: -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType }
2163
2636
 
2164
- # @!method initialize(payment_gate_type:, stripe_config: nil, tax_type: nil)
2637
+ # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
2165
2638
  # Some parameter documentations has been truncated, see
2166
2639
  # {MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig}
2167
2640
  # for more details.
2168
2641
  #
2169
2642
  # @param payment_gate_type [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
2170
2643
  #
2171
- # @param stripe_config [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using Stripe as your payment gateway through Metronome.
2644
+ # @param precalculated_tax_config [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
2645
+ #
2646
+ # @param stripe_config [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gateway type.
2172
2647
  #
2173
2648
  # @param tax_type [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
2174
2649
 
@@ -2189,6 +2664,34 @@ module MetronomeSDK
2189
2664
  # @return [Array<Symbol>]
2190
2665
  end
2191
2666
 
2667
+ # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig#precalculated_tax_config
2668
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
2669
+ # @!attribute tax_amount
2670
+ # Amount of tax to be applied. This should be in the same currency and
2671
+ # denomination as the commit's invoice schedule
2672
+ #
2673
+ # @return [Float]
2674
+ required :tax_amount, Float
2675
+
2676
+ # @!attribute tax_name
2677
+ # Name of the tax to be applied. This may be used in an invoice line item
2678
+ # description.
2679
+ #
2680
+ # @return [String, nil]
2681
+ optional :tax_name, String
2682
+
2683
+ # @!method initialize(tax_amount:, tax_name: nil)
2684
+ # Some parameter documentations has been truncated, see
2685
+ # {MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig}
2686
+ # for more details.
2687
+ #
2688
+ # Only applicable if using PRECALCULATED as your tax type.
2689
+ #
2690
+ # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
2691
+ #
2692
+ # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
2693
+ end
2694
+
2192
2695
  # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig#stripe_config
2193
2696
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
2194
2697
  # @!attribute payment_type
@@ -2198,10 +2701,23 @@ module MetronomeSDK
2198
2701
  required :payment_type,
2199
2702
  enum: -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType }
2200
2703
 
2201
- # @!method initialize(payment_type:)
2202
- # Only applicable if using Stripe as your payment gateway through Metronome.
2704
+ # @!attribute invoice_metadata
2705
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
2706
+ # your payment type.
2707
+ #
2708
+ # @return [Hash{Symbol=>String}, nil]
2709
+ optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
2710
+
2711
+ # @!method initialize(payment_type:, invoice_metadata: nil)
2712
+ # Some parameter documentations has been truncated, see
2713
+ # {MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig}
2714
+ # for more details.
2715
+ #
2716
+ # Only applicable if using STRIPE as your payment gateway type.
2203
2717
  #
2204
2718
  # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
2719
+ #
2720
+ # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
2205
2721
 
2206
2722
  # If left blank, will default to INVOICE
2207
2723
  #
@@ -2227,6 +2743,8 @@ module MetronomeSDK
2227
2743
 
2228
2744
  NONE = :NONE
2229
2745
  STRIPE = :STRIPE
2746
+ ANROK = :ANROK
2747
+ PRECALCULATED = :PRECALCULATED
2230
2748
 
2231
2749
  # @!method self.values
2232
2750
  # @return [Array<Symbol>]
@@ -2331,6 +2849,7 @@ module MetronomeSDK
2331
2849
  # @!attribute proration
2332
2850
  # Determines whether the first and last commit will be prorated. If not provided,
2333
2851
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
2852
+ # subscription_config:
2334
2853
  #
2335
2854
  # @return [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCommit::Proration, nil]
2336
2855
  optional :proration,
@@ -2340,7 +2859,7 @@ module MetronomeSDK
2340
2859
  # The frequency at which the recurring commits will be created. If not provided: -
2341
2860
  # The commits will be created on the usage invoice frequency. If provided: - The
2342
2861
  # period defined in the duration will correspond to this frequency. - Commits will
2343
- # be created aligned with the recurring commit's start_date rather than the usage
2862
+ # be created aligned with the recurring commit's starting_at rather than the usage
2344
2863
  # invoice dates.
2345
2864
  #
2346
2865
  # @return [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCommit::RecurrenceFrequency, nil]
@@ -2355,7 +2874,16 @@ module MetronomeSDK
2355
2874
  # @return [Float, nil]
2356
2875
  optional :rollover_fraction, Float
2357
2876
 
2358
- # @!method initialize(id:, access_amount:, commit_duration:, priority:, product:, rate_type:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, contract: nil, description: nil, ending_before: nil, invoice_amount: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, recurrence_frequency: nil, rollover_fraction: nil)
2877
+ # @!attribute specifiers
2878
+ # List of filters that determine what kind of customer usage draws down a commit
2879
+ # or credit. A customer's usage needs to meet the condition of at least one of the
2880
+ # specifiers to contribute to a commit's or credit's drawdown.
2881
+ #
2882
+ # @return [Array<MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCommit::Specifier>, nil]
2883
+ optional :specifiers,
2884
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCommit::Specifier] }
2885
+
2886
+ # @!method initialize(id:, access_amount:, commit_duration:, priority:, product:, rate_type:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, contract: nil, description: nil, ending_before: nil, invoice_amount: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil)
2359
2887
  # Some parameter documentations has been truncated, see
2360
2888
  # {MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCommit} for
2361
2889
  # more details.
@@ -2395,6 +2923,8 @@ module MetronomeSDK
2395
2923
  # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCommit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
2396
2924
  #
2397
2925
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
2926
+ #
2927
+ # @param specifiers [Array<MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCommit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
2398
2928
 
2399
2929
  # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCommit#access_amount
2400
2930
  class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
@@ -2403,22 +2933,22 @@ module MetronomeSDK
2403
2933
  # @return [String]
2404
2934
  required :credit_type_id, String
2405
2935
 
2406
- # @!attribute quantity
2407
- #
2408
- # @return [Float]
2409
- required :quantity, Float
2410
-
2411
2936
  # @!attribute unit_price
2412
2937
  #
2413
2938
  # @return [Float]
2414
2939
  required :unit_price, Float
2415
2940
 
2416
- # @!method initialize(credit_type_id:, quantity:, unit_price:)
2941
+ # @!attribute quantity
2942
+ #
2943
+ # @return [Float, nil]
2944
+ optional :quantity, Float
2945
+
2946
+ # @!method initialize(credit_type_id:, unit_price:, quantity: nil)
2417
2947
  # The amount of commit to grant.
2418
2948
  #
2419
2949
  # @param credit_type_id [String]
2420
- # @param quantity [Float]
2421
2950
  # @param unit_price [Float]
2951
+ # @param quantity [Float]
2422
2952
  end
2423
2953
 
2424
2954
  # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCommit#commit_duration
@@ -2519,6 +3049,7 @@ module MetronomeSDK
2519
3049
 
2520
3050
  # Determines whether the first and last commit will be prorated. If not provided,
2521
3051
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
3052
+ # subscription_config:
2522
3053
  #
2523
3054
  # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCommit#proration
2524
3055
  module Proration
@@ -2536,7 +3067,7 @@ module MetronomeSDK
2536
3067
  # The frequency at which the recurring commits will be created. If not provided: -
2537
3068
  # The commits will be created on the usage invoice frequency. If provided: - The
2538
3069
  # period defined in the duration will correspond to this frequency. - Commits will
2539
- # be created aligned with the recurring commit's start_date rather than the usage
3070
+ # be created aligned with the recurring commit's starting_at rather than the usage
2540
3071
  # invoice dates.
2541
3072
  #
2542
3073
  # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCommit#recurrence_frequency
@@ -2551,6 +3082,44 @@ module MetronomeSDK
2551
3082
  # @!method self.values
2552
3083
  # @return [Array<Symbol>]
2553
3084
  end
3085
+
3086
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
3087
+ # @!attribute presentation_group_values
3088
+ #
3089
+ # @return [Hash{Symbol=>String}, nil]
3090
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
3091
+
3092
+ # @!attribute pricing_group_values
3093
+ #
3094
+ # @return [Hash{Symbol=>String}, nil]
3095
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
3096
+
3097
+ # @!attribute product_id
3098
+ # If provided, the specifier will only apply to the product with the specified ID.
3099
+ #
3100
+ # @return [String, nil]
3101
+ optional :product_id, String
3102
+
3103
+ # @!attribute product_tags
3104
+ # If provided, the specifier will only apply to products with all the specified
3105
+ # tags.
3106
+ #
3107
+ # @return [Array<String>, nil]
3108
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
3109
+
3110
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
3111
+ # Some parameter documentations has been truncated, see
3112
+ # {MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCommit::Specifier}
3113
+ # for more details.
3114
+ #
3115
+ # @param presentation_group_values [Hash{Symbol=>String}]
3116
+ #
3117
+ # @param pricing_group_values [Hash{Symbol=>String}]
3118
+ #
3119
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
3120
+ #
3121
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
3122
+ end
2554
3123
  end
2555
3124
 
2556
3125
  class RecurringCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -2643,6 +3212,7 @@ module MetronomeSDK
2643
3212
  # @!attribute proration
2644
3213
  # Determines whether the first and last commit will be prorated. If not provided,
2645
3214
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
3215
+ # subscription_config:
2646
3216
  #
2647
3217
  # @return [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCredit::Proration, nil]
2648
3218
  optional :proration,
@@ -2652,7 +3222,7 @@ module MetronomeSDK
2652
3222
  # The frequency at which the recurring commits will be created. If not provided: -
2653
3223
  # The commits will be created on the usage invoice frequency. If provided: - The
2654
3224
  # period defined in the duration will correspond to this frequency. - Commits will
2655
- # be created aligned with the recurring commit's start_date rather than the usage
3225
+ # be created aligned with the recurring commit's starting_at rather than the usage
2656
3226
  # invoice dates.
2657
3227
  #
2658
3228
  # @return [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency, nil]
@@ -2667,7 +3237,16 @@ module MetronomeSDK
2667
3237
  # @return [Float, nil]
2668
3238
  optional :rollover_fraction, Float
2669
3239
 
2670
- # @!method initialize(id:, access_amount:, commit_duration:, priority:, product:, rate_type:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, contract: nil, description: nil, ending_before: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, recurrence_frequency: nil, rollover_fraction: nil)
3240
+ # @!attribute specifiers
3241
+ # List of filters that determine what kind of customer usage draws down a commit
3242
+ # or credit. A customer's usage needs to meet the condition of at least one of the
3243
+ # specifiers to contribute to a commit's or credit's drawdown.
3244
+ #
3245
+ # @return [Array<MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCredit::Specifier>, nil]
3246
+ optional :specifiers,
3247
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCredit::Specifier] }
3248
+
3249
+ # @!method initialize(id:, access_amount:, commit_duration:, priority:, product:, rate_type:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, contract: nil, description: nil, ending_before: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil)
2671
3250
  # Some parameter documentations has been truncated, see
2672
3251
  # {MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCredit} for
2673
3252
  # more details.
@@ -2705,6 +3284,8 @@ module MetronomeSDK
2705
3284
  # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
2706
3285
  #
2707
3286
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
3287
+ #
3288
+ # @param specifiers [Array<MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCredit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
2708
3289
 
2709
3290
  # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCredit#access_amount
2710
3291
  class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
@@ -2713,22 +3294,22 @@ module MetronomeSDK
2713
3294
  # @return [String]
2714
3295
  required :credit_type_id, String
2715
3296
 
2716
- # @!attribute quantity
2717
- #
2718
- # @return [Float]
2719
- required :quantity, Float
2720
-
2721
3297
  # @!attribute unit_price
2722
3298
  #
2723
3299
  # @return [Float]
2724
3300
  required :unit_price, Float
2725
3301
 
2726
- # @!method initialize(credit_type_id:, quantity:, unit_price:)
3302
+ # @!attribute quantity
3303
+ #
3304
+ # @return [Float, nil]
3305
+ optional :quantity, Float
3306
+
3307
+ # @!method initialize(credit_type_id:, unit_price:, quantity: nil)
2727
3308
  # The amount of commit to grant.
2728
3309
  #
2729
3310
  # @param credit_type_id [String]
2730
- # @param quantity [Float]
2731
3311
  # @param unit_price [Float]
3312
+ # @param quantity [Float]
2732
3313
  end
2733
3314
 
2734
3315
  # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCredit#commit_duration
@@ -2804,6 +3385,7 @@ module MetronomeSDK
2804
3385
 
2805
3386
  # Determines whether the first and last commit will be prorated. If not provided,
2806
3387
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
3388
+ # subscription_config:
2807
3389
  #
2808
3390
  # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCredit#proration
2809
3391
  module Proration
@@ -2821,7 +3403,7 @@ module MetronomeSDK
2821
3403
  # The frequency at which the recurring commits will be created. If not provided: -
2822
3404
  # The commits will be created on the usage invoice frequency. If provided: - The
2823
3405
  # period defined in the duration will correspond to this frequency. - Commits will
2824
- # be created aligned with the recurring commit's start_date rather than the usage
3406
+ # be created aligned with the recurring commit's starting_at rather than the usage
2825
3407
  # invoice dates.
2826
3408
  #
2827
3409
  # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCredit#recurrence_frequency
@@ -2836,6 +3418,44 @@ module MetronomeSDK
2836
3418
  # @!method self.values
2837
3419
  # @return [Array<Symbol>]
2838
3420
  end
3421
+
3422
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
3423
+ # @!attribute presentation_group_values
3424
+ #
3425
+ # @return [Hash{Symbol=>String}, nil]
3426
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
3427
+
3428
+ # @!attribute pricing_group_values
3429
+ #
3430
+ # @return [Hash{Symbol=>String}, nil]
3431
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
3432
+
3433
+ # @!attribute product_id
3434
+ # If provided, the specifier will only apply to the product with the specified ID.
3435
+ #
3436
+ # @return [String, nil]
3437
+ optional :product_id, String
3438
+
3439
+ # @!attribute product_tags
3440
+ # If provided, the specifier will only apply to products with all the specified
3441
+ # tags.
3442
+ #
3443
+ # @return [Array<String>, nil]
3444
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
3445
+
3446
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
3447
+ # Some parameter documentations has been truncated, see
3448
+ # {MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::RecurringCredit::Specifier}
3449
+ # for more details.
3450
+ #
3451
+ # @param presentation_group_values [Hash{Symbol=>String}]
3452
+ #
3453
+ # @param pricing_group_values [Hash{Symbol=>String}]
3454
+ #
3455
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
3456
+ #
3457
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
3458
+ end
2839
3459
  end
2840
3460
 
2841
3461
  class ResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel
@@ -3068,8 +3688,15 @@ module MetronomeSDK
3068
3688
  required :payment_gate_type,
3069
3689
  enum: -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType }
3070
3690
 
3691
+ # @!attribute precalculated_tax_config
3692
+ # Only applicable if using PRECALCULATED as your tax type.
3693
+ #
3694
+ # @return [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig, nil]
3695
+ optional :precalculated_tax_config,
3696
+ -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig }
3697
+
3071
3698
  # @!attribute stripe_config
3072
- # Only applicable if using Stripe as your payment gateway through Metronome.
3699
+ # Only applicable if using STRIPE as your payment gateway type.
3073
3700
  #
3074
3701
  # @return [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig, nil]
3075
3702
  optional :stripe_config,
@@ -3084,14 +3711,16 @@ module MetronomeSDK
3084
3711
  optional :tax_type,
3085
3712
  enum: -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::TaxType }
3086
3713
 
3087
- # @!method initialize(payment_gate_type:, stripe_config: nil, tax_type: nil)
3714
+ # @!method initialize(payment_gate_type:, precalculated_tax_config: nil, stripe_config: nil, tax_type: nil)
3088
3715
  # Some parameter documentations has been truncated, see
3089
3716
  # {MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::SpendThresholdConfiguration::PaymentGateConfig}
3090
3717
  # for more details.
3091
3718
  #
3092
3719
  # @param payment_gate_type [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
3093
3720
  #
3094
- # @param stripe_config [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using Stripe as your payment gateway through Metronome.
3721
+ # @param precalculated_tax_config [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig] Only applicable if using PRECALCULATED as your tax type.
3722
+ #
3723
+ # @param stripe_config [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig] Only applicable if using STRIPE as your payment gateway type.
3095
3724
  #
3096
3725
  # @param tax_type [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
3097
3726
 
@@ -3112,6 +3741,34 @@ module MetronomeSDK
3112
3741
  # @return [Array<Symbol>]
3113
3742
  end
3114
3743
 
3744
+ # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::SpendThresholdConfiguration::PaymentGateConfig#precalculated_tax_config
3745
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
3746
+ # @!attribute tax_amount
3747
+ # Amount of tax to be applied. This should be in the same currency and
3748
+ # denomination as the commit's invoice schedule
3749
+ #
3750
+ # @return [Float]
3751
+ required :tax_amount, Float
3752
+
3753
+ # @!attribute tax_name
3754
+ # Name of the tax to be applied. This may be used in an invoice line item
3755
+ # description.
3756
+ #
3757
+ # @return [String, nil]
3758
+ optional :tax_name, String
3759
+
3760
+ # @!method initialize(tax_amount:, tax_name: nil)
3761
+ # Some parameter documentations has been truncated, see
3762
+ # {MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig}
3763
+ # for more details.
3764
+ #
3765
+ # Only applicable if using PRECALCULATED as your tax type.
3766
+ #
3767
+ # @param tax_amount [Float] Amount of tax to be applied. This should be in the same currency and denominatio
3768
+ #
3769
+ # @param tax_name [String] Name of the tax to be applied. This may be used in an invoice line item descript
3770
+ end
3771
+
3115
3772
  # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::SpendThresholdConfiguration::PaymentGateConfig#stripe_config
3116
3773
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
3117
3774
  # @!attribute payment_type
@@ -3121,10 +3778,23 @@ module MetronomeSDK
3121
3778
  required :payment_type,
3122
3779
  enum: -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType }
3123
3780
 
3124
- # @!method initialize(payment_type:)
3125
- # Only applicable if using Stripe as your payment gateway through Metronome.
3781
+ # @!attribute invoice_metadata
3782
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
3783
+ # your payment type.
3784
+ #
3785
+ # @return [Hash{Symbol=>String}, nil]
3786
+ optional :invoice_metadata, MetronomeSDK::Internal::Type::HashOf[String]
3787
+
3788
+ # @!method initialize(payment_type:, invoice_metadata: nil)
3789
+ # Some parameter documentations has been truncated, see
3790
+ # {MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig}
3791
+ # for more details.
3792
+ #
3793
+ # Only applicable if using STRIPE as your payment gateway type.
3126
3794
  #
3127
3795
  # @param payment_type [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
3796
+ #
3797
+ # @param invoice_metadata [Hash{Symbol=>String}] Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
3128
3798
 
3129
3799
  # If left blank, will default to INVOICE
3130
3800
  #
@@ -3150,12 +3820,215 @@ module MetronomeSDK
3150
3820
 
3151
3821
  NONE = :NONE
3152
3822
  STRIPE = :STRIPE
3823
+ ANROK = :ANROK
3824
+ PRECALCULATED = :PRECALCULATED
3153
3825
 
3154
3826
  # @!method self.values
3155
3827
  # @return [Array<Symbol>]
3156
3828
  end
3157
3829
  end
3158
3830
  end
3831
+
3832
+ class Subscription < MetronomeSDK::Internal::Type::BaseModel
3833
+ # @!attribute collection_schedule
3834
+ #
3835
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::CollectionSchedule]
3836
+ required :collection_schedule,
3837
+ enum: -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::CollectionSchedule }
3838
+
3839
+ # @!attribute proration
3840
+ #
3841
+ # @return [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::Proration]
3842
+ required :proration,
3843
+ -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::Proration }
3844
+
3845
+ # @!attribute quantity_schedule
3846
+ # List of quantity schedule items for the subscription. Only includes the current
3847
+ # quantity and future quantity changes.
3848
+ #
3849
+ # @return [Array<MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::QuantitySchedule>]
3850
+ required :quantity_schedule,
3851
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::QuantitySchedule] }
3852
+
3853
+ # @!attribute starting_at
3854
+ #
3855
+ # @return [Time]
3856
+ required :starting_at, Time
3857
+
3858
+ # @!attribute subscription_rate
3859
+ #
3860
+ # @return [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::SubscriptionRate]
3861
+ required :subscription_rate,
3862
+ -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::SubscriptionRate }
3863
+
3864
+ # @!attribute id
3865
+ #
3866
+ # @return [String, nil]
3867
+ optional :id, String
3868
+
3869
+ # @!attribute custom_fields
3870
+ #
3871
+ # @return [Hash{Symbol=>String}, nil]
3872
+ optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
3873
+
3874
+ # @!attribute description
3875
+ #
3876
+ # @return [String, nil]
3877
+ optional :description, String
3878
+
3879
+ # @!attribute ending_before
3880
+ #
3881
+ # @return [Time, nil]
3882
+ optional :ending_before, Time
3883
+
3884
+ # @!attribute fiat_credit_type_id
3885
+ #
3886
+ # @return [String, nil]
3887
+ optional :fiat_credit_type_id, String
3888
+
3889
+ # @!attribute name
3890
+ #
3891
+ # @return [String, nil]
3892
+ optional :name, String
3893
+
3894
+ # @!method initialize(collection_schedule:, proration:, quantity_schedule:, starting_at:, subscription_rate:, id: nil, custom_fields: nil, description: nil, ending_before: nil, fiat_credit_type_id: nil, name: nil)
3895
+ # Some parameter documentations has been truncated, see
3896
+ # {MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription} for
3897
+ # more details.
3898
+ #
3899
+ # @param collection_schedule [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::CollectionSchedule]
3900
+ #
3901
+ # @param proration [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::Proration]
3902
+ #
3903
+ # @param quantity_schedule [Array<MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::QuantitySchedule>] List of quantity schedule items for the subscription. Only includes the current
3904
+ #
3905
+ # @param starting_at [Time]
3906
+ #
3907
+ # @param subscription_rate [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::SubscriptionRate]
3908
+ #
3909
+ # @param id [String]
3910
+ #
3911
+ # @param custom_fields [Hash{Symbol=>String}]
3912
+ #
3913
+ # @param description [String]
3914
+ #
3915
+ # @param ending_before [Time]
3916
+ #
3917
+ # @param fiat_credit_type_id [String]
3918
+ #
3919
+ # @param name [String]
3920
+
3921
+ # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription#collection_schedule
3922
+ module CollectionSchedule
3923
+ extend MetronomeSDK::Internal::Type::Enum
3924
+
3925
+ ADVANCE = :ADVANCE
3926
+ ARREARS = :ARREARS
3927
+
3928
+ # @!method self.values
3929
+ # @return [Array<Symbol>]
3930
+ end
3931
+
3932
+ # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription#proration
3933
+ class Proration < MetronomeSDK::Internal::Type::BaseModel
3934
+ # @!attribute invoice_behavior
3935
+ #
3936
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::Proration::InvoiceBehavior]
3937
+ required :invoice_behavior,
3938
+ enum: -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::Proration::InvoiceBehavior }
3939
+
3940
+ # @!attribute is_prorated
3941
+ #
3942
+ # @return [Boolean]
3943
+ required :is_prorated, MetronomeSDK::Internal::Type::Boolean
3944
+
3945
+ # @!method initialize(invoice_behavior:, is_prorated:)
3946
+ # @param invoice_behavior [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::Proration::InvoiceBehavior]
3947
+ # @param is_prorated [Boolean]
3948
+
3949
+ # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::Proration#invoice_behavior
3950
+ module InvoiceBehavior
3951
+ extend MetronomeSDK::Internal::Type::Enum
3952
+
3953
+ BILL_IMMEDIATELY = :BILL_IMMEDIATELY
3954
+ BILL_ON_NEXT_COLLECTION_DATE = :BILL_ON_NEXT_COLLECTION_DATE
3955
+
3956
+ # @!method self.values
3957
+ # @return [Array<Symbol>]
3958
+ end
3959
+ end
3960
+
3961
+ class QuantitySchedule < MetronomeSDK::Internal::Type::BaseModel
3962
+ # @!attribute quantity
3963
+ #
3964
+ # @return [Float]
3965
+ required :quantity, Float
3966
+
3967
+ # @!attribute starting_at
3968
+ #
3969
+ # @return [Time]
3970
+ required :starting_at, Time
3971
+
3972
+ # @!attribute ending_before
3973
+ #
3974
+ # @return [Time, nil]
3975
+ optional :ending_before, Time
3976
+
3977
+ # @!method initialize(quantity:, starting_at:, ending_before: nil)
3978
+ # @param quantity [Float]
3979
+ # @param starting_at [Time]
3980
+ # @param ending_before [Time]
3981
+ end
3982
+
3983
+ # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription#subscription_rate
3984
+ class SubscriptionRate < MetronomeSDK::Internal::Type::BaseModel
3985
+ # @!attribute billing_frequency
3986
+ #
3987
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::SubscriptionRate::BillingFrequency]
3988
+ required :billing_frequency,
3989
+ enum: -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::SubscriptionRate::BillingFrequency }
3990
+
3991
+ # @!attribute product
3992
+ #
3993
+ # @return [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::SubscriptionRate::Product]
3994
+ required :product,
3995
+ -> { MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::SubscriptionRate::Product }
3996
+
3997
+ # @!method initialize(billing_frequency:, product:)
3998
+ # @param billing_frequency [Symbol, MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::SubscriptionRate::BillingFrequency]
3999
+ # @param product [MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::SubscriptionRate::Product]
4000
+
4001
+ # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::SubscriptionRate#billing_frequency
4002
+ module BillingFrequency
4003
+ extend MetronomeSDK::Internal::Type::Enum
4004
+
4005
+ MONTHLY = :MONTHLY
4006
+ QUARTERLY = :QUARTERLY
4007
+ ANNUAL = :ANNUAL
4008
+ WEEKLY = :WEEKLY
4009
+
4010
+ # @!method self.values
4011
+ # @return [Array<Symbol>]
4012
+ end
4013
+
4014
+ # @see MetronomeSDK::Models::V2::ContractRetrieveResponse::Data::Subscription::SubscriptionRate#product
4015
+ class Product < MetronomeSDK::Internal::Type::BaseModel
4016
+ # @!attribute id
4017
+ #
4018
+ # @return [String]
4019
+ required :id, String
4020
+
4021
+ # @!attribute name
4022
+ #
4023
+ # @return [String]
4024
+ required :name, String
4025
+
4026
+ # @!method initialize(id:, name:)
4027
+ # @param id [String]
4028
+ # @param name [String]
4029
+ end
4030
+ end
4031
+ end
3159
4032
  end
3160
4033
  end
3161
4034
  end