metronome-sdk 0.3.0 → 1.0.0

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