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