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,2903 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ module V1
6
+ class ContractAmendParams < MetronomeSDK::Internal::Type::BaseModel
7
+ extend MetronomeSDK::Internal::Type::RequestParameters::Converter
8
+ include MetronomeSDK::Internal::Type::RequestParameters
9
+
10
+ # ID of the contract to amend
11
+ sig { returns(String) }
12
+ attr_accessor :contract_id
13
+
14
+ # ID of the customer whose contract is to be amended
15
+ sig { returns(String) }
16
+ attr_accessor :customer_id
17
+
18
+ # inclusive start time for the amendment
19
+ sig { returns(Time) }
20
+ attr_accessor :starting_at
21
+
22
+ sig { returns(T.nilable(T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Commit])) }
23
+ attr_reader :commits
24
+
25
+ sig do
26
+ params(
27
+ commits: T::Array[T.any(MetronomeSDK::Models::V1::ContractAmendParams::Commit, MetronomeSDK::Internal::AnyHash)]
28
+ )
29
+ .void
30
+ end
31
+ attr_writer :commits
32
+
33
+ sig { returns(T.nilable(T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Credit])) }
34
+ attr_reader :credits
35
+
36
+ sig do
37
+ params(
38
+ credits: T::Array[T.any(MetronomeSDK::Models::V1::ContractAmendParams::Credit, MetronomeSDK::Internal::AnyHash)]
39
+ )
40
+ .void
41
+ end
42
+ attr_writer :credits
43
+
44
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
45
+ attr_reader :custom_fields
46
+
47
+ sig { params(custom_fields: T::Hash[Symbol, String]).void }
48
+ attr_writer :custom_fields
49
+
50
+ # This field's availability is dependent on your client's configuration.
51
+ sig { returns(T.nilable(T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Discount])) }
52
+ attr_reader :discounts
53
+
54
+ sig do
55
+ params(
56
+ discounts: T::Array[T.any(MetronomeSDK::Models::V1::ContractAmendParams::Discount, MetronomeSDK::Internal::AnyHash)]
57
+ )
58
+ .void
59
+ end
60
+ attr_writer :discounts
61
+
62
+ # This field's availability is dependent on your client's configuration.
63
+ sig { returns(T.nilable(String)) }
64
+ attr_reader :netsuite_sales_order_id
65
+
66
+ sig { params(netsuite_sales_order_id: String).void }
67
+ attr_writer :netsuite_sales_order_id
68
+
69
+ sig { returns(T.nilable(T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Override])) }
70
+ attr_reader :overrides
71
+
72
+ sig do
73
+ params(
74
+ overrides: T::Array[T.any(MetronomeSDK::Models::V1::ContractAmendParams::Override, MetronomeSDK::Internal::AnyHash)]
75
+ )
76
+ .void
77
+ end
78
+ attr_writer :overrides
79
+
80
+ # This field's availability is dependent on your client's configuration.
81
+ sig { returns(T.nilable(T::Array[MetronomeSDK::Models::V1::ContractAmendParams::ProfessionalService])) }
82
+ attr_reader :professional_services
83
+
84
+ sig do
85
+ params(
86
+ professional_services: T::Array[T.any(MetronomeSDK::Models::V1::ContractAmendParams::ProfessionalService, MetronomeSDK::Internal::AnyHash)]
87
+ )
88
+ .void
89
+ end
90
+ attr_writer :professional_services
91
+
92
+ # This field's availability is dependent on your client's configuration.
93
+ sig { returns(T.nilable(T::Array[MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty])) }
94
+ attr_reader :reseller_royalties
95
+
96
+ sig do
97
+ params(
98
+ reseller_royalties: T::Array[T.any(MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty, MetronomeSDK::Internal::AnyHash)]
99
+ )
100
+ .void
101
+ end
102
+ attr_writer :reseller_royalties
103
+
104
+ # This field's availability is dependent on your client's configuration.
105
+ sig { returns(T.nilable(String)) }
106
+ attr_reader :salesforce_opportunity_id
107
+
108
+ sig { params(salesforce_opportunity_id: String).void }
109
+ attr_writer :salesforce_opportunity_id
110
+
111
+ sig { returns(T.nilable(T::Array[MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge])) }
112
+ attr_reader :scheduled_charges
113
+
114
+ sig do
115
+ params(
116
+ scheduled_charges: T::Array[T.any(MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge, MetronomeSDK::Internal::AnyHash)]
117
+ )
118
+ .void
119
+ end
120
+ attr_writer :scheduled_charges
121
+
122
+ # This field's availability is dependent on your client's configuration.
123
+ sig { returns(T.nilable(Float)) }
124
+ attr_reader :total_contract_value
125
+
126
+ sig { params(total_contract_value: Float).void }
127
+ attr_writer :total_contract_value
128
+
129
+ sig do
130
+ params(
131
+ contract_id: String,
132
+ customer_id: String,
133
+ starting_at: Time,
134
+ commits: T::Array[T.any(MetronomeSDK::Models::V1::ContractAmendParams::Commit, MetronomeSDK::Internal::AnyHash)],
135
+ credits: T::Array[T.any(MetronomeSDK::Models::V1::ContractAmendParams::Credit, MetronomeSDK::Internal::AnyHash)],
136
+ custom_fields: T::Hash[Symbol, String],
137
+ discounts: T::Array[T.any(MetronomeSDK::Models::V1::ContractAmendParams::Discount, MetronomeSDK::Internal::AnyHash)],
138
+ netsuite_sales_order_id: String,
139
+ overrides: T::Array[T.any(MetronomeSDK::Models::V1::ContractAmendParams::Override, MetronomeSDK::Internal::AnyHash)],
140
+ professional_services: T::Array[T.any(MetronomeSDK::Models::V1::ContractAmendParams::ProfessionalService, MetronomeSDK::Internal::AnyHash)],
141
+ reseller_royalties: T::Array[T.any(MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty, MetronomeSDK::Internal::AnyHash)],
142
+ salesforce_opportunity_id: String,
143
+ scheduled_charges: T::Array[T.any(MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge, MetronomeSDK::Internal::AnyHash)],
144
+ total_contract_value: Float,
145
+ request_options: T.any(MetronomeSDK::RequestOptions, MetronomeSDK::Internal::AnyHash)
146
+ )
147
+ .returns(T.attached_class)
148
+ end
149
+ def self.new(
150
+ # ID of the contract to amend
151
+ contract_id:,
152
+ # ID of the customer whose contract is to be amended
153
+ customer_id:,
154
+ # inclusive start time for the amendment
155
+ starting_at:,
156
+ commits: nil,
157
+ credits: nil,
158
+ custom_fields: nil,
159
+ # This field's availability is dependent on your client's configuration.
160
+ discounts: nil,
161
+ # This field's availability is dependent on your client's configuration.
162
+ netsuite_sales_order_id: nil,
163
+ overrides: nil,
164
+ # This field's availability is dependent on your client's configuration.
165
+ professional_services: nil,
166
+ # This field's availability is dependent on your client's configuration.
167
+ reseller_royalties: nil,
168
+ # This field's availability is dependent on your client's configuration.
169
+ salesforce_opportunity_id: nil,
170
+ scheduled_charges: nil,
171
+ # This field's availability is dependent on your client's configuration.
172
+ total_contract_value: nil,
173
+ request_options: {}
174
+ ); end
175
+ sig do
176
+ override
177
+ .returns(
178
+ {
179
+ contract_id: String,
180
+ customer_id: String,
181
+ starting_at: Time,
182
+ commits: T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Commit],
183
+ credits: T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Credit],
184
+ custom_fields: T::Hash[Symbol, String],
185
+ discounts: T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Discount],
186
+ netsuite_sales_order_id: String,
187
+ overrides: T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Override],
188
+ professional_services: T::Array[MetronomeSDK::Models::V1::ContractAmendParams::ProfessionalService],
189
+ reseller_royalties: T::Array[MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty],
190
+ salesforce_opportunity_id: String,
191
+ scheduled_charges: T::Array[MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge],
192
+ total_contract_value: Float,
193
+ request_options: MetronomeSDK::RequestOptions
194
+ }
195
+ )
196
+ end
197
+ def to_hash; end
198
+
199
+ class Commit < MetronomeSDK::Internal::Type::BaseModel
200
+ sig { returns(String) }
201
+ attr_accessor :product_id
202
+
203
+ sig { returns(MetronomeSDK::Models::V1::ContractAmendParams::Commit::Type::OrSymbol) }
204
+ attr_accessor :type
205
+
206
+ # Required: Schedule for distributing the commit to the customer. For "POSTPAID"
207
+ # commits only one schedule item is allowed and amount must match invoice_schedule
208
+ # total.
209
+ sig { returns(T.nilable(MetronomeSDK::Models::V1::ContractAmendParams::Commit::AccessSchedule)) }
210
+ attr_reader :access_schedule
211
+
212
+ sig do
213
+ params(
214
+ access_schedule: T.any(
215
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::AccessSchedule,
216
+ MetronomeSDK::Internal::AnyHash
217
+ )
218
+ )
219
+ .void
220
+ end
221
+ attr_writer :access_schedule
222
+
223
+ # (DEPRECATED) Use access_schedule and invoice_schedule instead.
224
+ sig { returns(T.nilable(Float)) }
225
+ attr_reader :amount
226
+
227
+ sig { params(amount: Float).void }
228
+ attr_writer :amount
229
+
230
+ # Which products the commit applies to. If both applicable_product_ids and
231
+ # applicable_product_tags are not provided, the commit applies to all products.
232
+ sig { returns(T.nilable(T::Array[String])) }
233
+ attr_reader :applicable_product_ids
234
+
235
+ sig { params(applicable_product_ids: T::Array[String]).void }
236
+ attr_writer :applicable_product_ids
237
+
238
+ # Which tags the commit applies to. If both applicable_product_ids and
239
+ # applicable_product_tags are not provided, the commit applies to all products.
240
+ sig { returns(T.nilable(T::Array[String])) }
241
+ attr_reader :applicable_product_tags
242
+
243
+ sig { params(applicable_product_tags: T::Array[String]).void }
244
+ attr_writer :applicable_product_tags
245
+
246
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
247
+ attr_reader :custom_fields
248
+
249
+ sig { params(custom_fields: T::Hash[Symbol, String]).void }
250
+ attr_writer :custom_fields
251
+
252
+ # Used only in UI/API. It is not exposed to end customers.
253
+ sig { returns(T.nilable(String)) }
254
+ attr_reader :description
255
+
256
+ sig { params(description: String).void }
257
+ attr_writer :description
258
+
259
+ # Required for "POSTPAID" commits: the true up invoice will be generated at this
260
+ # time and only one schedule item is allowed; the total must match access_schedule
261
+ # amount. Optional for "PREPAID" commits: if not provided, this will be a
262
+ # "complimentary" commit with no invoice.
263
+ sig { returns(T.nilable(MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule)) }
264
+ attr_reader :invoice_schedule
265
+
266
+ sig do
267
+ params(
268
+ invoice_schedule: T.any(
269
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule,
270
+ MetronomeSDK::Internal::AnyHash
271
+ )
272
+ )
273
+ .void
274
+ end
275
+ attr_writer :invoice_schedule
276
+
277
+ # displayed on invoices
278
+ sig { returns(T.nilable(String)) }
279
+ attr_reader :name
280
+
281
+ sig { params(name: String).void }
282
+ attr_writer :name
283
+
284
+ # This field's availability is dependent on your client's configuration.
285
+ sig { returns(T.nilable(String)) }
286
+ attr_reader :netsuite_sales_order_id
287
+
288
+ sig { params(netsuite_sales_order_id: String).void }
289
+ attr_writer :netsuite_sales_order_id
290
+
291
+ # optionally payment gate this commit
292
+ sig { returns(T.nilable(MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig)) }
293
+ attr_reader :payment_gate_config
294
+
295
+ sig do
296
+ params(
297
+ payment_gate_config: T.any(
298
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig,
299
+ MetronomeSDK::Internal::AnyHash
300
+ )
301
+ )
302
+ .void
303
+ end
304
+ attr_writer :payment_gate_config
305
+
306
+ # If multiple commits are applicable, the one with the lower priority will apply
307
+ # first.
308
+ sig { returns(T.nilable(Float)) }
309
+ attr_reader :priority
310
+
311
+ sig { params(priority: Float).void }
312
+ attr_writer :priority
313
+
314
+ sig { returns(T.nilable(MetronomeSDK::Models::V1::ContractAmendParams::Commit::RateType::OrSymbol)) }
315
+ attr_reader :rate_type
316
+
317
+ sig { params(rate_type: MetronomeSDK::Models::V1::ContractAmendParams::Commit::RateType::OrSymbol).void }
318
+ attr_writer :rate_type
319
+
320
+ # Fraction of unused segments that will be rolled over. Must be between 0 and 1.
321
+ sig { returns(T.nilable(Float)) }
322
+ attr_reader :rollover_fraction
323
+
324
+ sig { params(rollover_fraction: Float).void }
325
+ attr_writer :rollover_fraction
326
+
327
+ # A temporary ID for the commit that can be used to reference the commit for
328
+ # commit specific overrides.
329
+ sig { returns(T.nilable(String)) }
330
+ attr_reader :temporary_id
331
+
332
+ sig { params(temporary_id: String).void }
333
+ attr_writer :temporary_id
334
+
335
+ sig do
336
+ params(
337
+ product_id: String,
338
+ type: MetronomeSDK::Models::V1::ContractAmendParams::Commit::Type::OrSymbol,
339
+ access_schedule: T.any(
340
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::AccessSchedule,
341
+ MetronomeSDK::Internal::AnyHash
342
+ ),
343
+ amount: Float,
344
+ applicable_product_ids: T::Array[String],
345
+ applicable_product_tags: T::Array[String],
346
+ custom_fields: T::Hash[Symbol, String],
347
+ description: String,
348
+ invoice_schedule: T.any(
349
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule,
350
+ MetronomeSDK::Internal::AnyHash
351
+ ),
352
+ name: String,
353
+ netsuite_sales_order_id: String,
354
+ payment_gate_config: T.any(
355
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig,
356
+ MetronomeSDK::Internal::AnyHash
357
+ ),
358
+ priority: Float,
359
+ rate_type: MetronomeSDK::Models::V1::ContractAmendParams::Commit::RateType::OrSymbol,
360
+ rollover_fraction: Float,
361
+ temporary_id: String
362
+ )
363
+ .returns(T.attached_class)
364
+ end
365
+ def self.new(
366
+ product_id:,
367
+ type:,
368
+ # Required: Schedule for distributing the commit to the customer. For "POSTPAID"
369
+ # commits only one schedule item is allowed and amount must match invoice_schedule
370
+ # total.
371
+ access_schedule: nil,
372
+ # (DEPRECATED) Use access_schedule and invoice_schedule instead.
373
+ amount: nil,
374
+ # Which products the commit applies to. If both applicable_product_ids and
375
+ # applicable_product_tags are not provided, the commit applies to all products.
376
+ applicable_product_ids: nil,
377
+ # Which tags the commit applies to. If both applicable_product_ids and
378
+ # applicable_product_tags are not provided, the commit applies to all products.
379
+ applicable_product_tags: nil,
380
+ custom_fields: nil,
381
+ # Used only in UI/API. It is not exposed to end customers.
382
+ description: nil,
383
+ # Required for "POSTPAID" commits: the true up invoice will be generated at this
384
+ # time and only one schedule item is allowed; the total must match access_schedule
385
+ # amount. Optional for "PREPAID" commits: if not provided, this will be a
386
+ # "complimentary" commit with no invoice.
387
+ invoice_schedule: nil,
388
+ # displayed on invoices
389
+ name: nil,
390
+ # This field's availability is dependent on your client's configuration.
391
+ netsuite_sales_order_id: nil,
392
+ # optionally payment gate this commit
393
+ payment_gate_config: nil,
394
+ # If multiple commits are applicable, the one with the lower priority will apply
395
+ # first.
396
+ priority: nil,
397
+ rate_type: nil,
398
+ # Fraction of unused segments that will be rolled over. Must be between 0 and 1.
399
+ rollover_fraction: nil,
400
+ # A temporary ID for the commit that can be used to reference the commit for
401
+ # commit specific overrides.
402
+ temporary_id: nil
403
+ ); end
404
+ sig do
405
+ override
406
+ .returns(
407
+ {
408
+ product_id: String,
409
+ type: MetronomeSDK::Models::V1::ContractAmendParams::Commit::Type::OrSymbol,
410
+ access_schedule: MetronomeSDK::Models::V1::ContractAmendParams::Commit::AccessSchedule,
411
+ amount: Float,
412
+ applicable_product_ids: T::Array[String],
413
+ applicable_product_tags: T::Array[String],
414
+ custom_fields: T::Hash[Symbol, String],
415
+ description: String,
416
+ invoice_schedule: MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule,
417
+ name: String,
418
+ netsuite_sales_order_id: String,
419
+ payment_gate_config: MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig,
420
+ priority: Float,
421
+ rate_type: MetronomeSDK::Models::V1::ContractAmendParams::Commit::RateType::OrSymbol,
422
+ rollover_fraction: Float,
423
+ temporary_id: String
424
+ }
425
+ )
426
+ end
427
+ def to_hash; end
428
+
429
+ module Type
430
+ extend MetronomeSDK::Internal::Type::Enum
431
+
432
+ TaggedSymbol =
433
+ T.type_alias { T.all(Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::Type) }
434
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
435
+
436
+ PREPAID = T.let(:PREPAID, MetronomeSDK::Models::V1::ContractAmendParams::Commit::Type::TaggedSymbol)
437
+ POSTPAID = T.let(:POSTPAID, MetronomeSDK::Models::V1::ContractAmendParams::Commit::Type::TaggedSymbol)
438
+
439
+ sig { override.returns(T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Commit::Type::TaggedSymbol]) }
440
+ def self.values; end
441
+ end
442
+
443
+ class AccessSchedule < MetronomeSDK::Internal::Type::BaseModel
444
+ sig { returns(T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Commit::AccessSchedule::ScheduleItem]) }
445
+ attr_accessor :schedule_items
446
+
447
+ # Defaults to USD (cents) if not passed
448
+ sig { returns(T.nilable(String)) }
449
+ attr_reader :credit_type_id
450
+
451
+ sig { params(credit_type_id: String).void }
452
+ attr_writer :credit_type_id
453
+
454
+ # Required: Schedule for distributing the commit to the customer. For "POSTPAID"
455
+ # commits only one schedule item is allowed and amount must match invoice_schedule
456
+ # total.
457
+ sig do
458
+ params(
459
+ schedule_items: T::Array[
460
+ T.any(
461
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::AccessSchedule::ScheduleItem,
462
+ MetronomeSDK::Internal::AnyHash
463
+ )
464
+ ],
465
+ credit_type_id: String
466
+ )
467
+ .returns(T.attached_class)
468
+ end
469
+ def self.new(
470
+ schedule_items:,
471
+ # Defaults to USD (cents) if not passed
472
+ credit_type_id: nil
473
+ ); end
474
+ sig do
475
+ override
476
+ .returns(
477
+ {
478
+ schedule_items: T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Commit::AccessSchedule::ScheduleItem],
479
+ credit_type_id: String
480
+ }
481
+ )
482
+ end
483
+ def to_hash; end
484
+
485
+ class ScheduleItem < MetronomeSDK::Internal::Type::BaseModel
486
+ sig { returns(Float) }
487
+ attr_accessor :amount
488
+
489
+ # RFC 3339 timestamp (exclusive)
490
+ sig { returns(Time) }
491
+ attr_accessor :ending_before
492
+
493
+ # RFC 3339 timestamp (inclusive)
494
+ sig { returns(Time) }
495
+ attr_accessor :starting_at
496
+
497
+ sig { params(amount: Float, ending_before: Time, starting_at: Time).returns(T.attached_class) }
498
+ def self.new(
499
+ amount:,
500
+ # RFC 3339 timestamp (exclusive)
501
+ ending_before:,
502
+ # RFC 3339 timestamp (inclusive)
503
+ starting_at:
504
+ ); end
505
+ sig { override.returns({amount: Float, ending_before: Time, starting_at: Time}) }
506
+ def to_hash; end
507
+ end
508
+ end
509
+
510
+ class InvoiceSchedule < MetronomeSDK::Internal::Type::BaseModel
511
+ # Defaults to USD (cents) if not passed.
512
+ sig { returns(T.nilable(String)) }
513
+ attr_reader :credit_type_id
514
+
515
+ sig { params(credit_type_id: String).void }
516
+ attr_writer :credit_type_id
517
+
518
+ # Enter the unit price and quantity for the charge or instead only send the
519
+ # amount. If amount is sent, the unit price is assumed to be the amount and
520
+ # quantity is inferred to be 1.
521
+ sig do
522
+ returns(
523
+ T.nilable(MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule)
524
+ )
525
+ end
526
+ attr_reader :recurring_schedule
527
+
528
+ sig do
529
+ params(
530
+ recurring_schedule: T.any(
531
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule,
532
+ MetronomeSDK::Internal::AnyHash
533
+ )
534
+ )
535
+ .void
536
+ end
537
+ attr_writer :recurring_schedule
538
+
539
+ # Either provide amount or provide both unit_price and quantity.
540
+ sig do
541
+ returns(
542
+ T.nilable(T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::ScheduleItem])
543
+ )
544
+ end
545
+ attr_reader :schedule_items
546
+
547
+ sig do
548
+ params(
549
+ schedule_items: T::Array[
550
+ T.any(
551
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::ScheduleItem,
552
+ MetronomeSDK::Internal::AnyHash
553
+ )
554
+ ]
555
+ )
556
+ .void
557
+ end
558
+ attr_writer :schedule_items
559
+
560
+ # Required for "POSTPAID" commits: the true up invoice will be generated at this
561
+ # time and only one schedule item is allowed; the total must match access_schedule
562
+ # amount. Optional for "PREPAID" commits: if not provided, this will be a
563
+ # "complimentary" commit with no invoice.
564
+ sig do
565
+ params(
566
+ credit_type_id: String,
567
+ recurring_schedule: T.any(
568
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule,
569
+ MetronomeSDK::Internal::AnyHash
570
+ ),
571
+ schedule_items: T::Array[
572
+ T.any(
573
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::ScheduleItem,
574
+ MetronomeSDK::Internal::AnyHash
575
+ )
576
+ ]
577
+ )
578
+ .returns(T.attached_class)
579
+ end
580
+ def self.new(
581
+ # Defaults to USD (cents) if not passed.
582
+ credit_type_id: nil,
583
+ # Enter the unit price and quantity for the charge or instead only send the
584
+ # amount. If amount is sent, the unit price is assumed to be the amount and
585
+ # quantity is inferred to be 1.
586
+ recurring_schedule: nil,
587
+ # Either provide amount or provide both unit_price and quantity.
588
+ schedule_items: nil
589
+ ); end
590
+ sig do
591
+ override
592
+ .returns(
593
+ {
594
+ credit_type_id: String,
595
+ recurring_schedule: MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule,
596
+ schedule_items: T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::ScheduleItem]
597
+ }
598
+ )
599
+ end
600
+ def to_hash; end
601
+
602
+ class RecurringSchedule < MetronomeSDK::Internal::Type::BaseModel
603
+ sig do
604
+ returns(
605
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::AmountDistribution::OrSymbol
606
+ )
607
+ end
608
+ attr_accessor :amount_distribution
609
+
610
+ # RFC 3339 timestamp (exclusive).
611
+ sig { returns(Time) }
612
+ attr_accessor :ending_before
613
+
614
+ sig do
615
+ returns(
616
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::Frequency::OrSymbol
617
+ )
618
+ end
619
+ attr_accessor :frequency
620
+
621
+ # RFC 3339 timestamp (inclusive).
622
+ sig { returns(Time) }
623
+ attr_accessor :starting_at
624
+
625
+ # Amount for the charge. Can be provided instead of unit_price and quantity. If
626
+ # amount is sent, the unit_price is assumed to be the amount and quantity is
627
+ # inferred to be 1.
628
+ sig { returns(T.nilable(Float)) }
629
+ attr_reader :amount
630
+
631
+ sig { params(amount: Float).void }
632
+ attr_writer :amount
633
+
634
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
635
+ # amount and must be specified with unit_price. If specified amount cannot be
636
+ # provided.
637
+ sig { returns(T.nilable(Float)) }
638
+ attr_reader :quantity
639
+
640
+ sig { params(quantity: Float).void }
641
+ attr_writer :quantity
642
+
643
+ # Unit price for the charge. Will be multiplied by quantity to determine the
644
+ # amount and must be specified with quantity. If specified amount cannot be
645
+ # provided.
646
+ sig { returns(T.nilable(Float)) }
647
+ attr_reader :unit_price
648
+
649
+ sig { params(unit_price: Float).void }
650
+ attr_writer :unit_price
651
+
652
+ # Enter the unit price and quantity for the charge or instead only send the
653
+ # amount. If amount is sent, the unit price is assumed to be the amount and
654
+ # quantity is inferred to be 1.
655
+ sig do
656
+ params(
657
+ amount_distribution: MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::AmountDistribution::OrSymbol,
658
+ ending_before: Time,
659
+ frequency: MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::Frequency::OrSymbol,
660
+ starting_at: Time,
661
+ amount: Float,
662
+ quantity: Float,
663
+ unit_price: Float
664
+ )
665
+ .returns(T.attached_class)
666
+ end
667
+ def self.new(
668
+ amount_distribution:,
669
+ # RFC 3339 timestamp (exclusive).
670
+ ending_before:,
671
+ frequency:,
672
+ # RFC 3339 timestamp (inclusive).
673
+ starting_at:,
674
+ # Amount for the charge. Can be provided instead of unit_price and quantity. If
675
+ # amount is sent, the unit_price is assumed to be the amount and quantity is
676
+ # inferred to be 1.
677
+ amount: nil,
678
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
679
+ # amount and must be specified with unit_price. If specified amount cannot be
680
+ # provided.
681
+ quantity: nil,
682
+ # Unit price for the charge. Will be multiplied by quantity to determine the
683
+ # amount and must be specified with quantity. If specified amount cannot be
684
+ # provided.
685
+ unit_price: nil
686
+ ); end
687
+ sig do
688
+ override
689
+ .returns(
690
+ {
691
+ amount_distribution: MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::AmountDistribution::OrSymbol,
692
+ ending_before: Time,
693
+ frequency: MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::Frequency::OrSymbol,
694
+ starting_at: Time,
695
+ amount: Float,
696
+ quantity: Float,
697
+ unit_price: Float
698
+ }
699
+ )
700
+ end
701
+ def to_hash; end
702
+
703
+ module AmountDistribution
704
+ extend MetronomeSDK::Internal::Type::Enum
705
+
706
+ TaggedSymbol =
707
+ T.type_alias do
708
+ T.all(Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::AmountDistribution)
709
+ end
710
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
711
+
712
+ DIVIDED =
713
+ T.let(
714
+ :DIVIDED,
715
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::AmountDistribution::TaggedSymbol
716
+ )
717
+ DIVIDED_ROUNDED =
718
+ T.let(
719
+ :DIVIDED_ROUNDED,
720
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::AmountDistribution::TaggedSymbol
721
+ )
722
+ EACH =
723
+ T.let(
724
+ :EACH,
725
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::AmountDistribution::TaggedSymbol
726
+ )
727
+
728
+ sig do
729
+ override
730
+ .returns(
731
+ T::Array[
732
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::AmountDistribution::TaggedSymbol
733
+ ]
734
+ )
735
+ end
736
+ def self.values; end
737
+ end
738
+
739
+ module Frequency
740
+ extend MetronomeSDK::Internal::Type::Enum
741
+
742
+ TaggedSymbol =
743
+ T.type_alias do
744
+ T.all(Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::Frequency)
745
+ end
746
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
747
+
748
+ MONTHLY =
749
+ T.let(
750
+ :MONTHLY,
751
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::Frequency::TaggedSymbol
752
+ )
753
+ QUARTERLY =
754
+ T.let(
755
+ :QUARTERLY,
756
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::Frequency::TaggedSymbol
757
+ )
758
+ SEMI_ANNUAL =
759
+ T.let(
760
+ :SEMI_ANNUAL,
761
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::Frequency::TaggedSymbol
762
+ )
763
+ ANNUAL =
764
+ T.let(
765
+ :ANNUAL,
766
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::Frequency::TaggedSymbol
767
+ )
768
+
769
+ sig do
770
+ override
771
+ .returns(
772
+ T::Array[
773
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::Frequency::TaggedSymbol
774
+ ]
775
+ )
776
+ end
777
+ def self.values; end
778
+ end
779
+ end
780
+
781
+ class ScheduleItem < MetronomeSDK::Internal::Type::BaseModel
782
+ # timestamp of the scheduled event
783
+ sig { returns(Time) }
784
+ attr_accessor :timestamp
785
+
786
+ # Amount for the charge. Can be provided instead of unit_price and quantity. If
787
+ # amount is sent, the unit_price is assumed to be the amount and quantity is
788
+ # inferred to be 1.
789
+ sig { returns(T.nilable(Float)) }
790
+ attr_reader :amount
791
+
792
+ sig { params(amount: Float).void }
793
+ attr_writer :amount
794
+
795
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
796
+ # amount and must be specified with unit_price. If specified amount cannot be
797
+ # provided.
798
+ sig { returns(T.nilable(Float)) }
799
+ attr_reader :quantity
800
+
801
+ sig { params(quantity: Float).void }
802
+ attr_writer :quantity
803
+
804
+ # Unit price for the charge. Will be multiplied by quantity to determine the
805
+ # amount and must be specified with quantity. If specified amount cannot be
806
+ # provided.
807
+ sig { returns(T.nilable(Float)) }
808
+ attr_reader :unit_price
809
+
810
+ sig { params(unit_price: Float).void }
811
+ attr_writer :unit_price
812
+
813
+ sig do
814
+ params(
815
+ timestamp: Time,
816
+ amount: Float,
817
+ quantity: Float,
818
+ unit_price: Float
819
+ ).returns(T.attached_class)
820
+ end
821
+ def self.new(
822
+ # timestamp of the scheduled event
823
+ timestamp:,
824
+ # Amount for the charge. Can be provided instead of unit_price and quantity. If
825
+ # amount is sent, the unit_price is assumed to be the amount and quantity is
826
+ # inferred to be 1.
827
+ amount: nil,
828
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
829
+ # amount and must be specified with unit_price. If specified amount cannot be
830
+ # provided.
831
+ quantity: nil,
832
+ # Unit price for the charge. Will be multiplied by quantity to determine the
833
+ # amount and must be specified with quantity. If specified amount cannot be
834
+ # provided.
835
+ unit_price: nil
836
+ ); end
837
+ sig { override.returns({timestamp: Time, amount: Float, quantity: Float, unit_price: Float}) }
838
+ def to_hash; end
839
+ end
840
+ end
841
+
842
+ class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
843
+ # Gate access to the commit balance based on successful collection of payment.
844
+ # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
845
+ # facilitate payment using your own payment integration. Select NONE if you do not
846
+ # wish to payment gate the commit balance.
847
+ sig do
848
+ returns(
849
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::PaymentGateType::OrSymbol
850
+ )
851
+ end
852
+ attr_accessor :payment_gate_type
853
+
854
+ # Only applicable if using Stripe as your payment gateway through Metronome.
855
+ sig { returns(T.nilable(MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::StripeConfig)) }
856
+ attr_reader :stripe_config
857
+
858
+ sig do
859
+ params(
860
+ stripe_config: T.any(
861
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::StripeConfig,
862
+ MetronomeSDK::Internal::AnyHash
863
+ )
864
+ )
865
+ .void
866
+ end
867
+ attr_writer :stripe_config
868
+
869
+ # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
870
+ # not wish Metronome to calculate tax on your behalf. Leaving this field blank
871
+ # will default to NONE.
872
+ sig do
873
+ returns(
874
+ T.nilable(MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::TaxType::OrSymbol)
875
+ )
876
+ end
877
+ attr_reader :tax_type
878
+
879
+ sig do
880
+ params(
881
+ tax_type: MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::TaxType::OrSymbol
882
+ )
883
+ .void
884
+ end
885
+ attr_writer :tax_type
886
+
887
+ # optionally payment gate this commit
888
+ sig do
889
+ params(
890
+ payment_gate_type: MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::PaymentGateType::OrSymbol,
891
+ stripe_config: T.any(
892
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::StripeConfig,
893
+ MetronomeSDK::Internal::AnyHash
894
+ ),
895
+ tax_type: MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::TaxType::OrSymbol
896
+ )
897
+ .returns(T.attached_class)
898
+ end
899
+ def self.new(
900
+ # Gate access to the commit balance based on successful collection of payment.
901
+ # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
902
+ # facilitate payment using your own payment integration. Select NONE if you do not
903
+ # wish to payment gate the commit balance.
904
+ payment_gate_type:,
905
+ # Only applicable if using Stripe as your payment gateway through Metronome.
906
+ stripe_config: nil,
907
+ # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
908
+ # not wish Metronome to calculate tax on your behalf. Leaving this field blank
909
+ # will default to NONE.
910
+ tax_type: nil
911
+ ); end
912
+ sig do
913
+ override
914
+ .returns(
915
+ {
916
+ payment_gate_type: MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::PaymentGateType::OrSymbol,
917
+ stripe_config: MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::StripeConfig,
918
+ tax_type: MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::TaxType::OrSymbol
919
+ }
920
+ )
921
+ end
922
+ def to_hash; end
923
+
924
+ # Gate access to the commit balance based on successful collection of payment.
925
+ # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
926
+ # facilitate payment using your own payment integration. Select NONE if you do not
927
+ # wish to payment gate the commit balance.
928
+ module PaymentGateType
929
+ extend MetronomeSDK::Internal::Type::Enum
930
+
931
+ TaggedSymbol =
932
+ T.type_alias { T.all(Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::PaymentGateType) }
933
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
934
+
935
+ NONE =
936
+ T.let(
937
+ :NONE,
938
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::PaymentGateType::TaggedSymbol
939
+ )
940
+ STRIPE =
941
+ T.let(
942
+ :STRIPE,
943
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::PaymentGateType::TaggedSymbol
944
+ )
945
+ EXTERNAL =
946
+ T.let(
947
+ :EXTERNAL,
948
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::PaymentGateType::TaggedSymbol
949
+ )
950
+
951
+ sig do
952
+ override
953
+ .returns(
954
+ T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::PaymentGateType::TaggedSymbol]
955
+ )
956
+ end
957
+ def self.values; end
958
+ end
959
+
960
+ class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
961
+ # If left blank, will default to INVOICE
962
+ sig do
963
+ returns(
964
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
965
+ )
966
+ end
967
+ attr_accessor :payment_type
968
+
969
+ # Only applicable if using Stripe as your payment gateway through Metronome.
970
+ sig do
971
+ params(
972
+ payment_type: MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
973
+ )
974
+ .returns(T.attached_class)
975
+ end
976
+ def self.new(
977
+ # If left blank, will default to INVOICE
978
+ payment_type:
979
+ ); end
980
+ sig do
981
+ override
982
+ .returns(
983
+ {
984
+ payment_type: MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::StripeConfig::PaymentType::OrSymbol
985
+ }
986
+ )
987
+ end
988
+ def to_hash; end
989
+
990
+ # If left blank, will default to INVOICE
991
+ module PaymentType
992
+ extend MetronomeSDK::Internal::Type::Enum
993
+
994
+ TaggedSymbol =
995
+ T.type_alias do
996
+ T.all(Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::StripeConfig::PaymentType)
997
+ end
998
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
999
+
1000
+ INVOICE =
1001
+ T.let(
1002
+ :INVOICE,
1003
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol
1004
+ )
1005
+ PAYMENT_INTENT =
1006
+ T.let(
1007
+ :PAYMENT_INTENT,
1008
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol
1009
+ )
1010
+
1011
+ sig do
1012
+ override
1013
+ .returns(
1014
+ T::Array[
1015
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::StripeConfig::PaymentType::TaggedSymbol
1016
+ ]
1017
+ )
1018
+ end
1019
+ def self.values; end
1020
+ end
1021
+ end
1022
+
1023
+ # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
1024
+ # not wish Metronome to calculate tax on your behalf. Leaving this field blank
1025
+ # will default to NONE.
1026
+ module TaxType
1027
+ extend MetronomeSDK::Internal::Type::Enum
1028
+
1029
+ TaggedSymbol =
1030
+ T.type_alias { T.all(Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::TaxType) }
1031
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1032
+
1033
+ NONE =
1034
+ T.let(
1035
+ :NONE,
1036
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::TaxType::TaggedSymbol
1037
+ )
1038
+ STRIPE =
1039
+ T.let(
1040
+ :STRIPE,
1041
+ MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::TaxType::TaggedSymbol
1042
+ )
1043
+
1044
+ sig do
1045
+ override
1046
+ .returns(
1047
+ T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::TaxType::TaggedSymbol]
1048
+ )
1049
+ end
1050
+ def self.values; end
1051
+ end
1052
+ end
1053
+
1054
+ module RateType
1055
+ extend MetronomeSDK::Internal::Type::Enum
1056
+
1057
+ TaggedSymbol =
1058
+ T.type_alias { T.all(Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::RateType) }
1059
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1060
+
1061
+ COMMIT_RATE =
1062
+ T.let(:COMMIT_RATE, MetronomeSDK::Models::V1::ContractAmendParams::Commit::RateType::TaggedSymbol)
1063
+ LIST_RATE =
1064
+ T.let(:LIST_RATE, MetronomeSDK::Models::V1::ContractAmendParams::Commit::RateType::TaggedSymbol)
1065
+
1066
+ sig { override.returns(T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Commit::RateType::TaggedSymbol]) }
1067
+ def self.values; end
1068
+ end
1069
+ end
1070
+
1071
+ class Credit < MetronomeSDK::Internal::Type::BaseModel
1072
+ # Schedule for distributing the credit to the customer.
1073
+ sig { returns(MetronomeSDK::Models::V1::ContractAmendParams::Credit::AccessSchedule) }
1074
+ attr_reader :access_schedule
1075
+
1076
+ sig do
1077
+ params(
1078
+ access_schedule: T.any(
1079
+ MetronomeSDK::Models::V1::ContractAmendParams::Credit::AccessSchedule,
1080
+ MetronomeSDK::Internal::AnyHash
1081
+ )
1082
+ )
1083
+ .void
1084
+ end
1085
+ attr_writer :access_schedule
1086
+
1087
+ sig { returns(String) }
1088
+ attr_accessor :product_id
1089
+
1090
+ # Which products the credit applies to. If both applicable_product_ids and
1091
+ # applicable_product_tags are not provided, the credit applies to all products.
1092
+ sig { returns(T.nilable(T::Array[String])) }
1093
+ attr_reader :applicable_product_ids
1094
+
1095
+ sig { params(applicable_product_ids: T::Array[String]).void }
1096
+ attr_writer :applicable_product_ids
1097
+
1098
+ # Which tags the credit applies to. If both applicable_product_ids and
1099
+ # applicable_product_tags are not provided, the credit applies to all products.
1100
+ sig { returns(T.nilable(T::Array[String])) }
1101
+ attr_reader :applicable_product_tags
1102
+
1103
+ sig { params(applicable_product_tags: T::Array[String]).void }
1104
+ attr_writer :applicable_product_tags
1105
+
1106
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
1107
+ attr_reader :custom_fields
1108
+
1109
+ sig { params(custom_fields: T::Hash[Symbol, String]).void }
1110
+ attr_writer :custom_fields
1111
+
1112
+ # Used only in UI/API. It is not exposed to end customers.
1113
+ sig { returns(T.nilable(String)) }
1114
+ attr_reader :description
1115
+
1116
+ sig { params(description: String).void }
1117
+ attr_writer :description
1118
+
1119
+ # displayed on invoices
1120
+ sig { returns(T.nilable(String)) }
1121
+ attr_reader :name
1122
+
1123
+ sig { params(name: String).void }
1124
+ attr_writer :name
1125
+
1126
+ # This field's availability is dependent on your client's configuration.
1127
+ sig { returns(T.nilable(String)) }
1128
+ attr_reader :netsuite_sales_order_id
1129
+
1130
+ sig { params(netsuite_sales_order_id: String).void }
1131
+ attr_writer :netsuite_sales_order_id
1132
+
1133
+ # If multiple credits are applicable, the one with the lower priority will apply
1134
+ # first.
1135
+ sig { returns(T.nilable(Float)) }
1136
+ attr_reader :priority
1137
+
1138
+ sig { params(priority: Float).void }
1139
+ attr_writer :priority
1140
+
1141
+ sig { returns(T.nilable(MetronomeSDK::Models::V1::ContractAmendParams::Credit::RateType::OrSymbol)) }
1142
+ attr_reader :rate_type
1143
+
1144
+ sig { params(rate_type: MetronomeSDK::Models::V1::ContractAmendParams::Credit::RateType::OrSymbol).void }
1145
+ attr_writer :rate_type
1146
+
1147
+ sig do
1148
+ params(
1149
+ access_schedule: T.any(
1150
+ MetronomeSDK::Models::V1::ContractAmendParams::Credit::AccessSchedule,
1151
+ MetronomeSDK::Internal::AnyHash
1152
+ ),
1153
+ product_id: String,
1154
+ applicable_product_ids: T::Array[String],
1155
+ applicable_product_tags: T::Array[String],
1156
+ custom_fields: T::Hash[Symbol, String],
1157
+ description: String,
1158
+ name: String,
1159
+ netsuite_sales_order_id: String,
1160
+ priority: Float,
1161
+ rate_type: MetronomeSDK::Models::V1::ContractAmendParams::Credit::RateType::OrSymbol
1162
+ )
1163
+ .returns(T.attached_class)
1164
+ end
1165
+ def self.new(
1166
+ # Schedule for distributing the credit to the customer.
1167
+ access_schedule:,
1168
+ product_id:,
1169
+ # Which products the credit applies to. If both applicable_product_ids and
1170
+ # applicable_product_tags are not provided, the credit applies to all products.
1171
+ applicable_product_ids: nil,
1172
+ # Which tags the credit applies to. If both applicable_product_ids and
1173
+ # applicable_product_tags are not provided, the credit applies to all products.
1174
+ applicable_product_tags: nil,
1175
+ custom_fields: nil,
1176
+ # Used only in UI/API. It is not exposed to end customers.
1177
+ description: nil,
1178
+ # displayed on invoices
1179
+ name: nil,
1180
+ # This field's availability is dependent on your client's configuration.
1181
+ netsuite_sales_order_id: nil,
1182
+ # If multiple credits are applicable, the one with the lower priority will apply
1183
+ # first.
1184
+ priority: nil,
1185
+ rate_type: nil
1186
+ ); end
1187
+ sig do
1188
+ override
1189
+ .returns(
1190
+ {
1191
+ access_schedule: MetronomeSDK::Models::V1::ContractAmendParams::Credit::AccessSchedule,
1192
+ product_id: String,
1193
+ applicable_product_ids: T::Array[String],
1194
+ applicable_product_tags: T::Array[String],
1195
+ custom_fields: T::Hash[Symbol, String],
1196
+ description: String,
1197
+ name: String,
1198
+ netsuite_sales_order_id: String,
1199
+ priority: Float,
1200
+ rate_type: MetronomeSDK::Models::V1::ContractAmendParams::Credit::RateType::OrSymbol
1201
+ }
1202
+ )
1203
+ end
1204
+ def to_hash; end
1205
+
1206
+ class AccessSchedule < MetronomeSDK::Internal::Type::BaseModel
1207
+ sig { returns(T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Credit::AccessSchedule::ScheduleItem]) }
1208
+ attr_accessor :schedule_items
1209
+
1210
+ # Defaults to USD (cents) if not passed
1211
+ sig { returns(T.nilable(String)) }
1212
+ attr_reader :credit_type_id
1213
+
1214
+ sig { params(credit_type_id: String).void }
1215
+ attr_writer :credit_type_id
1216
+
1217
+ # Schedule for distributing the credit to the customer.
1218
+ sig do
1219
+ params(
1220
+ schedule_items: T::Array[
1221
+ T.any(
1222
+ MetronomeSDK::Models::V1::ContractAmendParams::Credit::AccessSchedule::ScheduleItem,
1223
+ MetronomeSDK::Internal::AnyHash
1224
+ )
1225
+ ],
1226
+ credit_type_id: String
1227
+ )
1228
+ .returns(T.attached_class)
1229
+ end
1230
+ def self.new(
1231
+ schedule_items:,
1232
+ # Defaults to USD (cents) if not passed
1233
+ credit_type_id: nil
1234
+ ); end
1235
+ sig do
1236
+ override
1237
+ .returns(
1238
+ {
1239
+ schedule_items: T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Credit::AccessSchedule::ScheduleItem],
1240
+ credit_type_id: String
1241
+ }
1242
+ )
1243
+ end
1244
+ def to_hash; end
1245
+
1246
+ class ScheduleItem < MetronomeSDK::Internal::Type::BaseModel
1247
+ sig { returns(Float) }
1248
+ attr_accessor :amount
1249
+
1250
+ # RFC 3339 timestamp (exclusive)
1251
+ sig { returns(Time) }
1252
+ attr_accessor :ending_before
1253
+
1254
+ # RFC 3339 timestamp (inclusive)
1255
+ sig { returns(Time) }
1256
+ attr_accessor :starting_at
1257
+
1258
+ sig { params(amount: Float, ending_before: Time, starting_at: Time).returns(T.attached_class) }
1259
+ def self.new(
1260
+ amount:,
1261
+ # RFC 3339 timestamp (exclusive)
1262
+ ending_before:,
1263
+ # RFC 3339 timestamp (inclusive)
1264
+ starting_at:
1265
+ ); end
1266
+ sig { override.returns({amount: Float, ending_before: Time, starting_at: Time}) }
1267
+ def to_hash; end
1268
+ end
1269
+ end
1270
+
1271
+ module RateType
1272
+ extend MetronomeSDK::Internal::Type::Enum
1273
+
1274
+ TaggedSymbol =
1275
+ T.type_alias { T.all(Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Credit::RateType) }
1276
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1277
+
1278
+ COMMIT_RATE =
1279
+ T.let(:COMMIT_RATE, MetronomeSDK::Models::V1::ContractAmendParams::Credit::RateType::TaggedSymbol)
1280
+ LIST_RATE =
1281
+ T.let(:LIST_RATE, MetronomeSDK::Models::V1::ContractAmendParams::Credit::RateType::TaggedSymbol)
1282
+
1283
+ sig { override.returns(T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Credit::RateType::TaggedSymbol]) }
1284
+ def self.values; end
1285
+ end
1286
+ end
1287
+
1288
+ class Discount < MetronomeSDK::Internal::Type::BaseModel
1289
+ sig { returns(String) }
1290
+ attr_accessor :product_id
1291
+
1292
+ # Must provide either schedule_items or recurring_schedule.
1293
+ sig { returns(MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule) }
1294
+ attr_reader :schedule
1295
+
1296
+ sig do
1297
+ params(
1298
+ schedule: T.any(MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule, MetronomeSDK::Internal::AnyHash)
1299
+ )
1300
+ .void
1301
+ end
1302
+ attr_writer :schedule
1303
+
1304
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
1305
+ attr_reader :custom_fields
1306
+
1307
+ sig { params(custom_fields: T::Hash[Symbol, String]).void }
1308
+ attr_writer :custom_fields
1309
+
1310
+ # displayed on invoices
1311
+ sig { returns(T.nilable(String)) }
1312
+ attr_reader :name
1313
+
1314
+ sig { params(name: String).void }
1315
+ attr_writer :name
1316
+
1317
+ # This field's availability is dependent on your client's configuration.
1318
+ sig { returns(T.nilable(String)) }
1319
+ attr_reader :netsuite_sales_order_id
1320
+
1321
+ sig { params(netsuite_sales_order_id: String).void }
1322
+ attr_writer :netsuite_sales_order_id
1323
+
1324
+ sig do
1325
+ params(
1326
+ product_id: String,
1327
+ schedule: T.any(MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule, MetronomeSDK::Internal::AnyHash),
1328
+ custom_fields: T::Hash[Symbol, String],
1329
+ name: String,
1330
+ netsuite_sales_order_id: String
1331
+ )
1332
+ .returns(T.attached_class)
1333
+ end
1334
+ def self.new(
1335
+ product_id:,
1336
+ # Must provide either schedule_items or recurring_schedule.
1337
+ schedule:,
1338
+ custom_fields: nil,
1339
+ # displayed on invoices
1340
+ name: nil,
1341
+ # This field's availability is dependent on your client's configuration.
1342
+ netsuite_sales_order_id: nil
1343
+ ); end
1344
+ sig do
1345
+ override
1346
+ .returns(
1347
+ {
1348
+ product_id: String,
1349
+ schedule: MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule,
1350
+ custom_fields: T::Hash[Symbol, String],
1351
+ name: String,
1352
+ netsuite_sales_order_id: String
1353
+ }
1354
+ )
1355
+ end
1356
+ def to_hash; end
1357
+
1358
+ class Schedule < MetronomeSDK::Internal::Type::BaseModel
1359
+ # Defaults to USD (cents) if not passed.
1360
+ sig { returns(T.nilable(String)) }
1361
+ attr_reader :credit_type_id
1362
+
1363
+ sig { params(credit_type_id: String).void }
1364
+ attr_writer :credit_type_id
1365
+
1366
+ # Enter the unit price and quantity for the charge or instead only send the
1367
+ # amount. If amount is sent, the unit price is assumed to be the amount and
1368
+ # quantity is inferred to be 1.
1369
+ sig { returns(T.nilable(MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule)) }
1370
+ attr_reader :recurring_schedule
1371
+
1372
+ sig do
1373
+ params(
1374
+ recurring_schedule: T.any(
1375
+ MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule,
1376
+ MetronomeSDK::Internal::AnyHash
1377
+ )
1378
+ )
1379
+ .void
1380
+ end
1381
+ attr_writer :recurring_schedule
1382
+
1383
+ # Either provide amount or provide both unit_price and quantity.
1384
+ sig do
1385
+ returns(
1386
+ T.nilable(T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::ScheduleItem])
1387
+ )
1388
+ end
1389
+ attr_reader :schedule_items
1390
+
1391
+ sig do
1392
+ params(
1393
+ schedule_items: T::Array[
1394
+ T.any(
1395
+ MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::ScheduleItem,
1396
+ MetronomeSDK::Internal::AnyHash
1397
+ )
1398
+ ]
1399
+ )
1400
+ .void
1401
+ end
1402
+ attr_writer :schedule_items
1403
+
1404
+ # Must provide either schedule_items or recurring_schedule.
1405
+ sig do
1406
+ params(
1407
+ credit_type_id: String,
1408
+ recurring_schedule: T.any(
1409
+ MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule,
1410
+ MetronomeSDK::Internal::AnyHash
1411
+ ),
1412
+ schedule_items: T::Array[
1413
+ T.any(
1414
+ MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::ScheduleItem,
1415
+ MetronomeSDK::Internal::AnyHash
1416
+ )
1417
+ ]
1418
+ )
1419
+ .returns(T.attached_class)
1420
+ end
1421
+ def self.new(
1422
+ # Defaults to USD (cents) if not passed.
1423
+ credit_type_id: nil,
1424
+ # Enter the unit price and quantity for the charge or instead only send the
1425
+ # amount. If amount is sent, the unit price is assumed to be the amount and
1426
+ # quantity is inferred to be 1.
1427
+ recurring_schedule: nil,
1428
+ # Either provide amount or provide both unit_price and quantity.
1429
+ schedule_items: nil
1430
+ ); end
1431
+ sig do
1432
+ override
1433
+ .returns(
1434
+ {
1435
+ credit_type_id: String,
1436
+ recurring_schedule: MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule,
1437
+ schedule_items: T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::ScheduleItem]
1438
+ }
1439
+ )
1440
+ end
1441
+ def to_hash; end
1442
+
1443
+ class RecurringSchedule < MetronomeSDK::Internal::Type::BaseModel
1444
+ sig do
1445
+ returns(
1446
+ MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::AmountDistribution::OrSymbol
1447
+ )
1448
+ end
1449
+ attr_accessor :amount_distribution
1450
+
1451
+ # RFC 3339 timestamp (exclusive).
1452
+ sig { returns(Time) }
1453
+ attr_accessor :ending_before
1454
+
1455
+ sig do
1456
+ returns(
1457
+ MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::Frequency::OrSymbol
1458
+ )
1459
+ end
1460
+ attr_accessor :frequency
1461
+
1462
+ # RFC 3339 timestamp (inclusive).
1463
+ sig { returns(Time) }
1464
+ attr_accessor :starting_at
1465
+
1466
+ # Amount for the charge. Can be provided instead of unit_price and quantity. If
1467
+ # amount is sent, the unit_price is assumed to be the amount and quantity is
1468
+ # inferred to be 1.
1469
+ sig { returns(T.nilable(Float)) }
1470
+ attr_reader :amount
1471
+
1472
+ sig { params(amount: Float).void }
1473
+ attr_writer :amount
1474
+
1475
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
1476
+ # amount and must be specified with unit_price. If specified amount cannot be
1477
+ # provided.
1478
+ sig { returns(T.nilable(Float)) }
1479
+ attr_reader :quantity
1480
+
1481
+ sig { params(quantity: Float).void }
1482
+ attr_writer :quantity
1483
+
1484
+ # Unit price for the charge. Will be multiplied by quantity to determine the
1485
+ # amount and must be specified with quantity. If specified amount cannot be
1486
+ # provided.
1487
+ sig { returns(T.nilable(Float)) }
1488
+ attr_reader :unit_price
1489
+
1490
+ sig { params(unit_price: Float).void }
1491
+ attr_writer :unit_price
1492
+
1493
+ # Enter the unit price and quantity for the charge or instead only send the
1494
+ # amount. If amount is sent, the unit price is assumed to be the amount and
1495
+ # quantity is inferred to be 1.
1496
+ sig do
1497
+ params(
1498
+ amount_distribution: MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::AmountDistribution::OrSymbol,
1499
+ ending_before: Time,
1500
+ frequency: MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::Frequency::OrSymbol,
1501
+ starting_at: Time,
1502
+ amount: Float,
1503
+ quantity: Float,
1504
+ unit_price: Float
1505
+ )
1506
+ .returns(T.attached_class)
1507
+ end
1508
+ def self.new(
1509
+ amount_distribution:,
1510
+ # RFC 3339 timestamp (exclusive).
1511
+ ending_before:,
1512
+ frequency:,
1513
+ # RFC 3339 timestamp (inclusive).
1514
+ starting_at:,
1515
+ # Amount for the charge. Can be provided instead of unit_price and quantity. If
1516
+ # amount is sent, the unit_price is assumed to be the amount and quantity is
1517
+ # inferred to be 1.
1518
+ amount: nil,
1519
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
1520
+ # amount and must be specified with unit_price. If specified amount cannot be
1521
+ # provided.
1522
+ quantity: nil,
1523
+ # Unit price for the charge. Will be multiplied by quantity to determine the
1524
+ # amount and must be specified with quantity. If specified amount cannot be
1525
+ # provided.
1526
+ unit_price: nil
1527
+ ); end
1528
+ sig do
1529
+ override
1530
+ .returns(
1531
+ {
1532
+ amount_distribution: MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::AmountDistribution::OrSymbol,
1533
+ ending_before: Time,
1534
+ frequency: MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::Frequency::OrSymbol,
1535
+ starting_at: Time,
1536
+ amount: Float,
1537
+ quantity: Float,
1538
+ unit_price: Float
1539
+ }
1540
+ )
1541
+ end
1542
+ def to_hash; end
1543
+
1544
+ module AmountDistribution
1545
+ extend MetronomeSDK::Internal::Type::Enum
1546
+
1547
+ TaggedSymbol =
1548
+ T.type_alias do
1549
+ T.all(Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::AmountDistribution)
1550
+ end
1551
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1552
+
1553
+ DIVIDED =
1554
+ T.let(
1555
+ :DIVIDED,
1556
+ MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::AmountDistribution::TaggedSymbol
1557
+ )
1558
+ DIVIDED_ROUNDED =
1559
+ T.let(
1560
+ :DIVIDED_ROUNDED,
1561
+ MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::AmountDistribution::TaggedSymbol
1562
+ )
1563
+ EACH =
1564
+ T.let(
1565
+ :EACH,
1566
+ MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::AmountDistribution::TaggedSymbol
1567
+ )
1568
+
1569
+ sig do
1570
+ override
1571
+ .returns(
1572
+ T::Array[
1573
+ MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::AmountDistribution::TaggedSymbol
1574
+ ]
1575
+ )
1576
+ end
1577
+ def self.values; end
1578
+ end
1579
+
1580
+ module Frequency
1581
+ extend MetronomeSDK::Internal::Type::Enum
1582
+
1583
+ TaggedSymbol =
1584
+ T.type_alias do
1585
+ T.all(Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::Frequency)
1586
+ end
1587
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1588
+
1589
+ MONTHLY =
1590
+ T.let(
1591
+ :MONTHLY,
1592
+ MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::Frequency::TaggedSymbol
1593
+ )
1594
+ QUARTERLY =
1595
+ T.let(
1596
+ :QUARTERLY,
1597
+ MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::Frequency::TaggedSymbol
1598
+ )
1599
+ SEMI_ANNUAL =
1600
+ T.let(
1601
+ :SEMI_ANNUAL,
1602
+ MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::Frequency::TaggedSymbol
1603
+ )
1604
+ ANNUAL =
1605
+ T.let(
1606
+ :ANNUAL,
1607
+ MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::Frequency::TaggedSymbol
1608
+ )
1609
+
1610
+ sig do
1611
+ override
1612
+ .returns(
1613
+ T::Array[
1614
+ MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::Frequency::TaggedSymbol
1615
+ ]
1616
+ )
1617
+ end
1618
+ def self.values; end
1619
+ end
1620
+ end
1621
+
1622
+ class ScheduleItem < MetronomeSDK::Internal::Type::BaseModel
1623
+ # timestamp of the scheduled event
1624
+ sig { returns(Time) }
1625
+ attr_accessor :timestamp
1626
+
1627
+ # Amount for the charge. Can be provided instead of unit_price and quantity. If
1628
+ # amount is sent, the unit_price is assumed to be the amount and quantity is
1629
+ # inferred to be 1.
1630
+ sig { returns(T.nilable(Float)) }
1631
+ attr_reader :amount
1632
+
1633
+ sig { params(amount: Float).void }
1634
+ attr_writer :amount
1635
+
1636
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
1637
+ # amount and must be specified with unit_price. If specified amount cannot be
1638
+ # provided.
1639
+ sig { returns(T.nilable(Float)) }
1640
+ attr_reader :quantity
1641
+
1642
+ sig { params(quantity: Float).void }
1643
+ attr_writer :quantity
1644
+
1645
+ # Unit price for the charge. Will be multiplied by quantity to determine the
1646
+ # amount and must be specified with quantity. If specified amount cannot be
1647
+ # provided.
1648
+ sig { returns(T.nilable(Float)) }
1649
+ attr_reader :unit_price
1650
+
1651
+ sig { params(unit_price: Float).void }
1652
+ attr_writer :unit_price
1653
+
1654
+ sig do
1655
+ params(
1656
+ timestamp: Time,
1657
+ amount: Float,
1658
+ quantity: Float,
1659
+ unit_price: Float
1660
+ ).returns(T.attached_class)
1661
+ end
1662
+ def self.new(
1663
+ # timestamp of the scheduled event
1664
+ timestamp:,
1665
+ # Amount for the charge. Can be provided instead of unit_price and quantity. If
1666
+ # amount is sent, the unit_price is assumed to be the amount and quantity is
1667
+ # inferred to be 1.
1668
+ amount: nil,
1669
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
1670
+ # amount and must be specified with unit_price. If specified amount cannot be
1671
+ # provided.
1672
+ quantity: nil,
1673
+ # Unit price for the charge. Will be multiplied by quantity to determine the
1674
+ # amount and must be specified with quantity. If specified amount cannot be
1675
+ # provided.
1676
+ unit_price: nil
1677
+ ); end
1678
+ sig { override.returns({timestamp: Time, amount: Float, quantity: Float, unit_price: Float}) }
1679
+ def to_hash; end
1680
+ end
1681
+ end
1682
+ end
1683
+
1684
+ class Override < MetronomeSDK::Internal::Type::BaseModel
1685
+ # RFC 3339 timestamp indicating when the override will start applying (inclusive)
1686
+ sig { returns(Time) }
1687
+ attr_accessor :starting_at
1688
+
1689
+ # tags identifying products whose rates are being overridden. Cannot be used in
1690
+ # conjunction with override_specifiers.
1691
+ sig { returns(T.nilable(T::Array[String])) }
1692
+ attr_reader :applicable_product_tags
1693
+
1694
+ sig { params(applicable_product_tags: T::Array[String]).void }
1695
+ attr_writer :applicable_product_tags
1696
+
1697
+ # RFC 3339 timestamp indicating when the override will stop applying (exclusive)
1698
+ sig { returns(T.nilable(Time)) }
1699
+ attr_reader :ending_before
1700
+
1701
+ sig { params(ending_before: Time).void }
1702
+ attr_writer :ending_before
1703
+
1704
+ sig { returns(T.nilable(T::Boolean)) }
1705
+ attr_reader :entitled
1706
+
1707
+ sig { params(entitled: T::Boolean).void }
1708
+ attr_writer :entitled
1709
+
1710
+ # Indicates whether the override should only apply to commits. Defaults to
1711
+ # `false`. If `true`, you can specify relevant commits in `override_specifiers` by
1712
+ # passing `commit_ids`. if you do not specify `commit_ids`, then the override will
1713
+ # apply when consuming any prepaid or postpaid commit.
1714
+ sig { returns(T.nilable(T::Boolean)) }
1715
+ attr_reader :is_commit_specific
1716
+
1717
+ sig { params(is_commit_specific: T::Boolean).void }
1718
+ attr_writer :is_commit_specific
1719
+
1720
+ # Required for MULTIPLIER type. Must be >=0.
1721
+ sig { returns(T.nilable(Float)) }
1722
+ attr_reader :multiplier
1723
+
1724
+ sig { params(multiplier: Float).void }
1725
+ attr_writer :multiplier
1726
+
1727
+ # Cannot be used in conjunction with product_id or applicable_product_tags. If
1728
+ # provided, the override will apply to all products with the specified specifiers.
1729
+ sig { returns(T.nilable(T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Override::OverrideSpecifier])) }
1730
+ attr_reader :override_specifiers
1731
+
1732
+ sig do
1733
+ params(
1734
+ override_specifiers: T::Array[
1735
+ T.any(
1736
+ MetronomeSDK::Models::V1::ContractAmendParams::Override::OverrideSpecifier,
1737
+ MetronomeSDK::Internal::AnyHash
1738
+ )
1739
+ ]
1740
+ )
1741
+ .void
1742
+ end
1743
+ attr_writer :override_specifiers
1744
+
1745
+ # Required for OVERWRITE type.
1746
+ sig { returns(T.nilable(MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate)) }
1747
+ attr_reader :overwrite_rate
1748
+
1749
+ sig do
1750
+ params(
1751
+ overwrite_rate: T.any(
1752
+ MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate,
1753
+ MetronomeSDK::Internal::AnyHash
1754
+ )
1755
+ )
1756
+ .void
1757
+ end
1758
+ attr_writer :overwrite_rate
1759
+
1760
+ # Required for EXPLICIT multiplier prioritization scheme and all TIERED overrides.
1761
+ # Under EXPLICIT prioritization, overwrites are prioritized first, and then tiered
1762
+ # and multiplier overrides are prioritized by their priority value (lowest first).
1763
+ # Must be > 0.
1764
+ sig { returns(T.nilable(Float)) }
1765
+ attr_reader :priority
1766
+
1767
+ sig { params(priority: Float).void }
1768
+ attr_writer :priority
1769
+
1770
+ # ID of the product whose rate is being overridden. Cannot be used in conjunction
1771
+ # with override_specifiers.
1772
+ sig { returns(T.nilable(String)) }
1773
+ attr_reader :product_id
1774
+
1775
+ sig { params(product_id: String).void }
1776
+ attr_writer :product_id
1777
+
1778
+ # Indicates whether the override applies to commit rates or list rates. Can only
1779
+ # be used for overrides that have `is_commit_specific` set to `true`. Defaults to
1780
+ # `"LIST_RATE"`.
1781
+ sig { returns(T.nilable(MetronomeSDK::Models::V1::ContractAmendParams::Override::Target::OrSymbol)) }
1782
+ attr_reader :target
1783
+
1784
+ sig { params(target: MetronomeSDK::Models::V1::ContractAmendParams::Override::Target::OrSymbol).void }
1785
+ attr_writer :target
1786
+
1787
+ # Required for TIERED type. Must have at least one tier.
1788
+ sig { returns(T.nilable(T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Override::Tier])) }
1789
+ attr_reader :tiers
1790
+
1791
+ sig do
1792
+ params(
1793
+ tiers: T::Array[T.any(MetronomeSDK::Models::V1::ContractAmendParams::Override::Tier, MetronomeSDK::Internal::AnyHash)]
1794
+ )
1795
+ .void
1796
+ end
1797
+ attr_writer :tiers
1798
+
1799
+ # Overwrites are prioritized over multipliers and tiered overrides.
1800
+ sig { returns(T.nilable(MetronomeSDK::Models::V1::ContractAmendParams::Override::Type::OrSymbol)) }
1801
+ attr_reader :type
1802
+
1803
+ sig { params(type: MetronomeSDK::Models::V1::ContractAmendParams::Override::Type::OrSymbol).void }
1804
+ attr_writer :type
1805
+
1806
+ sig do
1807
+ params(
1808
+ starting_at: Time,
1809
+ applicable_product_tags: T::Array[String],
1810
+ ending_before: Time,
1811
+ entitled: T::Boolean,
1812
+ is_commit_specific: T::Boolean,
1813
+ multiplier: Float,
1814
+ override_specifiers: T::Array[
1815
+ T.any(
1816
+ MetronomeSDK::Models::V1::ContractAmendParams::Override::OverrideSpecifier,
1817
+ MetronomeSDK::Internal::AnyHash
1818
+ )
1819
+ ],
1820
+ overwrite_rate: T.any(
1821
+ MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate,
1822
+ MetronomeSDK::Internal::AnyHash
1823
+ ),
1824
+ priority: Float,
1825
+ product_id: String,
1826
+ target: MetronomeSDK::Models::V1::ContractAmendParams::Override::Target::OrSymbol,
1827
+ tiers: T::Array[T.any(MetronomeSDK::Models::V1::ContractAmendParams::Override::Tier, MetronomeSDK::Internal::AnyHash)],
1828
+ type: MetronomeSDK::Models::V1::ContractAmendParams::Override::Type::OrSymbol
1829
+ )
1830
+ .returns(T.attached_class)
1831
+ end
1832
+ def self.new(
1833
+ # RFC 3339 timestamp indicating when the override will start applying (inclusive)
1834
+ starting_at:,
1835
+ # tags identifying products whose rates are being overridden. Cannot be used in
1836
+ # conjunction with override_specifiers.
1837
+ applicable_product_tags: nil,
1838
+ # RFC 3339 timestamp indicating when the override will stop applying (exclusive)
1839
+ ending_before: nil,
1840
+ entitled: nil,
1841
+ # Indicates whether the override should only apply to commits. Defaults to
1842
+ # `false`. If `true`, you can specify relevant commits in `override_specifiers` by
1843
+ # passing `commit_ids`. if you do not specify `commit_ids`, then the override will
1844
+ # apply when consuming any prepaid or postpaid commit.
1845
+ is_commit_specific: nil,
1846
+ # Required for MULTIPLIER type. Must be >=0.
1847
+ multiplier: nil,
1848
+ # Cannot be used in conjunction with product_id or applicable_product_tags. If
1849
+ # provided, the override will apply to all products with the specified specifiers.
1850
+ override_specifiers: nil,
1851
+ # Required for OVERWRITE type.
1852
+ overwrite_rate: nil,
1853
+ # Required for EXPLICIT multiplier prioritization scheme and all TIERED overrides.
1854
+ # Under EXPLICIT prioritization, overwrites are prioritized first, and then tiered
1855
+ # and multiplier overrides are prioritized by their priority value (lowest first).
1856
+ # Must be > 0.
1857
+ priority: nil,
1858
+ # ID of the product whose rate is being overridden. Cannot be used in conjunction
1859
+ # with override_specifiers.
1860
+ product_id: nil,
1861
+ # Indicates whether the override applies to commit rates or list rates. Can only
1862
+ # be used for overrides that have `is_commit_specific` set to `true`. Defaults to
1863
+ # `"LIST_RATE"`.
1864
+ target: nil,
1865
+ # Required for TIERED type. Must have at least one tier.
1866
+ tiers: nil,
1867
+ # Overwrites are prioritized over multipliers and tiered overrides.
1868
+ type: nil
1869
+ ); end
1870
+ sig do
1871
+ override
1872
+ .returns(
1873
+ {
1874
+ starting_at: Time,
1875
+ applicable_product_tags: T::Array[String],
1876
+ ending_before: Time,
1877
+ entitled: T::Boolean,
1878
+ is_commit_specific: T::Boolean,
1879
+ multiplier: Float,
1880
+ override_specifiers: T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Override::OverrideSpecifier],
1881
+ overwrite_rate: MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate,
1882
+ priority: Float,
1883
+ product_id: String,
1884
+ target: MetronomeSDK::Models::V1::ContractAmendParams::Override::Target::OrSymbol,
1885
+ tiers: T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Override::Tier],
1886
+ type: MetronomeSDK::Models::V1::ContractAmendParams::Override::Type::OrSymbol
1887
+ }
1888
+ )
1889
+ end
1890
+ def to_hash; end
1891
+
1892
+ class OverrideSpecifier < MetronomeSDK::Internal::Type::BaseModel
1893
+ # Can only be used for commit specific overrides. Must be used in conjunction with
1894
+ # one of product_id, product_tags, pricing_group_values, or
1895
+ # presentation_group_values. If provided, the override will only apply to the
1896
+ # specified commits. If not provided, the override will apply to all commits.
1897
+ sig { returns(T.nilable(T::Array[String])) }
1898
+ attr_reader :commit_ids
1899
+
1900
+ sig { params(commit_ids: T::Array[String]).void }
1901
+ attr_writer :commit_ids
1902
+
1903
+ # A map of group names to values. The override will only apply to line items with
1904
+ # the specified presentation group values.
1905
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
1906
+ attr_reader :presentation_group_values
1907
+
1908
+ sig { params(presentation_group_values: T::Hash[Symbol, String]).void }
1909
+ attr_writer :presentation_group_values
1910
+
1911
+ # A map of pricing group names to values. The override will only apply to products
1912
+ # with the specified pricing group values.
1913
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
1914
+ attr_reader :pricing_group_values
1915
+
1916
+ sig { params(pricing_group_values: T::Hash[Symbol, String]).void }
1917
+ attr_writer :pricing_group_values
1918
+
1919
+ # If provided, the override will only apply to the product with the specified ID.
1920
+ sig { returns(T.nilable(String)) }
1921
+ attr_reader :product_id
1922
+
1923
+ sig { params(product_id: String).void }
1924
+ attr_writer :product_id
1925
+
1926
+ # If provided, the override will only apply to products with all the specified
1927
+ # tags.
1928
+ sig { returns(T.nilable(T::Array[String])) }
1929
+ attr_reader :product_tags
1930
+
1931
+ sig { params(product_tags: T::Array[String]).void }
1932
+ attr_writer :product_tags
1933
+
1934
+ # Can only be used for commit specific overrides. Must be used in conjunction with
1935
+ # one of product_id, product_tags, pricing_group_values, or
1936
+ # presentation_group_values. If provided, the override will only apply to commits
1937
+ # created by the specified recurring commit ids.
1938
+ sig { returns(T.nilable(T::Array[String])) }
1939
+ attr_reader :recurring_commit_ids
1940
+
1941
+ sig { params(recurring_commit_ids: T::Array[String]).void }
1942
+ attr_writer :recurring_commit_ids
1943
+
1944
+ # Can only be used for commit specific overrides. Must be used in conjunction with
1945
+ # one of product_id, product_tags, pricing_group_values, or
1946
+ # presentation_group_values. If provided, the override will only apply to credits
1947
+ # created by the specified recurring credit ids.
1948
+ sig { returns(T.nilable(T::Array[String])) }
1949
+ attr_reader :recurring_credit_ids
1950
+
1951
+ sig { params(recurring_credit_ids: T::Array[String]).void }
1952
+ attr_writer :recurring_credit_ids
1953
+
1954
+ sig do
1955
+ params(
1956
+ commit_ids: T::Array[String],
1957
+ presentation_group_values: T::Hash[Symbol, String],
1958
+ pricing_group_values: T::Hash[Symbol, String],
1959
+ product_id: String,
1960
+ product_tags: T::Array[String],
1961
+ recurring_commit_ids: T::Array[String],
1962
+ recurring_credit_ids: T::Array[String]
1963
+ )
1964
+ .returns(T.attached_class)
1965
+ end
1966
+ def self.new(
1967
+ # Can only be used for commit specific overrides. Must be used in conjunction with
1968
+ # one of product_id, product_tags, pricing_group_values, or
1969
+ # presentation_group_values. If provided, the override will only apply to the
1970
+ # specified commits. If not provided, the override will apply to all commits.
1971
+ commit_ids: nil,
1972
+ # A map of group names to values. The override will only apply to line items with
1973
+ # the specified presentation group values.
1974
+ presentation_group_values: nil,
1975
+ # A map of pricing group names to values. The override will only apply to products
1976
+ # with the specified pricing group values.
1977
+ pricing_group_values: nil,
1978
+ # If provided, the override will only apply to the product with the specified ID.
1979
+ product_id: nil,
1980
+ # If provided, the override will only apply to products with all the specified
1981
+ # tags.
1982
+ product_tags: nil,
1983
+ # Can only be used for commit specific overrides. Must be used in conjunction with
1984
+ # one of product_id, product_tags, pricing_group_values, or
1985
+ # presentation_group_values. If provided, the override will only apply to commits
1986
+ # created by the specified recurring commit ids.
1987
+ recurring_commit_ids: nil,
1988
+ # Can only be used for commit specific overrides. Must be used in conjunction with
1989
+ # one of product_id, product_tags, pricing_group_values, or
1990
+ # presentation_group_values. If provided, the override will only apply to credits
1991
+ # created by the specified recurring credit ids.
1992
+ recurring_credit_ids: nil
1993
+ ); end
1994
+ sig do
1995
+ override
1996
+ .returns(
1997
+ {
1998
+ commit_ids: T::Array[String],
1999
+ presentation_group_values: T::Hash[Symbol, String],
2000
+ pricing_group_values: T::Hash[Symbol, String],
2001
+ product_id: String,
2002
+ product_tags: T::Array[String],
2003
+ recurring_commit_ids: T::Array[String],
2004
+ recurring_credit_ids: T::Array[String]
2005
+ }
2006
+ )
2007
+ end
2008
+ def to_hash; end
2009
+ end
2010
+
2011
+ class OverwriteRate < MetronomeSDK::Internal::Type::BaseModel
2012
+ sig { returns(MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate::RateType::OrSymbol) }
2013
+ attr_accessor :rate_type
2014
+
2015
+ sig { returns(T.nilable(String)) }
2016
+ attr_reader :credit_type_id
2017
+
2018
+ sig { params(credit_type_id: String).void }
2019
+ attr_writer :credit_type_id
2020
+
2021
+ # Only set for CUSTOM rate_type. This field is interpreted by custom rate
2022
+ # processors.
2023
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
2024
+ attr_reader :custom_rate
2025
+
2026
+ sig { params(custom_rate: T::Hash[Symbol, T.anything]).void }
2027
+ attr_writer :custom_rate
2028
+
2029
+ # Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
2030
+ # set to true.
2031
+ sig { returns(T.nilable(T::Boolean)) }
2032
+ attr_reader :is_prorated
2033
+
2034
+ sig { params(is_prorated: T::Boolean).void }
2035
+ attr_writer :is_prorated
2036
+
2037
+ # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
2038
+ # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
2039
+ sig { returns(T.nilable(Float)) }
2040
+ attr_reader :price
2041
+
2042
+ sig { params(price: Float).void }
2043
+ attr_writer :price
2044
+
2045
+ # Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
2046
+ sig { returns(T.nilable(Float)) }
2047
+ attr_reader :quantity
2048
+
2049
+ sig { params(quantity: Float).void }
2050
+ attr_writer :quantity
2051
+
2052
+ # Only set for TIERED rate_type.
2053
+ sig { returns(T.nilable(T::Array[MetronomeSDK::Models::Tier])) }
2054
+ attr_reader :tiers
2055
+
2056
+ sig { params(tiers: T::Array[T.any(MetronomeSDK::Models::Tier, MetronomeSDK::Internal::AnyHash)]).void }
2057
+ attr_writer :tiers
2058
+
2059
+ # Required for OVERWRITE type.
2060
+ sig do
2061
+ params(
2062
+ rate_type: MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate::RateType::OrSymbol,
2063
+ credit_type_id: String,
2064
+ custom_rate: T::Hash[Symbol, T.anything],
2065
+ is_prorated: T::Boolean,
2066
+ price: Float,
2067
+ quantity: Float,
2068
+ tiers: T::Array[T.any(MetronomeSDK::Models::Tier, MetronomeSDK::Internal::AnyHash)]
2069
+ )
2070
+ .returns(T.attached_class)
2071
+ end
2072
+ def self.new(
2073
+ rate_type:,
2074
+ credit_type_id: nil,
2075
+ # Only set for CUSTOM rate_type. This field is interpreted by custom rate
2076
+ # processors.
2077
+ custom_rate: nil,
2078
+ # Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
2079
+ # set to true.
2080
+ is_prorated: nil,
2081
+ # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
2082
+ # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
2083
+ price: nil,
2084
+ # Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
2085
+ quantity: nil,
2086
+ # Only set for TIERED rate_type.
2087
+ tiers: nil
2088
+ ); end
2089
+ sig do
2090
+ override
2091
+ .returns(
2092
+ {
2093
+ rate_type: MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate::RateType::OrSymbol,
2094
+ credit_type_id: String,
2095
+ custom_rate: T::Hash[Symbol, T.anything],
2096
+ is_prorated: T::Boolean,
2097
+ price: Float,
2098
+ quantity: Float,
2099
+ tiers: T::Array[MetronomeSDK::Models::Tier]
2100
+ }
2101
+ )
2102
+ end
2103
+ def to_hash; end
2104
+
2105
+ module RateType
2106
+ extend MetronomeSDK::Internal::Type::Enum
2107
+
2108
+ TaggedSymbol =
2109
+ T.type_alias { T.all(Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate::RateType) }
2110
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2111
+
2112
+ FLAT =
2113
+ T.let(
2114
+ :FLAT,
2115
+ MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate::RateType::TaggedSymbol
2116
+ )
2117
+ PERCENTAGE =
2118
+ T.let(
2119
+ :PERCENTAGE,
2120
+ MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate::RateType::TaggedSymbol
2121
+ )
2122
+ SUBSCRIPTION =
2123
+ T.let(
2124
+ :SUBSCRIPTION,
2125
+ MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate::RateType::TaggedSymbol
2126
+ )
2127
+ TIERED =
2128
+ T.let(
2129
+ :TIERED,
2130
+ MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate::RateType::TaggedSymbol
2131
+ )
2132
+ CUSTOM =
2133
+ T.let(
2134
+ :CUSTOM,
2135
+ MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate::RateType::TaggedSymbol
2136
+ )
2137
+
2138
+ sig do
2139
+ override
2140
+ .returns(
2141
+ T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate::RateType::TaggedSymbol]
2142
+ )
2143
+ end
2144
+ def self.values; end
2145
+ end
2146
+ end
2147
+
2148
+ # Indicates whether the override applies to commit rates or list rates. Can only
2149
+ # be used for overrides that have `is_commit_specific` set to `true`. Defaults to
2150
+ # `"LIST_RATE"`.
2151
+ module Target
2152
+ extend MetronomeSDK::Internal::Type::Enum
2153
+
2154
+ TaggedSymbol =
2155
+ T.type_alias { T.all(Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Override::Target) }
2156
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2157
+
2158
+ COMMIT_RATE =
2159
+ T.let(:COMMIT_RATE, MetronomeSDK::Models::V1::ContractAmendParams::Override::Target::TaggedSymbol)
2160
+ LIST_RATE =
2161
+ T.let(:LIST_RATE, MetronomeSDK::Models::V1::ContractAmendParams::Override::Target::TaggedSymbol)
2162
+
2163
+ sig { override.returns(T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Override::Target::TaggedSymbol]) }
2164
+ def self.values; end
2165
+ end
2166
+
2167
+ class Tier < MetronomeSDK::Internal::Type::BaseModel
2168
+ sig { returns(Float) }
2169
+ attr_accessor :multiplier
2170
+
2171
+ sig { returns(T.nilable(Float)) }
2172
+ attr_reader :size
2173
+
2174
+ sig { params(size: Float).void }
2175
+ attr_writer :size
2176
+
2177
+ sig { params(multiplier: Float, size: Float).returns(T.attached_class) }
2178
+ def self.new(multiplier:, size: nil); end
2179
+
2180
+ sig { override.returns({multiplier: Float, size: Float}) }
2181
+ def to_hash; end
2182
+ end
2183
+
2184
+ # Overwrites are prioritized over multipliers and tiered overrides.
2185
+ module Type
2186
+ extend MetronomeSDK::Internal::Type::Enum
2187
+
2188
+ TaggedSymbol =
2189
+ T.type_alias { T.all(Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Override::Type) }
2190
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2191
+
2192
+ OVERWRITE =
2193
+ T.let(:OVERWRITE, MetronomeSDK::Models::V1::ContractAmendParams::Override::Type::TaggedSymbol)
2194
+ MULTIPLIER =
2195
+ T.let(:MULTIPLIER, MetronomeSDK::Models::V1::ContractAmendParams::Override::Type::TaggedSymbol)
2196
+ TIERED = T.let(:TIERED, MetronomeSDK::Models::V1::ContractAmendParams::Override::Type::TaggedSymbol)
2197
+
2198
+ sig { override.returns(T::Array[MetronomeSDK::Models::V1::ContractAmendParams::Override::Type::TaggedSymbol]) }
2199
+ def self.values; end
2200
+ end
2201
+ end
2202
+
2203
+ class ProfessionalService < MetronomeSDK::Internal::Type::BaseModel
2204
+ # Maximum amount for the term.
2205
+ sig { returns(Float) }
2206
+ attr_accessor :max_amount
2207
+
2208
+ sig { returns(String) }
2209
+ attr_accessor :product_id
2210
+
2211
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
2212
+ # amount.
2213
+ sig { returns(Float) }
2214
+ attr_accessor :quantity
2215
+
2216
+ # Unit price for the charge. Will be multiplied by quantity to determine the
2217
+ # amount and must be specified.
2218
+ sig { returns(Float) }
2219
+ attr_accessor :unit_price
2220
+
2221
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
2222
+ attr_reader :custom_fields
2223
+
2224
+ sig { params(custom_fields: T::Hash[Symbol, String]).void }
2225
+ attr_writer :custom_fields
2226
+
2227
+ sig { returns(T.nilable(String)) }
2228
+ attr_reader :description
2229
+
2230
+ sig { params(description: String).void }
2231
+ attr_writer :description
2232
+
2233
+ # This field's availability is dependent on your client's configuration.
2234
+ sig { returns(T.nilable(String)) }
2235
+ attr_reader :netsuite_sales_order_id
2236
+
2237
+ sig { params(netsuite_sales_order_id: String).void }
2238
+ attr_writer :netsuite_sales_order_id
2239
+
2240
+ sig do
2241
+ params(
2242
+ max_amount: Float,
2243
+ product_id: String,
2244
+ quantity: Float,
2245
+ unit_price: Float,
2246
+ custom_fields: T::Hash[Symbol, String],
2247
+ description: String,
2248
+ netsuite_sales_order_id: String
2249
+ )
2250
+ .returns(T.attached_class)
2251
+ end
2252
+ def self.new(
2253
+ # Maximum amount for the term.
2254
+ max_amount:,
2255
+ product_id:,
2256
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
2257
+ # amount.
2258
+ quantity:,
2259
+ # Unit price for the charge. Will be multiplied by quantity to determine the
2260
+ # amount and must be specified.
2261
+ unit_price:,
2262
+ custom_fields: nil,
2263
+ description: nil,
2264
+ # This field's availability is dependent on your client's configuration.
2265
+ netsuite_sales_order_id: nil
2266
+ ); end
2267
+ sig do
2268
+ override
2269
+ .returns(
2270
+ {
2271
+ max_amount: Float,
2272
+ product_id: String,
2273
+ quantity: Float,
2274
+ unit_price: Float,
2275
+ custom_fields: T::Hash[Symbol, String],
2276
+ description: String,
2277
+ netsuite_sales_order_id: String
2278
+ }
2279
+ )
2280
+ end
2281
+ def to_hash; end
2282
+ end
2283
+
2284
+ class ResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel
2285
+ sig { returns(MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::ResellerType::OrSymbol) }
2286
+ attr_accessor :reseller_type
2287
+
2288
+ # Must provide at least one of applicable_product_ids or applicable_product_tags.
2289
+ sig { returns(T.nilable(T::Array[String])) }
2290
+ attr_reader :applicable_product_ids
2291
+
2292
+ sig { params(applicable_product_ids: T::Array[String]).void }
2293
+ attr_writer :applicable_product_ids
2294
+
2295
+ # Must provide at least one of applicable_product_ids or applicable_product_tags.
2296
+ sig { returns(T.nilable(T::Array[String])) }
2297
+ attr_reader :applicable_product_tags
2298
+
2299
+ sig { params(applicable_product_tags: T::Array[String]).void }
2300
+ attr_writer :applicable_product_tags
2301
+
2302
+ sig { returns(T.nilable(MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::AwsOptions)) }
2303
+ attr_reader :aws_options
2304
+
2305
+ sig do
2306
+ params(
2307
+ aws_options: T.any(
2308
+ MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::AwsOptions,
2309
+ MetronomeSDK::Internal::AnyHash
2310
+ )
2311
+ )
2312
+ .void
2313
+ end
2314
+ attr_writer :aws_options
2315
+
2316
+ # Use null to indicate that the existing end timestamp should be removed.
2317
+ sig { returns(T.nilable(Time)) }
2318
+ attr_accessor :ending_before
2319
+
2320
+ sig { returns(T.nilable(Float)) }
2321
+ attr_reader :fraction
2322
+
2323
+ sig { params(fraction: Float).void }
2324
+ attr_writer :fraction
2325
+
2326
+ sig { returns(T.nilable(MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::GcpOptions)) }
2327
+ attr_reader :gcp_options
2328
+
2329
+ sig do
2330
+ params(
2331
+ gcp_options: T.any(
2332
+ MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::GcpOptions,
2333
+ MetronomeSDK::Internal::AnyHash
2334
+ )
2335
+ )
2336
+ .void
2337
+ end
2338
+ attr_writer :gcp_options
2339
+
2340
+ sig { returns(T.nilable(String)) }
2341
+ attr_reader :netsuite_reseller_id
2342
+
2343
+ sig { params(netsuite_reseller_id: String).void }
2344
+ attr_writer :netsuite_reseller_id
2345
+
2346
+ sig { returns(T.nilable(Float)) }
2347
+ attr_reader :reseller_contract_value
2348
+
2349
+ sig { params(reseller_contract_value: Float).void }
2350
+ attr_writer :reseller_contract_value
2351
+
2352
+ sig { returns(T.nilable(Time)) }
2353
+ attr_reader :starting_at
2354
+
2355
+ sig { params(starting_at: Time).void }
2356
+ attr_writer :starting_at
2357
+
2358
+ sig do
2359
+ params(
2360
+ reseller_type: MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::ResellerType::OrSymbol,
2361
+ applicable_product_ids: T::Array[String],
2362
+ applicable_product_tags: T::Array[String],
2363
+ aws_options: T.any(
2364
+ MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::AwsOptions,
2365
+ MetronomeSDK::Internal::AnyHash
2366
+ ),
2367
+ ending_before: T.nilable(Time),
2368
+ fraction: Float,
2369
+ gcp_options: T.any(
2370
+ MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::GcpOptions,
2371
+ MetronomeSDK::Internal::AnyHash
2372
+ ),
2373
+ netsuite_reseller_id: String,
2374
+ reseller_contract_value: Float,
2375
+ starting_at: Time
2376
+ )
2377
+ .returns(T.attached_class)
2378
+ end
2379
+ def self.new(
2380
+ reseller_type:,
2381
+ # Must provide at least one of applicable_product_ids or applicable_product_tags.
2382
+ applicable_product_ids: nil,
2383
+ # Must provide at least one of applicable_product_ids or applicable_product_tags.
2384
+ applicable_product_tags: nil,
2385
+ aws_options: nil,
2386
+ # Use null to indicate that the existing end timestamp should be removed.
2387
+ ending_before: nil,
2388
+ fraction: nil,
2389
+ gcp_options: nil,
2390
+ netsuite_reseller_id: nil,
2391
+ reseller_contract_value: nil,
2392
+ starting_at: nil
2393
+ ); end
2394
+ sig do
2395
+ override
2396
+ .returns(
2397
+ {
2398
+ reseller_type: MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::ResellerType::OrSymbol,
2399
+ applicable_product_ids: T::Array[String],
2400
+ applicable_product_tags: T::Array[String],
2401
+ aws_options: MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::AwsOptions,
2402
+ ending_before: T.nilable(Time),
2403
+ fraction: Float,
2404
+ gcp_options: MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::GcpOptions,
2405
+ netsuite_reseller_id: String,
2406
+ reseller_contract_value: Float,
2407
+ starting_at: Time
2408
+ }
2409
+ )
2410
+ end
2411
+ def to_hash; end
2412
+
2413
+ module ResellerType
2414
+ extend MetronomeSDK::Internal::Type::Enum
2415
+
2416
+ TaggedSymbol =
2417
+ T.type_alias { T.all(Symbol, MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::ResellerType) }
2418
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2419
+
2420
+ AWS =
2421
+ T.let(:AWS, MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::ResellerType::TaggedSymbol)
2422
+ AWS_PRO_SERVICE =
2423
+ T.let(
2424
+ :AWS_PRO_SERVICE,
2425
+ MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::ResellerType::TaggedSymbol
2426
+ )
2427
+ GCP =
2428
+ T.let(:GCP, MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::ResellerType::TaggedSymbol)
2429
+ GCP_PRO_SERVICE =
2430
+ T.let(
2431
+ :GCP_PRO_SERVICE,
2432
+ MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::ResellerType::TaggedSymbol
2433
+ )
2434
+
2435
+ sig do
2436
+ override
2437
+ .returns(
2438
+ T::Array[MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::ResellerType::TaggedSymbol]
2439
+ )
2440
+ end
2441
+ def self.values; end
2442
+ end
2443
+
2444
+ class AwsOptions < MetronomeSDK::Internal::Type::BaseModel
2445
+ sig { returns(T.nilable(String)) }
2446
+ attr_reader :aws_account_number
2447
+
2448
+ sig { params(aws_account_number: String).void }
2449
+ attr_writer :aws_account_number
2450
+
2451
+ sig { returns(T.nilable(String)) }
2452
+ attr_reader :aws_offer_id
2453
+
2454
+ sig { params(aws_offer_id: String).void }
2455
+ attr_writer :aws_offer_id
2456
+
2457
+ sig { returns(T.nilable(String)) }
2458
+ attr_reader :aws_payer_reference_id
2459
+
2460
+ sig { params(aws_payer_reference_id: String).void }
2461
+ attr_writer :aws_payer_reference_id
2462
+
2463
+ sig do
2464
+ params(aws_account_number: String, aws_offer_id: String, aws_payer_reference_id: String)
2465
+ .returns(T.attached_class)
2466
+ end
2467
+ def self.new(aws_account_number: nil, aws_offer_id: nil, aws_payer_reference_id: nil); end
2468
+
2469
+ sig do
2470
+ override.returns(
2471
+ {
2472
+ aws_account_number: String,
2473
+ aws_offer_id: String,
2474
+ aws_payer_reference_id: String
2475
+ }
2476
+ )
2477
+ end
2478
+ def to_hash; end
2479
+ end
2480
+
2481
+ class GcpOptions < MetronomeSDK::Internal::Type::BaseModel
2482
+ sig { returns(T.nilable(String)) }
2483
+ attr_reader :gcp_account_id
2484
+
2485
+ sig { params(gcp_account_id: String).void }
2486
+ attr_writer :gcp_account_id
2487
+
2488
+ sig { returns(T.nilable(String)) }
2489
+ attr_reader :gcp_offer_id
2490
+
2491
+ sig { params(gcp_offer_id: String).void }
2492
+ attr_writer :gcp_offer_id
2493
+
2494
+ sig { params(gcp_account_id: String, gcp_offer_id: String).returns(T.attached_class) }
2495
+ def self.new(gcp_account_id: nil, gcp_offer_id: nil); end
2496
+
2497
+ sig { override.returns({gcp_account_id: String, gcp_offer_id: String}) }
2498
+ def to_hash; end
2499
+ end
2500
+ end
2501
+
2502
+ class ScheduledCharge < MetronomeSDK::Internal::Type::BaseModel
2503
+ sig { returns(String) }
2504
+ attr_accessor :product_id
2505
+
2506
+ # Must provide either schedule_items or recurring_schedule.
2507
+ sig { returns(MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule) }
2508
+ attr_reader :schedule
2509
+
2510
+ sig do
2511
+ params(
2512
+ schedule: T.any(
2513
+ MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule,
2514
+ MetronomeSDK::Internal::AnyHash
2515
+ )
2516
+ )
2517
+ .void
2518
+ end
2519
+ attr_writer :schedule
2520
+
2521
+ # displayed on invoices
2522
+ sig { returns(T.nilable(String)) }
2523
+ attr_reader :name
2524
+
2525
+ sig { params(name: String).void }
2526
+ attr_writer :name
2527
+
2528
+ # This field's availability is dependent on your client's configuration.
2529
+ sig { returns(T.nilable(String)) }
2530
+ attr_reader :netsuite_sales_order_id
2531
+
2532
+ sig { params(netsuite_sales_order_id: String).void }
2533
+ attr_writer :netsuite_sales_order_id
2534
+
2535
+ sig do
2536
+ params(
2537
+ product_id: String,
2538
+ schedule: T.any(
2539
+ MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule,
2540
+ MetronomeSDK::Internal::AnyHash
2541
+ ),
2542
+ name: String,
2543
+ netsuite_sales_order_id: String
2544
+ )
2545
+ .returns(T.attached_class)
2546
+ end
2547
+ def self.new(
2548
+ product_id:,
2549
+ # Must provide either schedule_items or recurring_schedule.
2550
+ schedule:,
2551
+ # displayed on invoices
2552
+ name: nil,
2553
+ # This field's availability is dependent on your client's configuration.
2554
+ netsuite_sales_order_id: nil
2555
+ ); end
2556
+ sig do
2557
+ override
2558
+ .returns(
2559
+ {
2560
+ product_id: String,
2561
+ schedule: MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule,
2562
+ name: String,
2563
+ netsuite_sales_order_id: String
2564
+ }
2565
+ )
2566
+ end
2567
+ def to_hash; end
2568
+
2569
+ class Schedule < MetronomeSDK::Internal::Type::BaseModel
2570
+ # Defaults to USD (cents) if not passed.
2571
+ sig { returns(T.nilable(String)) }
2572
+ attr_reader :credit_type_id
2573
+
2574
+ sig { params(credit_type_id: String).void }
2575
+ attr_writer :credit_type_id
2576
+
2577
+ # Enter the unit price and quantity for the charge or instead only send the
2578
+ # amount. If amount is sent, the unit price is assumed to be the amount and
2579
+ # quantity is inferred to be 1.
2580
+ sig do
2581
+ returns(
2582
+ T.nilable(MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule)
2583
+ )
2584
+ end
2585
+ attr_reader :recurring_schedule
2586
+
2587
+ sig do
2588
+ params(
2589
+ recurring_schedule: T.any(
2590
+ MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule,
2591
+ MetronomeSDK::Internal::AnyHash
2592
+ )
2593
+ )
2594
+ .void
2595
+ end
2596
+ attr_writer :recurring_schedule
2597
+
2598
+ # Either provide amount or provide both unit_price and quantity.
2599
+ sig do
2600
+ returns(
2601
+ T.nilable(
2602
+ T::Array[MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::ScheduleItem]
2603
+ )
2604
+ )
2605
+ end
2606
+ attr_reader :schedule_items
2607
+
2608
+ sig do
2609
+ params(
2610
+ schedule_items: T::Array[
2611
+ T.any(
2612
+ MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::ScheduleItem,
2613
+ MetronomeSDK::Internal::AnyHash
2614
+ )
2615
+ ]
2616
+ )
2617
+ .void
2618
+ end
2619
+ attr_writer :schedule_items
2620
+
2621
+ # Must provide either schedule_items or recurring_schedule.
2622
+ sig do
2623
+ params(
2624
+ credit_type_id: String,
2625
+ recurring_schedule: T.any(
2626
+ MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule,
2627
+ MetronomeSDK::Internal::AnyHash
2628
+ ),
2629
+ schedule_items: T::Array[
2630
+ T.any(
2631
+ MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::ScheduleItem,
2632
+ MetronomeSDK::Internal::AnyHash
2633
+ )
2634
+ ]
2635
+ )
2636
+ .returns(T.attached_class)
2637
+ end
2638
+ def self.new(
2639
+ # Defaults to USD (cents) if not passed.
2640
+ credit_type_id: nil,
2641
+ # Enter the unit price and quantity for the charge or instead only send the
2642
+ # amount. If amount is sent, the unit price is assumed to be the amount and
2643
+ # quantity is inferred to be 1.
2644
+ recurring_schedule: nil,
2645
+ # Either provide amount or provide both unit_price and quantity.
2646
+ schedule_items: nil
2647
+ ); end
2648
+ sig do
2649
+ override
2650
+ .returns(
2651
+ {
2652
+ credit_type_id: String,
2653
+ recurring_schedule: MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule,
2654
+ schedule_items: T::Array[MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::ScheduleItem]
2655
+ }
2656
+ )
2657
+ end
2658
+ def to_hash; end
2659
+
2660
+ class RecurringSchedule < MetronomeSDK::Internal::Type::BaseModel
2661
+ sig do
2662
+ returns(
2663
+ MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::AmountDistribution::OrSymbol
2664
+ )
2665
+ end
2666
+ attr_accessor :amount_distribution
2667
+
2668
+ # RFC 3339 timestamp (exclusive).
2669
+ sig { returns(Time) }
2670
+ attr_accessor :ending_before
2671
+
2672
+ sig do
2673
+ returns(
2674
+ MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::Frequency::OrSymbol
2675
+ )
2676
+ end
2677
+ attr_accessor :frequency
2678
+
2679
+ # RFC 3339 timestamp (inclusive).
2680
+ sig { returns(Time) }
2681
+ attr_accessor :starting_at
2682
+
2683
+ # Amount for the charge. Can be provided instead of unit_price and quantity. If
2684
+ # amount is sent, the unit_price is assumed to be the amount and quantity is
2685
+ # inferred to be 1.
2686
+ sig { returns(T.nilable(Float)) }
2687
+ attr_reader :amount
2688
+
2689
+ sig { params(amount: Float).void }
2690
+ attr_writer :amount
2691
+
2692
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
2693
+ # amount and must be specified with unit_price. If specified amount cannot be
2694
+ # provided.
2695
+ sig { returns(T.nilable(Float)) }
2696
+ attr_reader :quantity
2697
+
2698
+ sig { params(quantity: Float).void }
2699
+ attr_writer :quantity
2700
+
2701
+ # Unit price for the charge. Will be multiplied by quantity to determine the
2702
+ # amount and must be specified with quantity. If specified amount cannot be
2703
+ # provided.
2704
+ sig { returns(T.nilable(Float)) }
2705
+ attr_reader :unit_price
2706
+
2707
+ sig { params(unit_price: Float).void }
2708
+ attr_writer :unit_price
2709
+
2710
+ # Enter the unit price and quantity for the charge or instead only send the
2711
+ # amount. If amount is sent, the unit price is assumed to be the amount and
2712
+ # quantity is inferred to be 1.
2713
+ sig do
2714
+ params(
2715
+ amount_distribution: MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::AmountDistribution::OrSymbol,
2716
+ ending_before: Time,
2717
+ frequency: MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::Frequency::OrSymbol,
2718
+ starting_at: Time,
2719
+ amount: Float,
2720
+ quantity: Float,
2721
+ unit_price: Float
2722
+ )
2723
+ .returns(T.attached_class)
2724
+ end
2725
+ def self.new(
2726
+ amount_distribution:,
2727
+ # RFC 3339 timestamp (exclusive).
2728
+ ending_before:,
2729
+ frequency:,
2730
+ # RFC 3339 timestamp (inclusive).
2731
+ starting_at:,
2732
+ # Amount for the charge. Can be provided instead of unit_price and quantity. If
2733
+ # amount is sent, the unit_price is assumed to be the amount and quantity is
2734
+ # inferred to be 1.
2735
+ amount: nil,
2736
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
2737
+ # amount and must be specified with unit_price. If specified amount cannot be
2738
+ # provided.
2739
+ quantity: nil,
2740
+ # Unit price for the charge. Will be multiplied by quantity to determine the
2741
+ # amount and must be specified with quantity. If specified amount cannot be
2742
+ # provided.
2743
+ unit_price: nil
2744
+ ); end
2745
+ sig do
2746
+ override
2747
+ .returns(
2748
+ {
2749
+ amount_distribution: MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::AmountDistribution::OrSymbol,
2750
+ ending_before: Time,
2751
+ frequency: MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::Frequency::OrSymbol,
2752
+ starting_at: Time,
2753
+ amount: Float,
2754
+ quantity: Float,
2755
+ unit_price: Float
2756
+ }
2757
+ )
2758
+ end
2759
+ def to_hash; end
2760
+
2761
+ module AmountDistribution
2762
+ extend MetronomeSDK::Internal::Type::Enum
2763
+
2764
+ TaggedSymbol =
2765
+ T.type_alias do
2766
+ T.all(Symbol, MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::AmountDistribution)
2767
+ end
2768
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2769
+
2770
+ DIVIDED =
2771
+ T.let(
2772
+ :DIVIDED,
2773
+ MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::AmountDistribution::TaggedSymbol
2774
+ )
2775
+ DIVIDED_ROUNDED =
2776
+ T.let(
2777
+ :DIVIDED_ROUNDED,
2778
+ MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::AmountDistribution::TaggedSymbol
2779
+ )
2780
+ EACH =
2781
+ T.let(
2782
+ :EACH,
2783
+ MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::AmountDistribution::TaggedSymbol
2784
+ )
2785
+
2786
+ sig do
2787
+ override
2788
+ .returns(
2789
+ T::Array[
2790
+ MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::AmountDistribution::TaggedSymbol
2791
+ ]
2792
+ )
2793
+ end
2794
+ def self.values; end
2795
+ end
2796
+
2797
+ module Frequency
2798
+ extend MetronomeSDK::Internal::Type::Enum
2799
+
2800
+ TaggedSymbol =
2801
+ T.type_alias do
2802
+ T.all(Symbol, MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::Frequency)
2803
+ end
2804
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2805
+
2806
+ MONTHLY =
2807
+ T.let(
2808
+ :MONTHLY,
2809
+ MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::Frequency::TaggedSymbol
2810
+ )
2811
+ QUARTERLY =
2812
+ T.let(
2813
+ :QUARTERLY,
2814
+ MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::Frequency::TaggedSymbol
2815
+ )
2816
+ SEMI_ANNUAL =
2817
+ T.let(
2818
+ :SEMI_ANNUAL,
2819
+ MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::Frequency::TaggedSymbol
2820
+ )
2821
+ ANNUAL =
2822
+ T.let(
2823
+ :ANNUAL,
2824
+ MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::Frequency::TaggedSymbol
2825
+ )
2826
+
2827
+ sig do
2828
+ override
2829
+ .returns(
2830
+ T::Array[
2831
+ MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::Frequency::TaggedSymbol
2832
+ ]
2833
+ )
2834
+ end
2835
+ def self.values; end
2836
+ end
2837
+ end
2838
+
2839
+ class ScheduleItem < MetronomeSDK::Internal::Type::BaseModel
2840
+ # timestamp of the scheduled event
2841
+ sig { returns(Time) }
2842
+ attr_accessor :timestamp
2843
+
2844
+ # Amount for the charge. Can be provided instead of unit_price and quantity. If
2845
+ # amount is sent, the unit_price is assumed to be the amount and quantity is
2846
+ # inferred to be 1.
2847
+ sig { returns(T.nilable(Float)) }
2848
+ attr_reader :amount
2849
+
2850
+ sig { params(amount: Float).void }
2851
+ attr_writer :amount
2852
+
2853
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
2854
+ # amount and must be specified with unit_price. If specified amount cannot be
2855
+ # provided.
2856
+ sig { returns(T.nilable(Float)) }
2857
+ attr_reader :quantity
2858
+
2859
+ sig { params(quantity: Float).void }
2860
+ attr_writer :quantity
2861
+
2862
+ # Unit price for the charge. Will be multiplied by quantity to determine the
2863
+ # amount and must be specified with quantity. If specified amount cannot be
2864
+ # provided.
2865
+ sig { returns(T.nilable(Float)) }
2866
+ attr_reader :unit_price
2867
+
2868
+ sig { params(unit_price: Float).void }
2869
+ attr_writer :unit_price
2870
+
2871
+ sig do
2872
+ params(
2873
+ timestamp: Time,
2874
+ amount: Float,
2875
+ quantity: Float,
2876
+ unit_price: Float
2877
+ ).returns(T.attached_class)
2878
+ end
2879
+ def self.new(
2880
+ # timestamp of the scheduled event
2881
+ timestamp:,
2882
+ # Amount for the charge. Can be provided instead of unit_price and quantity. If
2883
+ # amount is sent, the unit_price is assumed to be the amount and quantity is
2884
+ # inferred to be 1.
2885
+ amount: nil,
2886
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
2887
+ # amount and must be specified with unit_price. If specified amount cannot be
2888
+ # provided.
2889
+ quantity: nil,
2890
+ # Unit price for the charge. Will be multiplied by quantity to determine the
2891
+ # amount and must be specified with quantity. If specified amount cannot be
2892
+ # provided.
2893
+ unit_price: nil
2894
+ ); end
2895
+ sig { override.returns({timestamp: Time, amount: Float, quantity: Float, unit_price: Float}) }
2896
+ def to_hash; end
2897
+ end
2898
+ end
2899
+ end
2900
+ end
2901
+ end
2902
+ end
2903
+ end