metronome-sdk 0.1.0.pre.alpha.3 → 0.1.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 (417) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +56 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/errors.rb +22 -0
  5. data/lib/metronome_sdk/internal/cursor_page.rb +1 -1
  6. data/lib/metronome_sdk/internal/transport/base_client.rb +10 -2
  7. data/lib/metronome_sdk/internal/type/array_of.rb +6 -1
  8. data/lib/metronome_sdk/internal/type/base_model.rb +82 -26
  9. data/lib/metronome_sdk/internal/type/boolean.rb +7 -1
  10. data/lib/metronome_sdk/internal/type/converter.rb +42 -34
  11. data/lib/metronome_sdk/internal/type/enum.rb +16 -5
  12. data/lib/metronome_sdk/internal/type/file_input.rb +6 -1
  13. data/lib/metronome_sdk/internal/type/hash_of.rb +6 -1
  14. data/lib/metronome_sdk/internal/type/union.rb +17 -9
  15. data/lib/metronome_sdk/internal/type/unknown.rb +7 -1
  16. data/lib/metronome_sdk/internal/util.rb +8 -9
  17. data/lib/metronome_sdk/models/base_usage_filter.rb +27 -0
  18. data/lib/metronome_sdk/models/commit.rb +1053 -0
  19. data/lib/metronome_sdk/models/contract_without_amendments.rb +2043 -0
  20. data/lib/metronome_sdk/models/credit.rb +677 -0
  21. data/lib/metronome_sdk/models/credit_type_data.rb +21 -0
  22. data/lib/metronome_sdk/models/discount.rb +68 -0
  23. data/lib/metronome_sdk/models/event_type_filter.rb +33 -0
  24. data/lib/metronome_sdk/models/id.rb +15 -0
  25. data/lib/metronome_sdk/models/override.rb +381 -0
  26. data/lib/metronome_sdk/models/pro_service.rb +73 -0
  27. data/lib/metronome_sdk/models/property_filter.rb +52 -0
  28. data/lib/metronome_sdk/models/rate.rb +101 -0
  29. data/lib/metronome_sdk/models/schedule_duration.rb +50 -0
  30. data/lib/metronome_sdk/models/schedule_point_in_time.rb +62 -0
  31. data/lib/metronome_sdk/models/scheduled_charge.rb +76 -0
  32. data/lib/metronome_sdk/models/tier.rb +21 -0
  33. data/lib/metronome_sdk/models/v1/alert_archive_response.rb +3 -14
  34. data/lib/metronome_sdk/models/v1/alert_create_params.rb +4 -1
  35. data/lib/metronome_sdk/models/v1/alert_create_response.rb +3 -14
  36. data/lib/metronome_sdk/models/v1/billable_metric_archive_params.rb +2 -8
  37. data/lib/metronome_sdk/models/v1/billable_metric_archive_response.rb +3 -14
  38. data/lib/metronome_sdk/models/v1/billable_metric_create_params.rb +6 -86
  39. data/lib/metronome_sdk/models/v1/billable_metric_create_response.rb +3 -14
  40. data/lib/metronome_sdk/models/v1/billable_metric_list_response.rb +6 -85
  41. data/lib/metronome_sdk/models/v1/billable_metric_retrieve_response.rb +8 -85
  42. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +312 -35
  43. data/lib/metronome_sdk/models/v1/contract_amend_response.rb +3 -14
  44. data/lib/metronome_sdk/models/v1/contract_archive_response.rb +3 -14
  45. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_response.rb +3 -1276
  46. data/lib/metronome_sdk/models/v1/contract_create_params.rb +792 -104
  47. data/lib/metronome_sdk/models/v1/contract_create_response.rb +3 -14
  48. data/lib/metronome_sdk/models/v1/contract_list_balances_params.rb +9 -1
  49. data/lib/metronome_sdk/models/v1/contract_list_balances_response.rb +5 -1645
  50. data/lib/metronome_sdk/models/v1/contract_list_response.rb +253 -10692
  51. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rb +9 -295
  52. data/lib/metronome_sdk/models/v1/contract_retrieve_response.rb +254 -10721
  53. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rb +3 -1276
  54. data/lib/metronome_sdk/models/v1/contract_update_end_date_response.rb +3 -14
  55. data/lib/metronome_sdk/models/v1/contracts/product_archive_response.rb +3 -14
  56. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +6 -97
  57. data/lib/metronome_sdk/models/v1/contracts/product_create_response.rb +3 -14
  58. data/lib/metronome_sdk/models/v1/contracts/product_list_item_state.rb +148 -0
  59. data/lib/metronome_sdk/models/v1/contracts/product_list_response.rb +12 -561
  60. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_params.rb +2 -8
  61. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_response.rb +14 -559
  62. data/lib/metronome_sdk/models/v1/contracts/product_update_params.rb +6 -97
  63. data/lib/metronome_sdk/models/v1/contracts/product_update_response.rb +3 -14
  64. data/lib/metronome_sdk/models/v1/contracts/quantity_conversion.rb +57 -0
  65. data/lib/metronome_sdk/models/v1/contracts/quantity_rounding.rb +45 -0
  66. data/lib/metronome_sdk/models/v1/contracts/rate_card_archive_params.rb +2 -8
  67. data/lib/metronome_sdk/models/v1/contracts/rate_card_archive_response.rb +3 -14
  68. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_response.rb +3 -14
  69. data/lib/metronome_sdk/models/v1/contracts/rate_card_list_response.rb +6 -42
  70. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rb +2 -8
  71. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rb +6 -159
  72. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rb +6 -42
  73. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_response.rb +3 -14
  74. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rb +3 -14
  75. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rb +3 -14
  76. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +6 -44
  77. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rb +3 -16
  78. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +6 -44
  79. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +9 -61
  80. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rb +6 -158
  81. data/lib/metronome_sdk/models/v1/credit_grant_create_params.rb +5 -77
  82. data/lib/metronome_sdk/models/v1/credit_grant_create_response.rb +3 -14
  83. data/lib/metronome_sdk/models/v1/credit_grant_edit_response.rb +3 -14
  84. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_params.rb +20 -1
  85. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_response.rb +11 -153
  86. data/lib/metronome_sdk/models/v1/credit_grant_list_response.rb +14 -175
  87. data/lib/metronome_sdk/models/v1/credit_grant_void_response.rb +3 -14
  88. data/lib/metronome_sdk/models/v1/credit_ledger_entry.rb +69 -0
  89. data/lib/metronome_sdk/models/v1/customer.rb +53 -0
  90. data/lib/metronome_sdk/models/v1/customer_archive_params.rb +2 -8
  91. data/lib/metronome_sdk/models/v1/customer_archive_response.rb +3 -14
  92. data/lib/metronome_sdk/models/v1/customer_create_response.rb +3 -50
  93. data/lib/metronome_sdk/models/v1/{customer_list_response.rb → customer_detail.rb} +14 -15
  94. data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_response.rb +6 -86
  95. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +115 -0
  96. data/lib/metronome_sdk/models/v1/customer_preview_events_response.rb +18 -0
  97. data/lib/metronome_sdk/models/v1/customer_retrieve_response.rb +3 -126
  98. data/lib/metronome_sdk/models/v1/customer_set_name_response.rb +3 -50
  99. data/lib/metronome_sdk/models/v1/customers/alert_list_response.rb +5 -276
  100. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_response.rb +3 -279
  101. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +9 -1
  102. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +8 -6
  103. data/lib/metronome_sdk/models/v1/customers/commit_create_response.rb +3 -14
  104. data/lib/metronome_sdk/models/v1/customers/commit_list_params.rb +9 -1
  105. data/lib/metronome_sdk/models/v1/customers/commit_list_response.rb +3 -1047
  106. data/lib/metronome_sdk/models/v1/customers/commit_update_end_date_response.rb +3 -14
  107. data/lib/metronome_sdk/models/v1/customers/credit_create_response.rb +3 -14
  108. data/lib/metronome_sdk/models/v1/customers/credit_list_params.rb +9 -1
  109. data/lib/metronome_sdk/models/v1/customers/credit_list_response.rb +3 -593
  110. data/lib/metronome_sdk/models/v1/customers/credit_update_end_date_response.rb +3 -14
  111. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +270 -0
  112. data/lib/metronome_sdk/models/v1/customers/{invoice_list_response.rb → invoice.rb} +119 -303
  113. data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rb +2 -1271
  114. data/lib/metronome_sdk/models/v1/customers/invoice_retrieve_response.rb +3 -1276
  115. data/lib/metronome_sdk/models/v1/customers/plan_add_response.rb +3 -14
  116. data/lib/metronome_sdk/models/v1/customers/plan_list_response.rb +3 -21
  117. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +1 -0
  118. data/lib/metronome_sdk/models/v1/plan_detail.rb +200 -0
  119. data/lib/metronome_sdk/models/v1/plan_get_details_response.rb +3 -286
  120. data/lib/metronome_sdk/models/v1/plan_list_charges_response.rb +3 -20
  121. data/lib/metronome_sdk/models/v1/plan_list_customers_response.rb +3 -128
  122. data/lib/metronome_sdk/models/v1/rollover_amount_max_amount.rb +38 -0
  123. data/lib/metronome_sdk/models/v1/rollover_amount_max_percentage.rb +38 -0
  124. data/lib/metronome_sdk/models/v1/usage_search_params.rb +24 -0
  125. data/lib/metronome_sdk/models/v1/usage_search_response.rb +249 -0
  126. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +11 -8
  127. data/lib/metronome_sdk/models/v2/contract_edit_commit_response.rb +3 -14
  128. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +3 -2
  129. data/lib/metronome_sdk/models/v2/contract_edit_credit_response.rb +3 -14
  130. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +1127 -105
  131. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +3 -14
  132. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +577 -643
  133. data/lib/metronome_sdk/models/v2/contract_list_response.rb +917 -746
  134. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +917 -748
  135. data/lib/metronome_sdk/models.rb +36 -4
  136. data/lib/metronome_sdk/resources/v1/alerts.rb +1 -1
  137. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +2 -2
  138. data/lib/metronome_sdk/resources/v1/contracts/products.rb +4 -4
  139. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +1 -1
  140. data/lib/metronome_sdk/resources/v1/contracts.rb +11 -5
  141. data/lib/metronome_sdk/resources/v1/credit_grants.rb +4 -2
  142. data/lib/metronome_sdk/resources/v1/customers/commits.rb +5 -3
  143. data/lib/metronome_sdk/resources/v1/customers/credits.rb +3 -1
  144. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +2 -2
  145. data/lib/metronome_sdk/resources/v1/customers.rb +40 -2
  146. data/lib/metronome_sdk/resources/v1/usage.rb +25 -0
  147. data/lib/metronome_sdk/resources/v2/contracts.rb +11 -9
  148. data/lib/metronome_sdk/version.rb +1 -1
  149. data/lib/metronome_sdk.rb +31 -2
  150. data/rbi/metronome_sdk/errors.rbi +16 -0
  151. data/rbi/metronome_sdk/internal/type/boolean.rbi +2 -0
  152. data/rbi/metronome_sdk/internal/type/converter.rbi +15 -15
  153. data/rbi/metronome_sdk/internal/type/union.rbi +5 -0
  154. data/rbi/metronome_sdk/internal/type/unknown.rbi +2 -0
  155. data/rbi/metronome_sdk/internal/util.rbi +2 -0
  156. data/rbi/metronome_sdk/models/base_usage_filter.rbi +46 -0
  157. data/rbi/metronome_sdk/models/commit.rbi +2046 -0
  158. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +4260 -0
  159. data/rbi/metronome_sdk/models/credit.rbi +1314 -0
  160. data/rbi/metronome_sdk/models/credit_type_data.rbi +26 -0
  161. data/rbi/metronome_sdk/models/discount.rbi +106 -0
  162. data/rbi/metronome_sdk/models/event_type_filter.rbi +57 -0
  163. data/rbi/metronome_sdk/models/id.rbi +23 -0
  164. data/rbi/metronome_sdk/models/override.rbi +675 -0
  165. data/rbi/metronome_sdk/models/pro_service.rbi +98 -0
  166. data/rbi/metronome_sdk/models/property_filter.rbi +88 -0
  167. data/rbi/metronome_sdk/models/rate.rbi +155 -0
  168. data/rbi/metronome_sdk/models/schedule_duration.rbi +89 -0
  169. data/rbi/metronome_sdk/models/schedule_point_in_time.rbi +121 -0
  170. data/rbi/metronome_sdk/models/scheduled_charge.rbi +119 -0
  171. data/rbi/metronome_sdk/models/tier.rbi +29 -0
  172. data/rbi/metronome_sdk/models/v1/alert_archive_response.rbi +4 -37
  173. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +6 -0
  174. data/rbi/metronome_sdk/models/v1/alert_create_response.rbi +4 -37
  175. data/rbi/metronome_sdk/models/v1/billable_metric_archive_params.rbi +6 -12
  176. data/rbi/metronome_sdk/models/v1/billable_metric_archive_response.rbi +4 -44
  177. data/rbi/metronome_sdk/models/v1/billable_metric_create_params.rbi +8 -177
  178. data/rbi/metronome_sdk/models/v1/billable_metric_create_response.rbi +4 -43
  179. data/rbi/metronome_sdk/models/v1/billable_metric_list_response.rbi +8 -177
  180. data/rbi/metronome_sdk/models/v1/billable_metric_retrieve_response.rbi +8 -175
  181. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +712 -68
  182. data/rbi/metronome_sdk/models/v1/contract_amend_response.rbi +4 -37
  183. data/rbi/metronome_sdk/models/v1/contract_archive_response.rbi +4 -39
  184. data/rbi/metronome_sdk/models/v1/contract_create_historical_invoices_response.rbi +3 -2595
  185. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1738 -210
  186. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +4 -37
  187. data/rbi/metronome_sdk/models/v1/contract_list_balances_params.rbi +11 -0
  188. data/rbi/metronome_sdk/models/v1/contract_list_balances_response.rbi +3 -3366
  189. data/rbi/metronome_sdk/models/v1/contract_list_response.rbi +375 -22523
  190. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbi +12 -632
  191. data/rbi/metronome_sdk/models/v1/contract_retrieve_response.rbi +375 -22523
  192. data/rbi/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rbi +3 -2595
  193. data/rbi/metronome_sdk/models/v1/contract_update_end_date_response.rbi +4 -44
  194. data/rbi/metronome_sdk/models/v1/contracts/product_archive_response.rbi +4 -44
  195. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +8 -209
  196. data/rbi/metronome_sdk/models/v1/contracts/product_create_response.rbi +4 -44
  197. data/rbi/metronome_sdk/models/v1/contracts/product_list_item_state.rbi +237 -0
  198. data/rbi/metronome_sdk/models/v1/contracts/product_list_response.rbi +76 -1143
  199. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_params.rbi +3 -9
  200. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_response.rbi +76 -1137
  201. data/rbi/metronome_sdk/models/v1/contracts/product_update_params.rbi +8 -209
  202. data/rbi/metronome_sdk/models/v1/contracts/product_update_response.rbi +4 -44
  203. data/rbi/metronome_sdk/models/v1/contracts/quantity_conversion.rbi +111 -0
  204. data/rbi/metronome_sdk/models/v1/contracts/quantity_rounding.rbi +94 -0
  205. data/rbi/metronome_sdk/models/v1/contracts/rate_card_archive_params.rbi +3 -9
  206. data/rbi/metronome_sdk/models/v1/contracts/rate_card_archive_response.rbi +4 -44
  207. data/rbi/metronome_sdk/models/v1/contracts/rate_card_create_response.rbi +4 -44
  208. data/rbi/metronome_sdk/models/v1/contracts/rate_card_list_response.rbi +8 -74
  209. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rbi +3 -9
  210. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbi +8 -344
  211. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbi +8 -74
  212. data/rbi/metronome_sdk/models/v1/contracts/rate_card_update_response.rbi +4 -44
  213. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rbi +4 -44
  214. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rbi +4 -44
  215. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +8 -108
  216. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rbi +4 -45
  217. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +8 -108
  218. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +12 -149
  219. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbi +8 -344
  220. data/rbi/metronome_sdk/models/v1/credit_grant_create_params.rbi +8 -166
  221. data/rbi/metronome_sdk/models/v1/credit_grant_create_response.rbi +4 -41
  222. data/rbi/metronome_sdk/models/v1/credit_grant_edit_response.rbi +4 -39
  223. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_params.rbi +58 -0
  224. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_response.rbi +10 -231
  225. data/rbi/metronome_sdk/models/v1/credit_grant_list_response.rbi +14 -281
  226. data/rbi/metronome_sdk/models/v1/credit_grant_void_response.rbi +4 -39
  227. data/rbi/metronome_sdk/models/v1/credit_ledger_entry.rbi +90 -0
  228. data/rbi/metronome_sdk/models/v1/customer.rbi +74 -0
  229. data/rbi/metronome_sdk/models/v1/customer_archive_params.rbi +6 -12
  230. data/rbi/metronome_sdk/models/v1/customer_archive_response.rbi +4 -39
  231. data/rbi/metronome_sdk/models/v1/customer_create_response.rbi +6 -84
  232. data/rbi/metronome_sdk/models/v1/{customer_list_response.rbi → customer_detail.rbi} +19 -26
  233. data/rbi/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbi +8 -177
  234. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +214 -0
  235. data/rbi/metronome_sdk/models/v1/customer_preview_events_response.rbi +35 -0
  236. data/rbi/metronome_sdk/models/v1/customer_retrieve_response.rbi +6 -255
  237. data/rbi/metronome_sdk/models/v1/customer_set_name_response.rbi +6 -86
  238. data/rbi/metronome_sdk/models/v1/customers/alert_list_response.rbi +3 -623
  239. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_response.rbi +4 -622
  240. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +11 -0
  241. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +12 -8
  242. data/rbi/metronome_sdk/models/v1/customers/commit_create_response.rbi +4 -44
  243. data/rbi/metronome_sdk/models/v1/customers/commit_list_params.rbi +11 -0
  244. data/rbi/metronome_sdk/models/v1/customers/commit_list_response.rbi +3 -2164
  245. data/rbi/metronome_sdk/models/v1/customers/commit_update_end_date_response.rbi +4 -44
  246. data/rbi/metronome_sdk/models/v1/customers/credit_create_response.rbi +4 -44
  247. data/rbi/metronome_sdk/models/v1/customers/credit_list_params.rbi +11 -0
  248. data/rbi/metronome_sdk/models/v1/customers/credit_list_response.rbi +3 -1224
  249. data/rbi/metronome_sdk/models/v1/customers/credit_update_end_date_response.rbi +4 -44
  250. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +572 -0
  251. data/rbi/metronome_sdk/models/v1/customers/{invoice_list_response.rbi → invoice.rbi} +182 -589
  252. data/rbi/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rbi +4 -2561
  253. data/rbi/metronome_sdk/models/v1/customers/invoice_retrieve_response.rbi +6 -2612
  254. data/rbi/metronome_sdk/models/v1/customers/plan_add_response.rbi +4 -41
  255. data/rbi/metronome_sdk/models/v1/customers/plan_list_response.rbi +4 -39
  256. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +5 -0
  257. data/rbi/metronome_sdk/models/v1/plan_detail.rbi +349 -0
  258. data/rbi/metronome_sdk/models/v1/plan_get_details_response.rbi +6 -560
  259. data/rbi/metronome_sdk/models/v1/plan_list_charges_response.rbi +4 -37
  260. data/rbi/metronome_sdk/models/v1/plan_list_customers_response.rbi +4 -248
  261. data/rbi/metronome_sdk/models/v1/rollover_amount_max_amount.rbi +79 -0
  262. data/rbi/metronome_sdk/models/v1/rollover_amount_max_percentage.rbi +80 -0
  263. data/rbi/metronome_sdk/models/v1/usage_search_params.rbi +48 -0
  264. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +438 -0
  265. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +23 -23
  266. data/rbi/metronome_sdk/models/v2/contract_edit_commit_response.rbi +4 -41
  267. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +11 -15
  268. data/rbi/metronome_sdk/models/v2/contract_edit_credit_response.rbi +4 -41
  269. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +2463 -206
  270. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +4 -37
  271. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1381 -1550
  272. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +2017 -1466
  273. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +2017 -1466
  274. data/rbi/metronome_sdk/models.rbi +32 -0
  275. data/rbi/metronome_sdk/resources/v1/alerts.rbi +3 -0
  276. data/rbi/metronome_sdk/resources/v1/billable_metrics.rbi +2 -6
  277. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +4 -4
  278. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +1 -4
  279. data/rbi/metronome_sdk/resources/v1/contracts.rbi +13 -4
  280. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +4 -0
  281. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +9 -4
  282. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +3 -0
  283. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +1 -1
  284. data/rbi/metronome_sdk/resources/v1/customers.rbi +34 -3
  285. data/rbi/metronome_sdk/resources/v1/usage.rbi +17 -0
  286. data/rbi/metronome_sdk/resources/v2/contracts.rbi +24 -14
  287. data/sig/metronome_sdk/errors.rbs +9 -0
  288. data/sig/metronome_sdk/internal/type/converter.rbs +7 -1
  289. data/sig/metronome_sdk/models/base_usage_filter.rbs +28 -0
  290. data/sig/metronome_sdk/models/commit.rbs +1063 -0
  291. data/sig/metronome_sdk/models/contract_without_amendments.rbs +1828 -0
  292. data/sig/metronome_sdk/models/credit.rbs +686 -0
  293. data/sig/metronome_sdk/models/credit_type_data.rbs +15 -0
  294. data/sig/metronome_sdk/models/discount.rbs +63 -0
  295. data/sig/metronome_sdk/models/event_type_filter.rbs +26 -0
  296. data/sig/metronome_sdk/models/id.rbs +13 -0
  297. data/sig/metronome_sdk/models/override.rbs +399 -0
  298. data/sig/metronome_sdk/models/pro_service.rbs +61 -0
  299. data/sig/metronome_sdk/models/property_filter.rbs +41 -0
  300. data/sig/metronome_sdk/models/rate.rbs +94 -0
  301. data/sig/metronome_sdk/models/schedule_duration.rbs +56 -0
  302. data/sig/metronome_sdk/models/schedule_point_in_time.rbs +75 -0
  303. data/sig/metronome_sdk/models/scheduled_charge.rbs +70 -0
  304. data/sig/metronome_sdk/models/tier.rbs +17 -0
  305. data/sig/metronome_sdk/models/v1/alert_archive_response.rbs +4 -19
  306. data/sig/metronome_sdk/models/v1/alert_create_response.rbs +4 -19
  307. data/sig/metronome_sdk/models/v1/billable_metric_archive_params.rbs +4 -12
  308. data/sig/metronome_sdk/models/v1/billable_metric_archive_response.rbs +4 -19
  309. data/sig/metronome_sdk/models/v1/billable_metric_create_params.rbs +12 -73
  310. data/sig/metronome_sdk/models/v1/billable_metric_create_response.rbs +4 -19
  311. data/sig/metronome_sdk/models/v1/billable_metric_list_response.rbs +12 -73
  312. data/sig/metronome_sdk/models/v1/billable_metric_retrieve_response.rbs +12 -73
  313. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +291 -24
  314. data/sig/metronome_sdk/models/v1/contract_amend_response.rbs +4 -19
  315. data/sig/metronome_sdk/models/v1/contract_archive_response.rbs +4 -19
  316. data/sig/metronome_sdk/models/v1/contract_create_historical_invoices_response.rbs +4 -1291
  317. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +694 -84
  318. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +4 -19
  319. data/sig/metronome_sdk/models/v1/contract_list_balances_params.rbs +7 -0
  320. data/sig/metronome_sdk/models/v1/contract_list_balances_response.rbs +1 -1642
  321. data/sig/metronome_sdk/models/v1/contract_list_response.rbs +188 -10437
  322. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbs +15 -271
  323. data/sig/metronome_sdk/models/v1/contract_retrieve_response.rbs +188 -10437
  324. data/sig/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_response.rbs +4 -1291
  325. data/sig/metronome_sdk/models/v1/contract_update_end_date_response.rbs +4 -19
  326. data/sig/metronome_sdk/models/v1/contracts/product_archive_response.rbs +4 -21
  327. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +8 -82
  328. data/sig/metronome_sdk/models/v1/contracts/product_create_response.rbs +4 -21
  329. data/sig/metronome_sdk/models/v1/contracts/product_list_item_state.rbs +121 -0
  330. data/sig/metronome_sdk/models/v1/contracts/product_list_response.rbs +16 -466
  331. data/sig/metronome_sdk/models/v1/contracts/product_retrieve_params.rbs +4 -12
  332. data/sig/metronome_sdk/models/v1/contracts/product_retrieve_response.rbs +16 -466
  333. data/sig/metronome_sdk/models/v1/contracts/product_update_params.rbs +8 -82
  334. data/sig/metronome_sdk/models/v1/contracts/product_update_response.rbs +4 -21
  335. data/sig/metronome_sdk/models/v1/contracts/quantity_conversion.rbs +47 -0
  336. data/sig/metronome_sdk/models/v1/contracts/quantity_rounding.rbs +41 -0
  337. data/sig/metronome_sdk/models/v1/contracts/rate_card_archive_params.rbs +4 -12
  338. data/sig/metronome_sdk/models/v1/contracts/rate_card_archive_response.rbs +4 -21
  339. data/sig/metronome_sdk/models/v1/contracts/rate_card_create_response.rbs +4 -21
  340. data/sig/metronome_sdk/models/v1/contracts/rate_card_list_response.rbs +10 -34
  341. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_params.rbs +4 -12
  342. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbs +10 -144
  343. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbs +10 -34
  344. data/sig/metronome_sdk/models/v1/contracts/rate_card_update_response.rbs +4 -21
  345. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_set_response.rbs +4 -21
  346. data/sig/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_response.rbs +4 -21
  347. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +12 -40
  348. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_response.rbs +4 -21
  349. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +12 -40
  350. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +18 -58
  351. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbs +10 -144
  352. data/sig/metronome_sdk/models/v1/credit_grant_create_params.rbs +2 -66
  353. data/sig/metronome_sdk/models/v1/credit_grant_create_response.rbs +4 -19
  354. data/sig/metronome_sdk/models/v1/credit_grant_edit_response.rbs +4 -19
  355. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_params.rbs +20 -0
  356. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_response.rbs +12 -118
  357. data/sig/metronome_sdk/models/v1/credit_grant_list_response.rbs +16 -140
  358. data/sig/metronome_sdk/models/v1/credit_grant_void_response.rbs +4 -19
  359. data/sig/metronome_sdk/models/v1/credit_ledger_entry.rbs +52 -0
  360. data/sig/metronome_sdk/models/v1/customer.rbs +44 -0
  361. data/sig/metronome_sdk/models/v1/customer_archive_params.rbs +4 -12
  362. data/sig/metronome_sdk/models/v1/customer_archive_response.rbs +4 -19
  363. data/sig/metronome_sdk/models/v1/customer_create_response.rbs +4 -48
  364. data/sig/metronome_sdk/models/v1/{customer_list_response.rbs → customer_detail.rbs} +17 -17
  365. data/sig/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbs +12 -73
  366. data/sig/metronome_sdk/models/v1/customer_preview_events_params.rbs +105 -0
  367. data/sig/metronome_sdk/models/v1/customer_preview_events_response.rbs +16 -0
  368. data/sig/metronome_sdk/models/v1/customer_retrieve_response.rbs +4 -112
  369. data/sig/metronome_sdk/models/v1/customer_set_name_response.rbs +4 -48
  370. data/sig/metronome_sdk/models/v1/customers/alert_list_response.rbs +4 -243
  371. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_response.rbs +4 -247
  372. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +7 -0
  373. data/sig/metronome_sdk/models/v1/customers/commit_create_response.rbs +4 -21
  374. data/sig/metronome_sdk/models/v1/customers/commit_list_params.rbs +7 -0
  375. data/sig/metronome_sdk/models/v1/customers/commit_list_response.rbs +4 -1057
  376. data/sig/metronome_sdk/models/v1/customers/commit_update_end_date_response.rbs +4 -21
  377. data/sig/metronome_sdk/models/v1/customers/credit_create_response.rbs +4 -21
  378. data/sig/metronome_sdk/models/v1/customers/credit_list_params.rbs +7 -0
  379. data/sig/metronome_sdk/models/v1/customers/credit_list_response.rbs +4 -596
  380. data/sig/metronome_sdk/models/v1/customers/credit_update_end_date_response.rbs +4 -21
  381. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +234 -0
  382. data/sig/metronome_sdk/models/v1/customers/{invoice_list_response.rbs → invoice.rbs} +147 -305
  383. data/sig/metronome_sdk/models/v1/customers/invoice_list_breakdowns_response.rbs +8 -1278
  384. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_response.rbs +4 -1294
  385. data/sig/metronome_sdk/models/v1/customers/plan_add_response.rbs +4 -19
  386. data/sig/metronome_sdk/models/v1/customers/plan_list_response.rbs +4 -16
  387. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +2 -1
  388. data/sig/metronome_sdk/models/v1/plan_detail.rbs +203 -0
  389. data/sig/metronome_sdk/models/v1/plan_get_details_response.rbs +4 -267
  390. data/sig/metronome_sdk/models/v1/plan_list_charges_response.rbs +4 -16
  391. data/sig/metronome_sdk/models/v1/plan_list_customers_response.rbs +4 -108
  392. data/sig/metronome_sdk/models/v1/rollover_amount_max_amount.rbs +37 -0
  393. data/sig/metronome_sdk/models/v1/rollover_amount_max_percentage.rbs +37 -0
  394. data/sig/metronome_sdk/models/v1/usage_search_params.rbs +26 -0
  395. data/sig/metronome_sdk/models/v1/usage_search_response.rbs +230 -0
  396. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +4 -8
  397. data/sig/metronome_sdk/models/v2/contract_edit_commit_response.rbs +4 -19
  398. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +4 -8
  399. data/sig/metronome_sdk/models/v2/contract_edit_credit_response.rbs +4 -19
  400. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +989 -77
  401. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +4 -19
  402. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +510 -655
  403. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +970 -809
  404. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +970 -809
  405. data/sig/metronome_sdk/models.rbs +32 -0
  406. data/sig/metronome_sdk/resources/v1/billable_metrics.rbs +2 -2
  407. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +4 -4
  408. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -1
  409. data/sig/metronome_sdk/resources/v1/contracts.rbs +4 -1
  410. data/sig/metronome_sdk/resources/v1/credit_grants.rbs +1 -0
  411. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +1 -0
  412. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +1 -0
  413. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -1
  414. data/sig/metronome_sdk/resources/v1/customers.rbs +9 -1
  415. data/sig/metronome_sdk/resources/v1/usage.rbs +5 -0
  416. data/sig/metronome_sdk/resources/v2/contracts.rbs +3 -2
  417. metadata +97 -10
@@ -0,0 +1,1314 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ class Credit < MetronomeSDK::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(MetronomeSDK::Credit, MetronomeSDK::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(String) }
12
+ attr_accessor :id
13
+
14
+ sig { returns(MetronomeSDK::Credit::Product) }
15
+ attr_reader :product
16
+
17
+ sig { params(product: MetronomeSDK::Credit::Product::OrHash).void }
18
+ attr_writer :product
19
+
20
+ sig { returns(MetronomeSDK::Credit::Type::TaggedSymbol) }
21
+ attr_accessor :type
22
+
23
+ # The schedule that the customer will gain access to the credits.
24
+ sig { returns(T.nilable(MetronomeSDK::ScheduleDuration)) }
25
+ attr_reader :access_schedule
26
+
27
+ sig do
28
+ params(access_schedule: MetronomeSDK::ScheduleDuration::OrHash).void
29
+ end
30
+ attr_writer :access_schedule
31
+
32
+ sig { returns(T.nilable(T::Array[String])) }
33
+ attr_reader :applicable_contract_ids
34
+
35
+ sig { params(applicable_contract_ids: T::Array[String]).void }
36
+ attr_writer :applicable_contract_ids
37
+
38
+ sig { returns(T.nilable(T::Array[String])) }
39
+ attr_reader :applicable_product_ids
40
+
41
+ sig { params(applicable_product_ids: T::Array[String]).void }
42
+ attr_writer :applicable_product_ids
43
+
44
+ sig { returns(T.nilable(T::Array[String])) }
45
+ attr_reader :applicable_product_tags
46
+
47
+ sig { params(applicable_product_tags: T::Array[String]).void }
48
+ attr_writer :applicable_product_tags
49
+
50
+ # The current balance of the credit or commit. This balance reflects the amount of
51
+ # credit or commit that the customer has access to use at this moment - thus,
52
+ # expired and upcoming credit or commit segments contribute 0 to the balance. The
53
+ # balance will match the sum of all ledger entries with the exception of the case
54
+ # where the sum of negative manual ledger entries exceeds the positive amount
55
+ # remaining on the credit or commit - in that case, the balance will be 0. All
56
+ # manual ledger entries associated with active credit or commit segments are
57
+ # included in the balance, including future-dated manual ledger entries.
58
+ sig { returns(T.nilable(Float)) }
59
+ attr_reader :balance
60
+
61
+ sig { params(balance: Float).void }
62
+ attr_writer :balance
63
+
64
+ sig { returns(T.nilable(MetronomeSDK::Credit::Contract)) }
65
+ attr_reader :contract
66
+
67
+ sig { params(contract: MetronomeSDK::Credit::Contract::OrHash).void }
68
+ attr_writer :contract
69
+
70
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
71
+ attr_reader :custom_fields
72
+
73
+ sig { params(custom_fields: T::Hash[Symbol, String]).void }
74
+ attr_writer :custom_fields
75
+
76
+ sig { returns(T.nilable(String)) }
77
+ attr_reader :description
78
+
79
+ sig { params(description: String).void }
80
+ attr_writer :description
81
+
82
+ # Optional configuration for credit hierarchy access control
83
+ sig { returns(T.nilable(MetronomeSDK::Credit::HierarchyConfiguration)) }
84
+ attr_reader :hierarchy_configuration
85
+
86
+ sig do
87
+ params(
88
+ hierarchy_configuration:
89
+ MetronomeSDK::Credit::HierarchyConfiguration::OrHash
90
+ ).void
91
+ end
92
+ attr_writer :hierarchy_configuration
93
+
94
+ # A list of ordered events that impact the balance of a credit. For example, an
95
+ # invoice deduction or an expiration.
96
+ sig do
97
+ returns(T.nilable(T::Array[MetronomeSDK::Credit::Ledger::Variants]))
98
+ end
99
+ attr_reader :ledger
100
+
101
+ sig do
102
+ params(
103
+ ledger:
104
+ T::Array[
105
+ T.any(
106
+ MetronomeSDK::Credit::Ledger::CreditSegmentStartLedgerEntry::OrHash,
107
+ MetronomeSDK::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry::OrHash,
108
+ MetronomeSDK::Credit::Ledger::CreditExpirationLedgerEntry::OrHash,
109
+ MetronomeSDK::Credit::Ledger::CreditCanceledLedgerEntry::OrHash,
110
+ MetronomeSDK::Credit::Ledger::CreditCreditedLedgerEntry::OrHash,
111
+ MetronomeSDK::Credit::Ledger::CreditManualLedgerEntry::OrHash,
112
+ MetronomeSDK::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::OrHash
113
+ )
114
+ ]
115
+ ).void
116
+ end
117
+ attr_writer :ledger
118
+
119
+ sig { returns(T.nilable(String)) }
120
+ attr_reader :name
121
+
122
+ sig { params(name: String).void }
123
+ attr_writer :name
124
+
125
+ # This field's availability is dependent on your client's configuration.
126
+ sig { returns(T.nilable(String)) }
127
+ attr_reader :netsuite_sales_order_id
128
+
129
+ sig { params(netsuite_sales_order_id: String).void }
130
+ attr_writer :netsuite_sales_order_id
131
+
132
+ # If multiple credits or commits are applicable, the one with the lower priority
133
+ # will apply first.
134
+ sig { returns(T.nilable(Float)) }
135
+ attr_reader :priority
136
+
137
+ sig { params(priority: Float).void }
138
+ attr_writer :priority
139
+
140
+ sig { returns(T.nilable(MetronomeSDK::Credit::RateType::TaggedSymbol)) }
141
+ attr_reader :rate_type
142
+
143
+ sig { params(rate_type: MetronomeSDK::Credit::RateType::OrSymbol).void }
144
+ attr_writer :rate_type
145
+
146
+ # This field's availability is dependent on your client's configuration.
147
+ sig { returns(T.nilable(String)) }
148
+ attr_reader :salesforce_opportunity_id
149
+
150
+ sig { params(salesforce_opportunity_id: String).void }
151
+ attr_writer :salesforce_opportunity_id
152
+
153
+ # List of filters that determine what kind of customer usage draws down a commit
154
+ # or credit. A customer's usage needs to meet the condition of at least one of the
155
+ # specifiers to contribute to a commit's or credit's drawdown.
156
+ sig { returns(T.nilable(T::Array[MetronomeSDK::Credit::Specifier])) }
157
+ attr_reader :specifiers
158
+
159
+ sig do
160
+ params(
161
+ specifiers: T::Array[MetronomeSDK::Credit::Specifier::OrHash]
162
+ ).void
163
+ end
164
+ attr_writer :specifiers
165
+
166
+ # Prevents the creation of duplicates. If a request to create a commit or credit
167
+ # is made with a uniqueness key that was previously used to create a commit or
168
+ # credit, a new record will not be created and the request will fail with a 409
169
+ # error.
170
+ sig { returns(T.nilable(String)) }
171
+ attr_reader :uniqueness_key
172
+
173
+ sig { params(uniqueness_key: String).void }
174
+ attr_writer :uniqueness_key
175
+
176
+ sig do
177
+ params(
178
+ id: String,
179
+ product: MetronomeSDK::Credit::Product::OrHash,
180
+ type: MetronomeSDK::Credit::Type::OrSymbol,
181
+ access_schedule: MetronomeSDK::ScheduleDuration::OrHash,
182
+ applicable_contract_ids: T::Array[String],
183
+ applicable_product_ids: T::Array[String],
184
+ applicable_product_tags: T::Array[String],
185
+ balance: Float,
186
+ contract: MetronomeSDK::Credit::Contract::OrHash,
187
+ custom_fields: T::Hash[Symbol, String],
188
+ description: String,
189
+ hierarchy_configuration:
190
+ MetronomeSDK::Credit::HierarchyConfiguration::OrHash,
191
+ ledger:
192
+ T::Array[
193
+ T.any(
194
+ MetronomeSDK::Credit::Ledger::CreditSegmentStartLedgerEntry::OrHash,
195
+ MetronomeSDK::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry::OrHash,
196
+ MetronomeSDK::Credit::Ledger::CreditExpirationLedgerEntry::OrHash,
197
+ MetronomeSDK::Credit::Ledger::CreditCanceledLedgerEntry::OrHash,
198
+ MetronomeSDK::Credit::Ledger::CreditCreditedLedgerEntry::OrHash,
199
+ MetronomeSDK::Credit::Ledger::CreditManualLedgerEntry::OrHash,
200
+ MetronomeSDK::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::OrHash
201
+ )
202
+ ],
203
+ name: String,
204
+ netsuite_sales_order_id: String,
205
+ priority: Float,
206
+ rate_type: MetronomeSDK::Credit::RateType::OrSymbol,
207
+ salesforce_opportunity_id: String,
208
+ specifiers: T::Array[MetronomeSDK::Credit::Specifier::OrHash],
209
+ uniqueness_key: String
210
+ ).returns(T.attached_class)
211
+ end
212
+ def self.new(
213
+ id:,
214
+ product:,
215
+ type:,
216
+ # The schedule that the customer will gain access to the credits.
217
+ access_schedule: nil,
218
+ applicable_contract_ids: nil,
219
+ applicable_product_ids: nil,
220
+ applicable_product_tags: nil,
221
+ # The current balance of the credit or commit. This balance reflects the amount of
222
+ # credit or commit that the customer has access to use at this moment - thus,
223
+ # expired and upcoming credit or commit segments contribute 0 to the balance. The
224
+ # balance will match the sum of all ledger entries with the exception of the case
225
+ # where the sum of negative manual ledger entries exceeds the positive amount
226
+ # remaining on the credit or commit - in that case, the balance will be 0. All
227
+ # manual ledger entries associated with active credit or commit segments are
228
+ # included in the balance, including future-dated manual ledger entries.
229
+ balance: nil,
230
+ contract: nil,
231
+ custom_fields: nil,
232
+ description: nil,
233
+ # Optional configuration for credit hierarchy access control
234
+ hierarchy_configuration: nil,
235
+ # A list of ordered events that impact the balance of a credit. For example, an
236
+ # invoice deduction or an expiration.
237
+ ledger: nil,
238
+ name: nil,
239
+ # This field's availability is dependent on your client's configuration.
240
+ netsuite_sales_order_id: nil,
241
+ # If multiple credits or commits are applicable, the one with the lower priority
242
+ # will apply first.
243
+ priority: nil,
244
+ rate_type: nil,
245
+ # This field's availability is dependent on your client's configuration.
246
+ salesforce_opportunity_id: nil,
247
+ # List of filters that determine what kind of customer usage draws down a commit
248
+ # or credit. A customer's usage needs to meet the condition of at least one of the
249
+ # specifiers to contribute to a commit's or credit's drawdown.
250
+ specifiers: nil,
251
+ # Prevents the creation of duplicates. If a request to create a commit or credit
252
+ # is made with a uniqueness key that was previously used to create a commit or
253
+ # credit, a new record will not be created and the request will fail with a 409
254
+ # error.
255
+ uniqueness_key: nil
256
+ )
257
+ end
258
+
259
+ sig do
260
+ override.returns(
261
+ {
262
+ id: String,
263
+ product: MetronomeSDK::Credit::Product,
264
+ type: MetronomeSDK::Credit::Type::TaggedSymbol,
265
+ access_schedule: MetronomeSDK::ScheduleDuration,
266
+ applicable_contract_ids: T::Array[String],
267
+ applicable_product_ids: T::Array[String],
268
+ applicable_product_tags: T::Array[String],
269
+ balance: Float,
270
+ contract: MetronomeSDK::Credit::Contract,
271
+ custom_fields: T::Hash[Symbol, String],
272
+ description: String,
273
+ hierarchy_configuration:
274
+ MetronomeSDK::Credit::HierarchyConfiguration,
275
+ ledger: T::Array[MetronomeSDK::Credit::Ledger::Variants],
276
+ name: String,
277
+ netsuite_sales_order_id: String,
278
+ priority: Float,
279
+ rate_type: MetronomeSDK::Credit::RateType::TaggedSymbol,
280
+ salesforce_opportunity_id: String,
281
+ specifiers: T::Array[MetronomeSDK::Credit::Specifier],
282
+ uniqueness_key: String
283
+ }
284
+ )
285
+ end
286
+ def to_hash
287
+ end
288
+
289
+ class Product < MetronomeSDK::Internal::Type::BaseModel
290
+ OrHash =
291
+ T.type_alias do
292
+ T.any(
293
+ MetronomeSDK::Credit::Product,
294
+ MetronomeSDK::Internal::AnyHash
295
+ )
296
+ end
297
+
298
+ sig { returns(String) }
299
+ attr_accessor :id
300
+
301
+ sig { returns(String) }
302
+ attr_accessor :name
303
+
304
+ sig { params(id: String, name: String).returns(T.attached_class) }
305
+ def self.new(id:, name:)
306
+ end
307
+
308
+ sig { override.returns({ id: String, name: String }) }
309
+ def to_hash
310
+ end
311
+ end
312
+
313
+ module Type
314
+ extend MetronomeSDK::Internal::Type::Enum
315
+
316
+ TaggedSymbol =
317
+ T.type_alias { T.all(Symbol, MetronomeSDK::Credit::Type) }
318
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
319
+
320
+ CREDIT = T.let(:CREDIT, MetronomeSDK::Credit::Type::TaggedSymbol)
321
+
322
+ sig do
323
+ override.returns(T::Array[MetronomeSDK::Credit::Type::TaggedSymbol])
324
+ end
325
+ def self.values
326
+ end
327
+ end
328
+
329
+ class Contract < MetronomeSDK::Internal::Type::BaseModel
330
+ OrHash =
331
+ T.type_alias do
332
+ T.any(
333
+ MetronomeSDK::Credit::Contract,
334
+ MetronomeSDK::Internal::AnyHash
335
+ )
336
+ end
337
+
338
+ sig { returns(String) }
339
+ attr_accessor :id
340
+
341
+ sig { params(id: String).returns(T.attached_class) }
342
+ def self.new(id:)
343
+ end
344
+
345
+ sig { override.returns({ id: String }) }
346
+ def to_hash
347
+ end
348
+ end
349
+
350
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
351
+ OrHash =
352
+ T.type_alias do
353
+ T.any(
354
+ MetronomeSDK::Credit::HierarchyConfiguration,
355
+ MetronomeSDK::Internal::AnyHash
356
+ )
357
+ end
358
+
359
+ sig do
360
+ returns(
361
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::Variants
362
+ )
363
+ end
364
+ attr_accessor :child_access
365
+
366
+ # Optional configuration for credit hierarchy access control
367
+ sig do
368
+ params(
369
+ child_access:
370
+ T.any(
371
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
372
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
373
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
374
+ )
375
+ ).returns(T.attached_class)
376
+ end
377
+ def self.new(child_access:)
378
+ end
379
+
380
+ sig do
381
+ override.returns(
382
+ {
383
+ child_access:
384
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::Variants
385
+ }
386
+ )
387
+ end
388
+ def to_hash
389
+ end
390
+
391
+ module ChildAccess
392
+ extend MetronomeSDK::Internal::Type::Union
393
+
394
+ Variants =
395
+ T.type_alias do
396
+ T.any(
397
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
398
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
399
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
400
+ )
401
+ end
402
+
403
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
404
+ OrHash =
405
+ T.type_alias do
406
+ T.any(
407
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
408
+ MetronomeSDK::Internal::AnyHash
409
+ )
410
+ end
411
+
412
+ sig do
413
+ returns(
414
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
415
+ )
416
+ end
417
+ attr_accessor :type
418
+
419
+ sig do
420
+ params(
421
+ type:
422
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
423
+ ).returns(T.attached_class)
424
+ end
425
+ def self.new(type:)
426
+ end
427
+
428
+ sig do
429
+ override.returns(
430
+ {
431
+ type:
432
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
433
+ }
434
+ )
435
+ end
436
+ def to_hash
437
+ end
438
+
439
+ module Type
440
+ extend MetronomeSDK::Internal::Type::Enum
441
+
442
+ TaggedSymbol =
443
+ T.type_alias do
444
+ T.all(
445
+ Symbol,
446
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
447
+ )
448
+ end
449
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
450
+
451
+ ALL =
452
+ T.let(
453
+ :ALL,
454
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
455
+ )
456
+
457
+ sig do
458
+ override.returns(
459
+ T::Array[
460
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
461
+ ]
462
+ )
463
+ end
464
+ def self.values
465
+ end
466
+ end
467
+ end
468
+
469
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
470
+ OrHash =
471
+ T.type_alias do
472
+ T.any(
473
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
474
+ MetronomeSDK::Internal::AnyHash
475
+ )
476
+ end
477
+
478
+ sig do
479
+ returns(
480
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
481
+ )
482
+ end
483
+ attr_accessor :type
484
+
485
+ sig do
486
+ params(
487
+ type:
488
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
489
+ ).returns(T.attached_class)
490
+ end
491
+ def self.new(type:)
492
+ end
493
+
494
+ sig do
495
+ override.returns(
496
+ {
497
+ type:
498
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
499
+ }
500
+ )
501
+ end
502
+ def to_hash
503
+ end
504
+
505
+ module Type
506
+ extend MetronomeSDK::Internal::Type::Enum
507
+
508
+ TaggedSymbol =
509
+ T.type_alias do
510
+ T.all(
511
+ Symbol,
512
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
513
+ )
514
+ end
515
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
516
+
517
+ NONE =
518
+ T.let(
519
+ :NONE,
520
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
521
+ )
522
+
523
+ sig do
524
+ override.returns(
525
+ T::Array[
526
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
527
+ ]
528
+ )
529
+ end
530
+ def self.values
531
+ end
532
+ end
533
+ end
534
+
535
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
536
+ OrHash =
537
+ T.type_alias do
538
+ T.any(
539
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
540
+ MetronomeSDK::Internal::AnyHash
541
+ )
542
+ end
543
+
544
+ sig { returns(T::Array[String]) }
545
+ attr_accessor :contract_ids
546
+
547
+ sig do
548
+ returns(
549
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
550
+ )
551
+ end
552
+ attr_accessor :type
553
+
554
+ sig do
555
+ params(
556
+ contract_ids: T::Array[String],
557
+ type:
558
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
559
+ ).returns(T.attached_class)
560
+ end
561
+ def self.new(contract_ids:, type:)
562
+ end
563
+
564
+ sig do
565
+ override.returns(
566
+ {
567
+ contract_ids: T::Array[String],
568
+ type:
569
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
570
+ }
571
+ )
572
+ end
573
+ def to_hash
574
+ end
575
+
576
+ module Type
577
+ extend MetronomeSDK::Internal::Type::Enum
578
+
579
+ TaggedSymbol =
580
+ T.type_alias do
581
+ T.all(
582
+ Symbol,
583
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
584
+ )
585
+ end
586
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
587
+
588
+ CONTRACT_IDS =
589
+ T.let(
590
+ :CONTRACT_IDS,
591
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
592
+ )
593
+
594
+ sig do
595
+ override.returns(
596
+ T::Array[
597
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
598
+ ]
599
+ )
600
+ end
601
+ def self.values
602
+ end
603
+ end
604
+ end
605
+
606
+ sig do
607
+ override.returns(
608
+ T::Array[
609
+ MetronomeSDK::Credit::HierarchyConfiguration::ChildAccess::Variants
610
+ ]
611
+ )
612
+ end
613
+ def self.variants
614
+ end
615
+ end
616
+ end
617
+
618
+ module Ledger
619
+ extend MetronomeSDK::Internal::Type::Union
620
+
621
+ Variants =
622
+ T.type_alias do
623
+ T.any(
624
+ MetronomeSDK::Credit::Ledger::CreditSegmentStartLedgerEntry,
625
+ MetronomeSDK::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry,
626
+ MetronomeSDK::Credit::Ledger::CreditExpirationLedgerEntry,
627
+ MetronomeSDK::Credit::Ledger::CreditCanceledLedgerEntry,
628
+ MetronomeSDK::Credit::Ledger::CreditCreditedLedgerEntry,
629
+ MetronomeSDK::Credit::Ledger::CreditManualLedgerEntry,
630
+ MetronomeSDK::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry
631
+ )
632
+ end
633
+
634
+ class CreditSegmentStartLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
635
+ OrHash =
636
+ T.type_alias do
637
+ T.any(
638
+ MetronomeSDK::Credit::Ledger::CreditSegmentStartLedgerEntry,
639
+ MetronomeSDK::Internal::AnyHash
640
+ )
641
+ end
642
+
643
+ sig { returns(Float) }
644
+ attr_accessor :amount
645
+
646
+ sig { returns(String) }
647
+ attr_accessor :segment_id
648
+
649
+ sig { returns(Time) }
650
+ attr_accessor :timestamp
651
+
652
+ sig do
653
+ returns(
654
+ MetronomeSDK::Credit::Ledger::CreditSegmentStartLedgerEntry::Type::TaggedSymbol
655
+ )
656
+ end
657
+ attr_accessor :type
658
+
659
+ sig do
660
+ params(
661
+ amount: Float,
662
+ segment_id: String,
663
+ timestamp: Time,
664
+ type:
665
+ MetronomeSDK::Credit::Ledger::CreditSegmentStartLedgerEntry::Type::OrSymbol
666
+ ).returns(T.attached_class)
667
+ end
668
+ def self.new(amount:, segment_id:, timestamp:, type:)
669
+ end
670
+
671
+ sig do
672
+ override.returns(
673
+ {
674
+ amount: Float,
675
+ segment_id: String,
676
+ timestamp: Time,
677
+ type:
678
+ MetronomeSDK::Credit::Ledger::CreditSegmentStartLedgerEntry::Type::TaggedSymbol
679
+ }
680
+ )
681
+ end
682
+ def to_hash
683
+ end
684
+
685
+ module Type
686
+ extend MetronomeSDK::Internal::Type::Enum
687
+
688
+ TaggedSymbol =
689
+ T.type_alias do
690
+ T.all(
691
+ Symbol,
692
+ MetronomeSDK::Credit::Ledger::CreditSegmentStartLedgerEntry::Type
693
+ )
694
+ end
695
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
696
+
697
+ CREDIT_SEGMENT_START =
698
+ T.let(
699
+ :CREDIT_SEGMENT_START,
700
+ MetronomeSDK::Credit::Ledger::CreditSegmentStartLedgerEntry::Type::TaggedSymbol
701
+ )
702
+
703
+ sig do
704
+ override.returns(
705
+ T::Array[
706
+ MetronomeSDK::Credit::Ledger::CreditSegmentStartLedgerEntry::Type::TaggedSymbol
707
+ ]
708
+ )
709
+ end
710
+ def self.values
711
+ end
712
+ end
713
+ end
714
+
715
+ class CreditAutomatedInvoiceDeductionLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
716
+ OrHash =
717
+ T.type_alias do
718
+ T.any(
719
+ MetronomeSDK::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry,
720
+ MetronomeSDK::Internal::AnyHash
721
+ )
722
+ end
723
+
724
+ sig { returns(Float) }
725
+ attr_accessor :amount
726
+
727
+ sig { returns(String) }
728
+ attr_accessor :invoice_id
729
+
730
+ sig { returns(String) }
731
+ attr_accessor :segment_id
732
+
733
+ sig { returns(Time) }
734
+ attr_accessor :timestamp
735
+
736
+ sig do
737
+ returns(
738
+ MetronomeSDK::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry::Type::TaggedSymbol
739
+ )
740
+ end
741
+ attr_accessor :type
742
+
743
+ sig do
744
+ params(
745
+ amount: Float,
746
+ invoice_id: String,
747
+ segment_id: String,
748
+ timestamp: Time,
749
+ type:
750
+ MetronomeSDK::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry::Type::OrSymbol
751
+ ).returns(T.attached_class)
752
+ end
753
+ def self.new(amount:, invoice_id:, segment_id:, timestamp:, type:)
754
+ end
755
+
756
+ sig do
757
+ override.returns(
758
+ {
759
+ amount: Float,
760
+ invoice_id: String,
761
+ segment_id: String,
762
+ timestamp: Time,
763
+ type:
764
+ MetronomeSDK::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry::Type::TaggedSymbol
765
+ }
766
+ )
767
+ end
768
+ def to_hash
769
+ end
770
+
771
+ module Type
772
+ extend MetronomeSDK::Internal::Type::Enum
773
+
774
+ TaggedSymbol =
775
+ T.type_alias do
776
+ T.all(
777
+ Symbol,
778
+ MetronomeSDK::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry::Type
779
+ )
780
+ end
781
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
782
+
783
+ CREDIT_AUTOMATED_INVOICE_DEDUCTION =
784
+ T.let(
785
+ :CREDIT_AUTOMATED_INVOICE_DEDUCTION,
786
+ MetronomeSDK::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry::Type::TaggedSymbol
787
+ )
788
+
789
+ sig do
790
+ override.returns(
791
+ T::Array[
792
+ MetronomeSDK::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry::Type::TaggedSymbol
793
+ ]
794
+ )
795
+ end
796
+ def self.values
797
+ end
798
+ end
799
+ end
800
+
801
+ class CreditExpirationLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
802
+ OrHash =
803
+ T.type_alias do
804
+ T.any(
805
+ MetronomeSDK::Credit::Ledger::CreditExpirationLedgerEntry,
806
+ MetronomeSDK::Internal::AnyHash
807
+ )
808
+ end
809
+
810
+ sig { returns(Float) }
811
+ attr_accessor :amount
812
+
813
+ sig { returns(String) }
814
+ attr_accessor :segment_id
815
+
816
+ sig { returns(Time) }
817
+ attr_accessor :timestamp
818
+
819
+ sig do
820
+ returns(
821
+ MetronomeSDK::Credit::Ledger::CreditExpirationLedgerEntry::Type::TaggedSymbol
822
+ )
823
+ end
824
+ attr_accessor :type
825
+
826
+ sig do
827
+ params(
828
+ amount: Float,
829
+ segment_id: String,
830
+ timestamp: Time,
831
+ type:
832
+ MetronomeSDK::Credit::Ledger::CreditExpirationLedgerEntry::Type::OrSymbol
833
+ ).returns(T.attached_class)
834
+ end
835
+ def self.new(amount:, segment_id:, timestamp:, type:)
836
+ end
837
+
838
+ sig do
839
+ override.returns(
840
+ {
841
+ amount: Float,
842
+ segment_id: String,
843
+ timestamp: Time,
844
+ type:
845
+ MetronomeSDK::Credit::Ledger::CreditExpirationLedgerEntry::Type::TaggedSymbol
846
+ }
847
+ )
848
+ end
849
+ def to_hash
850
+ end
851
+
852
+ module Type
853
+ extend MetronomeSDK::Internal::Type::Enum
854
+
855
+ TaggedSymbol =
856
+ T.type_alias do
857
+ T.all(
858
+ Symbol,
859
+ MetronomeSDK::Credit::Ledger::CreditExpirationLedgerEntry::Type
860
+ )
861
+ end
862
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
863
+
864
+ CREDIT_EXPIRATION =
865
+ T.let(
866
+ :CREDIT_EXPIRATION,
867
+ MetronomeSDK::Credit::Ledger::CreditExpirationLedgerEntry::Type::TaggedSymbol
868
+ )
869
+
870
+ sig do
871
+ override.returns(
872
+ T::Array[
873
+ MetronomeSDK::Credit::Ledger::CreditExpirationLedgerEntry::Type::TaggedSymbol
874
+ ]
875
+ )
876
+ end
877
+ def self.values
878
+ end
879
+ end
880
+ end
881
+
882
+ class CreditCanceledLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
883
+ OrHash =
884
+ T.type_alias do
885
+ T.any(
886
+ MetronomeSDK::Credit::Ledger::CreditCanceledLedgerEntry,
887
+ MetronomeSDK::Internal::AnyHash
888
+ )
889
+ end
890
+
891
+ sig { returns(Float) }
892
+ attr_accessor :amount
893
+
894
+ sig { returns(String) }
895
+ attr_accessor :invoice_id
896
+
897
+ sig { returns(String) }
898
+ attr_accessor :segment_id
899
+
900
+ sig { returns(Time) }
901
+ attr_accessor :timestamp
902
+
903
+ sig do
904
+ returns(
905
+ MetronomeSDK::Credit::Ledger::CreditCanceledLedgerEntry::Type::TaggedSymbol
906
+ )
907
+ end
908
+ attr_accessor :type
909
+
910
+ sig do
911
+ params(
912
+ amount: Float,
913
+ invoice_id: String,
914
+ segment_id: String,
915
+ timestamp: Time,
916
+ type:
917
+ MetronomeSDK::Credit::Ledger::CreditCanceledLedgerEntry::Type::OrSymbol
918
+ ).returns(T.attached_class)
919
+ end
920
+ def self.new(amount:, invoice_id:, segment_id:, timestamp:, type:)
921
+ end
922
+
923
+ sig do
924
+ override.returns(
925
+ {
926
+ amount: Float,
927
+ invoice_id: String,
928
+ segment_id: String,
929
+ timestamp: Time,
930
+ type:
931
+ MetronomeSDK::Credit::Ledger::CreditCanceledLedgerEntry::Type::TaggedSymbol
932
+ }
933
+ )
934
+ end
935
+ def to_hash
936
+ end
937
+
938
+ module Type
939
+ extend MetronomeSDK::Internal::Type::Enum
940
+
941
+ TaggedSymbol =
942
+ T.type_alias do
943
+ T.all(
944
+ Symbol,
945
+ MetronomeSDK::Credit::Ledger::CreditCanceledLedgerEntry::Type
946
+ )
947
+ end
948
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
949
+
950
+ CREDIT_CANCELED =
951
+ T.let(
952
+ :CREDIT_CANCELED,
953
+ MetronomeSDK::Credit::Ledger::CreditCanceledLedgerEntry::Type::TaggedSymbol
954
+ )
955
+
956
+ sig do
957
+ override.returns(
958
+ T::Array[
959
+ MetronomeSDK::Credit::Ledger::CreditCanceledLedgerEntry::Type::TaggedSymbol
960
+ ]
961
+ )
962
+ end
963
+ def self.values
964
+ end
965
+ end
966
+ end
967
+
968
+ class CreditCreditedLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
969
+ OrHash =
970
+ T.type_alias do
971
+ T.any(
972
+ MetronomeSDK::Credit::Ledger::CreditCreditedLedgerEntry,
973
+ MetronomeSDK::Internal::AnyHash
974
+ )
975
+ end
976
+
977
+ sig { returns(Float) }
978
+ attr_accessor :amount
979
+
980
+ sig { returns(String) }
981
+ attr_accessor :invoice_id
982
+
983
+ sig { returns(String) }
984
+ attr_accessor :segment_id
985
+
986
+ sig { returns(Time) }
987
+ attr_accessor :timestamp
988
+
989
+ sig do
990
+ returns(
991
+ MetronomeSDK::Credit::Ledger::CreditCreditedLedgerEntry::Type::TaggedSymbol
992
+ )
993
+ end
994
+ attr_accessor :type
995
+
996
+ sig do
997
+ params(
998
+ amount: Float,
999
+ invoice_id: String,
1000
+ segment_id: String,
1001
+ timestamp: Time,
1002
+ type:
1003
+ MetronomeSDK::Credit::Ledger::CreditCreditedLedgerEntry::Type::OrSymbol
1004
+ ).returns(T.attached_class)
1005
+ end
1006
+ def self.new(amount:, invoice_id:, segment_id:, timestamp:, type:)
1007
+ end
1008
+
1009
+ sig do
1010
+ override.returns(
1011
+ {
1012
+ amount: Float,
1013
+ invoice_id: String,
1014
+ segment_id: String,
1015
+ timestamp: Time,
1016
+ type:
1017
+ MetronomeSDK::Credit::Ledger::CreditCreditedLedgerEntry::Type::TaggedSymbol
1018
+ }
1019
+ )
1020
+ end
1021
+ def to_hash
1022
+ end
1023
+
1024
+ module Type
1025
+ extend MetronomeSDK::Internal::Type::Enum
1026
+
1027
+ TaggedSymbol =
1028
+ T.type_alias do
1029
+ T.all(
1030
+ Symbol,
1031
+ MetronomeSDK::Credit::Ledger::CreditCreditedLedgerEntry::Type
1032
+ )
1033
+ end
1034
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1035
+
1036
+ CREDIT_CREDITED =
1037
+ T.let(
1038
+ :CREDIT_CREDITED,
1039
+ MetronomeSDK::Credit::Ledger::CreditCreditedLedgerEntry::Type::TaggedSymbol
1040
+ )
1041
+
1042
+ sig do
1043
+ override.returns(
1044
+ T::Array[
1045
+ MetronomeSDK::Credit::Ledger::CreditCreditedLedgerEntry::Type::TaggedSymbol
1046
+ ]
1047
+ )
1048
+ end
1049
+ def self.values
1050
+ end
1051
+ end
1052
+ end
1053
+
1054
+ class CreditManualLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
1055
+ OrHash =
1056
+ T.type_alias do
1057
+ T.any(
1058
+ MetronomeSDK::Credit::Ledger::CreditManualLedgerEntry,
1059
+ MetronomeSDK::Internal::AnyHash
1060
+ )
1061
+ end
1062
+
1063
+ sig { returns(Float) }
1064
+ attr_accessor :amount
1065
+
1066
+ sig { returns(String) }
1067
+ attr_accessor :reason
1068
+
1069
+ sig { returns(Time) }
1070
+ attr_accessor :timestamp
1071
+
1072
+ sig do
1073
+ returns(
1074
+ MetronomeSDK::Credit::Ledger::CreditManualLedgerEntry::Type::TaggedSymbol
1075
+ )
1076
+ end
1077
+ attr_accessor :type
1078
+
1079
+ sig do
1080
+ params(
1081
+ amount: Float,
1082
+ reason: String,
1083
+ timestamp: Time,
1084
+ type:
1085
+ MetronomeSDK::Credit::Ledger::CreditManualLedgerEntry::Type::OrSymbol
1086
+ ).returns(T.attached_class)
1087
+ end
1088
+ def self.new(amount:, reason:, timestamp:, type:)
1089
+ end
1090
+
1091
+ sig do
1092
+ override.returns(
1093
+ {
1094
+ amount: Float,
1095
+ reason: String,
1096
+ timestamp: Time,
1097
+ type:
1098
+ MetronomeSDK::Credit::Ledger::CreditManualLedgerEntry::Type::TaggedSymbol
1099
+ }
1100
+ )
1101
+ end
1102
+ def to_hash
1103
+ end
1104
+
1105
+ module Type
1106
+ extend MetronomeSDK::Internal::Type::Enum
1107
+
1108
+ TaggedSymbol =
1109
+ T.type_alias do
1110
+ T.all(
1111
+ Symbol,
1112
+ MetronomeSDK::Credit::Ledger::CreditManualLedgerEntry::Type
1113
+ )
1114
+ end
1115
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1116
+
1117
+ CREDIT_MANUAL =
1118
+ T.let(
1119
+ :CREDIT_MANUAL,
1120
+ MetronomeSDK::Credit::Ledger::CreditManualLedgerEntry::Type::TaggedSymbol
1121
+ )
1122
+
1123
+ sig do
1124
+ override.returns(
1125
+ T::Array[
1126
+ MetronomeSDK::Credit::Ledger::CreditManualLedgerEntry::Type::TaggedSymbol
1127
+ ]
1128
+ )
1129
+ end
1130
+ def self.values
1131
+ end
1132
+ end
1133
+ end
1134
+
1135
+ class CreditSeatBasedAdjustmentLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
1136
+ OrHash =
1137
+ T.type_alias do
1138
+ T.any(
1139
+ MetronomeSDK::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry,
1140
+ MetronomeSDK::Internal::AnyHash
1141
+ )
1142
+ end
1143
+
1144
+ sig { returns(Float) }
1145
+ attr_accessor :amount
1146
+
1147
+ sig { returns(String) }
1148
+ attr_accessor :segment_id
1149
+
1150
+ sig { returns(Time) }
1151
+ attr_accessor :timestamp
1152
+
1153
+ sig do
1154
+ returns(
1155
+ MetronomeSDK::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::Type::TaggedSymbol
1156
+ )
1157
+ end
1158
+ attr_accessor :type
1159
+
1160
+ sig do
1161
+ params(
1162
+ amount: Float,
1163
+ segment_id: String,
1164
+ timestamp: Time,
1165
+ type:
1166
+ MetronomeSDK::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::Type::OrSymbol
1167
+ ).returns(T.attached_class)
1168
+ end
1169
+ def self.new(amount:, segment_id:, timestamp:, type:)
1170
+ end
1171
+
1172
+ sig do
1173
+ override.returns(
1174
+ {
1175
+ amount: Float,
1176
+ segment_id: String,
1177
+ timestamp: Time,
1178
+ type:
1179
+ MetronomeSDK::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::Type::TaggedSymbol
1180
+ }
1181
+ )
1182
+ end
1183
+ def to_hash
1184
+ end
1185
+
1186
+ module Type
1187
+ extend MetronomeSDK::Internal::Type::Enum
1188
+
1189
+ TaggedSymbol =
1190
+ T.type_alias do
1191
+ T.all(
1192
+ Symbol,
1193
+ MetronomeSDK::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::Type
1194
+ )
1195
+ end
1196
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1197
+
1198
+ CREDIT_SEAT_BASED_ADJUSTMENT =
1199
+ T.let(
1200
+ :CREDIT_SEAT_BASED_ADJUSTMENT,
1201
+ MetronomeSDK::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::Type::TaggedSymbol
1202
+ )
1203
+
1204
+ sig do
1205
+ override.returns(
1206
+ T::Array[
1207
+ MetronomeSDK::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::Type::TaggedSymbol
1208
+ ]
1209
+ )
1210
+ end
1211
+ def self.values
1212
+ end
1213
+ end
1214
+ end
1215
+
1216
+ sig do
1217
+ override.returns(T::Array[MetronomeSDK::Credit::Ledger::Variants])
1218
+ end
1219
+ def self.variants
1220
+ end
1221
+ end
1222
+
1223
+ module RateType
1224
+ extend MetronomeSDK::Internal::Type::Enum
1225
+
1226
+ TaggedSymbol =
1227
+ T.type_alias { T.all(Symbol, MetronomeSDK::Credit::RateType) }
1228
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1229
+
1230
+ COMMIT_RATE =
1231
+ T.let(:COMMIT_RATE, MetronomeSDK::Credit::RateType::TaggedSymbol)
1232
+ LIST_RATE =
1233
+ T.let(:LIST_RATE, MetronomeSDK::Credit::RateType::TaggedSymbol)
1234
+
1235
+ sig do
1236
+ override.returns(
1237
+ T::Array[MetronomeSDK::Credit::RateType::TaggedSymbol]
1238
+ )
1239
+ end
1240
+ def self.values
1241
+ end
1242
+ end
1243
+
1244
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
1245
+ OrHash =
1246
+ T.type_alias do
1247
+ T.any(
1248
+ MetronomeSDK::Credit::Specifier,
1249
+ MetronomeSDK::Internal::AnyHash
1250
+ )
1251
+ end
1252
+
1253
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
1254
+ attr_reader :presentation_group_values
1255
+
1256
+ sig { params(presentation_group_values: T::Hash[Symbol, String]).void }
1257
+ attr_writer :presentation_group_values
1258
+
1259
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
1260
+ attr_reader :pricing_group_values
1261
+
1262
+ sig { params(pricing_group_values: T::Hash[Symbol, String]).void }
1263
+ attr_writer :pricing_group_values
1264
+
1265
+ # If provided, the specifier will only apply to the product with the specified ID.
1266
+ sig { returns(T.nilable(String)) }
1267
+ attr_reader :product_id
1268
+
1269
+ sig { params(product_id: String).void }
1270
+ attr_writer :product_id
1271
+
1272
+ # If provided, the specifier will only apply to products with all the specified
1273
+ # tags.
1274
+ sig { returns(T.nilable(T::Array[String])) }
1275
+ attr_reader :product_tags
1276
+
1277
+ sig { params(product_tags: T::Array[String]).void }
1278
+ attr_writer :product_tags
1279
+
1280
+ sig do
1281
+ params(
1282
+ presentation_group_values: T::Hash[Symbol, String],
1283
+ pricing_group_values: T::Hash[Symbol, String],
1284
+ product_id: String,
1285
+ product_tags: T::Array[String]
1286
+ ).returns(T.attached_class)
1287
+ end
1288
+ def self.new(
1289
+ presentation_group_values: nil,
1290
+ pricing_group_values: nil,
1291
+ # If provided, the specifier will only apply to the product with the specified ID.
1292
+ product_id: nil,
1293
+ # If provided, the specifier will only apply to products with all the specified
1294
+ # tags.
1295
+ product_tags: nil
1296
+ )
1297
+ end
1298
+
1299
+ sig do
1300
+ override.returns(
1301
+ {
1302
+ presentation_group_values: T::Hash[Symbol, String],
1303
+ pricing_group_values: T::Hash[Symbol, String],
1304
+ product_id: String,
1305
+ product_tags: T::Array[String]
1306
+ }
1307
+ )
1308
+ end
1309
+ def to_hash
1310
+ end
1311
+ end
1312
+ end
1313
+ end
1314
+ end