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
@@ -18,6 +18,7 @@ module MetronomeSDK
18
18
  required :created_at, Time
19
19
 
20
20
  # @!attribute custom_fields
21
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
21
22
  #
22
23
  # @return [Hash{Symbol=>String}]
23
24
  required :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
@@ -46,6 +47,12 @@ module MetronomeSDK
46
47
  # @return [String]
47
48
  required :name, String
48
49
 
50
+ # @!attribute updated_at
51
+ # RFC 3339 timestamp indicating when the customer was last updated.
52
+ #
53
+ # @return [Time]
54
+ required :updated_at, Time
55
+
49
56
  # @!attribute archived_at
50
57
  # RFC 3339 timestamp indicating when the customer was archived. Null if the
51
58
  # customer is active.
@@ -59,7 +66,7 @@ module MetronomeSDK
59
66
  # @return [MetronomeSDK::Models::V1::CustomerDetail::CurrentBillableStatus, nil]
60
67
  optional :current_billable_status, -> { MetronomeSDK::V1::CustomerDetail::CurrentBillableStatus }
61
68
 
62
- # @!method initialize(id:, created_at:, custom_fields:, customer_config:, external_id:, ingest_aliases:, name:, archived_at: nil, current_billable_status: nil)
69
+ # @!method initialize(id:, created_at:, custom_fields:, customer_config:, external_id:, ingest_aliases:, name:, updated_at:, archived_at: nil, current_billable_status: nil)
63
70
  # Some parameter documentations has been truncated, see
64
71
  # {MetronomeSDK::Models::V1::CustomerDetail} for more details.
65
72
  #
@@ -67,7 +74,7 @@ module MetronomeSDK
67
74
  #
68
75
  # @param created_at [Time] RFC 3339 timestamp indicating when the customer was created.
69
76
  #
70
- # @param custom_fields [Hash{Symbol=>String}]
77
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
71
78
  #
72
79
  # @param customer_config [MetronomeSDK::Models::V1::CustomerDetail::CustomerConfig]
73
80
  #
@@ -77,6 +84,8 @@ module MetronomeSDK
77
84
  #
78
85
  # @param name [String]
79
86
  #
87
+ # @param updated_at [Time] RFC 3339 timestamp indicating when the customer was last updated.
88
+ #
80
89
  # @param archived_at [Time, nil] RFC 3339 timestamp indicating when the customer was archived. Null if the custom
81
90
  #
82
91
  # @param current_billable_status [MetronomeSDK::Models::V1::CustomerDetail::CurrentBillableStatus] This field's availability is dependent on your client's configuration.
@@ -50,6 +50,7 @@ module MetronomeSDK
50
50
  optional :archived_at, Time
51
51
 
52
52
  # @!attribute custom_fields
53
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
53
54
  #
54
55
  # @return [Hash{Symbol=>String}, nil]
55
56
  optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
@@ -77,8 +78,7 @@ module MetronomeSDK
77
78
  # represents a set of properties used to slice events into distinct buckets.
78
79
  #
79
80
  # @return [Array<Array<String>>, nil]
80
- optional :group_keys,
81
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Internal::Type::ArrayOf[String]]
81
+ optional :group_keys, MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Internal::Type::ArrayOf[String]]
82
82
 
83
83
  # @!attribute property_filters
84
84
  # A list of filters to match events to this billable metric. Each filter defines a
@@ -113,7 +113,7 @@ module MetronomeSDK
113
113
  #
114
114
  # @param archived_at [Time] RFC 3339 timestamp indicating when the billable metric was archived. If not prov
115
115
  #
116
- # @param custom_fields [Hash{Symbol=>String}]
116
+ # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
117
117
  #
118
118
  # @param event_type_filter [MetronomeSDK::Models::EventTypeFilter] An optional filtering rule to match the 'event_type' property of an event.
119
119
  #
@@ -17,9 +17,7 @@ module MetronomeSDK
17
17
  #
18
18
  # @return [Array<MetronomeSDK::Models::V1::CustomerPreviewEventsParams::Event>]
19
19
  required :events,
20
- -> {
21
- MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::CustomerPreviewEventsParams::Event]
22
- }
20
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::CustomerPreviewEventsParams::Event] }
23
21
 
24
22
  # @!attribute mode
25
23
  # If set to "replace", the preview will be generated as if those were the only
@@ -55,14 +53,6 @@ module MetronomeSDK
55
53
  # @return [String]
56
54
  required :event_type, String
57
55
 
58
- # @!attribute customer_id
59
- # This has no effect for preview events, but may be set for consistency with Event
60
- # objects. They will be processed even if they do not match the customer's ID or
61
- # ingest aliases.
62
- #
63
- # @return [String, nil]
64
- optional :customer_id, String
65
-
66
56
  # @!attribute properties
67
57
  #
68
58
  # @return [Hash{Symbol=>Object}, nil]
@@ -75,26 +65,24 @@ module MetronomeSDK
75
65
  optional :timestamp, String
76
66
 
77
67
  # @!attribute transaction_id
78
- # This has no effect for preview events, but may be set for consistency with Event
79
- # objects. Duplicate transaction_ids are NOT filtered out, even within the same
80
- # request.
68
+ # Optional unique identifier for event deduplication. When provided, preview
69
+ # events are automatically deduplicated against historical events from the past 34
70
+ # days. Duplicate transaction IDs within the same request will return an error.
81
71
  #
82
72
  # @return [String, nil]
83
73
  optional :transaction_id, String
84
74
 
85
- # @!method initialize(event_type:, customer_id: nil, properties: nil, timestamp: nil, transaction_id: nil)
75
+ # @!method initialize(event_type:, properties: nil, timestamp: nil, transaction_id: nil)
86
76
  # Some parameter documentations has been truncated, see
87
77
  # {MetronomeSDK::Models::V1::CustomerPreviewEventsParams::Event} for more details.
88
78
  #
89
79
  # @param event_type [String]
90
80
  #
91
- # @param customer_id [String] This has no effect for preview events, but may be set for consistency with Event
92
- #
93
81
  # @param properties [Hash{Symbol=>Object}]
94
82
  #
95
83
  # @param timestamp [String] RFC 3339 formatted. If not provided, the current time will be used.
96
84
  #
97
- # @param transaction_id [String] This has no effect for preview events, but may be set for consistency with Event
85
+ # @param transaction_id [String] Optional unique identifier for event deduplication. When provided, preview event
98
86
  end
99
87
 
100
88
  # If set to "replace", the preview will be generated as if those were the only
@@ -7,11 +7,11 @@ module MetronomeSDK
7
7
  class CustomerPreviewEventsResponse < MetronomeSDK::Internal::Type::BaseModel
8
8
  # @!attribute data
9
9
  #
10
- # @return [MetronomeSDK::Models::V1::Customers::Invoice]
11
- required :data, -> { MetronomeSDK::V1::Customers::Invoice }
10
+ # @return [Array<MetronomeSDK::Models::V1::Customers::Invoice>]
11
+ required :data, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::Customers::Invoice] }
12
12
 
13
13
  # @!method initialize(data:)
14
- # @param data [MetronomeSDK::Models::V1::Customers::Invoice]
14
+ # @param data [Array<MetronomeSDK::Models::V1::Customers::Invoice>]
15
15
  end
16
16
  end
17
17
  end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ module V1
6
+ # @see MetronomeSDK::Resources::V1::Customers#retrieve_billing_configurations
7
+ class CustomerRetrieveBillingConfigurationsParams < MetronomeSDK::Internal::Type::BaseModel
8
+ extend MetronomeSDK::Internal::Type::RequestParameters::Converter
9
+ include MetronomeSDK::Internal::Type::RequestParameters
10
+
11
+ # @!attribute customer_id
12
+ #
13
+ # @return [String]
14
+ required :customer_id, String
15
+
16
+ # @!attribute include_archived
17
+ #
18
+ # @return [Boolean, nil]
19
+ optional :include_archived, MetronomeSDK::Internal::Type::Boolean
20
+
21
+ # @!method initialize(customer_id:, include_archived: nil, request_options: {})
22
+ # @param customer_id [String]
23
+ # @param include_archived [Boolean]
24
+ # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,128 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ module V1
6
+ # @see MetronomeSDK::Resources::V1::Customers#retrieve_billing_configurations
7
+ class CustomerRetrieveBillingConfigurationsResponse < MetronomeSDK::Internal::Type::BaseModel
8
+ # @!attribute data
9
+ #
10
+ # @return [Array<MetronomeSDK::Models::V1::CustomerRetrieveBillingConfigurationsResponse::Data>]
11
+ required :data,
12
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V1::CustomerRetrieveBillingConfigurationsResponse::Data] }
13
+
14
+ # @!method initialize(data:)
15
+ # @param data [Array<MetronomeSDK::Models::V1::CustomerRetrieveBillingConfigurationsResponse::Data>]
16
+
17
+ class Data < MetronomeSDK::Internal::Type::BaseModel
18
+ # @!attribute id
19
+ # ID of this configuration; can be provided as the
20
+ # billing_provider_configuration_id when creating a contract.
21
+ #
22
+ # @return [String]
23
+ required :id, String
24
+
25
+ # @!attribute archived_at
26
+ #
27
+ # @return [Time, nil]
28
+ required :archived_at, Time, nil?: true
29
+
30
+ # @!attribute billing_provider
31
+ # The billing provider set for this configuration.
32
+ #
33
+ # @return [Symbol, MetronomeSDK::Models::V1::CustomerRetrieveBillingConfigurationsResponse::Data::BillingProvider]
34
+ required :billing_provider,
35
+ enum: -> { MetronomeSDK::Models::V1::CustomerRetrieveBillingConfigurationsResponse::Data::BillingProvider }
36
+
37
+ # @!attribute configuration
38
+ # Configuration for the billing provider. The structure of this object is specific
39
+ # to the billing provider.
40
+ #
41
+ # @return [Hash{Symbol=>Object}]
42
+ required :configuration, MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
43
+
44
+ # @!attribute customer_id
45
+ #
46
+ # @return [String]
47
+ required :customer_id, String
48
+
49
+ # @!attribute delivery_method
50
+ # The method to use for delivering invoices to this customer.
51
+ #
52
+ # @return [Symbol, MetronomeSDK::Models::V1::CustomerRetrieveBillingConfigurationsResponse::Data::DeliveryMethod]
53
+ required :delivery_method,
54
+ enum: -> { MetronomeSDK::Models::V1::CustomerRetrieveBillingConfigurationsResponse::Data::DeliveryMethod }
55
+
56
+ # @!attribute delivery_method_configuration
57
+ # Configuration for the delivery method. The structure of this object is specific
58
+ # to the delivery method.
59
+ #
60
+ # @return [Hash{Symbol=>Object}]
61
+ required :delivery_method_configuration,
62
+ MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
63
+
64
+ # @!attribute delivery_method_id
65
+ # ID of the delivery method to use for this customer.
66
+ #
67
+ # @return [String]
68
+ required :delivery_method_id, String
69
+
70
+ # @!method initialize(id:, archived_at:, billing_provider:, configuration:, customer_id:, delivery_method:, delivery_method_configuration:, delivery_method_id:)
71
+ # Some parameter documentations has been truncated, see
72
+ # {MetronomeSDK::Models::V1::CustomerRetrieveBillingConfigurationsResponse::Data}
73
+ # for more details.
74
+ #
75
+ # @param id [String] ID of this configuration; can be provided as the billing*provider_configuration*
76
+ #
77
+ # @param archived_at [Time, nil]
78
+ #
79
+ # @param billing_provider [Symbol, MetronomeSDK::Models::V1::CustomerRetrieveBillingConfigurationsResponse::Data::BillingProvider] The billing provider set for this configuration.
80
+ #
81
+ # @param configuration [Hash{Symbol=>Object}] Configuration for the billing provider. The structure of this object is specific
82
+ #
83
+ # @param customer_id [String]
84
+ #
85
+ # @param delivery_method [Symbol, MetronomeSDK::Models::V1::CustomerRetrieveBillingConfigurationsResponse::Data::DeliveryMethod] The method to use for delivering invoices to this customer.
86
+ #
87
+ # @param delivery_method_configuration [Hash{Symbol=>Object}] Configuration for the delivery method. The structure of this object is specific
88
+ #
89
+ # @param delivery_method_id [String] ID of the delivery method to use for this customer.
90
+
91
+ # The billing provider set for this configuration.
92
+ #
93
+ # @see MetronomeSDK::Models::V1::CustomerRetrieveBillingConfigurationsResponse::Data#billing_provider
94
+ module BillingProvider
95
+ extend MetronomeSDK::Internal::Type::Enum
96
+
97
+ AWS_MARKETPLACE = :aws_marketplace
98
+ STRIPE = :stripe
99
+ NETSUITE = :netsuite
100
+ CUSTOM = :custom
101
+ AZURE_MARKETPLACE = :azure_marketplace
102
+ QUICKBOOKS_ONLINE = :quickbooks_online
103
+ WORKDAY = :workday
104
+ GCP_MARKETPLACE = :gcp_marketplace
105
+
106
+ # @!method self.values
107
+ # @return [Array<Symbol>]
108
+ end
109
+
110
+ # The method to use for delivering invoices to this customer.
111
+ #
112
+ # @see MetronomeSDK::Models::V1::CustomerRetrieveBillingConfigurationsResponse::Data#delivery_method
113
+ module DeliveryMethod
114
+ extend MetronomeSDK::Internal::Type::Enum
115
+
116
+ DIRECT_TO_BILLING_PROVIDER = :direct_to_billing_provider
117
+ AWS_SQS = :aws_sqs
118
+ TACKLE = :tackle
119
+ AWS_SNS = :aws_sns
120
+
121
+ # @!method self.values
122
+ # @return [Array<Symbol>]
123
+ end
124
+ end
125
+ end
126
+ end
127
+ end
128
+ end
@@ -0,0 +1,143 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ module V1
6
+ # @see MetronomeSDK::Resources::V1::Customers#set_billing_configurations
7
+ class CustomerSetBillingConfigurationsParams < MetronomeSDK::Internal::Type::BaseModel
8
+ extend MetronomeSDK::Internal::Type::RequestParameters::Converter
9
+ include MetronomeSDK::Internal::Type::RequestParameters
10
+
11
+ # @!attribute data
12
+ #
13
+ # @return [Array<MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data>]
14
+ required :data,
15
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::CustomerSetBillingConfigurationsParams::Data] }
16
+
17
+ # @!method initialize(data:, request_options: {})
18
+ # @param data [Array<MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data>]
19
+ # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
20
+
21
+ class Data < MetronomeSDK::Internal::Type::BaseModel
22
+ # @!attribute billing_provider
23
+ # The billing provider set for this configuration.
24
+ #
25
+ # @return [Symbol, MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data::BillingProvider]
26
+ required :billing_provider,
27
+ enum: -> { MetronomeSDK::V1::CustomerSetBillingConfigurationsParams::Data::BillingProvider }
28
+
29
+ # @!attribute customer_id
30
+ #
31
+ # @return [String]
32
+ required :customer_id, String
33
+
34
+ # @!attribute configuration
35
+ # Configuration for the billing provider. The structure of this object is specific
36
+ # to the billing provider and delivery method combination. Defaults to an empty
37
+ # object, however, for most billing provider + delivery method combinations, it
38
+ # will not be a valid configuration. For AWS marketplace configurations, the
39
+ # aws_is_subscription_product flag can be used to indicate a product with
40
+ # usage-based pricing. More information can be found
41
+ # [here](https://docs.metronome.com/invoice-customers/solutions/marketplaces/invoice-aws/#provision-aws-marketplace-customers-in-metronome).
42
+ #
43
+ # @return [Hash{Symbol=>Object}, nil]
44
+ optional :configuration, MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
45
+
46
+ # @!attribute delivery_method
47
+ # The method to use for delivering invoices to this customer. If not provided, the
48
+ # `delivery_method_id` must be provided.
49
+ #
50
+ # @return [Symbol, MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data::DeliveryMethod, nil]
51
+ optional :delivery_method,
52
+ enum: -> { MetronomeSDK::V1::CustomerSetBillingConfigurationsParams::Data::DeliveryMethod }
53
+
54
+ # @!attribute delivery_method_id
55
+ # ID of the delivery method to use for this customer. If not provided, the
56
+ # `delivery_method` must be provided.
57
+ #
58
+ # @return [String, nil]
59
+ optional :delivery_method_id, String
60
+
61
+ # @!attribute tax_provider
62
+ # Specifies which tax provider Metronome should use for tax calculation when
63
+ # billing through Stripe. This is only supported for Stripe billing provider
64
+ # configurations with auto_charge_payment_intent or manual_charge_payment_intent
65
+ # collection methods.
66
+ #
67
+ # @return [Symbol, MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data::TaxProvider, nil]
68
+ optional :tax_provider,
69
+ enum: -> { MetronomeSDK::V1::CustomerSetBillingConfigurationsParams::Data::TaxProvider }
70
+
71
+ # @!method initialize(billing_provider:, customer_id:, configuration: nil, delivery_method: nil, delivery_method_id: nil, tax_provider: nil)
72
+ # Some parameter documentations has been truncated, see
73
+ # {MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data} for
74
+ # more details.
75
+ #
76
+ # @param billing_provider [Symbol, MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data::BillingProvider] The billing provider set for this configuration.
77
+ #
78
+ # @param customer_id [String]
79
+ #
80
+ # @param configuration [Hash{Symbol=>Object}] Configuration for the billing provider. The structure of this object is specific
81
+ #
82
+ # @param delivery_method [Symbol, MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data::DeliveryMethod] The method to use for delivering invoices to this customer. If not provided, the
83
+ #
84
+ # @param delivery_method_id [String] ID of the delivery method to use for this customer. If not provided, the `delive
85
+ #
86
+ # @param tax_provider [Symbol, MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data::TaxProvider] Specifies which tax provider Metronome should use for tax calculation when billi
87
+
88
+ # The billing provider set for this configuration.
89
+ #
90
+ # @see MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data#billing_provider
91
+ module BillingProvider
92
+ extend MetronomeSDK::Internal::Type::Enum
93
+
94
+ AWS_MARKETPLACE = :aws_marketplace
95
+ STRIPE = :stripe
96
+ NETSUITE = :netsuite
97
+ CUSTOM = :custom
98
+ AZURE_MARKETPLACE = :azure_marketplace
99
+ QUICKBOOKS_ONLINE = :quickbooks_online
100
+ WORKDAY = :workday
101
+ GCP_MARKETPLACE = :gcp_marketplace
102
+
103
+ # @!method self.values
104
+ # @return [Array<Symbol>]
105
+ end
106
+
107
+ # The method to use for delivering invoices to this customer. If not provided, the
108
+ # `delivery_method_id` must be provided.
109
+ #
110
+ # @see MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data#delivery_method
111
+ module DeliveryMethod
112
+ extend MetronomeSDK::Internal::Type::Enum
113
+
114
+ DIRECT_TO_BILLING_PROVIDER = :direct_to_billing_provider
115
+ AWS_SQS = :aws_sqs
116
+ TACKLE = :tackle
117
+ AWS_SNS = :aws_sns
118
+
119
+ # @!method self.values
120
+ # @return [Array<Symbol>]
121
+ end
122
+
123
+ # Specifies which tax provider Metronome should use for tax calculation when
124
+ # billing through Stripe. This is only supported for Stripe billing provider
125
+ # configurations with auto_charge_payment_intent or manual_charge_payment_intent
126
+ # collection methods.
127
+ #
128
+ # @see MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data#tax_provider
129
+ module TaxProvider
130
+ extend MetronomeSDK::Internal::Type::Enum
131
+
132
+ ANROK = :anrok
133
+ AVALARA = :avalara
134
+ STRIPE = :stripe
135
+
136
+ # @!method self.values
137
+ # @return [Array<Symbol>]
138
+ end
139
+ end
140
+ end
141
+ end
142
+ end
143
+ end
@@ -22,14 +22,12 @@ module MetronomeSDK
22
22
  optional :next_page, String
23
23
 
24
24
  # @!attribute alert_statuses
25
- # Optionally filter by alert status. If absent, only enabled alerts will be
26
- # returned.
25
+ # Optionally filter by threshold notification status. If absent, only enabled
26
+ # notifications will be returned.
27
27
  #
28
28
  # @return [Array<Symbol, MetronomeSDK::Models::V1::Customers::AlertListParams::AlertStatus>, nil]
29
29
  optional :alert_statuses,
30
- -> {
31
- MetronomeSDK::Internal::Type::ArrayOf[enum: MetronomeSDK::V1::Customers::AlertListParams::AlertStatus]
32
- }
30
+ -> { MetronomeSDK::Internal::Type::ArrayOf[enum: MetronomeSDK::V1::Customers::AlertListParams::AlertStatus] }
33
31
 
34
32
  # @!method initialize(customer_id:, next_page: nil, alert_statuses: nil, request_options: {})
35
33
  # Some parameter documentations has been truncated, see
@@ -39,7 +37,7 @@ module MetronomeSDK
39
37
  #
40
38
  # @param next_page [String] Cursor that indicates where the next page of results should start.
41
39
  #
42
- # @param alert_statuses [Array<Symbol, MetronomeSDK::Models::V1::Customers::AlertListParams::AlertStatus>] Optionally filter by alert status. If absent, only enabled alerts will be return
40
+ # @param alert_statuses [Array<Symbol, MetronomeSDK::Models::V1::Customers::AlertListParams::AlertStatus>] Optionally filter by threshold notification status. If absent, only enabled noti
43
41
  #
44
42
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
45
43
 
@@ -10,7 +10,7 @@ module MetronomeSDK
10
10
  include MetronomeSDK::Internal::Type::RequestParameters
11
11
 
12
12
  # @!attribute alert_id
13
- # The Metronome ID of the alert
13
+ # The Metronome ID of the threshold notification
14
14
  #
15
15
  # @return [String]
16
16
  required :alert_id, String
@@ -22,7 +22,7 @@ module MetronomeSDK
22
22
  required :customer_id, String
23
23
 
24
24
  # @!method initialize(alert_id:, customer_id:, request_options: {})
25
- # @param alert_id [String] The Metronome ID of the alert
25
+ # @param alert_id [String] The Metronome ID of the threshold notification
26
26
  #
27
27
  # @param customer_id [String] The Metronome ID of the customer
28
28
  #
@@ -10,7 +10,7 @@ module MetronomeSDK
10
10
  include MetronomeSDK::Internal::Type::RequestParameters
11
11
 
12
12
  # @!attribute alert_id
13
- # The Metronome ID of the alert
13
+ # The Metronome ID of the threshold notification
14
14
  #
15
15
  # @return [String]
16
16
  required :alert_id, String
@@ -21,28 +21,57 @@ module MetronomeSDK
21
21
  # @return [String]
22
22
  required :customer_id, String
23
23
 
24
+ # @!attribute group_values
25
+ # Only present for `spend_threshold_reached` notifications. Retrieve the
26
+ # notification for a specific group key-value pair.
27
+ #
28
+ # @return [Array<MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::GroupValue>, nil]
29
+ optional :group_values,
30
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::Customers::AlertRetrieveParams::GroupValue] }
31
+
24
32
  # @!attribute plans_or_contracts
25
- # When parallel alerts are enabled during migration, this flag denotes whether to
26
- # fetch alerts for plans or contracts.
33
+ # When parallel threshold notifications are enabled during migration, this flag
34
+ # denotes whether to fetch notifications for plans or contracts.
27
35
  #
28
36
  # @return [Symbol, MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::PlansOrContracts, nil]
29
37
  optional :plans_or_contracts,
30
38
  enum: -> { MetronomeSDK::V1::Customers::AlertRetrieveParams::PlansOrContracts }
31
39
 
32
- # @!method initialize(alert_id:, customer_id:, plans_or_contracts: nil, request_options: {})
40
+ # @!method initialize(alert_id:, customer_id:, group_values: nil, plans_or_contracts: nil, request_options: {})
33
41
  # Some parameter documentations has been truncated, see
34
42
  # {MetronomeSDK::Models::V1::Customers::AlertRetrieveParams} for more details.
35
43
  #
36
- # @param alert_id [String] The Metronome ID of the alert
44
+ # @param alert_id [String] The Metronome ID of the threshold notification
37
45
  #
38
46
  # @param customer_id [String] The Metronome ID of the customer
39
47
  #
40
- # @param plans_or_contracts [Symbol, MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::PlansOrContracts] When parallel alerts are enabled during migration, this flag denotes whether to
48
+ # @param group_values [Array<MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::GroupValue>] Only present for `spend_threshold_reached` notifications. Retrieve the notificat
49
+ #
50
+ # @param plans_or_contracts [Symbol, MetronomeSDK::Models::V1::Customers::AlertRetrieveParams::PlansOrContracts] When parallel threshold notifications are enabled during migration, this flag de
41
51
  #
42
52
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
43
53
 
44
- # When parallel alerts are enabled during migration, this flag denotes whether to
45
- # fetch alerts for plans or contracts.
54
+ class GroupValue < MetronomeSDK::Internal::Type::BaseModel
55
+ # @!attribute key
56
+ #
57
+ # @return [String]
58
+ required :key, String
59
+
60
+ # @!attribute value
61
+ #
62
+ # @return [String]
63
+ required :value, String
64
+
65
+ # @!method initialize(key:, value:)
66
+ # Scopes threshold notification evaluation to a specific presentation group key on
67
+ # individual line items. Only present for spend notifications.
68
+ #
69
+ # @param key [String]
70
+ # @param value [String]
71
+ end
72
+
73
+ # When parallel threshold notifications are enabled during migration, this flag
74
+ # denotes whether to fetch notifications for plans or contracts.
46
75
  module PlansOrContracts
47
76
  extend MetronomeSDK::Internal::Type::Enum
48
77
 
@@ -116,6 +116,8 @@ module MetronomeSDK
116
116
 
117
117
  CHARGE_AUTOMATICALLY = :charge_automatically
118
118
  SEND_INVOICE = :send_invoice
119
+ AUTO_CHARGE_PAYMENT_INTENT = :auto_charge_payment_intent
120
+ MANUALLY_CHARGE_PAYMENT_INTENT = :manually_charge_payment_intent
119
121
 
120
122
  # @!method self.values
121
123
  # @return [Array<Symbol>]
@@ -157,6 +157,8 @@ module MetronomeSDK
157
157
 
158
158
  CHARGE_AUTOMATICALLY = :charge_automatically
159
159
  SEND_INVOICE = :send_invoice
160
+ AUTO_CHARGE_PAYMENT_INTENT = :auto_charge_payment_intent
161
+ MANUALLY_CHARGE_PAYMENT_INTENT = :manually_charge_payment_intent
160
162
 
161
163
  # @!method self.values
162
164
  # @return [Array<Symbol>]