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

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 (417) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +56 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/errors.rb +22 -0
  5. data/lib/metronome_sdk/internal/cursor_page.rb +1 -1
  6. data/lib/metronome_sdk/internal/transport/base_client.rb +10 -2
  7. data/lib/metronome_sdk/internal/type/array_of.rb +6 -1
  8. data/lib/metronome_sdk/internal/type/base_model.rb +82 -26
  9. data/lib/metronome_sdk/internal/type/boolean.rb +7 -1
  10. data/lib/metronome_sdk/internal/type/converter.rb +42 -34
  11. data/lib/metronome_sdk/internal/type/enum.rb +16 -5
  12. data/lib/metronome_sdk/internal/type/file_input.rb +6 -1
  13. data/lib/metronome_sdk/internal/type/hash_of.rb +6 -1
  14. data/lib/metronome_sdk/internal/type/union.rb +17 -9
  15. data/lib/metronome_sdk/internal/type/unknown.rb +7 -1
  16. data/lib/metronome_sdk/internal/util.rb +8 -9
  17. data/lib/metronome_sdk/models/base_usage_filter.rb +27 -0
  18. data/lib/metronome_sdk/models/commit.rb +1053 -0
  19. data/lib/metronome_sdk/models/contract_without_amendments.rb +2043 -0
  20. data/lib/metronome_sdk/models/credit.rb +677 -0
  21. data/lib/metronome_sdk/models/credit_type_data.rb +21 -0
  22. data/lib/metronome_sdk/models/discount.rb +68 -0
  23. data/lib/metronome_sdk/models/event_type_filter.rb +33 -0
  24. data/lib/metronome_sdk/models/id.rb +15 -0
  25. data/lib/metronome_sdk/models/override.rb +381 -0
  26. data/lib/metronome_sdk/models/pro_service.rb +73 -0
  27. data/lib/metronome_sdk/models/property_filter.rb +52 -0
  28. data/lib/metronome_sdk/models/rate.rb +101 -0
  29. data/lib/metronome_sdk/models/schedule_duration.rb +50 -0
  30. data/lib/metronome_sdk/models/schedule_point_in_time.rb +62 -0
  31. data/lib/metronome_sdk/models/scheduled_charge.rb +76 -0
  32. data/lib/metronome_sdk/models/tier.rb +21 -0
  33. data/lib/metronome_sdk/models/v1/alert_archive_response.rb +3 -14
  34. data/lib/metronome_sdk/models/v1/alert_create_params.rb +4 -1
  35. data/lib/metronome_sdk/models/v1/alert_create_response.rb +3 -14
  36. data/lib/metronome_sdk/models/v1/billable_metric_archive_params.rb +2 -8
  37. data/lib/metronome_sdk/models/v1/billable_metric_archive_response.rb +3 -14
  38. data/lib/metronome_sdk/models/v1/billable_metric_create_params.rb +6 -86
  39. data/lib/metronome_sdk/models/v1/billable_metric_create_response.rb +3 -14
  40. data/lib/metronome_sdk/models/v1/billable_metric_list_response.rb +6 -85
  41. data/lib/metronome_sdk/models/v1/billable_metric_retrieve_response.rb +8 -85
  42. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +312 -35
  43. data/lib/metronome_sdk/models/v1/contract_amend_response.rb +3 -14
  44. data/lib/metronome_sdk/models/v1/contract_archive_response.rb +3 -14
  45. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_response.rb +3 -1276
  46. data/lib/metronome_sdk/models/v1/contract_create_params.rb +792 -104
  47. data/lib/metronome_sdk/models/v1/contract_create_response.rb +3 -14
  48. data/lib/metronome_sdk/models/v1/contract_list_balances_params.rb +9 -1
  49. data/lib/metronome_sdk/models/v1/contract_list_balances_response.rb +5 -1645
  50. data/lib/metronome_sdk/models/v1/contract_list_response.rb +253 -10692
  51. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rb +9 -295
  52. data/lib/metronome_sdk/models/v1/contract_retrieve_response.rb +254 -10721
  53. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rb +3 -1276
  54. data/lib/metronome_sdk/models/v1/contract_update_end_date_response.rb +3 -14
  55. data/lib/metronome_sdk/models/v1/contracts/product_archive_response.rb +3 -14
  56. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +6 -97
  57. data/lib/metronome_sdk/models/v1/contracts/product_create_response.rb +3 -14
  58. data/lib/metronome_sdk/models/v1/contracts/product_list_item_state.rb +148 -0
  59. data/lib/metronome_sdk/models/v1/contracts/product_list_response.rb +12 -561
  60. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_params.rb +2 -8
  61. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_response.rb +14 -559
  62. data/lib/metronome_sdk/models/v1/contracts/product_update_params.rb +6 -97
  63. data/lib/metronome_sdk/models/v1/contracts/product_update_response.rb +3 -14
  64. data/lib/metronome_sdk/models/v1/contracts/quantity_conversion.rb +57 -0
  65. data/lib/metronome_sdk/models/v1/contracts/quantity_rounding.rb +45 -0
  66. data/lib/metronome_sdk/models/v1/contracts/rate_card_archive_params.rb +2 -8
  67. data/lib/metronome_sdk/models/v1/contracts/rate_card_archive_response.rb +3 -14
  68. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_response.rb +3 -14
  69. data/lib/metronome_sdk/models/v1/contracts/rate_card_list_response.rb +6 -42
  70. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rb +2 -8
  71. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rb +6 -159
  72. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rb +6 -42
  73. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_response.rb +3 -14
  74. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rb +3 -14
  75. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rb +3 -14
  76. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +6 -44
  77. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rb +3 -16
  78. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +6 -44
  79. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +9 -61
  80. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rb +6 -158
  81. data/lib/metronome_sdk/models/v1/credit_grant_create_params.rb +5 -77
  82. data/lib/metronome_sdk/models/v1/credit_grant_create_response.rb +3 -14
  83. data/lib/metronome_sdk/models/v1/credit_grant_edit_response.rb +3 -14
  84. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_params.rb +20 -1
  85. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_response.rb +11 -153
  86. data/lib/metronome_sdk/models/v1/credit_grant_list_response.rb +14 -175
  87. data/lib/metronome_sdk/models/v1/credit_grant_void_response.rb +3 -14
  88. data/lib/metronome_sdk/models/v1/credit_ledger_entry.rb +69 -0
  89. data/lib/metronome_sdk/models/v1/customer.rb +53 -0
  90. data/lib/metronome_sdk/models/v1/customer_archive_params.rb +2 -8
  91. data/lib/metronome_sdk/models/v1/customer_archive_response.rb +3 -14
  92. data/lib/metronome_sdk/models/v1/customer_create_response.rb +3 -50
  93. data/lib/metronome_sdk/models/v1/{customer_list_response.rb → customer_detail.rb} +14 -15
  94. data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_response.rb +6 -86
  95. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +115 -0
  96. data/lib/metronome_sdk/models/v1/customer_preview_events_response.rb +18 -0
  97. data/lib/metronome_sdk/models/v1/customer_retrieve_response.rb +3 -126
  98. data/lib/metronome_sdk/models/v1/customer_set_name_response.rb +3 -50
  99. data/lib/metronome_sdk/models/v1/customers/alert_list_response.rb +5 -276
  100. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_response.rb +3 -279
  101. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +9 -1
  102. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +8 -6
  103. data/lib/metronome_sdk/models/v1/customers/commit_create_response.rb +3 -14
  104. data/lib/metronome_sdk/models/v1/customers/commit_list_params.rb +9 -1
  105. data/lib/metronome_sdk/models/v1/customers/commit_list_response.rb +3 -1047
  106. data/lib/metronome_sdk/models/v1/customers/commit_update_end_date_response.rb +3 -14
  107. data/lib/metronome_sdk/models/v1/customers/credit_create_response.rb +3 -14
  108. data/lib/metronome_sdk/models/v1/customers/credit_list_params.rb +9 -1
  109. data/lib/metronome_sdk/models/v1/customers/credit_list_response.rb +3 -593
  110. data/lib/metronome_sdk/models/v1/customers/credit_update_end_date_response.rb +3 -14
  111. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +270 -0
  112. data/lib/metronome_sdk/models/v1/customers/{invoice_list_response.rb → invoice.rb} +119 -303
  113. data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rb +2 -1271
  114. data/lib/metronome_sdk/models/v1/customers/invoice_retrieve_response.rb +3 -1276
  115. data/lib/metronome_sdk/models/v1/customers/plan_add_response.rb +3 -14
  116. data/lib/metronome_sdk/models/v1/customers/plan_list_response.rb +3 -21
  117. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +1 -0
  118. data/lib/metronome_sdk/models/v1/plan_detail.rb +200 -0
  119. data/lib/metronome_sdk/models/v1/plan_get_details_response.rb +3 -286
  120. data/lib/metronome_sdk/models/v1/plan_list_charges_response.rb +3 -20
  121. data/lib/metronome_sdk/models/v1/plan_list_customers_response.rb +3 -128
  122. data/lib/metronome_sdk/models/v1/rollover_amount_max_amount.rb +38 -0
  123. data/lib/metronome_sdk/models/v1/rollover_amount_max_percentage.rb +38 -0
  124. data/lib/metronome_sdk/models/v1/usage_search_params.rb +24 -0
  125. data/lib/metronome_sdk/models/v1/usage_search_response.rb +249 -0
  126. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +11 -8
  127. data/lib/metronome_sdk/models/v2/contract_edit_commit_response.rb +3 -14
  128. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +3 -2
  129. data/lib/metronome_sdk/models/v2/contract_edit_credit_response.rb +3 -14
  130. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +1127 -105
  131. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +3 -14
  132. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +577 -643
  133. data/lib/metronome_sdk/models/v2/contract_list_response.rb +917 -746
  134. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +917 -748
  135. data/lib/metronome_sdk/models.rb +36 -4
  136. data/lib/metronome_sdk/resources/v1/alerts.rb +1 -1
  137. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +2 -2
  138. data/lib/metronome_sdk/resources/v1/contracts/products.rb +4 -4
  139. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +1 -1
  140. data/lib/metronome_sdk/resources/v1/contracts.rb +11 -5
  141. data/lib/metronome_sdk/resources/v1/credit_grants.rb +4 -2
  142. data/lib/metronome_sdk/resources/v1/customers/commits.rb +5 -3
  143. data/lib/metronome_sdk/resources/v1/customers/credits.rb +3 -1
  144. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +2 -2
  145. data/lib/metronome_sdk/resources/v1/customers.rb +40 -2
  146. data/lib/metronome_sdk/resources/v1/usage.rb +25 -0
  147. data/lib/metronome_sdk/resources/v2/contracts.rb +11 -9
  148. data/lib/metronome_sdk/version.rb +1 -1
  149. data/lib/metronome_sdk.rb +31 -2
  150. data/rbi/metronome_sdk/errors.rbi +16 -0
  151. data/rbi/metronome_sdk/internal/type/boolean.rbi +2 -0
  152. data/rbi/metronome_sdk/internal/type/converter.rbi +15 -15
  153. data/rbi/metronome_sdk/internal/type/union.rbi +5 -0
  154. data/rbi/metronome_sdk/internal/type/unknown.rbi +2 -0
  155. data/rbi/metronome_sdk/internal/util.rbi +2 -0
  156. data/rbi/metronome_sdk/models/base_usage_filter.rbi +46 -0
  157. data/rbi/metronome_sdk/models/commit.rbi +2046 -0
  158. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +4260 -0
  159. data/rbi/metronome_sdk/models/credit.rbi +1314 -0
  160. data/rbi/metronome_sdk/models/credit_type_data.rbi +26 -0
  161. data/rbi/metronome_sdk/models/discount.rbi +106 -0
  162. data/rbi/metronome_sdk/models/event_type_filter.rbi +57 -0
  163. data/rbi/metronome_sdk/models/id.rbi +23 -0
  164. data/rbi/metronome_sdk/models/override.rbi +675 -0
  165. data/rbi/metronome_sdk/models/pro_service.rbi +98 -0
  166. data/rbi/metronome_sdk/models/property_filter.rbi +88 -0
  167. data/rbi/metronome_sdk/models/rate.rbi +155 -0
  168. data/rbi/metronome_sdk/models/schedule_duration.rbi +89 -0
  169. data/rbi/metronome_sdk/models/schedule_point_in_time.rbi +121 -0
  170. data/rbi/metronome_sdk/models/scheduled_charge.rbi +119 -0
  171. data/rbi/metronome_sdk/models/tier.rbi +29 -0
  172. data/rbi/metronome_sdk/models/v1/alert_archive_response.rbi +4 -37
  173. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +6 -0
  174. data/rbi/metronome_sdk/models/v1/alert_create_response.rbi +4 -37
  175. data/rbi/metronome_sdk/models/v1/billable_metric_archive_params.rbi +6 -12
  176. data/rbi/metronome_sdk/models/v1/billable_metric_archive_response.rbi +4 -44
  177. data/rbi/metronome_sdk/models/v1/billable_metric_create_params.rbi +8 -177
  178. data/rbi/metronome_sdk/models/v1/billable_metric_create_response.rbi +4 -43
  179. data/rbi/metronome_sdk/models/v1/billable_metric_list_response.rbi +8 -177
  180. data/rbi/metronome_sdk/models/v1/billable_metric_retrieve_response.rbi +8 -175
  181. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +712 -68
  182. data/rbi/metronome_sdk/models/v1/contract_amend_response.rbi +4 -37
  183. data/rbi/metronome_sdk/models/v1/contract_archive_response.rbi +4 -39
  184. data/rbi/metronome_sdk/models/v1/contract_create_historical_invoices_response.rbi +3 -2595
  185. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1738 -210
  186. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +4 -37
  187. data/rbi/metronome_sdk/models/v1/contract_list_balances_params.rbi +11 -0
  188. data/rbi/metronome_sdk/models/v1/contract_list_balances_response.rbi +3 -3366
  189. data/rbi/metronome_sdk/models/v1/contract_list_response.rbi +375 -22523
  190. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbi +12 -632
  191. data/rbi/metronome_sdk/models/v1/contract_retrieve_response.rbi +375 -22523
  192. data/rbi/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rbi +3 -2595
  193. data/rbi/metronome_sdk/models/v1/contract_update_end_date_response.rbi +4 -44
  194. data/rbi/metronome_sdk/models/v1/contracts/product_archive_response.rbi +4 -44
  195. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +8 -209
  196. data/rbi/metronome_sdk/models/v1/contracts/product_create_response.rbi +4 -44
  197. data/rbi/metronome_sdk/models/v1/contracts/product_list_item_state.rbi +237 -0
  198. data/rbi/metronome_sdk/models/v1/contracts/product_list_response.rbi +76 -1143
  199. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_params.rbi +3 -9
  200. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_response.rbi +76 -1137
  201. data/rbi/metronome_sdk/models/v1/contracts/product_update_params.rbi +8 -209
  202. data/rbi/metronome_sdk/models/v1/contracts/product_update_response.rbi +4 -44
  203. data/rbi/metronome_sdk/models/v1/contracts/quantity_conversion.rbi +111 -0
  204. data/rbi/metronome_sdk/models/v1/contracts/quantity_rounding.rbi +94 -0
  205. data/rbi/metronome_sdk/models/v1/contracts/rate_card_archive_params.rbi +3 -9
  206. data/rbi/metronome_sdk/models/v1/contracts/rate_card_archive_response.rbi +4 -44
  207. data/rbi/metronome_sdk/models/v1/contracts/rate_card_create_response.rbi +4 -44
  208. data/rbi/metronome_sdk/models/v1/contracts/rate_card_list_response.rbi +8 -74
  209. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rbi +3 -9
  210. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbi +8 -344
  211. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbi +8 -74
  212. data/rbi/metronome_sdk/models/v1/contracts/rate_card_update_response.rbi +4 -44
  213. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rbi +4 -44
  214. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rbi +4 -44
  215. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +8 -108
  216. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rbi +4 -45
  217. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +8 -108
  218. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +12 -149
  219. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbi +8 -344
  220. data/rbi/metronome_sdk/models/v1/credit_grant_create_params.rbi +8 -166
  221. data/rbi/metronome_sdk/models/v1/credit_grant_create_response.rbi +4 -41
  222. data/rbi/metronome_sdk/models/v1/credit_grant_edit_response.rbi +4 -39
  223. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_params.rbi +58 -0
  224. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_response.rbi +10 -231
  225. data/rbi/metronome_sdk/models/v1/credit_grant_list_response.rbi +14 -281
  226. data/rbi/metronome_sdk/models/v1/credit_grant_void_response.rbi +4 -39
  227. data/rbi/metronome_sdk/models/v1/credit_ledger_entry.rbi +90 -0
  228. data/rbi/metronome_sdk/models/v1/customer.rbi +74 -0
  229. data/rbi/metronome_sdk/models/v1/customer_archive_params.rbi +6 -12
  230. data/rbi/metronome_sdk/models/v1/customer_archive_response.rbi +4 -39
  231. data/rbi/metronome_sdk/models/v1/customer_create_response.rbi +6 -84
  232. data/rbi/metronome_sdk/models/v1/{customer_list_response.rbi → customer_detail.rbi} +19 -26
  233. data/rbi/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbi +8 -177
  234. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +214 -0
  235. data/rbi/metronome_sdk/models/v1/customer_preview_events_response.rbi +35 -0
  236. data/rbi/metronome_sdk/models/v1/customer_retrieve_response.rbi +6 -255
  237. data/rbi/metronome_sdk/models/v1/customer_set_name_response.rbi +6 -86
  238. data/rbi/metronome_sdk/models/v1/customers/alert_list_response.rbi +3 -623
  239. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_response.rbi +4 -622
  240. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +11 -0
  241. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +12 -8
  242. data/rbi/metronome_sdk/models/v1/customers/commit_create_response.rbi +4 -44
  243. data/rbi/metronome_sdk/models/v1/customers/commit_list_params.rbi +11 -0
  244. data/rbi/metronome_sdk/models/v1/customers/commit_list_response.rbi +3 -2164
  245. data/rbi/metronome_sdk/models/v1/customers/commit_update_end_date_response.rbi +4 -44
  246. data/rbi/metronome_sdk/models/v1/customers/credit_create_response.rbi +4 -44
  247. data/rbi/metronome_sdk/models/v1/customers/credit_list_params.rbi +11 -0
  248. data/rbi/metronome_sdk/models/v1/customers/credit_list_response.rbi +3 -1224
  249. data/rbi/metronome_sdk/models/v1/customers/credit_update_end_date_response.rbi +4 -44
  250. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +572 -0
  251. data/rbi/metronome_sdk/models/v1/customers/{invoice_list_response.rbi → invoice.rbi} +182 -589
  252. data/rbi/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rbi +4 -2561
  253. data/rbi/metronome_sdk/models/v1/customers/invoice_retrieve_response.rbi +6 -2612
  254. data/rbi/metronome_sdk/models/v1/customers/plan_add_response.rbi +4 -41
  255. data/rbi/metronome_sdk/models/v1/customers/plan_list_response.rbi +4 -39
  256. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +5 -0
  257. data/rbi/metronome_sdk/models/v1/plan_detail.rbi +349 -0
  258. data/rbi/metronome_sdk/models/v1/plan_get_details_response.rbi +6 -560
  259. data/rbi/metronome_sdk/models/v1/plan_list_charges_response.rbi +4 -37
  260. data/rbi/metronome_sdk/models/v1/plan_list_customers_response.rbi +4 -248
  261. data/rbi/metronome_sdk/models/v1/rollover_amount_max_amount.rbi +79 -0
  262. data/rbi/metronome_sdk/models/v1/rollover_amount_max_percentage.rbi +80 -0
  263. data/rbi/metronome_sdk/models/v1/usage_search_params.rbi +48 -0
  264. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +438 -0
  265. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +23 -23
  266. data/rbi/metronome_sdk/models/v2/contract_edit_commit_response.rbi +4 -41
  267. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +11 -15
  268. data/rbi/metronome_sdk/models/v2/contract_edit_credit_response.rbi +4 -41
  269. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +2463 -206
  270. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +4 -37
  271. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1381 -1550
  272. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +2017 -1466
  273. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +2017 -1466
  274. data/rbi/metronome_sdk/models.rbi +32 -0
  275. data/rbi/metronome_sdk/resources/v1/alerts.rbi +3 -0
  276. data/rbi/metronome_sdk/resources/v1/billable_metrics.rbi +2 -6
  277. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +4 -4
  278. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +1 -4
  279. data/rbi/metronome_sdk/resources/v1/contracts.rbi +13 -4
  280. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +4 -0
  281. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +9 -4
  282. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +3 -0
  283. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +1 -1
  284. data/rbi/metronome_sdk/resources/v1/customers.rbi +34 -3
  285. data/rbi/metronome_sdk/resources/v1/usage.rbi +17 -0
  286. data/rbi/metronome_sdk/resources/v2/contracts.rbi +24 -14
  287. data/sig/metronome_sdk/errors.rbs +9 -0
  288. data/sig/metronome_sdk/internal/type/converter.rbs +7 -1
  289. data/sig/metronome_sdk/models/base_usage_filter.rbs +28 -0
  290. data/sig/metronome_sdk/models/commit.rbs +1063 -0
  291. data/sig/metronome_sdk/models/contract_without_amendments.rbs +1828 -0
  292. data/sig/metronome_sdk/models/credit.rbs +686 -0
  293. data/sig/metronome_sdk/models/credit_type_data.rbs +15 -0
  294. data/sig/metronome_sdk/models/discount.rbs +63 -0
  295. data/sig/metronome_sdk/models/event_type_filter.rbs +26 -0
  296. data/sig/metronome_sdk/models/id.rbs +13 -0
  297. data/sig/metronome_sdk/models/override.rbs +399 -0
  298. data/sig/metronome_sdk/models/pro_service.rbs +61 -0
  299. data/sig/metronome_sdk/models/property_filter.rbs +41 -0
  300. data/sig/metronome_sdk/models/rate.rbs +94 -0
  301. data/sig/metronome_sdk/models/schedule_duration.rbs +56 -0
  302. data/sig/metronome_sdk/models/schedule_point_in_time.rbs +75 -0
  303. data/sig/metronome_sdk/models/scheduled_charge.rbs +70 -0
  304. data/sig/metronome_sdk/models/tier.rbs +17 -0
  305. data/sig/metronome_sdk/models/v1/alert_archive_response.rbs +4 -19
  306. data/sig/metronome_sdk/models/v1/alert_create_response.rbs +4 -19
  307. data/sig/metronome_sdk/models/v1/billable_metric_archive_params.rbs +4 -12
  308. data/sig/metronome_sdk/models/v1/billable_metric_archive_response.rbs +4 -19
  309. data/sig/metronome_sdk/models/v1/billable_metric_create_params.rbs +12 -73
  310. data/sig/metronome_sdk/models/v1/billable_metric_create_response.rbs +4 -19
  311. data/sig/metronome_sdk/models/v1/billable_metric_list_response.rbs +12 -73
  312. data/sig/metronome_sdk/models/v1/billable_metric_retrieve_response.rbs +12 -73
  313. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +291 -24
  314. data/sig/metronome_sdk/models/v1/contract_amend_response.rbs +4 -19
  315. data/sig/metronome_sdk/models/v1/contract_archive_response.rbs +4 -19
  316. data/sig/metronome_sdk/models/v1/contract_create_historical_invoices_response.rbs +4 -1291
  317. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +694 -84
  318. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +4 -19
  319. data/sig/metronome_sdk/models/v1/contract_list_balances_params.rbs +7 -0
  320. data/sig/metronome_sdk/models/v1/contract_list_balances_response.rbs +1 -1642
  321. data/sig/metronome_sdk/models/v1/contract_list_response.rbs +188 -10437
  322. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbs +15 -271
  323. data/sig/metronome_sdk/models/v1/contract_retrieve_response.rbs +188 -10437
  324. data/sig/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rbs +4 -1291
  325. data/sig/metronome_sdk/models/v1/contract_update_end_date_response.rbs +4 -19
  326. data/sig/metronome_sdk/models/v1/contracts/product_archive_response.rbs +4 -21
  327. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +8 -82
  328. data/sig/metronome_sdk/models/v1/contracts/product_create_response.rbs +4 -21
  329. data/sig/metronome_sdk/models/v1/contracts/product_list_item_state.rbs +121 -0
  330. data/sig/metronome_sdk/models/v1/contracts/product_list_response.rbs +16 -466
  331. data/sig/metronome_sdk/models/v1/contracts/product_retrieve_params.rbs +4 -12
  332. data/sig/metronome_sdk/models/v1/contracts/product_retrieve_response.rbs +16 -466
  333. data/sig/metronome_sdk/models/v1/contracts/product_update_params.rbs +8 -82
  334. data/sig/metronome_sdk/models/v1/contracts/product_update_response.rbs +4 -21
  335. data/sig/metronome_sdk/models/v1/contracts/quantity_conversion.rbs +47 -0
  336. data/sig/metronome_sdk/models/v1/contracts/quantity_rounding.rbs +41 -0
  337. data/sig/metronome_sdk/models/v1/contracts/rate_card_archive_params.rbs +4 -12
  338. data/sig/metronome_sdk/models/v1/contracts/rate_card_archive_response.rbs +4 -21
  339. data/sig/metronome_sdk/models/v1/contracts/rate_card_create_response.rbs +4 -21
  340. data/sig/metronome_sdk/models/v1/contracts/rate_card_list_response.rbs +10 -34
  341. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rbs +4 -12
  342. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbs +10 -144
  343. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbs +10 -34
  344. data/sig/metronome_sdk/models/v1/contracts/rate_card_update_response.rbs +4 -21
  345. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rbs +4 -21
  346. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rbs +4 -21
  347. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +12 -40
  348. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rbs +4 -21
  349. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +12 -40
  350. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +18 -58
  351. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbs +10 -144
  352. data/sig/metronome_sdk/models/v1/credit_grant_create_params.rbs +2 -66
  353. data/sig/metronome_sdk/models/v1/credit_grant_create_response.rbs +4 -19
  354. data/sig/metronome_sdk/models/v1/credit_grant_edit_response.rbs +4 -19
  355. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_params.rbs +20 -0
  356. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_response.rbs +12 -118
  357. data/sig/metronome_sdk/models/v1/credit_grant_list_response.rbs +16 -140
  358. data/sig/metronome_sdk/models/v1/credit_grant_void_response.rbs +4 -19
  359. data/sig/metronome_sdk/models/v1/credit_ledger_entry.rbs +52 -0
  360. data/sig/metronome_sdk/models/v1/customer.rbs +44 -0
  361. data/sig/metronome_sdk/models/v1/customer_archive_params.rbs +4 -12
  362. data/sig/metronome_sdk/models/v1/customer_archive_response.rbs +4 -19
  363. data/sig/metronome_sdk/models/v1/customer_create_response.rbs +4 -48
  364. data/sig/metronome_sdk/models/v1/{customer_list_response.rbs → customer_detail.rbs} +17 -17
  365. data/sig/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbs +12 -73
  366. data/sig/metronome_sdk/models/v1/customer_preview_events_params.rbs +105 -0
  367. data/sig/metronome_sdk/models/v1/customer_preview_events_response.rbs +16 -0
  368. data/sig/metronome_sdk/models/v1/customer_retrieve_response.rbs +4 -112
  369. data/sig/metronome_sdk/models/v1/customer_set_name_response.rbs +4 -48
  370. data/sig/metronome_sdk/models/v1/customers/alert_list_response.rbs +4 -243
  371. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_response.rbs +4 -247
  372. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +7 -0
  373. data/sig/metronome_sdk/models/v1/customers/commit_create_response.rbs +4 -21
  374. data/sig/metronome_sdk/models/v1/customers/commit_list_params.rbs +7 -0
  375. data/sig/metronome_sdk/models/v1/customers/commit_list_response.rbs +4 -1057
  376. data/sig/metronome_sdk/models/v1/customers/commit_update_end_date_response.rbs +4 -21
  377. data/sig/metronome_sdk/models/v1/customers/credit_create_response.rbs +4 -21
  378. data/sig/metronome_sdk/models/v1/customers/credit_list_params.rbs +7 -0
  379. data/sig/metronome_sdk/models/v1/customers/credit_list_response.rbs +4 -596
  380. data/sig/metronome_sdk/models/v1/customers/credit_update_end_date_response.rbs +4 -21
  381. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +234 -0
  382. data/sig/metronome_sdk/models/v1/customers/{invoice_list_response.rbs → invoice.rbs} +147 -305
  383. data/sig/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rbs +8 -1278
  384. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_response.rbs +4 -1294
  385. data/sig/metronome_sdk/models/v1/customers/plan_add_response.rbs +4 -19
  386. data/sig/metronome_sdk/models/v1/customers/plan_list_response.rbs +4 -16
  387. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +2 -1
  388. data/sig/metronome_sdk/models/v1/plan_detail.rbs +203 -0
  389. data/sig/metronome_sdk/models/v1/plan_get_details_response.rbs +4 -267
  390. data/sig/metronome_sdk/models/v1/plan_list_charges_response.rbs +4 -16
  391. data/sig/metronome_sdk/models/v1/plan_list_customers_response.rbs +4 -108
  392. data/sig/metronome_sdk/models/v1/rollover_amount_max_amount.rbs +37 -0
  393. data/sig/metronome_sdk/models/v1/rollover_amount_max_percentage.rbs +37 -0
  394. data/sig/metronome_sdk/models/v1/usage_search_params.rbs +26 -0
  395. data/sig/metronome_sdk/models/v1/usage_search_response.rbs +230 -0
  396. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +4 -8
  397. data/sig/metronome_sdk/models/v2/contract_edit_commit_response.rbs +4 -19
  398. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +4 -8
  399. data/sig/metronome_sdk/models/v2/contract_edit_credit_response.rbs +4 -19
  400. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +989 -77
  401. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +4 -19
  402. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +510 -655
  403. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +970 -809
  404. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +970 -809
  405. data/sig/metronome_sdk/models.rbs +32 -0
  406. data/sig/metronome_sdk/resources/v1/billable_metrics.rbs +2 -2
  407. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +4 -4
  408. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -1
  409. data/sig/metronome_sdk/resources/v1/contracts.rbs +4 -1
  410. data/sig/metronome_sdk/resources/v1/credit_grants.rbs +1 -0
  411. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +1 -0
  412. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +1 -0
  413. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -1
  414. data/sig/metronome_sdk/resources/v1/customers.rbs +9 -1
  415. data/sig/metronome_sdk/resources/v1/usage.rbs +5 -0
  416. data/sig/metronome_sdk/resources/v2/contracts.rbs +3 -2
  417. metadata +97 -10
@@ -99,24 +99,11 @@ module MetronomeSDK
99
99
  end
100
100
  attr_writer :add_credits
101
101
 
102
- sig do
103
- returns(
104
- T.nilable(
105
- T::Array[
106
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount
107
- ]
108
- )
109
- )
110
- end
102
+ sig { returns(T.nilable(T::Array[MetronomeSDK::Discount])) }
111
103
  attr_reader :add_discounts
112
104
 
113
105
  sig do
114
- params(
115
- add_discounts:
116
- T::Array[
117
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::OrHash
118
- ]
119
- ).void
106
+ params(add_discounts: T::Array[MetronomeSDK::Discount::OrHash]).void
120
107
  end
121
108
  attr_writer :add_discounts
122
109
 
@@ -158,23 +145,12 @@ module MetronomeSDK
158
145
  end
159
146
  attr_writer :add_prepaid_balance_threshold_configuration
160
147
 
161
- sig do
162
- returns(
163
- T.nilable(
164
- T::Array[
165
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddProService
166
- ]
167
- )
168
- )
169
- end
148
+ sig { returns(T.nilable(T::Array[MetronomeSDK::ProService])) }
170
149
  attr_reader :add_pro_services
171
150
 
172
151
  sig do
173
152
  params(
174
- add_pro_services:
175
- T::Array[
176
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddProService::OrHash
177
- ]
153
+ add_pro_services: T::Array[MetronomeSDK::ProService::OrHash]
178
154
  ).void
179
155
  end
180
156
  attr_writer :add_pro_services
@@ -280,7 +256,7 @@ module MetronomeSDK
280
256
  end
281
257
  attr_writer :add_spend_threshold_configuration
282
258
 
283
- # (beta) List of subscriptions on the contract.
259
+ # List of subscriptions on the contract.
284
260
  sig do
285
261
  returns(
286
262
  T.nilable(
@@ -440,6 +416,11 @@ module MetronomeSDK
440
416
  sig { params(update_contract_end_date: Time).void }
441
417
  attr_writer :update_contract_end_date
442
418
 
419
+ # Value to update the contract name to. If not provided, the contract name will
420
+ # remain unchanged.
421
+ sig { returns(T.nilable(String)) }
422
+ attr_accessor :update_contract_name
423
+
443
424
  sig do
444
425
  returns(
445
426
  T.nilable(
@@ -600,7 +581,7 @@ module MetronomeSDK
600
581
  end
601
582
  attr_writer :update_spend_threshold_configuration
602
583
 
603
- # (beta) Optional list of subscriptions to update.
584
+ # Optional list of subscriptions to update.
604
585
  sig do
605
586
  returns(
606
587
  T.nilable(
@@ -633,20 +614,14 @@ module MetronomeSDK
633
614
  T::Array[
634
615
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::OrHash
635
616
  ],
636
- add_discounts:
637
- T::Array[
638
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::OrHash
639
- ],
617
+ add_discounts: T::Array[MetronomeSDK::Discount::OrHash],
640
618
  add_overrides:
641
619
  T::Array[
642
620
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OrHash
643
621
  ],
644
622
  add_prepaid_balance_threshold_configuration:
645
623
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddPrepaidBalanceThresholdConfiguration::OrHash,
646
- add_pro_services:
647
- T::Array[
648
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddProService::OrHash
649
- ],
624
+ add_pro_services: T::Array[MetronomeSDK::ProService::OrHash],
650
625
  add_recurring_commits:
651
626
  T::Array[
652
627
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::OrHash
@@ -695,6 +670,7 @@ module MetronomeSDK
695
670
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::OrHash
696
671
  ],
697
672
  update_contract_end_date: Time,
673
+ update_contract_name: T.nilable(String),
698
674
  update_credits:
699
675
  T::Array[
700
676
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::OrHash
@@ -742,7 +718,7 @@ module MetronomeSDK
742
718
  add_reseller_royalties: nil,
743
719
  add_scheduled_charges: nil,
744
720
  add_spend_threshold_configuration: nil,
745
- # (beta) List of subscriptions on the contract.
721
+ # List of subscriptions on the contract.
746
722
  add_subscriptions: nil,
747
723
  add_usage_filters: nil,
748
724
  archive_commits: nil,
@@ -752,6 +728,9 @@ module MetronomeSDK
752
728
  timestamp: nil,
753
729
  update_commits: nil,
754
730
  update_contract_end_date: nil,
731
+ # Value to update the contract name to. If not provided, the contract name will
732
+ # remain unchanged.
733
+ update_contract_name: nil,
755
734
  update_credits: nil,
756
735
  update_discounts: nil,
757
736
  update_prepaid_balance_threshold_configuration: nil,
@@ -760,7 +739,7 @@ module MetronomeSDK
760
739
  update_refund_invoices: nil,
761
740
  update_scheduled_charges: nil,
762
741
  update_spend_threshold_configuration: nil,
763
- # (beta) Optional list of subscriptions to update.
742
+ # Optional list of subscriptions to update.
764
743
  update_subscriptions: nil
765
744
  )
766
745
  end
@@ -777,20 +756,14 @@ module MetronomeSDK
777
756
  T::Array[
778
757
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit
779
758
  ],
780
- add_discounts:
781
- T::Array[
782
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount
783
- ],
759
+ add_discounts: T::Array[MetronomeSDK::Discount],
784
760
  add_overrides:
785
761
  T::Array[
786
762
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride
787
763
  ],
788
764
  add_prepaid_balance_threshold_configuration:
789
765
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddPrepaidBalanceThresholdConfiguration,
790
- add_pro_services:
791
- T::Array[
792
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddProService
793
- ],
766
+ add_pro_services: T::Array[MetronomeSDK::ProService],
794
767
  add_recurring_commits:
795
768
  T::Array[
796
769
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit
@@ -839,6 +812,7 @@ module MetronomeSDK
839
812
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit
840
813
  ],
841
814
  update_contract_end_date: Time,
815
+ update_contract_name: T.nilable(String),
842
816
  update_credits:
843
817
  T::Array[
844
818
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit
@@ -913,19 +887,12 @@ module MetronomeSDK
913
887
 
914
888
  # The schedule that the customer will gain access to the credits purposed with
915
889
  # this commit.
916
- sig do
917
- returns(
918
- T.nilable(
919
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::AccessSchedule
920
- )
921
- )
922
- end
890
+ sig { returns(T.nilable(MetronomeSDK::ScheduleDuration)) }
923
891
  attr_reader :access_schedule
924
892
 
925
893
  sig do
926
894
  params(
927
- access_schedule:
928
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::AccessSchedule::OrHash
895
+ access_schedule: MetronomeSDK::ScheduleDuration::OrHash
929
896
  ).void
930
897
  end
931
898
  attr_writer :access_schedule
@@ -949,19 +916,12 @@ module MetronomeSDK
949
916
  attr_writer :description
950
917
 
951
918
  # The schedule that the customer will be invoiced for this commit.
952
- sig do
953
- returns(
954
- T.nilable(
955
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule
956
- )
957
- )
958
- end
919
+ sig { returns(T.nilable(MetronomeSDK::SchedulePointInTime)) }
959
920
  attr_reader :invoice_schedule
960
921
 
961
922
  sig do
962
923
  params(
963
- invoice_schedule:
964
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::OrHash
924
+ invoice_schedule: MetronomeSDK::SchedulePointInTime::OrHash
965
925
  ).void
966
926
  end
967
927
  attr_writer :invoice_schedule
@@ -1049,13 +1009,11 @@ module MetronomeSDK
1049
1009
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::Product::OrHash,
1050
1010
  type:
1051
1011
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::Type::OrSymbol,
1052
- access_schedule:
1053
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::AccessSchedule::OrHash,
1012
+ access_schedule: MetronomeSDK::ScheduleDuration::OrHash,
1054
1013
  applicable_product_ids: T::Array[String],
1055
1014
  applicable_product_tags: T::Array[String],
1056
1015
  description: String,
1057
- invoice_schedule:
1058
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::OrHash,
1016
+ invoice_schedule: MetronomeSDK::SchedulePointInTime::OrHash,
1059
1017
  name: String,
1060
1018
  netsuite_sales_order_id: String,
1061
1019
  priority: Float,
@@ -1107,13 +1065,11 @@ module MetronomeSDK
1107
1065
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::Product,
1108
1066
  type:
1109
1067
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::Type::TaggedSymbol,
1110
- access_schedule:
1111
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::AccessSchedule,
1068
+ access_schedule: MetronomeSDK::ScheduleDuration,
1112
1069
  applicable_product_ids: T::Array[String],
1113
1070
  applicable_product_tags: T::Array[String],
1114
1071
  description: String,
1115
- invoice_schedule:
1116
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule,
1072
+ invoice_schedule: MetronomeSDK::SchedulePointInTime,
1117
1073
  name: String,
1118
1074
  netsuite_sales_order_id: String,
1119
1075
  priority: Float,
@@ -1189,415 +1145,111 @@ module MetronomeSDK
1189
1145
  end
1190
1146
  end
1191
1147
 
1192
- class AccessSchedule < MetronomeSDK::Internal::Type::BaseModel
1193
- OrHash =
1148
+ module RateType
1149
+ extend MetronomeSDK::Internal::Type::Enum
1150
+
1151
+ TaggedSymbol =
1194
1152
  T.type_alias do
1195
- T.any(
1196
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::AccessSchedule,
1197
- MetronomeSDK::Internal::AnyHash
1153
+ T.all(
1154
+ Symbol,
1155
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::RateType
1198
1156
  )
1199
1157
  end
1158
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1200
1159
 
1201
- sig do
1202
- returns(
1203
- T::Array[
1204
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::AccessSchedule::ScheduleItem
1205
- ]
1160
+ COMMIT_RATE =
1161
+ T.let(
1162
+ :COMMIT_RATE,
1163
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::RateType::TaggedSymbol
1206
1164
  )
1207
- end
1208
- attr_accessor :schedule_items
1209
-
1210
- sig do
1211
- returns(
1212
- T.nilable(
1213
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::AccessSchedule::CreditType
1214
- )
1165
+ LIST_RATE =
1166
+ T.let(
1167
+ :LIST_RATE,
1168
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::RateType::TaggedSymbol
1215
1169
  )
1216
- end
1217
- attr_reader :credit_type
1218
-
1219
- sig do
1220
- params(
1221
- credit_type:
1222
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::AccessSchedule::CreditType::OrHash
1223
- ).void
1224
- end
1225
- attr_writer :credit_type
1226
-
1227
- # The schedule that the customer will gain access to the credits purposed with
1228
- # this commit.
1229
- sig do
1230
- params(
1231
- schedule_items:
1232
- T::Array[
1233
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::AccessSchedule::ScheduleItem::OrHash
1234
- ],
1235
- credit_type:
1236
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::AccessSchedule::CreditType::OrHash
1237
- ).returns(T.attached_class)
1238
- end
1239
- def self.new(schedule_items:, credit_type: nil)
1240
- end
1241
1170
 
1242
1171
  sig do
1243
1172
  override.returns(
1244
- {
1245
- schedule_items:
1246
- T::Array[
1247
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::AccessSchedule::ScheduleItem
1248
- ],
1249
- credit_type:
1250
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::AccessSchedule::CreditType
1251
- }
1173
+ T::Array[
1174
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::RateType::TaggedSymbol
1175
+ ]
1252
1176
  )
1253
1177
  end
1254
- def to_hash
1255
- end
1256
-
1257
- class ScheduleItem < MetronomeSDK::Internal::Type::BaseModel
1258
- OrHash =
1259
- T.type_alias do
1260
- T.any(
1261
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::AccessSchedule::ScheduleItem,
1262
- MetronomeSDK::Internal::AnyHash
1263
- )
1264
- end
1265
-
1266
- sig { returns(String) }
1267
- attr_accessor :id
1268
-
1269
- sig { returns(Float) }
1270
- attr_accessor :amount
1271
-
1272
- sig { returns(Time) }
1273
- attr_accessor :ending_before
1274
-
1275
- sig { returns(Time) }
1276
- attr_accessor :starting_at
1277
-
1278
- sig do
1279
- params(
1280
- id: String,
1281
- amount: Float,
1282
- ending_before: Time,
1283
- starting_at: Time
1284
- ).returns(T.attached_class)
1285
- end
1286
- def self.new(id:, amount:, ending_before:, starting_at:)
1287
- end
1288
-
1289
- sig do
1290
- override.returns(
1291
- {
1292
- id: String,
1293
- amount: Float,
1294
- ending_before: Time,
1295
- starting_at: Time
1296
- }
1297
- )
1298
- end
1299
- def to_hash
1300
- end
1301
- end
1302
-
1303
- class CreditType < MetronomeSDK::Internal::Type::BaseModel
1304
- OrHash =
1305
- T.type_alias do
1306
- T.any(
1307
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::AccessSchedule::CreditType,
1308
- MetronomeSDK::Internal::AnyHash
1309
- )
1310
- end
1311
-
1312
- sig { returns(String) }
1313
- attr_accessor :id
1314
-
1315
- sig { returns(String) }
1316
- attr_accessor :name
1317
-
1318
- sig do
1319
- params(id: String, name: String).returns(T.attached_class)
1320
- end
1321
- def self.new(id:, name:)
1322
- end
1323
-
1324
- sig { override.returns({ id: String, name: String }) }
1325
- def to_hash
1326
- end
1178
+ def self.values
1327
1179
  end
1328
1180
  end
1329
1181
 
1330
- class InvoiceSchedule < MetronomeSDK::Internal::Type::BaseModel
1182
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
1331
1183
  OrHash =
1332
1184
  T.type_alias do
1333
1185
  T.any(
1334
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule,
1186
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::Specifier,
1335
1187
  MetronomeSDK::Internal::AnyHash
1336
1188
  )
1337
1189
  end
1338
1190
 
1339
- sig do
1340
- returns(
1341
- T.nilable(
1342
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::CreditType
1343
- )
1344
- )
1345
- end
1346
- attr_reader :credit_type
1191
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
1192
+ attr_reader :presentation_group_values
1347
1193
 
1348
1194
  sig do
1349
- params(
1350
- credit_type:
1351
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::CreditType::OrHash
1352
- ).void
1195
+ params(presentation_group_values: T::Hash[Symbol, String]).void
1353
1196
  end
1354
- attr_writer :credit_type
1197
+ attr_writer :presentation_group_values
1355
1198
 
1356
- sig do
1357
- returns(
1358
- T.nilable(
1359
- T::Array[
1360
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::ScheduleItem
1361
- ]
1362
- )
1363
- )
1364
- end
1365
- attr_reader :schedule_items
1199
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
1200
+ attr_reader :pricing_group_values
1366
1201
 
1367
- sig do
1368
- params(
1369
- schedule_items:
1370
- T::Array[
1371
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::ScheduleItem::OrHash
1372
- ]
1373
- ).void
1374
- end
1375
- attr_writer :schedule_items
1202
+ sig { params(pricing_group_values: T::Hash[Symbol, String]).void }
1203
+ attr_writer :pricing_group_values
1204
+
1205
+ # If provided, the specifier will only apply to the product with the specified ID.
1206
+ sig { returns(T.nilable(String)) }
1207
+ attr_reader :product_id
1208
+
1209
+ sig { params(product_id: String).void }
1210
+ attr_writer :product_id
1211
+
1212
+ # If provided, the specifier will only apply to products with all the specified
1213
+ # tags.
1214
+ sig { returns(T.nilable(T::Array[String])) }
1215
+ attr_reader :product_tags
1216
+
1217
+ sig { params(product_tags: T::Array[String]).void }
1218
+ attr_writer :product_tags
1376
1219
 
1377
- # The schedule that the customer will be invoiced for this commit.
1378
1220
  sig do
1379
1221
  params(
1380
- credit_type:
1381
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::CreditType::OrHash,
1382
- schedule_items:
1383
- T::Array[
1384
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::ScheduleItem::OrHash
1385
- ]
1222
+ presentation_group_values: T::Hash[Symbol, String],
1223
+ pricing_group_values: T::Hash[Symbol, String],
1224
+ product_id: String,
1225
+ product_tags: T::Array[String]
1386
1226
  ).returns(T.attached_class)
1387
1227
  end
1388
- def self.new(credit_type: nil, schedule_items: nil)
1228
+ def self.new(
1229
+ presentation_group_values: nil,
1230
+ pricing_group_values: nil,
1231
+ # If provided, the specifier will only apply to the product with the specified ID.
1232
+ product_id: nil,
1233
+ # If provided, the specifier will only apply to products with all the specified
1234
+ # tags.
1235
+ product_tags: nil
1236
+ )
1389
1237
  end
1390
1238
 
1391
1239
  sig do
1392
1240
  override.returns(
1393
1241
  {
1394
- credit_type:
1395
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::CreditType,
1396
- schedule_items:
1397
- T::Array[
1398
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::ScheduleItem
1399
- ]
1242
+ presentation_group_values: T::Hash[Symbol, String],
1243
+ pricing_group_values: T::Hash[Symbol, String],
1244
+ product_id: String,
1245
+ product_tags: T::Array[String]
1400
1246
  }
1401
1247
  )
1402
1248
  end
1403
1249
  def to_hash
1404
1250
  end
1405
-
1406
- class CreditType < MetronomeSDK::Internal::Type::BaseModel
1407
- OrHash =
1408
- T.type_alias do
1409
- T.any(
1410
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::CreditType,
1411
- MetronomeSDK::Internal::AnyHash
1412
- )
1413
- end
1414
-
1415
- sig { returns(String) }
1416
- attr_accessor :id
1417
-
1418
- sig { returns(String) }
1419
- attr_accessor :name
1420
-
1421
- sig do
1422
- params(id: String, name: String).returns(T.attached_class)
1423
- end
1424
- def self.new(id:, name:)
1425
- end
1426
-
1427
- sig { override.returns({ id: String, name: String }) }
1428
- def to_hash
1429
- end
1430
- end
1431
-
1432
- class ScheduleItem < MetronomeSDK::Internal::Type::BaseModel
1433
- OrHash =
1434
- T.type_alias do
1435
- T.any(
1436
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::ScheduleItem,
1437
- MetronomeSDK::Internal::AnyHash
1438
- )
1439
- end
1440
-
1441
- sig { returns(String) }
1442
- attr_accessor :id
1443
-
1444
- sig { returns(Float) }
1445
- attr_accessor :amount
1446
-
1447
- sig { returns(String) }
1448
- attr_accessor :invoice_id
1449
-
1450
- sig { returns(Float) }
1451
- attr_accessor :quantity
1452
-
1453
- sig { returns(Time) }
1454
- attr_accessor :timestamp
1455
-
1456
- sig { returns(Float) }
1457
- attr_accessor :unit_price
1458
-
1459
- sig do
1460
- params(
1461
- id: String,
1462
- amount: Float,
1463
- invoice_id: String,
1464
- quantity: Float,
1465
- timestamp: Time,
1466
- unit_price: Float
1467
- ).returns(T.attached_class)
1468
- end
1469
- def self.new(
1470
- id:,
1471
- amount:,
1472
- invoice_id:,
1473
- quantity:,
1474
- timestamp:,
1475
- unit_price:
1476
- )
1477
- end
1478
-
1479
- sig do
1480
- override.returns(
1481
- {
1482
- id: String,
1483
- amount: Float,
1484
- invoice_id: String,
1485
- quantity: Float,
1486
- timestamp: Time,
1487
- unit_price: Float
1488
- }
1489
- )
1490
- end
1491
- def to_hash
1492
- end
1493
- end
1494
- end
1495
-
1496
- module RateType
1497
- extend MetronomeSDK::Internal::Type::Enum
1498
-
1499
- TaggedSymbol =
1500
- T.type_alias do
1501
- T.all(
1502
- Symbol,
1503
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::RateType
1504
- )
1505
- end
1506
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1507
-
1508
- COMMIT_RATE =
1509
- T.let(
1510
- :COMMIT_RATE,
1511
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::RateType::TaggedSymbol
1512
- )
1513
- LIST_RATE =
1514
- T.let(
1515
- :LIST_RATE,
1516
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::RateType::TaggedSymbol
1517
- )
1518
-
1519
- sig do
1520
- override.returns(
1521
- T::Array[
1522
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::RateType::TaggedSymbol
1523
- ]
1524
- )
1525
- end
1526
- def self.values
1527
- end
1528
- end
1529
-
1530
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
1531
- OrHash =
1532
- T.type_alias do
1533
- T.any(
1534
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::Specifier,
1535
- MetronomeSDK::Internal::AnyHash
1536
- )
1537
- end
1538
-
1539
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
1540
- attr_reader :presentation_group_values
1541
-
1542
- sig do
1543
- params(presentation_group_values: T::Hash[Symbol, String]).void
1544
- end
1545
- attr_writer :presentation_group_values
1546
-
1547
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
1548
- attr_reader :pricing_group_values
1549
-
1550
- sig { params(pricing_group_values: T::Hash[Symbol, String]).void }
1551
- attr_writer :pricing_group_values
1552
-
1553
- # If provided, the specifier will only apply to the product with the specified ID.
1554
- sig { returns(T.nilable(String)) }
1555
- attr_reader :product_id
1556
-
1557
- sig { params(product_id: String).void }
1558
- attr_writer :product_id
1559
-
1560
- # If provided, the specifier will only apply to products with all the specified
1561
- # tags.
1562
- sig { returns(T.nilable(T::Array[String])) }
1563
- attr_reader :product_tags
1564
-
1565
- sig { params(product_tags: T::Array[String]).void }
1566
- attr_writer :product_tags
1567
-
1568
- sig do
1569
- params(
1570
- presentation_group_values: T::Hash[Symbol, String],
1571
- pricing_group_values: T::Hash[Symbol, String],
1572
- product_id: String,
1573
- product_tags: T::Array[String]
1574
- ).returns(T.attached_class)
1575
- end
1576
- def self.new(
1577
- presentation_group_values: nil,
1578
- pricing_group_values: nil,
1579
- # If provided, the specifier will only apply to the product with the specified ID.
1580
- product_id: nil,
1581
- # If provided, the specifier will only apply to products with all the specified
1582
- # tags.
1583
- product_tags: nil
1584
- )
1585
- end
1586
-
1587
- sig do
1588
- override.returns(
1589
- {
1590
- presentation_group_values: T::Hash[Symbol, String],
1591
- pricing_group_values: T::Hash[Symbol, String],
1592
- product_id: String,
1593
- product_tags: T::Array[String]
1594
- }
1595
- )
1596
- end
1597
- def to_hash
1598
- end
1599
- end
1600
- end
1251
+ end
1252
+ end
1601
1253
 
1602
1254
  class AddCredit < MetronomeSDK::Internal::Type::BaseModel
1603
1255
  OrHash =
@@ -1634,19 +1286,12 @@ module MetronomeSDK
1634
1286
  attr_accessor :type
1635
1287
 
1636
1288
  # The schedule that the customer will gain access to the credits.
1637
- sig do
1638
- returns(
1639
- T.nilable(
1640
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::AccessSchedule
1641
- )
1642
- )
1643
- end
1289
+ sig { returns(T.nilable(MetronomeSDK::ScheduleDuration)) }
1644
1290
  attr_reader :access_schedule
1645
1291
 
1646
1292
  sig do
1647
1293
  params(
1648
- access_schedule:
1649
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::AccessSchedule::OrHash
1294
+ access_schedule: MetronomeSDK::ScheduleDuration::OrHash
1650
1295
  ).void
1651
1296
  end
1652
1297
  attr_writer :access_schedule
@@ -1729,8 +1374,7 @@ module MetronomeSDK
1729
1374
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::Product::OrHash,
1730
1375
  type:
1731
1376
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::Type::OrSymbol,
1732
- access_schedule:
1733
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::AccessSchedule::OrHash,
1377
+ access_schedule: MetronomeSDK::ScheduleDuration::OrHash,
1734
1378
  applicable_product_ids: T::Array[String],
1735
1379
  applicable_product_tags: T::Array[String],
1736
1380
  description: String,
@@ -1777,8 +1421,7 @@ module MetronomeSDK
1777
1421
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::Product,
1778
1422
  type:
1779
1423
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::Type::TaggedSymbol,
1780
- access_schedule:
1781
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::AccessSchedule,
1424
+ access_schedule: MetronomeSDK::ScheduleDuration,
1782
1425
  applicable_product_ids: T::Array[String],
1783
1426
  applicable_product_tags: T::Array[String],
1784
1427
  description: String,
@@ -1820,532 +1463,104 @@ module MetronomeSDK
1820
1463
  end
1821
1464
  end
1822
1465
 
1823
- module Type
1824
- extend MetronomeSDK::Internal::Type::Enum
1825
-
1826
- TaggedSymbol =
1827
- T.type_alias do
1828
- T.all(
1829
- Symbol,
1830
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::Type
1831
- )
1832
- end
1833
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1834
-
1835
- CREDIT =
1836
- T.let(
1837
- :CREDIT,
1838
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::Type::TaggedSymbol
1839
- )
1840
-
1841
- sig do
1842
- override.returns(
1843
- T::Array[
1844
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::Type::TaggedSymbol
1845
- ]
1846
- )
1847
- end
1848
- def self.values
1849
- end
1850
- end
1851
-
1852
- class AccessSchedule < MetronomeSDK::Internal::Type::BaseModel
1853
- OrHash =
1854
- T.type_alias do
1855
- T.any(
1856
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::AccessSchedule,
1857
- MetronomeSDK::Internal::AnyHash
1858
- )
1859
- end
1860
-
1861
- sig do
1862
- returns(
1863
- T::Array[
1864
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::AccessSchedule::ScheduleItem
1865
- ]
1866
- )
1867
- end
1868
- attr_accessor :schedule_items
1869
-
1870
- sig do
1871
- returns(
1872
- T.nilable(
1873
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::AccessSchedule::CreditType
1874
- )
1875
- )
1876
- end
1877
- attr_reader :credit_type
1878
-
1879
- sig do
1880
- params(
1881
- credit_type:
1882
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::AccessSchedule::CreditType::OrHash
1883
- ).void
1884
- end
1885
- attr_writer :credit_type
1886
-
1887
- # The schedule that the customer will gain access to the credits.
1888
- sig do
1889
- params(
1890
- schedule_items:
1891
- T::Array[
1892
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::AccessSchedule::ScheduleItem::OrHash
1893
- ],
1894
- credit_type:
1895
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::AccessSchedule::CreditType::OrHash
1896
- ).returns(T.attached_class)
1897
- end
1898
- def self.new(schedule_items:, credit_type: nil)
1899
- end
1900
-
1901
- sig do
1902
- override.returns(
1903
- {
1904
- schedule_items:
1905
- T::Array[
1906
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::AccessSchedule::ScheduleItem
1907
- ],
1908
- credit_type:
1909
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::AccessSchedule::CreditType
1910
- }
1911
- )
1912
- end
1913
- def to_hash
1914
- end
1915
-
1916
- class ScheduleItem < MetronomeSDK::Internal::Type::BaseModel
1917
- OrHash =
1918
- T.type_alias do
1919
- T.any(
1920
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::AccessSchedule::ScheduleItem,
1921
- MetronomeSDK::Internal::AnyHash
1922
- )
1923
- end
1924
-
1925
- sig { returns(String) }
1926
- attr_accessor :id
1927
-
1928
- sig { returns(Float) }
1929
- attr_accessor :amount
1930
-
1931
- sig { returns(Time) }
1932
- attr_accessor :ending_before
1933
-
1934
- sig { returns(Time) }
1935
- attr_accessor :starting_at
1936
-
1937
- sig do
1938
- params(
1939
- id: String,
1940
- amount: Float,
1941
- ending_before: Time,
1942
- starting_at: Time
1943
- ).returns(T.attached_class)
1944
- end
1945
- def self.new(id:, amount:, ending_before:, starting_at:)
1946
- end
1947
-
1948
- sig do
1949
- override.returns(
1950
- {
1951
- id: String,
1952
- amount: Float,
1953
- ending_before: Time,
1954
- starting_at: Time
1955
- }
1956
- )
1957
- end
1958
- def to_hash
1959
- end
1960
- end
1961
-
1962
- class CreditType < MetronomeSDK::Internal::Type::BaseModel
1963
- OrHash =
1964
- T.type_alias do
1965
- T.any(
1966
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::AccessSchedule::CreditType,
1967
- MetronomeSDK::Internal::AnyHash
1968
- )
1969
- end
1970
-
1971
- sig { returns(String) }
1972
- attr_accessor :id
1973
-
1974
- sig { returns(String) }
1975
- attr_accessor :name
1976
-
1977
- sig do
1978
- params(id: String, name: String).returns(T.attached_class)
1979
- end
1980
- def self.new(id:, name:)
1981
- end
1982
-
1983
- sig { override.returns({ id: String, name: String }) }
1984
- def to_hash
1985
- end
1986
- end
1987
- end
1988
-
1989
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
1990
- OrHash =
1991
- T.type_alias do
1992
- T.any(
1993
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::Specifier,
1994
- MetronomeSDK::Internal::AnyHash
1995
- )
1996
- end
1997
-
1998
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
1999
- attr_reader :presentation_group_values
2000
-
2001
- sig do
2002
- params(presentation_group_values: T::Hash[Symbol, String]).void
2003
- end
2004
- attr_writer :presentation_group_values
2005
-
2006
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
2007
- attr_reader :pricing_group_values
2008
-
2009
- sig { params(pricing_group_values: T::Hash[Symbol, String]).void }
2010
- attr_writer :pricing_group_values
2011
-
2012
- # If provided, the specifier will only apply to the product with the specified ID.
2013
- sig { returns(T.nilable(String)) }
2014
- attr_reader :product_id
2015
-
2016
- sig { params(product_id: String).void }
2017
- attr_writer :product_id
2018
-
2019
- # If provided, the specifier will only apply to products with all the specified
2020
- # tags.
2021
- sig { returns(T.nilable(T::Array[String])) }
2022
- attr_reader :product_tags
2023
-
2024
- sig { params(product_tags: T::Array[String]).void }
2025
- attr_writer :product_tags
2026
-
2027
- sig do
2028
- params(
2029
- presentation_group_values: T::Hash[Symbol, String],
2030
- pricing_group_values: T::Hash[Symbol, String],
2031
- product_id: String,
2032
- product_tags: T::Array[String]
2033
- ).returns(T.attached_class)
2034
- end
2035
- def self.new(
2036
- presentation_group_values: nil,
2037
- pricing_group_values: nil,
2038
- # If provided, the specifier will only apply to the product with the specified ID.
2039
- product_id: nil,
2040
- # If provided, the specifier will only apply to products with all the specified
2041
- # tags.
2042
- product_tags: nil
2043
- )
2044
- end
2045
-
2046
- sig do
2047
- override.returns(
2048
- {
2049
- presentation_group_values: T::Hash[Symbol, String],
2050
- pricing_group_values: T::Hash[Symbol, String],
2051
- product_id: String,
2052
- product_tags: T::Array[String]
2053
- }
2054
- )
2055
- end
2056
- def to_hash
2057
- end
2058
- end
2059
- end
2060
-
2061
- class AddDiscount < MetronomeSDK::Internal::Type::BaseModel
2062
- OrHash =
2063
- T.type_alias do
2064
- T.any(
2065
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount,
2066
- MetronomeSDK::Internal::AnyHash
2067
- )
2068
- end
2069
-
2070
- sig { returns(String) }
2071
- attr_accessor :id
2072
-
2073
- sig do
2074
- returns(
2075
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::Product
2076
- )
2077
- end
2078
- attr_reader :product
2079
-
2080
- sig do
2081
- params(
2082
- product:
2083
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::Product::OrHash
2084
- ).void
2085
- end
2086
- attr_writer :product
2087
-
2088
- sig do
2089
- returns(
2090
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::Schedule
2091
- )
2092
- end
2093
- attr_reader :schedule
2094
-
2095
- sig do
2096
- params(
2097
- schedule:
2098
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::Schedule::OrHash
2099
- ).void
2100
- end
2101
- attr_writer :schedule
2102
-
2103
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
2104
- attr_reader :custom_fields
2105
-
2106
- sig { params(custom_fields: T::Hash[Symbol, String]).void }
2107
- attr_writer :custom_fields
2108
-
2109
- sig { returns(T.nilable(String)) }
2110
- attr_reader :name
2111
-
2112
- sig { params(name: String).void }
2113
- attr_writer :name
2114
-
2115
- # This field's availability is dependent on your client's configuration.
2116
- sig { returns(T.nilable(String)) }
2117
- attr_reader :netsuite_sales_order_id
2118
-
2119
- sig { params(netsuite_sales_order_id: String).void }
2120
- attr_writer :netsuite_sales_order_id
2121
-
2122
- sig do
2123
- params(
2124
- id: String,
2125
- product:
2126
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::Product::OrHash,
2127
- schedule:
2128
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::Schedule::OrHash,
2129
- custom_fields: T::Hash[Symbol, String],
2130
- name: String,
2131
- netsuite_sales_order_id: String
2132
- ).returns(T.attached_class)
2133
- end
2134
- def self.new(
2135
- id:,
2136
- product:,
2137
- schedule:,
2138
- custom_fields: nil,
2139
- name: nil,
2140
- # This field's availability is dependent on your client's configuration.
2141
- netsuite_sales_order_id: nil
2142
- )
2143
- end
2144
-
2145
- sig do
2146
- override.returns(
2147
- {
2148
- id: String,
2149
- product:
2150
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::Product,
2151
- schedule:
2152
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::Schedule,
2153
- custom_fields: T::Hash[Symbol, String],
2154
- name: String,
2155
- netsuite_sales_order_id: String
2156
- }
2157
- )
2158
- end
2159
- def to_hash
2160
- end
2161
-
2162
- class Product < MetronomeSDK::Internal::Type::BaseModel
2163
- OrHash =
2164
- T.type_alias do
2165
- T.any(
2166
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::Product,
2167
- MetronomeSDK::Internal::AnyHash
2168
- )
2169
- end
2170
-
2171
- sig { returns(String) }
2172
- attr_accessor :id
2173
-
2174
- sig { returns(String) }
2175
- attr_accessor :name
2176
-
2177
- sig { params(id: String, name: String).returns(T.attached_class) }
2178
- def self.new(id:, name:)
2179
- end
2180
-
2181
- sig { override.returns({ id: String, name: String }) }
2182
- def to_hash
2183
- end
2184
- end
2185
-
2186
- class Schedule < MetronomeSDK::Internal::Type::BaseModel
2187
- OrHash =
1466
+ module Type
1467
+ extend MetronomeSDK::Internal::Type::Enum
1468
+
1469
+ TaggedSymbol =
2188
1470
  T.type_alias do
2189
- T.any(
2190
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::Schedule,
2191
- MetronomeSDK::Internal::AnyHash
1471
+ T.all(
1472
+ Symbol,
1473
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::Type
2192
1474
  )
2193
1475
  end
1476
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2194
1477
 
2195
- sig do
2196
- returns(
2197
- T.nilable(
2198
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::Schedule::CreditType
2199
- )
1478
+ CREDIT =
1479
+ T.let(
1480
+ :CREDIT,
1481
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::Type::TaggedSymbol
2200
1482
  )
2201
- end
2202
- attr_reader :credit_type
2203
1483
 
2204
1484
  sig do
2205
- params(
2206
- credit_type:
2207
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::Schedule::CreditType::OrHash
2208
- ).void
1485
+ override.returns(
1486
+ T::Array[
1487
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::Type::TaggedSymbol
1488
+ ]
1489
+ )
2209
1490
  end
2210
- attr_writer :credit_type
1491
+ def self.values
1492
+ end
1493
+ end
2211
1494
 
2212
- sig do
2213
- returns(
2214
- T.nilable(
2215
- T::Array[
2216
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::Schedule::ScheduleItem
2217
- ]
1495
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
1496
+ OrHash =
1497
+ T.type_alias do
1498
+ T.any(
1499
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::Specifier,
1500
+ MetronomeSDK::Internal::AnyHash
2218
1501
  )
2219
- )
2220
- end
2221
- attr_reader :schedule_items
1502
+ end
1503
+
1504
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
1505
+ attr_reader :presentation_group_values
2222
1506
 
2223
1507
  sig do
2224
- params(
2225
- schedule_items:
2226
- T::Array[
2227
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::Schedule::ScheduleItem::OrHash
2228
- ]
2229
- ).void
1508
+ params(presentation_group_values: T::Hash[Symbol, String]).void
2230
1509
  end
2231
- attr_writer :schedule_items
1510
+ attr_writer :presentation_group_values
1511
+
1512
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
1513
+ attr_reader :pricing_group_values
1514
+
1515
+ sig { params(pricing_group_values: T::Hash[Symbol, String]).void }
1516
+ attr_writer :pricing_group_values
1517
+
1518
+ # If provided, the specifier will only apply to the product with the specified ID.
1519
+ sig { returns(T.nilable(String)) }
1520
+ attr_reader :product_id
1521
+
1522
+ sig { params(product_id: String).void }
1523
+ attr_writer :product_id
1524
+
1525
+ # If provided, the specifier will only apply to products with all the specified
1526
+ # tags.
1527
+ sig { returns(T.nilable(T::Array[String])) }
1528
+ attr_reader :product_tags
1529
+
1530
+ sig { params(product_tags: T::Array[String]).void }
1531
+ attr_writer :product_tags
2232
1532
 
2233
1533
  sig do
2234
1534
  params(
2235
- credit_type:
2236
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::Schedule::CreditType::OrHash,
2237
- schedule_items:
2238
- T::Array[
2239
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::Schedule::ScheduleItem::OrHash
2240
- ]
1535
+ presentation_group_values: T::Hash[Symbol, String],
1536
+ pricing_group_values: T::Hash[Symbol, String],
1537
+ product_id: String,
1538
+ product_tags: T::Array[String]
2241
1539
  ).returns(T.attached_class)
2242
1540
  end
2243
- def self.new(credit_type: nil, schedule_items: nil)
1541
+ def self.new(
1542
+ presentation_group_values: nil,
1543
+ pricing_group_values: nil,
1544
+ # If provided, the specifier will only apply to the product with the specified ID.
1545
+ product_id: nil,
1546
+ # If provided, the specifier will only apply to products with all the specified
1547
+ # tags.
1548
+ product_tags: nil
1549
+ )
2244
1550
  end
2245
1551
 
2246
1552
  sig do
2247
1553
  override.returns(
2248
1554
  {
2249
- credit_type:
2250
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::Schedule::CreditType,
2251
- schedule_items:
2252
- T::Array[
2253
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::Schedule::ScheduleItem
2254
- ]
1555
+ presentation_group_values: T::Hash[Symbol, String],
1556
+ pricing_group_values: T::Hash[Symbol, String],
1557
+ product_id: String,
1558
+ product_tags: T::Array[String]
2255
1559
  }
2256
1560
  )
2257
1561
  end
2258
1562
  def to_hash
2259
1563
  end
2260
-
2261
- class CreditType < MetronomeSDK::Internal::Type::BaseModel
2262
- OrHash =
2263
- T.type_alias do
2264
- T.any(
2265
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::Schedule::CreditType,
2266
- MetronomeSDK::Internal::AnyHash
2267
- )
2268
- end
2269
-
2270
- sig { returns(String) }
2271
- attr_accessor :id
2272
-
2273
- sig { returns(String) }
2274
- attr_accessor :name
2275
-
2276
- sig do
2277
- params(id: String, name: String).returns(T.attached_class)
2278
- end
2279
- def self.new(id:, name:)
2280
- end
2281
-
2282
- sig { override.returns({ id: String, name: String }) }
2283
- def to_hash
2284
- end
2285
- end
2286
-
2287
- class ScheduleItem < MetronomeSDK::Internal::Type::BaseModel
2288
- OrHash =
2289
- T.type_alias do
2290
- T.any(
2291
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddDiscount::Schedule::ScheduleItem,
2292
- MetronomeSDK::Internal::AnyHash
2293
- )
2294
- end
2295
-
2296
- sig { returns(String) }
2297
- attr_accessor :id
2298
-
2299
- sig { returns(Float) }
2300
- attr_accessor :amount
2301
-
2302
- sig { returns(String) }
2303
- attr_accessor :invoice_id
2304
-
2305
- sig { returns(Float) }
2306
- attr_accessor :quantity
2307
-
2308
- sig { returns(Time) }
2309
- attr_accessor :timestamp
2310
-
2311
- sig { returns(Float) }
2312
- attr_accessor :unit_price
2313
-
2314
- sig do
2315
- params(
2316
- id: String,
2317
- amount: Float,
2318
- invoice_id: String,
2319
- quantity: Float,
2320
- timestamp: Time,
2321
- unit_price: Float
2322
- ).returns(T.attached_class)
2323
- end
2324
- def self.new(
2325
- id:,
2326
- amount:,
2327
- invoice_id:,
2328
- quantity:,
2329
- timestamp:,
2330
- unit_price:
2331
- )
2332
- end
2333
-
2334
- sig do
2335
- override.returns(
2336
- {
2337
- id: String,
2338
- amount: Float,
2339
- invoice_id: String,
2340
- quantity: Float,
2341
- timestamp: Time,
2342
- unit_price: Float
2343
- }
2344
- )
2345
- end
2346
- def to_hash
2347
- end
2348
- end
2349
1564
  end
2350
1565
  end
2351
1566
 
@@ -2795,20 +2010,11 @@ module MetronomeSDK
2795
2010
  end
2796
2011
  attr_accessor :rate_type
2797
2012
 
2798
- sig do
2799
- returns(
2800
- T.nilable(
2801
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::CreditType
2802
- )
2803
- )
2804
- end
2013
+ sig { returns(T.nilable(MetronomeSDK::CreditTypeData)) }
2805
2014
  attr_reader :credit_type
2806
2015
 
2807
2016
  sig do
2808
- params(
2809
- credit_type:
2810
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::CreditType::OrHash
2811
- ).void
2017
+ params(credit_type: MetronomeSDK::CreditTypeData::OrHash).void
2812
2018
  end
2813
2019
  attr_writer :credit_type
2814
2020
 
@@ -2844,41 +2050,22 @@ module MetronomeSDK
2844
2050
  attr_writer :quantity
2845
2051
 
2846
2052
  # Only set for TIERED rate_type.
2847
- sig do
2848
- returns(
2849
- T.nilable(
2850
- T::Array[
2851
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::Tier
2852
- ]
2853
- )
2854
- )
2855
- end
2053
+ sig { returns(T.nilable(T::Array[MetronomeSDK::Tier])) }
2856
2054
  attr_reader :tiers
2857
2055
 
2858
- sig do
2859
- params(
2860
- tiers:
2861
- T::Array[
2862
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::Tier::OrHash
2863
- ]
2864
- ).void
2865
- end
2056
+ sig { params(tiers: T::Array[MetronomeSDK::Tier::OrHash]).void }
2866
2057
  attr_writer :tiers
2867
2058
 
2868
2059
  sig do
2869
2060
  params(
2870
2061
  rate_type:
2871
2062
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::RateType::OrSymbol,
2872
- credit_type:
2873
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::CreditType::OrHash,
2063
+ credit_type: MetronomeSDK::CreditTypeData::OrHash,
2874
2064
  custom_rate: T::Hash[Symbol, T.anything],
2875
2065
  is_prorated: T::Boolean,
2876
2066
  price: Float,
2877
2067
  quantity: Float,
2878
- tiers:
2879
- T::Array[
2880
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::Tier::OrHash
2881
- ]
2068
+ tiers: T::Array[MetronomeSDK::Tier::OrHash]
2882
2069
  ).returns(T.attached_class)
2883
2070
  end
2884
2071
  def self.new(
@@ -2905,16 +2092,12 @@ module MetronomeSDK
2905
2092
  {
2906
2093
  rate_type:
2907
2094
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::RateType::TaggedSymbol,
2908
- credit_type:
2909
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::CreditType,
2095
+ credit_type: MetronomeSDK::CreditTypeData,
2910
2096
  custom_rate: T::Hash[Symbol, T.anything],
2911
2097
  is_prorated: T::Boolean,
2912
2098
  price: Float,
2913
2099
  quantity: Float,
2914
- tiers:
2915
- T::Array[
2916
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::Tier
2917
- ]
2100
+ tiers: T::Array[MetronomeSDK::Tier]
2918
2101
  }
2919
2102
  )
2920
2103
  end
@@ -2969,61 +2152,6 @@ module MetronomeSDK
2969
2152
  def self.values
2970
2153
  end
2971
2154
  end
2972
-
2973
- class CreditType < MetronomeSDK::Internal::Type::BaseModel
2974
- OrHash =
2975
- T.type_alias do
2976
- T.any(
2977
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::CreditType,
2978
- MetronomeSDK::Internal::AnyHash
2979
- )
2980
- end
2981
-
2982
- sig { returns(String) }
2983
- attr_accessor :id
2984
-
2985
- sig { returns(String) }
2986
- attr_accessor :name
2987
-
2988
- sig do
2989
- params(id: String, name: String).returns(T.attached_class)
2990
- end
2991
- def self.new(id:, name:)
2992
- end
2993
-
2994
- sig { override.returns({ id: String, name: String }) }
2995
- def to_hash
2996
- end
2997
- end
2998
-
2999
- class Tier < MetronomeSDK::Internal::Type::BaseModel
3000
- OrHash =
3001
- T.type_alias do
3002
- T.any(
3003
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::Tier,
3004
- MetronomeSDK::Internal::AnyHash
3005
- )
3006
- end
3007
-
3008
- sig { returns(Float) }
3009
- attr_accessor :price
3010
-
3011
- sig { returns(T.nilable(Float)) }
3012
- attr_reader :size
3013
-
3014
- sig { params(size: Float).void }
3015
- attr_writer :size
3016
-
3017
- sig do
3018
- params(price: Float, size: Float).returns(T.attached_class)
3019
- end
3020
- def self.new(price:, size: nil)
3021
- end
3022
-
3023
- sig { override.returns({ price: Float, size: Float }) }
3024
- def to_hash
3025
- end
3026
- end
3027
2155
  end
3028
2156
 
3029
2157
  class Product < MetronomeSDK::Internal::Type::BaseModel
@@ -3178,6 +2306,14 @@ module MetronomeSDK
3178
2306
  sig { returns(Float) }
3179
2307
  attr_accessor :threshold_amount
3180
2308
 
2309
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
2310
+ # commit amount will be in terms of this credit type instead of the fiat currency.
2311
+ sig { returns(T.nilable(String)) }
2312
+ attr_reader :custom_credit_type_id
2313
+
2314
+ sig { params(custom_credit_type_id: String).void }
2315
+ attr_writer :custom_credit_type_id
2316
+
3181
2317
  sig do
3182
2318
  params(
3183
2319
  commit:
@@ -3186,7 +2322,8 @@ module MetronomeSDK
3186
2322
  payment_gate_config:
3187
2323
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::OrHash,
3188
2324
  recharge_to_amount: Float,
3189
- threshold_amount: Float
2325
+ threshold_amount: Float,
2326
+ custom_credit_type_id: String
3190
2327
  ).returns(T.attached_class)
3191
2328
  end
3192
2329
  def self.new(
@@ -3200,7 +2337,10 @@ module MetronomeSDK
3200
2337
  recharge_to_amount:,
3201
2338
  # Specify the threshold amount for the contract. Each time the contract's balance
3202
2339
  # lowers to this amount, a threshold charge will be initiated.
3203
- threshold_amount:
2340
+ threshold_amount:,
2341
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
2342
+ # commit amount will be in terms of this credit type instead of the fiat currency.
2343
+ custom_credit_type_id: nil
3204
2344
  )
3205
2345
  end
3206
2346
 
@@ -3213,7 +2353,8 @@ module MetronomeSDK
3213
2353
  payment_gate_config:
3214
2354
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig,
3215
2355
  recharge_to_amount: Float,
3216
- threshold_amount: Float
2356
+ threshold_amount: Float,
2357
+ custom_credit_type_id: String
3217
2358
  }
3218
2359
  )
3219
2360
  end
@@ -3234,17 +2375,18 @@ module MetronomeSDK
3234
2375
  sig { returns(String) }
3235
2376
  attr_accessor :product_id
3236
2377
 
3237
- # Which products the threshold commit applies to. If both applicable_product_ids
3238
- # and applicable_product_tags are not provided, the commit applies to all
3239
- # products.
2378
+ # Which products the threshold commit applies to. If applicable_product_ids,
2379
+ # applicable_product_tags or specifiers are not provided, the commit applies to
2380
+ # all products.
3240
2381
  sig { returns(T.nilable(T::Array[String])) }
3241
2382
  attr_reader :applicable_product_ids
3242
2383
 
3243
2384
  sig { params(applicable_product_ids: T::Array[String]).void }
3244
2385
  attr_writer :applicable_product_ids
3245
2386
 
3246
- # Which tags the threshold commit applies to. If both applicable_product_ids and
3247
- # applicable_product_tags are not provided, the commit applies to all products.
2387
+ # Which tags the threshold commit applies to. If applicable_product_ids,
2388
+ # applicable_product_tags or specifiers are not provided, the commit applies to
2389
+ # all products.
3248
2390
  sig { returns(T.nilable(T::Array[String])) }
3249
2391
  attr_reader :applicable_product_tags
3250
2392
 
@@ -3307,12 +2449,13 @@ module MetronomeSDK
3307
2449
  # The commit product that will be used to generate the line item for commit
3308
2450
  # payment.
3309
2451
  product_id:,
3310
- # Which products the threshold commit applies to. If both applicable_product_ids
3311
- # and applicable_product_tags are not provided, the commit applies to all
3312
- # products.
2452
+ # Which products the threshold commit applies to. If applicable_product_ids,
2453
+ # applicable_product_tags or specifiers are not provided, the commit applies to
2454
+ # all products.
3313
2455
  applicable_product_ids: nil,
3314
- # Which tags the threshold commit applies to. If both applicable_product_ids and
3315
- # applicable_product_tags are not provided, the commit applies to all products.
2456
+ # Which tags the threshold commit applies to. If applicable_product_ids,
2457
+ # applicable_product_tags or specifiers are not provided, the commit applies to
2458
+ # all products.
3316
2459
  applicable_product_tags: nil,
3317
2460
  description: nil,
3318
2461
  # Specify the name of the line item for the threshold charge. If left blank, it
@@ -3440,7 +2583,25 @@ module MetronomeSDK
3440
2583
  end
3441
2584
  attr_accessor :payment_gate_type
3442
2585
 
3443
- # Only applicable if using Stripe as your payment gateway through Metronome.
2586
+ # Only applicable if using PRECALCULATED as your tax type.
2587
+ sig do
2588
+ returns(
2589
+ T.nilable(
2590
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
2591
+ )
2592
+ )
2593
+ end
2594
+ attr_reader :precalculated_tax_config
2595
+
2596
+ sig do
2597
+ params(
2598
+ precalculated_tax_config:
2599
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
2600
+ ).void
2601
+ end
2602
+ attr_writer :precalculated_tax_config
2603
+
2604
+ # Only applicable if using STRIPE as your payment gateway type.
3444
2605
  sig do
3445
2606
  returns(
3446
2607
  T.nilable(
@@ -3482,6 +2643,8 @@ module MetronomeSDK
3482
2643
  params(
3483
2644
  payment_gate_type:
3484
2645
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
2646
+ precalculated_tax_config:
2647
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
3485
2648
  stripe_config:
3486
2649
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash,
3487
2650
  tax_type:
@@ -3494,7 +2657,9 @@ module MetronomeSDK
3494
2657
  # facilitate payment using your own payment integration. Select NONE if you do not
3495
2658
  # wish to payment gate the commit balance.
3496
2659
  payment_gate_type:,
3497
- # Only applicable if using Stripe as your payment gateway through Metronome.
2660
+ # Only applicable if using PRECALCULATED as your tax type.
2661
+ precalculated_tax_config: nil,
2662
+ # Only applicable if using STRIPE as your payment gateway type.
3498
2663
  stripe_config: nil,
3499
2664
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
3500
2665
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
@@ -3508,6 +2673,8 @@ module MetronomeSDK
3508
2673
  {
3509
2674
  payment_gate_type:
3510
2675
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::TaggedSymbol,
2676
+ precalculated_tax_config:
2677
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
3511
2678
  stripe_config:
3512
2679
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig,
3513
2680
  tax_type:
@@ -3561,6 +2728,51 @@ module MetronomeSDK
3561
2728
  end
3562
2729
  end
3563
2730
 
2731
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
2732
+ OrHash =
2733
+ T.type_alias do
2734
+ T.any(
2735
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
2736
+ MetronomeSDK::Internal::AnyHash
2737
+ )
2738
+ end
2739
+
2740
+ # Amount of tax to be applied. This should be in the same currency and
2741
+ # denomination as the commit's invoice schedule
2742
+ sig { returns(Float) }
2743
+ attr_accessor :tax_amount
2744
+
2745
+ # Name of the tax to be applied. This may be used in an invoice line item
2746
+ # description.
2747
+ sig { returns(T.nilable(String)) }
2748
+ attr_reader :tax_name
2749
+
2750
+ sig { params(tax_name: String).void }
2751
+ attr_writer :tax_name
2752
+
2753
+ # Only applicable if using PRECALCULATED as your tax type.
2754
+ sig do
2755
+ params(tax_amount: Float, tax_name: String).returns(
2756
+ T.attached_class
2757
+ )
2758
+ end
2759
+ def self.new(
2760
+ # Amount of tax to be applied. This should be in the same currency and
2761
+ # denomination as the commit's invoice schedule
2762
+ tax_amount:,
2763
+ # Name of the tax to be applied. This may be used in an invoice line item
2764
+ # description.
2765
+ tax_name: nil
2766
+ )
2767
+ end
2768
+
2769
+ sig do
2770
+ override.returns({ tax_amount: Float, tax_name: String })
2771
+ end
2772
+ def to_hash
2773
+ end
2774
+ end
2775
+
3564
2776
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
3565
2777
  OrHash =
3566
2778
  T.type_alias do
@@ -3578,16 +2790,28 @@ module MetronomeSDK
3578
2790
  end
3579
2791
  attr_accessor :payment_type
3580
2792
 
3581
- # Only applicable if using Stripe as your payment gateway through Metronome.
2793
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
2794
+ # your payment type.
2795
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
2796
+ attr_reader :invoice_metadata
2797
+
2798
+ sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
2799
+ attr_writer :invoice_metadata
2800
+
2801
+ # Only applicable if using STRIPE as your payment gateway type.
3582
2802
  sig do
3583
2803
  params(
3584
2804
  payment_type:
3585
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
2805
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
2806
+ invoice_metadata: T::Hash[Symbol, String]
3586
2807
  ).returns(T.attached_class)
3587
2808
  end
3588
2809
  def self.new(
3589
2810
  # If left blank, will default to INVOICE
3590
- payment_type:
2811
+ payment_type:,
2812
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
2813
+ # your payment type.
2814
+ invoice_metadata: nil
3591
2815
  )
3592
2816
  end
3593
2817
 
@@ -3595,7 +2819,8 @@ module MetronomeSDK
3595
2819
  override.returns(
3596
2820
  {
3597
2821
  payment_type:
3598
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol
2822
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol,
2823
+ invoice_metadata: T::Hash[Symbol, String]
3599
2824
  }
3600
2825
  )
3601
2826
  end
@@ -3663,6 +2888,16 @@ module MetronomeSDK
3663
2888
  :STRIPE,
3664
2889
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
3665
2890
  )
2891
+ ANROK =
2892
+ T.let(
2893
+ :ANROK,
2894
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
2895
+ )
2896
+ PRECALCULATED =
2897
+ T.let(
2898
+ :PRECALCULATED,
2899
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddPrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
2900
+ )
3666
2901
 
3667
2902
  sig do
3668
2903
  override.returns(
@@ -3677,102 +2912,6 @@ module MetronomeSDK
3677
2912
  end
3678
2913
  end
3679
2914
 
3680
- class AddProService < MetronomeSDK::Internal::Type::BaseModel
3681
- OrHash =
3682
- T.type_alias do
3683
- T.any(
3684
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddProService,
3685
- MetronomeSDK::Internal::AnyHash
3686
- )
3687
- end
3688
-
3689
- sig { returns(String) }
3690
- attr_accessor :id
3691
-
3692
- # Maximum amount for the term.
3693
- sig { returns(Float) }
3694
- attr_accessor :max_amount
3695
-
3696
- sig { returns(String) }
3697
- attr_accessor :product_id
3698
-
3699
- # Quantity for the charge. Will be multiplied by unit_price to determine the
3700
- # amount.
3701
- sig { returns(Float) }
3702
- attr_accessor :quantity
3703
-
3704
- # Unit price for the charge. Will be multiplied by quantity to determine the
3705
- # amount and must be specified.
3706
- sig { returns(Float) }
3707
- attr_accessor :unit_price
3708
-
3709
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
3710
- attr_reader :custom_fields
3711
-
3712
- sig { params(custom_fields: T::Hash[Symbol, String]).void }
3713
- attr_writer :custom_fields
3714
-
3715
- sig { returns(T.nilable(String)) }
3716
- attr_reader :description
3717
-
3718
- sig { params(description: String).void }
3719
- attr_writer :description
3720
-
3721
- # This field's availability is dependent on your client's configuration.
3722
- sig { returns(T.nilable(String)) }
3723
- attr_reader :netsuite_sales_order_id
3724
-
3725
- sig { params(netsuite_sales_order_id: String).void }
3726
- attr_writer :netsuite_sales_order_id
3727
-
3728
- sig do
3729
- params(
3730
- id: String,
3731
- max_amount: Float,
3732
- product_id: String,
3733
- quantity: Float,
3734
- unit_price: Float,
3735
- custom_fields: T::Hash[Symbol, String],
3736
- description: String,
3737
- netsuite_sales_order_id: String
3738
- ).returns(T.attached_class)
3739
- end
3740
- def self.new(
3741
- id:,
3742
- # Maximum amount for the term.
3743
- max_amount:,
3744
- product_id:,
3745
- # Quantity for the charge. Will be multiplied by unit_price to determine the
3746
- # amount.
3747
- quantity:,
3748
- # Unit price for the charge. Will be multiplied by quantity to determine the
3749
- # amount and must be specified.
3750
- unit_price:,
3751
- custom_fields: nil,
3752
- description: nil,
3753
- # This field's availability is dependent on your client's configuration.
3754
- netsuite_sales_order_id: nil
3755
- )
3756
- end
3757
-
3758
- sig do
3759
- override.returns(
3760
- {
3761
- id: String,
3762
- max_amount: Float,
3763
- product_id: String,
3764
- quantity: Float,
3765
- unit_price: Float,
3766
- custom_fields: T::Hash[Symbol, String],
3767
- description: String,
3768
- netsuite_sales_order_id: String
3769
- }
3770
- )
3771
- end
3772
- def to_hash
3773
- end
3774
- end
3775
-
3776
2915
  class AddRecurringCommit < MetronomeSDK::Internal::Type::BaseModel
3777
2916
  OrHash =
3778
2917
  T.type_alias do
@@ -3893,6 +3032,24 @@ module MetronomeSDK
3893
3032
  sig { params(ending_before: Time).void }
3894
3033
  attr_writer :ending_before
3895
3034
 
3035
+ # Optional configuration for recurring commit/credit hierarchy access control
3036
+ sig do
3037
+ returns(
3038
+ T.nilable(
3039
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration
3040
+ )
3041
+ )
3042
+ end
3043
+ attr_reader :hierarchy_configuration
3044
+
3045
+ sig do
3046
+ params(
3047
+ hierarchy_configuration:
3048
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::OrHash
3049
+ ).void
3050
+ end
3051
+ attr_writer :hierarchy_configuration
3052
+
3896
3053
  # The amount the customer should be billed for the commit. Not required.
3897
3054
  sig do
3898
3055
  returns(
@@ -4018,6 +3175,8 @@ module MetronomeSDK
4018
3175
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::Contract::OrHash,
4019
3176
  description: String,
4020
3177
  ending_before: Time,
3178
+ hierarchy_configuration:
3179
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::OrHash,
4021
3180
  invoice_amount:
4022
3181
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::InvoiceAmount::OrHash,
4023
3182
  name: String,
@@ -4055,6 +3214,8 @@ module MetronomeSDK
4055
3214
  description: nil,
4056
3215
  # Determines when the contract will stop creating recurring commits. Optional
4057
3216
  ending_before: nil,
3217
+ # Optional configuration for recurring commit/credit hierarchy access control
3218
+ hierarchy_configuration: nil,
4058
3219
  # The amount the customer should be billed for the commit. Not required.
4059
3220
  invoice_amount: nil,
4060
3221
  # Displayed on invoices. Will be passed through to the individual commits
@@ -4101,6 +3262,8 @@ module MetronomeSDK
4101
3262
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::Contract,
4102
3263
  description: String,
4103
3264
  ending_before: Time,
3265
+ hierarchy_configuration:
3266
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration,
4104
3267
  invoice_amount:
4105
3268
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::InvoiceAmount,
4106
3269
  name: String,
@@ -4132,26 +3295,29 @@ module MetronomeSDK
4132
3295
  sig { returns(String) }
4133
3296
  attr_accessor :credit_type_id
4134
3297
 
4135
- sig { returns(Float) }
4136
- attr_accessor :quantity
4137
-
4138
3298
  sig { returns(Float) }
4139
3299
  attr_accessor :unit_price
4140
3300
 
3301
+ sig { returns(T.nilable(Float)) }
3302
+ attr_reader :quantity
3303
+
3304
+ sig { params(quantity: Float).void }
3305
+ attr_writer :quantity
3306
+
4141
3307
  # The amount of commit to grant.
4142
3308
  sig do
4143
3309
  params(
4144
3310
  credit_type_id: String,
4145
- quantity: Float,
4146
- unit_price: Float
3311
+ unit_price: Float,
3312
+ quantity: Float
4147
3313
  ).returns(T.attached_class)
4148
3314
  end
4149
- def self.new(credit_type_id:, quantity:, unit_price:)
3315
+ def self.new(credit_type_id:, unit_price:, quantity: nil)
4150
3316
  end
4151
3317
 
4152
3318
  sig do
4153
3319
  override.returns(
4154
- { credit_type_id: String, quantity: Float, unit_price: Float }
3320
+ { credit_type_id: String, unit_price: Float, quantity: Float }
4155
3321
  )
4156
3322
  end
4157
3323
  def to_hash
@@ -4299,24 +3465,292 @@ module MetronomeSDK
4299
3465
  end
4300
3466
  end
4301
3467
 
4302
- class Contract < MetronomeSDK::Internal::Type::BaseModel
4303
- OrHash =
4304
- T.type_alias do
4305
- T.any(
4306
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::Contract,
4307
- MetronomeSDK::Internal::AnyHash
4308
- )
3468
+ class Contract < MetronomeSDK::Internal::Type::BaseModel
3469
+ OrHash =
3470
+ T.type_alias do
3471
+ T.any(
3472
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::Contract,
3473
+ MetronomeSDK::Internal::AnyHash
3474
+ )
3475
+ end
3476
+
3477
+ sig { returns(String) }
3478
+ attr_accessor :id
3479
+
3480
+ sig { params(id: String).returns(T.attached_class) }
3481
+ def self.new(id:)
3482
+ end
3483
+
3484
+ sig { override.returns({ id: String }) }
3485
+ def to_hash
3486
+ end
3487
+ end
3488
+
3489
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
3490
+ OrHash =
3491
+ T.type_alias do
3492
+ T.any(
3493
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration,
3494
+ MetronomeSDK::Internal::AnyHash
3495
+ )
3496
+ end
3497
+
3498
+ sig do
3499
+ returns(
3500
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::Variants
3501
+ )
3502
+ end
3503
+ attr_accessor :child_access
3504
+
3505
+ # Optional configuration for recurring commit/credit hierarchy access control
3506
+ sig do
3507
+ params(
3508
+ child_access:
3509
+ T.any(
3510
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
3511
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
3512
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
3513
+ )
3514
+ ).returns(T.attached_class)
3515
+ end
3516
+ def self.new(child_access:)
3517
+ end
3518
+
3519
+ sig do
3520
+ override.returns(
3521
+ {
3522
+ child_access:
3523
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::Variants
3524
+ }
3525
+ )
3526
+ end
3527
+ def to_hash
3528
+ end
3529
+
3530
+ module ChildAccess
3531
+ extend MetronomeSDK::Internal::Type::Union
3532
+
3533
+ Variants =
3534
+ T.type_alias do
3535
+ T.any(
3536
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
3537
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
3538
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
3539
+ )
3540
+ end
3541
+
3542
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
3543
+ OrHash =
3544
+ T.type_alias do
3545
+ T.any(
3546
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
3547
+ MetronomeSDK::Internal::AnyHash
3548
+ )
3549
+ end
3550
+
3551
+ sig do
3552
+ returns(
3553
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
3554
+ )
3555
+ end
3556
+ attr_accessor :type
3557
+
3558
+ sig do
3559
+ params(
3560
+ type:
3561
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
3562
+ ).returns(T.attached_class)
3563
+ end
3564
+ def self.new(type:)
3565
+ end
3566
+
3567
+ sig do
3568
+ override.returns(
3569
+ {
3570
+ type:
3571
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
3572
+ }
3573
+ )
3574
+ end
3575
+ def to_hash
3576
+ end
3577
+
3578
+ module Type
3579
+ extend MetronomeSDK::Internal::Type::Enum
3580
+
3581
+ TaggedSymbol =
3582
+ T.type_alias do
3583
+ T.all(
3584
+ Symbol,
3585
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
3586
+ )
3587
+ end
3588
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
3589
+
3590
+ ALL =
3591
+ T.let(
3592
+ :ALL,
3593
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
3594
+ )
3595
+
3596
+ sig do
3597
+ override.returns(
3598
+ T::Array[
3599
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
3600
+ ]
3601
+ )
3602
+ end
3603
+ def self.values
3604
+ end
3605
+ end
3606
+ end
3607
+
3608
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
3609
+ OrHash =
3610
+ T.type_alias do
3611
+ T.any(
3612
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
3613
+ MetronomeSDK::Internal::AnyHash
3614
+ )
3615
+ end
3616
+
3617
+ sig do
3618
+ returns(
3619
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
3620
+ )
3621
+ end
3622
+ attr_accessor :type
3623
+
3624
+ sig do
3625
+ params(
3626
+ type:
3627
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
3628
+ ).returns(T.attached_class)
3629
+ end
3630
+ def self.new(type:)
3631
+ end
3632
+
3633
+ sig do
3634
+ override.returns(
3635
+ {
3636
+ type:
3637
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
3638
+ }
3639
+ )
3640
+ end
3641
+ def to_hash
3642
+ end
3643
+
3644
+ module Type
3645
+ extend MetronomeSDK::Internal::Type::Enum
3646
+
3647
+ TaggedSymbol =
3648
+ T.type_alias do
3649
+ T.all(
3650
+ Symbol,
3651
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
3652
+ )
3653
+ end
3654
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
3655
+
3656
+ NONE =
3657
+ T.let(
3658
+ :NONE,
3659
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
3660
+ )
3661
+
3662
+ sig do
3663
+ override.returns(
3664
+ T::Array[
3665
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
3666
+ ]
3667
+ )
3668
+ end
3669
+ def self.values
3670
+ end
3671
+ end
4309
3672
  end
4310
3673
 
4311
- sig { returns(String) }
4312
- attr_accessor :id
3674
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
3675
+ OrHash =
3676
+ T.type_alias do
3677
+ T.any(
3678
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
3679
+ MetronomeSDK::Internal::AnyHash
3680
+ )
3681
+ end
4313
3682
 
4314
- sig { params(id: String).returns(T.attached_class) }
4315
- def self.new(id:)
4316
- end
3683
+ sig { returns(T::Array[String]) }
3684
+ attr_accessor :contract_ids
4317
3685
 
4318
- sig { override.returns({ id: String }) }
4319
- def to_hash
3686
+ sig do
3687
+ returns(
3688
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
3689
+ )
3690
+ end
3691
+ attr_accessor :type
3692
+
3693
+ sig do
3694
+ params(
3695
+ contract_ids: T::Array[String],
3696
+ type:
3697
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
3698
+ ).returns(T.attached_class)
3699
+ end
3700
+ def self.new(contract_ids:, type:)
3701
+ end
3702
+
3703
+ sig do
3704
+ override.returns(
3705
+ {
3706
+ contract_ids: T::Array[String],
3707
+ type:
3708
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
3709
+ }
3710
+ )
3711
+ end
3712
+ def to_hash
3713
+ end
3714
+
3715
+ module Type
3716
+ extend MetronomeSDK::Internal::Type::Enum
3717
+
3718
+ TaggedSymbol =
3719
+ T.type_alias do
3720
+ T.all(
3721
+ Symbol,
3722
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
3723
+ )
3724
+ end
3725
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
3726
+
3727
+ CONTRACT_IDS =
3728
+ T.let(
3729
+ :CONTRACT_IDS,
3730
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
3731
+ )
3732
+
3733
+ sig do
3734
+ override.returns(
3735
+ T::Array[
3736
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
3737
+ ]
3738
+ )
3739
+ end
3740
+ def self.values
3741
+ end
3742
+ end
3743
+ end
3744
+
3745
+ sig do
3746
+ override.returns(
3747
+ T::Array[
3748
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::Variants
3749
+ ]
3750
+ )
3751
+ end
3752
+ def self.variants
3753
+ end
4320
3754
  end
4321
3755
  end
4322
3756
 
@@ -4645,6 +4079,24 @@ module MetronomeSDK
4645
4079
  sig { params(ending_before: Time).void }
4646
4080
  attr_writer :ending_before
4647
4081
 
4082
+ # Optional configuration for recurring commit/credit hierarchy access control
4083
+ sig do
4084
+ returns(
4085
+ T.nilable(
4086
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration
4087
+ )
4088
+ )
4089
+ end
4090
+ attr_reader :hierarchy_configuration
4091
+
4092
+ sig do
4093
+ params(
4094
+ hierarchy_configuration:
4095
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::OrHash
4096
+ ).void
4097
+ end
4098
+ attr_writer :hierarchy_configuration
4099
+
4648
4100
  # Displayed on invoices. Will be passed through to the individual commits
4649
4101
  sig { returns(T.nilable(String)) }
4650
4102
  attr_reader :name
@@ -4752,6 +4204,8 @@ module MetronomeSDK
4752
4204
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::Contract::OrHash,
4753
4205
  description: String,
4754
4206
  ending_before: Time,
4207
+ hierarchy_configuration:
4208
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::OrHash,
4755
4209
  name: String,
4756
4210
  netsuite_sales_order_id: String,
4757
4211
  proration:
@@ -4787,6 +4241,8 @@ module MetronomeSDK
4787
4241
  description: nil,
4788
4242
  # Determines when the contract will stop creating recurring commits. Optional
4789
4243
  ending_before: nil,
4244
+ # Optional configuration for recurring commit/credit hierarchy access control
4245
+ hierarchy_configuration: nil,
4790
4246
  # Displayed on invoices. Will be passed through to the individual commits
4791
4247
  name: nil,
4792
4248
  # Will be passed down to the individual commits
@@ -4831,6 +4287,8 @@ module MetronomeSDK
4831
4287
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::Contract,
4832
4288
  description: String,
4833
4289
  ending_before: Time,
4290
+ hierarchy_configuration:
4291
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration,
4834
4292
  name: String,
4835
4293
  netsuite_sales_order_id: String,
4836
4294
  proration:
@@ -4860,26 +4318,29 @@ module MetronomeSDK
4860
4318
  sig { returns(String) }
4861
4319
  attr_accessor :credit_type_id
4862
4320
 
4863
- sig { returns(Float) }
4864
- attr_accessor :quantity
4865
-
4866
4321
  sig { returns(Float) }
4867
4322
  attr_accessor :unit_price
4868
4323
 
4324
+ sig { returns(T.nilable(Float)) }
4325
+ attr_reader :quantity
4326
+
4327
+ sig { params(quantity: Float).void }
4328
+ attr_writer :quantity
4329
+
4869
4330
  # The amount of commit to grant.
4870
4331
  sig do
4871
4332
  params(
4872
4333
  credit_type_id: String,
4873
- quantity: Float,
4874
- unit_price: Float
4334
+ unit_price: Float,
4335
+ quantity: Float
4875
4336
  ).returns(T.attached_class)
4876
4337
  end
4877
- def self.new(credit_type_id:, quantity:, unit_price:)
4338
+ def self.new(credit_type_id:, unit_price:, quantity: nil)
4878
4339
  end
4879
4340
 
4880
4341
  sig do
4881
4342
  override.returns(
4882
- { credit_type_id: String, quantity: Float, unit_price: Float }
4343
+ { credit_type_id: String, unit_price: Float, quantity: Float }
4883
4344
  )
4884
4345
  end
4885
4346
  def to_hash
@@ -4948,103 +4409,371 @@ module MetronomeSDK
4948
4409
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::CommitDuration::Unit
4949
4410
  )
4950
4411
  end
4951
- OrSymbol = T.type_alias { T.any(Symbol, String) }
4412
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4413
+
4414
+ PERIODS =
4415
+ T.let(
4416
+ :PERIODS,
4417
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::CommitDuration::Unit::TaggedSymbol
4418
+ )
4419
+
4420
+ sig do
4421
+ override.returns(
4422
+ T::Array[
4423
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::CommitDuration::Unit::TaggedSymbol
4424
+ ]
4425
+ )
4426
+ end
4427
+ def self.values
4428
+ end
4429
+ end
4430
+ end
4431
+
4432
+ class Product < MetronomeSDK::Internal::Type::BaseModel
4433
+ OrHash =
4434
+ T.type_alias do
4435
+ T.any(
4436
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::Product,
4437
+ MetronomeSDK::Internal::AnyHash
4438
+ )
4439
+ end
4440
+
4441
+ sig { returns(String) }
4442
+ attr_accessor :id
4443
+
4444
+ sig { returns(String) }
4445
+ attr_accessor :name
4446
+
4447
+ sig { params(id: String, name: String).returns(T.attached_class) }
4448
+ def self.new(id:, name:)
4449
+ end
4450
+
4451
+ sig { override.returns({ id: String, name: String }) }
4452
+ def to_hash
4453
+ end
4454
+ end
4455
+
4456
+ # Whether the created commits will use the commit rate or list rate
4457
+ module RateType
4458
+ extend MetronomeSDK::Internal::Type::Enum
4459
+
4460
+ TaggedSymbol =
4461
+ T.type_alias do
4462
+ T.all(
4463
+ Symbol,
4464
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RateType
4465
+ )
4466
+ end
4467
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4468
+
4469
+ COMMIT_RATE =
4470
+ T.let(
4471
+ :COMMIT_RATE,
4472
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RateType::TaggedSymbol
4473
+ )
4474
+ LIST_RATE =
4475
+ T.let(
4476
+ :LIST_RATE,
4477
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RateType::TaggedSymbol
4478
+ )
4479
+
4480
+ sig do
4481
+ override.returns(
4482
+ T::Array[
4483
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RateType::TaggedSymbol
4484
+ ]
4485
+ )
4486
+ end
4487
+ def self.values
4488
+ end
4489
+ end
4490
+
4491
+ class Contract < MetronomeSDK::Internal::Type::BaseModel
4492
+ OrHash =
4493
+ T.type_alias do
4494
+ T.any(
4495
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::Contract,
4496
+ MetronomeSDK::Internal::AnyHash
4497
+ )
4498
+ end
4499
+
4500
+ sig { returns(String) }
4501
+ attr_accessor :id
4502
+
4503
+ sig { params(id: String).returns(T.attached_class) }
4504
+ def self.new(id:)
4505
+ end
4506
+
4507
+ sig { override.returns({ id: String }) }
4508
+ def to_hash
4509
+ end
4510
+ end
4511
+
4512
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
4513
+ OrHash =
4514
+ T.type_alias do
4515
+ T.any(
4516
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration,
4517
+ MetronomeSDK::Internal::AnyHash
4518
+ )
4519
+ end
4520
+
4521
+ sig do
4522
+ returns(
4523
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::Variants
4524
+ )
4525
+ end
4526
+ attr_accessor :child_access
4527
+
4528
+ # Optional configuration for recurring commit/credit hierarchy access control
4529
+ sig do
4530
+ params(
4531
+ child_access:
4532
+ T.any(
4533
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
4534
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
4535
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
4536
+ )
4537
+ ).returns(T.attached_class)
4538
+ end
4539
+ def self.new(child_access:)
4540
+ end
4541
+
4542
+ sig do
4543
+ override.returns(
4544
+ {
4545
+ child_access:
4546
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::Variants
4547
+ }
4548
+ )
4549
+ end
4550
+ def to_hash
4551
+ end
4552
+
4553
+ module ChildAccess
4554
+ extend MetronomeSDK::Internal::Type::Union
4555
+
4556
+ Variants =
4557
+ T.type_alias do
4558
+ T.any(
4559
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
4560
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
4561
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
4562
+ )
4563
+ end
4564
+
4565
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
4566
+ OrHash =
4567
+ T.type_alias do
4568
+ T.any(
4569
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
4570
+ MetronomeSDK::Internal::AnyHash
4571
+ )
4572
+ end
4573
+
4574
+ sig do
4575
+ returns(
4576
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
4577
+ )
4578
+ end
4579
+ attr_accessor :type
4580
+
4581
+ sig do
4582
+ params(
4583
+ type:
4584
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
4585
+ ).returns(T.attached_class)
4586
+ end
4587
+ def self.new(type:)
4588
+ end
4589
+
4590
+ sig do
4591
+ override.returns(
4592
+ {
4593
+ type:
4594
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
4595
+ }
4596
+ )
4597
+ end
4598
+ def to_hash
4599
+ end
4600
+
4601
+ module Type
4602
+ extend MetronomeSDK::Internal::Type::Enum
4603
+
4604
+ TaggedSymbol =
4605
+ T.type_alias do
4606
+ T.all(
4607
+ Symbol,
4608
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
4609
+ )
4610
+ end
4611
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4612
+
4613
+ ALL =
4614
+ T.let(
4615
+ :ALL,
4616
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
4617
+ )
4618
+
4619
+ sig do
4620
+ override.returns(
4621
+ T::Array[
4622
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
4623
+ ]
4624
+ )
4625
+ end
4626
+ def self.values
4627
+ end
4628
+ end
4629
+ end
4630
+
4631
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
4632
+ OrHash =
4633
+ T.type_alias do
4634
+ T.any(
4635
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
4636
+ MetronomeSDK::Internal::AnyHash
4637
+ )
4638
+ end
4639
+
4640
+ sig do
4641
+ returns(
4642
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
4643
+ )
4644
+ end
4645
+ attr_accessor :type
4646
+
4647
+ sig do
4648
+ params(
4649
+ type:
4650
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
4651
+ ).returns(T.attached_class)
4652
+ end
4653
+ def self.new(type:)
4654
+ end
4655
+
4656
+ sig do
4657
+ override.returns(
4658
+ {
4659
+ type:
4660
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
4661
+ }
4662
+ )
4663
+ end
4664
+ def to_hash
4665
+ end
4952
4666
 
4953
- PERIODS =
4954
- T.let(
4955
- :PERIODS,
4956
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::CommitDuration::Unit::TaggedSymbol
4957
- )
4667
+ module Type
4668
+ extend MetronomeSDK::Internal::Type::Enum
4669
+
4670
+ TaggedSymbol =
4671
+ T.type_alias do
4672
+ T.all(
4673
+ Symbol,
4674
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
4675
+ )
4676
+ end
4677
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4678
+
4679
+ NONE =
4680
+ T.let(
4681
+ :NONE,
4682
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
4683
+ )
4958
4684
 
4959
- sig do
4960
- override.returns(
4961
- T::Array[
4962
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::CommitDuration::Unit::TaggedSymbol
4963
- ]
4964
- )
4965
- end
4966
- def self.values
4685
+ sig do
4686
+ override.returns(
4687
+ T::Array[
4688
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
4689
+ ]
4690
+ )
4691
+ end
4692
+ def self.values
4693
+ end
4694
+ end
4967
4695
  end
4968
- end
4969
- end
4970
4696
 
4971
- class Product < MetronomeSDK::Internal::Type::BaseModel
4972
- OrHash =
4973
- T.type_alias do
4974
- T.any(
4975
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::Product,
4976
- MetronomeSDK::Internal::AnyHash
4977
- )
4978
- end
4697
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
4698
+ OrHash =
4699
+ T.type_alias do
4700
+ T.any(
4701
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
4702
+ MetronomeSDK::Internal::AnyHash
4703
+ )
4704
+ end
4979
4705
 
4980
- sig { returns(String) }
4981
- attr_accessor :id
4706
+ sig { returns(T::Array[String]) }
4707
+ attr_accessor :contract_ids
4982
4708
 
4983
- sig { returns(String) }
4984
- attr_accessor :name
4709
+ sig do
4710
+ returns(
4711
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
4712
+ )
4713
+ end
4714
+ attr_accessor :type
4985
4715
 
4986
- sig { params(id: String, name: String).returns(T.attached_class) }
4987
- def self.new(id:, name:)
4988
- end
4716
+ sig do
4717
+ params(
4718
+ contract_ids: T::Array[String],
4719
+ type:
4720
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
4721
+ ).returns(T.attached_class)
4722
+ end
4723
+ def self.new(contract_ids:, type:)
4724
+ end
4989
4725
 
4990
- sig { override.returns({ id: String, name: String }) }
4991
- def to_hash
4992
- end
4993
- end
4726
+ sig do
4727
+ override.returns(
4728
+ {
4729
+ contract_ids: T::Array[String],
4730
+ type:
4731
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
4732
+ }
4733
+ )
4734
+ end
4735
+ def to_hash
4736
+ end
4994
4737
 
4995
- # Whether the created commits will use the commit rate or list rate
4996
- module RateType
4997
- extend MetronomeSDK::Internal::Type::Enum
4738
+ module Type
4739
+ extend MetronomeSDK::Internal::Type::Enum
4740
+
4741
+ TaggedSymbol =
4742
+ T.type_alias do
4743
+ T.all(
4744
+ Symbol,
4745
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
4746
+ )
4747
+ end
4748
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4749
+
4750
+ CONTRACT_IDS =
4751
+ T.let(
4752
+ :CONTRACT_IDS,
4753
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
4754
+ )
4998
4755
 
4999
- TaggedSymbol =
5000
- T.type_alias do
5001
- T.all(
5002
- Symbol,
5003
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RateType
5004
- )
4756
+ sig do
4757
+ override.returns(
4758
+ T::Array[
4759
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
4760
+ ]
4761
+ )
4762
+ end
4763
+ def self.values
4764
+ end
4765
+ end
5005
4766
  end
5006
- OrSymbol = T.type_alias { T.any(Symbol, String) }
5007
-
5008
- COMMIT_RATE =
5009
- T.let(
5010
- :COMMIT_RATE,
5011
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RateType::TaggedSymbol
5012
- )
5013
- LIST_RATE =
5014
- T.let(
5015
- :LIST_RATE,
5016
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RateType::TaggedSymbol
5017
- )
5018
4767
 
5019
- sig do
5020
- override.returns(
5021
- T::Array[
5022
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::RateType::TaggedSymbol
5023
- ]
5024
- )
5025
- end
5026
- def self.values
5027
- end
5028
- end
5029
-
5030
- class Contract < MetronomeSDK::Internal::Type::BaseModel
5031
- OrHash =
5032
- T.type_alias do
5033
- T.any(
5034
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::Contract,
5035
- MetronomeSDK::Internal::AnyHash
4768
+ sig do
4769
+ override.returns(
4770
+ T::Array[
4771
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::Variants
4772
+ ]
5036
4773
  )
5037
4774
  end
5038
-
5039
- sig { returns(String) }
5040
- attr_accessor :id
5041
-
5042
- sig { params(id: String).returns(T.attached_class) }
5043
- def self.new(id:)
5044
- end
5045
-
5046
- sig { override.returns({ id: String }) }
5047
- def to_hash
4775
+ def self.variants
4776
+ end
5048
4777
  end
5049
4778
  end
5050
4779
 
@@ -5430,18 +5159,11 @@ module MetronomeSDK
5430
5159
  end
5431
5160
  attr_writer :product
5432
5161
 
5433
- sig do
5434
- returns(
5435
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddScheduledCharge::Schedule
5436
- )
5437
- end
5162
+ sig { returns(MetronomeSDK::SchedulePointInTime) }
5438
5163
  attr_reader :schedule
5439
5164
 
5440
5165
  sig do
5441
- params(
5442
- schedule:
5443
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddScheduledCharge::Schedule::OrHash
5444
- ).void
5166
+ params(schedule: MetronomeSDK::SchedulePointInTime::OrHash).void
5445
5167
  end
5446
5168
  attr_writer :schedule
5447
5169
 
@@ -5464,8 +5186,7 @@ module MetronomeSDK
5464
5186
  id: String,
5465
5187
  product:
5466
5188
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddScheduledCharge::Product::OrHash,
5467
- schedule:
5468
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddScheduledCharge::Schedule::OrHash,
5189
+ schedule: MetronomeSDK::SchedulePointInTime::OrHash,
5469
5190
  name: String,
5470
5191
  netsuite_sales_order_id: String
5471
5192
  ).returns(T.attached_class)
@@ -5485,204 +5206,38 @@ module MetronomeSDK
5485
5206
  override.returns(
5486
5207
  {
5487
5208
  id: String,
5488
- product:
5489
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddScheduledCharge::Product,
5490
- schedule:
5491
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddScheduledCharge::Schedule,
5492
- name: String,
5493
- netsuite_sales_order_id: String
5494
- }
5495
- )
5496
- end
5497
- def to_hash
5498
- end
5499
-
5500
- class Product < MetronomeSDK::Internal::Type::BaseModel
5501
- OrHash =
5502
- T.type_alias do
5503
- T.any(
5504
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddScheduledCharge::Product,
5505
- MetronomeSDK::Internal::AnyHash
5506
- )
5507
- end
5508
-
5509
- sig { returns(String) }
5510
- attr_accessor :id
5511
-
5512
- sig { returns(String) }
5513
- attr_accessor :name
5514
-
5515
- sig { params(id: String, name: String).returns(T.attached_class) }
5516
- def self.new(id:, name:)
5517
- end
5518
-
5519
- sig { override.returns({ id: String, name: String }) }
5520
- def to_hash
5521
- end
5522
- end
5523
-
5524
- class Schedule < MetronomeSDK::Internal::Type::BaseModel
5525
- OrHash =
5526
- T.type_alias do
5527
- T.any(
5528
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddScheduledCharge::Schedule,
5529
- MetronomeSDK::Internal::AnyHash
5530
- )
5531
- end
5532
-
5533
- sig do
5534
- returns(
5535
- T.nilable(
5536
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddScheduledCharge::Schedule::CreditType
5537
- )
5538
- )
5539
- end
5540
- attr_reader :credit_type
5541
-
5542
- sig do
5543
- params(
5544
- credit_type:
5545
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddScheduledCharge::Schedule::CreditType::OrHash
5546
- ).void
5547
- end
5548
- attr_writer :credit_type
5549
-
5550
- sig do
5551
- returns(
5552
- T.nilable(
5553
- T::Array[
5554
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddScheduledCharge::Schedule::ScheduleItem
5555
- ]
5556
- )
5557
- )
5558
- end
5559
- attr_reader :schedule_items
5560
-
5561
- sig do
5562
- params(
5563
- schedule_items:
5564
- T::Array[
5565
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddScheduledCharge::Schedule::ScheduleItem::OrHash
5566
- ]
5567
- ).void
5568
- end
5569
- attr_writer :schedule_items
5570
-
5571
- sig do
5572
- params(
5573
- credit_type:
5574
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddScheduledCharge::Schedule::CreditType::OrHash,
5575
- schedule_items:
5576
- T::Array[
5577
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddScheduledCharge::Schedule::ScheduleItem::OrHash
5578
- ]
5579
- ).returns(T.attached_class)
5580
- end
5581
- def self.new(credit_type: nil, schedule_items: nil)
5582
- end
5583
-
5584
- sig do
5585
- override.returns(
5586
- {
5587
- credit_type:
5588
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddScheduledCharge::Schedule::CreditType,
5589
- schedule_items:
5590
- T::Array[
5591
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddScheduledCharge::Schedule::ScheduleItem
5592
- ]
5593
- }
5594
- )
5595
- end
5596
- def to_hash
5597
- end
5598
-
5599
- class CreditType < MetronomeSDK::Internal::Type::BaseModel
5600
- OrHash =
5601
- T.type_alias do
5602
- T.any(
5603
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddScheduledCharge::Schedule::CreditType,
5604
- MetronomeSDK::Internal::AnyHash
5605
- )
5606
- end
5607
-
5608
- sig { returns(String) }
5609
- attr_accessor :id
5610
-
5611
- sig { returns(String) }
5612
- attr_accessor :name
5613
-
5614
- sig do
5615
- params(id: String, name: String).returns(T.attached_class)
5616
- end
5617
- def self.new(id:, name:)
5618
- end
5619
-
5620
- sig { override.returns({ id: String, name: String }) }
5621
- def to_hash
5622
- end
5623
- end
5624
-
5625
- class ScheduleItem < MetronomeSDK::Internal::Type::BaseModel
5626
- OrHash =
5627
- T.type_alias do
5628
- T.any(
5629
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddScheduledCharge::Schedule::ScheduleItem,
5630
- MetronomeSDK::Internal::AnyHash
5631
- )
5632
- end
5633
-
5634
- sig { returns(String) }
5635
- attr_accessor :id
5636
-
5637
- sig { returns(Float) }
5638
- attr_accessor :amount
5639
-
5640
- sig { returns(String) }
5641
- attr_accessor :invoice_id
5209
+ product:
5210
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddScheduledCharge::Product,
5211
+ schedule: MetronomeSDK::SchedulePointInTime,
5212
+ name: String,
5213
+ netsuite_sales_order_id: String
5214
+ }
5215
+ )
5216
+ end
5217
+ def to_hash
5218
+ end
5642
5219
 
5643
- sig { returns(Float) }
5644
- attr_accessor :quantity
5220
+ class Product < MetronomeSDK::Internal::Type::BaseModel
5221
+ OrHash =
5222
+ T.type_alias do
5223
+ T.any(
5224
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddScheduledCharge::Product,
5225
+ MetronomeSDK::Internal::AnyHash
5226
+ )
5227
+ end
5645
5228
 
5646
- sig { returns(Time) }
5647
- attr_accessor :timestamp
5229
+ sig { returns(String) }
5230
+ attr_accessor :id
5648
5231
 
5649
- sig { returns(Float) }
5650
- attr_accessor :unit_price
5232
+ sig { returns(String) }
5233
+ attr_accessor :name
5651
5234
 
5652
- sig do
5653
- params(
5654
- id: String,
5655
- amount: Float,
5656
- invoice_id: String,
5657
- quantity: Float,
5658
- timestamp: Time,
5659
- unit_price: Float
5660
- ).returns(T.attached_class)
5661
- end
5662
- def self.new(
5663
- id:,
5664
- amount:,
5665
- invoice_id:,
5666
- quantity:,
5667
- timestamp:,
5668
- unit_price:
5669
- )
5670
- end
5235
+ sig { params(id: String, name: String).returns(T.attached_class) }
5236
+ def self.new(id:, name:)
5237
+ end
5671
5238
 
5672
- sig do
5673
- override.returns(
5674
- {
5675
- id: String,
5676
- amount: Float,
5677
- invoice_id: String,
5678
- quantity: Float,
5679
- timestamp: Time,
5680
- unit_price: Float
5681
- }
5682
- )
5683
- end
5684
- def to_hash
5685
- end
5239
+ sig { override.returns({ id: String, name: String }) }
5240
+ def to_hash
5686
5241
  end
5687
5242
  end
5688
5243
  end
@@ -5850,7 +5405,25 @@ module MetronomeSDK
5850
5405
  end
5851
5406
  attr_accessor :payment_gate_type
5852
5407
 
5853
- # Only applicable if using Stripe as your payment gateway through Metronome.
5408
+ # Only applicable if using PRECALCULATED as your tax type.
5409
+ sig do
5410
+ returns(
5411
+ T.nilable(
5412
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
5413
+ )
5414
+ )
5415
+ end
5416
+ attr_reader :precalculated_tax_config
5417
+
5418
+ sig do
5419
+ params(
5420
+ precalculated_tax_config:
5421
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
5422
+ ).void
5423
+ end
5424
+ attr_writer :precalculated_tax_config
5425
+
5426
+ # Only applicable if using STRIPE as your payment gateway type.
5854
5427
  sig do
5855
5428
  returns(
5856
5429
  T.nilable(
@@ -5892,6 +5465,8 @@ module MetronomeSDK
5892
5465
  params(
5893
5466
  payment_gate_type:
5894
5467
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
5468
+ precalculated_tax_config:
5469
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
5895
5470
  stripe_config:
5896
5471
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash,
5897
5472
  tax_type:
@@ -5904,7 +5479,9 @@ module MetronomeSDK
5904
5479
  # facilitate payment using your own payment integration. Select NONE if you do not
5905
5480
  # wish to payment gate the commit balance.
5906
5481
  payment_gate_type:,
5907
- # Only applicable if using Stripe as your payment gateway through Metronome.
5482
+ # Only applicable if using PRECALCULATED as your tax type.
5483
+ precalculated_tax_config: nil,
5484
+ # Only applicable if using STRIPE as your payment gateway type.
5908
5485
  stripe_config: nil,
5909
5486
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
5910
5487
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
@@ -5918,6 +5495,8 @@ module MetronomeSDK
5918
5495
  {
5919
5496
  payment_gate_type:
5920
5497
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::TaggedSymbol,
5498
+ precalculated_tax_config:
5499
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
5921
5500
  stripe_config:
5922
5501
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig,
5923
5502
  tax_type:
@@ -5971,6 +5550,51 @@ module MetronomeSDK
5971
5550
  end
5972
5551
  end
5973
5552
 
5553
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
5554
+ OrHash =
5555
+ T.type_alias do
5556
+ T.any(
5557
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
5558
+ MetronomeSDK::Internal::AnyHash
5559
+ )
5560
+ end
5561
+
5562
+ # Amount of tax to be applied. This should be in the same currency and
5563
+ # denomination as the commit's invoice schedule
5564
+ sig { returns(Float) }
5565
+ attr_accessor :tax_amount
5566
+
5567
+ # Name of the tax to be applied. This may be used in an invoice line item
5568
+ # description.
5569
+ sig { returns(T.nilable(String)) }
5570
+ attr_reader :tax_name
5571
+
5572
+ sig { params(tax_name: String).void }
5573
+ attr_writer :tax_name
5574
+
5575
+ # Only applicable if using PRECALCULATED as your tax type.
5576
+ sig do
5577
+ params(tax_amount: Float, tax_name: String).returns(
5578
+ T.attached_class
5579
+ )
5580
+ end
5581
+ def self.new(
5582
+ # Amount of tax to be applied. This should be in the same currency and
5583
+ # denomination as the commit's invoice schedule
5584
+ tax_amount:,
5585
+ # Name of the tax to be applied. This may be used in an invoice line item
5586
+ # description.
5587
+ tax_name: nil
5588
+ )
5589
+ end
5590
+
5591
+ sig do
5592
+ override.returns({ tax_amount: Float, tax_name: String })
5593
+ end
5594
+ def to_hash
5595
+ end
5596
+ end
5597
+
5974
5598
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
5975
5599
  OrHash =
5976
5600
  T.type_alias do
@@ -5988,16 +5612,28 @@ module MetronomeSDK
5988
5612
  end
5989
5613
  attr_accessor :payment_type
5990
5614
 
5991
- # Only applicable if using Stripe as your payment gateway through Metronome.
5615
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
5616
+ # your payment type.
5617
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
5618
+ attr_reader :invoice_metadata
5619
+
5620
+ sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
5621
+ attr_writer :invoice_metadata
5622
+
5623
+ # Only applicable if using STRIPE as your payment gateway type.
5992
5624
  sig do
5993
5625
  params(
5994
5626
  payment_type:
5995
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
5627
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
5628
+ invoice_metadata: T::Hash[Symbol, String]
5996
5629
  ).returns(T.attached_class)
5997
5630
  end
5998
5631
  def self.new(
5999
5632
  # If left blank, will default to INVOICE
6000
- payment_type:
5633
+ payment_type:,
5634
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
5635
+ # your payment type.
5636
+ invoice_metadata: nil
6001
5637
  )
6002
5638
  end
6003
5639
 
@@ -6005,7 +5641,8 @@ module MetronomeSDK
6005
5641
  override.returns(
6006
5642
  {
6007
5643
  payment_type:
6008
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol
5644
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol,
5645
+ invoice_metadata: T::Hash[Symbol, String]
6009
5646
  }
6010
5647
  )
6011
5648
  end
@@ -6073,6 +5710,16 @@ module MetronomeSDK
6073
5710
  :STRIPE,
6074
5711
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
6075
5712
  )
5713
+ ANROK =
5714
+ T.let(
5715
+ :ANROK,
5716
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
5717
+ )
5718
+ PRECALCULATED =
5719
+ T.let(
5720
+ :PRECALCULATED,
5721
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
5722
+ )
6076
5723
 
6077
5724
  sig do
6078
5725
  override.returns(
@@ -6118,6 +5765,8 @@ module MetronomeSDK
6118
5765
  end
6119
5766
  attr_writer :proration
6120
5767
 
5768
+ # List of quantity schedule items for the subscription. Only includes the current
5769
+ # quantity and future quantity changes.
6121
5770
  sig do
6122
5771
  returns(
6123
5772
  T::Array[
@@ -6205,6 +5854,8 @@ module MetronomeSDK
6205
5854
  def self.new(
6206
5855
  collection_schedule:,
6207
5856
  proration:,
5857
+ # List of quantity schedule items for the subscription. Only includes the current
5858
+ # quantity and future quantity changes.
6208
5859
  quantity_schedule:,
6209
5860
  starting_at:,
6210
5861
  subscription_rate:,
@@ -6695,13 +6346,15 @@ module MetronomeSDK
6695
6346
  end
6696
6347
  attr_writer :access_schedule
6697
6348
 
6698
- # Which products the commit applies to. If both applicable_product_ids and
6699
- # applicable_product_tags are not provided, the commit applies to all products.
6349
+ # Which products the commit applies to. If applicable_product_ids,
6350
+ # applicable_product_tags or specifiers are not provided, the commit applies to
6351
+ # all products.
6700
6352
  sig { returns(T.nilable(T::Array[String])) }
6701
6353
  attr_accessor :applicable_product_ids
6702
6354
 
6703
- # Which tags the commit applies to. If both applicable_product_ids and
6704
- # applicable_product_tags are not provided, the commit applies to all products.
6355
+ # Which tags the commit applies to. If applicable_product_ids,
6356
+ # applicable_product_tags or specifiers are not provided, the commit applies to
6357
+ # all products.
6705
6358
  sig { returns(T.nilable(T::Array[String])) }
6706
6359
  attr_accessor :applicable_product_tags
6707
6360
 
@@ -6753,17 +6406,7 @@ module MetronomeSDK
6753
6406
  )
6754
6407
  )
6755
6408
  end
6756
- attr_reader :specifiers
6757
-
6758
- sig do
6759
- params(
6760
- specifiers:
6761
- T::Array[
6762
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::Specifier::OrHash
6763
- ]
6764
- ).void
6765
- end
6766
- attr_writer :specifiers
6409
+ attr_accessor :specifiers
6767
6410
 
6768
6411
  sig do
6769
6412
  params(
@@ -6779,19 +6422,23 @@ module MetronomeSDK
6779
6422
  product_id: String,
6780
6423
  rollover_fraction: T.nilable(Float),
6781
6424
  specifiers:
6782
- T::Array[
6783
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::Specifier::OrHash
6784
- ]
6425
+ T.nilable(
6426
+ T::Array[
6427
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::Specifier::OrHash
6428
+ ]
6429
+ )
6785
6430
  ).returns(T.attached_class)
6786
6431
  end
6787
6432
  def self.new(
6788
6433
  id:,
6789
6434
  access_schedule: nil,
6790
- # Which products the commit applies to. If both applicable_product_ids and
6791
- # applicable_product_tags are not provided, the commit applies to all products.
6435
+ # Which products the commit applies to. If applicable_product_ids,
6436
+ # applicable_product_tags or specifiers are not provided, the commit applies to
6437
+ # all products.
6792
6438
  applicable_product_ids: nil,
6793
- # Which tags the commit applies to. If both applicable_product_ids and
6794
- # applicable_product_tags are not provided, the commit applies to all products.
6439
+ # Which tags the commit applies to. If applicable_product_ids,
6440
+ # applicable_product_tags or specifiers are not provided, the commit applies to
6441
+ # all products.
6795
6442
  applicable_product_tags: nil,
6796
6443
  invoice_schedule: nil,
6797
6444
  name: nil,
@@ -6821,9 +6468,11 @@ module MetronomeSDK
6821
6468
  product_id: String,
6822
6469
  rollover_fraction: T.nilable(Float),
6823
6470
  specifiers:
6824
- T::Array[
6825
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::Specifier
6826
- ]
6471
+ T.nilable(
6472
+ T::Array[
6473
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::Specifier
6474
+ ]
6475
+ )
6827
6476
  }
6828
6477
  )
6829
6478
  end
@@ -8231,6 +7880,11 @@ module MetronomeSDK
8231
7880
  end
8232
7881
  attr_writer :commit
8233
7882
 
7883
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
7884
+ # commit amount will be in terms of this credit type instead of the fiat currency.
7885
+ sig { returns(T.nilable(String)) }
7886
+ attr_accessor :custom_credit_type_id
7887
+
8234
7888
  # When set to false, the contract will not be evaluated against the
8235
7889
  # threshold_amount. Toggling to true will result an immediate evaluation,
8236
7890
  # regardless of prior state.
@@ -8276,6 +7930,7 @@ module MetronomeSDK
8276
7930
  params(
8277
7931
  commit:
8278
7932
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::Commit::OrHash,
7933
+ custom_credit_type_id: T.nilable(String),
8279
7934
  is_enabled: T::Boolean,
8280
7935
  payment_gate_config:
8281
7936
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::OrHash,
@@ -8285,6 +7940,9 @@ module MetronomeSDK
8285
7940
  end
8286
7941
  def self.new(
8287
7942
  commit: nil,
7943
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
7944
+ # commit amount will be in terms of this credit type instead of the fiat currency.
7945
+ custom_credit_type_id: nil,
8288
7946
  # When set to false, the contract will not be evaluated against the
8289
7947
  # threshold_amount. Toggling to true will result an immediate evaluation,
8290
7948
  # regardless of prior state.
@@ -8303,6 +7961,7 @@ module MetronomeSDK
8303
7961
  {
8304
7962
  commit:
8305
7963
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::Commit,
7964
+ custom_credit_type_id: T.nilable(String),
8306
7965
  is_enabled: T::Boolean,
8307
7966
  payment_gate_config:
8308
7967
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig,
@@ -8327,18 +7986,12 @@ module MetronomeSDK
8327
7986
  # and applicable_product_tags are not provided, the commit applies to all
8328
7987
  # products.
8329
7988
  sig { returns(T.nilable(T::Array[String])) }
8330
- attr_reader :applicable_product_ids
8331
-
8332
- sig { params(applicable_product_ids: T::Array[String]).void }
8333
- attr_writer :applicable_product_ids
7989
+ attr_accessor :applicable_product_ids
8334
7990
 
8335
7991
  # Which tags the threshold commit applies to. If both applicable_product_ids and
8336
7992
  # applicable_product_tags are not provided, the commit applies to all products.
8337
7993
  sig { returns(T.nilable(T::Array[String])) }
8338
- attr_reader :applicable_product_tags
8339
-
8340
- sig { params(applicable_product_tags: T::Array[String]).void }
8341
- attr_writer :applicable_product_tags
7994
+ attr_accessor :applicable_product_tags
8342
7995
 
8343
7996
  sig { returns(T.nilable(String)) }
8344
7997
  attr_reader :description
@@ -8375,29 +8028,21 @@ module MetronomeSDK
8375
8028
  )
8376
8029
  )
8377
8030
  end
8378
- attr_reader :specifiers
8379
-
8380
- sig do
8381
- params(
8382
- specifiers:
8383
- T::Array[
8384
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier::OrHash
8385
- ]
8386
- ).void
8387
- end
8388
- attr_writer :specifiers
8031
+ attr_accessor :specifiers
8389
8032
 
8390
8033
  sig do
8391
8034
  params(
8392
- applicable_product_ids: T::Array[String],
8393
- applicable_product_tags: T::Array[String],
8035
+ applicable_product_ids: T.nilable(T::Array[String]),
8036
+ applicable_product_tags: T.nilable(T::Array[String]),
8394
8037
  description: String,
8395
8038
  name: String,
8396
8039
  product_id: String,
8397
8040
  specifiers:
8398
- T::Array[
8399
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier::OrHash
8400
- ]
8041
+ T.nilable(
8042
+ T::Array[
8043
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier::OrHash
8044
+ ]
8045
+ )
8401
8046
  ).returns(T.attached_class)
8402
8047
  end
8403
8048
  def self.new(
@@ -8426,15 +8071,17 @@ module MetronomeSDK
8426
8071
  sig do
8427
8072
  override.returns(
8428
8073
  {
8429
- applicable_product_ids: T::Array[String],
8430
- applicable_product_tags: T::Array[String],
8074
+ applicable_product_ids: T.nilable(T::Array[String]),
8075
+ applicable_product_tags: T.nilable(T::Array[String]),
8431
8076
  description: String,
8432
8077
  name: String,
8433
8078
  product_id: String,
8434
8079
  specifiers:
8435
- T::Array[
8436
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier
8437
- ]
8080
+ T.nilable(
8081
+ T::Array[
8082
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::Commit::Specifier
8083
+ ]
8084
+ )
8438
8085
  }
8439
8086
  )
8440
8087
  end
@@ -8537,7 +8184,25 @@ module MetronomeSDK
8537
8184
  end
8538
8185
  attr_accessor :payment_gate_type
8539
8186
 
8540
- # Only applicable if using Stripe as your payment gateway through Metronome.
8187
+ # Only applicable if using PRECALCULATED as your tax type.
8188
+ sig do
8189
+ returns(
8190
+ T.nilable(
8191
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
8192
+ )
8193
+ )
8194
+ end
8195
+ attr_reader :precalculated_tax_config
8196
+
8197
+ sig do
8198
+ params(
8199
+ precalculated_tax_config:
8200
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
8201
+ ).void
8202
+ end
8203
+ attr_writer :precalculated_tax_config
8204
+
8205
+ # Only applicable if using STRIPE as your payment gateway type.
8541
8206
  sig do
8542
8207
  returns(
8543
8208
  T.nilable(
@@ -8579,6 +8244,8 @@ module MetronomeSDK
8579
8244
  params(
8580
8245
  payment_gate_type:
8581
8246
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
8247
+ precalculated_tax_config:
8248
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
8582
8249
  stripe_config:
8583
8250
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash,
8584
8251
  tax_type:
@@ -8591,7 +8258,9 @@ module MetronomeSDK
8591
8258
  # facilitate payment using your own payment integration. Select NONE if you do not
8592
8259
  # wish to payment gate the commit balance.
8593
8260
  payment_gate_type:,
8594
- # Only applicable if using Stripe as your payment gateway through Metronome.
8261
+ # Only applicable if using PRECALCULATED as your tax type.
8262
+ precalculated_tax_config: nil,
8263
+ # Only applicable if using STRIPE as your payment gateway type.
8595
8264
  stripe_config: nil,
8596
8265
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
8597
8266
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
@@ -8605,6 +8274,8 @@ module MetronomeSDK
8605
8274
  {
8606
8275
  payment_gate_type:
8607
8276
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::TaggedSymbol,
8277
+ precalculated_tax_config:
8278
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
8608
8279
  stripe_config:
8609
8280
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig,
8610
8281
  tax_type:
@@ -8658,6 +8329,51 @@ module MetronomeSDK
8658
8329
  end
8659
8330
  end
8660
8331
 
8332
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
8333
+ OrHash =
8334
+ T.type_alias do
8335
+ T.any(
8336
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
8337
+ MetronomeSDK::Internal::AnyHash
8338
+ )
8339
+ end
8340
+
8341
+ # Amount of tax to be applied. This should be in the same currency and
8342
+ # denomination as the commit's invoice schedule
8343
+ sig { returns(Float) }
8344
+ attr_accessor :tax_amount
8345
+
8346
+ # Name of the tax to be applied. This may be used in an invoice line item
8347
+ # description.
8348
+ sig { returns(T.nilable(String)) }
8349
+ attr_reader :tax_name
8350
+
8351
+ sig { params(tax_name: String).void }
8352
+ attr_writer :tax_name
8353
+
8354
+ # Only applicable if using PRECALCULATED as your tax type.
8355
+ sig do
8356
+ params(tax_amount: Float, tax_name: String).returns(
8357
+ T.attached_class
8358
+ )
8359
+ end
8360
+ def self.new(
8361
+ # Amount of tax to be applied. This should be in the same currency and
8362
+ # denomination as the commit's invoice schedule
8363
+ tax_amount:,
8364
+ # Name of the tax to be applied. This may be used in an invoice line item
8365
+ # description.
8366
+ tax_name: nil
8367
+ )
8368
+ end
8369
+
8370
+ sig do
8371
+ override.returns({ tax_amount: Float, tax_name: String })
8372
+ end
8373
+ def to_hash
8374
+ end
8375
+ end
8376
+
8661
8377
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
8662
8378
  OrHash =
8663
8379
  T.type_alias do
@@ -8675,16 +8391,28 @@ module MetronomeSDK
8675
8391
  end
8676
8392
  attr_accessor :payment_type
8677
8393
 
8678
- # Only applicable if using Stripe as your payment gateway through Metronome.
8394
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
8395
+ # your payment type.
8396
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
8397
+ attr_reader :invoice_metadata
8398
+
8399
+ sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
8400
+ attr_writer :invoice_metadata
8401
+
8402
+ # Only applicable if using STRIPE as your payment gateway type.
8679
8403
  sig do
8680
8404
  params(
8681
8405
  payment_type:
8682
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
8406
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
8407
+ invoice_metadata: T::Hash[Symbol, String]
8683
8408
  ).returns(T.attached_class)
8684
8409
  end
8685
8410
  def self.new(
8686
8411
  # If left blank, will default to INVOICE
8687
- payment_type:
8412
+ payment_type:,
8413
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
8414
+ # your payment type.
8415
+ invoice_metadata: nil
8688
8416
  )
8689
8417
  end
8690
8418
 
@@ -8692,7 +8420,8 @@ module MetronomeSDK
8692
8420
  override.returns(
8693
8421
  {
8694
8422
  payment_type:
8695
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol
8423
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol,
8424
+ invoice_metadata: T::Hash[Symbol, String]
8696
8425
  }
8697
8426
  )
8698
8427
  end
@@ -8760,6 +8489,16 @@ module MetronomeSDK
8760
8489
  :STRIPE,
8761
8490
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
8762
8491
  )
8492
+ ANROK =
8493
+ T.let(
8494
+ :ANROK,
8495
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
8496
+ )
8497
+ PRECALCULATED =
8498
+ T.let(
8499
+ :PRECALCULATED,
8500
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdatePrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
8501
+ )
8763
8502
 
8764
8503
  sig do
8765
8504
  override.returns(
@@ -9561,7 +9300,25 @@ module MetronomeSDK
9561
9300
  end
9562
9301
  attr_accessor :payment_gate_type
9563
9302
 
9564
- # Only applicable if using Stripe as your payment gateway through Metronome.
9303
+ # Only applicable if using PRECALCULATED as your tax type.
9304
+ sig do
9305
+ returns(
9306
+ T.nilable(
9307
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
9308
+ )
9309
+ )
9310
+ end
9311
+ attr_reader :precalculated_tax_config
9312
+
9313
+ sig do
9314
+ params(
9315
+ precalculated_tax_config:
9316
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
9317
+ ).void
9318
+ end
9319
+ attr_writer :precalculated_tax_config
9320
+
9321
+ # Only applicable if using STRIPE as your payment gateway type.
9565
9322
  sig do
9566
9323
  returns(
9567
9324
  T.nilable(
@@ -9603,6 +9360,8 @@ module MetronomeSDK
9603
9360
  params(
9604
9361
  payment_gate_type:
9605
9362
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
9363
+ precalculated_tax_config:
9364
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
9606
9365
  stripe_config:
9607
9366
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash,
9608
9367
  tax_type:
@@ -9615,7 +9374,9 @@ module MetronomeSDK
9615
9374
  # facilitate payment using your own payment integration. Select NONE if you do not
9616
9375
  # wish to payment gate the commit balance.
9617
9376
  payment_gate_type:,
9618
- # Only applicable if using Stripe as your payment gateway through Metronome.
9377
+ # Only applicable if using PRECALCULATED as your tax type.
9378
+ precalculated_tax_config: nil,
9379
+ # Only applicable if using STRIPE as your payment gateway type.
9619
9380
  stripe_config: nil,
9620
9381
  # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
9621
9382
  # not wish Metronome to calculate tax on your behalf. Leaving this field blank
@@ -9629,6 +9390,8 @@ module MetronomeSDK
9629
9390
  {
9630
9391
  payment_gate_type:
9631
9392
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::TaggedSymbol,
9393
+ precalculated_tax_config:
9394
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
9632
9395
  stripe_config:
9633
9396
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig,
9634
9397
  tax_type:
@@ -9682,6 +9445,51 @@ module MetronomeSDK
9682
9445
  end
9683
9446
  end
9684
9447
 
9448
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
9449
+ OrHash =
9450
+ T.type_alias do
9451
+ T.any(
9452
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
9453
+ MetronomeSDK::Internal::AnyHash
9454
+ )
9455
+ end
9456
+
9457
+ # Amount of tax to be applied. This should be in the same currency and
9458
+ # denomination as the commit's invoice schedule
9459
+ sig { returns(Float) }
9460
+ attr_accessor :tax_amount
9461
+
9462
+ # Name of the tax to be applied. This may be used in an invoice line item
9463
+ # description.
9464
+ sig { returns(T.nilable(String)) }
9465
+ attr_reader :tax_name
9466
+
9467
+ sig { params(tax_name: String).void }
9468
+ attr_writer :tax_name
9469
+
9470
+ # Only applicable if using PRECALCULATED as your tax type.
9471
+ sig do
9472
+ params(tax_amount: Float, tax_name: String).returns(
9473
+ T.attached_class
9474
+ )
9475
+ end
9476
+ def self.new(
9477
+ # Amount of tax to be applied. This should be in the same currency and
9478
+ # denomination as the commit's invoice schedule
9479
+ tax_amount:,
9480
+ # Name of the tax to be applied. This may be used in an invoice line item
9481
+ # description.
9482
+ tax_name: nil
9483
+ )
9484
+ end
9485
+
9486
+ sig do
9487
+ override.returns({ tax_amount: Float, tax_name: String })
9488
+ end
9489
+ def to_hash
9490
+ end
9491
+ end
9492
+
9685
9493
  class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
9686
9494
  OrHash =
9687
9495
  T.type_alias do
@@ -9699,16 +9507,28 @@ module MetronomeSDK
9699
9507
  end
9700
9508
  attr_accessor :payment_type
9701
9509
 
9702
- # Only applicable if using Stripe as your payment gateway through Metronome.
9510
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
9511
+ # your payment type.
9512
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
9513
+ attr_reader :invoice_metadata
9514
+
9515
+ sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
9516
+ attr_writer :invoice_metadata
9517
+
9518
+ # Only applicable if using STRIPE as your payment gateway type.
9703
9519
  sig do
9704
9520
  params(
9705
9521
  payment_type:
9706
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
9522
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
9523
+ invoice_metadata: T::Hash[Symbol, String]
9707
9524
  ).returns(T.attached_class)
9708
9525
  end
9709
9526
  def self.new(
9710
9527
  # If left blank, will default to INVOICE
9711
- payment_type:
9528
+ payment_type:,
9529
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
9530
+ # your payment type.
9531
+ invoice_metadata: nil
9712
9532
  )
9713
9533
  end
9714
9534
 
@@ -9716,7 +9536,8 @@ module MetronomeSDK
9716
9536
  override.returns(
9717
9537
  {
9718
9538
  payment_type:
9719
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol
9539
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol,
9540
+ invoice_metadata: T::Hash[Symbol, String]
9720
9541
  }
9721
9542
  )
9722
9543
  end
@@ -9784,6 +9605,16 @@ module MetronomeSDK
9784
9605
  :STRIPE,
9785
9606
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
9786
9607
  )
9608
+ ANROK =
9609
+ T.let(
9610
+ :ANROK,
9611
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
9612
+ )
9613
+ PRECALCULATED =
9614
+ T.let(
9615
+ :PRECALCULATED,
9616
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateSpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
9617
+ )
9787
9618
 
9788
9619
  sig do
9789
9620
  override.returns(