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