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
@@ -185,6 +185,28 @@ module MetronomeSDK
185
185
  sig { params(ending_before: Time).void }
186
186
  attr_writer :ending_before
187
187
 
188
+ # Either a **parent** configuration with a list of children or a **child**
189
+ # configuration with a single parent.
190
+ sig do
191
+ returns(
192
+ T.nilable(
193
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::Variants
194
+ )
195
+ )
196
+ end
197
+ attr_reader :hierarchy_configuration
198
+
199
+ sig do
200
+ params(
201
+ hierarchy_configuration:
202
+ T.any(
203
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::ParentHierarchyConfiguration::OrHash,
204
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::ChildHierarchyConfiguration::OrHash
205
+ )
206
+ ).void
207
+ end
208
+ attr_writer :hierarchy_configuration
209
+
188
210
  # Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list
189
211
  # prices automatically. EXPLICIT prioritization requires specifying priorities for
190
212
  # each multiplier; the one with the lowest priority value will be prioritized
@@ -242,6 +264,13 @@ module MetronomeSDK
242
264
  end
243
265
  attr_writer :prepaid_balance_threshold_configuration
244
266
 
267
+ # Priority of the contract.
268
+ sig { returns(T.nilable(Float)) }
269
+ attr_reader :priority
270
+
271
+ sig { params(priority: Float).void }
272
+ attr_writer :priority
273
+
245
274
  # This field's availability is dependent on your client's configuration.
246
275
  sig { returns(T.nilable(T::Array[MetronomeSDK::ProService])) }
247
276
  attr_reader :professional_services
@@ -369,6 +398,28 @@ module MetronomeSDK
369
398
  end
370
399
  attr_writer :spend_threshold_configuration
371
400
 
401
+ # List of subscriptions on the contract.
402
+ sig do
403
+ returns(
404
+ T.nilable(
405
+ T::Array[
406
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription
407
+ ]
408
+ )
409
+ )
410
+ end
411
+ attr_reader :subscriptions
412
+
413
+ sig do
414
+ params(
415
+ subscriptions:
416
+ T::Array[
417
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::OrHash
418
+ ]
419
+ ).void
420
+ end
421
+ attr_writer :subscriptions
422
+
372
423
  sig { returns(T.nilable(Float)) }
373
424
  attr_reader :total_contract_value
374
425
 
@@ -421,6 +472,11 @@ module MetronomeSDK
421
472
  MetronomeSDK::Models::V2::ContractListResponse::Data::CustomerBillingProviderConfiguration::OrHash,
422
473
  discounts: T::Array[MetronomeSDK::Discount::OrHash],
423
474
  ending_before: Time,
475
+ hierarchy_configuration:
476
+ T.any(
477
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::ParentHierarchyConfiguration::OrHash,
478
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::ChildHierarchyConfiguration::OrHash
479
+ ),
424
480
  multiplier_override_prioritization:
425
481
  MetronomeSDK::Models::V2::ContractListResponse::Data::MultiplierOverridePrioritization::OrSymbol,
426
482
  name: String,
@@ -428,6 +484,7 @@ module MetronomeSDK
428
484
  netsuite_sales_order_id: String,
429
485
  prepaid_balance_threshold_configuration:
430
486
  MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::OrHash,
487
+ priority: Float,
431
488
  professional_services: T::Array[MetronomeSDK::ProService::OrHash],
432
489
  rate_card_id: String,
433
490
  recurring_commits:
@@ -447,6 +504,10 @@ module MetronomeSDK
447
504
  MetronomeSDK::Models::V2::ContractListResponse::Data::ScheduledChargesOnUsageInvoices::OrSymbol,
448
505
  spend_threshold_configuration:
449
506
  MetronomeSDK::Models::V2::ContractListResponse::Data::SpendThresholdConfiguration::OrHash,
507
+ subscriptions:
508
+ T::Array[
509
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::OrHash
510
+ ],
450
511
  total_contract_value: Float,
451
512
  uniqueness_key: String
452
513
  ).returns(T.attached_class)
@@ -471,6 +532,9 @@ module MetronomeSDK
471
532
  # This field's availability is dependent on your client's configuration.
472
533
  discounts: nil,
473
534
  ending_before: nil,
535
+ # Either a **parent** configuration with a list of children or a **child**
536
+ # configuration with a single parent.
537
+ hierarchy_configuration: nil,
474
538
  # Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list
475
539
  # prices automatically. EXPLICIT prioritization requires specifying priorities for
476
540
  # each multiplier; the one with the lowest priority value will be prioritized
@@ -481,6 +545,8 @@ module MetronomeSDK
481
545
  # This field's availability is dependent on your client's configuration.
482
546
  netsuite_sales_order_id: nil,
483
547
  prepaid_balance_threshold_configuration: nil,
548
+ # Priority of the contract.
549
+ priority: nil,
484
550
  # This field's availability is dependent on your client's configuration.
485
551
  professional_services: nil,
486
552
  rate_card_id: nil,
@@ -497,6 +563,8 @@ module MetronomeSDK
497
563
  # on a separate invoice from usage charges.
498
564
  scheduled_charges_on_usage_invoices: nil,
499
565
  spend_threshold_configuration: nil,
566
+ # List of subscriptions on the contract.
567
+ subscriptions: nil,
500
568
  total_contract_value: nil,
501
569
  # Prevents the creation of duplicates. If a request to create a record is made
502
570
  # with a previously used uniqueness key, a new record will not be created and the
@@ -542,6 +610,8 @@ module MetronomeSDK
542
610
  MetronomeSDK::Models::V2::ContractListResponse::Data::CustomerBillingProviderConfiguration,
543
611
  discounts: T::Array[MetronomeSDK::Discount],
544
612
  ending_before: Time,
613
+ hierarchy_configuration:
614
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::Variants,
545
615
  multiplier_override_prioritization:
546
616
  MetronomeSDK::Models::V2::ContractListResponse::Data::MultiplierOverridePrioritization::TaggedSymbol,
547
617
  name: String,
@@ -549,6 +619,7 @@ module MetronomeSDK
549
619
  netsuite_sales_order_id: String,
550
620
  prepaid_balance_threshold_configuration:
551
621
  MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration,
622
+ priority: Float,
552
623
  professional_services: T::Array[MetronomeSDK::ProService],
553
624
  rate_card_id: String,
554
625
  recurring_commits:
@@ -568,6 +639,10 @@ module MetronomeSDK
568
639
  MetronomeSDK::Models::V2::ContractListResponse::Data::ScheduledChargesOnUsageInvoices::TaggedSymbol,
569
640
  spend_threshold_configuration:
570
641
  MetronomeSDK::Models::V2::ContractListResponse::Data::SpendThresholdConfiguration,
642
+ subscriptions:
643
+ T::Array[
644
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription
645
+ ],
571
646
  total_contract_value: Float,
572
647
  uniqueness_key: String
573
648
  }
@@ -689,6 +764,24 @@ module MetronomeSDK
689
764
  sig { params(description: String).void }
690
765
  attr_writer :description
691
766
 
767
+ # Optional configuration for commit hierarchy access control
768
+ sig do
769
+ returns(
770
+ T.nilable(
771
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration
772
+ )
773
+ )
774
+ end
775
+ attr_reader :hierarchy_configuration
776
+
777
+ sig do
778
+ params(
779
+ hierarchy_configuration:
780
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::OrHash
781
+ ).void
782
+ end
783
+ attr_writer :hierarchy_configuration
784
+
692
785
  # The contract that this commit will be billed on.
693
786
  sig do
694
787
  returns(
@@ -724,21 +817,7 @@ module MetronomeSDK
724
817
  returns(
725
818
  T.nilable(
726
819
  T::Array[
727
- T.any(
728
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitSegmentStartLedgerEntry,
729
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry,
730
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitRolloverLedgerEntry,
731
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitExpirationLedgerEntry,
732
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCanceledLedgerEntry,
733
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCreditedLedgerEntry,
734
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitInitialBalanceLedgerEntry,
735
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry,
736
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitRolloverLedgerEntry,
737
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitTrueupLedgerEntry,
738
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitManualLedgerEntry,
739
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitManualLedgerEntry,
740
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitExpirationLedgerEntry
741
- )
820
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::Variants
742
821
  ]
743
822
  )
744
823
  )
@@ -837,6 +916,30 @@ module MetronomeSDK
837
916
  sig { params(salesforce_opportunity_id: String).void }
838
917
  attr_writer :salesforce_opportunity_id
839
918
 
919
+ # List of filters that determine what kind of customer usage draws down a commit
920
+ # or credit. A customer's usage needs to meet the condition of at least one of the
921
+ # specifiers to contribute to a commit's or credit's drawdown.
922
+ sig do
923
+ returns(
924
+ T.nilable(
925
+ T::Array[
926
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Specifier
927
+ ]
928
+ )
929
+ )
930
+ end
931
+ attr_reader :specifiers
932
+
933
+ sig do
934
+ params(
935
+ specifiers:
936
+ T::Array[
937
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Specifier::OrHash
938
+ ]
939
+ ).void
940
+ end
941
+ attr_writer :specifiers
942
+
840
943
  sig do
841
944
  params(
842
945
  id: String,
@@ -854,6 +957,8 @@ module MetronomeSDK
854
957
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Contract::OrHash,
855
958
  custom_fields: T::Hash[Symbol, String],
856
959
  description: String,
960
+ hierarchy_configuration:
961
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::OrHash,
857
962
  invoice_contract:
858
963
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::InvoiceContract::OrHash,
859
964
  invoice_schedule: MetronomeSDK::SchedulePointInTime::OrHash,
@@ -883,7 +988,11 @@ module MetronomeSDK
883
988
  rolled_over_from:
884
989
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::RolledOverFrom::OrHash,
885
990
  rollover_fraction: Float,
886
- salesforce_opportunity_id: String
991
+ salesforce_opportunity_id: String,
992
+ specifiers:
993
+ T::Array[
994
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Specifier::OrHash
995
+ ]
887
996
  ).returns(T.attached_class)
888
997
  end
889
998
  def self.new(
@@ -909,6 +1018,8 @@ module MetronomeSDK
909
1018
  contract: nil,
910
1019
  custom_fields: nil,
911
1020
  description: nil,
1021
+ # Optional configuration for commit hierarchy access control
1022
+ hierarchy_configuration: nil,
912
1023
  # The contract that this commit will be billed on.
913
1024
  invoice_contract: nil,
914
1025
  # The schedule that the customer will be invoiced for this commit.
@@ -926,7 +1037,11 @@ module MetronomeSDK
926
1037
  rolled_over_from: nil,
927
1038
  rollover_fraction: nil,
928
1039
  # This field's availability is dependent on your client's configuration.
929
- salesforce_opportunity_id: nil
1040
+ salesforce_opportunity_id: nil,
1041
+ # List of filters that determine what kind of customer usage draws down a commit
1042
+ # or credit. A customer's usage needs to meet the condition of at least one of the
1043
+ # specifiers to contribute to a commit's or credit's drawdown.
1044
+ specifiers: nil
930
1045
  )
931
1046
  end
932
1047
 
@@ -948,26 +1063,14 @@ module MetronomeSDK
948
1063
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Contract,
949
1064
  custom_fields: T::Hash[Symbol, String],
950
1065
  description: String,
1066
+ hierarchy_configuration:
1067
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration,
951
1068
  invoice_contract:
952
1069
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::InvoiceContract,
953
1070
  invoice_schedule: MetronomeSDK::SchedulePointInTime,
954
1071
  ledger:
955
1072
  T::Array[
956
- T.any(
957
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitSegmentStartLedgerEntry,
958
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry,
959
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitRolloverLedgerEntry,
960
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitExpirationLedgerEntry,
961
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCanceledLedgerEntry,
962
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCreditedLedgerEntry,
963
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitInitialBalanceLedgerEntry,
964
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry,
965
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitRolloverLedgerEntry,
966
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitTrueupLedgerEntry,
967
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitManualLedgerEntry,
968
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitManualLedgerEntry,
969
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitExpirationLedgerEntry
970
- )
1073
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::Variants
971
1074
  ],
972
1075
  name: String,
973
1076
  netsuite_sales_order_id: String,
@@ -977,7 +1080,11 @@ module MetronomeSDK
977
1080
  rolled_over_from:
978
1081
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::RolledOverFrom,
979
1082
  rollover_fraction: Float,
980
- salesforce_opportunity_id: String
1083
+ salesforce_opportunity_id: String,
1084
+ specifiers:
1085
+ T::Array[
1086
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Specifier
1087
+ ]
981
1088
  }
982
1089
  )
983
1090
  end
@@ -1063,6 +1170,274 @@ module MetronomeSDK
1063
1170
  end
1064
1171
  end
1065
1172
 
1173
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
1174
+ OrHash =
1175
+ T.type_alias do
1176
+ T.any(
1177
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration,
1178
+ MetronomeSDK::Internal::AnyHash
1179
+ )
1180
+ end
1181
+
1182
+ sig do
1183
+ returns(
1184
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::Variants
1185
+ )
1186
+ end
1187
+ attr_accessor :child_access
1188
+
1189
+ # Optional configuration for commit hierarchy access control
1190
+ sig do
1191
+ params(
1192
+ child_access:
1193
+ T.any(
1194
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
1195
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
1196
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
1197
+ )
1198
+ ).returns(T.attached_class)
1199
+ end
1200
+ def self.new(child_access:)
1201
+ end
1202
+
1203
+ sig do
1204
+ override.returns(
1205
+ {
1206
+ child_access:
1207
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::Variants
1208
+ }
1209
+ )
1210
+ end
1211
+ def to_hash
1212
+ end
1213
+
1214
+ module ChildAccess
1215
+ extend MetronomeSDK::Internal::Type::Union
1216
+
1217
+ Variants =
1218
+ T.type_alias do
1219
+ T.any(
1220
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
1221
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
1222
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
1223
+ )
1224
+ end
1225
+
1226
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
1227
+ OrHash =
1228
+ T.type_alias do
1229
+ T.any(
1230
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
1231
+ MetronomeSDK::Internal::AnyHash
1232
+ )
1233
+ end
1234
+
1235
+ sig do
1236
+ returns(
1237
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
1238
+ )
1239
+ end
1240
+ attr_accessor :type
1241
+
1242
+ sig do
1243
+ params(
1244
+ type:
1245
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
1246
+ ).returns(T.attached_class)
1247
+ end
1248
+ def self.new(type:)
1249
+ end
1250
+
1251
+ sig do
1252
+ override.returns(
1253
+ {
1254
+ type:
1255
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
1256
+ }
1257
+ )
1258
+ end
1259
+ def to_hash
1260
+ end
1261
+
1262
+ module Type
1263
+ extend MetronomeSDK::Internal::Type::Enum
1264
+
1265
+ TaggedSymbol =
1266
+ T.type_alias do
1267
+ T.all(
1268
+ Symbol,
1269
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
1270
+ )
1271
+ end
1272
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1273
+
1274
+ ALL =
1275
+ T.let(
1276
+ :ALL,
1277
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
1278
+ )
1279
+
1280
+ sig do
1281
+ override.returns(
1282
+ T::Array[
1283
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
1284
+ ]
1285
+ )
1286
+ end
1287
+ def self.values
1288
+ end
1289
+ end
1290
+ end
1291
+
1292
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
1293
+ OrHash =
1294
+ T.type_alias do
1295
+ T.any(
1296
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
1297
+ MetronomeSDK::Internal::AnyHash
1298
+ )
1299
+ end
1300
+
1301
+ sig do
1302
+ returns(
1303
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
1304
+ )
1305
+ end
1306
+ attr_accessor :type
1307
+
1308
+ sig do
1309
+ params(
1310
+ type:
1311
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
1312
+ ).returns(T.attached_class)
1313
+ end
1314
+ def self.new(type:)
1315
+ end
1316
+
1317
+ sig do
1318
+ override.returns(
1319
+ {
1320
+ type:
1321
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
1322
+ }
1323
+ )
1324
+ end
1325
+ def to_hash
1326
+ end
1327
+
1328
+ module Type
1329
+ extend MetronomeSDK::Internal::Type::Enum
1330
+
1331
+ TaggedSymbol =
1332
+ T.type_alias do
1333
+ T.all(
1334
+ Symbol,
1335
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
1336
+ )
1337
+ end
1338
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1339
+
1340
+ NONE =
1341
+ T.let(
1342
+ :NONE,
1343
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
1344
+ )
1345
+
1346
+ sig do
1347
+ override.returns(
1348
+ T::Array[
1349
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
1350
+ ]
1351
+ )
1352
+ end
1353
+ def self.values
1354
+ end
1355
+ end
1356
+ end
1357
+
1358
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
1359
+ OrHash =
1360
+ T.type_alias do
1361
+ T.any(
1362
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
1363
+ MetronomeSDK::Internal::AnyHash
1364
+ )
1365
+ end
1366
+
1367
+ sig { returns(T::Array[String]) }
1368
+ attr_accessor :contract_ids
1369
+
1370
+ sig do
1371
+ returns(
1372
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
1373
+ )
1374
+ end
1375
+ attr_accessor :type
1376
+
1377
+ sig do
1378
+ params(
1379
+ contract_ids: T::Array[String],
1380
+ type:
1381
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
1382
+ ).returns(T.attached_class)
1383
+ end
1384
+ def self.new(contract_ids:, type:)
1385
+ end
1386
+
1387
+ sig do
1388
+ override.returns(
1389
+ {
1390
+ contract_ids: T::Array[String],
1391
+ type:
1392
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
1393
+ }
1394
+ )
1395
+ end
1396
+ def to_hash
1397
+ end
1398
+
1399
+ module Type
1400
+ extend MetronomeSDK::Internal::Type::Enum
1401
+
1402
+ TaggedSymbol =
1403
+ T.type_alias do
1404
+ T.all(
1405
+ Symbol,
1406
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
1407
+ )
1408
+ end
1409
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1410
+
1411
+ CONTRACT_IDS =
1412
+ T.let(
1413
+ :CONTRACT_IDS,
1414
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
1415
+ )
1416
+
1417
+ sig do
1418
+ override.returns(
1419
+ T::Array[
1420
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
1421
+ ]
1422
+ )
1423
+ end
1424
+ def self.values
1425
+ end
1426
+ end
1427
+ end
1428
+
1429
+ sig do
1430
+ override.returns(
1431
+ T::Array[
1432
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::HierarchyConfiguration::ChildAccess::Variants
1433
+ ]
1434
+ )
1435
+ end
1436
+ def self.variants
1437
+ end
1438
+ end
1439
+ end
1440
+
1066
1441
  class InvoiceContract < MetronomeSDK::Internal::Type::BaseModel
1067
1442
  OrHash =
1068
1443
  T.type_alias do
@@ -2290,33 +2665,104 @@ module MetronomeSDK
2290
2665
  def to_hash
2291
2666
  end
2292
2667
  end
2293
- end
2294
2668
 
2295
- class Override < MetronomeSDK::Internal::Type::BaseModel
2296
- OrHash =
2297
- T.type_alias do
2298
- T.any(
2299
- MetronomeSDK::Models::V2::ContractListResponse::Data::Override,
2300
- MetronomeSDK::Internal::AnyHash
2301
- )
2302
- end
2669
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
2670
+ OrHash =
2671
+ T.type_alias do
2672
+ T.any(
2673
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Specifier,
2674
+ MetronomeSDK::Internal::AnyHash
2675
+ )
2676
+ end
2303
2677
 
2304
- sig { returns(String) }
2305
- attr_accessor :id
2678
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
2679
+ attr_reader :presentation_group_values
2306
2680
 
2307
- sig { returns(Time) }
2308
- attr_accessor :starting_at
2681
+ sig do
2682
+ params(presentation_group_values: T::Hash[Symbol, String]).void
2683
+ end
2684
+ attr_writer :presentation_group_values
2309
2685
 
2310
- sig { returns(T.nilable(T::Array[String])) }
2311
- attr_reader :applicable_product_tags
2686
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
2687
+ attr_reader :pricing_group_values
2312
2688
 
2313
- sig { params(applicable_product_tags: T::Array[String]).void }
2314
- attr_writer :applicable_product_tags
2689
+ sig { params(pricing_group_values: T::Hash[Symbol, String]).void }
2690
+ attr_writer :pricing_group_values
2315
2691
 
2316
- sig { returns(T.nilable(Time)) }
2317
- attr_reader :ending_before
2692
+ # If provided, the specifier will only apply to the product with the specified ID.
2693
+ sig { returns(T.nilable(String)) }
2694
+ attr_reader :product_id
2318
2695
 
2319
- sig { params(ending_before: Time).void }
2696
+ sig { params(product_id: String).void }
2697
+ attr_writer :product_id
2698
+
2699
+ # If provided, the specifier will only apply to products with all the specified
2700
+ # tags.
2701
+ sig { returns(T.nilable(T::Array[String])) }
2702
+ attr_reader :product_tags
2703
+
2704
+ sig { params(product_tags: T::Array[String]).void }
2705
+ attr_writer :product_tags
2706
+
2707
+ sig do
2708
+ params(
2709
+ presentation_group_values: T::Hash[Symbol, String],
2710
+ pricing_group_values: T::Hash[Symbol, String],
2711
+ product_id: String,
2712
+ product_tags: T::Array[String]
2713
+ ).returns(T.attached_class)
2714
+ end
2715
+ def self.new(
2716
+ presentation_group_values: nil,
2717
+ pricing_group_values: nil,
2718
+ # If provided, the specifier will only apply to the product with the specified ID.
2719
+ product_id: nil,
2720
+ # If provided, the specifier will only apply to products with all the specified
2721
+ # tags.
2722
+ product_tags: nil
2723
+ )
2724
+ end
2725
+
2726
+ sig do
2727
+ override.returns(
2728
+ {
2729
+ presentation_group_values: T::Hash[Symbol, String],
2730
+ pricing_group_values: T::Hash[Symbol, String],
2731
+ product_id: String,
2732
+ product_tags: T::Array[String]
2733
+ }
2734
+ )
2735
+ end
2736
+ def to_hash
2737
+ end
2738
+ end
2739
+ end
2740
+
2741
+ class Override < MetronomeSDK::Internal::Type::BaseModel
2742
+ OrHash =
2743
+ T.type_alias do
2744
+ T.any(
2745
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Override,
2746
+ MetronomeSDK::Internal::AnyHash
2747
+ )
2748
+ end
2749
+
2750
+ sig { returns(String) }
2751
+ attr_accessor :id
2752
+
2753
+ sig { returns(Time) }
2754
+ attr_accessor :starting_at
2755
+
2756
+ sig { returns(T.nilable(T::Array[String])) }
2757
+ attr_reader :applicable_product_tags
2758
+
2759
+ sig { params(applicable_product_tags: T::Array[String]).void }
2760
+ attr_writer :applicable_product_tags
2761
+
2762
+ sig { returns(T.nilable(Time)) }
2763
+ attr_reader :ending_before
2764
+
2765
+ sig { params(ending_before: Time).void }
2320
2766
  attr_writer :ending_before
2321
2767
 
2322
2768
  sig { returns(T.nilable(T::Boolean)) }
@@ -2541,6 +2987,23 @@ module MetronomeSDK
2541
2987
  )
2542
2988
  end
2543
2989
 
2990
+ sig do
2991
+ returns(
2992
+ T.nilable(
2993
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Override::OverrideSpecifier::BillingFrequency::TaggedSymbol
2994
+ )
2995
+ )
2996
+ end
2997
+ attr_reader :billing_frequency
2998
+
2999
+ sig do
3000
+ params(
3001
+ billing_frequency:
3002
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Override::OverrideSpecifier::BillingFrequency::OrSymbol
3003
+ ).void
3004
+ end
3005
+ attr_writer :billing_frequency
3006
+
2544
3007
  sig { returns(T.nilable(T::Array[String])) }
2545
3008
  attr_reader :commit_ids
2546
3009
 
@@ -2589,6 +3052,8 @@ module MetronomeSDK
2589
3052
 
2590
3053
  sig do
2591
3054
  params(
3055
+ billing_frequency:
3056
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Override::OverrideSpecifier::BillingFrequency::OrSymbol,
2592
3057
  commit_ids: T::Array[String],
2593
3058
  presentation_group_values: T::Hash[Symbol, T.nilable(String)],
2594
3059
  pricing_group_values: T::Hash[Symbol, String],
@@ -2599,6 +3064,7 @@ module MetronomeSDK
2599
3064
  ).returns(T.attached_class)
2600
3065
  end
2601
3066
  def self.new(
3067
+ billing_frequency: nil,
2602
3068
  commit_ids: nil,
2603
3069
  presentation_group_values: nil,
2604
3070
  pricing_group_values: nil,
@@ -2612,6 +3078,8 @@ module MetronomeSDK
2612
3078
  sig do
2613
3079
  override.returns(
2614
3080
  {
3081
+ billing_frequency:
3082
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Override::OverrideSpecifier::BillingFrequency::TaggedSymbol,
2615
3083
  commit_ids: T::Array[String],
2616
3084
  presentation_group_values:
2617
3085
  T::Hash[Symbol, T.nilable(String)],
@@ -2625,6 +3093,50 @@ module MetronomeSDK
2625
3093
  end
2626
3094
  def to_hash
2627
3095
  end
3096
+
3097
+ module BillingFrequency
3098
+ extend MetronomeSDK::Internal::Type::Enum
3099
+
3100
+ TaggedSymbol =
3101
+ T.type_alias do
3102
+ T.all(
3103
+ Symbol,
3104
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Override::OverrideSpecifier::BillingFrequency
3105
+ )
3106
+ end
3107
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
3108
+
3109
+ MONTHLY =
3110
+ T.let(
3111
+ :MONTHLY,
3112
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Override::OverrideSpecifier::BillingFrequency::TaggedSymbol
3113
+ )
3114
+ QUARTERLY =
3115
+ T.let(
3116
+ :QUARTERLY,
3117
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Override::OverrideSpecifier::BillingFrequency::TaggedSymbol
3118
+ )
3119
+ ANNUAL =
3120
+ T.let(
3121
+ :ANNUAL,
3122
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Override::OverrideSpecifier::BillingFrequency::TaggedSymbol
3123
+ )
3124
+ WEEKLY =
3125
+ T.let(
3126
+ :WEEKLY,
3127
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Override::OverrideSpecifier::BillingFrequency::TaggedSymbol
3128
+ )
3129
+
3130
+ sig do
3131
+ override.returns(
3132
+ T::Array[
3133
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Override::OverrideSpecifier::BillingFrequency::TaggedSymbol
3134
+ ]
3135
+ )
3136
+ end
3137
+ def self.values
3138
+ end
3139
+ end
2628
3140
  end
2629
3141
 
2630
3142
  class OverrideTier < MetronomeSDK::Internal::Type::BaseModel
@@ -3254,20 +3766,31 @@ module MetronomeSDK
3254
3766
  sig { params(description: String).void }
3255
3767
  attr_writer :description
3256
3768
 
3769
+ # Optional configuration for credit hierarchy access control
3770
+ sig do
3771
+ returns(
3772
+ T.nilable(
3773
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration
3774
+ )
3775
+ )
3776
+ end
3777
+ attr_reader :hierarchy_configuration
3778
+
3779
+ sig do
3780
+ params(
3781
+ hierarchy_configuration:
3782
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::OrHash
3783
+ ).void
3784
+ end
3785
+ attr_writer :hierarchy_configuration
3786
+
3257
3787
  # A list of ordered events that impact the balance of a credit. For example, an
3258
3788
  # invoice deduction or an expiration.
3259
3789
  sig do
3260
3790
  returns(
3261
3791
  T.nilable(
3262
3792
  T::Array[
3263
- T.any(
3264
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSegmentStartLedgerEntry,
3265
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry,
3266
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditExpirationLedgerEntry,
3267
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCanceledLedgerEntry,
3268
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCreditedLedgerEntry,
3269
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditManualLedgerEntry
3270
- )
3793
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::Variants
3271
3794
  ]
3272
3795
  )
3273
3796
  )
@@ -3319,6 +3842,30 @@ module MetronomeSDK
3319
3842
  sig { params(salesforce_opportunity_id: String).void }
3320
3843
  attr_writer :salesforce_opportunity_id
3321
3844
 
3845
+ # List of filters that determine what kind of customer usage draws down a commit
3846
+ # or credit. A customer's usage needs to meet the condition of at least one of the
3847
+ # specifiers to contribute to a commit's or credit's drawdown.
3848
+ sig do
3849
+ returns(
3850
+ T.nilable(
3851
+ T::Array[
3852
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Specifier
3853
+ ]
3854
+ )
3855
+ )
3856
+ end
3857
+ attr_reader :specifiers
3858
+
3859
+ sig do
3860
+ params(
3861
+ specifiers:
3862
+ T::Array[
3863
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Specifier::OrHash
3864
+ ]
3865
+ ).void
3866
+ end
3867
+ attr_writer :specifiers
3868
+
3322
3869
  sig do
3323
3870
  params(
3324
3871
  id: String,
@@ -3335,6 +3882,8 @@ module MetronomeSDK
3335
3882
  MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Contract::OrHash,
3336
3883
  custom_fields: T::Hash[Symbol, String],
3337
3884
  description: String,
3885
+ hierarchy_configuration:
3886
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::OrHash,
3338
3887
  ledger:
3339
3888
  T::Array[
3340
3889
  T.any(
@@ -3349,7 +3898,11 @@ module MetronomeSDK
3349
3898
  name: String,
3350
3899
  netsuite_sales_order_id: String,
3351
3900
  priority: Float,
3352
- salesforce_opportunity_id: String
3901
+ salesforce_opportunity_id: String,
3902
+ specifiers:
3903
+ T::Array[
3904
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Specifier::OrHash
3905
+ ]
3353
3906
  ).returns(T.attached_class)
3354
3907
  end
3355
3908
  def self.new(
@@ -3373,6 +3926,8 @@ module MetronomeSDK
3373
3926
  contract: nil,
3374
3927
  custom_fields: nil,
3375
3928
  description: nil,
3929
+ # Optional configuration for credit hierarchy access control
3930
+ hierarchy_configuration: nil,
3376
3931
  # A list of ordered events that impact the balance of a credit. For example, an
3377
3932
  # invoice deduction or an expiration.
3378
3933
  ledger: nil,
@@ -3383,7 +3938,11 @@ module MetronomeSDK
3383
3938
  # will apply first.
3384
3939
  priority: nil,
3385
3940
  # This field's availability is dependent on your client's configuration.
3386
- salesforce_opportunity_id: nil
3941
+ salesforce_opportunity_id: nil,
3942
+ # List of filters that determine what kind of customer usage draws down a commit
3943
+ # or credit. A customer's usage needs to meet the condition of at least one of the
3944
+ # specifiers to contribute to a commit's or credit's drawdown.
3945
+ specifiers: nil
3387
3946
  )
3388
3947
  end
3389
3948
 
@@ -3404,21 +3963,20 @@ module MetronomeSDK
3404
3963
  MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Contract,
3405
3964
  custom_fields: T::Hash[Symbol, String],
3406
3965
  description: String,
3966
+ hierarchy_configuration:
3967
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration,
3407
3968
  ledger:
3408
3969
  T::Array[
3409
- T.any(
3410
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSegmentStartLedgerEntry,
3411
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry,
3412
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditExpirationLedgerEntry,
3413
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCanceledLedgerEntry,
3414
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCreditedLedgerEntry,
3415
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditManualLedgerEntry
3416
- )
3970
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::Variants
3417
3971
  ],
3418
3972
  name: String,
3419
3973
  netsuite_sales_order_id: String,
3420
3974
  priority: Float,
3421
- salesforce_opportunity_id: String
3975
+ salesforce_opportunity_id: String,
3976
+ specifiers:
3977
+ T::Array[
3978
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Specifier
3979
+ ]
3422
3980
  }
3423
3981
  )
3424
3982
  end
@@ -3499,108 +4057,376 @@ module MetronomeSDK
3499
4057
  end
3500
4058
  end
3501
4059
 
3502
- module Ledger
3503
- extend MetronomeSDK::Internal::Type::Union
3504
-
3505
- Variants =
4060
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
4061
+ OrHash =
3506
4062
  T.type_alias do
3507
4063
  T.any(
3508
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSegmentStartLedgerEntry,
3509
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry,
3510
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditExpirationLedgerEntry,
3511
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCanceledLedgerEntry,
3512
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCreditedLedgerEntry,
3513
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditManualLedgerEntry
4064
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration,
4065
+ MetronomeSDK::Internal::AnyHash
3514
4066
  )
3515
4067
  end
3516
4068
 
3517
- class CreditSegmentStartLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
3518
- OrHash =
3519
- T.type_alias do
4069
+ sig do
4070
+ returns(
4071
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::Variants
4072
+ )
4073
+ end
4074
+ attr_accessor :child_access
4075
+
4076
+ # Optional configuration for credit hierarchy access control
4077
+ sig do
4078
+ params(
4079
+ child_access:
3520
4080
  T.any(
3521
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSegmentStartLedgerEntry,
3522
- MetronomeSDK::Internal::AnyHash
4081
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
4082
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
4083
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
3523
4084
  )
3524
- end
3525
-
3526
- sig { returns(Float) }
3527
- attr_accessor :amount
3528
-
3529
- sig { returns(String) }
3530
- attr_accessor :segment_id
3531
-
3532
- sig { returns(Time) }
3533
- attr_accessor :timestamp
3534
-
3535
- sig do
3536
- returns(
3537
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSegmentStartLedgerEntry::Type::TaggedSymbol
3538
- )
3539
- end
3540
- attr_accessor :type
4085
+ ).returns(T.attached_class)
4086
+ end
4087
+ def self.new(child_access:)
4088
+ end
3541
4089
 
3542
- sig do
3543
- params(
3544
- amount: Float,
3545
- segment_id: String,
3546
- timestamp: Time,
3547
- type:
3548
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSegmentStartLedgerEntry::Type::OrSymbol
3549
- ).returns(T.attached_class)
3550
- end
3551
- def self.new(amount:, segment_id:, timestamp:, type:)
3552
- end
4090
+ sig do
4091
+ override.returns(
4092
+ {
4093
+ child_access:
4094
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::Variants
4095
+ }
4096
+ )
4097
+ end
4098
+ def to_hash
4099
+ end
3553
4100
 
3554
- sig do
3555
- override.returns(
3556
- {
3557
- amount: Float,
3558
- segment_id: String,
3559
- timestamp: Time,
3560
- type:
3561
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSegmentStartLedgerEntry::Type::TaggedSymbol
3562
- }
3563
- )
3564
- end
3565
- def to_hash
3566
- end
4101
+ module ChildAccess
4102
+ extend MetronomeSDK::Internal::Type::Union
3567
4103
 
3568
- module Type
3569
- extend MetronomeSDK::Internal::Type::Enum
4104
+ Variants =
4105
+ T.type_alias do
4106
+ T.any(
4107
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
4108
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
4109
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
4110
+ )
4111
+ end
3570
4112
 
3571
- TaggedSymbol =
4113
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
4114
+ OrHash =
3572
4115
  T.type_alias do
3573
- T.all(
3574
- Symbol,
3575
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSegmentStartLedgerEntry::Type
4116
+ T.any(
4117
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
4118
+ MetronomeSDK::Internal::AnyHash
3576
4119
  )
3577
4120
  end
3578
- OrSymbol = T.type_alias { T.any(Symbol, String) }
3579
4121
 
3580
- CREDIT_SEGMENT_START =
3581
- T.let(
3582
- :CREDIT_SEGMENT_START,
3583
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSegmentStartLedgerEntry::Type::TaggedSymbol
4122
+ sig do
4123
+ returns(
4124
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
3584
4125
  )
4126
+ end
4127
+ attr_accessor :type
3585
4128
 
3586
4129
  sig do
3587
- override.returns(
3588
- T::Array[
3589
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSegmentStartLedgerEntry::Type::TaggedSymbol
3590
- ]
3591
- )
4130
+ params(
4131
+ type:
4132
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
4133
+ ).returns(T.attached_class)
3592
4134
  end
3593
- def self.values
4135
+ def self.new(type:)
3594
4136
  end
3595
- end
3596
- end
3597
4137
 
3598
- class CreditAutomatedInvoiceDeductionLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
3599
- OrHash =
3600
- T.type_alias do
3601
- T.any(
3602
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry,
3603
- MetronomeSDK::Internal::AnyHash
4138
+ sig do
4139
+ override.returns(
4140
+ {
4141
+ type:
4142
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
4143
+ }
4144
+ )
4145
+ end
4146
+ def to_hash
4147
+ end
4148
+
4149
+ module Type
4150
+ extend MetronomeSDK::Internal::Type::Enum
4151
+
4152
+ TaggedSymbol =
4153
+ T.type_alias do
4154
+ T.all(
4155
+ Symbol,
4156
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
4157
+ )
4158
+ end
4159
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4160
+
4161
+ ALL =
4162
+ T.let(
4163
+ :ALL,
4164
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
4165
+ )
4166
+
4167
+ sig do
4168
+ override.returns(
4169
+ T::Array[
4170
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
4171
+ ]
4172
+ )
4173
+ end
4174
+ def self.values
4175
+ end
4176
+ end
4177
+ end
4178
+
4179
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
4180
+ OrHash =
4181
+ T.type_alias do
4182
+ T.any(
4183
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
4184
+ MetronomeSDK::Internal::AnyHash
4185
+ )
4186
+ end
4187
+
4188
+ sig do
4189
+ returns(
4190
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
4191
+ )
4192
+ end
4193
+ attr_accessor :type
4194
+
4195
+ sig do
4196
+ params(
4197
+ type:
4198
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
4199
+ ).returns(T.attached_class)
4200
+ end
4201
+ def self.new(type:)
4202
+ end
4203
+
4204
+ sig do
4205
+ override.returns(
4206
+ {
4207
+ type:
4208
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
4209
+ }
4210
+ )
4211
+ end
4212
+ def to_hash
4213
+ end
4214
+
4215
+ module Type
4216
+ extend MetronomeSDK::Internal::Type::Enum
4217
+
4218
+ TaggedSymbol =
4219
+ T.type_alias do
4220
+ T.all(
4221
+ Symbol,
4222
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
4223
+ )
4224
+ end
4225
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4226
+
4227
+ NONE =
4228
+ T.let(
4229
+ :NONE,
4230
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
4231
+ )
4232
+
4233
+ sig do
4234
+ override.returns(
4235
+ T::Array[
4236
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
4237
+ ]
4238
+ )
4239
+ end
4240
+ def self.values
4241
+ end
4242
+ end
4243
+ end
4244
+
4245
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
4246
+ OrHash =
4247
+ T.type_alias do
4248
+ T.any(
4249
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
4250
+ MetronomeSDK::Internal::AnyHash
4251
+ )
4252
+ end
4253
+
4254
+ sig { returns(T::Array[String]) }
4255
+ attr_accessor :contract_ids
4256
+
4257
+ sig do
4258
+ returns(
4259
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
4260
+ )
4261
+ end
4262
+ attr_accessor :type
4263
+
4264
+ sig do
4265
+ params(
4266
+ contract_ids: T::Array[String],
4267
+ type:
4268
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
4269
+ ).returns(T.attached_class)
4270
+ end
4271
+ def self.new(contract_ids:, type:)
4272
+ end
4273
+
4274
+ sig do
4275
+ override.returns(
4276
+ {
4277
+ contract_ids: T::Array[String],
4278
+ type:
4279
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
4280
+ }
4281
+ )
4282
+ end
4283
+ def to_hash
4284
+ end
4285
+
4286
+ module Type
4287
+ extend MetronomeSDK::Internal::Type::Enum
4288
+
4289
+ TaggedSymbol =
4290
+ T.type_alias do
4291
+ T.all(
4292
+ Symbol,
4293
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
4294
+ )
4295
+ end
4296
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4297
+
4298
+ CONTRACT_IDS =
4299
+ T.let(
4300
+ :CONTRACT_IDS,
4301
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
4302
+ )
4303
+
4304
+ sig do
4305
+ override.returns(
4306
+ T::Array[
4307
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
4308
+ ]
4309
+ )
4310
+ end
4311
+ def self.values
4312
+ end
4313
+ end
4314
+ end
4315
+
4316
+ sig do
4317
+ override.returns(
4318
+ T::Array[
4319
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::HierarchyConfiguration::ChildAccess::Variants
4320
+ ]
4321
+ )
4322
+ end
4323
+ def self.variants
4324
+ end
4325
+ end
4326
+ end
4327
+
4328
+ module Ledger
4329
+ extend MetronomeSDK::Internal::Type::Union
4330
+
4331
+ Variants =
4332
+ T.type_alias do
4333
+ T.any(
4334
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSegmentStartLedgerEntry,
4335
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry,
4336
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditExpirationLedgerEntry,
4337
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCanceledLedgerEntry,
4338
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCreditedLedgerEntry,
4339
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditManualLedgerEntry
4340
+ )
4341
+ end
4342
+
4343
+ class CreditSegmentStartLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
4344
+ OrHash =
4345
+ T.type_alias do
4346
+ T.any(
4347
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSegmentStartLedgerEntry,
4348
+ MetronomeSDK::Internal::AnyHash
4349
+ )
4350
+ end
4351
+
4352
+ sig { returns(Float) }
4353
+ attr_accessor :amount
4354
+
4355
+ sig { returns(String) }
4356
+ attr_accessor :segment_id
4357
+
4358
+ sig { returns(Time) }
4359
+ attr_accessor :timestamp
4360
+
4361
+ sig do
4362
+ returns(
4363
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSegmentStartLedgerEntry::Type::TaggedSymbol
4364
+ )
4365
+ end
4366
+ attr_accessor :type
4367
+
4368
+ sig do
4369
+ params(
4370
+ amount: Float,
4371
+ segment_id: String,
4372
+ timestamp: Time,
4373
+ type:
4374
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSegmentStartLedgerEntry::Type::OrSymbol
4375
+ ).returns(T.attached_class)
4376
+ end
4377
+ def self.new(amount:, segment_id:, timestamp:, type:)
4378
+ end
4379
+
4380
+ sig do
4381
+ override.returns(
4382
+ {
4383
+ amount: Float,
4384
+ segment_id: String,
4385
+ timestamp: Time,
4386
+ type:
4387
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSegmentStartLedgerEntry::Type::TaggedSymbol
4388
+ }
4389
+ )
4390
+ end
4391
+ def to_hash
4392
+ end
4393
+
4394
+ module Type
4395
+ extend MetronomeSDK::Internal::Type::Enum
4396
+
4397
+ TaggedSymbol =
4398
+ T.type_alias do
4399
+ T.all(
4400
+ Symbol,
4401
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSegmentStartLedgerEntry::Type
4402
+ )
4403
+ end
4404
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4405
+
4406
+ CREDIT_SEGMENT_START =
4407
+ T.let(
4408
+ :CREDIT_SEGMENT_START,
4409
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSegmentStartLedgerEntry::Type::TaggedSymbol
4410
+ )
4411
+
4412
+ sig do
4413
+ override.returns(
4414
+ T::Array[
4415
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSegmentStartLedgerEntry::Type::TaggedSymbol
4416
+ ]
4417
+ )
4418
+ end
4419
+ def self.values
4420
+ end
4421
+ end
4422
+ end
4423
+
4424
+ class CreditAutomatedInvoiceDeductionLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
4425
+ OrHash =
4426
+ T.type_alias do
4427
+ T.any(
4428
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry,
4429
+ MetronomeSDK::Internal::AnyHash
3604
4430
  )
3605
4431
  end
3606
4432
 
@@ -4043,6 +4869,77 @@ module MetronomeSDK
4043
4869
  def self.variants
4044
4870
  end
4045
4871
  end
4872
+
4873
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
4874
+ OrHash =
4875
+ T.type_alias do
4876
+ T.any(
4877
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Specifier,
4878
+ MetronomeSDK::Internal::AnyHash
4879
+ )
4880
+ end
4881
+
4882
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
4883
+ attr_reader :presentation_group_values
4884
+
4885
+ sig do
4886
+ params(presentation_group_values: T::Hash[Symbol, String]).void
4887
+ end
4888
+ attr_writer :presentation_group_values
4889
+
4890
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
4891
+ attr_reader :pricing_group_values
4892
+
4893
+ sig { params(pricing_group_values: T::Hash[Symbol, String]).void }
4894
+ attr_writer :pricing_group_values
4895
+
4896
+ # If provided, the specifier will only apply to the product with the specified ID.
4897
+ sig { returns(T.nilable(String)) }
4898
+ attr_reader :product_id
4899
+
4900
+ sig { params(product_id: String).void }
4901
+ attr_writer :product_id
4902
+
4903
+ # If provided, the specifier will only apply to products with all the specified
4904
+ # tags.
4905
+ sig { returns(T.nilable(T::Array[String])) }
4906
+ attr_reader :product_tags
4907
+
4908
+ sig { params(product_tags: T::Array[String]).void }
4909
+ attr_writer :product_tags
4910
+
4911
+ sig do
4912
+ params(
4913
+ presentation_group_values: T::Hash[Symbol, String],
4914
+ pricing_group_values: T::Hash[Symbol, String],
4915
+ product_id: String,
4916
+ product_tags: T::Array[String]
4917
+ ).returns(T.attached_class)
4918
+ end
4919
+ def self.new(
4920
+ presentation_group_values: nil,
4921
+ pricing_group_values: nil,
4922
+ # If provided, the specifier will only apply to the product with the specified ID.
4923
+ product_id: nil,
4924
+ # If provided, the specifier will only apply to products with all the specified
4925
+ # tags.
4926
+ product_tags: nil
4927
+ )
4928
+ end
4929
+
4930
+ sig do
4931
+ override.returns(
4932
+ {
4933
+ presentation_group_values: T::Hash[Symbol, String],
4934
+ pricing_group_values: T::Hash[Symbol, String],
4935
+ product_id: String,
4936
+ product_tags: T::Array[String]
4937
+ }
4938
+ )
4939
+ end
4940
+ def to_hash
4941
+ end
4942
+ end
4046
4943
  end
4047
4944
 
4048
4945
  class CustomerBillingProviderConfiguration < MetronomeSDK::Internal::Type::BaseModel
@@ -4202,29 +5099,210 @@ module MetronomeSDK
4202
5099
  end
4203
5100
  end
4204
5101
 
4205
- # Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list
4206
- # prices automatically. EXPLICIT prioritization requires specifying priorities for
4207
- # each multiplier; the one with the lowest priority value will be prioritized
4208
- # first.
4209
- module MultiplierOverridePrioritization
4210
- extend MetronomeSDK::Internal::Type::Enum
5102
+ # Either a **parent** configuration with a list of children or a **child**
5103
+ # configuration with a single parent.
5104
+ module HierarchyConfiguration
5105
+ extend MetronomeSDK::Internal::Type::Union
4211
5106
 
4212
- TaggedSymbol =
5107
+ Variants =
4213
5108
  T.type_alias do
4214
- T.all(
4215
- Symbol,
4216
- MetronomeSDK::Models::V2::ContractListResponse::Data::MultiplierOverridePrioritization
5109
+ T.any(
5110
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::ParentHierarchyConfiguration,
5111
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::ChildHierarchyConfiguration
4217
5112
  )
4218
5113
  end
4219
- OrSymbol = T.type_alias { T.any(Symbol, String) }
4220
5114
 
4221
- LOWEST_MULTIPLIER =
4222
- T.let(
4223
- :LOWEST_MULTIPLIER,
4224
- MetronomeSDK::Models::V2::ContractListResponse::Data::MultiplierOverridePrioritization::TaggedSymbol
4225
- )
4226
- EXPLICIT =
4227
- T.let(
5115
+ class ParentHierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
5116
+ OrHash =
5117
+ T.type_alias do
5118
+ T.any(
5119
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::ParentHierarchyConfiguration,
5120
+ MetronomeSDK::Internal::AnyHash
5121
+ )
5122
+ end
5123
+
5124
+ # List of contracts that belong to this parent.
5125
+ sig do
5126
+ returns(
5127
+ T::Array[
5128
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::ParentHierarchyConfiguration::Child
5129
+ ]
5130
+ )
5131
+ end
5132
+ attr_accessor :children
5133
+
5134
+ sig do
5135
+ params(
5136
+ children:
5137
+ T::Array[
5138
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::ParentHierarchyConfiguration::Child::OrHash
5139
+ ]
5140
+ ).returns(T.attached_class)
5141
+ end
5142
+ def self.new(
5143
+ # List of contracts that belong to this parent.
5144
+ children:
5145
+ )
5146
+ end
5147
+
5148
+ sig do
5149
+ override.returns(
5150
+ {
5151
+ children:
5152
+ T::Array[
5153
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::ParentHierarchyConfiguration::Child
5154
+ ]
5155
+ }
5156
+ )
5157
+ end
5158
+ def to_hash
5159
+ end
5160
+
5161
+ class Child < MetronomeSDK::Internal::Type::BaseModel
5162
+ OrHash =
5163
+ T.type_alias do
5164
+ T.any(
5165
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::ParentHierarchyConfiguration::Child,
5166
+ MetronomeSDK::Internal::AnyHash
5167
+ )
5168
+ end
5169
+
5170
+ sig { returns(String) }
5171
+ attr_accessor :contract_id
5172
+
5173
+ sig { returns(String) }
5174
+ attr_accessor :customer_id
5175
+
5176
+ sig do
5177
+ params(contract_id: String, customer_id: String).returns(
5178
+ T.attached_class
5179
+ )
5180
+ end
5181
+ def self.new(contract_id:, customer_id:)
5182
+ end
5183
+
5184
+ sig do
5185
+ override.returns({ contract_id: String, customer_id: String })
5186
+ end
5187
+ def to_hash
5188
+ end
5189
+ end
5190
+ end
5191
+
5192
+ class ChildHierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
5193
+ OrHash =
5194
+ T.type_alias do
5195
+ T.any(
5196
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::ChildHierarchyConfiguration,
5197
+ MetronomeSDK::Internal::AnyHash
5198
+ )
5199
+ end
5200
+
5201
+ # The single parent contract/customer for this child.
5202
+ sig do
5203
+ returns(
5204
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::ChildHierarchyConfiguration::Parent
5205
+ )
5206
+ end
5207
+ attr_reader :parent
5208
+
5209
+ sig do
5210
+ params(
5211
+ parent:
5212
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::ChildHierarchyConfiguration::Parent::OrHash
5213
+ ).void
5214
+ end
5215
+ attr_writer :parent
5216
+
5217
+ sig do
5218
+ params(
5219
+ parent:
5220
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::ChildHierarchyConfiguration::Parent::OrHash
5221
+ ).returns(T.attached_class)
5222
+ end
5223
+ def self.new(
5224
+ # The single parent contract/customer for this child.
5225
+ parent:
5226
+ )
5227
+ end
5228
+
5229
+ sig do
5230
+ override.returns(
5231
+ {
5232
+ parent:
5233
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::ChildHierarchyConfiguration::Parent
5234
+ }
5235
+ )
5236
+ end
5237
+ def to_hash
5238
+ end
5239
+
5240
+ class Parent < MetronomeSDK::Internal::Type::BaseModel
5241
+ OrHash =
5242
+ T.type_alias do
5243
+ T.any(
5244
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::ChildHierarchyConfiguration::Parent,
5245
+ MetronomeSDK::Internal::AnyHash
5246
+ )
5247
+ end
5248
+
5249
+ sig { returns(String) }
5250
+ attr_accessor :contract_id
5251
+
5252
+ sig { returns(String) }
5253
+ attr_accessor :customer_id
5254
+
5255
+ # The single parent contract/customer for this child.
5256
+ sig do
5257
+ params(contract_id: String, customer_id: String).returns(
5258
+ T.attached_class
5259
+ )
5260
+ end
5261
+ def self.new(contract_id:, customer_id:)
5262
+ end
5263
+
5264
+ sig do
5265
+ override.returns({ contract_id: String, customer_id: String })
5266
+ end
5267
+ def to_hash
5268
+ end
5269
+ end
5270
+ end
5271
+
5272
+ sig do
5273
+ override.returns(
5274
+ T::Array[
5275
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::Variants
5276
+ ]
5277
+ )
5278
+ end
5279
+ def self.variants
5280
+ end
5281
+ end
5282
+
5283
+ # Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list
5284
+ # prices automatically. EXPLICIT prioritization requires specifying priorities for
5285
+ # each multiplier; the one with the lowest priority value will be prioritized
5286
+ # first.
5287
+ module MultiplierOverridePrioritization
5288
+ extend MetronomeSDK::Internal::Type::Enum
5289
+
5290
+ TaggedSymbol =
5291
+ T.type_alias do
5292
+ T.all(
5293
+ Symbol,
5294
+ MetronomeSDK::Models::V2::ContractListResponse::Data::MultiplierOverridePrioritization
5295
+ )
5296
+ end
5297
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5298
+
5299
+ LOWEST_MULTIPLIER =
5300
+ T.let(
5301
+ :LOWEST_MULTIPLIER,
5302
+ MetronomeSDK::Models::V2::ContractListResponse::Data::MultiplierOverridePrioritization::TaggedSymbol
5303
+ )
5304
+ EXPLICIT =
5305
+ T.let(
4228
5306
  :EXPLICIT,
4229
5307
  MetronomeSDK::Models::V2::ContractListResponse::Data::MultiplierOverridePrioritization::TaggedSymbol
4230
5308
  )
@@ -4294,6 +5372,14 @@ module MetronomeSDK
4294
5372
  sig { returns(Float) }
4295
5373
  attr_accessor :threshold_amount
4296
5374
 
5375
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
5376
+ # commit amount will be in terms of this credit type instead of the fiat currency.
5377
+ sig { returns(T.nilable(String)) }
5378
+ attr_reader :custom_credit_type_id
5379
+
5380
+ sig { params(custom_credit_type_id: String).void }
5381
+ attr_writer :custom_credit_type_id
5382
+
4297
5383
  sig do
4298
5384
  params(
4299
5385
  commit:
@@ -4302,7 +5388,8 @@ module MetronomeSDK
4302
5388
  payment_gate_config:
4303
5389
  MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::OrHash,
4304
5390
  recharge_to_amount: Float,
4305
- threshold_amount: Float
5391
+ threshold_amount: Float,
5392
+ custom_credit_type_id: String
4306
5393
  ).returns(T.attached_class)
4307
5394
  end
4308
5395
  def self.new(
@@ -4316,7 +5403,10 @@ module MetronomeSDK
4316
5403
  recharge_to_amount:,
4317
5404
  # Specify the threshold amount for the contract. Each time the contract's balance
4318
5405
  # lowers to this amount, a threshold charge will be initiated.
4319
- threshold_amount:
5406
+ threshold_amount:,
5407
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
5408
+ # commit amount will be in terms of this credit type instead of the fiat currency.
5409
+ custom_credit_type_id: nil
4320
5410
  )
4321
5411
  end
4322
5412
 
@@ -4329,7 +5419,8 @@ module MetronomeSDK
4329
5419
  payment_gate_config:
4330
5420
  MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig,
4331
5421
  recharge_to_amount: Float,
4332
- threshold_amount: Float
5422
+ threshold_amount: Float,
5423
+ custom_credit_type_id: String
4333
5424
  }
4334
5425
  )
4335
5426
  end
@@ -4350,17 +5441,18 @@ module MetronomeSDK
4350
5441
  sig { returns(String) }
4351
5442
  attr_accessor :product_id
4352
5443
 
4353
- # Which products the threshold commit applies to. If both applicable_product_ids
4354
- # and applicable_product_tags are not provided, the commit applies to all
4355
- # products.
5444
+ # Which products the threshold commit applies to. If applicable_product_ids,
5445
+ # applicable_product_tags or specifiers are not provided, the commit applies to
5446
+ # all products.
4356
5447
  sig { returns(T.nilable(T::Array[String])) }
4357
5448
  attr_reader :applicable_product_ids
4358
5449
 
4359
5450
  sig { params(applicable_product_ids: T::Array[String]).void }
4360
5451
  attr_writer :applicable_product_ids
4361
5452
 
4362
- # Which tags the threshold commit applies to. If both applicable_product_ids and
4363
- # applicable_product_tags are not provided, the commit applies to all products.
5453
+ # Which tags the threshold commit applies to. If applicable_product_ids,
5454
+ # applicable_product_tags or specifiers are not provided, the commit applies to
5455
+ # all products.
4364
5456
  sig { returns(T.nilable(T::Array[String])) }
4365
5457
  attr_reader :applicable_product_tags
4366
5458
 
@@ -4381,30 +5473,65 @@ module MetronomeSDK
4381
5473
  sig { params(name: String).void }
4382
5474
  attr_writer :name
4383
5475
 
5476
+ # List of filters that determine what kind of customer usage draws down a commit
5477
+ # or credit. A customer's usage needs to meet the condition of at least one of the
5478
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
5479
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
5480
+ sig do
5481
+ returns(
5482
+ T.nilable(
5483
+ T::Array[
5484
+ MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::Commit::Specifier
5485
+ ]
5486
+ )
5487
+ )
5488
+ end
5489
+ attr_reader :specifiers
5490
+
5491
+ sig do
5492
+ params(
5493
+ specifiers:
5494
+ T::Array[
5495
+ MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::Commit::Specifier::OrHash
5496
+ ]
5497
+ ).void
5498
+ end
5499
+ attr_writer :specifiers
5500
+
4384
5501
  sig do
4385
5502
  params(
4386
5503
  product_id: String,
4387
5504
  applicable_product_ids: T::Array[String],
4388
5505
  applicable_product_tags: T::Array[String],
4389
5506
  description: String,
4390
- name: String
5507
+ name: String,
5508
+ specifiers:
5509
+ T::Array[
5510
+ MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::Commit::Specifier::OrHash
5511
+ ]
4391
5512
  ).returns(T.attached_class)
4392
5513
  end
4393
5514
  def self.new(
4394
5515
  # The commit product that will be used to generate the line item for commit
4395
5516
  # payment.
4396
5517
  product_id:,
4397
- # Which products the threshold commit applies to. If both applicable_product_ids
4398
- # and applicable_product_tags are not provided, the commit applies to all
4399
- # products.
5518
+ # Which products the threshold commit applies to. If applicable_product_ids,
5519
+ # applicable_product_tags or specifiers are not provided, the commit applies to
5520
+ # all products.
4400
5521
  applicable_product_ids: nil,
4401
- # Which tags the threshold commit applies to. If both applicable_product_ids and
4402
- # applicable_product_tags are not provided, the commit applies to all products.
5522
+ # Which tags the threshold commit applies to. If applicable_product_ids,
5523
+ # applicable_product_tags or specifiers are not provided, the commit applies to
5524
+ # all products.
4403
5525
  applicable_product_tags: nil,
4404
5526
  description: nil,
4405
5527
  # Specify the name of the line item for the threshold charge. If left blank, it
4406
5528
  # will default to the commit product name.
4407
- name: nil
5529
+ name: nil,
5530
+ # List of filters that determine what kind of customer usage draws down a commit
5531
+ # or credit. A customer's usage needs to meet the condition of at least one of the
5532
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
5533
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
5534
+ specifiers: nil
4408
5535
  )
4409
5536
  end
4410
5537
 
@@ -4415,12 +5542,91 @@ module MetronomeSDK
4415
5542
  applicable_product_ids: T::Array[String],
4416
5543
  applicable_product_tags: T::Array[String],
4417
5544
  description: String,
4418
- name: String
5545
+ name: String,
5546
+ specifiers:
5547
+ T::Array[
5548
+ MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::Commit::Specifier
5549
+ ]
4419
5550
  }
4420
5551
  )
4421
5552
  end
4422
5553
  def to_hash
4423
5554
  end
5555
+
5556
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
5557
+ OrHash =
5558
+ T.type_alias do
5559
+ T.any(
5560
+ MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::Commit::Specifier,
5561
+ MetronomeSDK::Internal::AnyHash
5562
+ )
5563
+ end
5564
+
5565
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
5566
+ attr_reader :presentation_group_values
5567
+
5568
+ sig do
5569
+ params(
5570
+ presentation_group_values: T::Hash[Symbol, String]
5571
+ ).void
5572
+ end
5573
+ attr_writer :presentation_group_values
5574
+
5575
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
5576
+ attr_reader :pricing_group_values
5577
+
5578
+ sig do
5579
+ params(pricing_group_values: T::Hash[Symbol, String]).void
5580
+ end
5581
+ attr_writer :pricing_group_values
5582
+
5583
+ # If provided, the specifier will only apply to the product with the specified ID.
5584
+ sig { returns(T.nilable(String)) }
5585
+ attr_reader :product_id
5586
+
5587
+ sig { params(product_id: String).void }
5588
+ attr_writer :product_id
5589
+
5590
+ # If provided, the specifier will only apply to products with all the specified
5591
+ # tags.
5592
+ sig { returns(T.nilable(T::Array[String])) }
5593
+ attr_reader :product_tags
5594
+
5595
+ sig { params(product_tags: T::Array[String]).void }
5596
+ attr_writer :product_tags
5597
+
5598
+ sig do
5599
+ params(
5600
+ presentation_group_values: T::Hash[Symbol, String],
5601
+ pricing_group_values: T::Hash[Symbol, String],
5602
+ product_id: String,
5603
+ product_tags: T::Array[String]
5604
+ ).returns(T.attached_class)
5605
+ end
5606
+ def self.new(
5607
+ presentation_group_values: nil,
5608
+ pricing_group_values: nil,
5609
+ # If provided, the specifier will only apply to the product with the specified ID.
5610
+ product_id: nil,
5611
+ # If provided, the specifier will only apply to products with all the specified
5612
+ # tags.
5613
+ product_tags: nil
5614
+ )
5615
+ end
5616
+
5617
+ sig do
5618
+ override.returns(
5619
+ {
5620
+ presentation_group_values: T::Hash[Symbol, String],
5621
+ pricing_group_values: T::Hash[Symbol, String],
5622
+ product_id: String,
5623
+ product_tags: T::Array[String]
5624
+ }
5625
+ )
5626
+ end
5627
+ def to_hash
5628
+ end
5629
+ end
4424
5630
  end
4425
5631
 
4426
5632
  class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
@@ -4443,7 +5649,25 @@ module MetronomeSDK
4443
5649
  end
4444
5650
  attr_accessor :payment_gate_type
4445
5651
 
4446
- # Only applicable if using Stripe as your payment gateway through Metronome.
5652
+ # Only applicable if using PRECALCULATED as your tax type.
5653
+ sig do
5654
+ returns(
5655
+ T.nilable(
5656
+ MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
5657
+ )
5658
+ )
5659
+ end
5660
+ attr_reader :precalculated_tax_config
5661
+
5662
+ sig do
5663
+ params(
5664
+ precalculated_tax_config:
5665
+ MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
5666
+ ).void
5667
+ end
5668
+ attr_writer :precalculated_tax_config
5669
+
5670
+ # Only applicable if using STRIPE as your payment gateway type.
4447
5671
  sig do
4448
5672
  returns(
4449
5673
  T.nilable(
@@ -4485,6 +5709,8 @@ module MetronomeSDK
4485
5709
  params(
4486
5710
  payment_gate_type:
4487
5711
  MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
5712
+ precalculated_tax_config:
5713
+ MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
4488
5714
  stripe_config:
4489
5715
  MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash,
4490
5716
  tax_type:
@@ -4497,7 +5723,9 @@ module MetronomeSDK
4497
5723
  # facilitate payment using your own payment integration. Select NONE if you do not
4498
5724
  # wish to payment gate the commit balance.
4499
5725
  payment_gate_type:,
4500
- # Only applicable if using Stripe as your payment gateway through Metronome.
5726
+ # Only applicable if using PRECALCULATED as your tax type.
5727
+ precalculated_tax_config: nil,
5728
+ # Only applicable if using STRIPE as your payment gateway type.
4501
5729
  stripe_config: nil,
4502
5730
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
4503
5731
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
@@ -4511,6 +5739,8 @@ module MetronomeSDK
4511
5739
  {
4512
5740
  payment_gate_type:
4513
5741
  MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::TaggedSymbol,
5742
+ precalculated_tax_config:
5743
+ MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
4514
5744
  stripe_config:
4515
5745
  MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig,
4516
5746
  tax_type:
@@ -4564,6 +5794,51 @@ module MetronomeSDK
4564
5794
  end
4565
5795
  end
4566
5796
 
5797
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
5798
+ OrHash =
5799
+ T.type_alias do
5800
+ T.any(
5801
+ MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
5802
+ MetronomeSDK::Internal::AnyHash
5803
+ )
5804
+ end
5805
+
5806
+ # Amount of tax to be applied. This should be in the same currency and
5807
+ # denomination as the commit's invoice schedule
5808
+ sig { returns(Float) }
5809
+ attr_accessor :tax_amount
5810
+
5811
+ # Name of the tax to be applied. This may be used in an invoice line item
5812
+ # description.
5813
+ sig { returns(T.nilable(String)) }
5814
+ attr_reader :tax_name
5815
+
5816
+ sig { params(tax_name: String).void }
5817
+ attr_writer :tax_name
5818
+
5819
+ # Only applicable if using PRECALCULATED as your tax type.
5820
+ sig do
5821
+ params(tax_amount: Float, tax_name: String).returns(
5822
+ T.attached_class
5823
+ )
5824
+ end
5825
+ def self.new(
5826
+ # Amount of tax to be applied. This should be in the same currency and
5827
+ # denomination as the commit's invoice schedule
5828
+ tax_amount:,
5829
+ # Name of the tax to be applied. This may be used in an invoice line item
5830
+ # description.
5831
+ tax_name: nil
5832
+ )
5833
+ end
5834
+
5835
+ sig do
5836
+ override.returns({ tax_amount: Float, tax_name: String })
5837
+ end
5838
+ def to_hash
5839
+ end
5840
+ end
5841
+
4567
5842
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
4568
5843
  OrHash =
4569
5844
  T.type_alias do
@@ -4581,16 +5856,28 @@ module MetronomeSDK
4581
5856
  end
4582
5857
  attr_accessor :payment_type
4583
5858
 
4584
- # Only applicable if using Stripe as your payment gateway through Metronome.
5859
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
5860
+ # your payment type.
5861
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
5862
+ attr_reader :invoice_metadata
5863
+
5864
+ sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
5865
+ attr_writer :invoice_metadata
5866
+
5867
+ # Only applicable if using STRIPE as your payment gateway type.
4585
5868
  sig do
4586
5869
  params(
4587
5870
  payment_type:
4588
- MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
5871
+ MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
5872
+ invoice_metadata: T::Hash[Symbol, String]
4589
5873
  ).returns(T.attached_class)
4590
5874
  end
4591
5875
  def self.new(
4592
5876
  # If left blank, will default to INVOICE
4593
- payment_type:
5877
+ payment_type:,
5878
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
5879
+ # your payment type.
5880
+ invoice_metadata: nil
4594
5881
  )
4595
5882
  end
4596
5883
 
@@ -4598,7 +5885,8 @@ module MetronomeSDK
4598
5885
  override.returns(
4599
5886
  {
4600
5887
  payment_type:
4601
- MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol
5888
+ MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol,
5889
+ invoice_metadata: T::Hash[Symbol, String]
4602
5890
  }
4603
5891
  )
4604
5892
  end
@@ -4666,7 +5954,17 @@ module MetronomeSDK
4666
5954
  :STRIPE,
4667
5955
  MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
4668
5956
  )
4669
-
5957
+ ANROK =
5958
+ T.let(
5959
+ :ANROK,
5960
+ MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
5961
+ )
5962
+ PRECALCULATED =
5963
+ T.let(
5964
+ :PRECALCULATED,
5965
+ MetronomeSDK::Models::V2::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
5966
+ )
5967
+
4670
5968
  sig do
4671
5969
  override.returns(
4672
5970
  T::Array[
@@ -4834,6 +6132,7 @@ module MetronomeSDK
4834
6132
 
4835
6133
  # Determines whether the first and last commit will be prorated. If not provided,
4836
6134
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
6135
+ # subscription_config:
4837
6136
  sig do
4838
6137
  returns(
4839
6138
  T.nilable(
@@ -4854,7 +6153,7 @@ module MetronomeSDK
4854
6153
  # The frequency at which the recurring commits will be created. If not provided: -
4855
6154
  # The commits will be created on the usage invoice frequency. If provided: - The
4856
6155
  # period defined in the duration will correspond to this frequency. - Commits will
4857
- # be created aligned with the recurring commit's start_date rather than the usage
6156
+ # be created aligned with the recurring commit's starting_at rather than the usage
4858
6157
  # invoice dates.
4859
6158
  sig do
4860
6159
  returns(
@@ -4882,6 +6181,30 @@ module MetronomeSDK
4882
6181
  sig { params(rollover_fraction: Float).void }
4883
6182
  attr_writer :rollover_fraction
4884
6183
 
6184
+ # List of filters that determine what kind of customer usage draws down a commit
6185
+ # or credit. A customer's usage needs to meet the condition of at least one of the
6186
+ # specifiers to contribute to a commit's or credit's drawdown.
6187
+ sig do
6188
+ returns(
6189
+ T.nilable(
6190
+ T::Array[
6191
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::Specifier
6192
+ ]
6193
+ )
6194
+ )
6195
+ end
6196
+ attr_reader :specifiers
6197
+
6198
+ sig do
6199
+ params(
6200
+ specifiers:
6201
+ T::Array[
6202
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::Specifier::OrHash
6203
+ ]
6204
+ ).void
6205
+ end
6206
+ attr_writer :specifiers
6207
+
4885
6208
  sig do
4886
6209
  params(
4887
6210
  id: String,
@@ -4909,7 +6232,11 @@ module MetronomeSDK
4909
6232
  MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::Proration::OrSymbol,
4910
6233
  recurrence_frequency:
4911
6234
  MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::RecurrenceFrequency::OrSymbol,
4912
- rollover_fraction: Float
6235
+ rollover_fraction: Float,
6236
+ specifiers:
6237
+ T::Array[
6238
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::Specifier::OrHash
6239
+ ]
4913
6240
  ).returns(T.attached_class)
4914
6241
  end
4915
6242
  def self.new(
@@ -4942,17 +6269,22 @@ module MetronomeSDK
4942
6269
  netsuite_sales_order_id: nil,
4943
6270
  # Determines whether the first and last commit will be prorated. If not provided,
4944
6271
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
6272
+ # subscription_config:
4945
6273
  proration: nil,
4946
6274
  # The frequency at which the recurring commits will be created. If not provided: -
4947
6275
  # The commits will be created on the usage invoice frequency. If provided: - The
4948
6276
  # period defined in the duration will correspond to this frequency. - Commits will
4949
- # be created aligned with the recurring commit's start_date rather than the usage
6277
+ # be created aligned with the recurring commit's starting_at rather than the usage
4950
6278
  # invoice dates.
4951
6279
  recurrence_frequency: nil,
4952
6280
  # Will be passed down to the individual commits. This controls how much of an
4953
6281
  # individual unexpired commit will roll over upon contract transition. Must be
4954
6282
  # between 0 and 1.
4955
- rollover_fraction: nil
6283
+ rollover_fraction: nil,
6284
+ # List of filters that determine what kind of customer usage draws down a commit
6285
+ # or credit. A customer's usage needs to meet the condition of at least one of the
6286
+ # specifiers to contribute to a commit's or credit's drawdown.
6287
+ specifiers: nil
4956
6288
  )
4957
6289
  end
4958
6290
 
@@ -4984,7 +6316,11 @@ module MetronomeSDK
4984
6316
  MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::Proration::TaggedSymbol,
4985
6317
  recurrence_frequency:
4986
6318
  MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::RecurrenceFrequency::TaggedSymbol,
4987
- rollover_fraction: Float
6319
+ rollover_fraction: Float,
6320
+ specifiers:
6321
+ T::Array[
6322
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::Specifier
6323
+ ]
4988
6324
  }
4989
6325
  )
4990
6326
  end
@@ -5003,26 +6339,29 @@ module MetronomeSDK
5003
6339
  sig { returns(String) }
5004
6340
  attr_accessor :credit_type_id
5005
6341
 
5006
- sig { returns(Float) }
5007
- attr_accessor :quantity
5008
-
5009
6342
  sig { returns(Float) }
5010
6343
  attr_accessor :unit_price
5011
6344
 
6345
+ sig { returns(T.nilable(Float)) }
6346
+ attr_reader :quantity
6347
+
6348
+ sig { params(quantity: Float).void }
6349
+ attr_writer :quantity
6350
+
5012
6351
  # The amount of commit to grant.
5013
6352
  sig do
5014
6353
  params(
5015
6354
  credit_type_id: String,
5016
- quantity: Float,
5017
- unit_price: Float
6355
+ unit_price: Float,
6356
+ quantity: Float
5018
6357
  ).returns(T.attached_class)
5019
6358
  end
5020
- def self.new(credit_type_id:, quantity:, unit_price:)
6359
+ def self.new(credit_type_id:, unit_price:, quantity: nil)
5021
6360
  end
5022
6361
 
5023
6362
  sig do
5024
6363
  override.returns(
5025
- { credit_type_id: String, quantity: Float, unit_price: Float }
6364
+ { credit_type_id: String, unit_price: Float, quantity: Float }
5026
6365
  )
5027
6366
  end
5028
6367
  def to_hash
@@ -5231,6 +6570,7 @@ module MetronomeSDK
5231
6570
 
5232
6571
  # Determines whether the first and last commit will be prorated. If not provided,
5233
6572
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
6573
+ # subscription_config:
5234
6574
  module Proration
5235
6575
  extend MetronomeSDK::Internal::Type::Enum
5236
6576
 
@@ -5278,7 +6618,7 @@ module MetronomeSDK
5278
6618
  # The frequency at which the recurring commits will be created. If not provided: -
5279
6619
  # The commits will be created on the usage invoice frequency. If provided: - The
5280
6620
  # period defined in the duration will correspond to this frequency. - Commits will
5281
- # be created aligned with the recurring commit's start_date rather than the usage
6621
+ # be created aligned with the recurring commit's starting_at rather than the usage
5282
6622
  # invoice dates.
5283
6623
  module RecurrenceFrequency
5284
6624
  extend MetronomeSDK::Internal::Type::Enum
@@ -5323,6 +6663,77 @@ module MetronomeSDK
5323
6663
  def self.values
5324
6664
  end
5325
6665
  end
6666
+
6667
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
6668
+ OrHash =
6669
+ T.type_alias do
6670
+ T.any(
6671
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::Specifier,
6672
+ MetronomeSDK::Internal::AnyHash
6673
+ )
6674
+ end
6675
+
6676
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
6677
+ attr_reader :presentation_group_values
6678
+
6679
+ sig do
6680
+ params(presentation_group_values: T::Hash[Symbol, String]).void
6681
+ end
6682
+ attr_writer :presentation_group_values
6683
+
6684
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
6685
+ attr_reader :pricing_group_values
6686
+
6687
+ sig { params(pricing_group_values: T::Hash[Symbol, String]).void }
6688
+ attr_writer :pricing_group_values
6689
+
6690
+ # If provided, the specifier will only apply to the product with the specified ID.
6691
+ sig { returns(T.nilable(String)) }
6692
+ attr_reader :product_id
6693
+
6694
+ sig { params(product_id: String).void }
6695
+ attr_writer :product_id
6696
+
6697
+ # If provided, the specifier will only apply to products with all the specified
6698
+ # tags.
6699
+ sig { returns(T.nilable(T::Array[String])) }
6700
+ attr_reader :product_tags
6701
+
6702
+ sig { params(product_tags: T::Array[String]).void }
6703
+ attr_writer :product_tags
6704
+
6705
+ sig do
6706
+ params(
6707
+ presentation_group_values: T::Hash[Symbol, String],
6708
+ pricing_group_values: T::Hash[Symbol, String],
6709
+ product_id: String,
6710
+ product_tags: T::Array[String]
6711
+ ).returns(T.attached_class)
6712
+ end
6713
+ def self.new(
6714
+ presentation_group_values: nil,
6715
+ pricing_group_values: nil,
6716
+ # If provided, the specifier will only apply to the product with the specified ID.
6717
+ product_id: nil,
6718
+ # If provided, the specifier will only apply to products with all the specified
6719
+ # tags.
6720
+ product_tags: nil
6721
+ )
6722
+ end
6723
+
6724
+ sig do
6725
+ override.returns(
6726
+ {
6727
+ presentation_group_values: T::Hash[Symbol, String],
6728
+ pricing_group_values: T::Hash[Symbol, String],
6729
+ product_id: String,
6730
+ product_tags: T::Array[String]
6731
+ }
6732
+ )
6733
+ end
6734
+ def to_hash
6735
+ end
6736
+ end
5326
6737
  end
5327
6738
 
5328
6739
  class RecurringCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -5461,6 +6872,7 @@ module MetronomeSDK
5461
6872
 
5462
6873
  # Determines whether the first and last commit will be prorated. If not provided,
5463
6874
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
6875
+ # subscription_config:
5464
6876
  sig do
5465
6877
  returns(
5466
6878
  T.nilable(
@@ -5481,7 +6893,7 @@ module MetronomeSDK
5481
6893
  # The frequency at which the recurring commits will be created. If not provided: -
5482
6894
  # The commits will be created on the usage invoice frequency. If provided: - The
5483
6895
  # period defined in the duration will correspond to this frequency. - Commits will
5484
- # be created aligned with the recurring commit's start_date rather than the usage
6896
+ # be created aligned with the recurring commit's starting_at rather than the usage
5485
6897
  # invoice dates.
5486
6898
  sig do
5487
6899
  returns(
@@ -5509,6 +6921,30 @@ module MetronomeSDK
5509
6921
  sig { params(rollover_fraction: Float).void }
5510
6922
  attr_writer :rollover_fraction
5511
6923
 
6924
+ # List of filters that determine what kind of customer usage draws down a commit
6925
+ # or credit. A customer's usage needs to meet the condition of at least one of the
6926
+ # specifiers to contribute to a commit's or credit's drawdown.
6927
+ sig do
6928
+ returns(
6929
+ T.nilable(
6930
+ T::Array[
6931
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::Specifier
6932
+ ]
6933
+ )
6934
+ )
6935
+ end
6936
+ attr_reader :specifiers
6937
+
6938
+ sig do
6939
+ params(
6940
+ specifiers:
6941
+ T::Array[
6942
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::Specifier::OrHash
6943
+ ]
6944
+ ).void
6945
+ end
6946
+ attr_writer :specifiers
6947
+
5512
6948
  sig do
5513
6949
  params(
5514
6950
  id: String,
@@ -5534,7 +6970,11 @@ module MetronomeSDK
5534
6970
  MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::Proration::OrSymbol,
5535
6971
  recurrence_frequency:
5536
6972
  MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::RecurrenceFrequency::OrSymbol,
5537
- rollover_fraction: Float
6973
+ rollover_fraction: Float,
6974
+ specifiers:
6975
+ T::Array[
6976
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::Specifier::OrHash
6977
+ ]
5538
6978
  ).returns(T.attached_class)
5539
6979
  end
5540
6980
  def self.new(
@@ -5565,17 +7005,22 @@ module MetronomeSDK
5565
7005
  netsuite_sales_order_id: nil,
5566
7006
  # Determines whether the first and last commit will be prorated. If not provided,
5567
7007
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
7008
+ # subscription_config:
5568
7009
  proration: nil,
5569
7010
  # The frequency at which the recurring commits will be created. If not provided: -
5570
7011
  # The commits will be created on the usage invoice frequency. If provided: - The
5571
7012
  # period defined in the duration will correspond to this frequency. - Commits will
5572
- # be created aligned with the recurring commit's start_date rather than the usage
7013
+ # be created aligned with the recurring commit's starting_at rather than the usage
5573
7014
  # invoice dates.
5574
7015
  recurrence_frequency: nil,
5575
7016
  # Will be passed down to the individual commits. This controls how much of an
5576
7017
  # individual unexpired commit will roll over upon contract transition. Must be
5577
7018
  # between 0 and 1.
5578
- rollover_fraction: nil
7019
+ rollover_fraction: nil,
7020
+ # List of filters that determine what kind of customer usage draws down a commit
7021
+ # or credit. A customer's usage needs to meet the condition of at least one of the
7022
+ # specifiers to contribute to a commit's or credit's drawdown.
7023
+ specifiers: nil
5579
7024
  )
5580
7025
  end
5581
7026
 
@@ -5605,7 +7050,11 @@ module MetronomeSDK
5605
7050
  MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::Proration::TaggedSymbol,
5606
7051
  recurrence_frequency:
5607
7052
  MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::RecurrenceFrequency::TaggedSymbol,
5608
- rollover_fraction: Float
7053
+ rollover_fraction: Float,
7054
+ specifiers:
7055
+ T::Array[
7056
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::Specifier
7057
+ ]
5609
7058
  }
5610
7059
  )
5611
7060
  end
@@ -5624,26 +7073,29 @@ module MetronomeSDK
5624
7073
  sig { returns(String) }
5625
7074
  attr_accessor :credit_type_id
5626
7075
 
5627
- sig { returns(Float) }
5628
- attr_accessor :quantity
5629
-
5630
7076
  sig { returns(Float) }
5631
7077
  attr_accessor :unit_price
5632
7078
 
7079
+ sig { returns(T.nilable(Float)) }
7080
+ attr_reader :quantity
7081
+
7082
+ sig { params(quantity: Float).void }
7083
+ attr_writer :quantity
7084
+
5633
7085
  # The amount of commit to grant.
5634
7086
  sig do
5635
7087
  params(
5636
7088
  credit_type_id: String,
5637
- quantity: Float,
5638
- unit_price: Float
7089
+ unit_price: Float,
7090
+ quantity: Float
5639
7091
  ).returns(T.attached_class)
5640
7092
  end
5641
- def self.new(credit_type_id:, quantity:, unit_price:)
7093
+ def self.new(credit_type_id:, unit_price:, quantity: nil)
5642
7094
  end
5643
7095
 
5644
7096
  sig do
5645
7097
  override.returns(
5646
- { credit_type_id: String, quantity: Float, unit_price: Float }
7098
+ { credit_type_id: String, unit_price: Float, quantity: Float }
5647
7099
  )
5648
7100
  end
5649
7101
  def to_hash
@@ -5814,6 +7266,7 @@ module MetronomeSDK
5814
7266
 
5815
7267
  # Determines whether the first and last commit will be prorated. If not provided,
5816
7268
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
7269
+ # subscription_config:
5817
7270
  module Proration
5818
7271
  extend MetronomeSDK::Internal::Type::Enum
5819
7272
 
@@ -5861,7 +7314,7 @@ module MetronomeSDK
5861
7314
  # The frequency at which the recurring commits will be created. If not provided: -
5862
7315
  # The commits will be created on the usage invoice frequency. If provided: - The
5863
7316
  # period defined in the duration will correspond to this frequency. - Commits will
5864
- # be created aligned with the recurring commit's start_date rather than the usage
7317
+ # be created aligned with the recurring commit's starting_at rather than the usage
5865
7318
  # invoice dates.
5866
7319
  module RecurrenceFrequency
5867
7320
  extend MetronomeSDK::Internal::Type::Enum
@@ -5906,6 +7359,77 @@ module MetronomeSDK
5906
7359
  def self.values
5907
7360
  end
5908
7361
  end
7362
+
7363
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
7364
+ OrHash =
7365
+ T.type_alias do
7366
+ T.any(
7367
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::Specifier,
7368
+ MetronomeSDK::Internal::AnyHash
7369
+ )
7370
+ end
7371
+
7372
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
7373
+ attr_reader :presentation_group_values
7374
+
7375
+ sig do
7376
+ params(presentation_group_values: T::Hash[Symbol, String]).void
7377
+ end
7378
+ attr_writer :presentation_group_values
7379
+
7380
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
7381
+ attr_reader :pricing_group_values
7382
+
7383
+ sig { params(pricing_group_values: T::Hash[Symbol, String]).void }
7384
+ attr_writer :pricing_group_values
7385
+
7386
+ # If provided, the specifier will only apply to the product with the specified ID.
7387
+ sig { returns(T.nilable(String)) }
7388
+ attr_reader :product_id
7389
+
7390
+ sig { params(product_id: String).void }
7391
+ attr_writer :product_id
7392
+
7393
+ # If provided, the specifier will only apply to products with all the specified
7394
+ # tags.
7395
+ sig { returns(T.nilable(T::Array[String])) }
7396
+ attr_reader :product_tags
7397
+
7398
+ sig { params(product_tags: T::Array[String]).void }
7399
+ attr_writer :product_tags
7400
+
7401
+ sig do
7402
+ params(
7403
+ presentation_group_values: T::Hash[Symbol, String],
7404
+ pricing_group_values: T::Hash[Symbol, String],
7405
+ product_id: String,
7406
+ product_tags: T::Array[String]
7407
+ ).returns(T.attached_class)
7408
+ end
7409
+ def self.new(
7410
+ presentation_group_values: nil,
7411
+ pricing_group_values: nil,
7412
+ # If provided, the specifier will only apply to the product with the specified ID.
7413
+ product_id: nil,
7414
+ # If provided, the specifier will only apply to products with all the specified
7415
+ # tags.
7416
+ product_tags: nil
7417
+ )
7418
+ end
7419
+
7420
+ sig do
7421
+ override.returns(
7422
+ {
7423
+ presentation_group_values: T::Hash[Symbol, String],
7424
+ pricing_group_values: T::Hash[Symbol, String],
7425
+ product_id: String,
7426
+ product_tags: T::Array[String]
7427
+ }
7428
+ )
7429
+ end
7430
+ def to_hash
7431
+ end
7432
+ end
5909
7433
  end
5910
7434
 
5911
7435
  class ResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel
@@ -6385,7 +7909,25 @@ module MetronomeSDK
6385
7909
  end
6386
7910
  attr_accessor :payment_gate_type
6387
7911
 
6388
- # Only applicable if using Stripe as your payment gateway through Metronome.
7912
+ # Only applicable if using PRECALCULATED as your tax type.
7913
+ sig do
7914
+ returns(
7915
+ T.nilable(
7916
+ MetronomeSDK::Models::V2::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
7917
+ )
7918
+ )
7919
+ end
7920
+ attr_reader :precalculated_tax_config
7921
+
7922
+ sig do
7923
+ params(
7924
+ precalculated_tax_config:
7925
+ MetronomeSDK::Models::V2::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
7926
+ ).void
7927
+ end
7928
+ attr_writer :precalculated_tax_config
7929
+
7930
+ # Only applicable if using STRIPE as your payment gateway type.
6389
7931
  sig do
6390
7932
  returns(
6391
7933
  T.nilable(
@@ -6427,6 +7969,8 @@ module MetronomeSDK
6427
7969
  params(
6428
7970
  payment_gate_type:
6429
7971
  MetronomeSDK::Models::V2::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
7972
+ precalculated_tax_config:
7973
+ MetronomeSDK::Models::V2::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
6430
7974
  stripe_config:
6431
7975
  MetronomeSDK::Models::V2::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash,
6432
7976
  tax_type:
@@ -6439,7 +7983,9 @@ module MetronomeSDK
6439
7983
  # facilitate payment using your own payment integration. Select NONE if you do not
6440
7984
  # wish to payment gate the commit balance.
6441
7985
  payment_gate_type:,
6442
- # Only applicable if using Stripe as your payment gateway through Metronome.
7986
+ # Only applicable if using PRECALCULATED as your tax type.
7987
+ precalculated_tax_config: nil,
7988
+ # Only applicable if using STRIPE as your payment gateway type.
6443
7989
  stripe_config: nil,
6444
7990
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
6445
7991
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
@@ -6453,6 +7999,8 @@ module MetronomeSDK
6453
7999
  {
6454
8000
  payment_gate_type:
6455
8001
  MetronomeSDK::Models::V2::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::TaggedSymbol,
8002
+ precalculated_tax_config:
8003
+ MetronomeSDK::Models::V2::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
6456
8004
  stripe_config:
6457
8005
  MetronomeSDK::Models::V2::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig,
6458
8006
  tax_type:
@@ -6506,6 +8054,51 @@ module MetronomeSDK
6506
8054
  end
6507
8055
  end
6508
8056
 
8057
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
8058
+ OrHash =
8059
+ T.type_alias do
8060
+ T.any(
8061
+ MetronomeSDK::Models::V2::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
8062
+ MetronomeSDK::Internal::AnyHash
8063
+ )
8064
+ end
8065
+
8066
+ # Amount of tax to be applied. This should be in the same currency and
8067
+ # denomination as the commit's invoice schedule
8068
+ sig { returns(Float) }
8069
+ attr_accessor :tax_amount
8070
+
8071
+ # Name of the tax to be applied. This may be used in an invoice line item
8072
+ # description.
8073
+ sig { returns(T.nilable(String)) }
8074
+ attr_reader :tax_name
8075
+
8076
+ sig { params(tax_name: String).void }
8077
+ attr_writer :tax_name
8078
+
8079
+ # Only applicable if using PRECALCULATED as your tax type.
8080
+ sig do
8081
+ params(tax_amount: Float, tax_name: String).returns(
8082
+ T.attached_class
8083
+ )
8084
+ end
8085
+ def self.new(
8086
+ # Amount of tax to be applied. This should be in the same currency and
8087
+ # denomination as the commit's invoice schedule
8088
+ tax_amount:,
8089
+ # Name of the tax to be applied. This may be used in an invoice line item
8090
+ # description.
8091
+ tax_name: nil
8092
+ )
8093
+ end
8094
+
8095
+ sig do
8096
+ override.returns({ tax_amount: Float, tax_name: String })
8097
+ end
8098
+ def to_hash
8099
+ end
8100
+ end
8101
+
6509
8102
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
6510
8103
  OrHash =
6511
8104
  T.type_alias do
@@ -6523,16 +8116,28 @@ module MetronomeSDK
6523
8116
  end
6524
8117
  attr_accessor :payment_type
6525
8118
 
6526
- # Only applicable if using Stripe as your payment gateway through Metronome.
8119
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
8120
+ # your payment type.
8121
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
8122
+ attr_reader :invoice_metadata
8123
+
8124
+ sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
8125
+ attr_writer :invoice_metadata
8126
+
8127
+ # Only applicable if using STRIPE as your payment gateway type.
6527
8128
  sig do
6528
8129
  params(
6529
8130
  payment_type:
6530
- MetronomeSDK::Models::V2::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
8131
+ MetronomeSDK::Models::V2::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
8132
+ invoice_metadata: T::Hash[Symbol, String]
6531
8133
  ).returns(T.attached_class)
6532
8134
  end
6533
8135
  def self.new(
6534
8136
  # If left blank, will default to INVOICE
6535
- payment_type:
8137
+ payment_type:,
8138
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
8139
+ # your payment type.
8140
+ invoice_metadata: nil
6536
8141
  )
6537
8142
  end
6538
8143
 
@@ -6540,7 +8145,8 @@ module MetronomeSDK
6540
8145
  override.returns(
6541
8146
  {
6542
8147
  payment_type:
6543
- MetronomeSDK::Models::V2::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol
8148
+ MetronomeSDK::Models::V2::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol,
8149
+ invoice_metadata: T::Hash[Symbol, String]
6544
8150
  }
6545
8151
  )
6546
8152
  end
@@ -6608,6 +8214,16 @@ module MetronomeSDK
6608
8214
  :STRIPE,
6609
8215
  MetronomeSDK::Models::V2::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
6610
8216
  )
8217
+ ANROK =
8218
+ T.let(
8219
+ :ANROK,
8220
+ MetronomeSDK::Models::V2::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
8221
+ )
8222
+ PRECALCULATED =
8223
+ T.let(
8224
+ :PRECALCULATED,
8225
+ MetronomeSDK::Models::V2::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
8226
+ )
6611
8227
 
6612
8228
  sig do
6613
8229
  override.returns(
@@ -6621,6 +8237,443 @@ module MetronomeSDK
6621
8237
  end
6622
8238
  end
6623
8239
  end
8240
+
8241
+ class Subscription < MetronomeSDK::Internal::Type::BaseModel
8242
+ OrHash =
8243
+ T.type_alias do
8244
+ T.any(
8245
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription,
8246
+ MetronomeSDK::Internal::AnyHash
8247
+ )
8248
+ end
8249
+
8250
+ sig do
8251
+ returns(
8252
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::CollectionSchedule::TaggedSymbol
8253
+ )
8254
+ end
8255
+ attr_accessor :collection_schedule
8256
+
8257
+ sig do
8258
+ returns(
8259
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::Proration
8260
+ )
8261
+ end
8262
+ attr_reader :proration
8263
+
8264
+ sig do
8265
+ params(
8266
+ proration:
8267
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::Proration::OrHash
8268
+ ).void
8269
+ end
8270
+ attr_writer :proration
8271
+
8272
+ # List of quantity schedule items for the subscription. Only includes the current
8273
+ # quantity and future quantity changes.
8274
+ sig do
8275
+ returns(
8276
+ T::Array[
8277
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::QuantitySchedule
8278
+ ]
8279
+ )
8280
+ end
8281
+ attr_accessor :quantity_schedule
8282
+
8283
+ sig { returns(Time) }
8284
+ attr_accessor :starting_at
8285
+
8286
+ sig do
8287
+ returns(
8288
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::SubscriptionRate
8289
+ )
8290
+ end
8291
+ attr_reader :subscription_rate
8292
+
8293
+ sig do
8294
+ params(
8295
+ subscription_rate:
8296
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::SubscriptionRate::OrHash
8297
+ ).void
8298
+ end
8299
+ attr_writer :subscription_rate
8300
+
8301
+ sig { returns(T.nilable(String)) }
8302
+ attr_reader :id
8303
+
8304
+ sig { params(id: String).void }
8305
+ attr_writer :id
8306
+
8307
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
8308
+ attr_reader :custom_fields
8309
+
8310
+ sig { params(custom_fields: T::Hash[Symbol, String]).void }
8311
+ attr_writer :custom_fields
8312
+
8313
+ sig { returns(T.nilable(String)) }
8314
+ attr_reader :description
8315
+
8316
+ sig { params(description: String).void }
8317
+ attr_writer :description
8318
+
8319
+ sig { returns(T.nilable(Time)) }
8320
+ attr_reader :ending_before
8321
+
8322
+ sig { params(ending_before: Time).void }
8323
+ attr_writer :ending_before
8324
+
8325
+ sig { returns(T.nilable(String)) }
8326
+ attr_reader :fiat_credit_type_id
8327
+
8328
+ sig { params(fiat_credit_type_id: String).void }
8329
+ attr_writer :fiat_credit_type_id
8330
+
8331
+ sig { returns(T.nilable(String)) }
8332
+ attr_reader :name
8333
+
8334
+ sig { params(name: String).void }
8335
+ attr_writer :name
8336
+
8337
+ sig do
8338
+ params(
8339
+ collection_schedule:
8340
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::CollectionSchedule::OrSymbol,
8341
+ proration:
8342
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::Proration::OrHash,
8343
+ quantity_schedule:
8344
+ T::Array[
8345
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::QuantitySchedule::OrHash
8346
+ ],
8347
+ starting_at: Time,
8348
+ subscription_rate:
8349
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::SubscriptionRate::OrHash,
8350
+ id: String,
8351
+ custom_fields: T::Hash[Symbol, String],
8352
+ description: String,
8353
+ ending_before: Time,
8354
+ fiat_credit_type_id: String,
8355
+ name: String
8356
+ ).returns(T.attached_class)
8357
+ end
8358
+ def self.new(
8359
+ collection_schedule:,
8360
+ proration:,
8361
+ # List of quantity schedule items for the subscription. Only includes the current
8362
+ # quantity and future quantity changes.
8363
+ quantity_schedule:,
8364
+ starting_at:,
8365
+ subscription_rate:,
8366
+ id: nil,
8367
+ custom_fields: nil,
8368
+ description: nil,
8369
+ ending_before: nil,
8370
+ fiat_credit_type_id: nil,
8371
+ name: nil
8372
+ )
8373
+ end
8374
+
8375
+ sig do
8376
+ override.returns(
8377
+ {
8378
+ collection_schedule:
8379
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::CollectionSchedule::TaggedSymbol,
8380
+ proration:
8381
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::Proration,
8382
+ quantity_schedule:
8383
+ T::Array[
8384
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::QuantitySchedule
8385
+ ],
8386
+ starting_at: Time,
8387
+ subscription_rate:
8388
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::SubscriptionRate,
8389
+ id: String,
8390
+ custom_fields: T::Hash[Symbol, String],
8391
+ description: String,
8392
+ ending_before: Time,
8393
+ fiat_credit_type_id: String,
8394
+ name: String
8395
+ }
8396
+ )
8397
+ end
8398
+ def to_hash
8399
+ end
8400
+
8401
+ module CollectionSchedule
8402
+ extend MetronomeSDK::Internal::Type::Enum
8403
+
8404
+ TaggedSymbol =
8405
+ T.type_alias do
8406
+ T.all(
8407
+ Symbol,
8408
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::CollectionSchedule
8409
+ )
8410
+ end
8411
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
8412
+
8413
+ ADVANCE =
8414
+ T.let(
8415
+ :ADVANCE,
8416
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::CollectionSchedule::TaggedSymbol
8417
+ )
8418
+ ARREARS =
8419
+ T.let(
8420
+ :ARREARS,
8421
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::CollectionSchedule::TaggedSymbol
8422
+ )
8423
+
8424
+ sig do
8425
+ override.returns(
8426
+ T::Array[
8427
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::CollectionSchedule::TaggedSymbol
8428
+ ]
8429
+ )
8430
+ end
8431
+ def self.values
8432
+ end
8433
+ end
8434
+
8435
+ class Proration < MetronomeSDK::Internal::Type::BaseModel
8436
+ OrHash =
8437
+ T.type_alias do
8438
+ T.any(
8439
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::Proration,
8440
+ MetronomeSDK::Internal::AnyHash
8441
+ )
8442
+ end
8443
+
8444
+ sig do
8445
+ returns(
8446
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::Proration::InvoiceBehavior::TaggedSymbol
8447
+ )
8448
+ end
8449
+ attr_accessor :invoice_behavior
8450
+
8451
+ sig { returns(T::Boolean) }
8452
+ attr_accessor :is_prorated
8453
+
8454
+ sig do
8455
+ params(
8456
+ invoice_behavior:
8457
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::Proration::InvoiceBehavior::OrSymbol,
8458
+ is_prorated: T::Boolean
8459
+ ).returns(T.attached_class)
8460
+ end
8461
+ def self.new(invoice_behavior:, is_prorated:)
8462
+ end
8463
+
8464
+ sig do
8465
+ override.returns(
8466
+ {
8467
+ invoice_behavior:
8468
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::Proration::InvoiceBehavior::TaggedSymbol,
8469
+ is_prorated: T::Boolean
8470
+ }
8471
+ )
8472
+ end
8473
+ def to_hash
8474
+ end
8475
+
8476
+ module InvoiceBehavior
8477
+ extend MetronomeSDK::Internal::Type::Enum
8478
+
8479
+ TaggedSymbol =
8480
+ T.type_alias do
8481
+ T.all(
8482
+ Symbol,
8483
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::Proration::InvoiceBehavior
8484
+ )
8485
+ end
8486
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
8487
+
8488
+ BILL_IMMEDIATELY =
8489
+ T.let(
8490
+ :BILL_IMMEDIATELY,
8491
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::Proration::InvoiceBehavior::TaggedSymbol
8492
+ )
8493
+ BILL_ON_NEXT_COLLECTION_DATE =
8494
+ T.let(
8495
+ :BILL_ON_NEXT_COLLECTION_DATE,
8496
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::Proration::InvoiceBehavior::TaggedSymbol
8497
+ )
8498
+
8499
+ sig do
8500
+ override.returns(
8501
+ T::Array[
8502
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::Proration::InvoiceBehavior::TaggedSymbol
8503
+ ]
8504
+ )
8505
+ end
8506
+ def self.values
8507
+ end
8508
+ end
8509
+ end
8510
+
8511
+ class QuantitySchedule < MetronomeSDK::Internal::Type::BaseModel
8512
+ OrHash =
8513
+ T.type_alias do
8514
+ T.any(
8515
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::QuantitySchedule,
8516
+ MetronomeSDK::Internal::AnyHash
8517
+ )
8518
+ end
8519
+
8520
+ sig { returns(Float) }
8521
+ attr_accessor :quantity
8522
+
8523
+ sig { returns(Time) }
8524
+ attr_accessor :starting_at
8525
+
8526
+ sig { returns(T.nilable(Time)) }
8527
+ attr_reader :ending_before
8528
+
8529
+ sig { params(ending_before: Time).void }
8530
+ attr_writer :ending_before
8531
+
8532
+ sig do
8533
+ params(
8534
+ quantity: Float,
8535
+ starting_at: Time,
8536
+ ending_before: Time
8537
+ ).returns(T.attached_class)
8538
+ end
8539
+ def self.new(quantity:, starting_at:, ending_before: nil)
8540
+ end
8541
+
8542
+ sig do
8543
+ override.returns(
8544
+ { quantity: Float, starting_at: Time, ending_before: Time }
8545
+ )
8546
+ end
8547
+ def to_hash
8548
+ end
8549
+ end
8550
+
8551
+ class SubscriptionRate < MetronomeSDK::Internal::Type::BaseModel
8552
+ OrHash =
8553
+ T.type_alias do
8554
+ T.any(
8555
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::SubscriptionRate,
8556
+ MetronomeSDK::Internal::AnyHash
8557
+ )
8558
+ end
8559
+
8560
+ sig do
8561
+ returns(
8562
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::SubscriptionRate::BillingFrequency::TaggedSymbol
8563
+ )
8564
+ end
8565
+ attr_accessor :billing_frequency
8566
+
8567
+ sig do
8568
+ returns(
8569
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::SubscriptionRate::Product
8570
+ )
8571
+ end
8572
+ attr_reader :product
8573
+
8574
+ sig do
8575
+ params(
8576
+ product:
8577
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::SubscriptionRate::Product::OrHash
8578
+ ).void
8579
+ end
8580
+ attr_writer :product
8581
+
8582
+ sig do
8583
+ params(
8584
+ billing_frequency:
8585
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::SubscriptionRate::BillingFrequency::OrSymbol,
8586
+ product:
8587
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::SubscriptionRate::Product::OrHash
8588
+ ).returns(T.attached_class)
8589
+ end
8590
+ def self.new(billing_frequency:, product:)
8591
+ end
8592
+
8593
+ sig do
8594
+ override.returns(
8595
+ {
8596
+ billing_frequency:
8597
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::SubscriptionRate::BillingFrequency::TaggedSymbol,
8598
+ product:
8599
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::SubscriptionRate::Product
8600
+ }
8601
+ )
8602
+ end
8603
+ def to_hash
8604
+ end
8605
+
8606
+ module BillingFrequency
8607
+ extend MetronomeSDK::Internal::Type::Enum
8608
+
8609
+ TaggedSymbol =
8610
+ T.type_alias do
8611
+ T.all(
8612
+ Symbol,
8613
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::SubscriptionRate::BillingFrequency
8614
+ )
8615
+ end
8616
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
8617
+
8618
+ MONTHLY =
8619
+ T.let(
8620
+ :MONTHLY,
8621
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::SubscriptionRate::BillingFrequency::TaggedSymbol
8622
+ )
8623
+ QUARTERLY =
8624
+ T.let(
8625
+ :QUARTERLY,
8626
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::SubscriptionRate::BillingFrequency::TaggedSymbol
8627
+ )
8628
+ ANNUAL =
8629
+ T.let(
8630
+ :ANNUAL,
8631
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::SubscriptionRate::BillingFrequency::TaggedSymbol
8632
+ )
8633
+ WEEKLY =
8634
+ T.let(
8635
+ :WEEKLY,
8636
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::SubscriptionRate::BillingFrequency::TaggedSymbol
8637
+ )
8638
+
8639
+ sig do
8640
+ override.returns(
8641
+ T::Array[
8642
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::SubscriptionRate::BillingFrequency::TaggedSymbol
8643
+ ]
8644
+ )
8645
+ end
8646
+ def self.values
8647
+ end
8648
+ end
8649
+
8650
+ class Product < MetronomeSDK::Internal::Type::BaseModel
8651
+ OrHash =
8652
+ T.type_alias do
8653
+ T.any(
8654
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Subscription::SubscriptionRate::Product,
8655
+ MetronomeSDK::Internal::AnyHash
8656
+ )
8657
+ end
8658
+
8659
+ sig { returns(String) }
8660
+ attr_accessor :id
8661
+
8662
+ sig { returns(String) }
8663
+ attr_accessor :name
8664
+
8665
+ sig do
8666
+ params(id: String, name: String).returns(T.attached_class)
8667
+ end
8668
+ def self.new(id:, name:)
8669
+ end
8670
+
8671
+ sig { override.returns({ id: String, name: String }) }
8672
+ def to_hash
8673
+ end
8674
+ end
8675
+ end
8676
+ end
6624
8677
  end
6625
8678
  end
6626
8679
  end