metronome-sdk 0.3.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (363) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +91 -0
  3. data/README.md +9 -9
  4. data/lib/metronome_sdk/errors.rb +25 -11
  5. data/lib/metronome_sdk/file_part.rb +10 -7
  6. data/lib/metronome_sdk/internal/body_cursor_page.rb +86 -0
  7. data/lib/metronome_sdk/internal/cursor_page.rb +1 -1
  8. data/lib/metronome_sdk/internal/cursor_page_without_limit.rb +86 -0
  9. data/lib/metronome_sdk/internal/transport/base_client.rb +12 -11
  10. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +8 -19
  11. data/lib/metronome_sdk/internal/type/base_model.rb +6 -13
  12. data/lib/metronome_sdk/internal/type/base_page.rb +1 -1
  13. data/lib/metronome_sdk/internal/type/enum.rb +25 -0
  14. data/lib/metronome_sdk/internal/type/file_input.rb +7 -4
  15. data/lib/metronome_sdk/internal/type/union.rb +11 -0
  16. data/lib/metronome_sdk/internal/util.rb +9 -8
  17. data/lib/metronome_sdk/models/base_threshold_commit.rb +36 -0
  18. data/lib/metronome_sdk/models/commit.rb +26 -170
  19. data/lib/metronome_sdk/models/commit_hierarchy_configuration.rb +98 -0
  20. data/lib/metronome_sdk/models/commit_rate.rb +48 -0
  21. data/lib/metronome_sdk/models/commit_specifier.rb +42 -0
  22. data/lib/metronome_sdk/models/commit_specifier_input.rb +42 -0
  23. data/lib/metronome_sdk/models/contract.rb +404 -0
  24. data/lib/metronome_sdk/models/contract_v2.rb +3169 -0
  25. data/lib/metronome_sdk/models/contract_without_amendments.rb +38 -1128
  26. data/lib/metronome_sdk/models/credit.rb +9 -156
  27. data/lib/metronome_sdk/models/discount.rb +2 -1
  28. data/lib/metronome_sdk/models/hierarchy_configuration.rb +173 -0
  29. data/lib/metronome_sdk/models/override.rb +6 -101
  30. data/lib/metronome_sdk/models/override_tier.rb +21 -0
  31. data/lib/metronome_sdk/models/overwrite_rate.rb +82 -0
  32. data/lib/metronome_sdk/models/payment_gate_config.rb +150 -0
  33. data/lib/metronome_sdk/models/payment_gate_config_v2.rb +150 -0
  34. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +100 -0
  35. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +102 -0
  36. data/lib/metronome_sdk/models/pro_service.rb +2 -1
  37. data/lib/metronome_sdk/models/recurring_commit_subscription_config.rb +51 -0
  38. data/lib/metronome_sdk/models/scheduled_charge.rb +2 -1
  39. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +44 -0
  40. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +44 -0
  41. data/lib/metronome_sdk/models/subscription.rb +311 -0
  42. data/lib/metronome_sdk/models/update_base_threshold_commit.rb +36 -0
  43. data/lib/metronome_sdk/models/v1/alert_archive_params.rb +8 -4
  44. data/lib/metronome_sdk/models/v1/alert_create_params.rb +42 -42
  45. data/lib/metronome_sdk/models/v1/billable_metric_create_params.rb +1 -2
  46. data/lib/metronome_sdk/models/v1/billable_metric_list_response.rb +3 -3
  47. data/lib/metronome_sdk/models/v1/billable_metric_retrieve_response.rb +4 -7
  48. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +58 -411
  49. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_params.rb +7 -16
  50. data/lib/metronome_sdk/models/v1/contract_create_params.rb +315 -1459
  51. data/lib/metronome_sdk/models/v1/contract_list_balances_response.rb +6 -23
  52. data/lib/metronome_sdk/models/v1/contract_list_response.rb +3 -1153
  53. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rb +2 -6
  54. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rb +5 -50
  55. data/lib/metronome_sdk/models/v1/contract_retrieve_response.rb +3 -1154
  56. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_params.rb +1 -3
  57. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +2 -1
  58. data/lib/metronome_sdk/models/v1/contracts/product_list_response.rb +8 -1
  59. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_response.rb +8 -1
  60. data/lib/metronome_sdk/models/v1/contracts/quantity_rounding.rb +1 -4
  61. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_params.rb +4 -7
  62. data/lib/metronome_sdk/models/v1/contracts/rate_card_list_response.rb +10 -1
  63. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rb +2 -6
  64. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rb +5 -50
  65. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rb +10 -1
  66. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_params.rb +1 -3
  67. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_params.rb +1 -3
  68. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +6 -61
  69. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +3 -49
  70. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +4 -51
  71. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rb +2 -6
  72. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rb +5 -49
  73. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_response.rb +103 -123
  74. data/lib/metronome_sdk/models/v1/credit_grant_list_response.rb +3 -5
  75. data/lib/metronome_sdk/models/v1/custom_field_list_keys_params.rb +1 -3
  76. data/lib/metronome_sdk/models/v1/custom_field_list_keys_response.rb +41 -58
  77. data/lib/metronome_sdk/models/v1/custom_field_set_values_params.rb +5 -1
  78. data/lib/metronome_sdk/models/v1/customer.rb +2 -1
  79. data/lib/metronome_sdk/models/v1/customer_create_params.rb +37 -11
  80. data/lib/metronome_sdk/models/v1/customer_detail.rb +11 -2
  81. data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_response.rb +3 -3
  82. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +6 -18
  83. data/lib/metronome_sdk/models/v1/customer_preview_events_response.rb +3 -3
  84. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rb +28 -0
  85. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rb +128 -0
  86. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb +143 -0
  87. data/lib/metronome_sdk/models/v1/customers/alert_list_params.rb +4 -6
  88. data/lib/metronome_sdk/models/v1/customers/alert_reset_params.rb +2 -2
  89. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +37 -8
  90. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +2 -0
  91. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +2 -0
  92. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +10 -60
  93. data/lib/metronome_sdk/models/v1/customers/credit_create_params.rb +6 -48
  94. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +48 -54
  95. data/lib/metronome_sdk/models/v1/customers/invoice.rb +197 -66
  96. data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_params.rb +1 -4
  97. data/lib/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rb +30 -0
  98. data/lib/metronome_sdk/models/v1/customers/plan_add_params.rb +2 -6
  99. data/lib/metronome_sdk/models/v1/customers/plan_list_response.rb +2 -1
  100. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +4 -11
  101. data/lib/metronome_sdk/models/v1/payment.rb +151 -0
  102. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +28 -0
  103. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +18 -0
  104. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +28 -0
  105. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +18 -0
  106. data/lib/metronome_sdk/models/v1/payment_list_params.rb +53 -0
  107. data/lib/metronome_sdk/models/v1/payment_status.rb +19 -0
  108. data/lib/metronome_sdk/models/v1/plan_detail.rb +9 -5
  109. data/lib/metronome_sdk/models/v1/plan_list_charges_response.rb +2 -1
  110. data/lib/metronome_sdk/models/v1/plan_list_customers_response.rb +2 -1
  111. data/lib/metronome_sdk/models/v1/plan_list_response.rb +5 -1
  112. data/lib/metronome_sdk/models/v1/usage_ingest_params.rb +1 -4
  113. data/lib/metronome_sdk/models/v1/usage_list_params.rb +1 -3
  114. data/lib/metronome_sdk/models/v1/usage_list_response.rb +45 -62
  115. data/lib/metronome_sdk/models/v1/usage_search_response.rb +4 -7
  116. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +37 -58
  117. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +34 -49
  118. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +552 -2265
  119. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +417 -2317
  120. data/lib/metronome_sdk/models/v2/contract_list_response.rb +3 -4520
  121. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +3 -4528
  122. data/lib/metronome_sdk/models.rb +38 -0
  123. data/lib/metronome_sdk/resources/v1/alerts.rb +90 -16
  124. data/lib/metronome_sdk/resources/v1/audit_logs.rb +39 -4
  125. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +54 -4
  126. data/lib/metronome_sdk/resources/v1/contracts/products.rb +25 -6
  127. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rb +7 -2
  128. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +10 -2
  129. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +109 -10
  130. data/lib/metronome_sdk/resources/v1/contracts.rb +255 -18
  131. data/lib/metronome_sdk/resources/v1/credit_grants.rb +2 -1
  132. data/lib/metronome_sdk/resources/v1/custom_fields.rb +51 -14
  133. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +127 -13
  134. data/lib/metronome_sdk/resources/v1/customers/commits.rb +119 -9
  135. data/lib/metronome_sdk/resources/v1/customers/credits.rb +104 -8
  136. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +179 -8
  137. data/lib/metronome_sdk/resources/v1/customers.rb +175 -15
  138. data/lib/metronome_sdk/resources/v1/dashboards.rb +29 -3
  139. data/lib/metronome_sdk/resources/v1/invoices.rb +23 -2
  140. data/lib/metronome_sdk/resources/v1/payments.rb +102 -0
  141. data/lib/metronome_sdk/resources/v1/pricing_units.rb +6 -1
  142. data/lib/metronome_sdk/resources/v1/services.rb +6 -4
  143. data/lib/metronome_sdk/resources/v1/usage.rb +188 -13
  144. data/lib/metronome_sdk/resources/v1.rb +4 -0
  145. data/lib/metronome_sdk/resources/v2/contracts.rb +120 -18
  146. data/lib/metronome_sdk/version.rb +1 -1
  147. data/lib/metronome_sdk.rb +33 -3
  148. data/rbi/metronome_sdk/errors.rbi +31 -4
  149. data/rbi/metronome_sdk/file_part.rbi +1 -1
  150. data/rbi/metronome_sdk/internal/body_cursor_page.rbi +22 -0
  151. data/rbi/metronome_sdk/internal/cursor_page_without_limit.rbi +22 -0
  152. data/rbi/metronome_sdk/internal/transport/base_client.rbi +4 -5
  153. data/rbi/metronome_sdk/internal/type/base_page.rbi +1 -1
  154. data/rbi/metronome_sdk/internal/util.rbi +1 -1
  155. data/rbi/metronome_sdk/models/base_threshold_commit.rbi +58 -0
  156. data/rbi/metronome_sdk/models/commit.rbi +26 -348
  157. data/rbi/metronome_sdk/models/commit_hierarchy_configuration.rbi +280 -0
  158. data/rbi/metronome_sdk/models/commit_rate.rbi +85 -0
  159. data/rbi/metronome_sdk/models/commit_specifier.rbi +71 -0
  160. data/rbi/metronome_sdk/models/commit_specifier_input.rbi +74 -0
  161. data/rbi/metronome_sdk/models/contract.rbi +768 -0
  162. data/rbi/metronome_sdk/models/contract_v2.rbi +6415 -0
  163. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +186 -2509
  164. data/rbi/metronome_sdk/models/credit.rbi +10 -348
  165. data/rbi/metronome_sdk/models/discount.rbi +2 -0
  166. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +424 -0
  167. data/rbi/metronome_sdk/models/override.rbi +8 -193
  168. data/rbi/metronome_sdk/models/override_tier.rbi +29 -0
  169. data/rbi/metronome_sdk/models/overwrite_rate.rbi +137 -0
  170. data/rbi/metronome_sdk/models/payment_gate_config.rbi +317 -0
  171. data/rbi/metronome_sdk/models/payment_gate_config_v2.rbi +326 -0
  172. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +183 -0
  173. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +188 -0
  174. data/rbi/metronome_sdk/models/pro_service.rbi +2 -0
  175. data/rbi/metronome_sdk/models/recurring_commit_subscription_config.rbi +125 -0
  176. data/rbi/metronome_sdk/models/scheduled_charge.rbi +2 -0
  177. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +76 -0
  178. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -0
  179. data/rbi/metronome_sdk/models/subscription.rbi +635 -0
  180. data/rbi/metronome_sdk/models/update_base_threshold_commit.rbi +61 -0
  181. data/rbi/metronome_sdk/models/v1/alert_archive_params.rbi +6 -4
  182. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +57 -50
  183. data/rbi/metronome_sdk/models/v1/billable_metric_list_response.rbi +2 -0
  184. data/rbi/metronome_sdk/models/v1/billable_metric_retrieve_response.rbi +2 -0
  185. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +49 -768
  186. data/rbi/metronome_sdk/models/v1/contract_create_historical_invoices_params.rbi +2 -0
  187. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1843 -4119
  188. data/rbi/metronome_sdk/models/v1/contract_list_balances_response.rbi +8 -59
  189. data/rbi/metronome_sdk/models/v1/contract_list_response.rbi +5 -2420
  190. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbi +6 -129
  191. data/rbi/metronome_sdk/models/v1/contract_retrieve_response.rbi +4 -2419
  192. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +2 -0
  193. data/rbi/metronome_sdk/models/v1/contracts/product_list_response.rbi +2 -0
  194. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_response.rbi +2 -0
  195. data/rbi/metronome_sdk/models/v1/contracts/rate_card_create_params.rbi +2 -0
  196. data/rbi/metronome_sdk/models/v1/contracts/rate_card_list_response.rbi +2 -0
  197. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbi +6 -129
  198. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbi +2 -0
  199. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +4 -129
  200. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +4 -129
  201. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +4 -129
  202. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbi +6 -129
  203. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_response.rbi +147 -198
  204. data/rbi/metronome_sdk/models/v1/credit_grant_list_response.rbi +2 -0
  205. data/rbi/metronome_sdk/models/v1/custom_field_list_keys_response.rbi +117 -165
  206. data/rbi/metronome_sdk/models/v1/custom_field_set_values_params.rbi +8 -1
  207. data/rbi/metronome_sdk/models/v1/customer.rbi +2 -0
  208. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +88 -3
  209. data/rbi/metronome_sdk/models/v1/customer_detail.rbi +10 -0
  210. data/rbi/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbi +2 -0
  211. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +6 -21
  212. data/rbi/metronome_sdk/models/v1/customer_preview_events_response.rbi +10 -9
  213. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbi +51 -0
  214. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbi +265 -0
  215. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbi +348 -0
  216. data/rbi/metronome_sdk/models/v1/customers/alert_list_params.rbi +4 -4
  217. data/rbi/metronome_sdk/models/v1/customers/alert_reset_params.rbi +2 -2
  218. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +68 -8
  219. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +10 -0
  220. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +10 -0
  221. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +6 -90
  222. data/rbi/metronome_sdk/models/v1/customers/credit_create_params.rbi +6 -90
  223. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +54 -47
  224. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +316 -68
  225. data/rbi/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rbi +50 -0
  226. data/rbi/metronome_sdk/models/v1/customers/plan_list_response.rbi +2 -0
  227. data/rbi/metronome_sdk/models/v1/payment.rbi +316 -0
  228. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +48 -0
  229. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +35 -0
  230. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +48 -0
  231. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +35 -0
  232. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +91 -0
  233. data/rbi/metronome_sdk/models/v1/payment_status.rbi +33 -0
  234. data/rbi/metronome_sdk/models/v1/plan_detail.rbi +2 -0
  235. data/rbi/metronome_sdk/models/v1/plan_list_charges_response.rbi +2 -0
  236. data/rbi/metronome_sdk/models/v1/plan_list_customers_response.rbi +2 -0
  237. data/rbi/metronome_sdk/models/v1/plan_list_response.rbi +8 -1
  238. data/rbi/metronome_sdk/models/v1/usage_list_response.rbi +45 -86
  239. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +2 -0
  240. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +74 -76
  241. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +74 -76
  242. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +3875 -7234
  243. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1733 -6207
  244. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +5 -9867
  245. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +6 -9866
  246. data/rbi/metronome_sdk/models.rbi +44 -0
  247. data/rbi/metronome_sdk/resources/v1/alerts.rbi +101 -27
  248. data/rbi/metronome_sdk/resources/v1/audit_logs.rbi +39 -4
  249. data/rbi/metronome_sdk/resources/v1/billable_metrics.rbi +54 -4
  250. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +25 -5
  251. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rbi +7 -2
  252. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +10 -3
  253. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards.rbi +109 -9
  254. data/rbi/metronome_sdk/resources/v1/contracts.rbi +258 -16
  255. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +5 -1
  256. data/rbi/metronome_sdk/resources/v1/custom_fields.rbi +57 -14
  257. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +133 -11
  258. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +119 -10
  259. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +104 -9
  260. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +159 -7
  261. data/rbi/metronome_sdk/resources/v1/customers.rbi +162 -14
  262. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +29 -3
  263. data/rbi/metronome_sdk/resources/v1/invoices.rbi +23 -2
  264. data/rbi/metronome_sdk/resources/v1/payments.rbi +72 -0
  265. data/rbi/metronome_sdk/resources/v1/pricing_units.rbi +6 -1
  266. data/rbi/metronome_sdk/resources/v1/services.rbi +6 -4
  267. data/rbi/metronome_sdk/resources/v1/usage.rbi +191 -13
  268. data/rbi/metronome_sdk/resources/v1.rbi +3 -0
  269. data/rbi/metronome_sdk/resources/v2/contracts.rbi +134 -23
  270. data/sig/metronome_sdk/errors.rbs +7 -0
  271. data/sig/metronome_sdk/file_part.rbs +1 -1
  272. data/sig/metronome_sdk/internal/body_cursor_page.rbs +13 -0
  273. data/sig/metronome_sdk/internal/cursor_page_without_limit.rbs +13 -0
  274. data/sig/metronome_sdk/models/base_threshold_commit.rbs +26 -0
  275. data/sig/metronome_sdk/models/commit.rbs +17 -170
  276. data/sig/metronome_sdk/models/commit_hierarchy_configuration.rbs +117 -0
  277. data/sig/metronome_sdk/models/commit_rate.rbs +48 -0
  278. data/sig/metronome_sdk/models/commit_specifier.rbs +47 -0
  279. data/sig/metronome_sdk/models/commit_specifier_input.rbs +47 -0
  280. data/sig/metronome_sdk/models/contract.rbs +398 -0
  281. data/sig/metronome_sdk/models/contract_v2.rbs +3108 -0
  282. data/sig/metronome_sdk/models/contract_without_amendments.rbs +54 -976
  283. data/sig/metronome_sdk/models/credit.rbs +12 -170
  284. data/sig/metronome_sdk/models/hierarchy_configuration.rbs +152 -0
  285. data/sig/metronome_sdk/models/override.rbs +12 -101
  286. data/sig/metronome_sdk/models/override_tier.rbs +17 -0
  287. data/sig/metronome_sdk/models/overwrite_rate.rbs +78 -0
  288. data/sig/metronome_sdk/models/payment_gate_config.rbs +124 -0
  289. data/sig/metronome_sdk/models/payment_gate_config_v2.rbs +124 -0
  290. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +82 -0
  291. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +82 -0
  292. data/sig/metronome_sdk/models/recurring_commit_subscription_config.rbs +51 -0
  293. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +35 -0
  294. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +35 -0
  295. data/sig/metronome_sdk/models/subscription.rbs +295 -0
  296. data/sig/metronome_sdk/models/update_base_threshold_commit.rbs +28 -0
  297. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +4 -2
  298. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +26 -341
  299. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +219 -1184
  300. data/sig/metronome_sdk/models/v1/contract_list_balances_response.rbs +4 -25
  301. data/sig/metronome_sdk/models/v1/contract_list_response.rbs +4 -1041
  302. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbs +6 -54
  303. data/sig/metronome_sdk/models/v1/contract_retrieve_response.rbs +4 -1041
  304. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbs +6 -54
  305. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +6 -54
  306. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +6 -54
  307. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +6 -54
  308. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbs +6 -54
  309. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_response.rbs +72 -94
  310. data/sig/metronome_sdk/models/v1/custom_field_list_keys_response.rbs +53 -75
  311. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +31 -4
  312. data/sig/metronome_sdk/models/v1/customer_detail.rbs +5 -0
  313. data/sig/metronome_sdk/models/v1/customer_preview_events_params.rbs +0 -7
  314. data/sig/metronome_sdk/models/v1/customer_preview_events_response.rbs +6 -4
  315. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbs +32 -0
  316. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbs +113 -0
  317. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbs +133 -0
  318. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +21 -0
  319. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +7 -1
  320. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +6 -1
  321. data/sig/metronome_sdk/models/v1/customers/commit_create_params.rbs +6 -50
  322. data/sig/metronome_sdk/models/v1/customers/credit_create_params.rbs +6 -50
  323. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +4 -2
  324. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +137 -24
  325. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rbs +32 -0
  326. data/sig/metronome_sdk/models/v1/payment.rbs +191 -0
  327. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +30 -0
  328. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +15 -0
  329. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +30 -0
  330. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +15 -0
  331. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +56 -0
  332. data/sig/metronome_sdk/models/v1/payment_status.rbs +19 -0
  333. data/sig/metronome_sdk/models/v1/usage_list_response.rbs +33 -55
  334. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +28 -43
  335. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +28 -43
  336. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +412 -1793
  337. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +342 -2149
  338. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +4 -4426
  339. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +4 -4426
  340. data/sig/metronome_sdk/models.rbs +38 -0
  341. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -1
  342. data/sig/metronome_sdk/resources/v1/contracts.rbs +3 -3
  343. data/sig/metronome_sdk/resources/v1/credit_grants.rbs +1 -1
  344. data/sig/metronome_sdk/resources/v1/custom_fields.rbs +1 -1
  345. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +2 -1
  346. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +2 -2
  347. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +2 -2
  348. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +6 -0
  349. data/sig/metronome_sdk/resources/v1/customers.rbs +11 -0
  350. data/sig/metronome_sdk/resources/v1/payments.rbs +30 -0
  351. data/sig/metronome_sdk/resources/v1/usage.rbs +1 -1
  352. data/sig/metronome_sdk/resources/v1.rbs +2 -0
  353. data/sig/metronome_sdk/resources/v2/contracts.rbs +10 -4
  354. metadata +101 -11
  355. data/lib/metronome_sdk/models/v1/customers/alert_list_response.rb +0 -29
  356. data/lib/metronome_sdk/models/v1/customers/commit_list_response.rb +0 -26
  357. data/lib/metronome_sdk/models/v1/customers/credit_list_response.rb +0 -26
  358. data/rbi/metronome_sdk/models/v1/customers/alert_list_response.rbi +0 -46
  359. data/rbi/metronome_sdk/models/v1/customers/commit_list_response.rbi +0 -45
  360. data/rbi/metronome_sdk/models/v1/customers/credit_list_response.rbi +0 -45
  361. data/sig/metronome_sdk/models/v1/customers/alert_list_response.rbs +0 -29
  362. data/sig/metronome_sdk/models/v1/customers/commit_list_response.rbs +0 -26
  363. data/sig/metronome_sdk/models/v1/customers/credit_list_response.rbs +0 -26
@@ -0,0 +1,3108 @@
1
+ module MetronomeSDK
2
+ module Models
3
+ type contract_v2 =
4
+ {
5
+ id: String,
6
+ commits: ::Array[MetronomeSDK::ContractV2::Commit],
7
+ created_at: Time,
8
+ created_by: String,
9
+ customer_id: String,
10
+ overrides: ::Array[MetronomeSDK::ContractV2::Override],
11
+ scheduled_charges: ::Array[MetronomeSDK::ScheduledCharge],
12
+ starting_at: Time,
13
+ transitions: ::Array[MetronomeSDK::ContractV2::Transition],
14
+ usage_filter: ::Array[MetronomeSDK::ContractV2::UsageFilter],
15
+ usage_statement_schedule: MetronomeSDK::ContractV2::UsageStatementSchedule,
16
+ archived_at: Time,
17
+ credits: ::Array[MetronomeSDK::ContractV2::Credit],
18
+ custom_fields: ::Hash[Symbol, String],
19
+ customer_billing_provider_configuration: MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration,
20
+ discounts: ::Array[MetronomeSDK::Discount],
21
+ ending_before: Time,
22
+ has_more: MetronomeSDK::ContractV2::HasMore,
23
+ hierarchy_configuration: MetronomeSDK::Models::ContractV2::hierarchy_configuration,
24
+ multiplier_override_prioritization: MetronomeSDK::Models::ContractV2::multiplier_override_prioritization,
25
+ name: String,
26
+ net_payment_terms_days: Float,
27
+ netsuite_sales_order_id: String,
28
+ prepaid_balance_threshold_configuration: MetronomeSDK::PrepaidBalanceThresholdConfigurationV2,
29
+ priority: Float,
30
+ professional_services: ::Array[MetronomeSDK::ProService],
31
+ rate_card_id: String,
32
+ recurring_commits: ::Array[MetronomeSDK::ContractV2::RecurringCommit],
33
+ recurring_credits: ::Array[MetronomeSDK::ContractV2::RecurringCredit],
34
+ reseller_royalties: ::Array[MetronomeSDK::ContractV2::ResellerRoyalty],
35
+ salesforce_opportunity_id: String,
36
+ scheduled_charges_on_usage_invoices: MetronomeSDK::Models::ContractV2::scheduled_charges_on_usage_invoices,
37
+ spend_threshold_configuration: MetronomeSDK::SpendThresholdConfigurationV2,
38
+ subscriptions: ::Array[MetronomeSDK::Subscription],
39
+ total_contract_value: Float,
40
+ uniqueness_key: String
41
+ }
42
+
43
+ class ContractV2 < MetronomeSDK::Internal::Type::BaseModel
44
+ attr_accessor id: String
45
+
46
+ attr_accessor commits: ::Array[MetronomeSDK::ContractV2::Commit]
47
+
48
+ attr_accessor created_at: Time
49
+
50
+ attr_accessor created_by: String
51
+
52
+ attr_accessor customer_id: String
53
+
54
+ attr_accessor overrides: ::Array[MetronomeSDK::ContractV2::Override]
55
+
56
+ attr_accessor scheduled_charges: ::Array[MetronomeSDK::ScheduledCharge]
57
+
58
+ attr_accessor starting_at: Time
59
+
60
+ attr_accessor transitions: ::Array[MetronomeSDK::ContractV2::Transition]
61
+
62
+ attr_accessor usage_filter: ::Array[MetronomeSDK::ContractV2::UsageFilter]
63
+
64
+ attr_accessor usage_statement_schedule: MetronomeSDK::ContractV2::UsageStatementSchedule
65
+
66
+ attr_reader archived_at: Time?
67
+
68
+ def archived_at=: (Time) -> Time
69
+
70
+ attr_reader credits: ::Array[MetronomeSDK::ContractV2::Credit]?
71
+
72
+ def credits=: (
73
+ ::Array[MetronomeSDK::ContractV2::Credit]
74
+ ) -> ::Array[MetronomeSDK::ContractV2::Credit]
75
+
76
+ attr_reader custom_fields: ::Hash[Symbol, String]?
77
+
78
+ def custom_fields=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
79
+
80
+ attr_reader customer_billing_provider_configuration: MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration?
81
+
82
+ def customer_billing_provider_configuration=: (
83
+ MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration
84
+ ) -> MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration
85
+
86
+ attr_reader discounts: ::Array[MetronomeSDK::Discount]?
87
+
88
+ def discounts=: (
89
+ ::Array[MetronomeSDK::Discount]
90
+ ) -> ::Array[MetronomeSDK::Discount]
91
+
92
+ attr_reader ending_before: Time?
93
+
94
+ def ending_before=: (Time) -> Time
95
+
96
+ attr_reader has_more: MetronomeSDK::ContractV2::HasMore?
97
+
98
+ def has_more=: (
99
+ MetronomeSDK::ContractV2::HasMore
100
+ ) -> MetronomeSDK::ContractV2::HasMore
101
+
102
+ attr_reader hierarchy_configuration: MetronomeSDK::Models::ContractV2::hierarchy_configuration?
103
+
104
+ def hierarchy_configuration=: (
105
+ MetronomeSDK::Models::ContractV2::hierarchy_configuration
106
+ ) -> MetronomeSDK::Models::ContractV2::hierarchy_configuration
107
+
108
+ attr_reader multiplier_override_prioritization: MetronomeSDK::Models::ContractV2::multiplier_override_prioritization?
109
+
110
+ def multiplier_override_prioritization=: (
111
+ MetronomeSDK::Models::ContractV2::multiplier_override_prioritization
112
+ ) -> MetronomeSDK::Models::ContractV2::multiplier_override_prioritization
113
+
114
+ attr_reader name: String?
115
+
116
+ def name=: (String) -> String
117
+
118
+ attr_reader net_payment_terms_days: Float?
119
+
120
+ def net_payment_terms_days=: (Float) -> Float
121
+
122
+ attr_reader netsuite_sales_order_id: String?
123
+
124
+ def netsuite_sales_order_id=: (String) -> String
125
+
126
+ attr_reader prepaid_balance_threshold_configuration: MetronomeSDK::PrepaidBalanceThresholdConfigurationV2?
127
+
128
+ def prepaid_balance_threshold_configuration=: (
129
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2
130
+ ) -> MetronomeSDK::PrepaidBalanceThresholdConfigurationV2
131
+
132
+ attr_reader priority: Float?
133
+
134
+ def priority=: (Float) -> Float
135
+
136
+ attr_reader professional_services: ::Array[MetronomeSDK::ProService]?
137
+
138
+ def professional_services=: (
139
+ ::Array[MetronomeSDK::ProService]
140
+ ) -> ::Array[MetronomeSDK::ProService]
141
+
142
+ attr_reader rate_card_id: String?
143
+
144
+ def rate_card_id=: (String) -> String
145
+
146
+ attr_reader recurring_commits: ::Array[MetronomeSDK::ContractV2::RecurringCommit]?
147
+
148
+ def recurring_commits=: (
149
+ ::Array[MetronomeSDK::ContractV2::RecurringCommit]
150
+ ) -> ::Array[MetronomeSDK::ContractV2::RecurringCommit]
151
+
152
+ attr_reader recurring_credits: ::Array[MetronomeSDK::ContractV2::RecurringCredit]?
153
+
154
+ def recurring_credits=: (
155
+ ::Array[MetronomeSDK::ContractV2::RecurringCredit]
156
+ ) -> ::Array[MetronomeSDK::ContractV2::RecurringCredit]
157
+
158
+ attr_reader reseller_royalties: ::Array[MetronomeSDK::ContractV2::ResellerRoyalty]?
159
+
160
+ def reseller_royalties=: (
161
+ ::Array[MetronomeSDK::ContractV2::ResellerRoyalty]
162
+ ) -> ::Array[MetronomeSDK::ContractV2::ResellerRoyalty]
163
+
164
+ attr_reader salesforce_opportunity_id: String?
165
+
166
+ def salesforce_opportunity_id=: (String) -> String
167
+
168
+ attr_reader scheduled_charges_on_usage_invoices: MetronomeSDK::Models::ContractV2::scheduled_charges_on_usage_invoices?
169
+
170
+ def scheduled_charges_on_usage_invoices=: (
171
+ MetronomeSDK::Models::ContractV2::scheduled_charges_on_usage_invoices
172
+ ) -> MetronomeSDK::Models::ContractV2::scheduled_charges_on_usage_invoices
173
+
174
+ attr_reader spend_threshold_configuration: MetronomeSDK::SpendThresholdConfigurationV2?
175
+
176
+ def spend_threshold_configuration=: (
177
+ MetronomeSDK::SpendThresholdConfigurationV2
178
+ ) -> MetronomeSDK::SpendThresholdConfigurationV2
179
+
180
+ attr_reader subscriptions: ::Array[MetronomeSDK::Subscription]?
181
+
182
+ def subscriptions=: (
183
+ ::Array[MetronomeSDK::Subscription]
184
+ ) -> ::Array[MetronomeSDK::Subscription]
185
+
186
+ attr_reader total_contract_value: Float?
187
+
188
+ def total_contract_value=: (Float) -> Float
189
+
190
+ attr_reader uniqueness_key: String?
191
+
192
+ def uniqueness_key=: (String) -> String
193
+
194
+ def initialize: (
195
+ id: String,
196
+ commits: ::Array[MetronomeSDK::ContractV2::Commit],
197
+ created_at: Time,
198
+ created_by: String,
199
+ customer_id: String,
200
+ overrides: ::Array[MetronomeSDK::ContractV2::Override],
201
+ scheduled_charges: ::Array[MetronomeSDK::ScheduledCharge],
202
+ starting_at: Time,
203
+ transitions: ::Array[MetronomeSDK::ContractV2::Transition],
204
+ usage_filter: ::Array[MetronomeSDK::ContractV2::UsageFilter],
205
+ usage_statement_schedule: MetronomeSDK::ContractV2::UsageStatementSchedule,
206
+ ?archived_at: Time,
207
+ ?credits: ::Array[MetronomeSDK::ContractV2::Credit],
208
+ ?custom_fields: ::Hash[Symbol, String],
209
+ ?customer_billing_provider_configuration: MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration,
210
+ ?discounts: ::Array[MetronomeSDK::Discount],
211
+ ?ending_before: Time,
212
+ ?has_more: MetronomeSDK::ContractV2::HasMore,
213
+ ?hierarchy_configuration: MetronomeSDK::Models::ContractV2::hierarchy_configuration,
214
+ ?multiplier_override_prioritization: MetronomeSDK::Models::ContractV2::multiplier_override_prioritization,
215
+ ?name: String,
216
+ ?net_payment_terms_days: Float,
217
+ ?netsuite_sales_order_id: String,
218
+ ?prepaid_balance_threshold_configuration: MetronomeSDK::PrepaidBalanceThresholdConfigurationV2,
219
+ ?priority: Float,
220
+ ?professional_services: ::Array[MetronomeSDK::ProService],
221
+ ?rate_card_id: String,
222
+ ?recurring_commits: ::Array[MetronomeSDK::ContractV2::RecurringCommit],
223
+ ?recurring_credits: ::Array[MetronomeSDK::ContractV2::RecurringCredit],
224
+ ?reseller_royalties: ::Array[MetronomeSDK::ContractV2::ResellerRoyalty],
225
+ ?salesforce_opportunity_id: String,
226
+ ?scheduled_charges_on_usage_invoices: MetronomeSDK::Models::ContractV2::scheduled_charges_on_usage_invoices,
227
+ ?spend_threshold_configuration: MetronomeSDK::SpendThresholdConfigurationV2,
228
+ ?subscriptions: ::Array[MetronomeSDK::Subscription],
229
+ ?total_contract_value: Float,
230
+ ?uniqueness_key: String
231
+ ) -> void
232
+
233
+ def to_hash: -> {
234
+ id: String,
235
+ commits: ::Array[MetronomeSDK::ContractV2::Commit],
236
+ created_at: Time,
237
+ created_by: String,
238
+ customer_id: String,
239
+ overrides: ::Array[MetronomeSDK::ContractV2::Override],
240
+ scheduled_charges: ::Array[MetronomeSDK::ScheduledCharge],
241
+ starting_at: Time,
242
+ transitions: ::Array[MetronomeSDK::ContractV2::Transition],
243
+ usage_filter: ::Array[MetronomeSDK::ContractV2::UsageFilter],
244
+ usage_statement_schedule: MetronomeSDK::ContractV2::UsageStatementSchedule,
245
+ archived_at: Time,
246
+ credits: ::Array[MetronomeSDK::ContractV2::Credit],
247
+ custom_fields: ::Hash[Symbol, String],
248
+ customer_billing_provider_configuration: MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration,
249
+ discounts: ::Array[MetronomeSDK::Discount],
250
+ ending_before: Time,
251
+ has_more: MetronomeSDK::ContractV2::HasMore,
252
+ hierarchy_configuration: MetronomeSDK::Models::ContractV2::hierarchy_configuration,
253
+ multiplier_override_prioritization: MetronomeSDK::Models::ContractV2::multiplier_override_prioritization,
254
+ name: String,
255
+ net_payment_terms_days: Float,
256
+ netsuite_sales_order_id: String,
257
+ prepaid_balance_threshold_configuration: MetronomeSDK::PrepaidBalanceThresholdConfigurationV2,
258
+ priority: Float,
259
+ professional_services: ::Array[MetronomeSDK::ProService],
260
+ rate_card_id: String,
261
+ recurring_commits: ::Array[MetronomeSDK::ContractV2::RecurringCommit],
262
+ recurring_credits: ::Array[MetronomeSDK::ContractV2::RecurringCredit],
263
+ reseller_royalties: ::Array[MetronomeSDK::ContractV2::ResellerRoyalty],
264
+ salesforce_opportunity_id: String,
265
+ scheduled_charges_on_usage_invoices: MetronomeSDK::Models::ContractV2::scheduled_charges_on_usage_invoices,
266
+ spend_threshold_configuration: MetronomeSDK::SpendThresholdConfigurationV2,
267
+ subscriptions: ::Array[MetronomeSDK::Subscription],
268
+ total_contract_value: Float,
269
+ uniqueness_key: String
270
+ }
271
+
272
+ type commit =
273
+ {
274
+ id: String,
275
+ created_at: Time,
276
+ product: MetronomeSDK::ContractV2::Commit::Product,
277
+ type: MetronomeSDK::Models::ContractV2::Commit::type_,
278
+ access_schedule: MetronomeSDK::ScheduleDuration,
279
+ applicable_contract_ids: ::Array[String],
280
+ applicable_product_ids: ::Array[String],
281
+ applicable_product_tags: ::Array[String],
282
+ archived_at: Time,
283
+ balance: Float,
284
+ contract: MetronomeSDK::ContractV2::Commit::Contract,
285
+ custom_fields: ::Hash[Symbol, String],
286
+ description: String,
287
+ hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
288
+ invoice_contract: MetronomeSDK::ContractV2::Commit::InvoiceContract,
289
+ invoice_schedule: MetronomeSDK::SchedulePointInTime,
290
+ ledger: ::Array[MetronomeSDK::Models::ContractV2::Commit::ledger],
291
+ name: String,
292
+ netsuite_sales_order_id: String,
293
+ priority: Float,
294
+ rate_type: MetronomeSDK::Models::ContractV2::Commit::rate_type,
295
+ rolled_over_from: MetronomeSDK::ContractV2::Commit::RolledOverFrom,
296
+ rollover_fraction: Float,
297
+ salesforce_opportunity_id: String,
298
+ specifiers: ::Array[MetronomeSDK::CommitSpecifier]
299
+ }
300
+
301
+ class Commit < MetronomeSDK::Internal::Type::BaseModel
302
+ attr_accessor id: String
303
+
304
+ attr_accessor created_at: Time
305
+
306
+ attr_accessor product: MetronomeSDK::ContractV2::Commit::Product
307
+
308
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Commit::type_
309
+
310
+ attr_reader access_schedule: MetronomeSDK::ScheduleDuration?
311
+
312
+ def access_schedule=: (
313
+ MetronomeSDK::ScheduleDuration
314
+ ) -> MetronomeSDK::ScheduleDuration
315
+
316
+ attr_reader applicable_contract_ids: ::Array[String]?
317
+
318
+ def applicable_contract_ids=: (::Array[String]) -> ::Array[String]
319
+
320
+ attr_reader applicable_product_ids: ::Array[String]?
321
+
322
+ def applicable_product_ids=: (::Array[String]) -> ::Array[String]
323
+
324
+ attr_reader applicable_product_tags: ::Array[String]?
325
+
326
+ def applicable_product_tags=: (::Array[String]) -> ::Array[String]
327
+
328
+ attr_reader archived_at: Time?
329
+
330
+ def archived_at=: (Time) -> Time
331
+
332
+ attr_reader balance: Float?
333
+
334
+ def balance=: (Float) -> Float
335
+
336
+ attr_reader contract: MetronomeSDK::ContractV2::Commit::Contract?
337
+
338
+ def contract=: (
339
+ MetronomeSDK::ContractV2::Commit::Contract
340
+ ) -> MetronomeSDK::ContractV2::Commit::Contract
341
+
342
+ attr_reader custom_fields: ::Hash[Symbol, String]?
343
+
344
+ def custom_fields=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
345
+
346
+ attr_reader description: String?
347
+
348
+ def description=: (String) -> String
349
+
350
+ attr_reader hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration?
351
+
352
+ def hierarchy_configuration=: (
353
+ MetronomeSDK::CommitHierarchyConfiguration
354
+ ) -> MetronomeSDK::CommitHierarchyConfiguration
355
+
356
+ attr_reader invoice_contract: MetronomeSDK::ContractV2::Commit::InvoiceContract?
357
+
358
+ def invoice_contract=: (
359
+ MetronomeSDK::ContractV2::Commit::InvoiceContract
360
+ ) -> MetronomeSDK::ContractV2::Commit::InvoiceContract
361
+
362
+ attr_reader invoice_schedule: MetronomeSDK::SchedulePointInTime?
363
+
364
+ def invoice_schedule=: (
365
+ MetronomeSDK::SchedulePointInTime
366
+ ) -> MetronomeSDK::SchedulePointInTime
367
+
368
+ attr_reader ledger: ::Array[MetronomeSDK::Models::ContractV2::Commit::ledger]?
369
+
370
+ def ledger=: (
371
+ ::Array[MetronomeSDK::Models::ContractV2::Commit::ledger]
372
+ ) -> ::Array[MetronomeSDK::Models::ContractV2::Commit::ledger]
373
+
374
+ attr_reader name: String?
375
+
376
+ def name=: (String) -> String
377
+
378
+ attr_reader netsuite_sales_order_id: String?
379
+
380
+ def netsuite_sales_order_id=: (String) -> String
381
+
382
+ attr_reader priority: Float?
383
+
384
+ def priority=: (Float) -> Float
385
+
386
+ attr_reader rate_type: MetronomeSDK::Models::ContractV2::Commit::rate_type?
387
+
388
+ def rate_type=: (
389
+ MetronomeSDK::Models::ContractV2::Commit::rate_type
390
+ ) -> MetronomeSDK::Models::ContractV2::Commit::rate_type
391
+
392
+ attr_reader rolled_over_from: MetronomeSDK::ContractV2::Commit::RolledOverFrom?
393
+
394
+ def rolled_over_from=: (
395
+ MetronomeSDK::ContractV2::Commit::RolledOverFrom
396
+ ) -> MetronomeSDK::ContractV2::Commit::RolledOverFrom
397
+
398
+ attr_reader rollover_fraction: Float?
399
+
400
+ def rollover_fraction=: (Float) -> Float
401
+
402
+ attr_reader salesforce_opportunity_id: String?
403
+
404
+ def salesforce_opportunity_id=: (String) -> String
405
+
406
+ attr_reader specifiers: ::Array[MetronomeSDK::CommitSpecifier]?
407
+
408
+ def specifiers=: (
409
+ ::Array[MetronomeSDK::CommitSpecifier]
410
+ ) -> ::Array[MetronomeSDK::CommitSpecifier]
411
+
412
+ def initialize: (
413
+ id: String,
414
+ created_at: Time,
415
+ product: MetronomeSDK::ContractV2::Commit::Product,
416
+ type: MetronomeSDK::Models::ContractV2::Commit::type_,
417
+ ?access_schedule: MetronomeSDK::ScheduleDuration,
418
+ ?applicable_contract_ids: ::Array[String],
419
+ ?applicable_product_ids: ::Array[String],
420
+ ?applicable_product_tags: ::Array[String],
421
+ ?archived_at: Time,
422
+ ?balance: Float,
423
+ ?contract: MetronomeSDK::ContractV2::Commit::Contract,
424
+ ?custom_fields: ::Hash[Symbol, String],
425
+ ?description: String,
426
+ ?hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
427
+ ?invoice_contract: MetronomeSDK::ContractV2::Commit::InvoiceContract,
428
+ ?invoice_schedule: MetronomeSDK::SchedulePointInTime,
429
+ ?ledger: ::Array[MetronomeSDK::Models::ContractV2::Commit::ledger],
430
+ ?name: String,
431
+ ?netsuite_sales_order_id: String,
432
+ ?priority: Float,
433
+ ?rate_type: MetronomeSDK::Models::ContractV2::Commit::rate_type,
434
+ ?rolled_over_from: MetronomeSDK::ContractV2::Commit::RolledOverFrom,
435
+ ?rollover_fraction: Float,
436
+ ?salesforce_opportunity_id: String,
437
+ ?specifiers: ::Array[MetronomeSDK::CommitSpecifier]
438
+ ) -> void
439
+
440
+ def to_hash: -> {
441
+ id: String,
442
+ created_at: Time,
443
+ product: MetronomeSDK::ContractV2::Commit::Product,
444
+ type: MetronomeSDK::Models::ContractV2::Commit::type_,
445
+ access_schedule: MetronomeSDK::ScheduleDuration,
446
+ applicable_contract_ids: ::Array[String],
447
+ applicable_product_ids: ::Array[String],
448
+ applicable_product_tags: ::Array[String],
449
+ archived_at: Time,
450
+ balance: Float,
451
+ contract: MetronomeSDK::ContractV2::Commit::Contract,
452
+ custom_fields: ::Hash[Symbol, String],
453
+ description: String,
454
+ hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
455
+ invoice_contract: MetronomeSDK::ContractV2::Commit::InvoiceContract,
456
+ invoice_schedule: MetronomeSDK::SchedulePointInTime,
457
+ ledger: ::Array[MetronomeSDK::Models::ContractV2::Commit::ledger],
458
+ name: String,
459
+ netsuite_sales_order_id: String,
460
+ priority: Float,
461
+ rate_type: MetronomeSDK::Models::ContractV2::Commit::rate_type,
462
+ rolled_over_from: MetronomeSDK::ContractV2::Commit::RolledOverFrom,
463
+ rollover_fraction: Float,
464
+ salesforce_opportunity_id: String,
465
+ specifiers: ::Array[MetronomeSDK::CommitSpecifier]
466
+ }
467
+
468
+ type product = { id: String, name: String }
469
+
470
+ class Product < MetronomeSDK::Internal::Type::BaseModel
471
+ attr_accessor id: String
472
+
473
+ attr_accessor name: String
474
+
475
+ def initialize: (id: String, name: String) -> void
476
+
477
+ def to_hash: -> { id: String, name: String }
478
+ end
479
+
480
+ type type_ = :PREPAID | :POSTPAID
481
+
482
+ module Type
483
+ extend MetronomeSDK::Internal::Type::Enum
484
+
485
+ PREPAID: :PREPAID
486
+ POSTPAID: :POSTPAID
487
+
488
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Commit::type_]
489
+ end
490
+
491
+ type contract = { id: String }
492
+
493
+ class Contract < MetronomeSDK::Internal::Type::BaseModel
494
+ attr_accessor id: String
495
+
496
+ def initialize: (id: String) -> void
497
+
498
+ def to_hash: -> { id: String }
499
+ end
500
+
501
+ type invoice_contract = { id: String }
502
+
503
+ class InvoiceContract < MetronomeSDK::Internal::Type::BaseModel
504
+ attr_accessor id: String
505
+
506
+ def initialize: (id: String) -> void
507
+
508
+ def to_hash: -> { id: String }
509
+ end
510
+
511
+ type ledger =
512
+ MetronomeSDK::ContractV2::Commit::Ledger::PrepaidCommitSegmentStartLedgerEntry
513
+ | MetronomeSDK::ContractV2::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry
514
+ | MetronomeSDK::ContractV2::Commit::Ledger::PrepaidCommitRolloverLedgerEntry
515
+ | MetronomeSDK::ContractV2::Commit::Ledger::PrepaidCommitExpirationLedgerEntry
516
+ | MetronomeSDK::ContractV2::Commit::Ledger::PrepaidCommitCanceledLedgerEntry
517
+ | MetronomeSDK::ContractV2::Commit::Ledger::PrepaidCommitCreditedLedgerEntry
518
+ | MetronomeSDK::ContractV2::Commit::Ledger::PrepaidCommitSeatBasedAdjustmentLedgerEntry
519
+ | MetronomeSDK::ContractV2::Commit::Ledger::PostpaidCommitInitialBalanceLedgerEntry
520
+ | MetronomeSDK::ContractV2::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry
521
+ | MetronomeSDK::ContractV2::Commit::Ledger::PostpaidCommitRolloverLedgerEntry
522
+ | MetronomeSDK::ContractV2::Commit::Ledger::PostpaidCommitTrueupLedgerEntry
523
+ | MetronomeSDK::ContractV2::Commit::Ledger::PrepaidCommitManualLedgerEntry
524
+ | MetronomeSDK::ContractV2::Commit::Ledger::PostpaidCommitManualLedgerEntry
525
+ | MetronomeSDK::ContractV2::Commit::Ledger::PostpaidCommitExpirationLedgerEntry
526
+
527
+ module Ledger
528
+ extend MetronomeSDK::Internal::Type::Union
529
+
530
+ type prepaid_commit_segment_start_ledger_entry =
531
+ {
532
+ amount: Float,
533
+ segment_id: String,
534
+ timestamp: Time,
535
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitSegmentStartLedgerEntry::type_
536
+ }
537
+
538
+ class PrepaidCommitSegmentStartLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
539
+ attr_accessor amount: Float
540
+
541
+ attr_accessor segment_id: String
542
+
543
+ attr_accessor timestamp: Time
544
+
545
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitSegmentStartLedgerEntry::type_
546
+
547
+ def initialize: (
548
+ amount: Float,
549
+ segment_id: String,
550
+ timestamp: Time,
551
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitSegmentStartLedgerEntry::type_
552
+ ) -> void
553
+
554
+ def to_hash: -> {
555
+ amount: Float,
556
+ segment_id: String,
557
+ timestamp: Time,
558
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitSegmentStartLedgerEntry::type_
559
+ }
560
+
561
+ type type_ = :PREPAID_COMMIT_SEGMENT_START
562
+
563
+ module Type
564
+ extend MetronomeSDK::Internal::Type::Enum
565
+
566
+ PREPAID_COMMIT_SEGMENT_START: :PREPAID_COMMIT_SEGMENT_START
567
+
568
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitSegmentStartLedgerEntry::type_]
569
+ end
570
+ end
571
+
572
+ type prepaid_commit_automated_invoice_deduction_ledger_entry =
573
+ {
574
+ amount: Float,
575
+ invoice_id: String,
576
+ segment_id: String,
577
+ timestamp: Time,
578
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry::type_,
579
+ contract_id: String
580
+ }
581
+
582
+ class PrepaidCommitAutomatedInvoiceDeductionLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
583
+ attr_accessor amount: Float
584
+
585
+ attr_accessor invoice_id: String
586
+
587
+ attr_accessor segment_id: String
588
+
589
+ attr_accessor timestamp: Time
590
+
591
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry::type_
592
+
593
+ attr_reader contract_id: String?
594
+
595
+ def contract_id=: (String) -> String
596
+
597
+ def initialize: (
598
+ amount: Float,
599
+ invoice_id: String,
600
+ segment_id: String,
601
+ timestamp: Time,
602
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry::type_,
603
+ ?contract_id: String
604
+ ) -> void
605
+
606
+ def to_hash: -> {
607
+ amount: Float,
608
+ invoice_id: String,
609
+ segment_id: String,
610
+ timestamp: Time,
611
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry::type_,
612
+ contract_id: String
613
+ }
614
+
615
+ type type_ = :PREPAID_COMMIT_AUTOMATED_INVOICE_DEDUCTION
616
+
617
+ module Type
618
+ extend MetronomeSDK::Internal::Type::Enum
619
+
620
+ PREPAID_COMMIT_AUTOMATED_INVOICE_DEDUCTION: :PREPAID_COMMIT_AUTOMATED_INVOICE_DEDUCTION
621
+
622
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry::type_]
623
+ end
624
+ end
625
+
626
+ type prepaid_commit_rollover_ledger_entry =
627
+ {
628
+ amount: Float,
629
+ new_contract_id: String,
630
+ segment_id: String,
631
+ timestamp: Time,
632
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitRolloverLedgerEntry::type_
633
+ }
634
+
635
+ class PrepaidCommitRolloverLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
636
+ attr_accessor amount: Float
637
+
638
+ attr_accessor new_contract_id: String
639
+
640
+ attr_accessor segment_id: String
641
+
642
+ attr_accessor timestamp: Time
643
+
644
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitRolloverLedgerEntry::type_
645
+
646
+ def initialize: (
647
+ amount: Float,
648
+ new_contract_id: String,
649
+ segment_id: String,
650
+ timestamp: Time,
651
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitRolloverLedgerEntry::type_
652
+ ) -> void
653
+
654
+ def to_hash: -> {
655
+ amount: Float,
656
+ new_contract_id: String,
657
+ segment_id: String,
658
+ timestamp: Time,
659
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitRolloverLedgerEntry::type_
660
+ }
661
+
662
+ type type_ = :PREPAID_COMMIT_ROLLOVER
663
+
664
+ module Type
665
+ extend MetronomeSDK::Internal::Type::Enum
666
+
667
+ PREPAID_COMMIT_ROLLOVER: :PREPAID_COMMIT_ROLLOVER
668
+
669
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitRolloverLedgerEntry::type_]
670
+ end
671
+ end
672
+
673
+ type prepaid_commit_expiration_ledger_entry =
674
+ {
675
+ amount: Float,
676
+ segment_id: String,
677
+ timestamp: Time,
678
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitExpirationLedgerEntry::type_
679
+ }
680
+
681
+ class PrepaidCommitExpirationLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
682
+ attr_accessor amount: Float
683
+
684
+ attr_accessor segment_id: String
685
+
686
+ attr_accessor timestamp: Time
687
+
688
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitExpirationLedgerEntry::type_
689
+
690
+ def initialize: (
691
+ amount: Float,
692
+ segment_id: String,
693
+ timestamp: Time,
694
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitExpirationLedgerEntry::type_
695
+ ) -> void
696
+
697
+ def to_hash: -> {
698
+ amount: Float,
699
+ segment_id: String,
700
+ timestamp: Time,
701
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitExpirationLedgerEntry::type_
702
+ }
703
+
704
+ type type_ = :PREPAID_COMMIT_EXPIRATION
705
+
706
+ module Type
707
+ extend MetronomeSDK::Internal::Type::Enum
708
+
709
+ PREPAID_COMMIT_EXPIRATION: :PREPAID_COMMIT_EXPIRATION
710
+
711
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitExpirationLedgerEntry::type_]
712
+ end
713
+ end
714
+
715
+ type prepaid_commit_canceled_ledger_entry =
716
+ {
717
+ amount: Float,
718
+ invoice_id: String,
719
+ segment_id: String,
720
+ timestamp: Time,
721
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitCanceledLedgerEntry::type_,
722
+ contract_id: String
723
+ }
724
+
725
+ class PrepaidCommitCanceledLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
726
+ attr_accessor amount: Float
727
+
728
+ attr_accessor invoice_id: String
729
+
730
+ attr_accessor segment_id: String
731
+
732
+ attr_accessor timestamp: Time
733
+
734
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitCanceledLedgerEntry::type_
735
+
736
+ attr_reader contract_id: String?
737
+
738
+ def contract_id=: (String) -> String
739
+
740
+ def initialize: (
741
+ amount: Float,
742
+ invoice_id: String,
743
+ segment_id: String,
744
+ timestamp: Time,
745
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitCanceledLedgerEntry::type_,
746
+ ?contract_id: String
747
+ ) -> void
748
+
749
+ def to_hash: -> {
750
+ amount: Float,
751
+ invoice_id: String,
752
+ segment_id: String,
753
+ timestamp: Time,
754
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitCanceledLedgerEntry::type_,
755
+ contract_id: String
756
+ }
757
+
758
+ type type_ = :PREPAID_COMMIT_CANCELED
759
+
760
+ module Type
761
+ extend MetronomeSDK::Internal::Type::Enum
762
+
763
+ PREPAID_COMMIT_CANCELED: :PREPAID_COMMIT_CANCELED
764
+
765
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitCanceledLedgerEntry::type_]
766
+ end
767
+ end
768
+
769
+ type prepaid_commit_credited_ledger_entry =
770
+ {
771
+ amount: Float,
772
+ invoice_id: String,
773
+ segment_id: String,
774
+ timestamp: Time,
775
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitCreditedLedgerEntry::type_,
776
+ contract_id: String
777
+ }
778
+
779
+ class PrepaidCommitCreditedLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
780
+ attr_accessor amount: Float
781
+
782
+ attr_accessor invoice_id: String
783
+
784
+ attr_accessor segment_id: String
785
+
786
+ attr_accessor timestamp: Time
787
+
788
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitCreditedLedgerEntry::type_
789
+
790
+ attr_reader contract_id: String?
791
+
792
+ def contract_id=: (String) -> String
793
+
794
+ def initialize: (
795
+ amount: Float,
796
+ invoice_id: String,
797
+ segment_id: String,
798
+ timestamp: Time,
799
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitCreditedLedgerEntry::type_,
800
+ ?contract_id: String
801
+ ) -> void
802
+
803
+ def to_hash: -> {
804
+ amount: Float,
805
+ invoice_id: String,
806
+ segment_id: String,
807
+ timestamp: Time,
808
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitCreditedLedgerEntry::type_,
809
+ contract_id: String
810
+ }
811
+
812
+ type type_ = :PREPAID_COMMIT_CREDITED
813
+
814
+ module Type
815
+ extend MetronomeSDK::Internal::Type::Enum
816
+
817
+ PREPAID_COMMIT_CREDITED: :PREPAID_COMMIT_CREDITED
818
+
819
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitCreditedLedgerEntry::type_]
820
+ end
821
+ end
822
+
823
+ type prepaid_commit_seat_based_adjustment_ledger_entry =
824
+ {
825
+ amount: Float,
826
+ segment_id: String,
827
+ timestamp: Time,
828
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitSeatBasedAdjustmentLedgerEntry::type_
829
+ }
830
+
831
+ class PrepaidCommitSeatBasedAdjustmentLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
832
+ attr_accessor amount: Float
833
+
834
+ attr_accessor segment_id: String
835
+
836
+ attr_accessor timestamp: Time
837
+
838
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitSeatBasedAdjustmentLedgerEntry::type_
839
+
840
+ def initialize: (
841
+ amount: Float,
842
+ segment_id: String,
843
+ timestamp: Time,
844
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitSeatBasedAdjustmentLedgerEntry::type_
845
+ ) -> void
846
+
847
+ def to_hash: -> {
848
+ amount: Float,
849
+ segment_id: String,
850
+ timestamp: Time,
851
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitSeatBasedAdjustmentLedgerEntry::type_
852
+ }
853
+
854
+ type type_ = :PREPAID_COMMIT_SEAT_BASED_ADJUSTMENT
855
+
856
+ module Type
857
+ extend MetronomeSDK::Internal::Type::Enum
858
+
859
+ PREPAID_COMMIT_SEAT_BASED_ADJUSTMENT: :PREPAID_COMMIT_SEAT_BASED_ADJUSTMENT
860
+
861
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitSeatBasedAdjustmentLedgerEntry::type_]
862
+ end
863
+ end
864
+
865
+ type postpaid_commit_initial_balance_ledger_entry =
866
+ {
867
+ amount: Float,
868
+ timestamp: Time,
869
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitInitialBalanceLedgerEntry::type_
870
+ }
871
+
872
+ class PostpaidCommitInitialBalanceLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
873
+ attr_accessor amount: Float
874
+
875
+ attr_accessor timestamp: Time
876
+
877
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitInitialBalanceLedgerEntry::type_
878
+
879
+ def initialize: (
880
+ amount: Float,
881
+ timestamp: Time,
882
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitInitialBalanceLedgerEntry::type_
883
+ ) -> void
884
+
885
+ def to_hash: -> {
886
+ amount: Float,
887
+ timestamp: Time,
888
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitInitialBalanceLedgerEntry::type_
889
+ }
890
+
891
+ type type_ = :POSTPAID_COMMIT_INITIAL_BALANCE
892
+
893
+ module Type
894
+ extend MetronomeSDK::Internal::Type::Enum
895
+
896
+ POSTPAID_COMMIT_INITIAL_BALANCE: :POSTPAID_COMMIT_INITIAL_BALANCE
897
+
898
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitInitialBalanceLedgerEntry::type_]
899
+ end
900
+ end
901
+
902
+ type postpaid_commit_automated_invoice_deduction_ledger_entry =
903
+ {
904
+ amount: Float,
905
+ invoice_id: String,
906
+ segment_id: String,
907
+ timestamp: Time,
908
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry::type_,
909
+ contract_id: String
910
+ }
911
+
912
+ class PostpaidCommitAutomatedInvoiceDeductionLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
913
+ attr_accessor amount: Float
914
+
915
+ attr_accessor invoice_id: String
916
+
917
+ attr_accessor segment_id: String
918
+
919
+ attr_accessor timestamp: Time
920
+
921
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry::type_
922
+
923
+ attr_reader contract_id: String?
924
+
925
+ def contract_id=: (String) -> String
926
+
927
+ def initialize: (
928
+ amount: Float,
929
+ invoice_id: String,
930
+ segment_id: String,
931
+ timestamp: Time,
932
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry::type_,
933
+ ?contract_id: String
934
+ ) -> void
935
+
936
+ def to_hash: -> {
937
+ amount: Float,
938
+ invoice_id: String,
939
+ segment_id: String,
940
+ timestamp: Time,
941
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry::type_,
942
+ contract_id: String
943
+ }
944
+
945
+ type type_ = :POSTPAID_COMMIT_AUTOMATED_INVOICE_DEDUCTION
946
+
947
+ module Type
948
+ extend MetronomeSDK::Internal::Type::Enum
949
+
950
+ POSTPAID_COMMIT_AUTOMATED_INVOICE_DEDUCTION: :POSTPAID_COMMIT_AUTOMATED_INVOICE_DEDUCTION
951
+
952
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry::type_]
953
+ end
954
+ end
955
+
956
+ type postpaid_commit_rollover_ledger_entry =
957
+ {
958
+ amount: Float,
959
+ new_contract_id: String,
960
+ segment_id: String,
961
+ timestamp: Time,
962
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitRolloverLedgerEntry::type_
963
+ }
964
+
965
+ class PostpaidCommitRolloverLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
966
+ attr_accessor amount: Float
967
+
968
+ attr_accessor new_contract_id: String
969
+
970
+ attr_accessor segment_id: String
971
+
972
+ attr_accessor timestamp: Time
973
+
974
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitRolloverLedgerEntry::type_
975
+
976
+ def initialize: (
977
+ amount: Float,
978
+ new_contract_id: String,
979
+ segment_id: String,
980
+ timestamp: Time,
981
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitRolloverLedgerEntry::type_
982
+ ) -> void
983
+
984
+ def to_hash: -> {
985
+ amount: Float,
986
+ new_contract_id: String,
987
+ segment_id: String,
988
+ timestamp: Time,
989
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitRolloverLedgerEntry::type_
990
+ }
991
+
992
+ type type_ = :POSTPAID_COMMIT_ROLLOVER
993
+
994
+ module Type
995
+ extend MetronomeSDK::Internal::Type::Enum
996
+
997
+ POSTPAID_COMMIT_ROLLOVER: :POSTPAID_COMMIT_ROLLOVER
998
+
999
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitRolloverLedgerEntry::type_]
1000
+ end
1001
+ end
1002
+
1003
+ type postpaid_commit_trueup_ledger_entry =
1004
+ {
1005
+ amount: Float,
1006
+ invoice_id: String,
1007
+ timestamp: Time,
1008
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitTrueupLedgerEntry::type_,
1009
+ contract_id: String
1010
+ }
1011
+
1012
+ class PostpaidCommitTrueupLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
1013
+ attr_accessor amount: Float
1014
+
1015
+ attr_accessor invoice_id: String
1016
+
1017
+ attr_accessor timestamp: Time
1018
+
1019
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitTrueupLedgerEntry::type_
1020
+
1021
+ attr_reader contract_id: String?
1022
+
1023
+ def contract_id=: (String) -> String
1024
+
1025
+ def initialize: (
1026
+ amount: Float,
1027
+ invoice_id: String,
1028
+ timestamp: Time,
1029
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitTrueupLedgerEntry::type_,
1030
+ ?contract_id: String
1031
+ ) -> void
1032
+
1033
+ def to_hash: -> {
1034
+ amount: Float,
1035
+ invoice_id: String,
1036
+ timestamp: Time,
1037
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitTrueupLedgerEntry::type_,
1038
+ contract_id: String
1039
+ }
1040
+
1041
+ type type_ = :POSTPAID_COMMIT_TRUEUP
1042
+
1043
+ module Type
1044
+ extend MetronomeSDK::Internal::Type::Enum
1045
+
1046
+ POSTPAID_COMMIT_TRUEUP: :POSTPAID_COMMIT_TRUEUP
1047
+
1048
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitTrueupLedgerEntry::type_]
1049
+ end
1050
+ end
1051
+
1052
+ type prepaid_commit_manual_ledger_entry =
1053
+ {
1054
+ amount: Float,
1055
+ reason: String,
1056
+ timestamp: Time,
1057
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitManualLedgerEntry::type_
1058
+ }
1059
+
1060
+ class PrepaidCommitManualLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
1061
+ attr_accessor amount: Float
1062
+
1063
+ attr_accessor reason: String
1064
+
1065
+ attr_accessor timestamp: Time
1066
+
1067
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitManualLedgerEntry::type_
1068
+
1069
+ def initialize: (
1070
+ amount: Float,
1071
+ reason: String,
1072
+ timestamp: Time,
1073
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitManualLedgerEntry::type_
1074
+ ) -> void
1075
+
1076
+ def to_hash: -> {
1077
+ amount: Float,
1078
+ reason: String,
1079
+ timestamp: Time,
1080
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitManualLedgerEntry::type_
1081
+ }
1082
+
1083
+ type type_ = :PREPAID_COMMIT_MANUAL
1084
+
1085
+ module Type
1086
+ extend MetronomeSDK::Internal::Type::Enum
1087
+
1088
+ PREPAID_COMMIT_MANUAL: :PREPAID_COMMIT_MANUAL
1089
+
1090
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Commit::Ledger::PrepaidCommitManualLedgerEntry::type_]
1091
+ end
1092
+ end
1093
+
1094
+ type postpaid_commit_manual_ledger_entry =
1095
+ {
1096
+ amount: Float,
1097
+ reason: String,
1098
+ timestamp: Time,
1099
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitManualLedgerEntry::type_
1100
+ }
1101
+
1102
+ class PostpaidCommitManualLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
1103
+ attr_accessor amount: Float
1104
+
1105
+ attr_accessor reason: String
1106
+
1107
+ attr_accessor timestamp: Time
1108
+
1109
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitManualLedgerEntry::type_
1110
+
1111
+ def initialize: (
1112
+ amount: Float,
1113
+ reason: String,
1114
+ timestamp: Time,
1115
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitManualLedgerEntry::type_
1116
+ ) -> void
1117
+
1118
+ def to_hash: -> {
1119
+ amount: Float,
1120
+ reason: String,
1121
+ timestamp: Time,
1122
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitManualLedgerEntry::type_
1123
+ }
1124
+
1125
+ type type_ = :POSTPAID_COMMIT_MANUAL
1126
+
1127
+ module Type
1128
+ extend MetronomeSDK::Internal::Type::Enum
1129
+
1130
+ POSTPAID_COMMIT_MANUAL: :POSTPAID_COMMIT_MANUAL
1131
+
1132
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitManualLedgerEntry::type_]
1133
+ end
1134
+ end
1135
+
1136
+ type postpaid_commit_expiration_ledger_entry =
1137
+ {
1138
+ amount: Float,
1139
+ timestamp: Time,
1140
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitExpirationLedgerEntry::type_
1141
+ }
1142
+
1143
+ class PostpaidCommitExpirationLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
1144
+ attr_accessor amount: Float
1145
+
1146
+ attr_accessor timestamp: Time
1147
+
1148
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitExpirationLedgerEntry::type_
1149
+
1150
+ def initialize: (
1151
+ amount: Float,
1152
+ timestamp: Time,
1153
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitExpirationLedgerEntry::type_
1154
+ ) -> void
1155
+
1156
+ def to_hash: -> {
1157
+ amount: Float,
1158
+ timestamp: Time,
1159
+ type: MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitExpirationLedgerEntry::type_
1160
+ }
1161
+
1162
+ type type_ = :POSTPAID_COMMIT_EXPIRATION
1163
+
1164
+ module Type
1165
+ extend MetronomeSDK::Internal::Type::Enum
1166
+
1167
+ POSTPAID_COMMIT_EXPIRATION: :POSTPAID_COMMIT_EXPIRATION
1168
+
1169
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Commit::Ledger::PostpaidCommitExpirationLedgerEntry::type_]
1170
+ end
1171
+ end
1172
+
1173
+ def self?.variants: -> ::Array[MetronomeSDK::Models::ContractV2::Commit::ledger]
1174
+ end
1175
+
1176
+ type rate_type = :COMMIT_RATE | :LIST_RATE
1177
+
1178
+ module RateType
1179
+ extend MetronomeSDK::Internal::Type::Enum
1180
+
1181
+ COMMIT_RATE: :COMMIT_RATE
1182
+ LIST_RATE: :LIST_RATE
1183
+
1184
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Commit::rate_type]
1185
+ end
1186
+
1187
+ type rolled_over_from = { commit_id: String, contract_id: String }
1188
+
1189
+ class RolledOverFrom < MetronomeSDK::Internal::Type::BaseModel
1190
+ attr_accessor commit_id: String
1191
+
1192
+ attr_accessor contract_id: String
1193
+
1194
+ def initialize: (commit_id: String, contract_id: String) -> void
1195
+
1196
+ def to_hash: -> { commit_id: String, contract_id: String }
1197
+ end
1198
+ end
1199
+
1200
+ type override =
1201
+ {
1202
+ id: String,
1203
+ starting_at: Time,
1204
+ applicable_product_tags: ::Array[String],
1205
+ ending_before: Time,
1206
+ entitled: bool,
1207
+ is_commit_specific: bool,
1208
+ multiplier: Float,
1209
+ override_specifiers: ::Array[MetronomeSDK::ContractV2::Override::OverrideSpecifier],
1210
+ override_tiers: ::Array[MetronomeSDK::OverrideTier],
1211
+ overwrite_rate: MetronomeSDK::ContractV2::Override::OverwriteRate,
1212
+ priority: Float,
1213
+ product: MetronomeSDK::ContractV2::Override::Product,
1214
+ target: MetronomeSDK::Models::ContractV2::Override::target,
1215
+ type: MetronomeSDK::Models::ContractV2::Override::type_
1216
+ }
1217
+
1218
+ class Override < MetronomeSDK::Internal::Type::BaseModel
1219
+ attr_accessor id: String
1220
+
1221
+ attr_accessor starting_at: Time
1222
+
1223
+ attr_reader applicable_product_tags: ::Array[String]?
1224
+
1225
+ def applicable_product_tags=: (::Array[String]) -> ::Array[String]
1226
+
1227
+ attr_reader ending_before: Time?
1228
+
1229
+ def ending_before=: (Time) -> Time
1230
+
1231
+ attr_reader entitled: bool?
1232
+
1233
+ def entitled=: (bool) -> bool
1234
+
1235
+ attr_reader is_commit_specific: bool?
1236
+
1237
+ def is_commit_specific=: (bool) -> bool
1238
+
1239
+ attr_reader multiplier: Float?
1240
+
1241
+ def multiplier=: (Float) -> Float
1242
+
1243
+ attr_reader override_specifiers: ::Array[MetronomeSDK::ContractV2::Override::OverrideSpecifier]?
1244
+
1245
+ def override_specifiers=: (
1246
+ ::Array[MetronomeSDK::ContractV2::Override::OverrideSpecifier]
1247
+ ) -> ::Array[MetronomeSDK::ContractV2::Override::OverrideSpecifier]
1248
+
1249
+ attr_reader override_tiers: ::Array[MetronomeSDK::OverrideTier]?
1250
+
1251
+ def override_tiers=: (
1252
+ ::Array[MetronomeSDK::OverrideTier]
1253
+ ) -> ::Array[MetronomeSDK::OverrideTier]
1254
+
1255
+ attr_reader overwrite_rate: MetronomeSDK::ContractV2::Override::OverwriteRate?
1256
+
1257
+ def overwrite_rate=: (
1258
+ MetronomeSDK::ContractV2::Override::OverwriteRate
1259
+ ) -> MetronomeSDK::ContractV2::Override::OverwriteRate
1260
+
1261
+ attr_reader priority: Float?
1262
+
1263
+ def priority=: (Float) -> Float
1264
+
1265
+ attr_reader product: MetronomeSDK::ContractV2::Override::Product?
1266
+
1267
+ def product=: (
1268
+ MetronomeSDK::ContractV2::Override::Product
1269
+ ) -> MetronomeSDK::ContractV2::Override::Product
1270
+
1271
+ attr_reader target: MetronomeSDK::Models::ContractV2::Override::target?
1272
+
1273
+ def target=: (
1274
+ MetronomeSDK::Models::ContractV2::Override::target
1275
+ ) -> MetronomeSDK::Models::ContractV2::Override::target
1276
+
1277
+ attr_reader type: MetronomeSDK::Models::ContractV2::Override::type_?
1278
+
1279
+ def type=: (
1280
+ MetronomeSDK::Models::ContractV2::Override::type_
1281
+ ) -> MetronomeSDK::Models::ContractV2::Override::type_
1282
+
1283
+ def initialize: (
1284
+ id: String,
1285
+ starting_at: Time,
1286
+ ?applicable_product_tags: ::Array[String],
1287
+ ?ending_before: Time,
1288
+ ?entitled: bool,
1289
+ ?is_commit_specific: bool,
1290
+ ?multiplier: Float,
1291
+ ?override_specifiers: ::Array[MetronomeSDK::ContractV2::Override::OverrideSpecifier],
1292
+ ?override_tiers: ::Array[MetronomeSDK::OverrideTier],
1293
+ ?overwrite_rate: MetronomeSDK::ContractV2::Override::OverwriteRate,
1294
+ ?priority: Float,
1295
+ ?product: MetronomeSDK::ContractV2::Override::Product,
1296
+ ?target: MetronomeSDK::Models::ContractV2::Override::target,
1297
+ ?type: MetronomeSDK::Models::ContractV2::Override::type_
1298
+ ) -> void
1299
+
1300
+ def to_hash: -> {
1301
+ id: String,
1302
+ starting_at: Time,
1303
+ applicable_product_tags: ::Array[String],
1304
+ ending_before: Time,
1305
+ entitled: bool,
1306
+ is_commit_specific: bool,
1307
+ multiplier: Float,
1308
+ override_specifiers: ::Array[MetronomeSDK::ContractV2::Override::OverrideSpecifier],
1309
+ override_tiers: ::Array[MetronomeSDK::OverrideTier],
1310
+ overwrite_rate: MetronomeSDK::ContractV2::Override::OverwriteRate,
1311
+ priority: Float,
1312
+ product: MetronomeSDK::ContractV2::Override::Product,
1313
+ target: MetronomeSDK::Models::ContractV2::Override::target,
1314
+ type: MetronomeSDK::Models::ContractV2::Override::type_
1315
+ }
1316
+
1317
+ type override_specifier =
1318
+ {
1319
+ billing_frequency: MetronomeSDK::Models::ContractV2::Override::OverrideSpecifier::billing_frequency,
1320
+ commit_ids: ::Array[String],
1321
+ presentation_group_values: ::Hash[Symbol, String?],
1322
+ pricing_group_values: ::Hash[Symbol, String],
1323
+ product_id: String,
1324
+ product_tags: ::Array[String],
1325
+ recurring_commit_ids: ::Array[String],
1326
+ recurring_credit_ids: ::Array[String]
1327
+ }
1328
+
1329
+ class OverrideSpecifier < MetronomeSDK::Internal::Type::BaseModel
1330
+ attr_reader billing_frequency: MetronomeSDK::Models::ContractV2::Override::OverrideSpecifier::billing_frequency?
1331
+
1332
+ def billing_frequency=: (
1333
+ MetronomeSDK::Models::ContractV2::Override::OverrideSpecifier::billing_frequency
1334
+ ) -> MetronomeSDK::Models::ContractV2::Override::OverrideSpecifier::billing_frequency
1335
+
1336
+ attr_reader commit_ids: ::Array[String]?
1337
+
1338
+ def commit_ids=: (::Array[String]) -> ::Array[String]
1339
+
1340
+ attr_reader presentation_group_values: ::Hash[Symbol, String?]?
1341
+
1342
+ def presentation_group_values=: (
1343
+ ::Hash[Symbol, String?]
1344
+ ) -> ::Hash[Symbol, String?]
1345
+
1346
+ attr_reader pricing_group_values: ::Hash[Symbol, String]?
1347
+
1348
+ def pricing_group_values=: (
1349
+ ::Hash[Symbol, String]
1350
+ ) -> ::Hash[Symbol, String]
1351
+
1352
+ attr_reader product_id: String?
1353
+
1354
+ def product_id=: (String) -> String
1355
+
1356
+ attr_reader product_tags: ::Array[String]?
1357
+
1358
+ def product_tags=: (::Array[String]) -> ::Array[String]
1359
+
1360
+ attr_reader recurring_commit_ids: ::Array[String]?
1361
+
1362
+ def recurring_commit_ids=: (::Array[String]) -> ::Array[String]
1363
+
1364
+ attr_reader recurring_credit_ids: ::Array[String]?
1365
+
1366
+ def recurring_credit_ids=: (::Array[String]) -> ::Array[String]
1367
+
1368
+ def initialize: (
1369
+ ?billing_frequency: MetronomeSDK::Models::ContractV2::Override::OverrideSpecifier::billing_frequency,
1370
+ ?commit_ids: ::Array[String],
1371
+ ?presentation_group_values: ::Hash[Symbol, String?],
1372
+ ?pricing_group_values: ::Hash[Symbol, String],
1373
+ ?product_id: String,
1374
+ ?product_tags: ::Array[String],
1375
+ ?recurring_commit_ids: ::Array[String],
1376
+ ?recurring_credit_ids: ::Array[String]
1377
+ ) -> void
1378
+
1379
+ def to_hash: -> {
1380
+ billing_frequency: MetronomeSDK::Models::ContractV2::Override::OverrideSpecifier::billing_frequency,
1381
+ commit_ids: ::Array[String],
1382
+ presentation_group_values: ::Hash[Symbol, String?],
1383
+ pricing_group_values: ::Hash[Symbol, String],
1384
+ product_id: String,
1385
+ product_tags: ::Array[String],
1386
+ recurring_commit_ids: ::Array[String],
1387
+ recurring_credit_ids: ::Array[String]
1388
+ }
1389
+
1390
+ type billing_frequency = :MONTHLY | :QUARTERLY | :ANNUAL | :WEEKLY
1391
+
1392
+ module BillingFrequency
1393
+ extend MetronomeSDK::Internal::Type::Enum
1394
+
1395
+ MONTHLY: :MONTHLY
1396
+ QUARTERLY: :QUARTERLY
1397
+ ANNUAL: :ANNUAL
1398
+ WEEKLY: :WEEKLY
1399
+
1400
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Override::OverrideSpecifier::billing_frequency]
1401
+ end
1402
+ end
1403
+
1404
+ type overwrite_rate =
1405
+ {
1406
+ rate_type: MetronomeSDK::Models::ContractV2::Override::OverwriteRate::rate_type,
1407
+ credit_type: MetronomeSDK::CreditTypeData,
1408
+ custom_rate: ::Hash[Symbol, top],
1409
+ is_prorated: bool,
1410
+ price: Float,
1411
+ quantity: Float,
1412
+ tiers: ::Array[MetronomeSDK::Tier]
1413
+ }
1414
+
1415
+ class OverwriteRate < MetronomeSDK::Internal::Type::BaseModel
1416
+ attr_accessor rate_type: MetronomeSDK::Models::ContractV2::Override::OverwriteRate::rate_type
1417
+
1418
+ attr_reader credit_type: MetronomeSDK::CreditTypeData?
1419
+
1420
+ def credit_type=: (
1421
+ MetronomeSDK::CreditTypeData
1422
+ ) -> MetronomeSDK::CreditTypeData
1423
+
1424
+ attr_reader custom_rate: ::Hash[Symbol, top]?
1425
+
1426
+ def custom_rate=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top]
1427
+
1428
+ attr_reader is_prorated: bool?
1429
+
1430
+ def is_prorated=: (bool) -> bool
1431
+
1432
+ attr_reader price: Float?
1433
+
1434
+ def price=: (Float) -> Float
1435
+
1436
+ attr_reader quantity: Float?
1437
+
1438
+ def quantity=: (Float) -> Float
1439
+
1440
+ attr_reader tiers: ::Array[MetronomeSDK::Tier]?
1441
+
1442
+ def tiers=: (
1443
+ ::Array[MetronomeSDK::Tier]
1444
+ ) -> ::Array[MetronomeSDK::Tier]
1445
+
1446
+ def initialize: (
1447
+ rate_type: MetronomeSDK::Models::ContractV2::Override::OverwriteRate::rate_type,
1448
+ ?credit_type: MetronomeSDK::CreditTypeData,
1449
+ ?custom_rate: ::Hash[Symbol, top],
1450
+ ?is_prorated: bool,
1451
+ ?price: Float,
1452
+ ?quantity: Float,
1453
+ ?tiers: ::Array[MetronomeSDK::Tier]
1454
+ ) -> void
1455
+
1456
+ def to_hash: -> {
1457
+ rate_type: MetronomeSDK::Models::ContractV2::Override::OverwriteRate::rate_type,
1458
+ credit_type: MetronomeSDK::CreditTypeData,
1459
+ custom_rate: ::Hash[Symbol, top],
1460
+ is_prorated: bool,
1461
+ price: Float,
1462
+ quantity: Float,
1463
+ tiers: ::Array[MetronomeSDK::Tier]
1464
+ }
1465
+
1466
+ type rate_type =
1467
+ :FLAT | :PERCENTAGE | :SUBSCRIPTION | :TIERED | :CUSTOM
1468
+
1469
+ module RateType
1470
+ extend MetronomeSDK::Internal::Type::Enum
1471
+
1472
+ FLAT: :FLAT
1473
+ PERCENTAGE: :PERCENTAGE
1474
+ SUBSCRIPTION: :SUBSCRIPTION
1475
+ TIERED: :TIERED
1476
+ CUSTOM: :CUSTOM
1477
+
1478
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Override::OverwriteRate::rate_type]
1479
+ end
1480
+ end
1481
+
1482
+ type product = { id: String, name: String }
1483
+
1484
+ class Product < MetronomeSDK::Internal::Type::BaseModel
1485
+ attr_accessor id: String
1486
+
1487
+ attr_accessor name: String
1488
+
1489
+ def initialize: (id: String, name: String) -> void
1490
+
1491
+ def to_hash: -> { id: String, name: String }
1492
+ end
1493
+
1494
+ type target = :COMMIT_RATE | :LIST_RATE
1495
+
1496
+ module Target
1497
+ extend MetronomeSDK::Internal::Type::Enum
1498
+
1499
+ COMMIT_RATE: :COMMIT_RATE
1500
+ LIST_RATE: :LIST_RATE
1501
+
1502
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Override::target]
1503
+ end
1504
+
1505
+ type type_ = :OVERWRITE | :MULTIPLIER | :TIERED
1506
+
1507
+ module Type
1508
+ extend MetronomeSDK::Internal::Type::Enum
1509
+
1510
+ OVERWRITE: :OVERWRITE
1511
+ MULTIPLIER: :MULTIPLIER
1512
+ TIERED: :TIERED
1513
+
1514
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Override::type_]
1515
+ end
1516
+ end
1517
+
1518
+ type transition =
1519
+ {
1520
+ from_contract_id: String,
1521
+ to_contract_id: String,
1522
+ type: MetronomeSDK::Models::ContractV2::Transition::type_
1523
+ }
1524
+
1525
+ class Transition < MetronomeSDK::Internal::Type::BaseModel
1526
+ attr_accessor from_contract_id: String
1527
+
1528
+ attr_accessor to_contract_id: String
1529
+
1530
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Transition::type_
1531
+
1532
+ def initialize: (
1533
+ from_contract_id: String,
1534
+ to_contract_id: String,
1535
+ type: MetronomeSDK::Models::ContractV2::Transition::type_
1536
+ ) -> void
1537
+
1538
+ def to_hash: -> {
1539
+ from_contract_id: String,
1540
+ to_contract_id: String,
1541
+ type: MetronomeSDK::Models::ContractV2::Transition::type_
1542
+ }
1543
+
1544
+ type type_ = :SUPERSEDE | :RENEWAL
1545
+
1546
+ module Type
1547
+ extend MetronomeSDK::Internal::Type::Enum
1548
+
1549
+ SUPERSEDE: :SUPERSEDE
1550
+ RENEWAL: :RENEWAL
1551
+
1552
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Transition::type_]
1553
+ end
1554
+ end
1555
+
1556
+ type usage_filter =
1557
+ {
1558
+ group_key: String,
1559
+ group_values: ::Array[String],
1560
+ starting_at: Time,
1561
+ ending_before: Time
1562
+ }
1563
+
1564
+ class UsageFilter < MetronomeSDK::Internal::Type::BaseModel
1565
+ attr_accessor group_key: String
1566
+
1567
+ attr_accessor group_values: ::Array[String]
1568
+
1569
+ attr_accessor starting_at: Time
1570
+
1571
+ attr_reader ending_before: Time?
1572
+
1573
+ def ending_before=: (Time) -> Time
1574
+
1575
+ def initialize: (
1576
+ group_key: String,
1577
+ group_values: ::Array[String],
1578
+ starting_at: Time,
1579
+ ?ending_before: Time
1580
+ ) -> void
1581
+
1582
+ def to_hash: -> {
1583
+ group_key: String,
1584
+ group_values: ::Array[String],
1585
+ starting_at: Time,
1586
+ ending_before: Time
1587
+ }
1588
+ end
1589
+
1590
+ type usage_statement_schedule =
1591
+ {
1592
+ billing_anchor_date: Time,
1593
+ frequency: MetronomeSDK::Models::ContractV2::UsageStatementSchedule::frequency
1594
+ }
1595
+
1596
+ class UsageStatementSchedule < MetronomeSDK::Internal::Type::BaseModel
1597
+ attr_accessor billing_anchor_date: Time
1598
+
1599
+ attr_accessor frequency: MetronomeSDK::Models::ContractV2::UsageStatementSchedule::frequency
1600
+
1601
+ def initialize: (
1602
+ billing_anchor_date: Time,
1603
+ frequency: MetronomeSDK::Models::ContractV2::UsageStatementSchedule::frequency
1604
+ ) -> void
1605
+
1606
+ def to_hash: -> {
1607
+ billing_anchor_date: Time,
1608
+ frequency: MetronomeSDK::Models::ContractV2::UsageStatementSchedule::frequency
1609
+ }
1610
+
1611
+ type frequency = :MONTHLY | :QUARTERLY | :ANNUAL | :WEEKLY
1612
+
1613
+ module Frequency
1614
+ extend MetronomeSDK::Internal::Type::Enum
1615
+
1616
+ MONTHLY: :MONTHLY
1617
+ QUARTERLY: :QUARTERLY
1618
+ ANNUAL: :ANNUAL
1619
+ WEEKLY: :WEEKLY
1620
+
1621
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::UsageStatementSchedule::frequency]
1622
+ end
1623
+ end
1624
+
1625
+ type credit =
1626
+ {
1627
+ id: String,
1628
+ product: MetronomeSDK::ContractV2::Credit::Product,
1629
+ type: MetronomeSDK::Models::ContractV2::Credit::type_,
1630
+ access_schedule: MetronomeSDK::ScheduleDuration,
1631
+ applicable_contract_ids: ::Array[String],
1632
+ applicable_product_ids: ::Array[String],
1633
+ applicable_product_tags: ::Array[String],
1634
+ balance: Float,
1635
+ contract: MetronomeSDK::ContractV2::Credit::Contract,
1636
+ custom_fields: ::Hash[Symbol, String],
1637
+ description: String,
1638
+ hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
1639
+ ledger: ::Array[MetronomeSDK::Models::ContractV2::Credit::ledger],
1640
+ name: String,
1641
+ netsuite_sales_order_id: String,
1642
+ priority: Float,
1643
+ salesforce_opportunity_id: String,
1644
+ specifiers: ::Array[MetronomeSDK::CommitSpecifier]
1645
+ }
1646
+
1647
+ class Credit < MetronomeSDK::Internal::Type::BaseModel
1648
+ attr_accessor id: String
1649
+
1650
+ attr_accessor product: MetronomeSDK::ContractV2::Credit::Product
1651
+
1652
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Credit::type_
1653
+
1654
+ attr_reader access_schedule: MetronomeSDK::ScheduleDuration?
1655
+
1656
+ def access_schedule=: (
1657
+ MetronomeSDK::ScheduleDuration
1658
+ ) -> MetronomeSDK::ScheduleDuration
1659
+
1660
+ attr_reader applicable_contract_ids: ::Array[String]?
1661
+
1662
+ def applicable_contract_ids=: (::Array[String]) -> ::Array[String]
1663
+
1664
+ attr_reader applicable_product_ids: ::Array[String]?
1665
+
1666
+ def applicable_product_ids=: (::Array[String]) -> ::Array[String]
1667
+
1668
+ attr_reader applicable_product_tags: ::Array[String]?
1669
+
1670
+ def applicable_product_tags=: (::Array[String]) -> ::Array[String]
1671
+
1672
+ attr_reader balance: Float?
1673
+
1674
+ def balance=: (Float) -> Float
1675
+
1676
+ attr_reader contract: MetronomeSDK::ContractV2::Credit::Contract?
1677
+
1678
+ def contract=: (
1679
+ MetronomeSDK::ContractV2::Credit::Contract
1680
+ ) -> MetronomeSDK::ContractV2::Credit::Contract
1681
+
1682
+ attr_reader custom_fields: ::Hash[Symbol, String]?
1683
+
1684
+ def custom_fields=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
1685
+
1686
+ attr_reader description: String?
1687
+
1688
+ def description=: (String) -> String
1689
+
1690
+ attr_reader hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration?
1691
+
1692
+ def hierarchy_configuration=: (
1693
+ MetronomeSDK::CommitHierarchyConfiguration
1694
+ ) -> MetronomeSDK::CommitHierarchyConfiguration
1695
+
1696
+ attr_reader ledger: ::Array[MetronomeSDK::Models::ContractV2::Credit::ledger]?
1697
+
1698
+ def ledger=: (
1699
+ ::Array[MetronomeSDK::Models::ContractV2::Credit::ledger]
1700
+ ) -> ::Array[MetronomeSDK::Models::ContractV2::Credit::ledger]
1701
+
1702
+ attr_reader name: String?
1703
+
1704
+ def name=: (String) -> String
1705
+
1706
+ attr_reader netsuite_sales_order_id: String?
1707
+
1708
+ def netsuite_sales_order_id=: (String) -> String
1709
+
1710
+ attr_reader priority: Float?
1711
+
1712
+ def priority=: (Float) -> Float
1713
+
1714
+ attr_reader salesforce_opportunity_id: String?
1715
+
1716
+ def salesforce_opportunity_id=: (String) -> String
1717
+
1718
+ attr_reader specifiers: ::Array[MetronomeSDK::CommitSpecifier]?
1719
+
1720
+ def specifiers=: (
1721
+ ::Array[MetronomeSDK::CommitSpecifier]
1722
+ ) -> ::Array[MetronomeSDK::CommitSpecifier]
1723
+
1724
+ def initialize: (
1725
+ id: String,
1726
+ product: MetronomeSDK::ContractV2::Credit::Product,
1727
+ type: MetronomeSDK::Models::ContractV2::Credit::type_,
1728
+ ?access_schedule: MetronomeSDK::ScheduleDuration,
1729
+ ?applicable_contract_ids: ::Array[String],
1730
+ ?applicable_product_ids: ::Array[String],
1731
+ ?applicable_product_tags: ::Array[String],
1732
+ ?balance: Float,
1733
+ ?contract: MetronomeSDK::ContractV2::Credit::Contract,
1734
+ ?custom_fields: ::Hash[Symbol, String],
1735
+ ?description: String,
1736
+ ?hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
1737
+ ?ledger: ::Array[MetronomeSDK::Models::ContractV2::Credit::ledger],
1738
+ ?name: String,
1739
+ ?netsuite_sales_order_id: String,
1740
+ ?priority: Float,
1741
+ ?salesforce_opportunity_id: String,
1742
+ ?specifiers: ::Array[MetronomeSDK::CommitSpecifier]
1743
+ ) -> void
1744
+
1745
+ def to_hash: -> {
1746
+ id: String,
1747
+ product: MetronomeSDK::ContractV2::Credit::Product,
1748
+ type: MetronomeSDK::Models::ContractV2::Credit::type_,
1749
+ access_schedule: MetronomeSDK::ScheduleDuration,
1750
+ applicable_contract_ids: ::Array[String],
1751
+ applicable_product_ids: ::Array[String],
1752
+ applicable_product_tags: ::Array[String],
1753
+ balance: Float,
1754
+ contract: MetronomeSDK::ContractV2::Credit::Contract,
1755
+ custom_fields: ::Hash[Symbol, String],
1756
+ description: String,
1757
+ hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
1758
+ ledger: ::Array[MetronomeSDK::Models::ContractV2::Credit::ledger],
1759
+ name: String,
1760
+ netsuite_sales_order_id: String,
1761
+ priority: Float,
1762
+ salesforce_opportunity_id: String,
1763
+ specifiers: ::Array[MetronomeSDK::CommitSpecifier]
1764
+ }
1765
+
1766
+ type product = { id: String, name: String }
1767
+
1768
+ class Product < MetronomeSDK::Internal::Type::BaseModel
1769
+ attr_accessor id: String
1770
+
1771
+ attr_accessor name: String
1772
+
1773
+ def initialize: (id: String, name: String) -> void
1774
+
1775
+ def to_hash: -> { id: String, name: String }
1776
+ end
1777
+
1778
+ type type_ = :CREDIT
1779
+
1780
+ module Type
1781
+ extend MetronomeSDK::Internal::Type::Enum
1782
+
1783
+ CREDIT: :CREDIT
1784
+
1785
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Credit::type_]
1786
+ end
1787
+
1788
+ type contract = { id: String }
1789
+
1790
+ class Contract < MetronomeSDK::Internal::Type::BaseModel
1791
+ attr_accessor id: String
1792
+
1793
+ def initialize: (id: String) -> void
1794
+
1795
+ def to_hash: -> { id: String }
1796
+ end
1797
+
1798
+ type ledger =
1799
+ MetronomeSDK::ContractV2::Credit::Ledger::CreditSegmentStartLedgerEntry
1800
+ | MetronomeSDK::ContractV2::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry
1801
+ | MetronomeSDK::ContractV2::Credit::Ledger::CreditExpirationLedgerEntry
1802
+ | MetronomeSDK::ContractV2::Credit::Ledger::CreditCanceledLedgerEntry
1803
+ | MetronomeSDK::ContractV2::Credit::Ledger::CreditCreditedLedgerEntry
1804
+ | MetronomeSDK::ContractV2::Credit::Ledger::CreditManualLedgerEntry
1805
+ | MetronomeSDK::ContractV2::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry
1806
+
1807
+ module Ledger
1808
+ extend MetronomeSDK::Internal::Type::Union
1809
+
1810
+ type credit_segment_start_ledger_entry =
1811
+ {
1812
+ amount: Float,
1813
+ segment_id: String,
1814
+ timestamp: Time,
1815
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditSegmentStartLedgerEntry::type_
1816
+ }
1817
+
1818
+ class CreditSegmentStartLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
1819
+ attr_accessor amount: Float
1820
+
1821
+ attr_accessor segment_id: String
1822
+
1823
+ attr_accessor timestamp: Time
1824
+
1825
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditSegmentStartLedgerEntry::type_
1826
+
1827
+ def initialize: (
1828
+ amount: Float,
1829
+ segment_id: String,
1830
+ timestamp: Time,
1831
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditSegmentStartLedgerEntry::type_
1832
+ ) -> void
1833
+
1834
+ def to_hash: -> {
1835
+ amount: Float,
1836
+ segment_id: String,
1837
+ timestamp: Time,
1838
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditSegmentStartLedgerEntry::type_
1839
+ }
1840
+
1841
+ type type_ = :CREDIT_SEGMENT_START
1842
+
1843
+ module Type
1844
+ extend MetronomeSDK::Internal::Type::Enum
1845
+
1846
+ CREDIT_SEGMENT_START: :CREDIT_SEGMENT_START
1847
+
1848
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditSegmentStartLedgerEntry::type_]
1849
+ end
1850
+ end
1851
+
1852
+ type credit_automated_invoice_deduction_ledger_entry =
1853
+ {
1854
+ amount: Float,
1855
+ invoice_id: String,
1856
+ segment_id: String,
1857
+ timestamp: Time,
1858
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry::type_,
1859
+ contract_id: String
1860
+ }
1861
+
1862
+ class CreditAutomatedInvoiceDeductionLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
1863
+ attr_accessor amount: Float
1864
+
1865
+ attr_accessor invoice_id: String
1866
+
1867
+ attr_accessor segment_id: String
1868
+
1869
+ attr_accessor timestamp: Time
1870
+
1871
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry::type_
1872
+
1873
+ attr_reader contract_id: String?
1874
+
1875
+ def contract_id=: (String) -> String
1876
+
1877
+ def initialize: (
1878
+ amount: Float,
1879
+ invoice_id: String,
1880
+ segment_id: String,
1881
+ timestamp: Time,
1882
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry::type_,
1883
+ ?contract_id: String
1884
+ ) -> void
1885
+
1886
+ def to_hash: -> {
1887
+ amount: Float,
1888
+ invoice_id: String,
1889
+ segment_id: String,
1890
+ timestamp: Time,
1891
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry::type_,
1892
+ contract_id: String
1893
+ }
1894
+
1895
+ type type_ = :CREDIT_AUTOMATED_INVOICE_DEDUCTION
1896
+
1897
+ module Type
1898
+ extend MetronomeSDK::Internal::Type::Enum
1899
+
1900
+ CREDIT_AUTOMATED_INVOICE_DEDUCTION: :CREDIT_AUTOMATED_INVOICE_DEDUCTION
1901
+
1902
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry::type_]
1903
+ end
1904
+ end
1905
+
1906
+ type credit_expiration_ledger_entry =
1907
+ {
1908
+ amount: Float,
1909
+ segment_id: String,
1910
+ timestamp: Time,
1911
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditExpirationLedgerEntry::type_
1912
+ }
1913
+
1914
+ class CreditExpirationLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
1915
+ attr_accessor amount: Float
1916
+
1917
+ attr_accessor segment_id: String
1918
+
1919
+ attr_accessor timestamp: Time
1920
+
1921
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditExpirationLedgerEntry::type_
1922
+
1923
+ def initialize: (
1924
+ amount: Float,
1925
+ segment_id: String,
1926
+ timestamp: Time,
1927
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditExpirationLedgerEntry::type_
1928
+ ) -> void
1929
+
1930
+ def to_hash: -> {
1931
+ amount: Float,
1932
+ segment_id: String,
1933
+ timestamp: Time,
1934
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditExpirationLedgerEntry::type_
1935
+ }
1936
+
1937
+ type type_ = :CREDIT_EXPIRATION
1938
+
1939
+ module Type
1940
+ extend MetronomeSDK::Internal::Type::Enum
1941
+
1942
+ CREDIT_EXPIRATION: :CREDIT_EXPIRATION
1943
+
1944
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditExpirationLedgerEntry::type_]
1945
+ end
1946
+ end
1947
+
1948
+ type credit_canceled_ledger_entry =
1949
+ {
1950
+ amount: Float,
1951
+ invoice_id: String,
1952
+ segment_id: String,
1953
+ timestamp: Time,
1954
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditCanceledLedgerEntry::type_,
1955
+ contract_id: String
1956
+ }
1957
+
1958
+ class CreditCanceledLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
1959
+ attr_accessor amount: Float
1960
+
1961
+ attr_accessor invoice_id: String
1962
+
1963
+ attr_accessor segment_id: String
1964
+
1965
+ attr_accessor timestamp: Time
1966
+
1967
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditCanceledLedgerEntry::type_
1968
+
1969
+ attr_reader contract_id: String?
1970
+
1971
+ def contract_id=: (String) -> String
1972
+
1973
+ def initialize: (
1974
+ amount: Float,
1975
+ invoice_id: String,
1976
+ segment_id: String,
1977
+ timestamp: Time,
1978
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditCanceledLedgerEntry::type_,
1979
+ ?contract_id: String
1980
+ ) -> void
1981
+
1982
+ def to_hash: -> {
1983
+ amount: Float,
1984
+ invoice_id: String,
1985
+ segment_id: String,
1986
+ timestamp: Time,
1987
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditCanceledLedgerEntry::type_,
1988
+ contract_id: String
1989
+ }
1990
+
1991
+ type type_ = :CREDIT_CANCELED
1992
+
1993
+ module Type
1994
+ extend MetronomeSDK::Internal::Type::Enum
1995
+
1996
+ CREDIT_CANCELED: :CREDIT_CANCELED
1997
+
1998
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditCanceledLedgerEntry::type_]
1999
+ end
2000
+ end
2001
+
2002
+ type credit_credited_ledger_entry =
2003
+ {
2004
+ amount: Float,
2005
+ invoice_id: String,
2006
+ segment_id: String,
2007
+ timestamp: Time,
2008
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditCreditedLedgerEntry::type_,
2009
+ contract_id: String
2010
+ }
2011
+
2012
+ class CreditCreditedLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
2013
+ attr_accessor amount: Float
2014
+
2015
+ attr_accessor invoice_id: String
2016
+
2017
+ attr_accessor segment_id: String
2018
+
2019
+ attr_accessor timestamp: Time
2020
+
2021
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditCreditedLedgerEntry::type_
2022
+
2023
+ attr_reader contract_id: String?
2024
+
2025
+ def contract_id=: (String) -> String
2026
+
2027
+ def initialize: (
2028
+ amount: Float,
2029
+ invoice_id: String,
2030
+ segment_id: String,
2031
+ timestamp: Time,
2032
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditCreditedLedgerEntry::type_,
2033
+ ?contract_id: String
2034
+ ) -> void
2035
+
2036
+ def to_hash: -> {
2037
+ amount: Float,
2038
+ invoice_id: String,
2039
+ segment_id: String,
2040
+ timestamp: Time,
2041
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditCreditedLedgerEntry::type_,
2042
+ contract_id: String
2043
+ }
2044
+
2045
+ type type_ = :CREDIT_CREDITED
2046
+
2047
+ module Type
2048
+ extend MetronomeSDK::Internal::Type::Enum
2049
+
2050
+ CREDIT_CREDITED: :CREDIT_CREDITED
2051
+
2052
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditCreditedLedgerEntry::type_]
2053
+ end
2054
+ end
2055
+
2056
+ type credit_manual_ledger_entry =
2057
+ {
2058
+ amount: Float,
2059
+ reason: String,
2060
+ timestamp: Time,
2061
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditManualLedgerEntry::type_
2062
+ }
2063
+
2064
+ class CreditManualLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
2065
+ attr_accessor amount: Float
2066
+
2067
+ attr_accessor reason: String
2068
+
2069
+ attr_accessor timestamp: Time
2070
+
2071
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditManualLedgerEntry::type_
2072
+
2073
+ def initialize: (
2074
+ amount: Float,
2075
+ reason: String,
2076
+ timestamp: Time,
2077
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditManualLedgerEntry::type_
2078
+ ) -> void
2079
+
2080
+ def to_hash: -> {
2081
+ amount: Float,
2082
+ reason: String,
2083
+ timestamp: Time,
2084
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditManualLedgerEntry::type_
2085
+ }
2086
+
2087
+ type type_ = :CREDIT_MANUAL
2088
+
2089
+ module Type
2090
+ extend MetronomeSDK::Internal::Type::Enum
2091
+
2092
+ CREDIT_MANUAL: :CREDIT_MANUAL
2093
+
2094
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditManualLedgerEntry::type_]
2095
+ end
2096
+ end
2097
+
2098
+ type credit_seat_based_adjustment_ledger_entry =
2099
+ {
2100
+ amount: Float,
2101
+ segment_id: String,
2102
+ timestamp: Time,
2103
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::type_
2104
+ }
2105
+
2106
+ class CreditSeatBasedAdjustmentLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
2107
+ attr_accessor amount: Float
2108
+
2109
+ attr_accessor segment_id: String
2110
+
2111
+ attr_accessor timestamp: Time
2112
+
2113
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::type_
2114
+
2115
+ def initialize: (
2116
+ amount: Float,
2117
+ segment_id: String,
2118
+ timestamp: Time,
2119
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::type_
2120
+ ) -> void
2121
+
2122
+ def to_hash: -> {
2123
+ amount: Float,
2124
+ segment_id: String,
2125
+ timestamp: Time,
2126
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::type_
2127
+ }
2128
+
2129
+ type type_ = :CREDIT_SEAT_BASED_ADJUSTMENT
2130
+
2131
+ module Type
2132
+ extend MetronomeSDK::Internal::Type::Enum
2133
+
2134
+ CREDIT_SEAT_BASED_ADJUSTMENT: :CREDIT_SEAT_BASED_ADJUSTMENT
2135
+
2136
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::type_]
2137
+ end
2138
+ end
2139
+
2140
+ def self?.variants: -> ::Array[MetronomeSDK::Models::ContractV2::Credit::ledger]
2141
+ end
2142
+ end
2143
+
2144
+ type customer_billing_provider_configuration =
2145
+ {
2146
+ id: String,
2147
+ billing_provider: MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::billing_provider,
2148
+ delivery_method: MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::delivery_method
2149
+ }
2150
+
2151
+ class CustomerBillingProviderConfiguration < MetronomeSDK::Internal::Type::BaseModel
2152
+ attr_accessor id: String
2153
+
2154
+ attr_accessor billing_provider: MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::billing_provider
2155
+
2156
+ attr_accessor delivery_method: MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::delivery_method
2157
+
2158
+ def initialize: (
2159
+ id: String,
2160
+ billing_provider: MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::billing_provider,
2161
+ delivery_method: MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::delivery_method
2162
+ ) -> void
2163
+
2164
+ def to_hash: -> {
2165
+ id: String,
2166
+ billing_provider: MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::billing_provider,
2167
+ delivery_method: MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::delivery_method
2168
+ }
2169
+
2170
+ type billing_provider =
2171
+ :aws_marketplace
2172
+ | :stripe
2173
+ | :netsuite
2174
+ | :custom
2175
+ | :azure_marketplace
2176
+ | :quickbooks_online
2177
+ | :workday
2178
+ | :gcp_marketplace
2179
+
2180
+ module BillingProvider
2181
+ extend MetronomeSDK::Internal::Type::Enum
2182
+
2183
+ AWS_MARKETPLACE: :aws_marketplace
2184
+ STRIPE: :stripe
2185
+ NETSUITE: :netsuite
2186
+ CUSTOM: :custom
2187
+ AZURE_MARKETPLACE: :azure_marketplace
2188
+ QUICKBOOKS_ONLINE: :quickbooks_online
2189
+ WORKDAY: :workday
2190
+ GCP_MARKETPLACE: :gcp_marketplace
2191
+
2192
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::billing_provider]
2193
+ end
2194
+
2195
+ type delivery_method =
2196
+ :direct_to_billing_provider | :aws_sqs | :tackle | :aws_sns
2197
+
2198
+ module DeliveryMethod
2199
+ extend MetronomeSDK::Internal::Type::Enum
2200
+
2201
+ DIRECT_TO_BILLING_PROVIDER: :direct_to_billing_provider
2202
+ AWS_SQS: :aws_sqs
2203
+ TACKLE: :tackle
2204
+ AWS_SNS: :aws_sns
2205
+
2206
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::delivery_method]
2207
+ end
2208
+ end
2209
+
2210
+ type has_more = { commits: bool, credits: bool }
2211
+
2212
+ class HasMore < MetronomeSDK::Internal::Type::BaseModel
2213
+ attr_accessor commits: bool
2214
+
2215
+ attr_accessor credits: bool
2216
+
2217
+ def initialize: (commits: bool, credits: bool) -> void
2218
+
2219
+ def to_hash: -> { commits: bool, credits: bool }
2220
+ end
2221
+
2222
+ type hierarchy_configuration =
2223
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration
2224
+ | MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2
2225
+
2226
+ module HierarchyConfiguration
2227
+ extend MetronomeSDK::Internal::Type::Union
2228
+
2229
+ type parent_hierarchy_configuration =
2230
+ {
2231
+ children: ::Array[MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child],
2232
+ parent_behavior: MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior
2233
+ }
2234
+
2235
+ class ParentHierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
2236
+ attr_accessor children: ::Array[MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child]
2237
+
2238
+ attr_reader parent_behavior: MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior?
2239
+
2240
+ def parent_behavior=: (
2241
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior
2242
+ ) -> MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior
2243
+
2244
+ def initialize: (
2245
+ children: ::Array[MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child],
2246
+ ?parent_behavior: MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior
2247
+ ) -> void
2248
+
2249
+ def to_hash: -> {
2250
+ children: ::Array[MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child],
2251
+ parent_behavior: MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior
2252
+ }
2253
+
2254
+ type child = { contract_id: String, customer_id: String }
2255
+
2256
+ class Child < MetronomeSDK::Internal::Type::BaseModel
2257
+ attr_accessor contract_id: String
2258
+
2259
+ attr_accessor customer_id: String
2260
+
2261
+ def initialize: (contract_id: String, customer_id: String) -> void
2262
+
2263
+ def to_hash: -> { contract_id: String, customer_id: String }
2264
+ end
2265
+
2266
+ type parent_behavior =
2267
+ {
2268
+ invoice_consolidation_type: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::invoice_consolidation_type
2269
+ }
2270
+
2271
+ class ParentBehavior < MetronomeSDK::Internal::Type::BaseModel
2272
+ attr_reader invoice_consolidation_type: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::invoice_consolidation_type?
2273
+
2274
+ def invoice_consolidation_type=: (
2275
+ MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::invoice_consolidation_type
2276
+ ) -> MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::invoice_consolidation_type
2277
+
2278
+ def initialize: (
2279
+ ?invoice_consolidation_type: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::invoice_consolidation_type
2280
+ ) -> void
2281
+
2282
+ def to_hash: -> {
2283
+ invoice_consolidation_type: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::invoice_consolidation_type
2284
+ }
2285
+
2286
+ type invoice_consolidation_type = :CONCATENATE | :NONE
2287
+
2288
+ module InvoiceConsolidationType
2289
+ extend MetronomeSDK::Internal::Type::Enum
2290
+
2291
+ CONCATENATE: :CONCATENATE
2292
+ NONE: :NONE
2293
+
2294
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::invoice_consolidation_type]
2295
+ end
2296
+ end
2297
+ end
2298
+
2299
+ type child_hierarchy_configuration_v2 =
2300
+ {
2301
+ parent: MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent,
2302
+ payer: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::payer,
2303
+ usage_statement_behavior: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::usage_statement_behavior
2304
+ }
2305
+
2306
+ class ChildHierarchyConfigurationV2 < MetronomeSDK::Internal::Type::BaseModel
2307
+ attr_accessor parent: MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent
2308
+
2309
+ attr_reader payer: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::payer?
2310
+
2311
+ def payer=: (
2312
+ MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::payer
2313
+ ) -> MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::payer
2314
+
2315
+ attr_reader usage_statement_behavior: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::usage_statement_behavior?
2316
+
2317
+ def usage_statement_behavior=: (
2318
+ MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::usage_statement_behavior
2319
+ ) -> MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::usage_statement_behavior
2320
+
2321
+ def initialize: (
2322
+ parent: MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent,
2323
+ ?payer: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::payer,
2324
+ ?usage_statement_behavior: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::usage_statement_behavior
2325
+ ) -> void
2326
+
2327
+ def to_hash: -> {
2328
+ parent: MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent,
2329
+ payer: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::payer,
2330
+ usage_statement_behavior: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::usage_statement_behavior
2331
+ }
2332
+
2333
+ type parent = { contract_id: String, customer_id: String }
2334
+
2335
+ class Parent < MetronomeSDK::Internal::Type::BaseModel
2336
+ attr_accessor contract_id: String
2337
+
2338
+ attr_accessor customer_id: String
2339
+
2340
+ def initialize: (contract_id: String, customer_id: String) -> void
2341
+
2342
+ def to_hash: -> { contract_id: String, customer_id: String }
2343
+ end
2344
+
2345
+ type payer = :SELF | :PARENT
2346
+
2347
+ module Payer
2348
+ extend MetronomeSDK::Internal::Type::Enum
2349
+
2350
+ SELF: :SELF
2351
+ PARENT: :PARENT
2352
+
2353
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::payer]
2354
+ end
2355
+
2356
+ type usage_statement_behavior = :CONSOLIDATE | :SEPARATE
2357
+
2358
+ module UsageStatementBehavior
2359
+ extend MetronomeSDK::Internal::Type::Enum
2360
+
2361
+ CONSOLIDATE: :CONSOLIDATE
2362
+ SEPARATE: :SEPARATE
2363
+
2364
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::usage_statement_behavior]
2365
+ end
2366
+ end
2367
+
2368
+ def self?.variants: -> ::Array[MetronomeSDK::Models::ContractV2::hierarchy_configuration]
2369
+ end
2370
+
2371
+ type multiplier_override_prioritization = :LOWEST_MULTIPLIER | :EXPLICIT
2372
+
2373
+ module MultiplierOverridePrioritization
2374
+ extend MetronomeSDK::Internal::Type::Enum
2375
+
2376
+ LOWEST_MULTIPLIER: :LOWEST_MULTIPLIER
2377
+ EXPLICIT: :EXPLICIT
2378
+
2379
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::multiplier_override_prioritization]
2380
+ end
2381
+
2382
+ type recurring_commit =
2383
+ {
2384
+ id: String,
2385
+ access_amount: MetronomeSDK::ContractV2::RecurringCommit::AccessAmount,
2386
+ commit_duration: MetronomeSDK::ContractV2::RecurringCommit::CommitDuration,
2387
+ priority: Float,
2388
+ product: MetronomeSDK::ContractV2::RecurringCommit::Product,
2389
+ rate_type: MetronomeSDK::Models::ContractV2::RecurringCommit::rate_type,
2390
+ starting_at: Time,
2391
+ applicable_product_ids: ::Array[String],
2392
+ applicable_product_tags: ::Array[String],
2393
+ contract: MetronomeSDK::ContractV2::RecurringCommit::Contract,
2394
+ description: String,
2395
+ ending_before: Time,
2396
+ hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
2397
+ invoice_amount: MetronomeSDK::ContractV2::RecurringCommit::InvoiceAmount,
2398
+ name: String,
2399
+ netsuite_sales_order_id: String,
2400
+ proration: MetronomeSDK::Models::ContractV2::RecurringCommit::proration,
2401
+ recurrence_frequency: MetronomeSDK::Models::ContractV2::RecurringCommit::recurrence_frequency,
2402
+ rollover_fraction: Float,
2403
+ specifiers: ::Array[MetronomeSDK::CommitSpecifier],
2404
+ subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
2405
+ }
2406
+
2407
+ class RecurringCommit < MetronomeSDK::Internal::Type::BaseModel
2408
+ attr_accessor id: String
2409
+
2410
+ attr_accessor access_amount: MetronomeSDK::ContractV2::RecurringCommit::AccessAmount
2411
+
2412
+ attr_accessor commit_duration: MetronomeSDK::ContractV2::RecurringCommit::CommitDuration
2413
+
2414
+ attr_accessor priority: Float
2415
+
2416
+ attr_accessor product: MetronomeSDK::ContractV2::RecurringCommit::Product
2417
+
2418
+ attr_accessor rate_type: MetronomeSDK::Models::ContractV2::RecurringCommit::rate_type
2419
+
2420
+ attr_accessor starting_at: Time
2421
+
2422
+ attr_reader applicable_product_ids: ::Array[String]?
2423
+
2424
+ def applicable_product_ids=: (::Array[String]) -> ::Array[String]
2425
+
2426
+ attr_reader applicable_product_tags: ::Array[String]?
2427
+
2428
+ def applicable_product_tags=: (::Array[String]) -> ::Array[String]
2429
+
2430
+ attr_reader contract: MetronomeSDK::ContractV2::RecurringCommit::Contract?
2431
+
2432
+ def contract=: (
2433
+ MetronomeSDK::ContractV2::RecurringCommit::Contract
2434
+ ) -> MetronomeSDK::ContractV2::RecurringCommit::Contract
2435
+
2436
+ attr_reader description: String?
2437
+
2438
+ def description=: (String) -> String
2439
+
2440
+ attr_reader ending_before: Time?
2441
+
2442
+ def ending_before=: (Time) -> Time
2443
+
2444
+ attr_reader hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration?
2445
+
2446
+ def hierarchy_configuration=: (
2447
+ MetronomeSDK::CommitHierarchyConfiguration
2448
+ ) -> MetronomeSDK::CommitHierarchyConfiguration
2449
+
2450
+ attr_reader invoice_amount: MetronomeSDK::ContractV2::RecurringCommit::InvoiceAmount?
2451
+
2452
+ def invoice_amount=: (
2453
+ MetronomeSDK::ContractV2::RecurringCommit::InvoiceAmount
2454
+ ) -> MetronomeSDK::ContractV2::RecurringCommit::InvoiceAmount
2455
+
2456
+ attr_reader name: String?
2457
+
2458
+ def name=: (String) -> String
2459
+
2460
+ attr_reader netsuite_sales_order_id: String?
2461
+
2462
+ def netsuite_sales_order_id=: (String) -> String
2463
+
2464
+ attr_reader proration: MetronomeSDK::Models::ContractV2::RecurringCommit::proration?
2465
+
2466
+ def proration=: (
2467
+ MetronomeSDK::Models::ContractV2::RecurringCommit::proration
2468
+ ) -> MetronomeSDK::Models::ContractV2::RecurringCommit::proration
2469
+
2470
+ attr_reader recurrence_frequency: MetronomeSDK::Models::ContractV2::RecurringCommit::recurrence_frequency?
2471
+
2472
+ def recurrence_frequency=: (
2473
+ MetronomeSDK::Models::ContractV2::RecurringCommit::recurrence_frequency
2474
+ ) -> MetronomeSDK::Models::ContractV2::RecurringCommit::recurrence_frequency
2475
+
2476
+ attr_reader rollover_fraction: Float?
2477
+
2478
+ def rollover_fraction=: (Float) -> Float
2479
+
2480
+ attr_reader specifiers: ::Array[MetronomeSDK::CommitSpecifier]?
2481
+
2482
+ def specifiers=: (
2483
+ ::Array[MetronomeSDK::CommitSpecifier]
2484
+ ) -> ::Array[MetronomeSDK::CommitSpecifier]
2485
+
2486
+ attr_reader subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig?
2487
+
2488
+ def subscription_config=: (
2489
+ MetronomeSDK::RecurringCommitSubscriptionConfig
2490
+ ) -> MetronomeSDK::RecurringCommitSubscriptionConfig
2491
+
2492
+ def initialize: (
2493
+ id: String,
2494
+ access_amount: MetronomeSDK::ContractV2::RecurringCommit::AccessAmount,
2495
+ commit_duration: MetronomeSDK::ContractV2::RecurringCommit::CommitDuration,
2496
+ priority: Float,
2497
+ product: MetronomeSDK::ContractV2::RecurringCommit::Product,
2498
+ rate_type: MetronomeSDK::Models::ContractV2::RecurringCommit::rate_type,
2499
+ starting_at: Time,
2500
+ ?applicable_product_ids: ::Array[String],
2501
+ ?applicable_product_tags: ::Array[String],
2502
+ ?contract: MetronomeSDK::ContractV2::RecurringCommit::Contract,
2503
+ ?description: String,
2504
+ ?ending_before: Time,
2505
+ ?hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
2506
+ ?invoice_amount: MetronomeSDK::ContractV2::RecurringCommit::InvoiceAmount,
2507
+ ?name: String,
2508
+ ?netsuite_sales_order_id: String,
2509
+ ?proration: MetronomeSDK::Models::ContractV2::RecurringCommit::proration,
2510
+ ?recurrence_frequency: MetronomeSDK::Models::ContractV2::RecurringCommit::recurrence_frequency,
2511
+ ?rollover_fraction: Float,
2512
+ ?specifiers: ::Array[MetronomeSDK::CommitSpecifier],
2513
+ ?subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
2514
+ ) -> void
2515
+
2516
+ def to_hash: -> {
2517
+ id: String,
2518
+ access_amount: MetronomeSDK::ContractV2::RecurringCommit::AccessAmount,
2519
+ commit_duration: MetronomeSDK::ContractV2::RecurringCommit::CommitDuration,
2520
+ priority: Float,
2521
+ product: MetronomeSDK::ContractV2::RecurringCommit::Product,
2522
+ rate_type: MetronomeSDK::Models::ContractV2::RecurringCommit::rate_type,
2523
+ starting_at: Time,
2524
+ applicable_product_ids: ::Array[String],
2525
+ applicable_product_tags: ::Array[String],
2526
+ contract: MetronomeSDK::ContractV2::RecurringCommit::Contract,
2527
+ description: String,
2528
+ ending_before: Time,
2529
+ hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
2530
+ invoice_amount: MetronomeSDK::ContractV2::RecurringCommit::InvoiceAmount,
2531
+ name: String,
2532
+ netsuite_sales_order_id: String,
2533
+ proration: MetronomeSDK::Models::ContractV2::RecurringCommit::proration,
2534
+ recurrence_frequency: MetronomeSDK::Models::ContractV2::RecurringCommit::recurrence_frequency,
2535
+ rollover_fraction: Float,
2536
+ specifiers: ::Array[MetronomeSDK::CommitSpecifier],
2537
+ subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
2538
+ }
2539
+
2540
+ type access_amount =
2541
+ { credit_type_id: String, unit_price: Float, quantity: Float }
2542
+
2543
+ class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
2544
+ attr_accessor credit_type_id: String
2545
+
2546
+ attr_accessor unit_price: Float
2547
+
2548
+ attr_reader quantity: Float?
2549
+
2550
+ def quantity=: (Float) -> Float
2551
+
2552
+ def initialize: (
2553
+ credit_type_id: String,
2554
+ unit_price: Float,
2555
+ ?quantity: Float
2556
+ ) -> void
2557
+
2558
+ def to_hash: -> {
2559
+ credit_type_id: String,
2560
+ unit_price: Float,
2561
+ quantity: Float
2562
+ }
2563
+ end
2564
+
2565
+ type commit_duration =
2566
+ {
2567
+ value: Float,
2568
+ unit: MetronomeSDK::Models::ContractV2::RecurringCommit::CommitDuration::unit
2569
+ }
2570
+
2571
+ class CommitDuration < MetronomeSDK::Internal::Type::BaseModel
2572
+ attr_accessor value: Float
2573
+
2574
+ attr_reader unit: MetronomeSDK::Models::ContractV2::RecurringCommit::CommitDuration::unit?
2575
+
2576
+ def unit=: (
2577
+ MetronomeSDK::Models::ContractV2::RecurringCommit::CommitDuration::unit
2578
+ ) -> MetronomeSDK::Models::ContractV2::RecurringCommit::CommitDuration::unit
2579
+
2580
+ def initialize: (
2581
+ value: Float,
2582
+ ?unit: MetronomeSDK::Models::ContractV2::RecurringCommit::CommitDuration::unit
2583
+ ) -> void
2584
+
2585
+ def to_hash: -> {
2586
+ value: Float,
2587
+ unit: MetronomeSDK::Models::ContractV2::RecurringCommit::CommitDuration::unit
2588
+ }
2589
+
2590
+ type unit = :PERIODS
2591
+
2592
+ module Unit
2593
+ extend MetronomeSDK::Internal::Type::Enum
2594
+
2595
+ PERIODS: :PERIODS
2596
+
2597
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::RecurringCommit::CommitDuration::unit]
2598
+ end
2599
+ end
2600
+
2601
+ type product = { id: String, name: String }
2602
+
2603
+ class Product < MetronomeSDK::Internal::Type::BaseModel
2604
+ attr_accessor id: String
2605
+
2606
+ attr_accessor name: String
2607
+
2608
+ def initialize: (id: String, name: String) -> void
2609
+
2610
+ def to_hash: -> { id: String, name: String }
2611
+ end
2612
+
2613
+ type rate_type = :COMMIT_RATE | :LIST_RATE
2614
+
2615
+ module RateType
2616
+ extend MetronomeSDK::Internal::Type::Enum
2617
+
2618
+ COMMIT_RATE: :COMMIT_RATE
2619
+ LIST_RATE: :LIST_RATE
2620
+
2621
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::RecurringCommit::rate_type]
2622
+ end
2623
+
2624
+ type contract = { id: String }
2625
+
2626
+ class Contract < MetronomeSDK::Internal::Type::BaseModel
2627
+ attr_accessor id: String
2628
+
2629
+ def initialize: (id: String) -> void
2630
+
2631
+ def to_hash: -> { id: String }
2632
+ end
2633
+
2634
+ type invoice_amount =
2635
+ { credit_type_id: String, quantity: Float, unit_price: Float }
2636
+
2637
+ class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
2638
+ attr_accessor credit_type_id: String
2639
+
2640
+ attr_accessor quantity: Float
2641
+
2642
+ attr_accessor unit_price: Float
2643
+
2644
+ def initialize: (
2645
+ credit_type_id: String,
2646
+ quantity: Float,
2647
+ unit_price: Float
2648
+ ) -> void
2649
+
2650
+ def to_hash: -> {
2651
+ credit_type_id: String,
2652
+ quantity: Float,
2653
+ unit_price: Float
2654
+ }
2655
+ end
2656
+
2657
+ type proration = :NONE | :FIRST | :LAST | :FIRST_AND_LAST
2658
+
2659
+ module Proration
2660
+ extend MetronomeSDK::Internal::Type::Enum
2661
+
2662
+ NONE: :NONE
2663
+ FIRST: :FIRST
2664
+ LAST: :LAST
2665
+ FIRST_AND_LAST: :FIRST_AND_LAST
2666
+
2667
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::RecurringCommit::proration]
2668
+ end
2669
+
2670
+ type recurrence_frequency = :MONTHLY | :QUARTERLY | :ANNUAL | :WEEKLY
2671
+
2672
+ module RecurrenceFrequency
2673
+ extend MetronomeSDK::Internal::Type::Enum
2674
+
2675
+ MONTHLY: :MONTHLY
2676
+ QUARTERLY: :QUARTERLY
2677
+ ANNUAL: :ANNUAL
2678
+ WEEKLY: :WEEKLY
2679
+
2680
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::RecurringCommit::recurrence_frequency]
2681
+ end
2682
+ end
2683
+
2684
+ type recurring_credit =
2685
+ {
2686
+ id: String,
2687
+ access_amount: MetronomeSDK::ContractV2::RecurringCredit::AccessAmount,
2688
+ commit_duration: MetronomeSDK::ContractV2::RecurringCredit::CommitDuration,
2689
+ priority: Float,
2690
+ product: MetronomeSDK::ContractV2::RecurringCredit::Product,
2691
+ rate_type: MetronomeSDK::Models::ContractV2::RecurringCredit::rate_type,
2692
+ starting_at: Time,
2693
+ applicable_product_ids: ::Array[String],
2694
+ applicable_product_tags: ::Array[String],
2695
+ contract: MetronomeSDK::ContractV2::RecurringCredit::Contract,
2696
+ description: String,
2697
+ ending_before: Time,
2698
+ hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
2699
+ name: String,
2700
+ netsuite_sales_order_id: String,
2701
+ proration: MetronomeSDK::Models::ContractV2::RecurringCredit::proration,
2702
+ recurrence_frequency: MetronomeSDK::Models::ContractV2::RecurringCredit::recurrence_frequency,
2703
+ rollover_fraction: Float,
2704
+ specifiers: ::Array[MetronomeSDK::CommitSpecifier],
2705
+ subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
2706
+ }
2707
+
2708
+ class RecurringCredit < MetronomeSDK::Internal::Type::BaseModel
2709
+ attr_accessor id: String
2710
+
2711
+ attr_accessor access_amount: MetronomeSDK::ContractV2::RecurringCredit::AccessAmount
2712
+
2713
+ attr_accessor commit_duration: MetronomeSDK::ContractV2::RecurringCredit::CommitDuration
2714
+
2715
+ attr_accessor priority: Float
2716
+
2717
+ attr_accessor product: MetronomeSDK::ContractV2::RecurringCredit::Product
2718
+
2719
+ attr_accessor rate_type: MetronomeSDK::Models::ContractV2::RecurringCredit::rate_type
2720
+
2721
+ attr_accessor starting_at: Time
2722
+
2723
+ attr_reader applicable_product_ids: ::Array[String]?
2724
+
2725
+ def applicable_product_ids=: (::Array[String]) -> ::Array[String]
2726
+
2727
+ attr_reader applicable_product_tags: ::Array[String]?
2728
+
2729
+ def applicable_product_tags=: (::Array[String]) -> ::Array[String]
2730
+
2731
+ attr_reader contract: MetronomeSDK::ContractV2::RecurringCredit::Contract?
2732
+
2733
+ def contract=: (
2734
+ MetronomeSDK::ContractV2::RecurringCredit::Contract
2735
+ ) -> MetronomeSDK::ContractV2::RecurringCredit::Contract
2736
+
2737
+ attr_reader description: String?
2738
+
2739
+ def description=: (String) -> String
2740
+
2741
+ attr_reader ending_before: Time?
2742
+
2743
+ def ending_before=: (Time) -> Time
2744
+
2745
+ attr_reader hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration?
2746
+
2747
+ def hierarchy_configuration=: (
2748
+ MetronomeSDK::CommitHierarchyConfiguration
2749
+ ) -> MetronomeSDK::CommitHierarchyConfiguration
2750
+
2751
+ attr_reader name: String?
2752
+
2753
+ def name=: (String) -> String
2754
+
2755
+ attr_reader netsuite_sales_order_id: String?
2756
+
2757
+ def netsuite_sales_order_id=: (String) -> String
2758
+
2759
+ attr_reader proration: MetronomeSDK::Models::ContractV2::RecurringCredit::proration?
2760
+
2761
+ def proration=: (
2762
+ MetronomeSDK::Models::ContractV2::RecurringCredit::proration
2763
+ ) -> MetronomeSDK::Models::ContractV2::RecurringCredit::proration
2764
+
2765
+ attr_reader recurrence_frequency: MetronomeSDK::Models::ContractV2::RecurringCredit::recurrence_frequency?
2766
+
2767
+ def recurrence_frequency=: (
2768
+ MetronomeSDK::Models::ContractV2::RecurringCredit::recurrence_frequency
2769
+ ) -> MetronomeSDK::Models::ContractV2::RecurringCredit::recurrence_frequency
2770
+
2771
+ attr_reader rollover_fraction: Float?
2772
+
2773
+ def rollover_fraction=: (Float) -> Float
2774
+
2775
+ attr_reader specifiers: ::Array[MetronomeSDK::CommitSpecifier]?
2776
+
2777
+ def specifiers=: (
2778
+ ::Array[MetronomeSDK::CommitSpecifier]
2779
+ ) -> ::Array[MetronomeSDK::CommitSpecifier]
2780
+
2781
+ attr_reader subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig?
2782
+
2783
+ def subscription_config=: (
2784
+ MetronomeSDK::RecurringCommitSubscriptionConfig
2785
+ ) -> MetronomeSDK::RecurringCommitSubscriptionConfig
2786
+
2787
+ def initialize: (
2788
+ id: String,
2789
+ access_amount: MetronomeSDK::ContractV2::RecurringCredit::AccessAmount,
2790
+ commit_duration: MetronomeSDK::ContractV2::RecurringCredit::CommitDuration,
2791
+ priority: Float,
2792
+ product: MetronomeSDK::ContractV2::RecurringCredit::Product,
2793
+ rate_type: MetronomeSDK::Models::ContractV2::RecurringCredit::rate_type,
2794
+ starting_at: Time,
2795
+ ?applicable_product_ids: ::Array[String],
2796
+ ?applicable_product_tags: ::Array[String],
2797
+ ?contract: MetronomeSDK::ContractV2::RecurringCredit::Contract,
2798
+ ?description: String,
2799
+ ?ending_before: Time,
2800
+ ?hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
2801
+ ?name: String,
2802
+ ?netsuite_sales_order_id: String,
2803
+ ?proration: MetronomeSDK::Models::ContractV2::RecurringCredit::proration,
2804
+ ?recurrence_frequency: MetronomeSDK::Models::ContractV2::RecurringCredit::recurrence_frequency,
2805
+ ?rollover_fraction: Float,
2806
+ ?specifiers: ::Array[MetronomeSDK::CommitSpecifier],
2807
+ ?subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
2808
+ ) -> void
2809
+
2810
+ def to_hash: -> {
2811
+ id: String,
2812
+ access_amount: MetronomeSDK::ContractV2::RecurringCredit::AccessAmount,
2813
+ commit_duration: MetronomeSDK::ContractV2::RecurringCredit::CommitDuration,
2814
+ priority: Float,
2815
+ product: MetronomeSDK::ContractV2::RecurringCredit::Product,
2816
+ rate_type: MetronomeSDK::Models::ContractV2::RecurringCredit::rate_type,
2817
+ starting_at: Time,
2818
+ applicable_product_ids: ::Array[String],
2819
+ applicable_product_tags: ::Array[String],
2820
+ contract: MetronomeSDK::ContractV2::RecurringCredit::Contract,
2821
+ description: String,
2822
+ ending_before: Time,
2823
+ hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
2824
+ name: String,
2825
+ netsuite_sales_order_id: String,
2826
+ proration: MetronomeSDK::Models::ContractV2::RecurringCredit::proration,
2827
+ recurrence_frequency: MetronomeSDK::Models::ContractV2::RecurringCredit::recurrence_frequency,
2828
+ rollover_fraction: Float,
2829
+ specifiers: ::Array[MetronomeSDK::CommitSpecifier],
2830
+ subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
2831
+ }
2832
+
2833
+ type access_amount =
2834
+ { credit_type_id: String, unit_price: Float, quantity: Float }
2835
+
2836
+ class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
2837
+ attr_accessor credit_type_id: String
2838
+
2839
+ attr_accessor unit_price: Float
2840
+
2841
+ attr_reader quantity: Float?
2842
+
2843
+ def quantity=: (Float) -> Float
2844
+
2845
+ def initialize: (
2846
+ credit_type_id: String,
2847
+ unit_price: Float,
2848
+ ?quantity: Float
2849
+ ) -> void
2850
+
2851
+ def to_hash: -> {
2852
+ credit_type_id: String,
2853
+ unit_price: Float,
2854
+ quantity: Float
2855
+ }
2856
+ end
2857
+
2858
+ type commit_duration =
2859
+ {
2860
+ value: Float,
2861
+ unit: MetronomeSDK::Models::ContractV2::RecurringCredit::CommitDuration::unit
2862
+ }
2863
+
2864
+ class CommitDuration < MetronomeSDK::Internal::Type::BaseModel
2865
+ attr_accessor value: Float
2866
+
2867
+ attr_reader unit: MetronomeSDK::Models::ContractV2::RecurringCredit::CommitDuration::unit?
2868
+
2869
+ def unit=: (
2870
+ MetronomeSDK::Models::ContractV2::RecurringCredit::CommitDuration::unit
2871
+ ) -> MetronomeSDK::Models::ContractV2::RecurringCredit::CommitDuration::unit
2872
+
2873
+ def initialize: (
2874
+ value: Float,
2875
+ ?unit: MetronomeSDK::Models::ContractV2::RecurringCredit::CommitDuration::unit
2876
+ ) -> void
2877
+
2878
+ def to_hash: -> {
2879
+ value: Float,
2880
+ unit: MetronomeSDK::Models::ContractV2::RecurringCredit::CommitDuration::unit
2881
+ }
2882
+
2883
+ type unit = :PERIODS
2884
+
2885
+ module Unit
2886
+ extend MetronomeSDK::Internal::Type::Enum
2887
+
2888
+ PERIODS: :PERIODS
2889
+
2890
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::RecurringCredit::CommitDuration::unit]
2891
+ end
2892
+ end
2893
+
2894
+ type product = { id: String, name: String }
2895
+
2896
+ class Product < MetronomeSDK::Internal::Type::BaseModel
2897
+ attr_accessor id: String
2898
+
2899
+ attr_accessor name: String
2900
+
2901
+ def initialize: (id: String, name: String) -> void
2902
+
2903
+ def to_hash: -> { id: String, name: String }
2904
+ end
2905
+
2906
+ type rate_type = :COMMIT_RATE | :LIST_RATE
2907
+
2908
+ module RateType
2909
+ extend MetronomeSDK::Internal::Type::Enum
2910
+
2911
+ COMMIT_RATE: :COMMIT_RATE
2912
+ LIST_RATE: :LIST_RATE
2913
+
2914
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::RecurringCredit::rate_type]
2915
+ end
2916
+
2917
+ type contract = { id: String }
2918
+
2919
+ class Contract < MetronomeSDK::Internal::Type::BaseModel
2920
+ attr_accessor id: String
2921
+
2922
+ def initialize: (id: String) -> void
2923
+
2924
+ def to_hash: -> { id: String }
2925
+ end
2926
+
2927
+ type proration = :NONE | :FIRST | :LAST | :FIRST_AND_LAST
2928
+
2929
+ module Proration
2930
+ extend MetronomeSDK::Internal::Type::Enum
2931
+
2932
+ NONE: :NONE
2933
+ FIRST: :FIRST
2934
+ LAST: :LAST
2935
+ FIRST_AND_LAST: :FIRST_AND_LAST
2936
+
2937
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::RecurringCredit::proration]
2938
+ end
2939
+
2940
+ type recurrence_frequency = :MONTHLY | :QUARTERLY | :ANNUAL | :WEEKLY
2941
+
2942
+ module RecurrenceFrequency
2943
+ extend MetronomeSDK::Internal::Type::Enum
2944
+
2945
+ MONTHLY: :MONTHLY
2946
+ QUARTERLY: :QUARTERLY
2947
+ ANNUAL: :ANNUAL
2948
+ WEEKLY: :WEEKLY
2949
+
2950
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::RecurringCredit::recurrence_frequency]
2951
+ end
2952
+ end
2953
+
2954
+ type reseller_royalty =
2955
+ {
2956
+ reseller_type: MetronomeSDK::Models::ContractV2::ResellerRoyalty::reseller_type,
2957
+ segments: ::Array[MetronomeSDK::ContractV2::ResellerRoyalty::Segment]
2958
+ }
2959
+
2960
+ class ResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel
2961
+ attr_accessor reseller_type: MetronomeSDK::Models::ContractV2::ResellerRoyalty::reseller_type
2962
+
2963
+ attr_accessor segments: ::Array[MetronomeSDK::ContractV2::ResellerRoyalty::Segment]
2964
+
2965
+ def initialize: (
2966
+ reseller_type: MetronomeSDK::Models::ContractV2::ResellerRoyalty::reseller_type,
2967
+ segments: ::Array[MetronomeSDK::ContractV2::ResellerRoyalty::Segment]
2968
+ ) -> void
2969
+
2970
+ def to_hash: -> {
2971
+ reseller_type: MetronomeSDK::Models::ContractV2::ResellerRoyalty::reseller_type,
2972
+ segments: ::Array[MetronomeSDK::ContractV2::ResellerRoyalty::Segment]
2973
+ }
2974
+
2975
+ type reseller_type = :AWS | :AWS_PRO_SERVICE | :GCP | :GCP_PRO_SERVICE
2976
+
2977
+ module ResellerType
2978
+ extend MetronomeSDK::Internal::Type::Enum
2979
+
2980
+ AWS: :AWS
2981
+ AWS_PRO_SERVICE: :AWS_PRO_SERVICE
2982
+ GCP: :GCP
2983
+ GCP_PRO_SERVICE: :GCP_PRO_SERVICE
2984
+
2985
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::ResellerRoyalty::reseller_type]
2986
+ end
2987
+
2988
+ type segment =
2989
+ {
2990
+ fraction: Float,
2991
+ netsuite_reseller_id: String,
2992
+ reseller_type: MetronomeSDK::Models::ContractV2::ResellerRoyalty::Segment::reseller_type,
2993
+ starting_at: Time,
2994
+ applicable_product_ids: ::Array[String],
2995
+ applicable_product_tags: ::Array[String],
2996
+ aws_account_number: String,
2997
+ aws_offer_id: String,
2998
+ aws_payer_reference_id: String,
2999
+ ending_before: Time,
3000
+ gcp_account_id: String,
3001
+ gcp_offer_id: String,
3002
+ reseller_contract_value: Float
3003
+ }
3004
+
3005
+ class Segment < MetronomeSDK::Internal::Type::BaseModel
3006
+ attr_accessor fraction: Float
3007
+
3008
+ attr_accessor netsuite_reseller_id: String
3009
+
3010
+ attr_accessor reseller_type: MetronomeSDK::Models::ContractV2::ResellerRoyalty::Segment::reseller_type
3011
+
3012
+ attr_accessor starting_at: Time
3013
+
3014
+ attr_reader applicable_product_ids: ::Array[String]?
3015
+
3016
+ def applicable_product_ids=: (::Array[String]) -> ::Array[String]
3017
+
3018
+ attr_reader applicable_product_tags: ::Array[String]?
3019
+
3020
+ def applicable_product_tags=: (::Array[String]) -> ::Array[String]
3021
+
3022
+ attr_reader aws_account_number: String?
3023
+
3024
+ def aws_account_number=: (String) -> String
3025
+
3026
+ attr_reader aws_offer_id: String?
3027
+
3028
+ def aws_offer_id=: (String) -> String
3029
+
3030
+ attr_reader aws_payer_reference_id: String?
3031
+
3032
+ def aws_payer_reference_id=: (String) -> String
3033
+
3034
+ attr_reader ending_before: Time?
3035
+
3036
+ def ending_before=: (Time) -> Time
3037
+
3038
+ attr_reader gcp_account_id: String?
3039
+
3040
+ def gcp_account_id=: (String) -> String
3041
+
3042
+ attr_reader gcp_offer_id: String?
3043
+
3044
+ def gcp_offer_id=: (String) -> String
3045
+
3046
+ attr_reader reseller_contract_value: Float?
3047
+
3048
+ def reseller_contract_value=: (Float) -> Float
3049
+
3050
+ def initialize: (
3051
+ fraction: Float,
3052
+ netsuite_reseller_id: String,
3053
+ reseller_type: MetronomeSDK::Models::ContractV2::ResellerRoyalty::Segment::reseller_type,
3054
+ starting_at: Time,
3055
+ ?applicable_product_ids: ::Array[String],
3056
+ ?applicable_product_tags: ::Array[String],
3057
+ ?aws_account_number: String,
3058
+ ?aws_offer_id: String,
3059
+ ?aws_payer_reference_id: String,
3060
+ ?ending_before: Time,
3061
+ ?gcp_account_id: String,
3062
+ ?gcp_offer_id: String,
3063
+ ?reseller_contract_value: Float
3064
+ ) -> void
3065
+
3066
+ def to_hash: -> {
3067
+ fraction: Float,
3068
+ netsuite_reseller_id: String,
3069
+ reseller_type: MetronomeSDK::Models::ContractV2::ResellerRoyalty::Segment::reseller_type,
3070
+ starting_at: Time,
3071
+ applicable_product_ids: ::Array[String],
3072
+ applicable_product_tags: ::Array[String],
3073
+ aws_account_number: String,
3074
+ aws_offer_id: String,
3075
+ aws_payer_reference_id: String,
3076
+ ending_before: Time,
3077
+ gcp_account_id: String,
3078
+ gcp_offer_id: String,
3079
+ reseller_contract_value: Float
3080
+ }
3081
+
3082
+ type reseller_type = :AWS | :AWS_PRO_SERVICE | :GCP | :GCP_PRO_SERVICE
3083
+
3084
+ module ResellerType
3085
+ extend MetronomeSDK::Internal::Type::Enum
3086
+
3087
+ AWS: :AWS
3088
+ AWS_PRO_SERVICE: :AWS_PRO_SERVICE
3089
+ GCP: :GCP
3090
+ GCP_PRO_SERVICE: :GCP_PRO_SERVICE
3091
+
3092
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::ResellerRoyalty::Segment::reseller_type]
3093
+ end
3094
+ end
3095
+ end
3096
+
3097
+ type scheduled_charges_on_usage_invoices = :ALL
3098
+
3099
+ module ScheduledChargesOnUsageInvoices
3100
+ extend MetronomeSDK::Internal::Type::Enum
3101
+
3102
+ ALL: :ALL
3103
+
3104
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::scheduled_charges_on_usage_invoices]
3105
+ end
3106
+ end
3107
+ end
3108
+ end