metronome-sdk 0.1.0.pre.alpha.1

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