metronome-sdk 0.1.0.pre.alpha.3 → 0.1.0.pre.alpha.4

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