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,1778 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ module V1
6
+ # @see MetronomeSDK::Resources::V1::Contracts#amend
7
+ class ContractAmendParams < 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 to amend
13
+ #
14
+ # @return [String]
15
+ required :contract_id, String
16
+
17
+ # @!attribute customer_id
18
+ # ID of the customer whose contract is to be amended
19
+ #
20
+ # @return [String]
21
+ required :customer_id, String
22
+
23
+ # @!attribute starting_at
24
+ # inclusive start time for the amendment
25
+ #
26
+ # @return [Time]
27
+ required :starting_at, Time
28
+
29
+ # @!attribute commits
30
+ #
31
+ # @return [Array<MetronomeSDK::Models::V1::ContractAmendParams::Commit>, nil]
32
+ optional :commits,
33
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V1::ContractAmendParams::Commit] }
34
+
35
+ # @!attribute credits
36
+ #
37
+ # @return [Array<MetronomeSDK::Models::V1::ContractAmendParams::Credit>, nil]
38
+ optional :credits,
39
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V1::ContractAmendParams::Credit] }
40
+
41
+ # @!attribute custom_fields
42
+ #
43
+ # @return [Hash{Symbol=>String}, nil]
44
+ optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
45
+
46
+ # @!attribute discounts
47
+ # This field's availability is dependent on your client's configuration.
48
+ #
49
+ # @return [Array<MetronomeSDK::Models::V1::ContractAmendParams::Discount>, nil]
50
+ optional :discounts,
51
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V1::ContractAmendParams::Discount] }
52
+
53
+ # @!attribute netsuite_sales_order_id
54
+ # This field's availability is dependent on your client's configuration.
55
+ #
56
+ # @return [String, nil]
57
+ optional :netsuite_sales_order_id, String
58
+
59
+ # @!attribute overrides
60
+ #
61
+ # @return [Array<MetronomeSDK::Models::V1::ContractAmendParams::Override>, nil]
62
+ optional :overrides,
63
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V1::ContractAmendParams::Override] }
64
+
65
+ # @!attribute professional_services
66
+ # This field's availability is dependent on your client's configuration.
67
+ #
68
+ # @return [Array<MetronomeSDK::Models::V1::ContractAmendParams::ProfessionalService>, nil]
69
+ optional :professional_services,
70
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V1::ContractAmendParams::ProfessionalService] }
71
+
72
+ # @!attribute reseller_royalties
73
+ # This field's availability is dependent on your client's configuration.
74
+ #
75
+ # @return [Array<MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty>, nil]
76
+ optional :reseller_royalties,
77
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty] }
78
+
79
+ # @!attribute salesforce_opportunity_id
80
+ # This field's availability is dependent on your client's configuration.
81
+ #
82
+ # @return [String, nil]
83
+ optional :salesforce_opportunity_id, String
84
+
85
+ # @!attribute scheduled_charges
86
+ #
87
+ # @return [Array<MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge>, nil]
88
+ optional :scheduled_charges,
89
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge] }
90
+
91
+ # @!attribute total_contract_value
92
+ # This field's availability is dependent on your client's configuration.
93
+ #
94
+ # @return [Float, nil]
95
+ optional :total_contract_value, Float
96
+
97
+ # @!method initialize(contract_id:, customer_id:, starting_at:, commits: nil, credits: nil, custom_fields: nil, discounts: nil, netsuite_sales_order_id: nil, overrides: nil, professional_services: nil, reseller_royalties: nil, salesforce_opportunity_id: nil, scheduled_charges: nil, total_contract_value: nil, request_options: {})
98
+ # @param contract_id [String] ID of the contract to amend
99
+ #
100
+ # @param customer_id [String] ID of the customer whose contract is to be amended
101
+ #
102
+ # @param starting_at [Time] inclusive start time for the amendment
103
+ #
104
+ # @param commits [Array<MetronomeSDK::Models::V1::ContractAmendParams::Commit>]
105
+ #
106
+ # @param credits [Array<MetronomeSDK::Models::V1::ContractAmendParams::Credit>]
107
+ #
108
+ # @param custom_fields [Hash{Symbol=>String}]
109
+ #
110
+ # @param discounts [Array<MetronomeSDK::Models::V1::ContractAmendParams::Discount>] This field's availability is dependent on your client's configuration.
111
+ #
112
+ # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
113
+ #
114
+ # @param overrides [Array<MetronomeSDK::Models::V1::ContractAmendParams::Override>]
115
+ #
116
+ # @param professional_services [Array<MetronomeSDK::Models::V1::ContractAmendParams::ProfessionalService>] This field's availability is dependent on your client's configuration.
117
+ #
118
+ # @param reseller_royalties [Array<MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty>] This field's availability is dependent on your client's configuration.
119
+ #
120
+ # @param salesforce_opportunity_id [String] This field's availability is dependent on your client's configuration.
121
+ #
122
+ # @param scheduled_charges [Array<MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge>]
123
+ #
124
+ # @param total_contract_value [Float] This field's availability is dependent on your client's configuration.
125
+ #
126
+ # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
127
+
128
+ class Commit < MetronomeSDK::Internal::Type::BaseModel
129
+ # @!attribute product_id
130
+ #
131
+ # @return [String]
132
+ required :product_id, String
133
+
134
+ # @!attribute type
135
+ #
136
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::Type]
137
+ required :type, enum: -> { MetronomeSDK::Models::V1::ContractAmendParams::Commit::Type }
138
+
139
+ # @!attribute access_schedule
140
+ # Required: Schedule for distributing the commit to the customer. For "POSTPAID"
141
+ # commits only one schedule item is allowed and amount must match invoice_schedule
142
+ # total.
143
+ #
144
+ # @return [MetronomeSDK::Models::V1::ContractAmendParams::Commit::AccessSchedule, nil]
145
+ optional :access_schedule, -> { MetronomeSDK::Models::V1::ContractAmendParams::Commit::AccessSchedule }
146
+
147
+ # @!attribute amount
148
+ # (DEPRECATED) Use access_schedule and invoice_schedule instead.
149
+ #
150
+ # @return [Float, nil]
151
+ optional :amount, Float
152
+
153
+ # @!attribute applicable_product_ids
154
+ # Which products the commit applies to. If both applicable_product_ids and
155
+ # applicable_product_tags are not provided, the commit applies to all products.
156
+ #
157
+ # @return [Array<String>, nil]
158
+ optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
159
+
160
+ # @!attribute applicable_product_tags
161
+ # Which tags the commit applies to. If both applicable_product_ids and
162
+ # applicable_product_tags are not provided, the commit applies to all products.
163
+ #
164
+ # @return [Array<String>, nil]
165
+ optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
166
+
167
+ # @!attribute custom_fields
168
+ #
169
+ # @return [Hash{Symbol=>String}, nil]
170
+ optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
171
+
172
+ # @!attribute description
173
+ # Used only in UI/API. It is not exposed to end customers.
174
+ #
175
+ # @return [String, nil]
176
+ optional :description, String
177
+
178
+ # @!attribute invoice_schedule
179
+ # Required for "POSTPAID" commits: the true up invoice will be generated at this
180
+ # time and only one schedule item is allowed; the total must match access_schedule
181
+ # amount. Optional for "PREPAID" commits: if not provided, this will be a
182
+ # "complimentary" commit with no invoice.
183
+ #
184
+ # @return [MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule, nil]
185
+ optional :invoice_schedule, -> { MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule }
186
+
187
+ # @!attribute name
188
+ # displayed on invoices
189
+ #
190
+ # @return [String, nil]
191
+ optional :name, String
192
+
193
+ # @!attribute netsuite_sales_order_id
194
+ # This field's availability is dependent on your client's configuration.
195
+ #
196
+ # @return [String, nil]
197
+ optional :netsuite_sales_order_id, String
198
+
199
+ # @!attribute payment_gate_config
200
+ # optionally payment gate this commit
201
+ #
202
+ # @return [MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig, nil]
203
+ optional :payment_gate_config,
204
+ -> { MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig }
205
+
206
+ # @!attribute priority
207
+ # If multiple commits are applicable, the one with the lower priority will apply
208
+ # first.
209
+ #
210
+ # @return [Float, nil]
211
+ optional :priority, Float
212
+
213
+ # @!attribute rate_type
214
+ #
215
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::RateType, nil]
216
+ optional :rate_type, enum: -> { MetronomeSDK::Models::V1::ContractAmendParams::Commit::RateType }
217
+
218
+ # @!attribute rollover_fraction
219
+ # Fraction of unused segments that will be rolled over. Must be between 0 and 1.
220
+ #
221
+ # @return [Float, nil]
222
+ optional :rollover_fraction, Float
223
+
224
+ # @!attribute temporary_id
225
+ # A temporary ID for the commit that can be used to reference the commit for
226
+ # commit specific overrides.
227
+ #
228
+ # @return [String, nil]
229
+ optional :temporary_id, String
230
+
231
+ # @!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)
232
+ # Some parameter documentations has been truncated, see
233
+ # {MetronomeSDK::Models::V1::ContractAmendParams::Commit} for more details.
234
+ #
235
+ # @param product_id [String]
236
+ #
237
+ # @param type [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::Type]
238
+ #
239
+ # @param access_schedule [MetronomeSDK::Models::V1::ContractAmendParams::Commit::AccessSchedule] Required: Schedule for distributing the commit to the customer. For "POSTPAID" c
240
+ # ...
241
+ #
242
+ # @param amount [Float] (DEPRECATED) Use access_schedule and invoice_schedule instead.
243
+ #
244
+ # @param applicable_product_ids [Array<String>] Which products the commit applies to. If both applicable_product_ids and applica
245
+ # ...
246
+ #
247
+ # @param applicable_product_tags [Array<String>] Which tags the commit applies to. If both applicable*product_ids and applicable*
248
+ # ...
249
+ #
250
+ # @param custom_fields [Hash{Symbol=>String}]
251
+ #
252
+ # @param description [String] Used only in UI/API. It is not exposed to end customers.
253
+ #
254
+ # @param invoice_schedule [MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule] Required for "POSTPAID" commits: the true up invoice will be generated at this t
255
+ # ...
256
+ #
257
+ # @param name [String] displayed on invoices
258
+ #
259
+ # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
260
+ #
261
+ # @param payment_gate_config [MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig] optionally payment gate this commit
262
+ #
263
+ # @param priority [Float] If multiple commits are applicable, the one with the lower priority will apply f
264
+ # ...
265
+ #
266
+ # @param rate_type [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::RateType]
267
+ #
268
+ # @param rollover_fraction [Float] Fraction of unused segments that will be rolled over. Must be between 0 and 1.
269
+ #
270
+ # @param temporary_id [String] A temporary ID for the commit that can be used to reference the commit for commi
271
+ # ...
272
+
273
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Commit#type
274
+ module Type
275
+ extend MetronomeSDK::Internal::Type::Enum
276
+
277
+ PREPAID = :PREPAID
278
+ POSTPAID = :POSTPAID
279
+
280
+ # @!method self.values
281
+ # @return [Array<Symbol>]
282
+ end
283
+
284
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Commit#access_schedule
285
+ class AccessSchedule < MetronomeSDK::Internal::Type::BaseModel
286
+ # @!attribute schedule_items
287
+ #
288
+ # @return [Array<MetronomeSDK::Models::V1::ContractAmendParams::Commit::AccessSchedule::ScheduleItem>]
289
+ required :schedule_items,
290
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V1::ContractAmendParams::Commit::AccessSchedule::ScheduleItem] }
291
+
292
+ # @!attribute credit_type_id
293
+ # Defaults to USD (cents) if not passed
294
+ #
295
+ # @return [String, nil]
296
+ optional :credit_type_id, String
297
+
298
+ # @!method initialize(schedule_items:, credit_type_id: nil)
299
+ # Required: Schedule for distributing the commit to the customer. For "POSTPAID"
300
+ # commits only one schedule item is allowed and amount must match invoice_schedule
301
+ # total.
302
+ #
303
+ # @param schedule_items [Array<MetronomeSDK::Models::V1::ContractAmendParams::Commit::AccessSchedule::ScheduleItem>]
304
+ #
305
+ # @param credit_type_id [String] Defaults to USD (cents) if not passed
306
+
307
+ class ScheduleItem < MetronomeSDK::Internal::Type::BaseModel
308
+ # @!attribute amount
309
+ #
310
+ # @return [Float]
311
+ required :amount, Float
312
+
313
+ # @!attribute ending_before
314
+ # RFC 3339 timestamp (exclusive)
315
+ #
316
+ # @return [Time]
317
+ required :ending_before, Time
318
+
319
+ # @!attribute starting_at
320
+ # RFC 3339 timestamp (inclusive)
321
+ #
322
+ # @return [Time]
323
+ required :starting_at, Time
324
+
325
+ # @!method initialize(amount:, ending_before:, starting_at:)
326
+ # @param amount [Float]
327
+ #
328
+ # @param ending_before [Time] RFC 3339 timestamp (exclusive)
329
+ #
330
+ # @param starting_at [Time] RFC 3339 timestamp (inclusive)
331
+ end
332
+ end
333
+
334
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Commit#invoice_schedule
335
+ class InvoiceSchedule < MetronomeSDK::Internal::Type::BaseModel
336
+ # @!attribute credit_type_id
337
+ # Defaults to USD (cents) if not passed.
338
+ #
339
+ # @return [String, nil]
340
+ optional :credit_type_id, String
341
+
342
+ # @!attribute recurring_schedule
343
+ # Enter the unit price and quantity for the charge or instead only send the
344
+ # amount. If amount is sent, the unit price is assumed to be the amount and
345
+ # quantity is inferred to be 1.
346
+ #
347
+ # @return [MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule, nil]
348
+ optional :recurring_schedule,
349
+ -> { MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule }
350
+
351
+ # @!attribute schedule_items
352
+ # Either provide amount or provide both unit_price and quantity.
353
+ #
354
+ # @return [Array<MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::ScheduleItem>, nil]
355
+ optional :schedule_items,
356
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::ScheduleItem] }
357
+
358
+ # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
359
+ # Some parameter documentations has been truncated, see
360
+ # {MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule} for
361
+ # more details.
362
+ #
363
+ # Required for "POSTPAID" commits: the true up invoice will be generated at this
364
+ # time and only one schedule item is allowed; the total must match access_schedule
365
+ # amount. Optional for "PREPAID" commits: if not provided, this will be a
366
+ # "complimentary" commit with no invoice.
367
+ #
368
+ # @param credit_type_id [String] Defaults to USD (cents) if not passed.
369
+ #
370
+ # @param recurring_schedule [MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
371
+ # ...
372
+ #
373
+ # @param schedule_items [Array<MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
374
+
375
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule#recurring_schedule
376
+ class RecurringSchedule < MetronomeSDK::Internal::Type::BaseModel
377
+ # @!attribute amount_distribution
378
+ #
379
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::AmountDistribution]
380
+ required :amount_distribution,
381
+ enum: -> { MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::AmountDistribution }
382
+
383
+ # @!attribute ending_before
384
+ # RFC 3339 timestamp (exclusive).
385
+ #
386
+ # @return [Time]
387
+ required :ending_before, Time
388
+
389
+ # @!attribute frequency
390
+ #
391
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::Frequency]
392
+ required :frequency,
393
+ enum: -> { MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::Frequency }
394
+
395
+ # @!attribute starting_at
396
+ # RFC 3339 timestamp (inclusive).
397
+ #
398
+ # @return [Time]
399
+ required :starting_at, Time
400
+
401
+ # @!attribute amount
402
+ # Amount for the charge. Can be provided instead of unit_price and quantity. If
403
+ # amount is sent, the unit_price is assumed to be the amount and quantity is
404
+ # inferred to be 1.
405
+ #
406
+ # @return [Float, nil]
407
+ optional :amount, Float
408
+
409
+ # @!attribute quantity
410
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
411
+ # amount and must be specified with unit_price. If specified amount cannot be
412
+ # provided.
413
+ #
414
+ # @return [Float, nil]
415
+ optional :quantity, Float
416
+
417
+ # @!attribute unit_price
418
+ # Unit price for the charge. Will be multiplied by quantity to determine the
419
+ # amount and must be specified with quantity. If specified amount cannot be
420
+ # provided.
421
+ #
422
+ # @return [Float, nil]
423
+ optional :unit_price, Float
424
+
425
+ # @!method initialize(amount_distribution:, ending_before:, frequency:, starting_at:, amount: nil, quantity: nil, unit_price: nil)
426
+ # Some parameter documentations has been truncated, see
427
+ # {MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule}
428
+ # for more details.
429
+ #
430
+ # Enter the unit price and quantity for the charge or instead only send the
431
+ # amount. If amount is sent, the unit price is assumed to be the amount and
432
+ # quantity is inferred to be 1.
433
+ #
434
+ # @param amount_distribution [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::AmountDistribution]
435
+ #
436
+ # @param ending_before [Time] RFC 3339 timestamp (exclusive).
437
+ #
438
+ # @param frequency [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule::Frequency]
439
+ #
440
+ # @param starting_at [Time] RFC 3339 timestamp (inclusive).
441
+ #
442
+ # @param amount [Float] Amount for the charge. Can be provided instead of unit_price and quantity. If am
443
+ # ...
444
+ #
445
+ # @param quantity [Float] Quantity for the charge. Will be multiplied by unit_price to determine the amoun
446
+ # ...
447
+ #
448
+ # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
449
+ # ...
450
+
451
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule#amount_distribution
452
+ module AmountDistribution
453
+ extend MetronomeSDK::Internal::Type::Enum
454
+
455
+ DIVIDED = :DIVIDED
456
+ DIVIDED_ROUNDED = :DIVIDED_ROUNDED
457
+ EACH = :EACH
458
+
459
+ # @!method self.values
460
+ # @return [Array<Symbol>]
461
+ end
462
+
463
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::RecurringSchedule#frequency
464
+ module Frequency
465
+ extend MetronomeSDK::Internal::Type::Enum
466
+
467
+ MONTHLY = :MONTHLY
468
+ QUARTERLY = :QUARTERLY
469
+ SEMI_ANNUAL = :SEMI_ANNUAL
470
+ ANNUAL = :ANNUAL
471
+
472
+ # @!method self.values
473
+ # @return [Array<Symbol>]
474
+ end
475
+ end
476
+
477
+ class ScheduleItem < MetronomeSDK::Internal::Type::BaseModel
478
+ # @!attribute timestamp
479
+ # timestamp of the scheduled event
480
+ #
481
+ # @return [Time]
482
+ required :timestamp, Time
483
+
484
+ # @!attribute amount
485
+ # Amount for the charge. Can be provided instead of unit_price and quantity. If
486
+ # amount is sent, the unit_price is assumed to be the amount and quantity is
487
+ # inferred to be 1.
488
+ #
489
+ # @return [Float, nil]
490
+ optional :amount, Float
491
+
492
+ # @!attribute quantity
493
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
494
+ # amount and must be specified with unit_price. If specified amount cannot be
495
+ # provided.
496
+ #
497
+ # @return [Float, nil]
498
+ optional :quantity, Float
499
+
500
+ # @!attribute unit_price
501
+ # Unit price for the charge. Will be multiplied by quantity to determine the
502
+ # amount and must be specified with quantity. If specified amount cannot be
503
+ # provided.
504
+ #
505
+ # @return [Float, nil]
506
+ optional :unit_price, Float
507
+
508
+ # @!method initialize(timestamp:, amount: nil, quantity: nil, unit_price: nil)
509
+ # Some parameter documentations has been truncated, see
510
+ # {MetronomeSDK::Models::V1::ContractAmendParams::Commit::InvoiceSchedule::ScheduleItem}
511
+ # for more details.
512
+ #
513
+ # @param timestamp [Time] timestamp of the scheduled event
514
+ #
515
+ # @param amount [Float] Amount for the charge. Can be provided instead of unit_price and quantity. If am
516
+ # ...
517
+ #
518
+ # @param quantity [Float] Quantity for the charge. Will be multiplied by unit_price to determine the amoun
519
+ # ...
520
+ #
521
+ # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
522
+ # ...
523
+ end
524
+ end
525
+
526
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Commit#payment_gate_config
527
+ class PaymentGateConfig < MetronomeSDK::Internal::Type::BaseModel
528
+ # @!attribute payment_gate_type
529
+ # Gate access to the commit balance based on successful collection of payment.
530
+ # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
531
+ # facilitate payment using your own payment integration. Select NONE if you do not
532
+ # wish to payment gate the commit balance.
533
+ #
534
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::PaymentGateType]
535
+ required :payment_gate_type,
536
+ enum: -> { MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::PaymentGateType }
537
+
538
+ # @!attribute stripe_config
539
+ # Only applicable if using Stripe as your payment gateway through Metronome.
540
+ #
541
+ # @return [MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::StripeConfig, nil]
542
+ optional :stripe_config,
543
+ -> { MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::StripeConfig }
544
+
545
+ # @!attribute tax_type
546
+ # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
547
+ # not wish Metronome to calculate tax on your behalf. Leaving this field blank
548
+ # will default to NONE.
549
+ #
550
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::TaxType, nil]
551
+ optional :tax_type,
552
+ enum: -> { MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::TaxType }
553
+
554
+ # @!method initialize(payment_gate_type:, stripe_config: nil, tax_type: nil)
555
+ # Some parameter documentations has been truncated, see
556
+ # {MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig} for
557
+ # more details.
558
+ #
559
+ # optionally payment gate this commit
560
+ #
561
+ # @param payment_gate_type [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::PaymentGateType] Gate access to the commit balance based on successful collection of payment. Sel
562
+ # ...
563
+ #
564
+ # @param stripe_config [MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::StripeConfig] Only applicable if using Stripe as your payment gateway through Metronome.
565
+ #
566
+ # @param tax_type [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::TaxType] Stripe tax is only supported for Stripe payment gateway. Select NONE if you do n
567
+ # ...
568
+
569
+ # Gate access to the commit balance based on successful collection of payment.
570
+ # Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
571
+ # facilitate payment using your own payment integration. Select NONE if you do not
572
+ # wish to payment gate the commit balance.
573
+ #
574
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig#payment_gate_type
575
+ module PaymentGateType
576
+ extend MetronomeSDK::Internal::Type::Enum
577
+
578
+ NONE = :NONE
579
+ STRIPE = :STRIPE
580
+ EXTERNAL = :EXTERNAL
581
+
582
+ # @!method self.values
583
+ # @return [Array<Symbol>]
584
+ end
585
+
586
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig#stripe_config
587
+ class StripeConfig < MetronomeSDK::Internal::Type::BaseModel
588
+ # @!attribute payment_type
589
+ # If left blank, will default to INVOICE
590
+ #
591
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::StripeConfig::PaymentType]
592
+ required :payment_type,
593
+ enum: -> { MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::StripeConfig::PaymentType }
594
+
595
+ # @!method initialize(payment_type:)
596
+ # Only applicable if using Stripe as your payment gateway through Metronome.
597
+ #
598
+ # @param payment_type [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::StripeConfig::PaymentType] If left blank, will default to INVOICE
599
+
600
+ # If left blank, will default to INVOICE
601
+ #
602
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig::StripeConfig#payment_type
603
+ module PaymentType
604
+ extend MetronomeSDK::Internal::Type::Enum
605
+
606
+ INVOICE = :INVOICE
607
+ PAYMENT_INTENT = :PAYMENT_INTENT
608
+
609
+ # @!method self.values
610
+ # @return [Array<Symbol>]
611
+ end
612
+ end
613
+
614
+ # Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
615
+ # not wish Metronome to calculate tax on your behalf. Leaving this field blank
616
+ # will default to NONE.
617
+ #
618
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Commit::PaymentGateConfig#tax_type
619
+ module TaxType
620
+ extend MetronomeSDK::Internal::Type::Enum
621
+
622
+ NONE = :NONE
623
+ STRIPE = :STRIPE
624
+
625
+ # @!method self.values
626
+ # @return [Array<Symbol>]
627
+ end
628
+ end
629
+
630
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Commit#rate_type
631
+ module RateType
632
+ extend MetronomeSDK::Internal::Type::Enum
633
+
634
+ COMMIT_RATE = :COMMIT_RATE
635
+ LIST_RATE = :LIST_RATE
636
+
637
+ # @!method self.values
638
+ # @return [Array<Symbol>]
639
+ end
640
+ end
641
+
642
+ class Credit < MetronomeSDK::Internal::Type::BaseModel
643
+ # @!attribute access_schedule
644
+ # Schedule for distributing the credit to the customer.
645
+ #
646
+ # @return [MetronomeSDK::Models::V1::ContractAmendParams::Credit::AccessSchedule]
647
+ required :access_schedule, -> { MetronomeSDK::Models::V1::ContractAmendParams::Credit::AccessSchedule }
648
+
649
+ # @!attribute product_id
650
+ #
651
+ # @return [String]
652
+ required :product_id, String
653
+
654
+ # @!attribute applicable_product_ids
655
+ # Which products the credit applies to. If both applicable_product_ids and
656
+ # applicable_product_tags are not provided, the credit applies to all products.
657
+ #
658
+ # @return [Array<String>, nil]
659
+ optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
660
+
661
+ # @!attribute applicable_product_tags
662
+ # Which tags the credit applies to. If both applicable_product_ids and
663
+ # applicable_product_tags are not provided, the credit applies to all products.
664
+ #
665
+ # @return [Array<String>, nil]
666
+ optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
667
+
668
+ # @!attribute custom_fields
669
+ #
670
+ # @return [Hash{Symbol=>String}, nil]
671
+ optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
672
+
673
+ # @!attribute description
674
+ # Used only in UI/API. It is not exposed to end customers.
675
+ #
676
+ # @return [String, nil]
677
+ optional :description, String
678
+
679
+ # @!attribute name
680
+ # displayed on invoices
681
+ #
682
+ # @return [String, nil]
683
+ optional :name, String
684
+
685
+ # @!attribute netsuite_sales_order_id
686
+ # This field's availability is dependent on your client's configuration.
687
+ #
688
+ # @return [String, nil]
689
+ optional :netsuite_sales_order_id, String
690
+
691
+ # @!attribute priority
692
+ # If multiple credits are applicable, the one with the lower priority will apply
693
+ # first.
694
+ #
695
+ # @return [Float, nil]
696
+ optional :priority, Float
697
+
698
+ # @!attribute rate_type
699
+ #
700
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Credit::RateType, nil]
701
+ optional :rate_type, enum: -> { MetronomeSDK::Models::V1::ContractAmendParams::Credit::RateType }
702
+
703
+ # @!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)
704
+ # Some parameter documentations has been truncated, see
705
+ # {MetronomeSDK::Models::V1::ContractAmendParams::Credit} for more details.
706
+ #
707
+ # @param access_schedule [MetronomeSDK::Models::V1::ContractAmendParams::Credit::AccessSchedule] Schedule for distributing the credit to the customer.
708
+ #
709
+ # @param product_id [String]
710
+ #
711
+ # @param applicable_product_ids [Array<String>] Which products the credit applies to. If both applicable_product_ids and applica
712
+ # ...
713
+ #
714
+ # @param applicable_product_tags [Array<String>] Which tags the credit applies to. If both applicable*product_ids and applicable*
715
+ # ...
716
+ #
717
+ # @param custom_fields [Hash{Symbol=>String}]
718
+ #
719
+ # @param description [String] Used only in UI/API. It is not exposed to end customers.
720
+ #
721
+ # @param name [String] displayed on invoices
722
+ #
723
+ # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
724
+ #
725
+ # @param priority [Float] If multiple credits are applicable, the one with the lower priority will apply f
726
+ # ...
727
+ #
728
+ # @param rate_type [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Credit::RateType]
729
+
730
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Credit#access_schedule
731
+ class AccessSchedule < MetronomeSDK::Internal::Type::BaseModel
732
+ # @!attribute schedule_items
733
+ #
734
+ # @return [Array<MetronomeSDK::Models::V1::ContractAmendParams::Credit::AccessSchedule::ScheduleItem>]
735
+ required :schedule_items,
736
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V1::ContractAmendParams::Credit::AccessSchedule::ScheduleItem] }
737
+
738
+ # @!attribute credit_type_id
739
+ # Defaults to USD (cents) if not passed
740
+ #
741
+ # @return [String, nil]
742
+ optional :credit_type_id, String
743
+
744
+ # @!method initialize(schedule_items:, credit_type_id: nil)
745
+ # Schedule for distributing the credit to the customer.
746
+ #
747
+ # @param schedule_items [Array<MetronomeSDK::Models::V1::ContractAmendParams::Credit::AccessSchedule::ScheduleItem>]
748
+ #
749
+ # @param credit_type_id [String] Defaults to USD (cents) if not passed
750
+
751
+ class ScheduleItem < MetronomeSDK::Internal::Type::BaseModel
752
+ # @!attribute amount
753
+ #
754
+ # @return [Float]
755
+ required :amount, Float
756
+
757
+ # @!attribute ending_before
758
+ # RFC 3339 timestamp (exclusive)
759
+ #
760
+ # @return [Time]
761
+ required :ending_before, Time
762
+
763
+ # @!attribute starting_at
764
+ # RFC 3339 timestamp (inclusive)
765
+ #
766
+ # @return [Time]
767
+ required :starting_at, Time
768
+
769
+ # @!method initialize(amount:, ending_before:, starting_at:)
770
+ # @param amount [Float]
771
+ #
772
+ # @param ending_before [Time] RFC 3339 timestamp (exclusive)
773
+ #
774
+ # @param starting_at [Time] RFC 3339 timestamp (inclusive)
775
+ end
776
+ end
777
+
778
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Credit#rate_type
779
+ module RateType
780
+ extend MetronomeSDK::Internal::Type::Enum
781
+
782
+ COMMIT_RATE = :COMMIT_RATE
783
+ LIST_RATE = :LIST_RATE
784
+
785
+ # @!method self.values
786
+ # @return [Array<Symbol>]
787
+ end
788
+ end
789
+
790
+ class Discount < MetronomeSDK::Internal::Type::BaseModel
791
+ # @!attribute product_id
792
+ #
793
+ # @return [String]
794
+ required :product_id, String
795
+
796
+ # @!attribute schedule
797
+ # Must provide either schedule_items or recurring_schedule.
798
+ #
799
+ # @return [MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule]
800
+ required :schedule, -> { MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule }
801
+
802
+ # @!attribute custom_fields
803
+ #
804
+ # @return [Hash{Symbol=>String}, nil]
805
+ optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
806
+
807
+ # @!attribute name
808
+ # displayed on invoices
809
+ #
810
+ # @return [String, nil]
811
+ optional :name, String
812
+
813
+ # @!attribute netsuite_sales_order_id
814
+ # This field's availability is dependent on your client's configuration.
815
+ #
816
+ # @return [String, nil]
817
+ optional :netsuite_sales_order_id, String
818
+
819
+ # @!method initialize(product_id:, schedule:, custom_fields: nil, name: nil, netsuite_sales_order_id: nil)
820
+ # @param product_id [String]
821
+ #
822
+ # @param schedule [MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule] Must provide either schedule_items or recurring_schedule.
823
+ #
824
+ # @param custom_fields [Hash{Symbol=>String}]
825
+ #
826
+ # @param name [String] displayed on invoices
827
+ #
828
+ # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
829
+
830
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Discount#schedule
831
+ class Schedule < MetronomeSDK::Internal::Type::BaseModel
832
+ # @!attribute credit_type_id
833
+ # Defaults to USD (cents) if not passed.
834
+ #
835
+ # @return [String, nil]
836
+ optional :credit_type_id, String
837
+
838
+ # @!attribute recurring_schedule
839
+ # Enter the unit price and quantity for the charge or instead only send the
840
+ # amount. If amount is sent, the unit price is assumed to be the amount and
841
+ # quantity is inferred to be 1.
842
+ #
843
+ # @return [MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule, nil]
844
+ optional :recurring_schedule,
845
+ -> { MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule }
846
+
847
+ # @!attribute schedule_items
848
+ # Either provide amount or provide both unit_price and quantity.
849
+ #
850
+ # @return [Array<MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::ScheduleItem>, nil]
851
+ optional :schedule_items,
852
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::ScheduleItem] }
853
+
854
+ # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
855
+ # Some parameter documentations has been truncated, see
856
+ # {MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule} for more
857
+ # details.
858
+ #
859
+ # Must provide either schedule_items or recurring_schedule.
860
+ #
861
+ # @param credit_type_id [String] Defaults to USD (cents) if not passed.
862
+ #
863
+ # @param recurring_schedule [MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
864
+ # ...
865
+ #
866
+ # @param schedule_items [Array<MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
867
+
868
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule#recurring_schedule
869
+ class RecurringSchedule < MetronomeSDK::Internal::Type::BaseModel
870
+ # @!attribute amount_distribution
871
+ #
872
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::AmountDistribution]
873
+ required :amount_distribution,
874
+ enum: -> { MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::AmountDistribution }
875
+
876
+ # @!attribute ending_before
877
+ # RFC 3339 timestamp (exclusive).
878
+ #
879
+ # @return [Time]
880
+ required :ending_before, Time
881
+
882
+ # @!attribute frequency
883
+ #
884
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::Frequency]
885
+ required :frequency,
886
+ enum: -> { MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::Frequency }
887
+
888
+ # @!attribute starting_at
889
+ # RFC 3339 timestamp (inclusive).
890
+ #
891
+ # @return [Time]
892
+ required :starting_at, Time
893
+
894
+ # @!attribute amount
895
+ # Amount for the charge. Can be provided instead of unit_price and quantity. If
896
+ # amount is sent, the unit_price is assumed to be the amount and quantity is
897
+ # inferred to be 1.
898
+ #
899
+ # @return [Float, nil]
900
+ optional :amount, Float
901
+
902
+ # @!attribute quantity
903
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
904
+ # amount and must be specified with unit_price. If specified amount cannot be
905
+ # provided.
906
+ #
907
+ # @return [Float, nil]
908
+ optional :quantity, Float
909
+
910
+ # @!attribute unit_price
911
+ # Unit price for the charge. Will be multiplied by quantity to determine the
912
+ # amount and must be specified with quantity. If specified amount cannot be
913
+ # provided.
914
+ #
915
+ # @return [Float, nil]
916
+ optional :unit_price, Float
917
+
918
+ # @!method initialize(amount_distribution:, ending_before:, frequency:, starting_at:, amount: nil, quantity: nil, unit_price: nil)
919
+ # Some parameter documentations has been truncated, see
920
+ # {MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule}
921
+ # for more details.
922
+ #
923
+ # Enter the unit price and quantity for the charge or instead only send the
924
+ # amount. If amount is sent, the unit price is assumed to be the amount and
925
+ # quantity is inferred to be 1.
926
+ #
927
+ # @param amount_distribution [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::AmountDistribution]
928
+ #
929
+ # @param ending_before [Time] RFC 3339 timestamp (exclusive).
930
+ #
931
+ # @param frequency [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule::Frequency]
932
+ #
933
+ # @param starting_at [Time] RFC 3339 timestamp (inclusive).
934
+ #
935
+ # @param amount [Float] Amount for the charge. Can be provided instead of unit_price and quantity. If am
936
+ # ...
937
+ #
938
+ # @param quantity [Float] Quantity for the charge. Will be multiplied by unit_price to determine the amoun
939
+ # ...
940
+ #
941
+ # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
942
+ # ...
943
+
944
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule#amount_distribution
945
+ module AmountDistribution
946
+ extend MetronomeSDK::Internal::Type::Enum
947
+
948
+ DIVIDED = :DIVIDED
949
+ DIVIDED_ROUNDED = :DIVIDED_ROUNDED
950
+ EACH = :EACH
951
+
952
+ # @!method self.values
953
+ # @return [Array<Symbol>]
954
+ end
955
+
956
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::RecurringSchedule#frequency
957
+ module Frequency
958
+ extend MetronomeSDK::Internal::Type::Enum
959
+
960
+ MONTHLY = :MONTHLY
961
+ QUARTERLY = :QUARTERLY
962
+ SEMI_ANNUAL = :SEMI_ANNUAL
963
+ ANNUAL = :ANNUAL
964
+
965
+ # @!method self.values
966
+ # @return [Array<Symbol>]
967
+ end
968
+ end
969
+
970
+ class ScheduleItem < MetronomeSDK::Internal::Type::BaseModel
971
+ # @!attribute timestamp
972
+ # timestamp of the scheduled event
973
+ #
974
+ # @return [Time]
975
+ required :timestamp, Time
976
+
977
+ # @!attribute amount
978
+ # Amount for the charge. Can be provided instead of unit_price and quantity. If
979
+ # amount is sent, the unit_price is assumed to be the amount and quantity is
980
+ # inferred to be 1.
981
+ #
982
+ # @return [Float, nil]
983
+ optional :amount, Float
984
+
985
+ # @!attribute quantity
986
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
987
+ # amount and must be specified with unit_price. If specified amount cannot be
988
+ # provided.
989
+ #
990
+ # @return [Float, nil]
991
+ optional :quantity, Float
992
+
993
+ # @!attribute unit_price
994
+ # Unit price for the charge. Will be multiplied by quantity to determine the
995
+ # amount and must be specified with quantity. If specified amount cannot be
996
+ # provided.
997
+ #
998
+ # @return [Float, nil]
999
+ optional :unit_price, Float
1000
+
1001
+ # @!method initialize(timestamp:, amount: nil, quantity: nil, unit_price: nil)
1002
+ # Some parameter documentations has been truncated, see
1003
+ # {MetronomeSDK::Models::V1::ContractAmendParams::Discount::Schedule::ScheduleItem}
1004
+ # for more details.
1005
+ #
1006
+ # @param timestamp [Time] timestamp of the scheduled event
1007
+ #
1008
+ # @param amount [Float] Amount for the charge. Can be provided instead of unit_price and quantity. If am
1009
+ # ...
1010
+ #
1011
+ # @param quantity [Float] Quantity for the charge. Will be multiplied by unit_price to determine the amoun
1012
+ # ...
1013
+ #
1014
+ # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
1015
+ # ...
1016
+ end
1017
+ end
1018
+ end
1019
+
1020
+ class Override < MetronomeSDK::Internal::Type::BaseModel
1021
+ # @!attribute starting_at
1022
+ # RFC 3339 timestamp indicating when the override will start applying (inclusive)
1023
+ #
1024
+ # @return [Time]
1025
+ required :starting_at, Time
1026
+
1027
+ # @!attribute applicable_product_tags
1028
+ # tags identifying products whose rates are being overridden. Cannot be used in
1029
+ # conjunction with override_specifiers.
1030
+ #
1031
+ # @return [Array<String>, nil]
1032
+ optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1033
+
1034
+ # @!attribute ending_before
1035
+ # RFC 3339 timestamp indicating when the override will stop applying (exclusive)
1036
+ #
1037
+ # @return [Time, nil]
1038
+ optional :ending_before, Time
1039
+
1040
+ # @!attribute entitled
1041
+ #
1042
+ # @return [Boolean, nil]
1043
+ optional :entitled, MetronomeSDK::Internal::Type::Boolean
1044
+
1045
+ # @!attribute is_commit_specific
1046
+ # Indicates whether the override should only apply to commits. Defaults to
1047
+ # `false`. If `true`, you can specify relevant commits in `override_specifiers` by
1048
+ # passing `commit_ids`. if you do not specify `commit_ids`, then the override will
1049
+ # apply when consuming any prepaid or postpaid commit.
1050
+ #
1051
+ # @return [Boolean, nil]
1052
+ optional :is_commit_specific, MetronomeSDK::Internal::Type::Boolean
1053
+
1054
+ # @!attribute multiplier
1055
+ # Required for MULTIPLIER type. Must be >=0.
1056
+ #
1057
+ # @return [Float, nil]
1058
+ optional :multiplier, Float
1059
+
1060
+ # @!attribute override_specifiers
1061
+ # Cannot be used in conjunction with product_id or applicable_product_tags. If
1062
+ # provided, the override will apply to all products with the specified specifiers.
1063
+ #
1064
+ # @return [Array<MetronomeSDK::Models::V1::ContractAmendParams::Override::OverrideSpecifier>, nil]
1065
+ optional :override_specifiers,
1066
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V1::ContractAmendParams::Override::OverrideSpecifier] }
1067
+
1068
+ # @!attribute overwrite_rate
1069
+ # Required for OVERWRITE type.
1070
+ #
1071
+ # @return [MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate, nil]
1072
+ optional :overwrite_rate, -> { MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate }
1073
+
1074
+ # @!attribute priority
1075
+ # Required for EXPLICIT multiplier prioritization scheme and all TIERED overrides.
1076
+ # Under EXPLICIT prioritization, overwrites are prioritized first, and then tiered
1077
+ # and multiplier overrides are prioritized by their priority value (lowest first).
1078
+ # Must be > 0.
1079
+ #
1080
+ # @return [Float, nil]
1081
+ optional :priority, Float
1082
+
1083
+ # @!attribute product_id
1084
+ # ID of the product whose rate is being overridden. Cannot be used in conjunction
1085
+ # with override_specifiers.
1086
+ #
1087
+ # @return [String, nil]
1088
+ optional :product_id, String
1089
+
1090
+ # @!attribute target
1091
+ # Indicates whether the override applies to commit rates or list rates. Can only
1092
+ # be used for overrides that have `is_commit_specific` set to `true`. Defaults to
1093
+ # `"LIST_RATE"`.
1094
+ #
1095
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Override::Target, nil]
1096
+ optional :target, enum: -> { MetronomeSDK::Models::V1::ContractAmendParams::Override::Target }
1097
+
1098
+ # @!attribute tiers
1099
+ # Required for TIERED type. Must have at least one tier.
1100
+ #
1101
+ # @return [Array<MetronomeSDK::Models::V1::ContractAmendParams::Override::Tier>, nil]
1102
+ optional :tiers,
1103
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V1::ContractAmendParams::Override::Tier] }
1104
+
1105
+ # @!attribute type
1106
+ # Overwrites are prioritized over multipliers and tiered overrides.
1107
+ #
1108
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Override::Type, nil]
1109
+ optional :type, enum: -> { MetronomeSDK::Models::V1::ContractAmendParams::Override::Type }
1110
+
1111
+ # @!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)
1112
+ # Some parameter documentations has been truncated, see
1113
+ # {MetronomeSDK::Models::V1::ContractAmendParams::Override} for more details.
1114
+ #
1115
+ # @param starting_at [Time] RFC 3339 timestamp indicating when the override will start applying (inclusive)
1116
+ #
1117
+ # @param applicable_product_tags [Array<String>] tags identifying products whose rates are being overridden. Cannot be used in co
1118
+ # ...
1119
+ #
1120
+ # @param ending_before [Time] RFC 3339 timestamp indicating when the override will stop applying (exclusive)
1121
+ #
1122
+ # @param entitled [Boolean]
1123
+ #
1124
+ # @param is_commit_specific [Boolean] Indicates whether the override should only apply to commits. Defaults to `false`
1125
+ # ...
1126
+ #
1127
+ # @param multiplier [Float] Required for MULTIPLIER type. Must be >=0.
1128
+ #
1129
+ # @param override_specifiers [Array<MetronomeSDK::Models::V1::ContractAmendParams::Override::OverrideSpecifier>] Cannot be used in conjunction with product_id or applicable_product_tags. If pro
1130
+ # ...
1131
+ #
1132
+ # @param overwrite_rate [MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate] Required for OVERWRITE type.
1133
+ #
1134
+ # @param priority [Float] Required for EXPLICIT multiplier prioritization scheme and all TIERED overrides.
1135
+ # ...
1136
+ #
1137
+ # @param product_id [String] ID of the product whose rate is being overridden. Cannot be used in conjunction
1138
+ # ...
1139
+ #
1140
+ # @param target [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Override::Target] Indicates whether the override applies to commit rates or list rates. Can only b
1141
+ # ...
1142
+ #
1143
+ # @param tiers [Array<MetronomeSDK::Models::V1::ContractAmendParams::Override::Tier>] Required for TIERED type. Must have at least one tier.
1144
+ #
1145
+ # @param type [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Override::Type] Overwrites are prioritized over multipliers and tiered overrides.
1146
+
1147
+ class OverrideSpecifier < MetronomeSDK::Internal::Type::BaseModel
1148
+ # @!attribute commit_ids
1149
+ # Can only be used for commit specific overrides. Must be used in conjunction with
1150
+ # one of product_id, product_tags, pricing_group_values, or
1151
+ # presentation_group_values. If provided, the override will only apply to the
1152
+ # specified commits. If not provided, the override will apply to all commits.
1153
+ #
1154
+ # @return [Array<String>, nil]
1155
+ optional :commit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1156
+
1157
+ # @!attribute presentation_group_values
1158
+ # A map of group names to values. The override will only apply to line items with
1159
+ # the specified presentation group values.
1160
+ #
1161
+ # @return [Hash{Symbol=>String}, nil]
1162
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1163
+
1164
+ # @!attribute pricing_group_values
1165
+ # A map of pricing group names to values. The override will only apply to products
1166
+ # with the specified pricing group values.
1167
+ #
1168
+ # @return [Hash{Symbol=>String}, nil]
1169
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1170
+
1171
+ # @!attribute product_id
1172
+ # If provided, the override will only apply to the product with the specified ID.
1173
+ #
1174
+ # @return [String, nil]
1175
+ optional :product_id, String
1176
+
1177
+ # @!attribute product_tags
1178
+ # If provided, the override will only apply to products with all the specified
1179
+ # tags.
1180
+ #
1181
+ # @return [Array<String>, nil]
1182
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1183
+
1184
+ # @!attribute recurring_commit_ids
1185
+ # Can only be used for commit specific overrides. Must be used in conjunction with
1186
+ # one of product_id, product_tags, pricing_group_values, or
1187
+ # presentation_group_values. If provided, the override will only apply to commits
1188
+ # created by the specified recurring commit ids.
1189
+ #
1190
+ # @return [Array<String>, nil]
1191
+ optional :recurring_commit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1192
+
1193
+ # @!attribute recurring_credit_ids
1194
+ # Can only be used for commit specific overrides. Must be used in conjunction with
1195
+ # one of product_id, product_tags, pricing_group_values, or
1196
+ # presentation_group_values. If provided, the override will only apply to credits
1197
+ # created by the specified recurring credit ids.
1198
+ #
1199
+ # @return [Array<String>, nil]
1200
+ optional :recurring_credit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1201
+
1202
+ # @!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)
1203
+ # Some parameter documentations has been truncated, see
1204
+ # {MetronomeSDK::Models::V1::ContractAmendParams::Override::OverrideSpecifier} for
1205
+ # more details.
1206
+ #
1207
+ # @param commit_ids [Array<String>] Can only be used for commit specific overrides. Must be used in conjunction with
1208
+ # ...
1209
+ #
1210
+ # @param presentation_group_values [Hash{Symbol=>String}] A map of group names to values. The override will only apply to line items with
1211
+ # ...
1212
+ #
1213
+ # @param pricing_group_values [Hash{Symbol=>String}] A map of pricing group names to values. The override will only apply to products
1214
+ # ...
1215
+ #
1216
+ # @param product_id [String] If provided, the override will only apply to the product with the specified ID.
1217
+ #
1218
+ # @param product_tags [Array<String>] If provided, the override will only apply to products with all the specified tag
1219
+ # ...
1220
+ #
1221
+ # @param recurring_commit_ids [Array<String>] Can only be used for commit specific overrides. Must be used in conjunction with
1222
+ # ...
1223
+ #
1224
+ # @param recurring_credit_ids [Array<String>] Can only be used for commit specific overrides. Must be used in conjunction with
1225
+ # ...
1226
+ end
1227
+
1228
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Override#overwrite_rate
1229
+ class OverwriteRate < MetronomeSDK::Internal::Type::BaseModel
1230
+ # @!attribute rate_type
1231
+ #
1232
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate::RateType]
1233
+ required :rate_type,
1234
+ enum: -> { MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate::RateType }
1235
+
1236
+ # @!attribute credit_type_id
1237
+ #
1238
+ # @return [String, nil]
1239
+ optional :credit_type_id, String
1240
+
1241
+ # @!attribute custom_rate
1242
+ # Only set for CUSTOM rate_type. This field is interpreted by custom rate
1243
+ # processors.
1244
+ #
1245
+ # @return [Hash{Symbol=>Object}, nil]
1246
+ optional :custom_rate, MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
1247
+
1248
+ # @!attribute is_prorated
1249
+ # Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
1250
+ # set to true.
1251
+ #
1252
+ # @return [Boolean, nil]
1253
+ optional :is_prorated, MetronomeSDK::Internal::Type::Boolean
1254
+
1255
+ # @!attribute price
1256
+ # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
1257
+ # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
1258
+ #
1259
+ # @return [Float, nil]
1260
+ optional :price, Float
1261
+
1262
+ # @!attribute quantity
1263
+ # Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
1264
+ #
1265
+ # @return [Float, nil]
1266
+ optional :quantity, Float
1267
+
1268
+ # @!attribute tiers
1269
+ # Only set for TIERED rate_type.
1270
+ #
1271
+ # @return [Array<MetronomeSDK::Models::Tier>, nil]
1272
+ optional :tiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::Tier] }
1273
+
1274
+ # @!method initialize(rate_type:, credit_type_id: nil, custom_rate: nil, is_prorated: nil, price: nil, quantity: nil, tiers: nil)
1275
+ # Some parameter documentations has been truncated, see
1276
+ # {MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate} for
1277
+ # more details.
1278
+ #
1279
+ # Required for OVERWRITE type.
1280
+ #
1281
+ # @param rate_type [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate::RateType]
1282
+ #
1283
+ # @param credit_type_id [String]
1284
+ #
1285
+ # @param custom_rate [Hash{Symbol=>Object}] Only set for CUSTOM rate_type. This field is interpreted by custom rate processo
1286
+ # ...
1287
+ #
1288
+ # @param is_prorated [Boolean] Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
1289
+ # ...
1290
+ #
1291
+ # @param price [Float] Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type, t
1292
+ # ...
1293
+ #
1294
+ # @param quantity [Float] Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
1295
+ #
1296
+ # @param tiers [Array<MetronomeSDK::Models::Tier>] Only set for TIERED rate_type.
1297
+
1298
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Override::OverwriteRate#rate_type
1299
+ module RateType
1300
+ extend MetronomeSDK::Internal::Type::Enum
1301
+
1302
+ FLAT = :FLAT
1303
+ PERCENTAGE = :PERCENTAGE
1304
+ SUBSCRIPTION = :SUBSCRIPTION
1305
+ TIERED = :TIERED
1306
+ CUSTOM = :CUSTOM
1307
+
1308
+ # @!method self.values
1309
+ # @return [Array<Symbol>]
1310
+ end
1311
+ end
1312
+
1313
+ # Indicates whether the override applies to commit rates or list rates. Can only
1314
+ # be used for overrides that have `is_commit_specific` set to `true`. Defaults to
1315
+ # `"LIST_RATE"`.
1316
+ #
1317
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Override#target
1318
+ module Target
1319
+ extend MetronomeSDK::Internal::Type::Enum
1320
+
1321
+ COMMIT_RATE = :COMMIT_RATE
1322
+ LIST_RATE = :LIST_RATE
1323
+
1324
+ # @!method self.values
1325
+ # @return [Array<Symbol>]
1326
+ end
1327
+
1328
+ class Tier < MetronomeSDK::Internal::Type::BaseModel
1329
+ # @!attribute multiplier
1330
+ #
1331
+ # @return [Float]
1332
+ required :multiplier, Float
1333
+
1334
+ # @!attribute size
1335
+ #
1336
+ # @return [Float, nil]
1337
+ optional :size, Float
1338
+
1339
+ # @!method initialize(multiplier:, size: nil)
1340
+ # @param multiplier [Float]
1341
+ # @param size [Float]
1342
+ end
1343
+
1344
+ # Overwrites are prioritized over multipliers and tiered overrides.
1345
+ #
1346
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Override#type
1347
+ module Type
1348
+ extend MetronomeSDK::Internal::Type::Enum
1349
+
1350
+ OVERWRITE = :OVERWRITE
1351
+ MULTIPLIER = :MULTIPLIER
1352
+ TIERED = :TIERED
1353
+
1354
+ # @!method self.values
1355
+ # @return [Array<Symbol>]
1356
+ end
1357
+ end
1358
+
1359
+ class ProfessionalService < MetronomeSDK::Internal::Type::BaseModel
1360
+ # @!attribute max_amount
1361
+ # Maximum amount for the term.
1362
+ #
1363
+ # @return [Float]
1364
+ required :max_amount, Float
1365
+
1366
+ # @!attribute product_id
1367
+ #
1368
+ # @return [String]
1369
+ required :product_id, String
1370
+
1371
+ # @!attribute quantity
1372
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
1373
+ # amount.
1374
+ #
1375
+ # @return [Float]
1376
+ required :quantity, Float
1377
+
1378
+ # @!attribute unit_price
1379
+ # Unit price for the charge. Will be multiplied by quantity to determine the
1380
+ # amount and must be specified.
1381
+ #
1382
+ # @return [Float]
1383
+ required :unit_price, Float
1384
+
1385
+ # @!attribute custom_fields
1386
+ #
1387
+ # @return [Hash{Symbol=>String}, nil]
1388
+ optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
1389
+
1390
+ # @!attribute description
1391
+ #
1392
+ # @return [String, nil]
1393
+ optional :description, String
1394
+
1395
+ # @!attribute netsuite_sales_order_id
1396
+ # This field's availability is dependent on your client's configuration.
1397
+ #
1398
+ # @return [String, nil]
1399
+ optional :netsuite_sales_order_id, String
1400
+
1401
+ # @!method initialize(max_amount:, product_id:, quantity:, unit_price:, custom_fields: nil, description: nil, netsuite_sales_order_id: nil)
1402
+ # Some parameter documentations has been truncated, see
1403
+ # {MetronomeSDK::Models::V1::ContractAmendParams::ProfessionalService} for more
1404
+ # details.
1405
+ #
1406
+ # @param max_amount [Float] Maximum amount for the term.
1407
+ #
1408
+ # @param product_id [String]
1409
+ #
1410
+ # @param quantity [Float] Quantity for the charge. Will be multiplied by unit_price to determine the amoun
1411
+ # ...
1412
+ #
1413
+ # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
1414
+ # ...
1415
+ #
1416
+ # @param custom_fields [Hash{Symbol=>String}]
1417
+ #
1418
+ # @param description [String]
1419
+ #
1420
+ # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
1421
+ end
1422
+
1423
+ class ResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel
1424
+ # @!attribute reseller_type
1425
+ #
1426
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::ResellerType]
1427
+ required :reseller_type,
1428
+ enum: -> { MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::ResellerType }
1429
+
1430
+ # @!attribute applicable_product_ids
1431
+ # Must provide at least one of applicable_product_ids or applicable_product_tags.
1432
+ #
1433
+ # @return [Array<String>, nil]
1434
+ optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1435
+
1436
+ # @!attribute applicable_product_tags
1437
+ # Must provide at least one of applicable_product_ids or applicable_product_tags.
1438
+ #
1439
+ # @return [Array<String>, nil]
1440
+ optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1441
+
1442
+ # @!attribute aws_options
1443
+ #
1444
+ # @return [MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::AwsOptions, nil]
1445
+ optional :aws_options, -> { MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::AwsOptions }
1446
+
1447
+ # @!attribute ending_before
1448
+ # Use null to indicate that the existing end timestamp should be removed.
1449
+ #
1450
+ # @return [Time, nil]
1451
+ optional :ending_before, Time, nil?: true
1452
+
1453
+ # @!attribute fraction
1454
+ #
1455
+ # @return [Float, nil]
1456
+ optional :fraction, Float
1457
+
1458
+ # @!attribute gcp_options
1459
+ #
1460
+ # @return [MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::GcpOptions, nil]
1461
+ optional :gcp_options, -> { MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::GcpOptions }
1462
+
1463
+ # @!attribute netsuite_reseller_id
1464
+ #
1465
+ # @return [String, nil]
1466
+ optional :netsuite_reseller_id, String
1467
+
1468
+ # @!attribute reseller_contract_value
1469
+ #
1470
+ # @return [Float, nil]
1471
+ optional :reseller_contract_value, Float
1472
+
1473
+ # @!attribute starting_at
1474
+ #
1475
+ # @return [Time, nil]
1476
+ optional :starting_at, Time
1477
+
1478
+ # @!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)
1479
+ # @param reseller_type [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::ResellerType]
1480
+ #
1481
+ # @param applicable_product_ids [Array<String>] Must provide at least one of applicable_product_ids or applicable_product_tags.
1482
+ #
1483
+ # @param applicable_product_tags [Array<String>] Must provide at least one of applicable_product_ids or applicable_product_tags.
1484
+ #
1485
+ # @param aws_options [MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::AwsOptions]
1486
+ #
1487
+ # @param ending_before [Time, nil] Use null to indicate that the existing end timestamp should be removed.
1488
+ #
1489
+ # @param fraction [Float]
1490
+ #
1491
+ # @param gcp_options [MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty::GcpOptions]
1492
+ #
1493
+ # @param netsuite_reseller_id [String]
1494
+ #
1495
+ # @param reseller_contract_value [Float]
1496
+ #
1497
+ # @param starting_at [Time]
1498
+
1499
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty#reseller_type
1500
+ module ResellerType
1501
+ extend MetronomeSDK::Internal::Type::Enum
1502
+
1503
+ AWS = :AWS
1504
+ AWS_PRO_SERVICE = :AWS_PRO_SERVICE
1505
+ GCP = :GCP
1506
+ GCP_PRO_SERVICE = :GCP_PRO_SERVICE
1507
+
1508
+ # @!method self.values
1509
+ # @return [Array<Symbol>]
1510
+ end
1511
+
1512
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty#aws_options
1513
+ class AwsOptions < MetronomeSDK::Internal::Type::BaseModel
1514
+ # @!attribute aws_account_number
1515
+ #
1516
+ # @return [String, nil]
1517
+ optional :aws_account_number, String
1518
+
1519
+ # @!attribute aws_offer_id
1520
+ #
1521
+ # @return [String, nil]
1522
+ optional :aws_offer_id, String
1523
+
1524
+ # @!attribute aws_payer_reference_id
1525
+ #
1526
+ # @return [String, nil]
1527
+ optional :aws_payer_reference_id, String
1528
+
1529
+ # @!method initialize(aws_account_number: nil, aws_offer_id: nil, aws_payer_reference_id: nil)
1530
+ # @param aws_account_number [String]
1531
+ # @param aws_offer_id [String]
1532
+ # @param aws_payer_reference_id [String]
1533
+ end
1534
+
1535
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::ResellerRoyalty#gcp_options
1536
+ class GcpOptions < MetronomeSDK::Internal::Type::BaseModel
1537
+ # @!attribute gcp_account_id
1538
+ #
1539
+ # @return [String, nil]
1540
+ optional :gcp_account_id, String
1541
+
1542
+ # @!attribute gcp_offer_id
1543
+ #
1544
+ # @return [String, nil]
1545
+ optional :gcp_offer_id, String
1546
+
1547
+ # @!method initialize(gcp_account_id: nil, gcp_offer_id: nil)
1548
+ # @param gcp_account_id [String]
1549
+ # @param gcp_offer_id [String]
1550
+ end
1551
+ end
1552
+
1553
+ class ScheduledCharge < MetronomeSDK::Internal::Type::BaseModel
1554
+ # @!attribute product_id
1555
+ #
1556
+ # @return [String]
1557
+ required :product_id, String
1558
+
1559
+ # @!attribute schedule
1560
+ # Must provide either schedule_items or recurring_schedule.
1561
+ #
1562
+ # @return [MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule]
1563
+ required :schedule, -> { MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule }
1564
+
1565
+ # @!attribute name
1566
+ # displayed on invoices
1567
+ #
1568
+ # @return [String, nil]
1569
+ optional :name, String
1570
+
1571
+ # @!attribute netsuite_sales_order_id
1572
+ # This field's availability is dependent on your client's configuration.
1573
+ #
1574
+ # @return [String, nil]
1575
+ optional :netsuite_sales_order_id, String
1576
+
1577
+ # @!method initialize(product_id:, schedule:, name: nil, netsuite_sales_order_id: nil)
1578
+ # @param product_id [String]
1579
+ #
1580
+ # @param schedule [MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule] Must provide either schedule_items or recurring_schedule.
1581
+ #
1582
+ # @param name [String] displayed on invoices
1583
+ #
1584
+ # @param netsuite_sales_order_id [String] This field's availability is dependent on your client's configuration.
1585
+
1586
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge#schedule
1587
+ class Schedule < MetronomeSDK::Internal::Type::BaseModel
1588
+ # @!attribute credit_type_id
1589
+ # Defaults to USD (cents) if not passed.
1590
+ #
1591
+ # @return [String, nil]
1592
+ optional :credit_type_id, String
1593
+
1594
+ # @!attribute recurring_schedule
1595
+ # Enter the unit price and quantity for the charge or instead only send the
1596
+ # amount. If amount is sent, the unit price is assumed to be the amount and
1597
+ # quantity is inferred to be 1.
1598
+ #
1599
+ # @return [MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule, nil]
1600
+ optional :recurring_schedule,
1601
+ -> { MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule }
1602
+
1603
+ # @!attribute schedule_items
1604
+ # Either provide amount or provide both unit_price and quantity.
1605
+ #
1606
+ # @return [Array<MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::ScheduleItem>, nil]
1607
+ optional :schedule_items,
1608
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::ScheduleItem] }
1609
+
1610
+ # @!method initialize(credit_type_id: nil, recurring_schedule: nil, schedule_items: nil)
1611
+ # Some parameter documentations has been truncated, see
1612
+ # {MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule} for
1613
+ # more details.
1614
+ #
1615
+ # Must provide either schedule_items or recurring_schedule.
1616
+ #
1617
+ # @param credit_type_id [String] Defaults to USD (cents) if not passed.
1618
+ #
1619
+ # @param recurring_schedule [MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule] Enter the unit price and quantity for the charge or instead only send the amount
1620
+ # ...
1621
+ #
1622
+ # @param schedule_items [Array<MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::ScheduleItem>] Either provide amount or provide both unit_price and quantity.
1623
+
1624
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule#recurring_schedule
1625
+ class RecurringSchedule < MetronomeSDK::Internal::Type::BaseModel
1626
+ # @!attribute amount_distribution
1627
+ #
1628
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::AmountDistribution]
1629
+ required :amount_distribution,
1630
+ enum: -> { MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::AmountDistribution }
1631
+
1632
+ # @!attribute ending_before
1633
+ # RFC 3339 timestamp (exclusive).
1634
+ #
1635
+ # @return [Time]
1636
+ required :ending_before, Time
1637
+
1638
+ # @!attribute frequency
1639
+ #
1640
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::Frequency]
1641
+ required :frequency,
1642
+ enum: -> { MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::Frequency }
1643
+
1644
+ # @!attribute starting_at
1645
+ # RFC 3339 timestamp (inclusive).
1646
+ #
1647
+ # @return [Time]
1648
+ required :starting_at, Time
1649
+
1650
+ # @!attribute amount
1651
+ # Amount for the charge. Can be provided instead of unit_price and quantity. If
1652
+ # amount is sent, the unit_price is assumed to be the amount and quantity is
1653
+ # inferred to be 1.
1654
+ #
1655
+ # @return [Float, nil]
1656
+ optional :amount, Float
1657
+
1658
+ # @!attribute quantity
1659
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
1660
+ # amount and must be specified with unit_price. If specified amount cannot be
1661
+ # provided.
1662
+ #
1663
+ # @return [Float, nil]
1664
+ optional :quantity, Float
1665
+
1666
+ # @!attribute unit_price
1667
+ # Unit price for the charge. Will be multiplied by quantity to determine the
1668
+ # amount and must be specified with quantity. If specified amount cannot be
1669
+ # provided.
1670
+ #
1671
+ # @return [Float, nil]
1672
+ optional :unit_price, Float
1673
+
1674
+ # @!method initialize(amount_distribution:, ending_before:, frequency:, starting_at:, amount: nil, quantity: nil, unit_price: nil)
1675
+ # Some parameter documentations has been truncated, see
1676
+ # {MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule}
1677
+ # for more details.
1678
+ #
1679
+ # Enter the unit price and quantity for the charge or instead only send the
1680
+ # amount. If amount is sent, the unit price is assumed to be the amount and
1681
+ # quantity is inferred to be 1.
1682
+ #
1683
+ # @param amount_distribution [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::AmountDistribution]
1684
+ #
1685
+ # @param ending_before [Time] RFC 3339 timestamp (exclusive).
1686
+ #
1687
+ # @param frequency [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule::Frequency]
1688
+ #
1689
+ # @param starting_at [Time] RFC 3339 timestamp (inclusive).
1690
+ #
1691
+ # @param amount [Float] Amount for the charge. Can be provided instead of unit_price and quantity. If am
1692
+ # ...
1693
+ #
1694
+ # @param quantity [Float] Quantity for the charge. Will be multiplied by unit_price to determine the amoun
1695
+ # ...
1696
+ #
1697
+ # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
1698
+ # ...
1699
+
1700
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule#amount_distribution
1701
+ module AmountDistribution
1702
+ extend MetronomeSDK::Internal::Type::Enum
1703
+
1704
+ DIVIDED = :DIVIDED
1705
+ DIVIDED_ROUNDED = :DIVIDED_ROUNDED
1706
+ EACH = :EACH
1707
+
1708
+ # @!method self.values
1709
+ # @return [Array<Symbol>]
1710
+ end
1711
+
1712
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::RecurringSchedule#frequency
1713
+ module Frequency
1714
+ extend MetronomeSDK::Internal::Type::Enum
1715
+
1716
+ MONTHLY = :MONTHLY
1717
+ QUARTERLY = :QUARTERLY
1718
+ SEMI_ANNUAL = :SEMI_ANNUAL
1719
+ ANNUAL = :ANNUAL
1720
+
1721
+ # @!method self.values
1722
+ # @return [Array<Symbol>]
1723
+ end
1724
+ end
1725
+
1726
+ class ScheduleItem < MetronomeSDK::Internal::Type::BaseModel
1727
+ # @!attribute timestamp
1728
+ # timestamp of the scheduled event
1729
+ #
1730
+ # @return [Time]
1731
+ required :timestamp, Time
1732
+
1733
+ # @!attribute amount
1734
+ # Amount for the charge. Can be provided instead of unit_price and quantity. If
1735
+ # amount is sent, the unit_price is assumed to be the amount and quantity is
1736
+ # inferred to be 1.
1737
+ #
1738
+ # @return [Float, nil]
1739
+ optional :amount, Float
1740
+
1741
+ # @!attribute quantity
1742
+ # Quantity for the charge. Will be multiplied by unit_price to determine the
1743
+ # amount and must be specified with unit_price. If specified amount cannot be
1744
+ # provided.
1745
+ #
1746
+ # @return [Float, nil]
1747
+ optional :quantity, Float
1748
+
1749
+ # @!attribute unit_price
1750
+ # Unit price for the charge. Will be multiplied by quantity to determine the
1751
+ # amount and must be specified with quantity. If specified amount cannot be
1752
+ # provided.
1753
+ #
1754
+ # @return [Float, nil]
1755
+ optional :unit_price, Float
1756
+
1757
+ # @!method initialize(timestamp:, amount: nil, quantity: nil, unit_price: nil)
1758
+ # Some parameter documentations has been truncated, see
1759
+ # {MetronomeSDK::Models::V1::ContractAmendParams::ScheduledCharge::Schedule::ScheduleItem}
1760
+ # for more details.
1761
+ #
1762
+ # @param timestamp [Time] timestamp of the scheduled event
1763
+ #
1764
+ # @param amount [Float] Amount for the charge. Can be provided instead of unit_price and quantity. If am
1765
+ # ...
1766
+ #
1767
+ # @param quantity [Float] Quantity for the charge. Will be multiplied by unit_price to determine the amoun
1768
+ # ...
1769
+ #
1770
+ # @param unit_price [Float] Unit price for the charge. Will be multiplied by quantity to determine the amoun
1771
+ # ...
1772
+ end
1773
+ end
1774
+ end
1775
+ end
1776
+ end
1777
+ end
1778
+ end