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
@@ -39,7 +39,7 @@ module MetronomeSDK
39
39
  #
40
40
  # @param client [MetronomeSDK::Internal::Transport::BaseClient]
41
41
  # @param req [Hash{Symbol=>Object}]
42
- # @param headers [Hash{String=>String}, Net::HTTPHeader]
42
+ # @param headers [Hash{String=>String}]
43
43
  # @param page_data [Object]
44
44
  def initialize(client:, req:, headers:, page_data:)
45
45
  @client = client
@@ -15,6 +15,31 @@ module MetronomeSDK
15
15
  #
16
16
  # We can therefore convert string values to Symbols, but can't convert other
17
17
  # values safely.
18
+ #
19
+ # @example
20
+ # # `payment_status` is a `MetronomeSDK::V1::PaymentStatus`
21
+ # case payment_status
22
+ # when MetronomeSDK::V1::PaymentStatus::PENDING
23
+ # # ...
24
+ # when MetronomeSDK::V1::PaymentStatus::REQUIRES_INTERVENTION
25
+ # # ...
26
+ # when MetronomeSDK::V1::PaymentStatus::PAID
27
+ # # ...
28
+ # else
29
+ # puts(payment_status)
30
+ # end
31
+ #
32
+ # @example
33
+ # case payment_status
34
+ # in :pending
35
+ # # ...
36
+ # in :requires_intervention
37
+ # # ...
38
+ # in :paid
39
+ # # ...
40
+ # else
41
+ # puts(payment_status)
42
+ # end
18
43
  module Enum
19
44
  include MetronomeSDK::Internal::Type::Converter
20
45
  include MetronomeSDK::Internal::Util::SorbetRuntimeSupport
@@ -82,17 +82,20 @@ module MetronomeSDK
82
82
  #
83
83
  # @return [Pathname, StringIO, IO, String, Object]
84
84
  def dump(value, state:)
85
- # rubocop:disable Lint/DuplicateBranch
86
85
  case value
86
+ in StringIO | String
87
+ # https://datatracker.ietf.org/doc/html/rfc7578#section-4.2
88
+ # while not required, a filename is recommended, and in practice many servers do expect this
89
+ MetronomeSDK::FilePart.new(value, filename: "upload")
87
90
  in IO
88
91
  state[:can_retry] = false
92
+ value.to_path.nil? ? MetronomeSDK::FilePart.new(value, filename: "upload") : value
89
93
  in MetronomeSDK::FilePart if value.content.is_a?(IO)
90
94
  state[:can_retry] = false
95
+ value
91
96
  else
97
+ value
92
98
  end
93
- # rubocop:enable Lint/DuplicateBranch
94
-
95
- value
96
99
  end
97
100
 
98
101
  # @api private
@@ -4,6 +4,17 @@ module MetronomeSDK
4
4
  module Internal
5
5
  module Type
6
6
  # @api private
7
+ #
8
+ # @example
9
+ # # `hierarchy_configuration` is a `MetronomeSDK::HierarchyConfiguration`
10
+ # case hierarchy_configuration
11
+ # when MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration
12
+ # puts(hierarchy_configuration.children)
13
+ # when MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration
14
+ # puts(hierarchy_configuration.parent)
15
+ # else
16
+ # puts(hierarchy_configuration)
17
+ # end
7
18
  module Union
8
19
  include MetronomeSDK::Internal::Type::Converter
9
20
  include MetronomeSDK::Internal::Util::SorbetRuntimeSupport
@@ -244,7 +244,7 @@ module MetronomeSDK
244
244
  #
245
245
  # @return [String]
246
246
  def uri_origin(uri)
247
- "#{uri.scheme}://#{uri.host}#{uri.port == uri.default_port ? '' : ":#{uri.port}"}"
247
+ "#{uri.scheme}://#{uri.host}#{":#{uri.port}" unless uri.port == uri.default_port}"
248
248
  end
249
249
 
250
250
  # @api private
@@ -346,8 +346,9 @@ module MetronomeSDK
346
346
  base_path, base_query = lhs.fetch_values(:path, :query)
347
347
  slashed = base_path.end_with?("/") ? base_path : "#{base_path}/"
348
348
 
349
- parsed_path, parsed_query = parse_uri(rhs.fetch(:path)).fetch_values(:path, :query)
350
- override = URI::Generic.build(**rhs.slice(:scheme, :host, :port), path: parsed_path)
349
+ merged = {**parse_uri(rhs.fetch(:path)), **rhs.except(:path, :query)}
350
+ parsed_path, parsed_query = merged.fetch_values(:path, :query)
351
+ override = URI::Generic.build(**merged.slice(:scheme, :host, :port), path: parsed_path)
351
352
 
352
353
  joined = URI.join(URI::Generic.build(lhs.except(:path, :query)), slashed, override)
353
354
  query = deep_merge(
@@ -473,10 +474,9 @@ module MetronomeSDK
473
474
  # @return [Enumerable<String>]
474
475
  def writable_enum(&blk)
475
476
  Enumerator.new do |y|
476
- buf = String.new
477
477
  y.define_singleton_method(:write) do
478
- self << buf.replace(_1)
479
- buf.bytesize
478
+ self << _1.dup
479
+ _1.bytesize
480
480
  end
481
481
 
482
482
  blk.call(y)
@@ -566,7 +566,8 @@ module MetronomeSDK
566
566
  #
567
567
  # @return [Array(String, Enumerable<String>)]
568
568
  private def encode_multipart_streaming(body)
569
- boundary = SecureRandom.urlsafe_base64(60)
569
+ # RFC 1521 Section 7.2.1 says we should have 70 char maximum for boundary length
570
+ boundary = SecureRandom.urlsafe_base64(46)
570
571
 
571
572
  closing = []
572
573
  strio = writable_enum do |y|
@@ -647,7 +648,7 @@ module MetronomeSDK
647
648
  #
648
649
  # Assumes each chunk in stream has `Encoding::BINARY`.
649
650
  #
650
- # @param headers [Hash{String=>String}, Net::HTTPHeader]
651
+ # @param headers [Hash{String=>String}]
651
652
  # @param stream [Enumerable<String>]
652
653
  # @param suppress_error [Boolean]
653
654
  #
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ class BaseThresholdCommit < MetronomeSDK::Internal::Type::BaseModel
6
+ # @!attribute product_id
7
+ # The commit product that will be used to generate the line item for commit
8
+ # payment.
9
+ #
10
+ # @return [String]
11
+ required :product_id, String
12
+
13
+ # @!attribute description
14
+ #
15
+ # @return [String, nil]
16
+ optional :description, String
17
+
18
+ # @!attribute name
19
+ # Specify the name of the line item for the threshold charge. If left blank, it
20
+ # will default to the commit product name.
21
+ #
22
+ # @return [String, nil]
23
+ optional :name, String
24
+
25
+ # @!method initialize(product_id:, description: nil, name: nil)
26
+ # Some parameter documentations has been truncated, see
27
+ # {MetronomeSDK::Models::BaseThresholdCommit} for more details.
28
+ #
29
+ # @param product_id [String] The commit product that will be used to generate the line item for commit paymen
30
+ #
31
+ # @param description [String]
32
+ #
33
+ # @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
34
+ end
35
+ end
36
+ end
@@ -8,6 +8,16 @@ module MetronomeSDK
8
8
  # @return [String]
9
9
  required :id, String
10
10
 
11
+ # @!attribute created_at
12
+ # Timestamp of when the commit was created.
13
+ #
14
+ # - Recurring commits: latter of commit service period date and parent commit
15
+ # start date
16
+ # - Rollover commits: when the new contract started
17
+ #
18
+ # @return [Time]
19
+ required :created_at, Time
20
+
11
21
  # @!attribute product
12
22
  #
13
23
  # @return [MetronomeSDK::Models::Commit::Product]
@@ -72,6 +82,7 @@ module MetronomeSDK
72
82
  optional :contract, -> { MetronomeSDK::Commit::Contract }
73
83
 
74
84
  # @!attribute custom_fields
85
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
75
86
  #
76
87
  # @return [Hash{Symbol=>String}, nil]
77
88
  optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
@@ -84,8 +95,8 @@ module MetronomeSDK
84
95
  # @!attribute hierarchy_configuration
85
96
  # Optional configuration for commit hierarchy access control
86
97
  #
87
- # @return [MetronomeSDK::Models::Commit::HierarchyConfiguration, nil]
88
- optional :hierarchy_configuration, -> { MetronomeSDK::Commit::HierarchyConfiguration }
98
+ # @return [MetronomeSDK::Models::CommitHierarchyConfiguration, nil]
99
+ optional :hierarchy_configuration, -> { MetronomeSDK::CommitHierarchyConfiguration }
89
100
 
90
101
  # @!attribute invoice_contract
91
102
  # The contract that this commit will be billed on.
@@ -150,8 +161,8 @@ module MetronomeSDK
150
161
  # or credit. A customer's usage needs to meet the condition of at least one of the
151
162
  # specifiers to contribute to a commit's or credit's drawdown.
152
163
  #
153
- # @return [Array<MetronomeSDK::Models::Commit::Specifier>, nil]
154
- optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Commit::Specifier] }
164
+ # @return [Array<MetronomeSDK::Models::CommitSpecifier>, nil]
165
+ optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifier] }
155
166
 
156
167
  # @!attribute uniqueness_key
157
168
  # Prevents the creation of duplicates. If a request to create a commit or credit
@@ -162,12 +173,14 @@ module MetronomeSDK
162
173
  # @return [String, nil]
163
174
  optional :uniqueness_key, String
164
175
 
165
- # @!method initialize(id:, product:, type:, access_schedule: nil, amount: nil, applicable_contract_ids: nil, applicable_product_ids: nil, applicable_product_tags: nil, archived_at: nil, balance: nil, contract: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, invoice_contract: nil, invoice_schedule: nil, ledger: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, rolled_over_from: nil, rollover_fraction: nil, salesforce_opportunity_id: nil, specifiers: nil, uniqueness_key: nil)
176
+ # @!method initialize(id:, created_at:, product:, type:, access_schedule: nil, amount: nil, applicable_contract_ids: nil, applicable_product_ids: nil, applicable_product_tags: nil, archived_at: nil, balance: nil, contract: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, invoice_contract: nil, invoice_schedule: nil, ledger: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, rolled_over_from: nil, rollover_fraction: nil, salesforce_opportunity_id: nil, specifiers: nil, uniqueness_key: nil)
166
177
  # Some parameter documentations has been truncated, see
167
178
  # {MetronomeSDK::Models::Commit} for more details.
168
179
  #
169
180
  # @param id [String]
170
181
  #
182
+ # @param created_at [Time] Timestamp of when the commit was created.
183
+ #
171
184
  # @param product [MetronomeSDK::Models::Commit::Product]
172
185
  #
173
186
  # @param type [Symbol, MetronomeSDK::Models::Commit::Type]
@@ -188,11 +201,11 @@ module MetronomeSDK
188
201
  #
189
202
  # @param contract [MetronomeSDK::Models::Commit::Contract]
190
203
  #
191
- # @param custom_fields [Hash{Symbol=>String}]
204
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
192
205
  #
193
206
  # @param description [String]
194
207
  #
195
- # @param hierarchy_configuration [MetronomeSDK::Models::Commit::HierarchyConfiguration] Optional configuration for commit hierarchy access control
208
+ # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for commit hierarchy access control
196
209
  #
197
210
  # @param invoice_contract [MetronomeSDK::Models::Commit::InvoiceContract] The contract that this commit will be billed on.
198
211
  #
@@ -214,7 +227,7 @@ module MetronomeSDK
214
227
  #
215
228
  # @param salesforce_opportunity_id [String] This field's availability is dependent on your client's configuration.
216
229
  #
217
- # @param specifiers [Array<MetronomeSDK::Models::Commit::Specifier>] List of filters that determine what kind of customer usage draws down a commit o
230
+ # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifier>] List of filters that determine what kind of customer usage draws down a commit o
218
231
  #
219
232
  # @param uniqueness_key [String] Prevents the creation of duplicates. If a request to create a commit or credit i
220
233
 
@@ -257,114 +270,6 @@ module MetronomeSDK
257
270
  # @param id [String]
258
271
  end
259
272
 
260
- # @see MetronomeSDK::Models::Commit#hierarchy_configuration
261
- class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
262
- # @!attribute child_access
263
- #
264
- # @return [MetronomeSDK::Models::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
265
- required :child_access, union: -> { MetronomeSDK::Commit::HierarchyConfiguration::ChildAccess }
266
-
267
- # @!method initialize(child_access:)
268
- # Optional configuration for commit hierarchy access control
269
- #
270
- # @param child_access [MetronomeSDK::Models::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
271
-
272
- # @see MetronomeSDK::Models::Commit::HierarchyConfiguration#child_access
273
- module ChildAccess
274
- extend MetronomeSDK::Internal::Type::Union
275
-
276
- variant -> {
277
- MetronomeSDK::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll
278
- }
279
-
280
- variant -> {
281
- MetronomeSDK::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone
282
- }
283
-
284
- variant -> {
285
- MetronomeSDK::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
286
- }
287
-
288
- class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
289
- # @!attribute type
290
- #
291
- # @return [Symbol, MetronomeSDK::Models::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
292
- required :type,
293
- enum: -> {
294
- MetronomeSDK::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
295
- }
296
-
297
- # @!method initialize(type:)
298
- # @param type [Symbol, MetronomeSDK::Models::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
299
-
300
- # @see MetronomeSDK::Models::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
301
- module Type
302
- extend MetronomeSDK::Internal::Type::Enum
303
-
304
- ALL = :ALL
305
-
306
- # @!method self.values
307
- # @return [Array<Symbol>]
308
- end
309
- end
310
-
311
- class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
312
- # @!attribute type
313
- #
314
- # @return [Symbol, MetronomeSDK::Models::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
315
- required :type,
316
- enum: -> {
317
- MetronomeSDK::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
318
- }
319
-
320
- # @!method initialize(type:)
321
- # @param type [Symbol, MetronomeSDK::Models::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
322
-
323
- # @see MetronomeSDK::Models::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
324
- module Type
325
- extend MetronomeSDK::Internal::Type::Enum
326
-
327
- NONE = :NONE
328
-
329
- # @!method self.values
330
- # @return [Array<Symbol>]
331
- end
332
- end
333
-
334
- class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
335
- # @!attribute contract_ids
336
- #
337
- # @return [Array<String>]
338
- required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
339
-
340
- # @!attribute type
341
- #
342
- # @return [Symbol, MetronomeSDK::Models::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
343
- required :type,
344
- enum: -> {
345
- MetronomeSDK::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
346
- }
347
-
348
- # @!method initialize(contract_ids:, type:)
349
- # @param contract_ids [Array<String>]
350
- # @param type [Symbol, MetronomeSDK::Models::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
351
-
352
- # @see MetronomeSDK::Models::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
353
- module Type
354
- extend MetronomeSDK::Internal::Type::Enum
355
-
356
- CONTRACT_IDS = :CONTRACT_IDS
357
-
358
- # @!method self.values
359
- # @return [Array<Symbol>]
360
- end
361
- end
362
-
363
- # @!method self.variants
364
- # @return [Array(MetronomeSDK::Models::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::Commit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
365
- end
366
- end
367
-
368
273
  # @see MetronomeSDK::Models::Commit#invoice_contract
369
274
  class InvoiceContract < MetronomeSDK::Internal::Type::BaseModel
370
275
  # @!attribute id
@@ -428,10 +333,7 @@ module MetronomeSDK
428
333
  # @!attribute type
429
334
  #
430
335
  # @return [Symbol, MetronomeSDK::Models::Commit::Ledger::PrepaidCommitSegmentStartLedgerEntry::Type]
431
- required :type,
432
- enum: -> {
433
- MetronomeSDK::Commit::Ledger::PrepaidCommitSegmentStartLedgerEntry::Type
434
- }
336
+ required :type, enum: -> { MetronomeSDK::Commit::Ledger::PrepaidCommitSegmentStartLedgerEntry::Type }
435
337
 
436
338
  # @!method initialize(amount:, segment_id:, timestamp:, type:)
437
339
  # @param amount [Float]
@@ -475,9 +377,7 @@ module MetronomeSDK
475
377
  #
476
378
  # @return [Symbol, MetronomeSDK::Models::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry::Type]
477
379
  required :type,
478
- enum: -> {
479
- MetronomeSDK::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry::Type
480
- }
380
+ enum: -> { MetronomeSDK::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry::Type }
481
381
 
482
382
  # @!attribute contract_id
483
383
  #
@@ -705,9 +605,7 @@ module MetronomeSDK
705
605
  #
706
606
  # @return [Symbol, MetronomeSDK::Models::Commit::Ledger::PrepaidCommitSeatBasedAdjustmentLedgerEntry::Type]
707
607
  required :type,
708
- enum: -> {
709
- MetronomeSDK::Commit::Ledger::PrepaidCommitSeatBasedAdjustmentLedgerEntry::Type
710
- }
608
+ enum: -> { MetronomeSDK::Commit::Ledger::PrepaidCommitSeatBasedAdjustmentLedgerEntry::Type }
711
609
 
712
610
  # @!method initialize(amount:, segment_id:, timestamp:, type:)
713
611
  # @param amount [Float]
@@ -740,10 +638,7 @@ module MetronomeSDK
740
638
  # @!attribute type
741
639
  #
742
640
  # @return [Symbol, MetronomeSDK::Models::Commit::Ledger::PostpaidCommitInitialBalanceLedgerEntry::Type]
743
- required :type,
744
- enum: -> {
745
- MetronomeSDK::Commit::Ledger::PostpaidCommitInitialBalanceLedgerEntry::Type
746
- }
641
+ required :type, enum: -> { MetronomeSDK::Commit::Ledger::PostpaidCommitInitialBalanceLedgerEntry::Type }
747
642
 
748
643
  # @!method initialize(amount:, timestamp:, type:)
749
644
  # @param amount [Float]
@@ -786,9 +681,7 @@ module MetronomeSDK
786
681
  #
787
682
  # @return [Symbol, MetronomeSDK::Models::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry::Type]
788
683
  required :type,
789
- enum: -> {
790
- MetronomeSDK::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry::Type
791
- }
684
+ enum: -> { MetronomeSDK::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry::Type }
792
685
 
793
686
  # @!attribute contract_id
794
687
  #
@@ -1041,43 +934,6 @@ module MetronomeSDK
1041
934
  # @param commit_id [String]
1042
935
  # @param contract_id [String]
1043
936
  end
1044
-
1045
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
1046
- # @!attribute presentation_group_values
1047
- #
1048
- # @return [Hash{Symbol=>String}, nil]
1049
- optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1050
-
1051
- # @!attribute pricing_group_values
1052
- #
1053
- # @return [Hash{Symbol=>String}, nil]
1054
- optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
1055
-
1056
- # @!attribute product_id
1057
- # If provided, the specifier will only apply to the product with the specified ID.
1058
- #
1059
- # @return [String, nil]
1060
- optional :product_id, String
1061
-
1062
- # @!attribute product_tags
1063
- # If provided, the specifier will only apply to products with all the specified
1064
- # tags.
1065
- #
1066
- # @return [Array<String>, nil]
1067
- optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
1068
-
1069
- # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
1070
- # Some parameter documentations has been truncated, see
1071
- # {MetronomeSDK::Models::Commit::Specifier} for more details.
1072
- #
1073
- # @param presentation_group_values [Hash{Symbol=>String}]
1074
- #
1075
- # @param pricing_group_values [Hash{Symbol=>String}]
1076
- #
1077
- # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
1078
- #
1079
- # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
1080
- end
1081
937
  end
1082
938
  end
1083
939
  end
@@ -0,0 +1,98 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ class CommitHierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
6
+ # @!attribute child_access
7
+ #
8
+ # @return [MetronomeSDK::Models::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
9
+ required :child_access, union: -> { MetronomeSDK::CommitHierarchyConfiguration::ChildAccess }
10
+
11
+ # @!method initialize(child_access:)
12
+ # @param child_access [MetronomeSDK::Models::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs]
13
+
14
+ # @see MetronomeSDK::Models::CommitHierarchyConfiguration#child_access
15
+ module ChildAccess
16
+ extend MetronomeSDK::Internal::Type::Union
17
+
18
+ variant -> { MetronomeSDK::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll }
19
+
20
+ variant -> { MetronomeSDK::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone }
21
+
22
+ variant -> { MetronomeSDK::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs }
23
+
24
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
25
+ # @!attribute type
26
+ #
27
+ # @return [Symbol, MetronomeSDK::Models::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
28
+ required :type,
29
+ enum: -> { MetronomeSDK::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type }
30
+
31
+ # @!method initialize(type:)
32
+ # @param type [Symbol, MetronomeSDK::Models::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type]
33
+
34
+ # @see MetronomeSDK::Models::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll#type
35
+ module Type
36
+ extend MetronomeSDK::Internal::Type::Enum
37
+
38
+ ALL = :ALL
39
+
40
+ # @!method self.values
41
+ # @return [Array<Symbol>]
42
+ end
43
+ end
44
+
45
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
46
+ # @!attribute type
47
+ #
48
+ # @return [Symbol, MetronomeSDK::Models::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
49
+ required :type,
50
+ enum: -> { MetronomeSDK::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type }
51
+
52
+ # @!method initialize(type:)
53
+ # @param type [Symbol, MetronomeSDK::Models::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type]
54
+
55
+ # @see MetronomeSDK::Models::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone#type
56
+ module Type
57
+ extend MetronomeSDK::Internal::Type::Enum
58
+
59
+ NONE = :NONE
60
+
61
+ # @!method self.values
62
+ # @return [Array<Symbol>]
63
+ end
64
+ end
65
+
66
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
67
+ # @!attribute contract_ids
68
+ #
69
+ # @return [Array<String>]
70
+ required :contract_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
71
+
72
+ # @!attribute type
73
+ #
74
+ # @return [Symbol, MetronomeSDK::Models::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
75
+ required :type,
76
+ enum: -> { MetronomeSDK::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type }
77
+
78
+ # @!method initialize(contract_ids:, type:)
79
+ # @param contract_ids [Array<String>]
80
+ # @param type [Symbol, MetronomeSDK::Models::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type]
81
+
82
+ # @see MetronomeSDK::Models::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs#type
83
+ module Type
84
+ extend MetronomeSDK::Internal::Type::Enum
85
+
86
+ CONTRACT_IDS = :CONTRACT_IDS
87
+
88
+ # @!method self.values
89
+ # @return [Array<Symbol>]
90
+ end
91
+ end
92
+
93
+ # @!method self.variants
94
+ # @return [Array(MetronomeSDK::Models::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll, MetronomeSDK::Models::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone, MetronomeSDK::Models::CommitHierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs)]
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ class CommitRate < MetronomeSDK::Internal::Type::BaseModel
6
+ # @!attribute rate_type
7
+ #
8
+ # @return [Symbol, MetronomeSDK::Models::CommitRate::RateType]
9
+ required :rate_type, enum: -> { MetronomeSDK::CommitRate::RateType }
10
+
11
+ # @!attribute price
12
+ # Commit rate price. For FLAT rate_type, this must be >=0.
13
+ #
14
+ # @return [Float, nil]
15
+ optional :price, Float
16
+
17
+ # @!attribute tiers
18
+ # Only set for TIERED rate_type.
19
+ #
20
+ # @return [Array<MetronomeSDK::Models::Tier>, nil]
21
+ optional :tiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Tier] }
22
+
23
+ # @!method initialize(rate_type:, price: nil, tiers: nil)
24
+ # A distinct rate on the rate card. You can choose to use this rate rather than
25
+ # list rate when consuming a credit or commit.
26
+ #
27
+ # @param rate_type [Symbol, MetronomeSDK::Models::CommitRate::RateType]
28
+ #
29
+ # @param price [Float] Commit rate price. For FLAT rate_type, this must be >=0.
30
+ #
31
+ # @param tiers [Array<MetronomeSDK::Models::Tier>] Only set for TIERED rate_type.
32
+
33
+ # @see MetronomeSDK::Models::CommitRate#rate_type
34
+ module RateType
35
+ extend MetronomeSDK::Internal::Type::Enum
36
+
37
+ FLAT = :FLAT
38
+ PERCENTAGE = :PERCENTAGE
39
+ SUBSCRIPTION = :SUBSCRIPTION
40
+ TIERED = :TIERED
41
+ CUSTOM = :CUSTOM
42
+
43
+ # @!method self.values
44
+ # @return [Array<Symbol>]
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ class CommitSpecifier < MetronomeSDK::Internal::Type::BaseModel
6
+ # @!attribute presentation_group_values
7
+ #
8
+ # @return [Hash{Symbol=>String}, nil]
9
+ optional :presentation_group_values, MetronomeSDK::Internal::Type::HashOf[String]
10
+
11
+ # @!attribute pricing_group_values
12
+ #
13
+ # @return [Hash{Symbol=>String}, nil]
14
+ optional :pricing_group_values, MetronomeSDK::Internal::Type::HashOf[String]
15
+
16
+ # @!attribute product_id
17
+ # If provided, the specifier will only apply to the product with the specified ID.
18
+ #
19
+ # @return [String, nil]
20
+ optional :product_id, String
21
+
22
+ # @!attribute product_tags
23
+ # If provided, the specifier will only apply to products with all the specified
24
+ # tags.
25
+ #
26
+ # @return [Array<String>, nil]
27
+ optional :product_tags, MetronomeSDK::Internal::Type::ArrayOf[String]
28
+
29
+ # @!method initialize(presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil)
30
+ # Some parameter documentations has been truncated, see
31
+ # {MetronomeSDK::Models::CommitSpecifier} for more details.
32
+ #
33
+ # @param presentation_group_values [Hash{Symbol=>String}]
34
+ #
35
+ # @param pricing_group_values [Hash{Symbol=>String}]
36
+ #
37
+ # @param product_id [String] If provided, the specifier will only apply to the product with the specified ID.
38
+ #
39
+ # @param product_tags [Array<String>] If provided, the specifier will only apply to products with all the specified ta
40
+ end
41
+ end
42
+ end