metronome-sdk 0.3.0 → 2.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 (363) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +91 -0
  3. data/README.md +9 -9
  4. data/lib/metronome_sdk/errors.rb +25 -11
  5. data/lib/metronome_sdk/file_part.rb +10 -7
  6. data/lib/metronome_sdk/internal/body_cursor_page.rb +86 -0
  7. data/lib/metronome_sdk/internal/cursor_page.rb +1 -1
  8. data/lib/metronome_sdk/internal/cursor_page_without_limit.rb +86 -0
  9. data/lib/metronome_sdk/internal/transport/base_client.rb +12 -11
  10. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +8 -19
  11. data/lib/metronome_sdk/internal/type/base_model.rb +6 -13
  12. data/lib/metronome_sdk/internal/type/base_page.rb +1 -1
  13. data/lib/metronome_sdk/internal/type/enum.rb +25 -0
  14. data/lib/metronome_sdk/internal/type/file_input.rb +7 -4
  15. data/lib/metronome_sdk/internal/type/union.rb +11 -0
  16. data/lib/metronome_sdk/internal/util.rb +9 -8
  17. data/lib/metronome_sdk/models/base_threshold_commit.rb +36 -0
  18. data/lib/metronome_sdk/models/commit.rb +26 -170
  19. data/lib/metronome_sdk/models/commit_hierarchy_configuration.rb +98 -0
  20. data/lib/metronome_sdk/models/commit_rate.rb +48 -0
  21. data/lib/metronome_sdk/models/commit_specifier.rb +42 -0
  22. data/lib/metronome_sdk/models/commit_specifier_input.rb +42 -0
  23. data/lib/metronome_sdk/models/contract.rb +404 -0
  24. data/lib/metronome_sdk/models/contract_v2.rb +3169 -0
  25. data/lib/metronome_sdk/models/contract_without_amendments.rb +38 -1128
  26. data/lib/metronome_sdk/models/credit.rb +9 -156
  27. data/lib/metronome_sdk/models/discount.rb +2 -1
  28. data/lib/metronome_sdk/models/hierarchy_configuration.rb +173 -0
  29. data/lib/metronome_sdk/models/override.rb +6 -101
  30. data/lib/metronome_sdk/models/override_tier.rb +21 -0
  31. data/lib/metronome_sdk/models/overwrite_rate.rb +82 -0
  32. data/lib/metronome_sdk/models/payment_gate_config.rb +150 -0
  33. data/lib/metronome_sdk/models/payment_gate_config_v2.rb +150 -0
  34. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +100 -0
  35. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +102 -0
  36. data/lib/metronome_sdk/models/pro_service.rb +2 -1
  37. data/lib/metronome_sdk/models/recurring_commit_subscription_config.rb +51 -0
  38. data/lib/metronome_sdk/models/scheduled_charge.rb +2 -1
  39. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +44 -0
  40. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +44 -0
  41. data/lib/metronome_sdk/models/subscription.rb +311 -0
  42. data/lib/metronome_sdk/models/update_base_threshold_commit.rb +36 -0
  43. data/lib/metronome_sdk/models/v1/alert_archive_params.rb +8 -4
  44. data/lib/metronome_sdk/models/v1/alert_create_params.rb +42 -42
  45. data/lib/metronome_sdk/models/v1/billable_metric_create_params.rb +1 -2
  46. data/lib/metronome_sdk/models/v1/billable_metric_list_response.rb +3 -3
  47. data/lib/metronome_sdk/models/v1/billable_metric_retrieve_response.rb +4 -7
  48. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +58 -411
  49. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_params.rb +7 -16
  50. data/lib/metronome_sdk/models/v1/contract_create_params.rb +315 -1459
  51. data/lib/metronome_sdk/models/v1/contract_list_balances_response.rb +6 -23
  52. data/lib/metronome_sdk/models/v1/contract_list_response.rb +3 -1153
  53. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rb +2 -6
  54. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rb +5 -50
  55. data/lib/metronome_sdk/models/v1/contract_retrieve_response.rb +3 -1154
  56. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_params.rb +1 -3
  57. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +2 -1
  58. data/lib/metronome_sdk/models/v1/contracts/product_list_response.rb +8 -1
  59. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_response.rb +8 -1
  60. data/lib/metronome_sdk/models/v1/contracts/quantity_rounding.rb +1 -4
  61. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_params.rb +4 -7
  62. data/lib/metronome_sdk/models/v1/contracts/rate_card_list_response.rb +10 -1
  63. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rb +2 -6
  64. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rb +5 -50
  65. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rb +10 -1
  66. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_params.rb +1 -3
  67. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_params.rb +1 -3
  68. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +6 -61
  69. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +3 -49
  70. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +4 -51
  71. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rb +2 -6
  72. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rb +5 -49
  73. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_response.rb +103 -123
  74. data/lib/metronome_sdk/models/v1/credit_grant_list_response.rb +3 -5
  75. data/lib/metronome_sdk/models/v1/custom_field_list_keys_params.rb +1 -3
  76. data/lib/metronome_sdk/models/v1/custom_field_list_keys_response.rb +41 -58
  77. data/lib/metronome_sdk/models/v1/custom_field_set_values_params.rb +5 -1
  78. data/lib/metronome_sdk/models/v1/customer.rb +2 -1
  79. data/lib/metronome_sdk/models/v1/customer_create_params.rb +37 -11
  80. data/lib/metronome_sdk/models/v1/customer_detail.rb +11 -2
  81. data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_response.rb +3 -3
  82. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +6 -18
  83. data/lib/metronome_sdk/models/v1/customer_preview_events_response.rb +3 -3
  84. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rb +28 -0
  85. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rb +128 -0
  86. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb +143 -0
  87. data/lib/metronome_sdk/models/v1/customers/alert_list_params.rb +4 -6
  88. data/lib/metronome_sdk/models/v1/customers/alert_reset_params.rb +2 -2
  89. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +37 -8
  90. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +2 -0
  91. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +2 -0
  92. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +10 -60
  93. data/lib/metronome_sdk/models/v1/customers/credit_create_params.rb +6 -48
  94. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +48 -54
  95. data/lib/metronome_sdk/models/v1/customers/invoice.rb +197 -66
  96. data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_params.rb +1 -4
  97. data/lib/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rb +30 -0
  98. data/lib/metronome_sdk/models/v1/customers/plan_add_params.rb +2 -6
  99. data/lib/metronome_sdk/models/v1/customers/plan_list_response.rb +2 -1
  100. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +4 -11
  101. data/lib/metronome_sdk/models/v1/payment.rb +151 -0
  102. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +28 -0
  103. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +18 -0
  104. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +28 -0
  105. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +18 -0
  106. data/lib/metronome_sdk/models/v1/payment_list_params.rb +53 -0
  107. data/lib/metronome_sdk/models/v1/payment_status.rb +19 -0
  108. data/lib/metronome_sdk/models/v1/plan_detail.rb +9 -5
  109. data/lib/metronome_sdk/models/v1/plan_list_charges_response.rb +2 -1
  110. data/lib/metronome_sdk/models/v1/plan_list_customers_response.rb +2 -1
  111. data/lib/metronome_sdk/models/v1/plan_list_response.rb +5 -1
  112. data/lib/metronome_sdk/models/v1/usage_ingest_params.rb +1 -4
  113. data/lib/metronome_sdk/models/v1/usage_list_params.rb +1 -3
  114. data/lib/metronome_sdk/models/v1/usage_list_response.rb +45 -62
  115. data/lib/metronome_sdk/models/v1/usage_search_response.rb +4 -7
  116. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +37 -58
  117. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +34 -49
  118. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +552 -2265
  119. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +417 -2317
  120. data/lib/metronome_sdk/models/v2/contract_list_response.rb +3 -4520
  121. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +3 -4528
  122. data/lib/metronome_sdk/models.rb +38 -0
  123. data/lib/metronome_sdk/resources/v1/alerts.rb +90 -16
  124. data/lib/metronome_sdk/resources/v1/audit_logs.rb +39 -4
  125. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +54 -4
  126. data/lib/metronome_sdk/resources/v1/contracts/products.rb +25 -6
  127. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rb +7 -2
  128. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +10 -2
  129. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +109 -10
  130. data/lib/metronome_sdk/resources/v1/contracts.rb +255 -18
  131. data/lib/metronome_sdk/resources/v1/credit_grants.rb +2 -1
  132. data/lib/metronome_sdk/resources/v1/custom_fields.rb +51 -14
  133. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +127 -13
  134. data/lib/metronome_sdk/resources/v1/customers/commits.rb +119 -9
  135. data/lib/metronome_sdk/resources/v1/customers/credits.rb +104 -8
  136. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +179 -8
  137. data/lib/metronome_sdk/resources/v1/customers.rb +175 -15
  138. data/lib/metronome_sdk/resources/v1/dashboards.rb +29 -3
  139. data/lib/metronome_sdk/resources/v1/invoices.rb +23 -2
  140. data/lib/metronome_sdk/resources/v1/payments.rb +102 -0
  141. data/lib/metronome_sdk/resources/v1/pricing_units.rb +6 -1
  142. data/lib/metronome_sdk/resources/v1/services.rb +6 -4
  143. data/lib/metronome_sdk/resources/v1/usage.rb +188 -13
  144. data/lib/metronome_sdk/resources/v1.rb +4 -0
  145. data/lib/metronome_sdk/resources/v2/contracts.rb +120 -18
  146. data/lib/metronome_sdk/version.rb +1 -1
  147. data/lib/metronome_sdk.rb +33 -3
  148. data/rbi/metronome_sdk/errors.rbi +31 -4
  149. data/rbi/metronome_sdk/file_part.rbi +1 -1
  150. data/rbi/metronome_sdk/internal/body_cursor_page.rbi +22 -0
  151. data/rbi/metronome_sdk/internal/cursor_page_without_limit.rbi +22 -0
  152. data/rbi/metronome_sdk/internal/transport/base_client.rbi +4 -5
  153. data/rbi/metronome_sdk/internal/type/base_page.rbi +1 -1
  154. data/rbi/metronome_sdk/internal/util.rbi +1 -1
  155. data/rbi/metronome_sdk/models/base_threshold_commit.rbi +58 -0
  156. data/rbi/metronome_sdk/models/commit.rbi +26 -348
  157. data/rbi/metronome_sdk/models/commit_hierarchy_configuration.rbi +280 -0
  158. data/rbi/metronome_sdk/models/commit_rate.rbi +85 -0
  159. data/rbi/metronome_sdk/models/commit_specifier.rbi +71 -0
  160. data/rbi/metronome_sdk/models/commit_specifier_input.rbi +74 -0
  161. data/rbi/metronome_sdk/models/contract.rbi +768 -0
  162. data/rbi/metronome_sdk/models/contract_v2.rbi +6415 -0
  163. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +186 -2509
  164. data/rbi/metronome_sdk/models/credit.rbi +10 -348
  165. data/rbi/metronome_sdk/models/discount.rbi +2 -0
  166. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +424 -0
  167. data/rbi/metronome_sdk/models/override.rbi +8 -193
  168. data/rbi/metronome_sdk/models/override_tier.rbi +29 -0
  169. data/rbi/metronome_sdk/models/overwrite_rate.rbi +137 -0
  170. data/rbi/metronome_sdk/models/payment_gate_config.rbi +317 -0
  171. data/rbi/metronome_sdk/models/payment_gate_config_v2.rbi +326 -0
  172. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +183 -0
  173. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +188 -0
  174. data/rbi/metronome_sdk/models/pro_service.rbi +2 -0
  175. data/rbi/metronome_sdk/models/recurring_commit_subscription_config.rbi +125 -0
  176. data/rbi/metronome_sdk/models/scheduled_charge.rbi +2 -0
  177. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +76 -0
  178. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -0
  179. data/rbi/metronome_sdk/models/subscription.rbi +635 -0
  180. data/rbi/metronome_sdk/models/update_base_threshold_commit.rbi +61 -0
  181. data/rbi/metronome_sdk/models/v1/alert_archive_params.rbi +6 -4
  182. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +57 -50
  183. data/rbi/metronome_sdk/models/v1/billable_metric_list_response.rbi +2 -0
  184. data/rbi/metronome_sdk/models/v1/billable_metric_retrieve_response.rbi +2 -0
  185. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +49 -768
  186. data/rbi/metronome_sdk/models/v1/contract_create_historical_invoices_params.rbi +2 -0
  187. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1843 -4119
  188. data/rbi/metronome_sdk/models/v1/contract_list_balances_response.rbi +8 -59
  189. data/rbi/metronome_sdk/models/v1/contract_list_response.rbi +5 -2420
  190. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbi +6 -129
  191. data/rbi/metronome_sdk/models/v1/contract_retrieve_response.rbi +4 -2419
  192. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +2 -0
  193. data/rbi/metronome_sdk/models/v1/contracts/product_list_response.rbi +2 -0
  194. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_response.rbi +2 -0
  195. data/rbi/metronome_sdk/models/v1/contracts/rate_card_create_params.rbi +2 -0
  196. data/rbi/metronome_sdk/models/v1/contracts/rate_card_list_response.rbi +2 -0
  197. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbi +6 -129
  198. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbi +2 -0
  199. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +4 -129
  200. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +4 -129
  201. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +4 -129
  202. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbi +6 -129
  203. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_response.rbi +147 -198
  204. data/rbi/metronome_sdk/models/v1/credit_grant_list_response.rbi +2 -0
  205. data/rbi/metronome_sdk/models/v1/custom_field_list_keys_response.rbi +117 -165
  206. data/rbi/metronome_sdk/models/v1/custom_field_set_values_params.rbi +8 -1
  207. data/rbi/metronome_sdk/models/v1/customer.rbi +2 -0
  208. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +88 -3
  209. data/rbi/metronome_sdk/models/v1/customer_detail.rbi +10 -0
  210. data/rbi/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbi +2 -0
  211. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +6 -21
  212. data/rbi/metronome_sdk/models/v1/customer_preview_events_response.rbi +10 -9
  213. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbi +51 -0
  214. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbi +265 -0
  215. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbi +348 -0
  216. data/rbi/metronome_sdk/models/v1/customers/alert_list_params.rbi +4 -4
  217. data/rbi/metronome_sdk/models/v1/customers/alert_reset_params.rbi +2 -2
  218. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +68 -8
  219. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +10 -0
  220. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +10 -0
  221. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +6 -90
  222. data/rbi/metronome_sdk/models/v1/customers/credit_create_params.rbi +6 -90
  223. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +54 -47
  224. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +316 -68
  225. data/rbi/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rbi +50 -0
  226. data/rbi/metronome_sdk/models/v1/customers/plan_list_response.rbi +2 -0
  227. data/rbi/metronome_sdk/models/v1/payment.rbi +316 -0
  228. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +48 -0
  229. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +35 -0
  230. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +48 -0
  231. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +35 -0
  232. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +91 -0
  233. data/rbi/metronome_sdk/models/v1/payment_status.rbi +33 -0
  234. data/rbi/metronome_sdk/models/v1/plan_detail.rbi +2 -0
  235. data/rbi/metronome_sdk/models/v1/plan_list_charges_response.rbi +2 -0
  236. data/rbi/metronome_sdk/models/v1/plan_list_customers_response.rbi +2 -0
  237. data/rbi/metronome_sdk/models/v1/plan_list_response.rbi +8 -1
  238. data/rbi/metronome_sdk/models/v1/usage_list_response.rbi +45 -86
  239. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +2 -0
  240. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +74 -76
  241. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +74 -76
  242. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +3875 -7234
  243. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1733 -6207
  244. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +5 -9867
  245. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +6 -9866
  246. data/rbi/metronome_sdk/models.rbi +44 -0
  247. data/rbi/metronome_sdk/resources/v1/alerts.rbi +101 -27
  248. data/rbi/metronome_sdk/resources/v1/audit_logs.rbi +39 -4
  249. data/rbi/metronome_sdk/resources/v1/billable_metrics.rbi +54 -4
  250. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +25 -5
  251. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rbi +7 -2
  252. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +10 -3
  253. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards.rbi +109 -9
  254. data/rbi/metronome_sdk/resources/v1/contracts.rbi +258 -16
  255. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +5 -1
  256. data/rbi/metronome_sdk/resources/v1/custom_fields.rbi +57 -14
  257. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +133 -11
  258. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +119 -10
  259. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +104 -9
  260. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +159 -7
  261. data/rbi/metronome_sdk/resources/v1/customers.rbi +162 -14
  262. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +29 -3
  263. data/rbi/metronome_sdk/resources/v1/invoices.rbi +23 -2
  264. data/rbi/metronome_sdk/resources/v1/payments.rbi +72 -0
  265. data/rbi/metronome_sdk/resources/v1/pricing_units.rbi +6 -1
  266. data/rbi/metronome_sdk/resources/v1/services.rbi +6 -4
  267. data/rbi/metronome_sdk/resources/v1/usage.rbi +191 -13
  268. data/rbi/metronome_sdk/resources/v1.rbi +3 -0
  269. data/rbi/metronome_sdk/resources/v2/contracts.rbi +134 -23
  270. data/sig/metronome_sdk/errors.rbs +7 -0
  271. data/sig/metronome_sdk/file_part.rbs +1 -1
  272. data/sig/metronome_sdk/internal/body_cursor_page.rbs +13 -0
  273. data/sig/metronome_sdk/internal/cursor_page_without_limit.rbs +13 -0
  274. data/sig/metronome_sdk/models/base_threshold_commit.rbs +26 -0
  275. data/sig/metronome_sdk/models/commit.rbs +17 -170
  276. data/sig/metronome_sdk/models/commit_hierarchy_configuration.rbs +117 -0
  277. data/sig/metronome_sdk/models/commit_rate.rbs +48 -0
  278. data/sig/metronome_sdk/models/commit_specifier.rbs +47 -0
  279. data/sig/metronome_sdk/models/commit_specifier_input.rbs +47 -0
  280. data/sig/metronome_sdk/models/contract.rbs +398 -0
  281. data/sig/metronome_sdk/models/contract_v2.rbs +3108 -0
  282. data/sig/metronome_sdk/models/contract_without_amendments.rbs +54 -976
  283. data/sig/metronome_sdk/models/credit.rbs +12 -170
  284. data/sig/metronome_sdk/models/hierarchy_configuration.rbs +152 -0
  285. data/sig/metronome_sdk/models/override.rbs +12 -101
  286. data/sig/metronome_sdk/models/override_tier.rbs +17 -0
  287. data/sig/metronome_sdk/models/overwrite_rate.rbs +78 -0
  288. data/sig/metronome_sdk/models/payment_gate_config.rbs +124 -0
  289. data/sig/metronome_sdk/models/payment_gate_config_v2.rbs +124 -0
  290. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +82 -0
  291. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +82 -0
  292. data/sig/metronome_sdk/models/recurring_commit_subscription_config.rbs +51 -0
  293. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +35 -0
  294. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +35 -0
  295. data/sig/metronome_sdk/models/subscription.rbs +295 -0
  296. data/sig/metronome_sdk/models/update_base_threshold_commit.rbs +28 -0
  297. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +4 -2
  298. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +26 -341
  299. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +219 -1184
  300. data/sig/metronome_sdk/models/v1/contract_list_balances_response.rbs +4 -25
  301. data/sig/metronome_sdk/models/v1/contract_list_response.rbs +4 -1041
  302. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbs +6 -54
  303. data/sig/metronome_sdk/models/v1/contract_retrieve_response.rbs +4 -1041
  304. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbs +6 -54
  305. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +6 -54
  306. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +6 -54
  307. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +6 -54
  308. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbs +6 -54
  309. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_response.rbs +72 -94
  310. data/sig/metronome_sdk/models/v1/custom_field_list_keys_response.rbs +53 -75
  311. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +31 -4
  312. data/sig/metronome_sdk/models/v1/customer_detail.rbs +5 -0
  313. data/sig/metronome_sdk/models/v1/customer_preview_events_params.rbs +0 -7
  314. data/sig/metronome_sdk/models/v1/customer_preview_events_response.rbs +6 -4
  315. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbs +32 -0
  316. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbs +113 -0
  317. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbs +133 -0
  318. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +21 -0
  319. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +7 -1
  320. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +6 -1
  321. data/sig/metronome_sdk/models/v1/customers/commit_create_params.rbs +6 -50
  322. data/sig/metronome_sdk/models/v1/customers/credit_create_params.rbs +6 -50
  323. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +4 -2
  324. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +137 -24
  325. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rbs +32 -0
  326. data/sig/metronome_sdk/models/v1/payment.rbs +191 -0
  327. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +30 -0
  328. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +15 -0
  329. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +30 -0
  330. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +15 -0
  331. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +56 -0
  332. data/sig/metronome_sdk/models/v1/payment_status.rbs +19 -0
  333. data/sig/metronome_sdk/models/v1/usage_list_response.rbs +33 -55
  334. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +28 -43
  335. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +28 -43
  336. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +412 -1793
  337. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +342 -2149
  338. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +4 -4426
  339. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +4 -4426
  340. data/sig/metronome_sdk/models.rbs +38 -0
  341. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -1
  342. data/sig/metronome_sdk/resources/v1/contracts.rbs +3 -3
  343. data/sig/metronome_sdk/resources/v1/credit_grants.rbs +1 -1
  344. data/sig/metronome_sdk/resources/v1/custom_fields.rbs +1 -1
  345. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +2 -1
  346. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +2 -2
  347. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +2 -2
  348. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +6 -0
  349. data/sig/metronome_sdk/resources/v1/customers.rbs +11 -0
  350. data/sig/metronome_sdk/resources/v1/payments.rbs +30 -0
  351. data/sig/metronome_sdk/resources/v1/usage.rbs +1 -1
  352. data/sig/metronome_sdk/resources/v1.rbs +2 -0
  353. data/sig/metronome_sdk/resources/v2/contracts.rbs +10 -4
  354. metadata +101 -11
  355. data/lib/metronome_sdk/models/v1/customers/alert_list_response.rb +0 -29
  356. data/lib/metronome_sdk/models/v1/customers/commit_list_response.rb +0 -26
  357. data/lib/metronome_sdk/models/v1/customers/credit_list_response.rb +0 -26
  358. data/rbi/metronome_sdk/models/v1/customers/alert_list_response.rbi +0 -46
  359. data/rbi/metronome_sdk/models/v1/customers/commit_list_response.rbi +0 -45
  360. data/rbi/metronome_sdk/models/v1/customers/credit_list_response.rbi +0 -45
  361. data/sig/metronome_sdk/models/v1/customers/alert_list_response.rbs +0 -29
  362. data/sig/metronome_sdk/models/v1/customers/commit_list_response.rbs +0 -26
  363. data/sig/metronome_sdk/models/v1/customers/credit_list_response.rbs +0 -26
@@ -0,0 +1,326 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ class PaymentGateConfigV2 < MetronomeSDK::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ MetronomeSDK::PaymentGateConfigV2,
10
+ MetronomeSDK::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Gate access to the commit balance based on successful collection of payment.
15
+ # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
16
+ # facilitate payment using your own payment integration. Select NONE if you do not
17
+ # wish to payment gate the commit balance.
18
+ sig do
19
+ returns(MetronomeSDK::PaymentGateConfigV2::PaymentGateType::OrSymbol)
20
+ end
21
+ attr_accessor :payment_gate_type
22
+
23
+ # Only applicable if using PRECALCULATED as your tax type.
24
+ sig do
25
+ returns(
26
+ T.nilable(MetronomeSDK::PaymentGateConfigV2::PrecalculatedTaxConfig)
27
+ )
28
+ end
29
+ attr_reader :precalculated_tax_config
30
+
31
+ sig do
32
+ params(
33
+ precalculated_tax_config:
34
+ MetronomeSDK::PaymentGateConfigV2::PrecalculatedTaxConfig::OrHash
35
+ ).void
36
+ end
37
+ attr_writer :precalculated_tax_config
38
+
39
+ # Only applicable if using STRIPE as your payment gateway type.
40
+ sig do
41
+ returns(T.nilable(MetronomeSDK::PaymentGateConfigV2::StripeConfig))
42
+ end
43
+ attr_reader :stripe_config
44
+
45
+ sig do
46
+ params(
47
+ stripe_config: MetronomeSDK::PaymentGateConfigV2::StripeConfig::OrHash
48
+ ).void
49
+ end
50
+ attr_writer :stripe_config
51
+
52
+ # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
53
+ # not wish Metronome to calculate tax on your behalf. Leaving this field blank
54
+ # will default to NONE.
55
+ sig do
56
+ returns(T.nilable(MetronomeSDK::PaymentGateConfigV2::TaxType::OrSymbol))
57
+ end
58
+ attr_reader :tax_type
59
+
60
+ sig do
61
+ params(
62
+ tax_type: MetronomeSDK::PaymentGateConfigV2::TaxType::OrSymbol
63
+ ).void
64
+ end
65
+ attr_writer :tax_type
66
+
67
+ sig do
68
+ params(
69
+ payment_gate_type:
70
+ MetronomeSDK::PaymentGateConfigV2::PaymentGateType::OrSymbol,
71
+ precalculated_tax_config:
72
+ MetronomeSDK::PaymentGateConfigV2::PrecalculatedTaxConfig::OrHash,
73
+ stripe_config:
74
+ MetronomeSDK::PaymentGateConfigV2::StripeConfig::OrHash,
75
+ tax_type: MetronomeSDK::PaymentGateConfigV2::TaxType::OrSymbol
76
+ ).returns(T.attached_class)
77
+ end
78
+ def self.new(
79
+ # Gate access to the commit balance based on successful collection of payment.
80
+ # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
81
+ # facilitate payment using your own payment integration. Select NONE if you do not
82
+ # wish to payment gate the commit balance.
83
+ payment_gate_type:,
84
+ # Only applicable if using PRECALCULATED as your tax type.
85
+ precalculated_tax_config: nil,
86
+ # Only applicable if using STRIPE as your payment gateway type.
87
+ stripe_config: nil,
88
+ # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
89
+ # not wish Metronome to calculate tax on your behalf. Leaving this field blank
90
+ # will default to NONE.
91
+ tax_type: nil
92
+ )
93
+ end
94
+
95
+ sig do
96
+ override.returns(
97
+ {
98
+ payment_gate_type:
99
+ MetronomeSDK::PaymentGateConfigV2::PaymentGateType::OrSymbol,
100
+ precalculated_tax_config:
101
+ MetronomeSDK::PaymentGateConfigV2::PrecalculatedTaxConfig,
102
+ stripe_config: MetronomeSDK::PaymentGateConfigV2::StripeConfig,
103
+ tax_type: MetronomeSDK::PaymentGateConfigV2::TaxType::OrSymbol
104
+ }
105
+ )
106
+ end
107
+ def to_hash
108
+ end
109
+
110
+ # Gate access to the commit balance based on successful collection of payment.
111
+ # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
112
+ # facilitate payment using your own payment integration. Select NONE if you do not
113
+ # wish to payment gate the commit balance.
114
+ module PaymentGateType
115
+ extend MetronomeSDK::Internal::Type::Enum
116
+
117
+ TaggedSymbol =
118
+ T.type_alias do
119
+ T.all(Symbol, MetronomeSDK::PaymentGateConfigV2::PaymentGateType)
120
+ end
121
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
122
+
123
+ NONE =
124
+ T.let(
125
+ :NONE,
126
+ MetronomeSDK::PaymentGateConfigV2::PaymentGateType::TaggedSymbol
127
+ )
128
+ STRIPE =
129
+ T.let(
130
+ :STRIPE,
131
+ MetronomeSDK::PaymentGateConfigV2::PaymentGateType::TaggedSymbol
132
+ )
133
+ EXTERNAL =
134
+ T.let(
135
+ :EXTERNAL,
136
+ MetronomeSDK::PaymentGateConfigV2::PaymentGateType::TaggedSymbol
137
+ )
138
+
139
+ sig do
140
+ override.returns(
141
+ T::Array[
142
+ MetronomeSDK::PaymentGateConfigV2::PaymentGateType::TaggedSymbol
143
+ ]
144
+ )
145
+ end
146
+ def self.values
147
+ end
148
+ end
149
+
150
+ class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
151
+ OrHash =
152
+ T.type_alias do
153
+ T.any(
154
+ MetronomeSDK::PaymentGateConfigV2::PrecalculatedTaxConfig,
155
+ MetronomeSDK::Internal::AnyHash
156
+ )
157
+ end
158
+
159
+ # Amount of tax to be applied. This should be in the same currency and
160
+ # denomination as the commit's invoice schedule
161
+ sig { returns(Float) }
162
+ attr_accessor :tax_amount
163
+
164
+ # Name of the tax to be applied. This may be used in an invoice line item
165
+ # description.
166
+ sig { returns(T.nilable(String)) }
167
+ attr_reader :tax_name
168
+
169
+ sig { params(tax_name: String).void }
170
+ attr_writer :tax_name
171
+
172
+ # Only applicable if using PRECALCULATED as your tax type.
173
+ sig do
174
+ params(tax_amount: Float, tax_name: String).returns(T.attached_class)
175
+ end
176
+ def self.new(
177
+ # Amount of tax to be applied. This should be in the same currency and
178
+ # denomination as the commit's invoice schedule
179
+ tax_amount:,
180
+ # Name of the tax to be applied. This may be used in an invoice line item
181
+ # description.
182
+ tax_name: nil
183
+ )
184
+ end
185
+
186
+ sig { override.returns({ tax_amount: Float, tax_name: String }) }
187
+ def to_hash
188
+ end
189
+ end
190
+
191
+ class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
192
+ OrHash =
193
+ T.type_alias do
194
+ T.any(
195
+ MetronomeSDK::PaymentGateConfigV2::StripeConfig,
196
+ MetronomeSDK::Internal::AnyHash
197
+ )
198
+ end
199
+
200
+ # If left blank, will default to INVOICE
201
+ sig do
202
+ returns(
203
+ MetronomeSDK::PaymentGateConfigV2::StripeConfig::PaymentType::OrSymbol
204
+ )
205
+ end
206
+ attr_accessor :payment_type
207
+
208
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
209
+ # your payment type.
210
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
211
+ attr_reader :invoice_metadata
212
+
213
+ sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
214
+ attr_writer :invoice_metadata
215
+
216
+ # Only applicable if using STRIPE as your payment gateway type.
217
+ sig do
218
+ params(
219
+ payment_type:
220
+ MetronomeSDK::PaymentGateConfigV2::StripeConfig::PaymentType::OrSymbol,
221
+ invoice_metadata: T::Hash[Symbol, String]
222
+ ).returns(T.attached_class)
223
+ end
224
+ def self.new(
225
+ # If left blank, will default to INVOICE
226
+ payment_type:,
227
+ # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
228
+ # your payment type.
229
+ invoice_metadata: nil
230
+ )
231
+ end
232
+
233
+ sig do
234
+ override.returns(
235
+ {
236
+ payment_type:
237
+ MetronomeSDK::PaymentGateConfigV2::StripeConfig::PaymentType::OrSymbol,
238
+ invoice_metadata: T::Hash[Symbol, String]
239
+ }
240
+ )
241
+ end
242
+ def to_hash
243
+ end
244
+
245
+ # If left blank, will default to INVOICE
246
+ module PaymentType
247
+ extend MetronomeSDK::Internal::Type::Enum
248
+
249
+ TaggedSymbol =
250
+ T.type_alias do
251
+ T.all(
252
+ Symbol,
253
+ MetronomeSDK::PaymentGateConfigV2::StripeConfig::PaymentType
254
+ )
255
+ end
256
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
257
+
258
+ INVOICE =
259
+ T.let(
260
+ :INVOICE,
261
+ MetronomeSDK::PaymentGateConfigV2::StripeConfig::PaymentType::TaggedSymbol
262
+ )
263
+ PAYMENT_INTENT =
264
+ T.let(
265
+ :PAYMENT_INTENT,
266
+ MetronomeSDK::PaymentGateConfigV2::StripeConfig::PaymentType::TaggedSymbol
267
+ )
268
+
269
+ sig do
270
+ override.returns(
271
+ T::Array[
272
+ MetronomeSDK::PaymentGateConfigV2::StripeConfig::PaymentType::TaggedSymbol
273
+ ]
274
+ )
275
+ end
276
+ def self.values
277
+ end
278
+ end
279
+ end
280
+
281
+ # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
282
+ # not wish Metronome to calculate tax on your behalf. Leaving this field blank
283
+ # will default to NONE.
284
+ module TaxType
285
+ extend MetronomeSDK::Internal::Type::Enum
286
+
287
+ TaggedSymbol =
288
+ T.type_alias do
289
+ T.all(Symbol, MetronomeSDK::PaymentGateConfigV2::TaxType)
290
+ end
291
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
292
+
293
+ NONE =
294
+ T.let(:NONE, MetronomeSDK::PaymentGateConfigV2::TaxType::TaggedSymbol)
295
+ STRIPE =
296
+ T.let(
297
+ :STRIPE,
298
+ MetronomeSDK::PaymentGateConfigV2::TaxType::TaggedSymbol
299
+ )
300
+ ANROK =
301
+ T.let(
302
+ :ANROK,
303
+ MetronomeSDK::PaymentGateConfigV2::TaxType::TaggedSymbol
304
+ )
305
+ AVALARA =
306
+ T.let(
307
+ :AVALARA,
308
+ MetronomeSDK::PaymentGateConfigV2::TaxType::TaggedSymbol
309
+ )
310
+ PRECALCULATED =
311
+ T.let(
312
+ :PRECALCULATED,
313
+ MetronomeSDK::PaymentGateConfigV2::TaxType::TaggedSymbol
314
+ )
315
+
316
+ sig do
317
+ override.returns(
318
+ T::Array[MetronomeSDK::PaymentGateConfigV2::TaxType::TaggedSymbol]
319
+ )
320
+ end
321
+ def self.values
322
+ end
323
+ end
324
+ end
325
+ end
326
+ end
@@ -0,0 +1,183 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ class PrepaidBalanceThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration,
10
+ MetronomeSDK::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig do
15
+ returns(MetronomeSDK::PrepaidBalanceThresholdConfiguration::Commit)
16
+ end
17
+ attr_reader :commit
18
+
19
+ sig do
20
+ params(
21
+ commit:
22
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::Commit::OrHash
23
+ ).void
24
+ end
25
+ attr_writer :commit
26
+
27
+ # When set to false, the contract will not be evaluated against the
28
+ # threshold_amount. Toggling to true will result an immediate evaluation,
29
+ # regardless of prior state.
30
+ sig { returns(T::Boolean) }
31
+ attr_accessor :is_enabled
32
+
33
+ sig { returns(MetronomeSDK::PaymentGateConfig) }
34
+ attr_reader :payment_gate_config
35
+
36
+ sig do
37
+ params(
38
+ payment_gate_config: MetronomeSDK::PaymentGateConfig::OrHash
39
+ ).void
40
+ end
41
+ attr_writer :payment_gate_config
42
+
43
+ # Specify the amount the balance should be recharged to.
44
+ sig { returns(Float) }
45
+ attr_accessor :recharge_to_amount
46
+
47
+ # Specify the threshold amount for the contract. Each time the contract's prepaid
48
+ # balance lowers to this amount, a threshold charge will be initiated.
49
+ sig { returns(Float) }
50
+ attr_accessor :threshold_amount
51
+
52
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
53
+ # commit amount will be in terms of this credit type instead of the fiat currency.
54
+ sig { returns(T.nilable(String)) }
55
+ attr_reader :custom_credit_type_id
56
+
57
+ sig { params(custom_credit_type_id: String).void }
58
+ attr_writer :custom_credit_type_id
59
+
60
+ sig do
61
+ params(
62
+ commit:
63
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::Commit::OrHash,
64
+ is_enabled: T::Boolean,
65
+ payment_gate_config: MetronomeSDK::PaymentGateConfig::OrHash,
66
+ recharge_to_amount: Float,
67
+ threshold_amount: Float,
68
+ custom_credit_type_id: String
69
+ ).returns(T.attached_class)
70
+ end
71
+ def self.new(
72
+ commit:,
73
+ # When set to false, the contract will not be evaluated against the
74
+ # threshold_amount. Toggling to true will result an immediate evaluation,
75
+ # regardless of prior state.
76
+ is_enabled:,
77
+ payment_gate_config:,
78
+ # Specify the amount the balance should be recharged to.
79
+ recharge_to_amount:,
80
+ # Specify the threshold amount for the contract. Each time the contract's prepaid
81
+ # balance lowers to this amount, a threshold charge will be initiated.
82
+ threshold_amount:,
83
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
84
+ # commit amount will be in terms of this credit type instead of the fiat currency.
85
+ custom_credit_type_id: nil
86
+ )
87
+ end
88
+
89
+ sig do
90
+ override.returns(
91
+ {
92
+ commit: MetronomeSDK::PrepaidBalanceThresholdConfiguration::Commit,
93
+ is_enabled: T::Boolean,
94
+ payment_gate_config: MetronomeSDK::PaymentGateConfig,
95
+ recharge_to_amount: Float,
96
+ threshold_amount: Float,
97
+ custom_credit_type_id: String
98
+ }
99
+ )
100
+ end
101
+ def to_hash
102
+ end
103
+
104
+ class Commit < MetronomeSDK::Models::BaseThresholdCommit
105
+ OrHash =
106
+ T.type_alias do
107
+ T.any(
108
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::Commit,
109
+ MetronomeSDK::Internal::AnyHash
110
+ )
111
+ end
112
+
113
+ # Which products the threshold commit applies to. If applicable_product_ids,
114
+ # applicable_product_tags or specifiers are not provided, the commit applies to
115
+ # all products.
116
+ sig { returns(T.nilable(T::Array[String])) }
117
+ attr_reader :applicable_product_ids
118
+
119
+ sig { params(applicable_product_ids: T::Array[String]).void }
120
+ attr_writer :applicable_product_ids
121
+
122
+ # Which tags the threshold commit applies to. If applicable_product_ids,
123
+ # applicable_product_tags or specifiers are not provided, the commit applies to
124
+ # all products.
125
+ sig { returns(T.nilable(T::Array[String])) }
126
+ attr_reader :applicable_product_tags
127
+
128
+ sig { params(applicable_product_tags: T::Array[String]).void }
129
+ attr_writer :applicable_product_tags
130
+
131
+ # List of filters that determine what kind of customer usage draws down a commit
132
+ # or credit. A customer's usage needs to meet the condition of at least one of the
133
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
134
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
135
+ sig { returns(T.nilable(T::Array[MetronomeSDK::CommitSpecifierInput])) }
136
+ attr_reader :specifiers
137
+
138
+ sig do
139
+ params(
140
+ specifiers: T::Array[MetronomeSDK::CommitSpecifierInput::OrHash]
141
+ ).void
142
+ end
143
+ attr_writer :specifiers
144
+
145
+ sig do
146
+ params(
147
+ applicable_product_ids: T::Array[String],
148
+ applicable_product_tags: T::Array[String],
149
+ specifiers: T::Array[MetronomeSDK::CommitSpecifierInput::OrHash]
150
+ ).returns(T.attached_class)
151
+ end
152
+ def self.new(
153
+ # Which products the threshold commit applies to. If applicable_product_ids,
154
+ # applicable_product_tags or specifiers are not provided, the commit applies to
155
+ # all products.
156
+ applicable_product_ids: nil,
157
+ # Which tags the threshold commit applies to. If applicable_product_ids,
158
+ # applicable_product_tags or specifiers are not provided, the commit applies to
159
+ # all products.
160
+ applicable_product_tags: nil,
161
+ # List of filters that determine what kind of customer usage draws down a commit
162
+ # or credit. A customer's usage needs to meet the condition of at least one of the
163
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
164
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
165
+ specifiers: nil
166
+ )
167
+ end
168
+
169
+ sig do
170
+ override.returns(
171
+ {
172
+ applicable_product_ids: T::Array[String],
173
+ applicable_product_tags: T::Array[String],
174
+ specifiers: T::Array[MetronomeSDK::CommitSpecifierInput]
175
+ }
176
+ )
177
+ end
178
+ def to_hash
179
+ end
180
+ end
181
+ end
182
+ end
183
+ end
@@ -0,0 +1,188 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ class PrepaidBalanceThresholdConfigurationV2 < MetronomeSDK::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2,
10
+ MetronomeSDK::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig do
15
+ returns(MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::Commit)
16
+ end
17
+ attr_reader :commit
18
+
19
+ sig do
20
+ params(
21
+ commit:
22
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::Commit::OrHash
23
+ ).void
24
+ end
25
+ attr_writer :commit
26
+
27
+ # When set to false, the contract will not be evaluated against the
28
+ # threshold_amount. Toggling to true will result an immediate evaluation,
29
+ # regardless of prior state.
30
+ sig { returns(T::Boolean) }
31
+ attr_accessor :is_enabled
32
+
33
+ sig { returns(MetronomeSDK::PaymentGateConfigV2) }
34
+ attr_reader :payment_gate_config
35
+
36
+ sig do
37
+ params(
38
+ payment_gate_config: MetronomeSDK::PaymentGateConfigV2::OrHash
39
+ ).void
40
+ end
41
+ attr_writer :payment_gate_config
42
+
43
+ # Specify the amount the balance should be recharged to.
44
+ sig { returns(Float) }
45
+ attr_accessor :recharge_to_amount
46
+
47
+ # Specify the threshold amount for the contract. Each time the contract's balance
48
+ # lowers to this amount, a threshold charge will be initiated.
49
+ sig { returns(Float) }
50
+ attr_accessor :threshold_amount
51
+
52
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
53
+ # commit amount will be in terms of this credit type instead of the fiat currency.
54
+ sig { returns(T.nilable(String)) }
55
+ attr_reader :custom_credit_type_id
56
+
57
+ sig { params(custom_credit_type_id: String).void }
58
+ attr_writer :custom_credit_type_id
59
+
60
+ sig do
61
+ params(
62
+ commit:
63
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::Commit::OrHash,
64
+ is_enabled: T::Boolean,
65
+ payment_gate_config: MetronomeSDK::PaymentGateConfigV2::OrHash,
66
+ recharge_to_amount: Float,
67
+ threshold_amount: Float,
68
+ custom_credit_type_id: String
69
+ ).returns(T.attached_class)
70
+ end
71
+ def self.new(
72
+ commit:,
73
+ # When set to false, the contract will not be evaluated against the
74
+ # threshold_amount. Toggling to true will result an immediate evaluation,
75
+ # regardless of prior state.
76
+ is_enabled:,
77
+ payment_gate_config:,
78
+ # Specify the amount the balance should be recharged to.
79
+ recharge_to_amount:,
80
+ # Specify the threshold amount for the contract. Each time the contract's balance
81
+ # lowers to this amount, a threshold charge will be initiated.
82
+ threshold_amount:,
83
+ # If provided, the threshold, recharge-to amount, and the resulting threshold
84
+ # commit amount will be in terms of this credit type instead of the fiat currency.
85
+ custom_credit_type_id: nil
86
+ )
87
+ end
88
+
89
+ sig do
90
+ override.returns(
91
+ {
92
+ commit:
93
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::Commit,
94
+ is_enabled: T::Boolean,
95
+ payment_gate_config: MetronomeSDK::PaymentGateConfigV2,
96
+ recharge_to_amount: Float,
97
+ threshold_amount: Float,
98
+ custom_credit_type_id: String
99
+ }
100
+ )
101
+ end
102
+ def to_hash
103
+ end
104
+
105
+ class Commit < MetronomeSDK::Models::UpdateBaseThresholdCommit
106
+ OrHash =
107
+ T.type_alias do
108
+ T.any(
109
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::Commit,
110
+ MetronomeSDK::Internal::AnyHash
111
+ )
112
+ end
113
+
114
+ # Which products the threshold commit applies to. If applicable_product_ids,
115
+ # applicable_product_tags or specifiers are not provided, the commit applies to
116
+ # all products.
117
+ sig { returns(T.nilable(T::Array[String])) }
118
+ attr_reader :applicable_product_ids
119
+
120
+ sig { params(applicable_product_ids: T::Array[String]).void }
121
+ attr_writer :applicable_product_ids
122
+
123
+ # Which tags the threshold commit applies to. If applicable_product_ids,
124
+ # applicable_product_tags or specifiers are not provided, the commit applies to
125
+ # all products.
126
+ sig { returns(T.nilable(T::Array[String])) }
127
+ attr_reader :applicable_product_tags
128
+
129
+ sig { params(applicable_product_tags: T::Array[String]).void }
130
+ attr_writer :applicable_product_tags
131
+
132
+ # List of filters that determine what kind of customer usage draws down a commit
133
+ # or credit. A customer's usage needs to meet the condition of at least one of the
134
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
135
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
136
+ # Instead, to target usage by product or product tag, pass those values in the
137
+ # body of `specifiers`.
138
+ sig { returns(T.nilable(T::Array[MetronomeSDK::CommitSpecifierInput])) }
139
+ attr_reader :specifiers
140
+
141
+ sig do
142
+ params(
143
+ specifiers: T::Array[MetronomeSDK::CommitSpecifierInput::OrHash]
144
+ ).void
145
+ end
146
+ attr_writer :specifiers
147
+
148
+ sig do
149
+ params(
150
+ applicable_product_ids: T::Array[String],
151
+ applicable_product_tags: T::Array[String],
152
+ specifiers: T::Array[MetronomeSDK::CommitSpecifierInput::OrHash]
153
+ ).returns(T.attached_class)
154
+ end
155
+ def self.new(
156
+ # Which products the threshold commit applies to. If applicable_product_ids,
157
+ # applicable_product_tags or specifiers are not provided, the commit applies to
158
+ # all products.
159
+ applicable_product_ids: nil,
160
+ # Which tags the threshold commit applies to. If applicable_product_ids,
161
+ # applicable_product_tags or specifiers are not provided, the commit applies to
162
+ # all products.
163
+ applicable_product_tags: nil,
164
+ # List of filters that determine what kind of customer usage draws down a commit
165
+ # or credit. A customer's usage needs to meet the condition of at least one of the
166
+ # specifiers to contribute to a commit's or credit's drawdown. This field cannot
167
+ # be used together with `applicable_product_ids` or `applicable_product_tags`.
168
+ # Instead, to target usage by product or product tag, pass those values in the
169
+ # body of `specifiers`.
170
+ specifiers: nil
171
+ )
172
+ end
173
+
174
+ sig do
175
+ override.returns(
176
+ {
177
+ applicable_product_ids: T::Array[String],
178
+ applicable_product_tags: T::Array[String],
179
+ specifiers: T::Array[MetronomeSDK::CommitSpecifierInput]
180
+ }
181
+ )
182
+ end
183
+ def to_hash
184
+ end
185
+ end
186
+ end
187
+ end
188
+ end