metronome-sdk 0.2.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 (321) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +61 -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/array_of.rb +1 -0
  9. data/lib/metronome_sdk/internal/type/base_model.rb +9 -14
  10. data/lib/metronome_sdk/internal/type/converter.rb +27 -0
  11. data/lib/metronome_sdk/internal/type/hash_of.rb +1 -0
  12. data/lib/metronome_sdk/internal/type/union.rb +20 -7
  13. data/lib/metronome_sdk/internal/util.rb +1 -1
  14. data/lib/metronome_sdk/models/base_threshold_commit.rb +36 -0
  15. data/lib/metronome_sdk/models/commit.rb +26 -170
  16. data/lib/metronome_sdk/models/commit_hierarchy_configuration.rb +98 -0
  17. data/lib/metronome_sdk/models/commit_rate.rb +48 -0
  18. data/lib/metronome_sdk/models/commit_specifier.rb +42 -0
  19. data/lib/metronome_sdk/models/commit_specifier_input.rb +42 -0
  20. data/lib/metronome_sdk/models/contract.rb +404 -0
  21. data/lib/metronome_sdk/models/contract_v2.rb +2919 -0
  22. data/lib/metronome_sdk/models/contract_without_amendments.rb +36 -1126
  23. data/lib/metronome_sdk/models/credit.rb +9 -156
  24. data/lib/metronome_sdk/models/discount.rb +2 -1
  25. data/lib/metronome_sdk/models/hierarchy_configuration.rb +76 -0
  26. data/lib/metronome_sdk/models/override.rb +6 -101
  27. data/lib/metronome_sdk/models/override_tier.rb +21 -0
  28. data/lib/metronome_sdk/models/overwrite_rate.rb +82 -0
  29. data/lib/metronome_sdk/models/payment_gate_config.rb +149 -0
  30. data/lib/metronome_sdk/models/payment_gate_config_v2.rb +149 -0
  31. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +100 -0
  32. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +102 -0
  33. data/lib/metronome_sdk/models/pro_service.rb +2 -1
  34. data/lib/metronome_sdk/models/recurring_commit_subscription_config.rb +51 -0
  35. data/lib/metronome_sdk/models/schedule_point_in_time.rb +14 -1
  36. data/lib/metronome_sdk/models/scheduled_charge.rb +2 -1
  37. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +44 -0
  38. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +44 -0
  39. data/lib/metronome_sdk/models/subscription.rb +227 -0
  40. data/lib/metronome_sdk/models/update_base_threshold_commit.rb +36 -0
  41. data/lib/metronome_sdk/models/v1/alert_create_params.rb +4 -6
  42. data/lib/metronome_sdk/models/v1/billable_metric_create_params.rb +1 -2
  43. data/lib/metronome_sdk/models/v1/billable_metric_list_response.rb +3 -3
  44. data/lib/metronome_sdk/models/v1/billable_metric_retrieve_response.rb +4 -7
  45. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +110 -415
  46. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_params.rb +7 -16
  47. data/lib/metronome_sdk/models/v1/contract_create_params.rb +287 -1480
  48. data/lib/metronome_sdk/models/v1/contract_list_balances_response.rb +6 -23
  49. data/lib/metronome_sdk/models/v1/contract_list_response.rb +3 -1153
  50. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rb +2 -6
  51. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rb +5 -50
  52. data/lib/metronome_sdk/models/v1/contract_retrieve_response.rb +3 -1154
  53. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_params.rb +1 -3
  54. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +9 -1
  55. data/lib/metronome_sdk/models/v1/contracts/product_list_response.rb +8 -1
  56. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_response.rb +8 -1
  57. data/lib/metronome_sdk/models/v1/contracts/quantity_rounding.rb +1 -4
  58. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_params.rb +4 -7
  59. data/lib/metronome_sdk/models/v1/contracts/rate_card_list_response.rb +10 -1
  60. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rb +2 -6
  61. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rb +5 -50
  62. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rb +10 -1
  63. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_params.rb +1 -3
  64. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_params.rb +1 -3
  65. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +6 -61
  66. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +3 -49
  67. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +4 -51
  68. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rb +2 -6
  69. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rb +5 -49
  70. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_response.rb +103 -123
  71. data/lib/metronome_sdk/models/v1/credit_grant_list_response.rb +3 -5
  72. data/lib/metronome_sdk/models/v1/custom_field_list_keys_params.rb +1 -3
  73. data/lib/metronome_sdk/models/v1/custom_field_list_keys_response.rb +41 -58
  74. data/lib/metronome_sdk/models/v1/custom_field_set_values_params.rb +5 -1
  75. data/lib/metronome_sdk/models/v1/customer.rb +2 -1
  76. data/lib/metronome_sdk/models/v1/customer_create_params.rb +37 -11
  77. data/lib/metronome_sdk/models/v1/customer_detail.rb +2 -1
  78. data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_response.rb +3 -3
  79. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +1 -3
  80. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rb +28 -0
  81. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rb +128 -0
  82. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb +143 -0
  83. data/lib/metronome_sdk/models/v1/customers/alert_list_params.rb +1 -3
  84. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +30 -1
  85. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +2 -0
  86. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +2 -0
  87. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +20 -61
  88. data/lib/metronome_sdk/models/v1/customers/credit_create_params.rb +6 -48
  89. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +8 -16
  90. data/lib/metronome_sdk/models/v1/customers/invoice.rb +68 -43
  91. data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_params.rb +1 -4
  92. data/lib/metronome_sdk/models/v1/customers/plan_add_params.rb +2 -6
  93. data/lib/metronome_sdk/models/v1/customers/plan_list_response.rb +2 -1
  94. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +4 -11
  95. data/lib/metronome_sdk/models/v1/plan_detail.rb +9 -5
  96. data/lib/metronome_sdk/models/v1/plan_list_charges_response.rb +2 -1
  97. data/lib/metronome_sdk/models/v1/plan_list_customers_response.rb +2 -1
  98. data/lib/metronome_sdk/models/v1/plan_list_response.rb +5 -1
  99. data/lib/metronome_sdk/models/v1/usage_ingest_params.rb +1 -4
  100. data/lib/metronome_sdk/models/v1/usage_list_params.rb +1 -3
  101. data/lib/metronome_sdk/models/v1/usage_list_response.rb +45 -62
  102. data/lib/metronome_sdk/models/v1/usage_search_response.rb +4 -7
  103. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +38 -58
  104. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +35 -49
  105. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +469 -2302
  106. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +358 -2414
  107. data/lib/metronome_sdk/models/v2/contract_list_response.rb +3 -4520
  108. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +3 -4528
  109. data/lib/metronome_sdk/models.rb +38 -0
  110. data/lib/metronome_sdk/resources/v1/alerts.rb +72 -2
  111. data/lib/metronome_sdk/resources/v1/audit_logs.rb +39 -4
  112. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +54 -4
  113. data/lib/metronome_sdk/resources/v1/contracts/products.rb +27 -6
  114. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rb +7 -2
  115. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +10 -2
  116. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +109 -10
  117. data/lib/metronome_sdk/resources/v1/contracts.rb +254 -18
  118. data/lib/metronome_sdk/resources/v1/credit_grants.rb +2 -1
  119. data/lib/metronome_sdk/resources/v1/custom_fields.rb +51 -14
  120. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +103 -8
  121. data/lib/metronome_sdk/resources/v1/customers/commits.rb +119 -9
  122. data/lib/metronome_sdk/resources/v1/customers/credits.rb +104 -8
  123. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +124 -8
  124. data/lib/metronome_sdk/resources/v1/customers.rb +169 -12
  125. data/lib/metronome_sdk/resources/v1/dashboards.rb +29 -3
  126. data/lib/metronome_sdk/resources/v1/invoices.rb +23 -2
  127. data/lib/metronome_sdk/resources/v1/pricing_units.rb +6 -1
  128. data/lib/metronome_sdk/resources/v1/services.rb +6 -4
  129. data/lib/metronome_sdk/resources/v1/usage.rb +185 -12
  130. data/lib/metronome_sdk/resources/v2/contracts.rb +118 -18
  131. data/lib/metronome_sdk/version.rb +1 -1
  132. data/lib/metronome_sdk.rb +24 -3
  133. data/rbi/metronome_sdk/errors.rbi +2 -2
  134. data/rbi/metronome_sdk/internal/body_cursor_page.rbi +22 -0
  135. data/rbi/metronome_sdk/internal/cursor_page_without_limit.rbi +22 -0
  136. data/rbi/metronome_sdk/internal/type/converter.rbi +58 -0
  137. data/rbi/metronome_sdk/internal/type/union.rbi +9 -2
  138. data/rbi/metronome_sdk/models/base_threshold_commit.rbi +58 -0
  139. data/rbi/metronome_sdk/models/commit.rbi +26 -348
  140. data/rbi/metronome_sdk/models/commit_hierarchy_configuration.rbi +280 -0
  141. data/rbi/metronome_sdk/models/commit_rate.rbi +85 -0
  142. data/rbi/metronome_sdk/models/commit_specifier.rbi +71 -0
  143. data/rbi/metronome_sdk/models/commit_specifier_input.rbi +74 -0
  144. data/rbi/metronome_sdk/models/contract.rbi +768 -0
  145. data/rbi/metronome_sdk/models/contract_v2.rbi +5822 -0
  146. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +184 -2507
  147. data/rbi/metronome_sdk/models/credit.rbi +10 -348
  148. data/rbi/metronome_sdk/models/discount.rbi +2 -0
  149. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +180 -0
  150. data/rbi/metronome_sdk/models/override.rbi +8 -193
  151. data/rbi/metronome_sdk/models/override_tier.rbi +29 -0
  152. data/rbi/metronome_sdk/models/overwrite_rate.rbi +137 -0
  153. data/rbi/metronome_sdk/models/payment_gate_config.rbi +312 -0
  154. data/rbi/metronome_sdk/models/payment_gate_config_v2.rbi +321 -0
  155. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +183 -0
  156. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +188 -0
  157. data/rbi/metronome_sdk/models/pro_service.rbi +2 -0
  158. data/rbi/metronome_sdk/models/recurring_commit_subscription_config.rbi +125 -0
  159. data/rbi/metronome_sdk/models/schedule_point_in_time.rbi +17 -1
  160. data/rbi/metronome_sdk/models/scheduled_charge.rbi +2 -0
  161. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +76 -0
  162. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -0
  163. data/rbi/metronome_sdk/models/subscription.rbi +460 -0
  164. data/rbi/metronome_sdk/models/update_base_threshold_commit.rbi +61 -0
  165. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +6 -3
  166. data/rbi/metronome_sdk/models/v1/billable_metric_list_response.rbi +2 -0
  167. data/rbi/metronome_sdk/models/v1/billable_metric_retrieve_response.rbi +2 -0
  168. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +120 -771
  169. data/rbi/metronome_sdk/models/v1/contract_create_historical_invoices_params.rbi +2 -0
  170. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1613 -4069
  171. data/rbi/metronome_sdk/models/v1/contract_list_balances_response.rbi +8 -59
  172. data/rbi/metronome_sdk/models/v1/contract_list_response.rbi +5 -2420
  173. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbi +6 -129
  174. data/rbi/metronome_sdk/models/v1/contract_retrieve_response.rbi +4 -2419
  175. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +11 -0
  176. data/rbi/metronome_sdk/models/v1/contracts/product_list_response.rbi +2 -0
  177. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_response.rbi +2 -0
  178. data/rbi/metronome_sdk/models/v1/contracts/rate_card_create_params.rbi +2 -0
  179. data/rbi/metronome_sdk/models/v1/contracts/rate_card_list_response.rbi +2 -0
  180. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbi +6 -129
  181. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbi +2 -0
  182. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +4 -129
  183. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +4 -129
  184. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +4 -129
  185. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbi +6 -129
  186. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_response.rbi +147 -198
  187. data/rbi/metronome_sdk/models/v1/credit_grant_list_response.rbi +2 -0
  188. data/rbi/metronome_sdk/models/v1/custom_field_list_keys_response.rbi +117 -165
  189. data/rbi/metronome_sdk/models/v1/custom_field_set_values_params.rbi +8 -1
  190. data/rbi/metronome_sdk/models/v1/customer.rbi +2 -0
  191. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +88 -3
  192. data/rbi/metronome_sdk/models/v1/customer_detail.rbi +2 -0
  193. data/rbi/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbi +2 -0
  194. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbi +51 -0
  195. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbi +265 -0
  196. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbi +348 -0
  197. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +60 -0
  198. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +10 -0
  199. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +10 -0
  200. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +19 -90
  201. data/rbi/metronome_sdk/models/v1/customers/credit_create_params.rbi +6 -90
  202. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +6 -3
  203. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +76 -0
  204. data/rbi/metronome_sdk/models/v1/customers/plan_list_response.rbi +2 -0
  205. data/rbi/metronome_sdk/models/v1/plan_detail.rbi +2 -0
  206. data/rbi/metronome_sdk/models/v1/plan_list_charges_response.rbi +2 -0
  207. data/rbi/metronome_sdk/models/v1/plan_list_customers_response.rbi +2 -0
  208. data/rbi/metronome_sdk/models/v1/plan_list_response.rbi +8 -1
  209. data/rbi/metronome_sdk/models/v1/usage_list_response.rbi +45 -86
  210. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +2 -0
  211. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +66 -76
  212. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +66 -76
  213. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +3563 -7329
  214. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1181 -6070
  215. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +5 -9867
  216. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +6 -9866
  217. data/rbi/metronome_sdk/models.rbi +44 -0
  218. data/rbi/metronome_sdk/resources/v1/alerts.rbi +72 -2
  219. data/rbi/metronome_sdk/resources/v1/audit_logs.rbi +39 -4
  220. data/rbi/metronome_sdk/resources/v1/billable_metrics.rbi +54 -4
  221. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +27 -5
  222. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rbi +7 -2
  223. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +10 -3
  224. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards.rbi +109 -9
  225. data/rbi/metronome_sdk/resources/v1/contracts.rbi +257 -16
  226. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +5 -1
  227. data/rbi/metronome_sdk/resources/v1/custom_fields.rbi +57 -14
  228. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +108 -5
  229. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +119 -10
  230. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +104 -9
  231. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +123 -7
  232. data/rbi/metronome_sdk/resources/v1/customers.rbi +156 -11
  233. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +29 -3
  234. data/rbi/metronome_sdk/resources/v1/invoices.rbi +23 -2
  235. data/rbi/metronome_sdk/resources/v1/pricing_units.rbi +6 -1
  236. data/rbi/metronome_sdk/resources/v1/services.rbi +6 -4
  237. data/rbi/metronome_sdk/resources/v1/usage.rbi +188 -12
  238. data/rbi/metronome_sdk/resources/v2/contracts.rbi +128 -23
  239. data/sig/metronome_sdk/internal/body_cursor_page.rbs +13 -0
  240. data/sig/metronome_sdk/internal/cursor_page_without_limit.rbs +13 -0
  241. data/sig/metronome_sdk/internal/type/converter.rbs +17 -0
  242. data/sig/metronome_sdk/internal/type/union.rbs +2 -2
  243. data/sig/metronome_sdk/models/base_threshold_commit.rbs +26 -0
  244. data/sig/metronome_sdk/models/commit.rbs +17 -170
  245. data/sig/metronome_sdk/models/commit_hierarchy_configuration.rbs +117 -0
  246. data/sig/metronome_sdk/models/commit_rate.rbs +48 -0
  247. data/sig/metronome_sdk/models/commit_specifier.rbs +47 -0
  248. data/sig/metronome_sdk/models/commit_specifier_input.rbs +47 -0
  249. data/sig/metronome_sdk/models/contract.rbs +398 -0
  250. data/sig/metronome_sdk/models/contract_v2.rbs +2881 -0
  251. data/sig/metronome_sdk/models/contract_without_amendments.rbs +54 -976
  252. data/sig/metronome_sdk/models/credit.rbs +12 -170
  253. data/sig/metronome_sdk/models/hierarchy_configuration.rbs +71 -0
  254. data/sig/metronome_sdk/models/override.rbs +12 -101
  255. data/sig/metronome_sdk/models/override_tier.rbs +17 -0
  256. data/sig/metronome_sdk/models/overwrite_rate.rbs +78 -0
  257. data/sig/metronome_sdk/models/payment_gate_config.rbs +123 -0
  258. data/sig/metronome_sdk/models/payment_gate_config_v2.rbs +123 -0
  259. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +82 -0
  260. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +82 -0
  261. data/sig/metronome_sdk/models/recurring_commit_subscription_config.rbs +51 -0
  262. data/sig/metronome_sdk/models/schedule_point_in_time.rbs +7 -0
  263. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +35 -0
  264. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +35 -0
  265. data/sig/metronome_sdk/models/subscription.rbs +215 -0
  266. data/sig/metronome_sdk/models/update_base_threshold_commit.rbs +28 -0
  267. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +4 -2
  268. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +62 -343
  269. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +218 -1234
  270. data/sig/metronome_sdk/models/v1/contract_list_balances_response.rbs +4 -25
  271. data/sig/metronome_sdk/models/v1/contract_list_response.rbs +4 -1041
  272. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbs +6 -54
  273. data/sig/metronome_sdk/models/v1/contract_retrieve_response.rbs +4 -1041
  274. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +7 -0
  275. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbs +6 -54
  276. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +6 -54
  277. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +6 -54
  278. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +6 -54
  279. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbs +6 -54
  280. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_response.rbs +72 -94
  281. data/sig/metronome_sdk/models/v1/custom_field_list_keys_response.rbs +53 -75
  282. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +31 -4
  283. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbs +32 -0
  284. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbs +113 -0
  285. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbs +133 -0
  286. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +21 -0
  287. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +7 -1
  288. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +6 -1
  289. data/sig/metronome_sdk/models/v1/customers/commit_create_params.rbs +13 -50
  290. data/sig/metronome_sdk/models/v1/customers/credit_create_params.rbs +6 -50
  291. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +4 -2
  292. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +5 -0
  293. data/sig/metronome_sdk/models/v1/usage_list_response.rbs +33 -55
  294. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +24 -43
  295. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +24 -43
  296. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +400 -1911
  297. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +256 -2249
  298. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +4 -4426
  299. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +4 -4426
  300. data/sig/metronome_sdk/models.rbs +38 -0
  301. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +1 -0
  302. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -1
  303. data/sig/metronome_sdk/resources/v1/contracts.rbs +3 -3
  304. data/sig/metronome_sdk/resources/v1/credit_grants.rbs +1 -1
  305. data/sig/metronome_sdk/resources/v1/custom_fields.rbs +1 -1
  306. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +2 -1
  307. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +2 -2
  308. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +2 -2
  309. data/sig/metronome_sdk/resources/v1/customers.rbs +11 -0
  310. data/sig/metronome_sdk/resources/v1/usage.rbs +1 -1
  311. data/sig/metronome_sdk/resources/v2/contracts.rbs +9 -4
  312. metadata +74 -11
  313. data/lib/metronome_sdk/models/v1/customers/alert_list_response.rb +0 -29
  314. data/lib/metronome_sdk/models/v1/customers/commit_list_response.rb +0 -26
  315. data/lib/metronome_sdk/models/v1/customers/credit_list_response.rb +0 -26
  316. data/rbi/metronome_sdk/models/v1/customers/alert_list_response.rbi +0 -46
  317. data/rbi/metronome_sdk/models/v1/customers/commit_list_response.rbi +0 -45
  318. data/rbi/metronome_sdk/models/v1/customers/credit_list_response.rbi +0 -45
  319. data/sig/metronome_sdk/models/v1/customers/alert_list_response.rbs +0 -29
  320. data/sig/metronome_sdk/models/v1/customers/commit_list_response.rbs +0 -26
  321. data/sig/metronome_sdk/models/v1/customers/credit_list_response.rbs +0 -26
@@ -12,2435 +12,20 @@ module MetronomeSDK
12
12
  )
13
13
  end
14
14
 
15
- sig do
16
- returns(
17
- T::Array[MetronomeSDK::Models::V1::ContractListResponse::Data]
18
- )
19
- end
15
+ sig { returns(T::Array[MetronomeSDK::Contract]) }
20
16
  attr_accessor :data
21
17
 
22
18
  sig do
23
- params(
24
- data:
25
- T::Array[
26
- MetronomeSDK::Models::V1::ContractListResponse::Data::OrHash
27
- ]
28
- ).returns(T.attached_class)
19
+ params(data: T::Array[MetronomeSDK::Contract::OrHash]).returns(
20
+ T.attached_class
21
+ )
29
22
  end
30
23
  def self.new(data:)
31
24
  end
32
25
 
33
- sig do
34
- override.returns(
35
- {
36
- data:
37
- T::Array[MetronomeSDK::Models::V1::ContractListResponse::Data]
38
- }
39
- )
40
- end
26
+ sig { override.returns({ data: T::Array[MetronomeSDK::Contract] }) }
41
27
  def to_hash
42
28
  end
43
-
44
- class Data < MetronomeSDK::Internal::Type::BaseModel
45
- OrHash =
46
- T.type_alias do
47
- T.any(
48
- MetronomeSDK::Models::V1::ContractListResponse::Data,
49
- MetronomeSDK::Internal::AnyHash
50
- )
51
- end
52
-
53
- sig { returns(String) }
54
- attr_accessor :id
55
-
56
- sig do
57
- returns(
58
- T::Array[
59
- MetronomeSDK::Models::V1::ContractListResponse::Data::Amendment
60
- ]
61
- )
62
- end
63
- attr_accessor :amendments
64
-
65
- sig { returns(MetronomeSDK::ContractWithoutAmendments) }
66
- attr_reader :current
67
-
68
- sig do
69
- params(
70
- current: MetronomeSDK::ContractWithoutAmendments::OrHash
71
- ).void
72
- end
73
- attr_writer :current
74
-
75
- sig { returns(String) }
76
- attr_accessor :customer_id
77
-
78
- sig { returns(MetronomeSDK::ContractWithoutAmendments) }
79
- attr_reader :initial
80
-
81
- sig do
82
- params(
83
- initial: MetronomeSDK::ContractWithoutAmendments::OrHash
84
- ).void
85
- end
86
- attr_writer :initial
87
-
88
- # RFC 3339 timestamp indicating when the contract was archived. If not returned,
89
- # the contract is not archived.
90
- sig { returns(T.nilable(Time)) }
91
- attr_reader :archived_at
92
-
93
- sig { params(archived_at: Time).void }
94
- attr_writer :archived_at
95
-
96
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
97
- attr_reader :custom_fields
98
-
99
- sig { params(custom_fields: T::Hash[Symbol, String]).void }
100
- attr_writer :custom_fields
101
-
102
- # The billing provider configuration associated with a contract.
103
- sig do
104
- returns(
105
- T.nilable(
106
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration
107
- )
108
- )
109
- end
110
- attr_reader :customer_billing_provider_configuration
111
-
112
- sig do
113
- params(
114
- customer_billing_provider_configuration:
115
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::OrHash
116
- ).void
117
- end
118
- attr_writer :customer_billing_provider_configuration
119
-
120
- sig do
121
- returns(
122
- T.nilable(
123
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration
124
- )
125
- )
126
- end
127
- attr_reader :prepaid_balance_threshold_configuration
128
-
129
- sig do
130
- params(
131
- prepaid_balance_threshold_configuration:
132
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::OrHash
133
- ).void
134
- end
135
- attr_writer :prepaid_balance_threshold_configuration
136
-
137
- # Priority of the contract.
138
- sig { returns(T.nilable(Float)) }
139
- attr_reader :priority
140
-
141
- sig { params(priority: Float).void }
142
- attr_writer :priority
143
-
144
- # Determines which scheduled and commit charges to consolidate onto the Contract's
145
- # usage invoice. The charge's `timestamp` must match the usage invoice's
146
- # `ending_before` date for consolidation to occur. This field cannot be modified
147
- # after a Contract has been created. If this field is omitted, charges will appear
148
- # on a separate invoice from usage charges.
149
- sig do
150
- returns(
151
- T.nilable(
152
- MetronomeSDK::Models::V1::ContractListResponse::Data::ScheduledChargesOnUsageInvoices::TaggedSymbol
153
- )
154
- )
155
- end
156
- attr_reader :scheduled_charges_on_usage_invoices
157
-
158
- sig do
159
- params(
160
- scheduled_charges_on_usage_invoices:
161
- MetronomeSDK::Models::V1::ContractListResponse::Data::ScheduledChargesOnUsageInvoices::OrSymbol
162
- ).void
163
- end
164
- attr_writer :scheduled_charges_on_usage_invoices
165
-
166
- sig do
167
- returns(
168
- T.nilable(
169
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration
170
- )
171
- )
172
- end
173
- attr_reader :spend_threshold_configuration
174
-
175
- sig do
176
- params(
177
- spend_threshold_configuration:
178
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::OrHash
179
- ).void
180
- end
181
- attr_writer :spend_threshold_configuration
182
-
183
- # List of subscriptions on the contract.
184
- sig do
185
- returns(
186
- T.nilable(
187
- T::Array[
188
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription
189
- ]
190
- )
191
- )
192
- end
193
- attr_reader :subscriptions
194
-
195
- sig do
196
- params(
197
- subscriptions:
198
- T::Array[
199
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::OrHash
200
- ]
201
- ).void
202
- end
203
- attr_writer :subscriptions
204
-
205
- # Prevents the creation of duplicates. If a request to create a record is made
206
- # with a previously used uniqueness key, a new record will not be created and the
207
- # request will fail with a 409 error.
208
- sig { returns(T.nilable(String)) }
209
- attr_reader :uniqueness_key
210
-
211
- sig { params(uniqueness_key: String).void }
212
- attr_writer :uniqueness_key
213
-
214
- sig do
215
- params(
216
- id: String,
217
- amendments:
218
- T::Array[
219
- MetronomeSDK::Models::V1::ContractListResponse::Data::Amendment::OrHash
220
- ],
221
- current: MetronomeSDK::ContractWithoutAmendments::OrHash,
222
- customer_id: String,
223
- initial: MetronomeSDK::ContractWithoutAmendments::OrHash,
224
- archived_at: Time,
225
- custom_fields: T::Hash[Symbol, String],
226
- customer_billing_provider_configuration:
227
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::OrHash,
228
- prepaid_balance_threshold_configuration:
229
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::OrHash,
230
- priority: Float,
231
- scheduled_charges_on_usage_invoices:
232
- MetronomeSDK::Models::V1::ContractListResponse::Data::ScheduledChargesOnUsageInvoices::OrSymbol,
233
- spend_threshold_configuration:
234
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::OrHash,
235
- subscriptions:
236
- T::Array[
237
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::OrHash
238
- ],
239
- uniqueness_key: String
240
- ).returns(T.attached_class)
241
- end
242
- def self.new(
243
- id:,
244
- amendments:,
245
- current:,
246
- customer_id:,
247
- initial:,
248
- # RFC 3339 timestamp indicating when the contract was archived. If not returned,
249
- # the contract is not archived.
250
- archived_at: nil,
251
- custom_fields: nil,
252
- # The billing provider configuration associated with a contract.
253
- customer_billing_provider_configuration: nil,
254
- prepaid_balance_threshold_configuration: nil,
255
- # Priority of the contract.
256
- priority: nil,
257
- # Determines which scheduled and commit charges to consolidate onto the Contract's
258
- # usage invoice. The charge's `timestamp` must match the usage invoice's
259
- # `ending_before` date for consolidation to occur. This field cannot be modified
260
- # after a Contract has been created. If this field is omitted, charges will appear
261
- # on a separate invoice from usage charges.
262
- scheduled_charges_on_usage_invoices: nil,
263
- spend_threshold_configuration: nil,
264
- # List of subscriptions on the contract.
265
- subscriptions: nil,
266
- # Prevents the creation of duplicates. If a request to create a record is made
267
- # with a previously used uniqueness key, a new record will not be created and the
268
- # request will fail with a 409 error.
269
- uniqueness_key: nil
270
- )
271
- end
272
-
273
- sig do
274
- override.returns(
275
- {
276
- id: String,
277
- amendments:
278
- T::Array[
279
- MetronomeSDK::Models::V1::ContractListResponse::Data::Amendment
280
- ],
281
- current: MetronomeSDK::ContractWithoutAmendments,
282
- customer_id: String,
283
- initial: MetronomeSDK::ContractWithoutAmendments,
284
- archived_at: Time,
285
- custom_fields: T::Hash[Symbol, String],
286
- customer_billing_provider_configuration:
287
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration,
288
- prepaid_balance_threshold_configuration:
289
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration,
290
- priority: Float,
291
- scheduled_charges_on_usage_invoices:
292
- MetronomeSDK::Models::V1::ContractListResponse::Data::ScheduledChargesOnUsageInvoices::TaggedSymbol,
293
- spend_threshold_configuration:
294
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration,
295
- subscriptions:
296
- T::Array[
297
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription
298
- ],
299
- uniqueness_key: String
300
- }
301
- )
302
- end
303
- def to_hash
304
- end
305
-
306
- class Amendment < MetronomeSDK::Internal::Type::BaseModel
307
- OrHash =
308
- T.type_alias do
309
- T.any(
310
- MetronomeSDK::Models::V1::ContractListResponse::Data::Amendment,
311
- MetronomeSDK::Internal::AnyHash
312
- )
313
- end
314
-
315
- sig { returns(String) }
316
- attr_accessor :id
317
-
318
- sig { returns(T::Array[MetronomeSDK::Commit]) }
319
- attr_accessor :commits
320
-
321
- sig { returns(Time) }
322
- attr_accessor :created_at
323
-
324
- sig { returns(String) }
325
- attr_accessor :created_by
326
-
327
- sig { returns(T::Array[MetronomeSDK::Override]) }
328
- attr_accessor :overrides
329
-
330
- sig { returns(T::Array[MetronomeSDK::ScheduledCharge]) }
331
- attr_accessor :scheduled_charges
332
-
333
- sig { returns(Time) }
334
- attr_accessor :starting_at
335
-
336
- sig { returns(T.nilable(T::Array[MetronomeSDK::Credit])) }
337
- attr_reader :credits
338
-
339
- sig { params(credits: T::Array[MetronomeSDK::Credit::OrHash]).void }
340
- attr_writer :credits
341
-
342
- # This field's availability is dependent on your client's configuration.
343
- sig { returns(T.nilable(T::Array[MetronomeSDK::Discount])) }
344
- attr_reader :discounts
345
-
346
- sig do
347
- params(discounts: T::Array[MetronomeSDK::Discount::OrHash]).void
348
- end
349
- attr_writer :discounts
350
-
351
- # This field's availability is dependent on your client's configuration.
352
- sig { returns(T.nilable(String)) }
353
- attr_reader :netsuite_sales_order_id
354
-
355
- sig { params(netsuite_sales_order_id: String).void }
356
- attr_writer :netsuite_sales_order_id
357
-
358
- # This field's availability is dependent on your client's configuration.
359
- sig { returns(T.nilable(T::Array[MetronomeSDK::ProService])) }
360
- attr_reader :professional_services
361
-
362
- sig do
363
- params(
364
- professional_services:
365
- T::Array[MetronomeSDK::ProService::OrHash]
366
- ).void
367
- end
368
- attr_writer :professional_services
369
-
370
- # This field's availability is dependent on your client's configuration.
371
- sig do
372
- returns(
373
- T.nilable(
374
- T::Array[
375
- MetronomeSDK::Models::V1::ContractListResponse::Data::Amendment::ResellerRoyalty
376
- ]
377
- )
378
- )
379
- end
380
- attr_reader :reseller_royalties
381
-
382
- sig do
383
- params(
384
- reseller_royalties:
385
- T::Array[
386
- MetronomeSDK::Models::V1::ContractListResponse::Data::Amendment::ResellerRoyalty::OrHash
387
- ]
388
- ).void
389
- end
390
- attr_writer :reseller_royalties
391
-
392
- # This field's availability is dependent on your client's configuration.
393
- sig { returns(T.nilable(String)) }
394
- attr_reader :salesforce_opportunity_id
395
-
396
- sig { params(salesforce_opportunity_id: String).void }
397
- attr_writer :salesforce_opportunity_id
398
-
399
- sig do
400
- params(
401
- id: String,
402
- commits: T::Array[MetronomeSDK::Commit::OrHash],
403
- created_at: Time,
404
- created_by: String,
405
- overrides: T::Array[MetronomeSDK::Override::OrHash],
406
- scheduled_charges:
407
- T::Array[MetronomeSDK::ScheduledCharge::OrHash],
408
- starting_at: Time,
409
- credits: T::Array[MetronomeSDK::Credit::OrHash],
410
- discounts: T::Array[MetronomeSDK::Discount::OrHash],
411
- netsuite_sales_order_id: String,
412
- professional_services:
413
- T::Array[MetronomeSDK::ProService::OrHash],
414
- reseller_royalties:
415
- T::Array[
416
- MetronomeSDK::Models::V1::ContractListResponse::Data::Amendment::ResellerRoyalty::OrHash
417
- ],
418
- salesforce_opportunity_id: String
419
- ).returns(T.attached_class)
420
- end
421
- def self.new(
422
- id:,
423
- commits:,
424
- created_at:,
425
- created_by:,
426
- overrides:,
427
- scheduled_charges:,
428
- starting_at:,
429
- credits: nil,
430
- # This field's availability is dependent on your client's configuration.
431
- discounts: nil,
432
- # This field's availability is dependent on your client's configuration.
433
- netsuite_sales_order_id: nil,
434
- # This field's availability is dependent on your client's configuration.
435
- professional_services: nil,
436
- # This field's availability is dependent on your client's configuration.
437
- reseller_royalties: nil,
438
- # This field's availability is dependent on your client's configuration.
439
- salesforce_opportunity_id: nil
440
- )
441
- end
442
-
443
- sig do
444
- override.returns(
445
- {
446
- id: String,
447
- commits: T::Array[MetronomeSDK::Commit],
448
- created_at: Time,
449
- created_by: String,
450
- overrides: T::Array[MetronomeSDK::Override],
451
- scheduled_charges: T::Array[MetronomeSDK::ScheduledCharge],
452
- starting_at: Time,
453
- credits: T::Array[MetronomeSDK::Credit],
454
- discounts: T::Array[MetronomeSDK::Discount],
455
- netsuite_sales_order_id: String,
456
- professional_services: T::Array[MetronomeSDK::ProService],
457
- reseller_royalties:
458
- T::Array[
459
- MetronomeSDK::Models::V1::ContractListResponse::Data::Amendment::ResellerRoyalty
460
- ],
461
- salesforce_opportunity_id: String
462
- }
463
- )
464
- end
465
- def to_hash
466
- end
467
-
468
- class ResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel
469
- OrHash =
470
- T.type_alias do
471
- T.any(
472
- MetronomeSDK::Models::V1::ContractListResponse::Data::Amendment::ResellerRoyalty,
473
- MetronomeSDK::Internal::AnyHash
474
- )
475
- end
476
-
477
- sig do
478
- returns(
479
- MetronomeSDK::Models::V1::ContractListResponse::Data::Amendment::ResellerRoyalty::ResellerType::TaggedSymbol
480
- )
481
- end
482
- attr_accessor :reseller_type
483
-
484
- sig { returns(T.nilable(String)) }
485
- attr_reader :aws_account_number
486
-
487
- sig { params(aws_account_number: String).void }
488
- attr_writer :aws_account_number
489
-
490
- sig { returns(T.nilable(String)) }
491
- attr_reader :aws_offer_id
492
-
493
- sig { params(aws_offer_id: String).void }
494
- attr_writer :aws_offer_id
495
-
496
- sig { returns(T.nilable(String)) }
497
- attr_reader :aws_payer_reference_id
498
-
499
- sig { params(aws_payer_reference_id: String).void }
500
- attr_writer :aws_payer_reference_id
501
-
502
- sig { returns(T.nilable(Time)) }
503
- attr_accessor :ending_before
504
-
505
- sig { returns(T.nilable(Float)) }
506
- attr_reader :fraction
507
-
508
- sig { params(fraction: Float).void }
509
- attr_writer :fraction
510
-
511
- sig { returns(T.nilable(String)) }
512
- attr_reader :gcp_account_id
513
-
514
- sig { params(gcp_account_id: String).void }
515
- attr_writer :gcp_account_id
516
-
517
- sig { returns(T.nilable(String)) }
518
- attr_reader :gcp_offer_id
519
-
520
- sig { params(gcp_offer_id: String).void }
521
- attr_writer :gcp_offer_id
522
-
523
- sig { returns(T.nilable(String)) }
524
- attr_reader :netsuite_reseller_id
525
-
526
- sig { params(netsuite_reseller_id: String).void }
527
- attr_writer :netsuite_reseller_id
528
-
529
- sig { returns(T.nilable(Float)) }
530
- attr_reader :reseller_contract_value
531
-
532
- sig { params(reseller_contract_value: Float).void }
533
- attr_writer :reseller_contract_value
534
-
535
- sig { returns(T.nilable(Time)) }
536
- attr_reader :starting_at
537
-
538
- sig { params(starting_at: Time).void }
539
- attr_writer :starting_at
540
-
541
- sig do
542
- params(
543
- reseller_type:
544
- MetronomeSDK::Models::V1::ContractListResponse::Data::Amendment::ResellerRoyalty::ResellerType::OrSymbol,
545
- aws_account_number: String,
546
- aws_offer_id: String,
547
- aws_payer_reference_id: String,
548
- ending_before: T.nilable(Time),
549
- fraction: Float,
550
- gcp_account_id: String,
551
- gcp_offer_id: String,
552
- netsuite_reseller_id: String,
553
- reseller_contract_value: Float,
554
- starting_at: Time
555
- ).returns(T.attached_class)
556
- end
557
- def self.new(
558
- reseller_type:,
559
- aws_account_number: nil,
560
- aws_offer_id: nil,
561
- aws_payer_reference_id: nil,
562
- ending_before: nil,
563
- fraction: nil,
564
- gcp_account_id: nil,
565
- gcp_offer_id: nil,
566
- netsuite_reseller_id: nil,
567
- reseller_contract_value: nil,
568
- starting_at: nil
569
- )
570
- end
571
-
572
- sig do
573
- override.returns(
574
- {
575
- reseller_type:
576
- MetronomeSDK::Models::V1::ContractListResponse::Data::Amendment::ResellerRoyalty::ResellerType::TaggedSymbol,
577
- aws_account_number: String,
578
- aws_offer_id: String,
579
- aws_payer_reference_id: String,
580
- ending_before: T.nilable(Time),
581
- fraction: Float,
582
- gcp_account_id: String,
583
- gcp_offer_id: String,
584
- netsuite_reseller_id: String,
585
- reseller_contract_value: Float,
586
- starting_at: Time
587
- }
588
- )
589
- end
590
- def to_hash
591
- end
592
-
593
- module ResellerType
594
- extend MetronomeSDK::Internal::Type::Enum
595
-
596
- TaggedSymbol =
597
- T.type_alias do
598
- T.all(
599
- Symbol,
600
- MetronomeSDK::Models::V1::ContractListResponse::Data::Amendment::ResellerRoyalty::ResellerType
601
- )
602
- end
603
- OrSymbol = T.type_alias { T.any(Symbol, String) }
604
-
605
- AWS =
606
- T.let(
607
- :AWS,
608
- MetronomeSDK::Models::V1::ContractListResponse::Data::Amendment::ResellerRoyalty::ResellerType::TaggedSymbol
609
- )
610
- AWS_PRO_SERVICE =
611
- T.let(
612
- :AWS_PRO_SERVICE,
613
- MetronomeSDK::Models::V1::ContractListResponse::Data::Amendment::ResellerRoyalty::ResellerType::TaggedSymbol
614
- )
615
- GCP =
616
- T.let(
617
- :GCP,
618
- MetronomeSDK::Models::V1::ContractListResponse::Data::Amendment::ResellerRoyalty::ResellerType::TaggedSymbol
619
- )
620
- GCP_PRO_SERVICE =
621
- T.let(
622
- :GCP_PRO_SERVICE,
623
- MetronomeSDK::Models::V1::ContractListResponse::Data::Amendment::ResellerRoyalty::ResellerType::TaggedSymbol
624
- )
625
-
626
- sig do
627
- override.returns(
628
- T::Array[
629
- MetronomeSDK::Models::V1::ContractListResponse::Data::Amendment::ResellerRoyalty::ResellerType::TaggedSymbol
630
- ]
631
- )
632
- end
633
- def self.values
634
- end
635
- end
636
- end
637
- end
638
-
639
- class CustomerBillingProviderConfiguration < MetronomeSDK::Internal::Type::BaseModel
640
- OrHash =
641
- T.type_alias do
642
- T.any(
643
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration,
644
- MetronomeSDK::Internal::AnyHash
645
- )
646
- end
647
-
648
- sig do
649
- returns(
650
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
651
- )
652
- end
653
- attr_accessor :billing_provider
654
-
655
- sig do
656
- returns(
657
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol
658
- )
659
- end
660
- attr_accessor :delivery_method
661
-
662
- sig { returns(T.nilable(String)) }
663
- attr_reader :id
664
-
665
- sig { params(id: String).void }
666
- attr_writer :id
667
-
668
- # Configuration for the billing provider. The structure of this object is specific
669
- # to the billing provider.
670
- sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
671
- attr_reader :configuration
672
-
673
- sig { params(configuration: T::Hash[Symbol, T.anything]).void }
674
- attr_writer :configuration
675
-
676
- # The billing provider configuration associated with a contract.
677
- sig do
678
- params(
679
- billing_provider:
680
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::BillingProvider::OrSymbol,
681
- delivery_method:
682
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::DeliveryMethod::OrSymbol,
683
- id: String,
684
- configuration: T::Hash[Symbol, T.anything]
685
- ).returns(T.attached_class)
686
- end
687
- def self.new(
688
- billing_provider:,
689
- delivery_method:,
690
- id: nil,
691
- # Configuration for the billing provider. The structure of this object is specific
692
- # to the billing provider.
693
- configuration: nil
694
- )
695
- end
696
-
697
- sig do
698
- override.returns(
699
- {
700
- billing_provider:
701
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol,
702
- delivery_method:
703
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol,
704
- id: String,
705
- configuration: T::Hash[Symbol, T.anything]
706
- }
707
- )
708
- end
709
- def to_hash
710
- end
711
-
712
- module BillingProvider
713
- extend MetronomeSDK::Internal::Type::Enum
714
-
715
- TaggedSymbol =
716
- T.type_alias do
717
- T.all(
718
- Symbol,
719
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::BillingProvider
720
- )
721
- end
722
- OrSymbol = T.type_alias { T.any(Symbol, String) }
723
-
724
- AWS_MARKETPLACE =
725
- T.let(
726
- :aws_marketplace,
727
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
728
- )
729
- STRIPE =
730
- T.let(
731
- :stripe,
732
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
733
- )
734
- NETSUITE =
735
- T.let(
736
- :netsuite,
737
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
738
- )
739
- CUSTOM =
740
- T.let(
741
- :custom,
742
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
743
- )
744
- AZURE_MARKETPLACE =
745
- T.let(
746
- :azure_marketplace,
747
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
748
- )
749
- QUICKBOOKS_ONLINE =
750
- T.let(
751
- :quickbooks_online,
752
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
753
- )
754
- WORKDAY =
755
- T.let(
756
- :workday,
757
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
758
- )
759
- GCP_MARKETPLACE =
760
- T.let(
761
- :gcp_marketplace,
762
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
763
- )
764
-
765
- sig do
766
- override.returns(
767
- T::Array[
768
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
769
- ]
770
- )
771
- end
772
- def self.values
773
- end
774
- end
775
-
776
- module DeliveryMethod
777
- extend MetronomeSDK::Internal::Type::Enum
778
-
779
- TaggedSymbol =
780
- T.type_alias do
781
- T.all(
782
- Symbol,
783
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::DeliveryMethod
784
- )
785
- end
786
- OrSymbol = T.type_alias { T.any(Symbol, String) }
787
-
788
- DIRECT_TO_BILLING_PROVIDER =
789
- T.let(
790
- :direct_to_billing_provider,
791
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol
792
- )
793
- AWS_SQS =
794
- T.let(
795
- :aws_sqs,
796
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol
797
- )
798
- TACKLE =
799
- T.let(
800
- :tackle,
801
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol
802
- )
803
- AWS_SNS =
804
- T.let(
805
- :aws_sns,
806
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol
807
- )
808
-
809
- sig do
810
- override.returns(
811
- T::Array[
812
- MetronomeSDK::Models::V1::ContractListResponse::Data::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol
813
- ]
814
- )
815
- end
816
- def self.values
817
- end
818
- end
819
- end
820
-
821
- class PrepaidBalanceThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
822
- OrHash =
823
- T.type_alias do
824
- T.any(
825
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration,
826
- MetronomeSDK::Internal::AnyHash
827
- )
828
- end
829
-
830
- sig do
831
- returns(
832
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::Commit
833
- )
834
- end
835
- attr_reader :commit
836
-
837
- sig do
838
- params(
839
- commit:
840
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::Commit::OrHash
841
- ).void
842
- end
843
- attr_writer :commit
844
-
845
- # When set to false, the contract will not be evaluated against the
846
- # threshold_amount. Toggling to true will result an immediate evaluation,
847
- # regardless of prior state.
848
- sig { returns(T::Boolean) }
849
- attr_accessor :is_enabled
850
-
851
- sig do
852
- returns(
853
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig
854
- )
855
- end
856
- attr_reader :payment_gate_config
857
-
858
- sig do
859
- params(
860
- payment_gate_config:
861
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::OrHash
862
- ).void
863
- end
864
- attr_writer :payment_gate_config
865
-
866
- # Specify the amount the balance should be recharged to.
867
- sig { returns(Float) }
868
- attr_accessor :recharge_to_amount
869
-
870
- # Specify the threshold amount for the contract. Each time the contract's prepaid
871
- # balance lowers to this amount, a threshold charge will be initiated.
872
- sig { returns(Float) }
873
- attr_accessor :threshold_amount
874
-
875
- # If provided, the threshold, recharge-to amount, and the resulting threshold
876
- # commit amount will be in terms of this credit type instead of the fiat currency.
877
- sig { returns(T.nilable(String)) }
878
- attr_reader :custom_credit_type_id
879
-
880
- sig { params(custom_credit_type_id: String).void }
881
- attr_writer :custom_credit_type_id
882
-
883
- sig do
884
- params(
885
- commit:
886
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::Commit::OrHash,
887
- is_enabled: T::Boolean,
888
- payment_gate_config:
889
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::OrHash,
890
- recharge_to_amount: Float,
891
- threshold_amount: Float,
892
- custom_credit_type_id: String
893
- ).returns(T.attached_class)
894
- end
895
- def self.new(
896
- commit:,
897
- # When set to false, the contract will not be evaluated against the
898
- # threshold_amount. Toggling to true will result an immediate evaluation,
899
- # regardless of prior state.
900
- is_enabled:,
901
- payment_gate_config:,
902
- # Specify the amount the balance should be recharged to.
903
- recharge_to_amount:,
904
- # Specify the threshold amount for the contract. Each time the contract's prepaid
905
- # balance lowers to this amount, a threshold charge will be initiated.
906
- threshold_amount:,
907
- # If provided, the threshold, recharge-to amount, and the resulting threshold
908
- # commit amount will be in terms of this credit type instead of the fiat currency.
909
- custom_credit_type_id: nil
910
- )
911
- end
912
-
913
- sig do
914
- override.returns(
915
- {
916
- commit:
917
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::Commit,
918
- is_enabled: T::Boolean,
919
- payment_gate_config:
920
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig,
921
- recharge_to_amount: Float,
922
- threshold_amount: Float,
923
- custom_credit_type_id: String
924
- }
925
- )
926
- end
927
- def to_hash
928
- end
929
-
930
- class Commit < MetronomeSDK::Internal::Type::BaseModel
931
- OrHash =
932
- T.type_alias do
933
- T.any(
934
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::Commit,
935
- MetronomeSDK::Internal::AnyHash
936
- )
937
- end
938
-
939
- # The commit product that will be used to generate the line item for commit
940
- # payment.
941
- sig { returns(String) }
942
- attr_accessor :product_id
943
-
944
- # Which products the threshold commit applies to. If applicable_product_ids,
945
- # applicable_product_tags or specifiers are not provided, the commit applies to
946
- # all products.
947
- sig { returns(T.nilable(T::Array[String])) }
948
- attr_reader :applicable_product_ids
949
-
950
- sig { params(applicable_product_ids: T::Array[String]).void }
951
- attr_writer :applicable_product_ids
952
-
953
- # Which tags the threshold commit applies to. If applicable_product_ids,
954
- # applicable_product_tags or specifiers are not provided, the commit applies to
955
- # all products.
956
- sig { returns(T.nilable(T::Array[String])) }
957
- attr_reader :applicable_product_tags
958
-
959
- sig { params(applicable_product_tags: T::Array[String]).void }
960
- attr_writer :applicable_product_tags
961
-
962
- sig { returns(T.nilable(String)) }
963
- attr_reader :description
964
-
965
- sig { params(description: String).void }
966
- attr_writer :description
967
-
968
- # Specify the name of the line item for the threshold charge. If left blank, it
969
- # will default to the commit product name.
970
- sig { returns(T.nilable(String)) }
971
- attr_reader :name
972
-
973
- sig { params(name: String).void }
974
- attr_writer :name
975
-
976
- # List of filters that determine what kind of customer usage draws down a commit
977
- # or credit. A customer's usage needs to meet the condition of at least one of the
978
- # specifiers to contribute to a commit's or credit's drawdown. This field cannot
979
- # be used together with `applicable_product_ids` or `applicable_product_tags`.
980
- sig do
981
- returns(
982
- T.nilable(
983
- T::Array[
984
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::Commit::Specifier
985
- ]
986
- )
987
- )
988
- end
989
- attr_reader :specifiers
990
-
991
- sig do
992
- params(
993
- specifiers:
994
- T::Array[
995
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::Commit::Specifier::OrHash
996
- ]
997
- ).void
998
- end
999
- attr_writer :specifiers
1000
-
1001
- sig do
1002
- params(
1003
- product_id: String,
1004
- applicable_product_ids: T::Array[String],
1005
- applicable_product_tags: T::Array[String],
1006
- description: String,
1007
- name: String,
1008
- specifiers:
1009
- T::Array[
1010
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::Commit::Specifier::OrHash
1011
- ]
1012
- ).returns(T.attached_class)
1013
- end
1014
- def self.new(
1015
- # The commit product that will be used to generate the line item for commit
1016
- # payment.
1017
- product_id:,
1018
- # Which products the threshold commit applies to. If applicable_product_ids,
1019
- # applicable_product_tags or specifiers are not provided, the commit applies to
1020
- # all products.
1021
- applicable_product_ids: nil,
1022
- # Which tags the threshold commit applies to. If applicable_product_ids,
1023
- # applicable_product_tags or specifiers are not provided, the commit applies to
1024
- # all products.
1025
- applicable_product_tags: nil,
1026
- description: nil,
1027
- # Specify the name of the line item for the threshold charge. If left blank, it
1028
- # will default to the commit product name.
1029
- name: nil,
1030
- # List of filters that determine what kind of customer usage draws down a commit
1031
- # or credit. A customer's usage needs to meet the condition of at least one of the
1032
- # specifiers to contribute to a commit's or credit's drawdown. This field cannot
1033
- # be used together with `applicable_product_ids` or `applicable_product_tags`.
1034
- specifiers: nil
1035
- )
1036
- end
1037
-
1038
- sig do
1039
- override.returns(
1040
- {
1041
- product_id: String,
1042
- applicable_product_ids: T::Array[String],
1043
- applicable_product_tags: T::Array[String],
1044
- description: String,
1045
- name: String,
1046
- specifiers:
1047
- T::Array[
1048
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::Commit::Specifier
1049
- ]
1050
- }
1051
- )
1052
- end
1053
- def to_hash
1054
- end
1055
-
1056
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
1057
- OrHash =
1058
- T.type_alias do
1059
- T.any(
1060
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::Commit::Specifier,
1061
- MetronomeSDK::Internal::AnyHash
1062
- )
1063
- end
1064
-
1065
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
1066
- attr_reader :presentation_group_values
1067
-
1068
- sig do
1069
- params(
1070
- presentation_group_values: T::Hash[Symbol, String]
1071
- ).void
1072
- end
1073
- attr_writer :presentation_group_values
1074
-
1075
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
1076
- attr_reader :pricing_group_values
1077
-
1078
- sig do
1079
- params(pricing_group_values: T::Hash[Symbol, String]).void
1080
- end
1081
- attr_writer :pricing_group_values
1082
-
1083
- # If provided, the specifier will only apply to the product with the specified ID.
1084
- sig { returns(T.nilable(String)) }
1085
- attr_reader :product_id
1086
-
1087
- sig { params(product_id: String).void }
1088
- attr_writer :product_id
1089
-
1090
- # If provided, the specifier will only apply to products with all the specified
1091
- # tags.
1092
- sig { returns(T.nilable(T::Array[String])) }
1093
- attr_reader :product_tags
1094
-
1095
- sig { params(product_tags: T::Array[String]).void }
1096
- attr_writer :product_tags
1097
-
1098
- sig do
1099
- params(
1100
- presentation_group_values: T::Hash[Symbol, String],
1101
- pricing_group_values: T::Hash[Symbol, String],
1102
- product_id: String,
1103
- product_tags: T::Array[String]
1104
- ).returns(T.attached_class)
1105
- end
1106
- def self.new(
1107
- presentation_group_values: nil,
1108
- pricing_group_values: nil,
1109
- # If provided, the specifier will only apply to the product with the specified ID.
1110
- product_id: nil,
1111
- # If provided, the specifier will only apply to products with all the specified
1112
- # tags.
1113
- product_tags: nil
1114
- )
1115
- end
1116
-
1117
- sig do
1118
- override.returns(
1119
- {
1120
- presentation_group_values: T::Hash[Symbol, String],
1121
- pricing_group_values: T::Hash[Symbol, String],
1122
- product_id: String,
1123
- product_tags: T::Array[String]
1124
- }
1125
- )
1126
- end
1127
- def to_hash
1128
- end
1129
- end
1130
- end
1131
-
1132
- class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
1133
- OrHash =
1134
- T.type_alias do
1135
- T.any(
1136
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig,
1137
- MetronomeSDK::Internal::AnyHash
1138
- )
1139
- end
1140
-
1141
- # Gate access to the commit balance based on successful collection of payment.
1142
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
1143
- # facilitate payment using your own payment integration. Select NONE if you do not
1144
- # wish to payment gate the commit balance.
1145
- sig do
1146
- returns(
1147
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::TaggedSymbol
1148
- )
1149
- end
1150
- attr_accessor :payment_gate_type
1151
-
1152
- # Only applicable if using PRECALCULATED as your tax type.
1153
- sig do
1154
- returns(
1155
- T.nilable(
1156
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
1157
- )
1158
- )
1159
- end
1160
- attr_reader :precalculated_tax_config
1161
-
1162
- sig do
1163
- params(
1164
- precalculated_tax_config:
1165
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
1166
- ).void
1167
- end
1168
- attr_writer :precalculated_tax_config
1169
-
1170
- # Only applicable if using STRIPE as your payment gate type.
1171
- sig do
1172
- returns(
1173
- T.nilable(
1174
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig
1175
- )
1176
- )
1177
- end
1178
- attr_reader :stripe_config
1179
-
1180
- sig do
1181
- params(
1182
- stripe_config:
1183
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash
1184
- ).void
1185
- end
1186
- attr_writer :stripe_config
1187
-
1188
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
1189
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
1190
- # will default to NONE.
1191
- sig do
1192
- returns(
1193
- T.nilable(
1194
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
1195
- )
1196
- )
1197
- end
1198
- attr_reader :tax_type
1199
-
1200
- sig do
1201
- params(
1202
- tax_type:
1203
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::OrSymbol
1204
- ).void
1205
- end
1206
- attr_writer :tax_type
1207
-
1208
- sig do
1209
- params(
1210
- payment_gate_type:
1211
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
1212
- precalculated_tax_config:
1213
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
1214
- stripe_config:
1215
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash,
1216
- tax_type:
1217
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::OrSymbol
1218
- ).returns(T.attached_class)
1219
- end
1220
- def self.new(
1221
- # Gate access to the commit balance based on successful collection of payment.
1222
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
1223
- # facilitate payment using your own payment integration. Select NONE if you do not
1224
- # wish to payment gate the commit balance.
1225
- payment_gate_type:,
1226
- # Only applicable if using PRECALCULATED as your tax type.
1227
- precalculated_tax_config: nil,
1228
- # Only applicable if using STRIPE as your payment gate type.
1229
- stripe_config: nil,
1230
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
1231
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
1232
- # will default to NONE.
1233
- tax_type: nil
1234
- )
1235
- end
1236
-
1237
- sig do
1238
- override.returns(
1239
- {
1240
- payment_gate_type:
1241
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::TaggedSymbol,
1242
- precalculated_tax_config:
1243
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
1244
- stripe_config:
1245
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig,
1246
- tax_type:
1247
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
1248
- }
1249
- )
1250
- end
1251
- def to_hash
1252
- end
1253
-
1254
- # Gate access to the commit balance based on successful collection of payment.
1255
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
1256
- # facilitate payment using your own payment integration. Select NONE if you do not
1257
- # wish to payment gate the commit balance.
1258
- module PaymentGateType
1259
- extend MetronomeSDK::Internal::Type::Enum
1260
-
1261
- TaggedSymbol =
1262
- T.type_alias do
1263
- T.all(
1264
- Symbol,
1265
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType
1266
- )
1267
- end
1268
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1269
-
1270
- NONE =
1271
- T.let(
1272
- :NONE,
1273
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::TaggedSymbol
1274
- )
1275
- STRIPE =
1276
- T.let(
1277
- :STRIPE,
1278
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::TaggedSymbol
1279
- )
1280
- EXTERNAL =
1281
- T.let(
1282
- :EXTERNAL,
1283
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::TaggedSymbol
1284
- )
1285
-
1286
- sig do
1287
- override.returns(
1288
- T::Array[
1289
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PaymentGateType::TaggedSymbol
1290
- ]
1291
- )
1292
- end
1293
- def self.values
1294
- end
1295
- end
1296
-
1297
- class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
1298
- OrHash =
1299
- T.type_alias do
1300
- T.any(
1301
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
1302
- MetronomeSDK::Internal::AnyHash
1303
- )
1304
- end
1305
-
1306
- # Amount of tax to be applied. This should be in the same currency and
1307
- # denomination as the commit's invoice schedule
1308
- sig { returns(Float) }
1309
- attr_accessor :tax_amount
1310
-
1311
- # Name of the tax to be applied. This may be used in an invoice line item
1312
- # description.
1313
- sig { returns(T.nilable(String)) }
1314
- attr_reader :tax_name
1315
-
1316
- sig { params(tax_name: String).void }
1317
- attr_writer :tax_name
1318
-
1319
- # Only applicable if using PRECALCULATED as your tax type.
1320
- sig do
1321
- params(tax_amount: Float, tax_name: String).returns(
1322
- T.attached_class
1323
- )
1324
- end
1325
- def self.new(
1326
- # Amount of tax to be applied. This should be in the same currency and
1327
- # denomination as the commit's invoice schedule
1328
- tax_amount:,
1329
- # Name of the tax to be applied. This may be used in an invoice line item
1330
- # description.
1331
- tax_name: nil
1332
- )
1333
- end
1334
-
1335
- sig do
1336
- override.returns({ tax_amount: Float, tax_name: String })
1337
- end
1338
- def to_hash
1339
- end
1340
- end
1341
-
1342
- class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
1343
- OrHash =
1344
- T.type_alias do
1345
- T.any(
1346
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig,
1347
- MetronomeSDK::Internal::AnyHash
1348
- )
1349
- end
1350
-
1351
- # If left blank, will default to INVOICE
1352
- sig do
1353
- returns(
1354
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol
1355
- )
1356
- end
1357
- attr_accessor :payment_type
1358
-
1359
- # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
1360
- # your payment type.
1361
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
1362
- attr_reader :invoice_metadata
1363
-
1364
- sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
1365
- attr_writer :invoice_metadata
1366
-
1367
- # Only applicable if using STRIPE as your payment gate type.
1368
- sig do
1369
- params(
1370
- payment_type:
1371
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
1372
- invoice_metadata: T::Hash[Symbol, String]
1373
- ).returns(T.attached_class)
1374
- end
1375
- def self.new(
1376
- # If left blank, will default to INVOICE
1377
- payment_type:,
1378
- # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
1379
- # your payment type.
1380
- invoice_metadata: nil
1381
- )
1382
- end
1383
-
1384
- sig do
1385
- override.returns(
1386
- {
1387
- payment_type:
1388
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol,
1389
- invoice_metadata: T::Hash[Symbol, String]
1390
- }
1391
- )
1392
- end
1393
- def to_hash
1394
- end
1395
-
1396
- # If left blank, will default to INVOICE
1397
- module PaymentType
1398
- extend MetronomeSDK::Internal::Type::Enum
1399
-
1400
- TaggedSymbol =
1401
- T.type_alias do
1402
- T.all(
1403
- Symbol,
1404
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
1405
- )
1406
- end
1407
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1408
-
1409
- INVOICE =
1410
- T.let(
1411
- :INVOICE,
1412
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol
1413
- )
1414
- PAYMENT_INTENT =
1415
- T.let(
1416
- :PAYMENT_INTENT,
1417
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol
1418
- )
1419
-
1420
- sig do
1421
- override.returns(
1422
- T::Array[
1423
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol
1424
- ]
1425
- )
1426
- end
1427
- def self.values
1428
- end
1429
- end
1430
- end
1431
-
1432
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
1433
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
1434
- # will default to NONE.
1435
- module TaxType
1436
- extend MetronomeSDK::Internal::Type::Enum
1437
-
1438
- TaggedSymbol =
1439
- T.type_alias do
1440
- T.all(
1441
- Symbol,
1442
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType
1443
- )
1444
- end
1445
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1446
-
1447
- NONE =
1448
- T.let(
1449
- :NONE,
1450
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
1451
- )
1452
- STRIPE =
1453
- T.let(
1454
- :STRIPE,
1455
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
1456
- )
1457
- ANROK =
1458
- T.let(
1459
- :ANROK,
1460
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
1461
- )
1462
- PRECALCULATED =
1463
- T.let(
1464
- :PRECALCULATED,
1465
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
1466
- )
1467
-
1468
- sig do
1469
- override.returns(
1470
- T::Array[
1471
- MetronomeSDK::Models::V1::ContractListResponse::Data::PrepaidBalanceThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
1472
- ]
1473
- )
1474
- end
1475
- def self.values
1476
- end
1477
- end
1478
- end
1479
- end
1480
-
1481
- # Determines which scheduled and commit charges to consolidate onto the Contract's
1482
- # usage invoice. The charge's `timestamp` must match the usage invoice's
1483
- # `ending_before` date for consolidation to occur. This field cannot be modified
1484
- # after a Contract has been created. If this field is omitted, charges will appear
1485
- # on a separate invoice from usage charges.
1486
- module ScheduledChargesOnUsageInvoices
1487
- extend MetronomeSDK::Internal::Type::Enum
1488
-
1489
- TaggedSymbol =
1490
- T.type_alias do
1491
- T.all(
1492
- Symbol,
1493
- MetronomeSDK::Models::V1::ContractListResponse::Data::ScheduledChargesOnUsageInvoices
1494
- )
1495
- end
1496
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1497
-
1498
- ALL =
1499
- T.let(
1500
- :ALL,
1501
- MetronomeSDK::Models::V1::ContractListResponse::Data::ScheduledChargesOnUsageInvoices::TaggedSymbol
1502
- )
1503
-
1504
- sig do
1505
- override.returns(
1506
- T::Array[
1507
- MetronomeSDK::Models::V1::ContractListResponse::Data::ScheduledChargesOnUsageInvoices::TaggedSymbol
1508
- ]
1509
- )
1510
- end
1511
- def self.values
1512
- end
1513
- end
1514
-
1515
- class SpendThresholdConfiguration < MetronomeSDK::Internal::Type::BaseModel
1516
- OrHash =
1517
- T.type_alias do
1518
- T.any(
1519
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration,
1520
- MetronomeSDK::Internal::AnyHash
1521
- )
1522
- end
1523
-
1524
- sig do
1525
- returns(
1526
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::Commit
1527
- )
1528
- end
1529
- attr_reader :commit
1530
-
1531
- sig do
1532
- params(
1533
- commit:
1534
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::Commit::OrHash
1535
- ).void
1536
- end
1537
- attr_writer :commit
1538
-
1539
- # When set to false, the contract will not be evaluated against the
1540
- # threshold_amount. Toggling to true will result an immediate evaluation,
1541
- # regardless of prior state.
1542
- sig { returns(T::Boolean) }
1543
- attr_accessor :is_enabled
1544
-
1545
- sig do
1546
- returns(
1547
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig
1548
- )
1549
- end
1550
- attr_reader :payment_gate_config
1551
-
1552
- sig do
1553
- params(
1554
- payment_gate_config:
1555
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::OrHash
1556
- ).void
1557
- end
1558
- attr_writer :payment_gate_config
1559
-
1560
- # Specify the threshold amount for the contract. Each time the contract's usage
1561
- # hits this amount, a threshold charge will be initiated.
1562
- sig { returns(Float) }
1563
- attr_accessor :threshold_amount
1564
-
1565
- sig do
1566
- params(
1567
- commit:
1568
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::Commit::OrHash,
1569
- is_enabled: T::Boolean,
1570
- payment_gate_config:
1571
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::OrHash,
1572
- threshold_amount: Float
1573
- ).returns(T.attached_class)
1574
- end
1575
- def self.new(
1576
- commit:,
1577
- # When set to false, the contract will not be evaluated against the
1578
- # threshold_amount. Toggling to true will result an immediate evaluation,
1579
- # regardless of prior state.
1580
- is_enabled:,
1581
- payment_gate_config:,
1582
- # Specify the threshold amount for the contract. Each time the contract's usage
1583
- # hits this amount, a threshold charge will be initiated.
1584
- threshold_amount:
1585
- )
1586
- end
1587
-
1588
- sig do
1589
- override.returns(
1590
- {
1591
- commit:
1592
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::Commit,
1593
- is_enabled: T::Boolean,
1594
- payment_gate_config:
1595
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig,
1596
- threshold_amount: Float
1597
- }
1598
- )
1599
- end
1600
- def to_hash
1601
- end
1602
-
1603
- class Commit < MetronomeSDK::Internal::Type::BaseModel
1604
- OrHash =
1605
- T.type_alias do
1606
- T.any(
1607
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::Commit,
1608
- MetronomeSDK::Internal::AnyHash
1609
- )
1610
- end
1611
-
1612
- # The commit product that will be used to generate the line item for commit
1613
- # payment.
1614
- sig { returns(String) }
1615
- attr_accessor :product_id
1616
-
1617
- sig { returns(T.nilable(String)) }
1618
- attr_reader :description
1619
-
1620
- sig { params(description: String).void }
1621
- attr_writer :description
1622
-
1623
- # Specify the name of the line item for the threshold charge. If left blank, it
1624
- # will default to the commit product name.
1625
- sig { returns(T.nilable(String)) }
1626
- attr_reader :name
1627
-
1628
- sig { params(name: String).void }
1629
- attr_writer :name
1630
-
1631
- sig do
1632
- params(
1633
- product_id: String,
1634
- description: String,
1635
- name: String
1636
- ).returns(T.attached_class)
1637
- end
1638
- def self.new(
1639
- # The commit product that will be used to generate the line item for commit
1640
- # payment.
1641
- product_id:,
1642
- description: nil,
1643
- # Specify the name of the line item for the threshold charge. If left blank, it
1644
- # will default to the commit product name.
1645
- name: nil
1646
- )
1647
- end
1648
-
1649
- sig do
1650
- override.returns(
1651
- { product_id: String, description: String, name: String }
1652
- )
1653
- end
1654
- def to_hash
1655
- end
1656
- end
1657
-
1658
- class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
1659
- OrHash =
1660
- T.type_alias do
1661
- T.any(
1662
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig,
1663
- MetronomeSDK::Internal::AnyHash
1664
- )
1665
- end
1666
-
1667
- # Gate access to the commit balance based on successful collection of payment.
1668
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
1669
- # facilitate payment using your own payment integration. Select NONE if you do not
1670
- # wish to payment gate the commit balance.
1671
- sig do
1672
- returns(
1673
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::TaggedSymbol
1674
- )
1675
- end
1676
- attr_accessor :payment_gate_type
1677
-
1678
- # Only applicable if using PRECALCULATED as your tax type.
1679
- sig do
1680
- returns(
1681
- T.nilable(
1682
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig
1683
- )
1684
- )
1685
- end
1686
- attr_reader :precalculated_tax_config
1687
-
1688
- sig do
1689
- params(
1690
- precalculated_tax_config:
1691
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash
1692
- ).void
1693
- end
1694
- attr_writer :precalculated_tax_config
1695
-
1696
- # Only applicable if using STRIPE as your payment gate type.
1697
- sig do
1698
- returns(
1699
- T.nilable(
1700
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig
1701
- )
1702
- )
1703
- end
1704
- attr_reader :stripe_config
1705
-
1706
- sig do
1707
- params(
1708
- stripe_config:
1709
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash
1710
- ).void
1711
- end
1712
- attr_writer :stripe_config
1713
-
1714
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
1715
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
1716
- # will default to NONE.
1717
- sig do
1718
- returns(
1719
- T.nilable(
1720
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
1721
- )
1722
- )
1723
- end
1724
- attr_reader :tax_type
1725
-
1726
- sig do
1727
- params(
1728
- tax_type:
1729
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::TaxType::OrSymbol
1730
- ).void
1731
- end
1732
- attr_writer :tax_type
1733
-
1734
- sig do
1735
- params(
1736
- payment_gate_type:
1737
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::OrSymbol,
1738
- precalculated_tax_config:
1739
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig::OrHash,
1740
- stripe_config:
1741
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::OrHash,
1742
- tax_type:
1743
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::TaxType::OrSymbol
1744
- ).returns(T.attached_class)
1745
- end
1746
- def self.new(
1747
- # Gate access to the commit balance based on successful collection of payment.
1748
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
1749
- # facilitate payment using your own payment integration. Select NONE if you do not
1750
- # wish to payment gate the commit balance.
1751
- payment_gate_type:,
1752
- # Only applicable if using PRECALCULATED as your tax type.
1753
- precalculated_tax_config: nil,
1754
- # Only applicable if using STRIPE as your payment gate type.
1755
- stripe_config: nil,
1756
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
1757
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
1758
- # will default to NONE.
1759
- tax_type: nil
1760
- )
1761
- end
1762
-
1763
- sig do
1764
- override.returns(
1765
- {
1766
- payment_gate_type:
1767
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::TaggedSymbol,
1768
- precalculated_tax_config:
1769
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
1770
- stripe_config:
1771
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig,
1772
- tax_type:
1773
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
1774
- }
1775
- )
1776
- end
1777
- def to_hash
1778
- end
1779
-
1780
- # Gate access to the commit balance based on successful collection of payment.
1781
- # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
1782
- # facilitate payment using your own payment integration. Select NONE if you do not
1783
- # wish to payment gate the commit balance.
1784
- module PaymentGateType
1785
- extend MetronomeSDK::Internal::Type::Enum
1786
-
1787
- TaggedSymbol =
1788
- T.type_alias do
1789
- T.all(
1790
- Symbol,
1791
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType
1792
- )
1793
- end
1794
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1795
-
1796
- NONE =
1797
- T.let(
1798
- :NONE,
1799
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::TaggedSymbol
1800
- )
1801
- STRIPE =
1802
- T.let(
1803
- :STRIPE,
1804
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::TaggedSymbol
1805
- )
1806
- EXTERNAL =
1807
- T.let(
1808
- :EXTERNAL,
1809
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::TaggedSymbol
1810
- )
1811
-
1812
- sig do
1813
- override.returns(
1814
- T::Array[
1815
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PaymentGateType::TaggedSymbol
1816
- ]
1817
- )
1818
- end
1819
- def self.values
1820
- end
1821
- end
1822
-
1823
- class PrecalculatedTaxConfig < MetronomeSDK::Internal::Type::BaseModel
1824
- OrHash =
1825
- T.type_alias do
1826
- T.any(
1827
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::PrecalculatedTaxConfig,
1828
- MetronomeSDK::Internal::AnyHash
1829
- )
1830
- end
1831
-
1832
- # Amount of tax to be applied. This should be in the same currency and
1833
- # denomination as the commit's invoice schedule
1834
- sig { returns(Float) }
1835
- attr_accessor :tax_amount
1836
-
1837
- # Name of the tax to be applied. This may be used in an invoice line item
1838
- # description.
1839
- sig { returns(T.nilable(String)) }
1840
- attr_reader :tax_name
1841
-
1842
- sig { params(tax_name: String).void }
1843
- attr_writer :tax_name
1844
-
1845
- # Only applicable if using PRECALCULATED as your tax type.
1846
- sig do
1847
- params(tax_amount: Float, tax_name: String).returns(
1848
- T.attached_class
1849
- )
1850
- end
1851
- def self.new(
1852
- # Amount of tax to be applied. This should be in the same currency and
1853
- # denomination as the commit's invoice schedule
1854
- tax_amount:,
1855
- # Name of the tax to be applied. This may be used in an invoice line item
1856
- # description.
1857
- tax_name: nil
1858
- )
1859
- end
1860
-
1861
- sig do
1862
- override.returns({ tax_amount: Float, tax_name: String })
1863
- end
1864
- def to_hash
1865
- end
1866
- end
1867
-
1868
- class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
1869
- OrHash =
1870
- T.type_alias do
1871
- T.any(
1872
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig,
1873
- MetronomeSDK::Internal::AnyHash
1874
- )
1875
- end
1876
-
1877
- # If left blank, will default to INVOICE
1878
- sig do
1879
- returns(
1880
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol
1881
- )
1882
- end
1883
- attr_accessor :payment_type
1884
-
1885
- # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
1886
- # your payment type.
1887
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
1888
- attr_reader :invoice_metadata
1889
-
1890
- sig { params(invoice_metadata: T::Hash[Symbol, String]).void }
1891
- attr_writer :invoice_metadata
1892
-
1893
- # Only applicable if using STRIPE as your payment gate type.
1894
- sig do
1895
- params(
1896
- payment_type:
1897
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol,
1898
- invoice_metadata: T::Hash[Symbol, String]
1899
- ).returns(T.attached_class)
1900
- end
1901
- def self.new(
1902
- # If left blank, will default to INVOICE
1903
- payment_type:,
1904
- # Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
1905
- # your payment type.
1906
- invoice_metadata: nil
1907
- )
1908
- end
1909
-
1910
- sig do
1911
- override.returns(
1912
- {
1913
- payment_type:
1914
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol,
1915
- invoice_metadata: T::Hash[Symbol, String]
1916
- }
1917
- )
1918
- end
1919
- def to_hash
1920
- end
1921
-
1922
- # If left blank, will default to INVOICE
1923
- module PaymentType
1924
- extend MetronomeSDK::Internal::Type::Enum
1925
-
1926
- TaggedSymbol =
1927
- T.type_alias do
1928
- T.all(
1929
- Symbol,
1930
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType
1931
- )
1932
- end
1933
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1934
-
1935
- INVOICE =
1936
- T.let(
1937
- :INVOICE,
1938
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol
1939
- )
1940
- PAYMENT_INTENT =
1941
- T.let(
1942
- :PAYMENT_INTENT,
1943
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol
1944
- )
1945
-
1946
- sig do
1947
- override.returns(
1948
- T::Array[
1949
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol
1950
- ]
1951
- )
1952
- end
1953
- def self.values
1954
- end
1955
- end
1956
- end
1957
-
1958
- # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
1959
- # not wish Metronome to calculate tax on your behalf. Leaving this field blank
1960
- # will default to NONE.
1961
- module TaxType
1962
- extend MetronomeSDK::Internal::Type::Enum
1963
-
1964
- TaggedSymbol =
1965
- T.type_alias do
1966
- T.all(
1967
- Symbol,
1968
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::TaxType
1969
- )
1970
- end
1971
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1972
-
1973
- NONE =
1974
- T.let(
1975
- :NONE,
1976
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
1977
- )
1978
- STRIPE =
1979
- T.let(
1980
- :STRIPE,
1981
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
1982
- )
1983
- ANROK =
1984
- T.let(
1985
- :ANROK,
1986
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
1987
- )
1988
- PRECALCULATED =
1989
- T.let(
1990
- :PRECALCULATED,
1991
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
1992
- )
1993
-
1994
- sig do
1995
- override.returns(
1996
- T::Array[
1997
- MetronomeSDK::Models::V1::ContractListResponse::Data::SpendThresholdConfiguration::PaymentGateConfig::TaxType::TaggedSymbol
1998
- ]
1999
- )
2000
- end
2001
- def self.values
2002
- end
2003
- end
2004
- end
2005
- end
2006
-
2007
- class Subscription < MetronomeSDK::Internal::Type::BaseModel
2008
- OrHash =
2009
- T.type_alias do
2010
- T.any(
2011
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription,
2012
- MetronomeSDK::Internal::AnyHash
2013
- )
2014
- end
2015
-
2016
- sig do
2017
- returns(
2018
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::CollectionSchedule::TaggedSymbol
2019
- )
2020
- end
2021
- attr_accessor :collection_schedule
2022
-
2023
- sig do
2024
- returns(
2025
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::Proration
2026
- )
2027
- end
2028
- attr_reader :proration
2029
-
2030
- sig do
2031
- params(
2032
- proration:
2033
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::Proration::OrHash
2034
- ).void
2035
- end
2036
- attr_writer :proration
2037
-
2038
- # List of quantity schedule items for the subscription. Only includes the current
2039
- # quantity and future quantity changes.
2040
- sig do
2041
- returns(
2042
- T::Array[
2043
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::QuantitySchedule
2044
- ]
2045
- )
2046
- end
2047
- attr_accessor :quantity_schedule
2048
-
2049
- sig { returns(Time) }
2050
- attr_accessor :starting_at
2051
-
2052
- sig do
2053
- returns(
2054
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::SubscriptionRate
2055
- )
2056
- end
2057
- attr_reader :subscription_rate
2058
-
2059
- sig do
2060
- params(
2061
- subscription_rate:
2062
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::SubscriptionRate::OrHash
2063
- ).void
2064
- end
2065
- attr_writer :subscription_rate
2066
-
2067
- sig { returns(T.nilable(String)) }
2068
- attr_reader :id
2069
-
2070
- sig { params(id: String).void }
2071
- attr_writer :id
2072
-
2073
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
2074
- attr_reader :custom_fields
2075
-
2076
- sig { params(custom_fields: T::Hash[Symbol, String]).void }
2077
- attr_writer :custom_fields
2078
-
2079
- sig { returns(T.nilable(String)) }
2080
- attr_reader :description
2081
-
2082
- sig { params(description: String).void }
2083
- attr_writer :description
2084
-
2085
- sig { returns(T.nilable(Time)) }
2086
- attr_reader :ending_before
2087
-
2088
- sig { params(ending_before: Time).void }
2089
- attr_writer :ending_before
2090
-
2091
- sig { returns(T.nilable(String)) }
2092
- attr_reader :fiat_credit_type_id
2093
-
2094
- sig { params(fiat_credit_type_id: String).void }
2095
- attr_writer :fiat_credit_type_id
2096
-
2097
- sig { returns(T.nilable(String)) }
2098
- attr_reader :name
2099
-
2100
- sig { params(name: String).void }
2101
- attr_writer :name
2102
-
2103
- sig do
2104
- params(
2105
- collection_schedule:
2106
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::CollectionSchedule::OrSymbol,
2107
- proration:
2108
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::Proration::OrHash,
2109
- quantity_schedule:
2110
- T::Array[
2111
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::QuantitySchedule::OrHash
2112
- ],
2113
- starting_at: Time,
2114
- subscription_rate:
2115
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::SubscriptionRate::OrHash,
2116
- id: String,
2117
- custom_fields: T::Hash[Symbol, String],
2118
- description: String,
2119
- ending_before: Time,
2120
- fiat_credit_type_id: String,
2121
- name: String
2122
- ).returns(T.attached_class)
2123
- end
2124
- def self.new(
2125
- collection_schedule:,
2126
- proration:,
2127
- # List of quantity schedule items for the subscription. Only includes the current
2128
- # quantity and future quantity changes.
2129
- quantity_schedule:,
2130
- starting_at:,
2131
- subscription_rate:,
2132
- id: nil,
2133
- custom_fields: nil,
2134
- description: nil,
2135
- ending_before: nil,
2136
- fiat_credit_type_id: nil,
2137
- name: nil
2138
- )
2139
- end
2140
-
2141
- sig do
2142
- override.returns(
2143
- {
2144
- collection_schedule:
2145
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::CollectionSchedule::TaggedSymbol,
2146
- proration:
2147
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::Proration,
2148
- quantity_schedule:
2149
- T::Array[
2150
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::QuantitySchedule
2151
- ],
2152
- starting_at: Time,
2153
- subscription_rate:
2154
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::SubscriptionRate,
2155
- id: String,
2156
- custom_fields: T::Hash[Symbol, String],
2157
- description: String,
2158
- ending_before: Time,
2159
- fiat_credit_type_id: String,
2160
- name: String
2161
- }
2162
- )
2163
- end
2164
- def to_hash
2165
- end
2166
-
2167
- module CollectionSchedule
2168
- extend MetronomeSDK::Internal::Type::Enum
2169
-
2170
- TaggedSymbol =
2171
- T.type_alias do
2172
- T.all(
2173
- Symbol,
2174
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::CollectionSchedule
2175
- )
2176
- end
2177
- OrSymbol = T.type_alias { T.any(Symbol, String) }
2178
-
2179
- ADVANCE =
2180
- T.let(
2181
- :ADVANCE,
2182
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::CollectionSchedule::TaggedSymbol
2183
- )
2184
- ARREARS =
2185
- T.let(
2186
- :ARREARS,
2187
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::CollectionSchedule::TaggedSymbol
2188
- )
2189
-
2190
- sig do
2191
- override.returns(
2192
- T::Array[
2193
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::CollectionSchedule::TaggedSymbol
2194
- ]
2195
- )
2196
- end
2197
- def self.values
2198
- end
2199
- end
2200
-
2201
- class Proration < MetronomeSDK::Internal::Type::BaseModel
2202
- OrHash =
2203
- T.type_alias do
2204
- T.any(
2205
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::Proration,
2206
- MetronomeSDK::Internal::AnyHash
2207
- )
2208
- end
2209
-
2210
- sig do
2211
- returns(
2212
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::Proration::InvoiceBehavior::TaggedSymbol
2213
- )
2214
- end
2215
- attr_accessor :invoice_behavior
2216
-
2217
- sig { returns(T::Boolean) }
2218
- attr_accessor :is_prorated
2219
-
2220
- sig do
2221
- params(
2222
- invoice_behavior:
2223
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::Proration::InvoiceBehavior::OrSymbol,
2224
- is_prorated: T::Boolean
2225
- ).returns(T.attached_class)
2226
- end
2227
- def self.new(invoice_behavior:, is_prorated:)
2228
- end
2229
-
2230
- sig do
2231
- override.returns(
2232
- {
2233
- invoice_behavior:
2234
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::Proration::InvoiceBehavior::TaggedSymbol,
2235
- is_prorated: T::Boolean
2236
- }
2237
- )
2238
- end
2239
- def to_hash
2240
- end
2241
-
2242
- module InvoiceBehavior
2243
- extend MetronomeSDK::Internal::Type::Enum
2244
-
2245
- TaggedSymbol =
2246
- T.type_alias do
2247
- T.all(
2248
- Symbol,
2249
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::Proration::InvoiceBehavior
2250
- )
2251
- end
2252
- OrSymbol = T.type_alias { T.any(Symbol, String) }
2253
-
2254
- BILL_IMMEDIATELY =
2255
- T.let(
2256
- :BILL_IMMEDIATELY,
2257
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::Proration::InvoiceBehavior::TaggedSymbol
2258
- )
2259
- BILL_ON_NEXT_COLLECTION_DATE =
2260
- T.let(
2261
- :BILL_ON_NEXT_COLLECTION_DATE,
2262
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::Proration::InvoiceBehavior::TaggedSymbol
2263
- )
2264
-
2265
- sig do
2266
- override.returns(
2267
- T::Array[
2268
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::Proration::InvoiceBehavior::TaggedSymbol
2269
- ]
2270
- )
2271
- end
2272
- def self.values
2273
- end
2274
- end
2275
- end
2276
-
2277
- class QuantitySchedule < MetronomeSDK::Internal::Type::BaseModel
2278
- OrHash =
2279
- T.type_alias do
2280
- T.any(
2281
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::QuantitySchedule,
2282
- MetronomeSDK::Internal::AnyHash
2283
- )
2284
- end
2285
-
2286
- sig { returns(Float) }
2287
- attr_accessor :quantity
2288
-
2289
- sig { returns(Time) }
2290
- attr_accessor :starting_at
2291
-
2292
- sig { returns(T.nilable(Time)) }
2293
- attr_reader :ending_before
2294
-
2295
- sig { params(ending_before: Time).void }
2296
- attr_writer :ending_before
2297
-
2298
- sig do
2299
- params(
2300
- quantity: Float,
2301
- starting_at: Time,
2302
- ending_before: Time
2303
- ).returns(T.attached_class)
2304
- end
2305
- def self.new(quantity:, starting_at:, ending_before: nil)
2306
- end
2307
-
2308
- sig do
2309
- override.returns(
2310
- { quantity: Float, starting_at: Time, ending_before: Time }
2311
- )
2312
- end
2313
- def to_hash
2314
- end
2315
- end
2316
-
2317
- class SubscriptionRate < MetronomeSDK::Internal::Type::BaseModel
2318
- OrHash =
2319
- T.type_alias do
2320
- T.any(
2321
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::SubscriptionRate,
2322
- MetronomeSDK::Internal::AnyHash
2323
- )
2324
- end
2325
-
2326
- sig do
2327
- returns(
2328
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::SubscriptionRate::BillingFrequency::TaggedSymbol
2329
- )
2330
- end
2331
- attr_accessor :billing_frequency
2332
-
2333
- sig do
2334
- returns(
2335
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::SubscriptionRate::Product
2336
- )
2337
- end
2338
- attr_reader :product
2339
-
2340
- sig do
2341
- params(
2342
- product:
2343
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::SubscriptionRate::Product::OrHash
2344
- ).void
2345
- end
2346
- attr_writer :product
2347
-
2348
- sig do
2349
- params(
2350
- billing_frequency:
2351
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::SubscriptionRate::BillingFrequency::OrSymbol,
2352
- product:
2353
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::SubscriptionRate::Product::OrHash
2354
- ).returns(T.attached_class)
2355
- end
2356
- def self.new(billing_frequency:, product:)
2357
- end
2358
-
2359
- sig do
2360
- override.returns(
2361
- {
2362
- billing_frequency:
2363
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::SubscriptionRate::BillingFrequency::TaggedSymbol,
2364
- product:
2365
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::SubscriptionRate::Product
2366
- }
2367
- )
2368
- end
2369
- def to_hash
2370
- end
2371
-
2372
- module BillingFrequency
2373
- extend MetronomeSDK::Internal::Type::Enum
2374
-
2375
- TaggedSymbol =
2376
- T.type_alias do
2377
- T.all(
2378
- Symbol,
2379
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::SubscriptionRate::BillingFrequency
2380
- )
2381
- end
2382
- OrSymbol = T.type_alias { T.any(Symbol, String) }
2383
-
2384
- MONTHLY =
2385
- T.let(
2386
- :MONTHLY,
2387
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::SubscriptionRate::BillingFrequency::TaggedSymbol
2388
- )
2389
- QUARTERLY =
2390
- T.let(
2391
- :QUARTERLY,
2392
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::SubscriptionRate::BillingFrequency::TaggedSymbol
2393
- )
2394
- ANNUAL =
2395
- T.let(
2396
- :ANNUAL,
2397
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::SubscriptionRate::BillingFrequency::TaggedSymbol
2398
- )
2399
- WEEKLY =
2400
- T.let(
2401
- :WEEKLY,
2402
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::SubscriptionRate::BillingFrequency::TaggedSymbol
2403
- )
2404
-
2405
- sig do
2406
- override.returns(
2407
- T::Array[
2408
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::SubscriptionRate::BillingFrequency::TaggedSymbol
2409
- ]
2410
- )
2411
- end
2412
- def self.values
2413
- end
2414
- end
2415
-
2416
- class Product < MetronomeSDK::Internal::Type::BaseModel
2417
- OrHash =
2418
- T.type_alias do
2419
- T.any(
2420
- MetronomeSDK::Models::V1::ContractListResponse::Data::Subscription::SubscriptionRate::Product,
2421
- MetronomeSDK::Internal::AnyHash
2422
- )
2423
- end
2424
-
2425
- sig { returns(String) }
2426
- attr_accessor :id
2427
-
2428
- sig { returns(String) }
2429
- attr_accessor :name
2430
-
2431
- sig do
2432
- params(id: String, name: String).returns(T.attached_class)
2433
- end
2434
- def self.new(id:, name:)
2435
- end
2436
-
2437
- sig { override.returns({ id: String, name: String }) }
2438
- def to_hash
2439
- end
2440
- end
2441
- end
2442
- end
2443
- end
2444
29
  end
2445
30
  end
2446
31
  end