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
@@ -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
@@ -28,6 +28,7 @@ module MetronomeSDK
28
28
  sig { returns(Float) }
29
29
  attr_accessor :unit_price
30
30
 
31
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
31
32
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
32
33
  attr_reader :custom_fields
33
34
 
@@ -70,6 +71,7 @@ module MetronomeSDK
70
71
  # Unit price for the charge. Will be multiplied by quantity to determine the
71
72
  # amount and must be specified.
72
73
  unit_price:,
74
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
73
75
  custom_fields: nil,
74
76
  description: nil,
75
77
  # This field's availability is dependent on your client's configuration.
@@ -0,0 +1,125 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ class RecurringCommitSubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ MetronomeSDK::RecurringCommitSubscriptionConfig,
10
+ MetronomeSDK::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig do
15
+ returns(
16
+ MetronomeSDK::RecurringCommitSubscriptionConfig::Allocation::TaggedSymbol
17
+ )
18
+ end
19
+ attr_accessor :allocation
20
+
21
+ sig do
22
+ returns(
23
+ MetronomeSDK::RecurringCommitSubscriptionConfig::ApplySeatIncreaseConfig
24
+ )
25
+ end
26
+ attr_reader :apply_seat_increase_config
27
+
28
+ sig do
29
+ params(
30
+ apply_seat_increase_config:
31
+ MetronomeSDK::RecurringCommitSubscriptionConfig::ApplySeatIncreaseConfig::OrHash
32
+ ).void
33
+ end
34
+ attr_writer :apply_seat_increase_config
35
+
36
+ sig { returns(String) }
37
+ attr_accessor :subscription_id
38
+
39
+ sig do
40
+ params(
41
+ allocation:
42
+ MetronomeSDK::RecurringCommitSubscriptionConfig::Allocation::OrSymbol,
43
+ apply_seat_increase_config:
44
+ MetronomeSDK::RecurringCommitSubscriptionConfig::ApplySeatIncreaseConfig::OrHash,
45
+ subscription_id: String
46
+ ).returns(T.attached_class)
47
+ end
48
+ def self.new(allocation:, apply_seat_increase_config:, subscription_id:)
49
+ end
50
+
51
+ sig do
52
+ override.returns(
53
+ {
54
+ allocation:
55
+ MetronomeSDK::RecurringCommitSubscriptionConfig::Allocation::TaggedSymbol,
56
+ apply_seat_increase_config:
57
+ MetronomeSDK::RecurringCommitSubscriptionConfig::ApplySeatIncreaseConfig,
58
+ subscription_id: String
59
+ }
60
+ )
61
+ end
62
+ def to_hash
63
+ end
64
+
65
+ module Allocation
66
+ extend MetronomeSDK::Internal::Type::Enum
67
+
68
+ TaggedSymbol =
69
+ T.type_alias do
70
+ T.all(
71
+ Symbol,
72
+ MetronomeSDK::RecurringCommitSubscriptionConfig::Allocation
73
+ )
74
+ end
75
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
76
+
77
+ INDIVIDUAL =
78
+ T.let(
79
+ :INDIVIDUAL,
80
+ MetronomeSDK::RecurringCommitSubscriptionConfig::Allocation::TaggedSymbol
81
+ )
82
+ POOLED =
83
+ T.let(
84
+ :POOLED,
85
+ MetronomeSDK::RecurringCommitSubscriptionConfig::Allocation::TaggedSymbol
86
+ )
87
+
88
+ sig do
89
+ override.returns(
90
+ T::Array[
91
+ MetronomeSDK::RecurringCommitSubscriptionConfig::Allocation::TaggedSymbol
92
+ ]
93
+ )
94
+ end
95
+ def self.values
96
+ end
97
+ end
98
+
99
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
100
+ OrHash =
101
+ T.type_alias do
102
+ T.any(
103
+ MetronomeSDK::RecurringCommitSubscriptionConfig::ApplySeatIncreaseConfig,
104
+ MetronomeSDK::Internal::AnyHash
105
+ )
106
+ end
107
+
108
+ # Indicates whether a mid-period seat increase should be prorated.
109
+ sig { returns(T::Boolean) }
110
+ attr_accessor :is_prorated
111
+
112
+ sig { params(is_prorated: T::Boolean).returns(T.attached_class) }
113
+ def self.new(
114
+ # Indicates whether a mid-period seat increase should be prorated.
115
+ is_prorated:
116
+ )
117
+ end
118
+
119
+ sig { override.returns({ is_prorated: T::Boolean }) }
120
+ def to_hash
121
+ end
122
+ end
123
+ end
124
+ end
125
+ end
@@ -31,6 +31,7 @@ module MetronomeSDK
31
31
  sig { params(archived_at: Time).void }
32
32
  attr_writer :archived_at
33
33
 
34
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
34
35
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
35
36
  attr_reader :custom_fields
36
37
 
@@ -67,6 +68,7 @@ module MetronomeSDK
67
68
  product:,
68
69
  schedule:,
69
70
  archived_at: nil,
71
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
70
72
  custom_fields: nil,
71
73
  # displayed on invoices
72
74
  name: nil,
@@ -0,0 +1,76 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ class SpendThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ MetronomeSDK::SpendThresholdConfiguration,
10
+ MetronomeSDK::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(MetronomeSDK::BaseThresholdCommit) }
15
+ attr_reader :commit
16
+
17
+ sig { params(commit: MetronomeSDK::BaseThresholdCommit::OrHash).void }
18
+ attr_writer :commit
19
+
20
+ # When set to false, the contract will not be evaluated against the
21
+ # threshold_amount. Toggling to true will result an immediate evaluation,
22
+ # regardless of prior state.
23
+ sig { returns(T::Boolean) }
24
+ attr_accessor :is_enabled
25
+
26
+ sig { returns(MetronomeSDK::PaymentGateConfig) }
27
+ attr_reader :payment_gate_config
28
+
29
+ sig do
30
+ params(
31
+ payment_gate_config: MetronomeSDK::PaymentGateConfig::OrHash
32
+ ).void
33
+ end
34
+ attr_writer :payment_gate_config
35
+
36
+ # Specify the threshold amount for the contract. Each time the contract's usage
37
+ # hits this amount, a threshold charge will be initiated.
38
+ sig { returns(Float) }
39
+ attr_accessor :threshold_amount
40
+
41
+ sig do
42
+ params(
43
+ commit: MetronomeSDK::BaseThresholdCommit::OrHash,
44
+ is_enabled: T::Boolean,
45
+ payment_gate_config: MetronomeSDK::PaymentGateConfig::OrHash,
46
+ threshold_amount: Float
47
+ ).returns(T.attached_class)
48
+ end
49
+ def self.new(
50
+ commit:,
51
+ # When set to false, the contract will not be evaluated against the
52
+ # threshold_amount. Toggling to true will result an immediate evaluation,
53
+ # regardless of prior state.
54
+ is_enabled:,
55
+ payment_gate_config:,
56
+ # Specify the threshold amount for the contract. Each time the contract's usage
57
+ # hits this amount, a threshold charge will be initiated.
58
+ threshold_amount:
59
+ )
60
+ end
61
+
62
+ sig do
63
+ override.returns(
64
+ {
65
+ commit: MetronomeSDK::BaseThresholdCommit,
66
+ is_enabled: T::Boolean,
67
+ payment_gate_config: MetronomeSDK::PaymentGateConfig,
68
+ threshold_amount: Float
69
+ }
70
+ )
71
+ end
72
+ def to_hash
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,78 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ class SpendThresholdConfigurationV2 < MetronomeSDK::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ MetronomeSDK::SpendThresholdConfigurationV2,
10
+ MetronomeSDK::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(MetronomeSDK::UpdateBaseThresholdCommit) }
15
+ attr_reader :commit
16
+
17
+ sig do
18
+ params(commit: MetronomeSDK::UpdateBaseThresholdCommit::OrHash).void
19
+ end
20
+ attr_writer :commit
21
+
22
+ # When set to false, the contract will not be evaluated against the
23
+ # threshold_amount. Toggling to true will result an immediate evaluation,
24
+ # regardless of prior state.
25
+ sig { returns(T::Boolean) }
26
+ attr_accessor :is_enabled
27
+
28
+ sig { returns(MetronomeSDK::PaymentGateConfigV2) }
29
+ attr_reader :payment_gate_config
30
+
31
+ sig do
32
+ params(
33
+ payment_gate_config: MetronomeSDK::PaymentGateConfigV2::OrHash
34
+ ).void
35
+ end
36
+ attr_writer :payment_gate_config
37
+
38
+ # Specify the threshold amount for the contract. Each time the contract's usage
39
+ # hits this amount, a threshold charge will be initiated.
40
+ sig { returns(Float) }
41
+ attr_accessor :threshold_amount
42
+
43
+ sig do
44
+ params(
45
+ commit: MetronomeSDK::UpdateBaseThresholdCommit::OrHash,
46
+ is_enabled: T::Boolean,
47
+ payment_gate_config: MetronomeSDK::PaymentGateConfigV2::OrHash,
48
+ threshold_amount: Float
49
+ ).returns(T.attached_class)
50
+ end
51
+ def self.new(
52
+ commit:,
53
+ # When set to false, the contract will not be evaluated against the
54
+ # threshold_amount. Toggling to true will result an immediate evaluation,
55
+ # regardless of prior state.
56
+ is_enabled:,
57
+ payment_gate_config:,
58
+ # Specify the threshold amount for the contract. Each time the contract's usage
59
+ # hits this amount, a threshold charge will be initiated.
60
+ threshold_amount:
61
+ )
62
+ end
63
+
64
+ sig do
65
+ override.returns(
66
+ {
67
+ commit: MetronomeSDK::UpdateBaseThresholdCommit,
68
+ is_enabled: T::Boolean,
69
+ payment_gate_config: MetronomeSDK::PaymentGateConfigV2,
70
+ threshold_amount: Float
71
+ }
72
+ )
73
+ end
74
+ def to_hash
75
+ end
76
+ end
77
+ end
78
+ end