metronome-sdk 0.3.0 → 1.0.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 (308) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +36 -0
  3. data/README.md +9 -9
  4. data/lib/metronome_sdk/internal/body_cursor_page.rb +86 -0
  5. data/lib/metronome_sdk/internal/cursor_page_without_limit.rb +86 -0
  6. data/lib/metronome_sdk/internal/transport/base_client.rb +1 -4
  7. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +1 -9
  8. data/lib/metronome_sdk/internal/type/base_model.rb +6 -13
  9. data/lib/metronome_sdk/internal/type/union.rb +11 -0
  10. data/lib/metronome_sdk/internal/util.rb +1 -1
  11. data/lib/metronome_sdk/models/base_threshold_commit.rb +36 -0
  12. data/lib/metronome_sdk/models/commit.rb +26 -170
  13. data/lib/metronome_sdk/models/commit_hierarchy_configuration.rb +98 -0
  14. data/lib/metronome_sdk/models/commit_rate.rb +48 -0
  15. data/lib/metronome_sdk/models/commit_specifier.rb +42 -0
  16. data/lib/metronome_sdk/models/commit_specifier_input.rb +42 -0
  17. data/lib/metronome_sdk/models/contract.rb +404 -0
  18. data/lib/metronome_sdk/models/contract_v2.rb +2919 -0
  19. data/lib/metronome_sdk/models/contract_without_amendments.rb +36 -1126
  20. data/lib/metronome_sdk/models/credit.rb +9 -156
  21. data/lib/metronome_sdk/models/discount.rb +2 -1
  22. data/lib/metronome_sdk/models/hierarchy_configuration.rb +76 -0
  23. data/lib/metronome_sdk/models/override.rb +6 -101
  24. data/lib/metronome_sdk/models/override_tier.rb +21 -0
  25. data/lib/metronome_sdk/models/overwrite_rate.rb +82 -0
  26. data/lib/metronome_sdk/models/payment_gate_config.rb +149 -0
  27. data/lib/metronome_sdk/models/payment_gate_config_v2.rb +149 -0
  28. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +100 -0
  29. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +102 -0
  30. data/lib/metronome_sdk/models/pro_service.rb +2 -1
  31. data/lib/metronome_sdk/models/recurring_commit_subscription_config.rb +51 -0
  32. data/lib/metronome_sdk/models/scheduled_charge.rb +2 -1
  33. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +44 -0
  34. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +44 -0
  35. data/lib/metronome_sdk/models/subscription.rb +227 -0
  36. data/lib/metronome_sdk/models/update_base_threshold_commit.rb +36 -0
  37. data/lib/metronome_sdk/models/v1/alert_create_params.rb +4 -6
  38. data/lib/metronome_sdk/models/v1/billable_metric_create_params.rb +1 -2
  39. data/lib/metronome_sdk/models/v1/billable_metric_list_response.rb +3 -3
  40. data/lib/metronome_sdk/models/v1/billable_metric_retrieve_response.rb +4 -7
  41. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +57 -411
  42. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_params.rb +7 -16
  43. data/lib/metronome_sdk/models/v1/contract_create_params.rb +236 -1478
  44. data/lib/metronome_sdk/models/v1/contract_list_balances_response.rb +6 -23
  45. data/lib/metronome_sdk/models/v1/contract_list_response.rb +3 -1153
  46. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rb +2 -6
  47. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rb +5 -50
  48. data/lib/metronome_sdk/models/v1/contract_retrieve_response.rb +3 -1154
  49. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_params.rb +1 -3
  50. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +2 -1
  51. data/lib/metronome_sdk/models/v1/contracts/product_list_response.rb +8 -1
  52. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_response.rb +8 -1
  53. data/lib/metronome_sdk/models/v1/contracts/quantity_rounding.rb +1 -4
  54. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_params.rb +4 -7
  55. data/lib/metronome_sdk/models/v1/contracts/rate_card_list_response.rb +10 -1
  56. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rb +2 -6
  57. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rb +5 -50
  58. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rb +10 -1
  59. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_params.rb +1 -3
  60. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_params.rb +1 -3
  61. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +6 -61
  62. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +3 -49
  63. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +4 -51
  64. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rb +2 -6
  65. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rb +5 -49
  66. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_response.rb +103 -123
  67. data/lib/metronome_sdk/models/v1/credit_grant_list_response.rb +3 -5
  68. data/lib/metronome_sdk/models/v1/custom_field_list_keys_params.rb +1 -3
  69. data/lib/metronome_sdk/models/v1/custom_field_list_keys_response.rb +41 -58
  70. data/lib/metronome_sdk/models/v1/custom_field_set_values_params.rb +5 -1
  71. data/lib/metronome_sdk/models/v1/customer.rb +2 -1
  72. data/lib/metronome_sdk/models/v1/customer_create_params.rb +37 -11
  73. data/lib/metronome_sdk/models/v1/customer_detail.rb +2 -1
  74. data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_response.rb +3 -3
  75. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +1 -3
  76. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rb +28 -0
  77. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rb +128 -0
  78. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb +143 -0
  79. data/lib/metronome_sdk/models/v1/customers/alert_list_params.rb +1 -3
  80. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +30 -1
  81. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +2 -0
  82. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +2 -0
  83. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +10 -60
  84. data/lib/metronome_sdk/models/v1/customers/credit_create_params.rb +6 -48
  85. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +8 -16
  86. data/lib/metronome_sdk/models/v1/customers/invoice.rb +61 -48
  87. data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_params.rb +1 -4
  88. data/lib/metronome_sdk/models/v1/customers/plan_add_params.rb +2 -6
  89. data/lib/metronome_sdk/models/v1/customers/plan_list_response.rb +2 -1
  90. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +4 -11
  91. data/lib/metronome_sdk/models/v1/plan_detail.rb +9 -5
  92. data/lib/metronome_sdk/models/v1/plan_list_charges_response.rb +2 -1
  93. data/lib/metronome_sdk/models/v1/plan_list_customers_response.rb +2 -1
  94. data/lib/metronome_sdk/models/v1/plan_list_response.rb +5 -1
  95. data/lib/metronome_sdk/models/v1/usage_ingest_params.rb +1 -4
  96. data/lib/metronome_sdk/models/v1/usage_list_params.rb +1 -3
  97. data/lib/metronome_sdk/models/v1/usage_list_response.rb +45 -62
  98. data/lib/metronome_sdk/models/v1/usage_search_response.rb +4 -7
  99. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +29 -58
  100. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +26 -49
  101. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +414 -2310
  102. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +337 -2424
  103. data/lib/metronome_sdk/models/v2/contract_list_response.rb +3 -4520
  104. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +3 -4528
  105. data/lib/metronome_sdk/models.rb +38 -0
  106. data/lib/metronome_sdk/resources/v1/alerts.rb +72 -2
  107. data/lib/metronome_sdk/resources/v1/audit_logs.rb +39 -4
  108. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +54 -4
  109. data/lib/metronome_sdk/resources/v1/contracts/products.rb +25 -6
  110. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rb +7 -2
  111. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +10 -2
  112. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +109 -10
  113. data/lib/metronome_sdk/resources/v1/contracts.rb +254 -18
  114. data/lib/metronome_sdk/resources/v1/credit_grants.rb +2 -1
  115. data/lib/metronome_sdk/resources/v1/custom_fields.rb +51 -14
  116. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +103 -8
  117. data/lib/metronome_sdk/resources/v1/customers/commits.rb +119 -9
  118. data/lib/metronome_sdk/resources/v1/customers/credits.rb +104 -8
  119. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +124 -8
  120. data/lib/metronome_sdk/resources/v1/customers.rb +169 -12
  121. data/lib/metronome_sdk/resources/v1/dashboards.rb +29 -3
  122. data/lib/metronome_sdk/resources/v1/invoices.rb +23 -2
  123. data/lib/metronome_sdk/resources/v1/pricing_units.rb +6 -1
  124. data/lib/metronome_sdk/resources/v1/services.rb +6 -4
  125. data/lib/metronome_sdk/resources/v1/usage.rb +185 -12
  126. data/lib/metronome_sdk/resources/v2/contracts.rb +114 -18
  127. data/lib/metronome_sdk/version.rb +1 -1
  128. data/lib/metronome_sdk.rb +24 -3
  129. data/rbi/metronome_sdk/errors.rbi +2 -2
  130. data/rbi/metronome_sdk/internal/body_cursor_page.rbi +22 -0
  131. data/rbi/metronome_sdk/internal/cursor_page_without_limit.rbi +22 -0
  132. data/rbi/metronome_sdk/models/base_threshold_commit.rbi +58 -0
  133. data/rbi/metronome_sdk/models/commit.rbi +26 -348
  134. data/rbi/metronome_sdk/models/commit_hierarchy_configuration.rbi +280 -0
  135. data/rbi/metronome_sdk/models/commit_rate.rbi +85 -0
  136. data/rbi/metronome_sdk/models/commit_specifier.rbi +71 -0
  137. data/rbi/metronome_sdk/models/commit_specifier_input.rbi +74 -0
  138. data/rbi/metronome_sdk/models/contract.rbi +768 -0
  139. data/rbi/metronome_sdk/models/contract_v2.rbi +5822 -0
  140. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +184 -2507
  141. data/rbi/metronome_sdk/models/credit.rbi +10 -348
  142. data/rbi/metronome_sdk/models/discount.rbi +2 -0
  143. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +180 -0
  144. data/rbi/metronome_sdk/models/override.rbi +8 -193
  145. data/rbi/metronome_sdk/models/override_tier.rbi +29 -0
  146. data/rbi/metronome_sdk/models/overwrite_rate.rbi +137 -0
  147. data/rbi/metronome_sdk/models/payment_gate_config.rbi +312 -0
  148. data/rbi/metronome_sdk/models/payment_gate_config_v2.rbi +321 -0
  149. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +183 -0
  150. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +188 -0
  151. data/rbi/metronome_sdk/models/pro_service.rbi +2 -0
  152. data/rbi/metronome_sdk/models/recurring_commit_subscription_config.rbi +125 -0
  153. data/rbi/metronome_sdk/models/scheduled_charge.rbi +2 -0
  154. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +76 -0
  155. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -0
  156. data/rbi/metronome_sdk/models/subscription.rbi +460 -0
  157. data/rbi/metronome_sdk/models/update_base_threshold_commit.rbi +61 -0
  158. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +6 -3
  159. data/rbi/metronome_sdk/models/v1/billable_metric_list_response.rbi +2 -0
  160. data/rbi/metronome_sdk/models/v1/billable_metric_retrieve_response.rbi +2 -0
  161. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +44 -768
  162. data/rbi/metronome_sdk/models/v1/contract_create_historical_invoices_params.rbi +2 -0
  163. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1550 -4079
  164. data/rbi/metronome_sdk/models/v1/contract_list_balances_response.rbi +8 -59
  165. data/rbi/metronome_sdk/models/v1/contract_list_response.rbi +5 -2420
  166. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbi +6 -129
  167. data/rbi/metronome_sdk/models/v1/contract_retrieve_response.rbi +4 -2419
  168. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +2 -0
  169. data/rbi/metronome_sdk/models/v1/contracts/product_list_response.rbi +2 -0
  170. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_response.rbi +2 -0
  171. data/rbi/metronome_sdk/models/v1/contracts/rate_card_create_params.rbi +2 -0
  172. data/rbi/metronome_sdk/models/v1/contracts/rate_card_list_response.rbi +2 -0
  173. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbi +6 -129
  174. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbi +2 -0
  175. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +4 -129
  176. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +4 -129
  177. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +4 -129
  178. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbi +6 -129
  179. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_response.rbi +147 -198
  180. data/rbi/metronome_sdk/models/v1/credit_grant_list_response.rbi +2 -0
  181. data/rbi/metronome_sdk/models/v1/custom_field_list_keys_response.rbi +117 -165
  182. data/rbi/metronome_sdk/models/v1/custom_field_set_values_params.rbi +8 -1
  183. data/rbi/metronome_sdk/models/v1/customer.rbi +2 -0
  184. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +88 -3
  185. data/rbi/metronome_sdk/models/v1/customer_detail.rbi +2 -0
  186. data/rbi/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbi +2 -0
  187. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbi +51 -0
  188. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbi +265 -0
  189. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbi +348 -0
  190. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +60 -0
  191. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +10 -0
  192. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +10 -0
  193. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +6 -90
  194. data/rbi/metronome_sdk/models/v1/customers/credit_create_params.rbi +6 -90
  195. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +6 -3
  196. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +70 -10
  197. data/rbi/metronome_sdk/models/v1/customers/plan_list_response.rbi +2 -0
  198. data/rbi/metronome_sdk/models/v1/plan_detail.rbi +2 -0
  199. data/rbi/metronome_sdk/models/v1/plan_list_charges_response.rbi +2 -0
  200. data/rbi/metronome_sdk/models/v1/plan_list_customers_response.rbi +2 -0
  201. data/rbi/metronome_sdk/models/v1/plan_list_response.rbi +8 -1
  202. data/rbi/metronome_sdk/models/v1/usage_list_response.rbi +45 -86
  203. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +2 -0
  204. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +56 -76
  205. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +56 -76
  206. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +3419 -7270
  207. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1140 -6062
  208. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +5 -9867
  209. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +6 -9866
  210. data/rbi/metronome_sdk/models.rbi +44 -0
  211. data/rbi/metronome_sdk/resources/v1/alerts.rbi +72 -2
  212. data/rbi/metronome_sdk/resources/v1/audit_logs.rbi +39 -4
  213. data/rbi/metronome_sdk/resources/v1/billable_metrics.rbi +54 -4
  214. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +25 -5
  215. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rbi +7 -2
  216. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +10 -3
  217. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards.rbi +109 -9
  218. data/rbi/metronome_sdk/resources/v1/contracts.rbi +257 -16
  219. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +5 -1
  220. data/rbi/metronome_sdk/resources/v1/custom_fields.rbi +57 -14
  221. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +108 -5
  222. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +119 -10
  223. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +104 -9
  224. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +123 -7
  225. data/rbi/metronome_sdk/resources/v1/customers.rbi +156 -11
  226. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +29 -3
  227. data/rbi/metronome_sdk/resources/v1/invoices.rbi +23 -2
  228. data/rbi/metronome_sdk/resources/v1/pricing_units.rbi +6 -1
  229. data/rbi/metronome_sdk/resources/v1/services.rbi +6 -4
  230. data/rbi/metronome_sdk/resources/v1/usage.rbi +188 -12
  231. data/rbi/metronome_sdk/resources/v2/contracts.rbi +120 -23
  232. data/sig/metronome_sdk/internal/body_cursor_page.rbs +13 -0
  233. data/sig/metronome_sdk/internal/cursor_page_without_limit.rbs +13 -0
  234. data/sig/metronome_sdk/models/base_threshold_commit.rbs +26 -0
  235. data/sig/metronome_sdk/models/commit.rbs +17 -170
  236. data/sig/metronome_sdk/models/commit_hierarchy_configuration.rbs +117 -0
  237. data/sig/metronome_sdk/models/commit_rate.rbs +48 -0
  238. data/sig/metronome_sdk/models/commit_specifier.rbs +47 -0
  239. data/sig/metronome_sdk/models/commit_specifier_input.rbs +47 -0
  240. data/sig/metronome_sdk/models/contract.rbs +398 -0
  241. data/sig/metronome_sdk/models/contract_v2.rbs +2881 -0
  242. data/sig/metronome_sdk/models/contract_without_amendments.rbs +54 -976
  243. data/sig/metronome_sdk/models/credit.rbs +12 -170
  244. data/sig/metronome_sdk/models/hierarchy_configuration.rbs +71 -0
  245. data/sig/metronome_sdk/models/override.rbs +12 -101
  246. data/sig/metronome_sdk/models/override_tier.rbs +17 -0
  247. data/sig/metronome_sdk/models/overwrite_rate.rbs +78 -0
  248. data/sig/metronome_sdk/models/payment_gate_config.rbs +123 -0
  249. data/sig/metronome_sdk/models/payment_gate_config_v2.rbs +123 -0
  250. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +82 -0
  251. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +82 -0
  252. data/sig/metronome_sdk/models/recurring_commit_subscription_config.rbs +51 -0
  253. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +35 -0
  254. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +35 -0
  255. data/sig/metronome_sdk/models/subscription.rbs +215 -0
  256. data/sig/metronome_sdk/models/update_base_threshold_commit.rbs +28 -0
  257. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +4 -2
  258. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +24 -340
  259. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +168 -1219
  260. data/sig/metronome_sdk/models/v1/contract_list_balances_response.rbs +4 -25
  261. data/sig/metronome_sdk/models/v1/contract_list_response.rbs +4 -1041
  262. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbs +6 -54
  263. data/sig/metronome_sdk/models/v1/contract_retrieve_response.rbs +4 -1041
  264. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbs +6 -54
  265. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +6 -54
  266. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +6 -54
  267. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +6 -54
  268. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbs +6 -54
  269. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_response.rbs +72 -94
  270. data/sig/metronome_sdk/models/v1/custom_field_list_keys_response.rbs +53 -75
  271. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +31 -4
  272. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbs +32 -0
  273. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbs +113 -0
  274. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbs +133 -0
  275. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +21 -0
  276. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +7 -1
  277. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +6 -1
  278. data/sig/metronome_sdk/models/v1/customers/commit_create_params.rbs +6 -50
  279. data/sig/metronome_sdk/models/v1/customers/credit_create_params.rbs +6 -50
  280. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +4 -2
  281. data/sig/metronome_sdk/models/v1/usage_list_response.rbs +33 -55
  282. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +19 -43
  283. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +19 -43
  284. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +361 -1917
  285. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +242 -2252
  286. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +4 -4426
  287. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +4 -4426
  288. data/sig/metronome_sdk/models.rbs +38 -0
  289. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -1
  290. data/sig/metronome_sdk/resources/v1/contracts.rbs +3 -3
  291. data/sig/metronome_sdk/resources/v1/credit_grants.rbs +1 -1
  292. data/sig/metronome_sdk/resources/v1/custom_fields.rbs +1 -1
  293. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +2 -1
  294. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +2 -2
  295. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +2 -2
  296. data/sig/metronome_sdk/resources/v1/customers.rbs +11 -0
  297. data/sig/metronome_sdk/resources/v1/usage.rbs +1 -1
  298. data/sig/metronome_sdk/resources/v2/contracts.rbs +7 -4
  299. metadata +74 -11
  300. data/lib/metronome_sdk/models/v1/customers/alert_list_response.rb +0 -29
  301. data/lib/metronome_sdk/models/v1/customers/commit_list_response.rb +0 -26
  302. data/lib/metronome_sdk/models/v1/customers/credit_list_response.rb +0 -26
  303. data/rbi/metronome_sdk/models/v1/customers/alert_list_response.rbi +0 -46
  304. data/rbi/metronome_sdk/models/v1/customers/commit_list_response.rbi +0 -45
  305. data/rbi/metronome_sdk/models/v1/customers/credit_list_response.rbi +0 -45
  306. data/sig/metronome_sdk/models/v1/customers/alert_list_response.rbs +0 -29
  307. data/sig/metronome_sdk/models/v1/customers/commit_list_response.rbs +0 -26
  308. data/sig/metronome_sdk/models/v1/customers/credit_list_response.rbs +0 -26
@@ -12,74 +12,59 @@ module MetronomeSDK
12
12
  )
13
13
  end
14
14
 
15
- sig do
16
- returns(T::Array[MetronomeSDK::Models::V1::UsageListResponse::Data])
17
- end
18
- attr_accessor :data
19
-
20
- sig { returns(T.nilable(String)) }
21
- attr_accessor :next_page
22
-
23
- sig do
24
- params(
25
- data:
26
- T::Array[
27
- MetronomeSDK::Models::V1::UsageListResponse::Data::OrHash
28
- ],
29
- next_page: T.nilable(String)
30
- ).returns(T.attached_class)
31
- end
32
- def self.new(data:, next_page:)
33
- end
34
-
35
- sig do
36
- override.returns(
37
- {
38
- data: T::Array[MetronomeSDK::Models::V1::UsageListResponse::Data],
39
- next_page: T.nilable(String)
40
- }
41
- )
42
- end
43
- def to_hash
44
- end
15
+ sig { returns(String) }
16
+ attr_accessor :billable_metric_id
45
17
 
46
- class Data < MetronomeSDK::Internal::Type::BaseModel
47
- OrHash =
48
- T.type_alias do
49
- T.any(
50
- MetronomeSDK::Models::V1::UsageListResponse::Data,
51
- MetronomeSDK::Internal::AnyHash
52
- )
53
- end
18
+ sig { returns(String) }
19
+ attr_accessor :billable_metric_name
54
20
 
55
- sig { returns(String) }
56
- attr_accessor :billable_metric_id
21
+ sig { returns(String) }
22
+ attr_accessor :customer_id
57
23
 
58
- sig { returns(String) }
59
- attr_accessor :billable_metric_name
24
+ sig { returns(Time) }
25
+ attr_accessor :end_timestamp
60
26
 
61
- sig { returns(String) }
62
- attr_accessor :customer_id
27
+ sig { returns(Time) }
28
+ attr_accessor :start_timestamp
63
29
 
64
- sig { returns(Time) }
65
- attr_accessor :end_timestamp
30
+ sig { returns(T.nilable(Float)) }
31
+ attr_accessor :value
66
32
 
67
- sig { returns(Time) }
68
- attr_accessor :start_timestamp
33
+ # Values will be either a number or null. Null indicates that there were no
34
+ # matches for the group_by value.
35
+ sig { returns(T.nilable(T::Hash[Symbol, T.nilable(Float)])) }
36
+ attr_reader :groups
69
37
 
70
- sig { returns(T.nilable(Float)) }
71
- attr_accessor :value
38
+ sig { params(groups: T::Hash[Symbol, T.nilable(Float)]).void }
39
+ attr_writer :groups
72
40
 
41
+ sig do
42
+ params(
43
+ billable_metric_id: String,
44
+ billable_metric_name: String,
45
+ customer_id: String,
46
+ end_timestamp: Time,
47
+ start_timestamp: Time,
48
+ value: T.nilable(Float),
49
+ groups: T::Hash[Symbol, T.nilable(Float)]
50
+ ).returns(T.attached_class)
51
+ end
52
+ def self.new(
53
+ billable_metric_id:,
54
+ billable_metric_name:,
55
+ customer_id:,
56
+ end_timestamp:,
57
+ start_timestamp:,
58
+ value:,
73
59
  # Values will be either a number or null. Null indicates that there were no
74
60
  # matches for the group_by value.
75
- sig { returns(T.nilable(T::Hash[Symbol, T.nilable(Float)])) }
76
- attr_reader :groups
77
-
78
- sig { params(groups: T::Hash[Symbol, T.nilable(Float)]).void }
79
- attr_writer :groups
61
+ groups: nil
62
+ )
63
+ end
80
64
 
81
- sig do
82
- params(
65
+ sig do
66
+ override.returns(
67
+ {
83
68
  billable_metric_id: String,
84
69
  billable_metric_name: String,
85
70
  customer_id: String,
@@ -87,36 +72,10 @@ module MetronomeSDK
87
72
  start_timestamp: Time,
88
73
  value: T.nilable(Float),
89
74
  groups: T::Hash[Symbol, T.nilable(Float)]
90
- ).returns(T.attached_class)
91
- end
92
- def self.new(
93
- billable_metric_id:,
94
- billable_metric_name:,
95
- customer_id:,
96
- end_timestamp:,
97
- start_timestamp:,
98
- value:,
99
- # Values will be either a number or null. Null indicates that there were no
100
- # matches for the group_by value.
101
- groups: nil
75
+ }
102
76
  )
103
- end
104
-
105
- sig do
106
- override.returns(
107
- {
108
- billable_metric_id: String,
109
- billable_metric_name: String,
110
- customer_id: String,
111
- end_timestamp: Time,
112
- start_timestamp: Time,
113
- value: T.nilable(Float),
114
- groups: T::Hash[Symbol, T.nilable(Float)]
115
- }
116
- )
117
- end
118
- def to_hash
119
- end
77
+ end
78
+ def to_hash
120
79
  end
121
80
  end
122
81
  end
@@ -206,6 +206,7 @@ module MetronomeSDK
206
206
  sig { params(archived_at: Time).void }
207
207
  attr_writer :archived_at
208
208
 
209
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
209
210
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
210
211
  attr_reader :custom_fields
211
212
 
@@ -300,6 +301,7 @@ module MetronomeSDK
300
301
  # RFC 3339 timestamp indicating when the billable metric was archived. If not
301
302
  # provided, the billable metric is not archived.
302
303
  archived_at: nil,
304
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
303
305
  custom_fields: nil,
304
306
  # An optional filtering rule to match the 'event_type' property of an event.
305
307
  event_type_filter: nil,
@@ -87,19 +87,33 @@ module MetronomeSDK
87
87
  sig { params(product_id: String).void }
88
88
  attr_writer :product_id
89
89
 
90
- # List of filters that determine what kind of customer usage draws down a commit
91
- # or credit. A customer's usage needs to meet the condition of at least one of the
92
- # specifiers to contribute to a commit's or credit's drawdown. This field cannot
93
- # be used together with `applicable_product_ids` or `applicable_product_tags`.
94
- # Instead, to target usage by product or product tag, pass those values in the
95
- # body of `specifiers`.
90
+ # If provided, updates the commit to use the specified rate type for current and
91
+ # future invoices. Previously finalized invoices will need to be voided and
92
+ # regenerated to reflect the rate type change.
96
93
  sig do
97
94
  returns(
98
95
  T.nilable(
99
- T::Array[MetronomeSDK::V2::ContractEditCommitParams::Specifier]
96
+ MetronomeSDK::V2::ContractEditCommitParams::RateType::OrSymbol
100
97
  )
101
98
  )
102
99
  end
100
+ attr_reader :rate_type
101
+
102
+ sig do
103
+ params(
104
+ rate_type:
105
+ MetronomeSDK::V2::ContractEditCommitParams::RateType::OrSymbol
106
+ ).void
107
+ end
108
+ attr_writer :rate_type
109
+
110
+ # List of filters that determine what kind of customer usage draws down a commit
111
+ # or credit. A customer's usage needs to meet the condition of at least one of the
112
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
113
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
114
+ # Instead, to target usage by product or product tag, pass those values in the
115
+ # body of `specifiers`.
116
+ sig { returns(T.nilable(T::Array[MetronomeSDK::CommitSpecifierInput])) }
103
117
  attr_accessor :specifiers
104
118
 
105
119
  sig do
@@ -115,12 +129,10 @@ module MetronomeSDK
115
129
  MetronomeSDK::V2::ContractEditCommitParams::InvoiceSchedule::OrHash,
116
130
  priority: T.nilable(Float),
117
131
  product_id: String,
132
+ rate_type:
133
+ MetronomeSDK::V2::ContractEditCommitParams::RateType::OrSymbol,
118
134
  specifiers:
119
- T.nilable(
120
- T::Array[
121
- MetronomeSDK::V2::ContractEditCommitParams::Specifier::OrHash
122
- ]
123
- ),
135
+ T.nilable(T::Array[MetronomeSDK::CommitSpecifierInput::OrHash]),
124
136
  request_options: MetronomeSDK::RequestOptions::OrHash
125
137
  ).returns(T.attached_class)
126
138
  end
@@ -145,6 +157,10 @@ module MetronomeSDK
145
157
  # first.
146
158
  priority: nil,
147
159
  product_id: nil,
160
+ # If provided, updates the commit to use the specified rate type for current and
161
+ # future invoices. Previously finalized invoices will need to be voided and
162
+ # regenerated to reflect the rate type change.
163
+ rate_type: nil,
148
164
  # List of filters that determine what kind of customer usage draws down a commit
149
165
  # or credit. A customer's usage needs to meet the condition of at least one of the
150
166
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
@@ -170,12 +186,10 @@ module MetronomeSDK
170
186
  MetronomeSDK::V2::ContractEditCommitParams::InvoiceSchedule,
171
187
  priority: T.nilable(Float),
172
188
  product_id: String,
189
+ rate_type:
190
+ MetronomeSDK::V2::ContractEditCommitParams::RateType::OrSymbol,
173
191
  specifiers:
174
- T.nilable(
175
- T::Array[
176
- MetronomeSDK::V2::ContractEditCommitParams::Specifier
177
- ]
178
- ),
192
+ T.nilable(T::Array[MetronomeSDK::CommitSpecifierInput]),
179
193
  request_options: MetronomeSDK::RequestOptions
180
194
  }
181
195
  )
@@ -680,74 +694,40 @@ module MetronomeSDK
680
694
  end
681
695
  end
682
696
 
683
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
684
- OrHash =
697
+ # If provided, updates the commit to use the specified rate type for current and
698
+ # future invoices. Previously finalized invoices will need to be voided and
699
+ # regenerated to reflect the rate type change.
700
+ module RateType
701
+ extend MetronomeSDK::Internal::Type::Enum
702
+
703
+ TaggedSymbol =
685
704
  T.type_alias do
686
- T.any(
687
- MetronomeSDK::V2::ContractEditCommitParams::Specifier,
688
- MetronomeSDK::Internal::AnyHash
705
+ T.all(
706
+ Symbol,
707
+ MetronomeSDK::V2::ContractEditCommitParams::RateType
689
708
  )
690
709
  end
710
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
691
711
 
692
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
693
- attr_reader :presentation_group_values
694
-
695
- sig do
696
- params(presentation_group_values: T::Hash[Symbol, String]).void
697
- end
698
- attr_writer :presentation_group_values
699
-
700
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
701
- attr_reader :pricing_group_values
702
-
703
- sig { params(pricing_group_values: T::Hash[Symbol, String]).void }
704
- attr_writer :pricing_group_values
705
-
706
- # If provided, the specifier will only apply to the product with the specified ID.
707
- sig { returns(T.nilable(String)) }
708
- attr_reader :product_id
709
-
710
- sig { params(product_id: String).void }
711
- attr_writer :product_id
712
-
713
- # If provided, the specifier will only apply to products with all the specified
714
- # tags.
715
- sig { returns(T.nilable(T::Array[String])) }
716
- attr_reader :product_tags
717
-
718
- sig { params(product_tags: T::Array[String]).void }
719
- attr_writer :product_tags
720
-
721
- sig do
722
- params(
723
- presentation_group_values: T::Hash[Symbol, String],
724
- pricing_group_values: T::Hash[Symbol, String],
725
- product_id: String,
726
- product_tags: T::Array[String]
727
- ).returns(T.attached_class)
728
- end
729
- def self.new(
730
- presentation_group_values: nil,
731
- pricing_group_values: nil,
732
- # If provided, the specifier will only apply to the product with the specified ID.
733
- product_id: nil,
734
- # If provided, the specifier will only apply to products with all the specified
735
- # tags.
736
- product_tags: nil
737
- )
738
- end
712
+ LIST_RATE =
713
+ T.let(
714
+ :LIST_RATE,
715
+ MetronomeSDK::V2::ContractEditCommitParams::RateType::TaggedSymbol
716
+ )
717
+ COMMIT_RATE =
718
+ T.let(
719
+ :COMMIT_RATE,
720
+ MetronomeSDK::V2::ContractEditCommitParams::RateType::TaggedSymbol
721
+ )
739
722
 
740
723
  sig do
741
724
  override.returns(
742
- {
743
- presentation_group_values: T::Hash[Symbol, String],
744
- pricing_group_values: T::Hash[Symbol, String],
745
- product_id: String,
746
- product_tags: T::Array[String]
747
- }
725
+ T::Array[
726
+ MetronomeSDK::V2::ContractEditCommitParams::RateType::TaggedSymbol
727
+ ]
748
728
  )
749
729
  end
750
- def to_hash
730
+ def self.values
751
731
  end
752
732
  end
753
733
  end
@@ -61,19 +61,33 @@ module MetronomeSDK
61
61
  sig { params(product_id: String).void }
62
62
  attr_writer :product_id
63
63
 
64
- # List of filters that determine what kind of customer usage draws down a commit
65
- # or credit. A customer's usage needs to meet the condition of at least one of the
66
- # specifiers to contribute to a commit's or credit's drawdown. This field cannot
67
- # be used together with `applicable_product_ids` or `applicable_product_tags`.
68
- # Instead, to target usage by product or product tag, pass those values in the
69
- # body of `specifiers`.
64
+ # If provided, updates the credit to use the specified rate type for current and
65
+ # future invoices. Previously finalized invoices will need to be voided and
66
+ # regenerated to reflect the rate type change.
70
67
  sig do
71
68
  returns(
72
69
  T.nilable(
73
- T::Array[MetronomeSDK::V2::ContractEditCreditParams::Specifier]
70
+ MetronomeSDK::V2::ContractEditCreditParams::RateType::OrSymbol
74
71
  )
75
72
  )
76
73
  end
74
+ attr_reader :rate_type
75
+
76
+ sig do
77
+ params(
78
+ rate_type:
79
+ MetronomeSDK::V2::ContractEditCreditParams::RateType::OrSymbol
80
+ ).void
81
+ end
82
+ attr_writer :rate_type
83
+
84
+ # List of filters that determine what kind of customer usage draws down a commit
85
+ # or credit. A customer's usage needs to meet the condition of at least one of the
86
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
87
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
88
+ # Instead, to target usage by product or product tag, pass those values in the
89
+ # body of `specifiers`.
90
+ sig { returns(T.nilable(T::Array[MetronomeSDK::CommitSpecifierInput])) }
77
91
  attr_accessor :specifiers
78
92
 
79
93
  sig do
@@ -86,12 +100,10 @@ module MetronomeSDK
86
100
  applicable_product_tags: T.nilable(T::Array[String]),
87
101
  priority: T.nilable(Float),
88
102
  product_id: String,
103
+ rate_type:
104
+ MetronomeSDK::V2::ContractEditCreditParams::RateType::OrSymbol,
89
105
  specifiers:
90
- T.nilable(
91
- T::Array[
92
- MetronomeSDK::V2::ContractEditCreditParams::Specifier::OrHash
93
- ]
94
- ),
106
+ T.nilable(T::Array[MetronomeSDK::CommitSpecifierInput::OrHash]),
95
107
  request_options: MetronomeSDK::RequestOptions::OrHash
96
108
  ).returns(T.attached_class)
97
109
  end
@@ -111,6 +123,10 @@ module MetronomeSDK
111
123
  # first.
112
124
  priority: nil,
113
125
  product_id: nil,
126
+ # If provided, updates the credit to use the specified rate type for current and
127
+ # future invoices. Previously finalized invoices will need to be voided and
128
+ # regenerated to reflect the rate type change.
129
+ rate_type: nil,
114
130
  # List of filters that determine what kind of customer usage draws down a commit
115
131
  # or credit. A customer's usage needs to meet the condition of at least one of the
116
132
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
@@ -133,12 +149,10 @@ module MetronomeSDK
133
149
  applicable_product_tags: T.nilable(T::Array[String]),
134
150
  priority: T.nilable(Float),
135
151
  product_id: String,
152
+ rate_type:
153
+ MetronomeSDK::V2::ContractEditCreditParams::RateType::OrSymbol,
136
154
  specifiers:
137
- T.nilable(
138
- T::Array[
139
- MetronomeSDK::V2::ContractEditCreditParams::Specifier
140
- ]
141
- ),
155
+ T.nilable(T::Array[MetronomeSDK::CommitSpecifierInput]),
142
156
  request_options: MetronomeSDK::RequestOptions
143
157
  }
144
158
  )
@@ -376,74 +390,40 @@ module MetronomeSDK
376
390
  end
377
391
  end
378
392
 
379
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
380
- OrHash =
393
+ # If provided, updates the credit to use the specified rate type for current and
394
+ # future invoices. Previously finalized invoices will need to be voided and
395
+ # regenerated to reflect the rate type change.
396
+ module RateType
397
+ extend MetronomeSDK::Internal::Type::Enum
398
+
399
+ TaggedSymbol =
381
400
  T.type_alias do
382
- T.any(
383
- MetronomeSDK::V2::ContractEditCreditParams::Specifier,
384
- MetronomeSDK::Internal::AnyHash
401
+ T.all(
402
+ Symbol,
403
+ MetronomeSDK::V2::ContractEditCreditParams::RateType
385
404
  )
386
405
  end
406
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
387
407
 
388
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
389
- attr_reader :presentation_group_values
390
-
391
- sig do
392
- params(presentation_group_values: T::Hash[Symbol, String]).void
393
- end
394
- attr_writer :presentation_group_values
395
-
396
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
397
- attr_reader :pricing_group_values
398
-
399
- sig { params(pricing_group_values: T::Hash[Symbol, String]).void }
400
- attr_writer :pricing_group_values
401
-
402
- # If provided, the specifier will only apply to the product with the specified ID.
403
- sig { returns(T.nilable(String)) }
404
- attr_reader :product_id
405
-
406
- sig { params(product_id: String).void }
407
- attr_writer :product_id
408
-
409
- # If provided, the specifier will only apply to products with all the specified
410
- # tags.
411
- sig { returns(T.nilable(T::Array[String])) }
412
- attr_reader :product_tags
413
-
414
- sig { params(product_tags: T::Array[String]).void }
415
- attr_writer :product_tags
416
-
417
- sig do
418
- params(
419
- presentation_group_values: T::Hash[Symbol, String],
420
- pricing_group_values: T::Hash[Symbol, String],
421
- product_id: String,
422
- product_tags: T::Array[String]
423
- ).returns(T.attached_class)
424
- end
425
- def self.new(
426
- presentation_group_values: nil,
427
- pricing_group_values: nil,
428
- # If provided, the specifier will only apply to the product with the specified ID.
429
- product_id: nil,
430
- # If provided, the specifier will only apply to products with all the specified
431
- # tags.
432
- product_tags: nil
433
- )
434
- end
408
+ LIST_RATE =
409
+ T.let(
410
+ :LIST_RATE,
411
+ MetronomeSDK::V2::ContractEditCreditParams::RateType::TaggedSymbol
412
+ )
413
+ COMMIT_RATE =
414
+ T.let(
415
+ :COMMIT_RATE,
416
+ MetronomeSDK::V2::ContractEditCreditParams::RateType::TaggedSymbol
417
+ )
435
418
 
436
419
  sig do
437
420
  override.returns(
438
- {
439
- presentation_group_values: T::Hash[Symbol, String],
440
- pricing_group_values: T::Hash[Symbol, String],
441
- product_id: String,
442
- product_tags: T::Array[String]
443
- }
421
+ T::Array[
422
+ MetronomeSDK::V2::ContractEditCreditParams::RateType::TaggedSymbol
423
+ ]
444
424
  )
445
425
  end
446
- def to_hash
426
+ def self.values
447
427
  end
448
428
  end
449
429
  end