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
@@ -60,32 +60,24 @@ module MetronomeSDK
60
60
  sig { returns(String) }
61
61
  attr_accessor :id
62
62
 
63
- sig do
64
- returns(
65
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current
66
- )
67
- end
63
+ sig { returns(MetronomeSDK::V1::Contracts::ProductListItemState) }
68
64
  attr_reader :current
69
65
 
70
66
  sig do
71
67
  params(
72
68
  current:
73
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::OrHash
69
+ MetronomeSDK::V1::Contracts::ProductListItemState::OrHash
74
70
  ).void
75
71
  end
76
72
  attr_writer :current
77
73
 
78
- sig do
79
- returns(
80
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial
81
- )
82
- end
74
+ sig { returns(MetronomeSDK::V1::Contracts::ProductListItemState) }
83
75
  attr_reader :initial
84
76
 
85
77
  sig do
86
78
  params(
87
79
  initial:
88
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::OrHash
80
+ MetronomeSDK::V1::Contracts::ProductListItemState::OrHash
89
81
  ).void
90
82
  end
91
83
  attr_writer :initial
@@ -119,9 +111,9 @@ module MetronomeSDK
119
111
  params(
120
112
  id: String,
121
113
  current:
122
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::OrHash,
114
+ MetronomeSDK::V1::Contracts::ProductListItemState::OrHash,
123
115
  initial:
124
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::OrHash,
116
+ MetronomeSDK::V1::Contracts::ProductListItemState::OrHash,
125
117
  type:
126
118
  MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Type::OrSymbol,
127
119
  updates:
@@ -147,10 +139,8 @@ module MetronomeSDK
147
139
  override.returns(
148
140
  {
149
141
  id: String,
150
- current:
151
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current,
152
- initial:
153
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial,
142
+ current: MetronomeSDK::V1::Contracts::ProductListItemState,
143
+ initial: MetronomeSDK::V1::Contracts::ProductListItemState,
154
144
  type:
155
145
  MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Type::TaggedSymbol,
156
146
  updates:
@@ -165,11 +155,60 @@ module MetronomeSDK
165
155
  def to_hash
166
156
  end
167
157
 
168
- class Current < MetronomeSDK::Internal::Type::BaseModel
158
+ module Type
159
+ extend MetronomeSDK::Internal::Type::Enum
160
+
161
+ TaggedSymbol =
162
+ T.type_alias do
163
+ T.all(
164
+ Symbol,
165
+ MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Type
166
+ )
167
+ end
168
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
169
+
170
+ USAGE =
171
+ T.let(
172
+ :USAGE,
173
+ MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Type::TaggedSymbol
174
+ )
175
+ SUBSCRIPTION =
176
+ T.let(
177
+ :SUBSCRIPTION,
178
+ MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Type::TaggedSymbol
179
+ )
180
+ COMPOSITE =
181
+ T.let(
182
+ :COMPOSITE,
183
+ MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Type::TaggedSymbol
184
+ )
185
+ FIXED =
186
+ T.let(
187
+ :FIXED,
188
+ MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Type::TaggedSymbol
189
+ )
190
+ PRO_SERVICE =
191
+ T.let(
192
+ :PRO_SERVICE,
193
+ MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Type::TaggedSymbol
194
+ )
195
+
196
+ sig do
197
+ override.returns(
198
+ T::Array[
199
+ MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Type::TaggedSymbol
200
+ ]
201
+ )
202
+ end
203
+ def self.values
204
+ end
205
+ end
206
+
207
+ class Update < MetronomeSDK::Internal::Type::BaseModel
169
208
  OrHash =
170
209
  T.type_alias do
171
210
  T.any(
172
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current,
211
+ MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update,
173
212
  MetronomeSDK::Internal::AnyHash
174
213
  )
175
214
  end
@@ -180,9 +219,6 @@ module MetronomeSDK
180
219
  sig { returns(String) }
181
220
  attr_accessor :created_by
182
221
 
183
- sig { returns(String) }
184
- attr_accessor :name
185
-
186
222
  sig { returns(T.nilable(String)) }
187
223
  attr_reader :billable_metric_id
188
224
 
@@ -207,13 +243,18 @@ module MetronomeSDK
207
243
  sig { params(exclude_free_usage: T::Boolean).void }
208
244
  attr_writer :exclude_free_usage
209
245
 
210
- # This field's availability is dependent on your client's configuration.
211
246
  sig { returns(T.nilable(T::Boolean)) }
212
247
  attr_reader :is_refundable
213
248
 
214
249
  sig { params(is_refundable: T::Boolean).void }
215
250
  attr_writer :is_refundable
216
251
 
252
+ sig { returns(T.nilable(String)) }
253
+ attr_reader :name
254
+
255
+ sig { params(name: String).void }
256
+ attr_writer :name
257
+
217
258
  # This field's availability is dependent on your client's configuration.
218
259
  sig { returns(T.nilable(String)) }
219
260
  attr_reader :netsuite_internal_item_id
@@ -256,9 +297,7 @@ module MetronomeSDK
256
297
  # "divide".
257
298
  sig do
258
299
  returns(
259
- T.nilable(
260
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityConversion
261
- )
300
+ T.nilable(MetronomeSDK::V1::Contracts::QuantityConversion)
262
301
  )
263
302
  end
264
303
  attr_reader :quantity_conversion
@@ -267,7 +306,7 @@ module MetronomeSDK
267
306
  params(
268
307
  quantity_conversion:
269
308
  T.nilable(
270
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityConversion::OrHash
309
+ MetronomeSDK::V1::Contracts::QuantityConversion::OrHash
271
310
  )
272
311
  ).void
273
312
  end
@@ -279,9 +318,7 @@ module MetronomeSDK
279
318
  # rounded up to the nearest integer.
280
319
  sig do
281
320
  returns(
282
- T.nilable(
283
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityRounding
284
- )
321
+ T.nilable(MetronomeSDK::V1::Contracts::QuantityRounding)
285
322
  )
286
323
  end
287
324
  attr_reader :quantity_rounding
@@ -290,7 +327,7 @@ module MetronomeSDK
290
327
  params(
291
328
  quantity_rounding:
292
329
  T.nilable(
293
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityRounding::OrHash
330
+ MetronomeSDK::V1::Contracts::QuantityRounding::OrHash
294
331
  )
295
332
  ).void
296
333
  end
@@ -312,23 +349,23 @@ module MetronomeSDK
312
349
  params(
313
350
  created_at: Time,
314
351
  created_by: String,
315
- name: String,
316
352
  billable_metric_id: String,
317
353
  composite_product_ids: T::Array[String],
318
354
  composite_tags: T::Array[String],
319
355
  exclude_free_usage: T::Boolean,
320
356
  is_refundable: T::Boolean,
357
+ name: String,
321
358
  netsuite_internal_item_id: String,
322
359
  netsuite_overage_item_id: String,
323
360
  presentation_group_key: T::Array[String],
324
361
  pricing_group_key: T::Array[String],
325
362
  quantity_conversion:
326
363
  T.nilable(
327
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityConversion::OrHash
364
+ MetronomeSDK::V1::Contracts::QuantityConversion::OrHash
328
365
  ),
329
366
  quantity_rounding:
330
367
  T.nilable(
331
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityRounding::OrHash
368
+ MetronomeSDK::V1::Contracts::QuantityRounding::OrHash
332
369
  ),
333
370
  starting_at: Time,
334
371
  tags: T::Array[String]
@@ -337,13 +374,12 @@ module MetronomeSDK
337
374
  def self.new(
338
375
  created_at:,
339
376
  created_by:,
340
- name:,
341
377
  billable_metric_id: nil,
342
378
  composite_product_ids: nil,
343
379
  composite_tags: nil,
344
380
  exclude_free_usage: nil,
345
- # This field's availability is dependent on your client's configuration.
346
381
  is_refundable: nil,
382
+ name: nil,
347
383
  # This field's availability is dependent on your client's configuration.
348
384
  netsuite_internal_item_id: nil,
349
385
  # This field's availability is dependent on your client's configuration.
@@ -380,24 +416,22 @@ module MetronomeSDK
380
416
  {
381
417
  created_at: Time,
382
418
  created_by: String,
383
- name: String,
384
419
  billable_metric_id: String,
385
420
  composite_product_ids: T::Array[String],
386
421
  composite_tags: T::Array[String],
387
422
  exclude_free_usage: T::Boolean,
388
423
  is_refundable: T::Boolean,
424
+ name: String,
389
425
  netsuite_internal_item_id: String,
390
426
  netsuite_overage_item_id: String,
391
427
  presentation_group_key: T::Array[String],
392
428
  pricing_group_key: T::Array[String],
393
429
  quantity_conversion:
394
430
  T.nilable(
395
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityConversion
431
+ MetronomeSDK::V1::Contracts::QuantityConversion
396
432
  ),
397
433
  quantity_rounding:
398
- T.nilable(
399
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityRounding
400
- ),
434
+ T.nilable(MetronomeSDK::V1::Contracts::QuantityRounding),
401
435
  starting_at: Time,
402
436
  tags: T::Array[String]
403
437
  }
@@ -405,1101 +439,6 @@ module MetronomeSDK
405
439
  end
406
440
  def to_hash
407
441
  end
408
-
409
- class QuantityConversion < MetronomeSDK::Internal::Type::BaseModel
410
- OrHash =
411
- T.type_alias do
412
- T.any(
413
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityConversion,
414
- MetronomeSDK::Internal::AnyHash
415
- )
416
- end
417
-
418
- # The factor to multiply or divide the quantity by.
419
- sig { returns(Float) }
420
- attr_accessor :conversion_factor
421
-
422
- # The operation to perform on the quantity
423
- sig do
424
- returns(
425
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityConversion::Operation::TaggedSymbol
426
- )
427
- end
428
- attr_accessor :operation
429
-
430
- # Optional name for this conversion.
431
- sig { returns(T.nilable(String)) }
432
- attr_reader :name
433
-
434
- sig { params(name: String).void }
435
- attr_writer :name
436
-
437
- # Optional. Only valid for USAGE products. If provided, the quantity will be
438
- # converted using the provided conversion factor and operation. For example, if
439
- # the operation is "multiply" and the conversion factor is 100, then the quantity
440
- # will be multiplied by 100. This can be used in cases where data is sent in one
441
- # unit and priced in another. For example, data could be sent in MB and priced in
442
- # GB. In this case, the conversion factor would be 1024 and the operation would be
443
- # "divide".
444
- sig do
445
- params(
446
- conversion_factor: Float,
447
- operation:
448
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityConversion::Operation::OrSymbol,
449
- name: String
450
- ).returns(T.attached_class)
451
- end
452
- def self.new(
453
- # The factor to multiply or divide the quantity by.
454
- conversion_factor:,
455
- # The operation to perform on the quantity
456
- operation:,
457
- # Optional name for this conversion.
458
- name: nil
459
- )
460
- end
461
-
462
- sig do
463
- override.returns(
464
- {
465
- conversion_factor: Float,
466
- operation:
467
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityConversion::Operation::TaggedSymbol,
468
- name: String
469
- }
470
- )
471
- end
472
- def to_hash
473
- end
474
-
475
- # The operation to perform on the quantity
476
- module Operation
477
- extend MetronomeSDK::Internal::Type::Enum
478
-
479
- TaggedSymbol =
480
- T.type_alias do
481
- T.all(
482
- Symbol,
483
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityConversion::Operation
484
- )
485
- end
486
- OrSymbol = T.type_alias { T.any(Symbol, String) }
487
-
488
- MULTIPLY =
489
- T.let(
490
- :MULTIPLY,
491
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityConversion::Operation::TaggedSymbol
492
- )
493
- DIVIDE =
494
- T.let(
495
- :DIVIDE,
496
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityConversion::Operation::TaggedSymbol
497
- )
498
-
499
- sig do
500
- override.returns(
501
- T::Array[
502
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityConversion::Operation::TaggedSymbol
503
- ]
504
- )
505
- end
506
- def self.values
507
- end
508
- end
509
- end
510
-
511
- class QuantityRounding < MetronomeSDK::Internal::Type::BaseModel
512
- OrHash =
513
- T.type_alias do
514
- T.any(
515
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityRounding,
516
- MetronomeSDK::Internal::AnyHash
517
- )
518
- end
519
-
520
- sig { returns(Float) }
521
- attr_accessor :decimal_places
522
-
523
- sig do
524
- returns(
525
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityRounding::RoundingMethod::TaggedSymbol
526
- )
527
- end
528
- attr_accessor :rounding_method
529
-
530
- # Optional. Only valid for USAGE products. If provided, the quantity will be
531
- # rounded using the provided rounding method and decimal places. For example, if
532
- # the method is "round up" and the decimal places is 0, then the quantity will be
533
- # rounded up to the nearest integer.
534
- sig do
535
- params(
536
- decimal_places: Float,
537
- rounding_method:
538
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityRounding::RoundingMethod::OrSymbol
539
- ).returns(T.attached_class)
540
- end
541
- def self.new(decimal_places:, rounding_method:)
542
- end
543
-
544
- sig do
545
- override.returns(
546
- {
547
- decimal_places: Float,
548
- rounding_method:
549
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityRounding::RoundingMethod::TaggedSymbol
550
- }
551
- )
552
- end
553
- def to_hash
554
- end
555
-
556
- module RoundingMethod
557
- extend MetronomeSDK::Internal::Type::Enum
558
-
559
- TaggedSymbol =
560
- T.type_alias do
561
- T.all(
562
- Symbol,
563
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityRounding::RoundingMethod
564
- )
565
- end
566
- OrSymbol = T.type_alias { T.any(Symbol, String) }
567
-
568
- ROUND_UP =
569
- T.let(
570
- :ROUND_UP,
571
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityRounding::RoundingMethod::TaggedSymbol
572
- )
573
- ROUND_DOWN =
574
- T.let(
575
- :ROUND_DOWN,
576
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityRounding::RoundingMethod::TaggedSymbol
577
- )
578
- ROUND_HALF_UP =
579
- T.let(
580
- :ROUND_HALF_UP,
581
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityRounding::RoundingMethod::TaggedSymbol
582
- )
583
-
584
- sig do
585
- override.returns(
586
- T::Array[
587
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Current::QuantityRounding::RoundingMethod::TaggedSymbol
588
- ]
589
- )
590
- end
591
- def self.values
592
- end
593
- end
594
- end
595
- end
596
-
597
- class Initial < MetronomeSDK::Internal::Type::BaseModel
598
- OrHash =
599
- T.type_alias do
600
- T.any(
601
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial,
602
- MetronomeSDK::Internal::AnyHash
603
- )
604
- end
605
-
606
- sig { returns(Time) }
607
- attr_accessor :created_at
608
-
609
- sig { returns(String) }
610
- attr_accessor :created_by
611
-
612
- sig { returns(String) }
613
- attr_accessor :name
614
-
615
- sig { returns(T.nilable(String)) }
616
- attr_reader :billable_metric_id
617
-
618
- sig { params(billable_metric_id: String).void }
619
- attr_writer :billable_metric_id
620
-
621
- sig { returns(T.nilable(T::Array[String])) }
622
- attr_reader :composite_product_ids
623
-
624
- sig { params(composite_product_ids: T::Array[String]).void }
625
- attr_writer :composite_product_ids
626
-
627
- sig { returns(T.nilable(T::Array[String])) }
628
- attr_reader :composite_tags
629
-
630
- sig { params(composite_tags: T::Array[String]).void }
631
- attr_writer :composite_tags
632
-
633
- sig { returns(T.nilable(T::Boolean)) }
634
- attr_reader :exclude_free_usage
635
-
636
- sig { params(exclude_free_usage: T::Boolean).void }
637
- attr_writer :exclude_free_usage
638
-
639
- # This field's availability is dependent on your client's configuration.
640
- sig { returns(T.nilable(T::Boolean)) }
641
- attr_reader :is_refundable
642
-
643
- sig { params(is_refundable: T::Boolean).void }
644
- attr_writer :is_refundable
645
-
646
- # This field's availability is dependent on your client's configuration.
647
- sig { returns(T.nilable(String)) }
648
- attr_reader :netsuite_internal_item_id
649
-
650
- sig { params(netsuite_internal_item_id: String).void }
651
- attr_writer :netsuite_internal_item_id
652
-
653
- # This field's availability is dependent on your client's configuration.
654
- sig { returns(T.nilable(String)) }
655
- attr_reader :netsuite_overage_item_id
656
-
657
- sig { params(netsuite_overage_item_id: String).void }
658
- attr_writer :netsuite_overage_item_id
659
-
660
- # For USAGE products only. Groups usage line items on invoices. The superset of
661
- # values in the pricing group key and presentation group key must be set as one
662
- # compound group key on the billable metric.
663
- sig { returns(T.nilable(T::Array[String])) }
664
- attr_reader :presentation_group_key
665
-
666
- sig { params(presentation_group_key: T::Array[String]).void }
667
- attr_writer :presentation_group_key
668
-
669
- # For USAGE products only. If set, pricing for this product will be determined for
670
- # each pricing_group_key value, as opposed to the product as a whole. The superset
671
- # of values in the pricing group key and presentation group key must be set as one
672
- # compound group key on the billable metric.
673
- sig { returns(T.nilable(T::Array[String])) }
674
- attr_reader :pricing_group_key
675
-
676
- sig { params(pricing_group_key: T::Array[String]).void }
677
- attr_writer :pricing_group_key
678
-
679
- # Optional. Only valid for USAGE products. If provided, the quantity will be
680
- # converted using the provided conversion factor and operation. For example, if
681
- # the operation is "multiply" and the conversion factor is 100, then the quantity
682
- # will be multiplied by 100. This can be used in cases where data is sent in one
683
- # unit and priced in another. For example, data could be sent in MB and priced in
684
- # GB. In this case, the conversion factor would be 1024 and the operation would be
685
- # "divide".
686
- sig do
687
- returns(
688
- T.nilable(
689
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityConversion
690
- )
691
- )
692
- end
693
- attr_reader :quantity_conversion
694
-
695
- sig do
696
- params(
697
- quantity_conversion:
698
- T.nilable(
699
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityConversion::OrHash
700
- )
701
- ).void
702
- end
703
- attr_writer :quantity_conversion
704
-
705
- # Optional. Only valid for USAGE products. If provided, the quantity will be
706
- # rounded using the provided rounding method and decimal places. For example, if
707
- # the method is "round up" and the decimal places is 0, then the quantity will be
708
- # rounded up to the nearest integer.
709
- sig do
710
- returns(
711
- T.nilable(
712
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityRounding
713
- )
714
- )
715
- end
716
- attr_reader :quantity_rounding
717
-
718
- sig do
719
- params(
720
- quantity_rounding:
721
- T.nilable(
722
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityRounding::OrHash
723
- )
724
- ).void
725
- end
726
- attr_writer :quantity_rounding
727
-
728
- sig { returns(T.nilable(Time)) }
729
- attr_reader :starting_at
730
-
731
- sig { params(starting_at: Time).void }
732
- attr_writer :starting_at
733
-
734
- sig { returns(T.nilable(T::Array[String])) }
735
- attr_reader :tags
736
-
737
- sig { params(tags: T::Array[String]).void }
738
- attr_writer :tags
739
-
740
- sig do
741
- params(
742
- created_at: Time,
743
- created_by: String,
744
- name: String,
745
- billable_metric_id: String,
746
- composite_product_ids: T::Array[String],
747
- composite_tags: T::Array[String],
748
- exclude_free_usage: T::Boolean,
749
- is_refundable: T::Boolean,
750
- netsuite_internal_item_id: String,
751
- netsuite_overage_item_id: String,
752
- presentation_group_key: T::Array[String],
753
- pricing_group_key: T::Array[String],
754
- quantity_conversion:
755
- T.nilable(
756
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityConversion::OrHash
757
- ),
758
- quantity_rounding:
759
- T.nilable(
760
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityRounding::OrHash
761
- ),
762
- starting_at: Time,
763
- tags: T::Array[String]
764
- ).returns(T.attached_class)
765
- end
766
- def self.new(
767
- created_at:,
768
- created_by:,
769
- name:,
770
- billable_metric_id: nil,
771
- composite_product_ids: nil,
772
- composite_tags: nil,
773
- exclude_free_usage: nil,
774
- # This field's availability is dependent on your client's configuration.
775
- is_refundable: nil,
776
- # This field's availability is dependent on your client's configuration.
777
- netsuite_internal_item_id: nil,
778
- # This field's availability is dependent on your client's configuration.
779
- netsuite_overage_item_id: nil,
780
- # For USAGE products only. Groups usage line items on invoices. The superset of
781
- # values in the pricing group key and presentation group key must be set as one
782
- # compound group key on the billable metric.
783
- presentation_group_key: nil,
784
- # For USAGE products only. If set, pricing for this product will be determined for
785
- # each pricing_group_key value, as opposed to the product as a whole. The superset
786
- # of values in the pricing group key and presentation group key must be set as one
787
- # compound group key on the billable metric.
788
- pricing_group_key: nil,
789
- # Optional. Only valid for USAGE products. If provided, the quantity will be
790
- # converted using the provided conversion factor and operation. For example, if
791
- # the operation is "multiply" and the conversion factor is 100, then the quantity
792
- # will be multiplied by 100. This can be used in cases where data is sent in one
793
- # unit and priced in another. For example, data could be sent in MB and priced in
794
- # GB. In this case, the conversion factor would be 1024 and the operation would be
795
- # "divide".
796
- quantity_conversion: nil,
797
- # Optional. Only valid for USAGE products. If provided, the quantity will be
798
- # rounded using the provided rounding method and decimal places. For example, if
799
- # the method is "round up" and the decimal places is 0, then the quantity will be
800
- # rounded up to the nearest integer.
801
- quantity_rounding: nil,
802
- starting_at: nil,
803
- tags: nil
804
- )
805
- end
806
-
807
- sig do
808
- override.returns(
809
- {
810
- created_at: Time,
811
- created_by: String,
812
- name: String,
813
- billable_metric_id: String,
814
- composite_product_ids: T::Array[String],
815
- composite_tags: T::Array[String],
816
- exclude_free_usage: T::Boolean,
817
- is_refundable: T::Boolean,
818
- netsuite_internal_item_id: String,
819
- netsuite_overage_item_id: String,
820
- presentation_group_key: T::Array[String],
821
- pricing_group_key: T::Array[String],
822
- quantity_conversion:
823
- T.nilable(
824
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityConversion
825
- ),
826
- quantity_rounding:
827
- T.nilable(
828
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityRounding
829
- ),
830
- starting_at: Time,
831
- tags: T::Array[String]
832
- }
833
- )
834
- end
835
- def to_hash
836
- end
837
-
838
- class QuantityConversion < MetronomeSDK::Internal::Type::BaseModel
839
- OrHash =
840
- T.type_alias do
841
- T.any(
842
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityConversion,
843
- MetronomeSDK::Internal::AnyHash
844
- )
845
- end
846
-
847
- # The factor to multiply or divide the quantity by.
848
- sig { returns(Float) }
849
- attr_accessor :conversion_factor
850
-
851
- # The operation to perform on the quantity
852
- sig do
853
- returns(
854
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityConversion::Operation::TaggedSymbol
855
- )
856
- end
857
- attr_accessor :operation
858
-
859
- # Optional name for this conversion.
860
- sig { returns(T.nilable(String)) }
861
- attr_reader :name
862
-
863
- sig { params(name: String).void }
864
- attr_writer :name
865
-
866
- # Optional. Only valid for USAGE products. If provided, the quantity will be
867
- # converted using the provided conversion factor and operation. For example, if
868
- # the operation is "multiply" and the conversion factor is 100, then the quantity
869
- # will be multiplied by 100. This can be used in cases where data is sent in one
870
- # unit and priced in another. For example, data could be sent in MB and priced in
871
- # GB. In this case, the conversion factor would be 1024 and the operation would be
872
- # "divide".
873
- sig do
874
- params(
875
- conversion_factor: Float,
876
- operation:
877
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityConversion::Operation::OrSymbol,
878
- name: String
879
- ).returns(T.attached_class)
880
- end
881
- def self.new(
882
- # The factor to multiply or divide the quantity by.
883
- conversion_factor:,
884
- # The operation to perform on the quantity
885
- operation:,
886
- # Optional name for this conversion.
887
- name: nil
888
- )
889
- end
890
-
891
- sig do
892
- override.returns(
893
- {
894
- conversion_factor: Float,
895
- operation:
896
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityConversion::Operation::TaggedSymbol,
897
- name: String
898
- }
899
- )
900
- end
901
- def to_hash
902
- end
903
-
904
- # The operation to perform on the quantity
905
- module Operation
906
- extend MetronomeSDK::Internal::Type::Enum
907
-
908
- TaggedSymbol =
909
- T.type_alias do
910
- T.all(
911
- Symbol,
912
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityConversion::Operation
913
- )
914
- end
915
- OrSymbol = T.type_alias { T.any(Symbol, String) }
916
-
917
- MULTIPLY =
918
- T.let(
919
- :MULTIPLY,
920
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityConversion::Operation::TaggedSymbol
921
- )
922
- DIVIDE =
923
- T.let(
924
- :DIVIDE,
925
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityConversion::Operation::TaggedSymbol
926
- )
927
-
928
- sig do
929
- override.returns(
930
- T::Array[
931
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityConversion::Operation::TaggedSymbol
932
- ]
933
- )
934
- end
935
- def self.values
936
- end
937
- end
938
- end
939
-
940
- class QuantityRounding < MetronomeSDK::Internal::Type::BaseModel
941
- OrHash =
942
- T.type_alias do
943
- T.any(
944
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityRounding,
945
- MetronomeSDK::Internal::AnyHash
946
- )
947
- end
948
-
949
- sig { returns(Float) }
950
- attr_accessor :decimal_places
951
-
952
- sig do
953
- returns(
954
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityRounding::RoundingMethod::TaggedSymbol
955
- )
956
- end
957
- attr_accessor :rounding_method
958
-
959
- # Optional. Only valid for USAGE products. If provided, the quantity will be
960
- # rounded using the provided rounding method and decimal places. For example, if
961
- # the method is "round up" and the decimal places is 0, then the quantity will be
962
- # rounded up to the nearest integer.
963
- sig do
964
- params(
965
- decimal_places: Float,
966
- rounding_method:
967
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityRounding::RoundingMethod::OrSymbol
968
- ).returns(T.attached_class)
969
- end
970
- def self.new(decimal_places:, rounding_method:)
971
- end
972
-
973
- sig do
974
- override.returns(
975
- {
976
- decimal_places: Float,
977
- rounding_method:
978
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityRounding::RoundingMethod::TaggedSymbol
979
- }
980
- )
981
- end
982
- def to_hash
983
- end
984
-
985
- module RoundingMethod
986
- extend MetronomeSDK::Internal::Type::Enum
987
-
988
- TaggedSymbol =
989
- T.type_alias do
990
- T.all(
991
- Symbol,
992
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityRounding::RoundingMethod
993
- )
994
- end
995
- OrSymbol = T.type_alias { T.any(Symbol, String) }
996
-
997
- ROUND_UP =
998
- T.let(
999
- :ROUND_UP,
1000
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityRounding::RoundingMethod::TaggedSymbol
1001
- )
1002
- ROUND_DOWN =
1003
- T.let(
1004
- :ROUND_DOWN,
1005
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityRounding::RoundingMethod::TaggedSymbol
1006
- )
1007
- ROUND_HALF_UP =
1008
- T.let(
1009
- :ROUND_HALF_UP,
1010
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityRounding::RoundingMethod::TaggedSymbol
1011
- )
1012
-
1013
- sig do
1014
- override.returns(
1015
- T::Array[
1016
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Initial::QuantityRounding::RoundingMethod::TaggedSymbol
1017
- ]
1018
- )
1019
- end
1020
- def self.values
1021
- end
1022
- end
1023
- end
1024
- end
1025
-
1026
- module Type
1027
- extend MetronomeSDK::Internal::Type::Enum
1028
-
1029
- TaggedSymbol =
1030
- T.type_alias do
1031
- T.all(
1032
- Symbol,
1033
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Type
1034
- )
1035
- end
1036
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1037
-
1038
- USAGE =
1039
- T.let(
1040
- :USAGE,
1041
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Type::TaggedSymbol
1042
- )
1043
- SUBSCRIPTION =
1044
- T.let(
1045
- :SUBSCRIPTION,
1046
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Type::TaggedSymbol
1047
- )
1048
- COMPOSITE =
1049
- T.let(
1050
- :COMPOSITE,
1051
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Type::TaggedSymbol
1052
- )
1053
- FIXED =
1054
- T.let(
1055
- :FIXED,
1056
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Type::TaggedSymbol
1057
- )
1058
- PRO_SERVICE =
1059
- T.let(
1060
- :PRO_SERVICE,
1061
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Type::TaggedSymbol
1062
- )
1063
-
1064
- sig do
1065
- override.returns(
1066
- T::Array[
1067
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Type::TaggedSymbol
1068
- ]
1069
- )
1070
- end
1071
- def self.values
1072
- end
1073
- end
1074
-
1075
- class Update < MetronomeSDK::Internal::Type::BaseModel
1076
- OrHash =
1077
- T.type_alias do
1078
- T.any(
1079
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update,
1080
- MetronomeSDK::Internal::AnyHash
1081
- )
1082
- end
1083
-
1084
- sig { returns(Time) }
1085
- attr_accessor :created_at
1086
-
1087
- sig { returns(String) }
1088
- attr_accessor :created_by
1089
-
1090
- sig { returns(T.nilable(String)) }
1091
- attr_reader :billable_metric_id
1092
-
1093
- sig { params(billable_metric_id: String).void }
1094
- attr_writer :billable_metric_id
1095
-
1096
- sig { returns(T.nilable(T::Array[String])) }
1097
- attr_reader :composite_product_ids
1098
-
1099
- sig { params(composite_product_ids: T::Array[String]).void }
1100
- attr_writer :composite_product_ids
1101
-
1102
- sig { returns(T.nilable(T::Array[String])) }
1103
- attr_reader :composite_tags
1104
-
1105
- sig { params(composite_tags: T::Array[String]).void }
1106
- attr_writer :composite_tags
1107
-
1108
- sig { returns(T.nilable(T::Boolean)) }
1109
- attr_reader :exclude_free_usage
1110
-
1111
- sig { params(exclude_free_usage: T::Boolean).void }
1112
- attr_writer :exclude_free_usage
1113
-
1114
- sig { returns(T.nilable(T::Boolean)) }
1115
- attr_reader :is_refundable
1116
-
1117
- sig { params(is_refundable: T::Boolean).void }
1118
- attr_writer :is_refundable
1119
-
1120
- sig { returns(T.nilable(String)) }
1121
- attr_reader :name
1122
-
1123
- sig { params(name: String).void }
1124
- attr_writer :name
1125
-
1126
- # This field's availability is dependent on your client's configuration.
1127
- sig { returns(T.nilable(String)) }
1128
- attr_reader :netsuite_internal_item_id
1129
-
1130
- sig { params(netsuite_internal_item_id: String).void }
1131
- attr_writer :netsuite_internal_item_id
1132
-
1133
- # This field's availability is dependent on your client's configuration.
1134
- sig { returns(T.nilable(String)) }
1135
- attr_reader :netsuite_overage_item_id
1136
-
1137
- sig { params(netsuite_overage_item_id: String).void }
1138
- attr_writer :netsuite_overage_item_id
1139
-
1140
- # For USAGE products only. Groups usage line items on invoices. The superset of
1141
- # values in the pricing group key and presentation group key must be set as one
1142
- # compound group key on the billable metric.
1143
- sig { returns(T.nilable(T::Array[String])) }
1144
- attr_reader :presentation_group_key
1145
-
1146
- sig { params(presentation_group_key: T::Array[String]).void }
1147
- attr_writer :presentation_group_key
1148
-
1149
- # For USAGE products only. If set, pricing for this product will be determined for
1150
- # each pricing_group_key value, as opposed to the product as a whole. The superset
1151
- # of values in the pricing group key and presentation group key must be set as one
1152
- # compound group key on the billable metric.
1153
- sig { returns(T.nilable(T::Array[String])) }
1154
- attr_reader :pricing_group_key
1155
-
1156
- sig { params(pricing_group_key: T::Array[String]).void }
1157
- attr_writer :pricing_group_key
1158
-
1159
- # Optional. Only valid for USAGE products. If provided, the quantity will be
1160
- # converted using the provided conversion factor and operation. For example, if
1161
- # the operation is "multiply" and the conversion factor is 100, then the quantity
1162
- # will be multiplied by 100. This can be used in cases where data is sent in one
1163
- # unit and priced in another. For example, data could be sent in MB and priced in
1164
- # GB. In this case, the conversion factor would be 1024 and the operation would be
1165
- # "divide".
1166
- sig do
1167
- returns(
1168
- T.nilable(
1169
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityConversion
1170
- )
1171
- )
1172
- end
1173
- attr_reader :quantity_conversion
1174
-
1175
- sig do
1176
- params(
1177
- quantity_conversion:
1178
- T.nilable(
1179
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityConversion::OrHash
1180
- )
1181
- ).void
1182
- end
1183
- attr_writer :quantity_conversion
1184
-
1185
- # Optional. Only valid for USAGE products. If provided, the quantity will be
1186
- # rounded using the provided rounding method and decimal places. For example, if
1187
- # the method is "round up" and the decimal places is 0, then the quantity will be
1188
- # rounded up to the nearest integer.
1189
- sig do
1190
- returns(
1191
- T.nilable(
1192
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityRounding
1193
- )
1194
- )
1195
- end
1196
- attr_reader :quantity_rounding
1197
-
1198
- sig do
1199
- params(
1200
- quantity_rounding:
1201
- T.nilable(
1202
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityRounding::OrHash
1203
- )
1204
- ).void
1205
- end
1206
- attr_writer :quantity_rounding
1207
-
1208
- sig { returns(T.nilable(Time)) }
1209
- attr_reader :starting_at
1210
-
1211
- sig { params(starting_at: Time).void }
1212
- attr_writer :starting_at
1213
-
1214
- sig { returns(T.nilable(T::Array[String])) }
1215
- attr_reader :tags
1216
-
1217
- sig { params(tags: T::Array[String]).void }
1218
- attr_writer :tags
1219
-
1220
- sig do
1221
- params(
1222
- created_at: Time,
1223
- created_by: String,
1224
- billable_metric_id: String,
1225
- composite_product_ids: T::Array[String],
1226
- composite_tags: T::Array[String],
1227
- exclude_free_usage: T::Boolean,
1228
- is_refundable: T::Boolean,
1229
- name: String,
1230
- netsuite_internal_item_id: String,
1231
- netsuite_overage_item_id: String,
1232
- presentation_group_key: T::Array[String],
1233
- pricing_group_key: T::Array[String],
1234
- quantity_conversion:
1235
- T.nilable(
1236
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityConversion::OrHash
1237
- ),
1238
- quantity_rounding:
1239
- T.nilable(
1240
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityRounding::OrHash
1241
- ),
1242
- starting_at: Time,
1243
- tags: T::Array[String]
1244
- ).returns(T.attached_class)
1245
- end
1246
- def self.new(
1247
- created_at:,
1248
- created_by:,
1249
- billable_metric_id: nil,
1250
- composite_product_ids: nil,
1251
- composite_tags: nil,
1252
- exclude_free_usage: nil,
1253
- is_refundable: nil,
1254
- name: nil,
1255
- # This field's availability is dependent on your client's configuration.
1256
- netsuite_internal_item_id: nil,
1257
- # This field's availability is dependent on your client's configuration.
1258
- netsuite_overage_item_id: nil,
1259
- # For USAGE products only. Groups usage line items on invoices. The superset of
1260
- # values in the pricing group key and presentation group key must be set as one
1261
- # compound group key on the billable metric.
1262
- presentation_group_key: nil,
1263
- # For USAGE products only. If set, pricing for this product will be determined for
1264
- # each pricing_group_key value, as opposed to the product as a whole. The superset
1265
- # of values in the pricing group key and presentation group key must be set as one
1266
- # compound group key on the billable metric.
1267
- pricing_group_key: nil,
1268
- # Optional. Only valid for USAGE products. If provided, the quantity will be
1269
- # converted using the provided conversion factor and operation. For example, if
1270
- # the operation is "multiply" and the conversion factor is 100, then the quantity
1271
- # will be multiplied by 100. This can be used in cases where data is sent in one
1272
- # unit and priced in another. For example, data could be sent in MB and priced in
1273
- # GB. In this case, the conversion factor would be 1024 and the operation would be
1274
- # "divide".
1275
- quantity_conversion: nil,
1276
- # Optional. Only valid for USAGE products. If provided, the quantity will be
1277
- # rounded using the provided rounding method and decimal places. For example, if
1278
- # the method is "round up" and the decimal places is 0, then the quantity will be
1279
- # rounded up to the nearest integer.
1280
- quantity_rounding: nil,
1281
- starting_at: nil,
1282
- tags: nil
1283
- )
1284
- end
1285
-
1286
- sig do
1287
- override.returns(
1288
- {
1289
- created_at: Time,
1290
- created_by: String,
1291
- billable_metric_id: String,
1292
- composite_product_ids: T::Array[String],
1293
- composite_tags: T::Array[String],
1294
- exclude_free_usage: T::Boolean,
1295
- is_refundable: T::Boolean,
1296
- name: String,
1297
- netsuite_internal_item_id: String,
1298
- netsuite_overage_item_id: String,
1299
- presentation_group_key: T::Array[String],
1300
- pricing_group_key: T::Array[String],
1301
- quantity_conversion:
1302
- T.nilable(
1303
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityConversion
1304
- ),
1305
- quantity_rounding:
1306
- T.nilable(
1307
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityRounding
1308
- ),
1309
- starting_at: Time,
1310
- tags: T::Array[String]
1311
- }
1312
- )
1313
- end
1314
- def to_hash
1315
- end
1316
-
1317
- class QuantityConversion < MetronomeSDK::Internal::Type::BaseModel
1318
- OrHash =
1319
- T.type_alias do
1320
- T.any(
1321
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityConversion,
1322
- MetronomeSDK::Internal::AnyHash
1323
- )
1324
- end
1325
-
1326
- # The factor to multiply or divide the quantity by.
1327
- sig { returns(Float) }
1328
- attr_accessor :conversion_factor
1329
-
1330
- # The operation to perform on the quantity
1331
- sig do
1332
- returns(
1333
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityConversion::Operation::TaggedSymbol
1334
- )
1335
- end
1336
- attr_accessor :operation
1337
-
1338
- # Optional name for this conversion.
1339
- sig { returns(T.nilable(String)) }
1340
- attr_reader :name
1341
-
1342
- sig { params(name: String).void }
1343
- attr_writer :name
1344
-
1345
- # Optional. Only valid for USAGE products. If provided, the quantity will be
1346
- # converted using the provided conversion factor and operation. For example, if
1347
- # the operation is "multiply" and the conversion factor is 100, then the quantity
1348
- # will be multiplied by 100. This can be used in cases where data is sent in one
1349
- # unit and priced in another. For example, data could be sent in MB and priced in
1350
- # GB. In this case, the conversion factor would be 1024 and the operation would be
1351
- # "divide".
1352
- sig do
1353
- params(
1354
- conversion_factor: Float,
1355
- operation:
1356
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityConversion::Operation::OrSymbol,
1357
- name: String
1358
- ).returns(T.attached_class)
1359
- end
1360
- def self.new(
1361
- # The factor to multiply or divide the quantity by.
1362
- conversion_factor:,
1363
- # The operation to perform on the quantity
1364
- operation:,
1365
- # Optional name for this conversion.
1366
- name: nil
1367
- )
1368
- end
1369
-
1370
- sig do
1371
- override.returns(
1372
- {
1373
- conversion_factor: Float,
1374
- operation:
1375
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityConversion::Operation::TaggedSymbol,
1376
- name: String
1377
- }
1378
- )
1379
- end
1380
- def to_hash
1381
- end
1382
-
1383
- # The operation to perform on the quantity
1384
- module Operation
1385
- extend MetronomeSDK::Internal::Type::Enum
1386
-
1387
- TaggedSymbol =
1388
- T.type_alias do
1389
- T.all(
1390
- Symbol,
1391
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityConversion::Operation
1392
- )
1393
- end
1394
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1395
-
1396
- MULTIPLY =
1397
- T.let(
1398
- :MULTIPLY,
1399
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityConversion::Operation::TaggedSymbol
1400
- )
1401
- DIVIDE =
1402
- T.let(
1403
- :DIVIDE,
1404
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityConversion::Operation::TaggedSymbol
1405
- )
1406
-
1407
- sig do
1408
- override.returns(
1409
- T::Array[
1410
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityConversion::Operation::TaggedSymbol
1411
- ]
1412
- )
1413
- end
1414
- def self.values
1415
- end
1416
- end
1417
- end
1418
-
1419
- class QuantityRounding < MetronomeSDK::Internal::Type::BaseModel
1420
- OrHash =
1421
- T.type_alias do
1422
- T.any(
1423
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityRounding,
1424
- MetronomeSDK::Internal::AnyHash
1425
- )
1426
- end
1427
-
1428
- sig { returns(Float) }
1429
- attr_accessor :decimal_places
1430
-
1431
- sig do
1432
- returns(
1433
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityRounding::RoundingMethod::TaggedSymbol
1434
- )
1435
- end
1436
- attr_accessor :rounding_method
1437
-
1438
- # Optional. Only valid for USAGE products. If provided, the quantity will be
1439
- # rounded using the provided rounding method and decimal places. For example, if
1440
- # the method is "round up" and the decimal places is 0, then the quantity will be
1441
- # rounded up to the nearest integer.
1442
- sig do
1443
- params(
1444
- decimal_places: Float,
1445
- rounding_method:
1446
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityRounding::RoundingMethod::OrSymbol
1447
- ).returns(T.attached_class)
1448
- end
1449
- def self.new(decimal_places:, rounding_method:)
1450
- end
1451
-
1452
- sig do
1453
- override.returns(
1454
- {
1455
- decimal_places: Float,
1456
- rounding_method:
1457
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityRounding::RoundingMethod::TaggedSymbol
1458
- }
1459
- )
1460
- end
1461
- def to_hash
1462
- end
1463
-
1464
- module RoundingMethod
1465
- extend MetronomeSDK::Internal::Type::Enum
1466
-
1467
- TaggedSymbol =
1468
- T.type_alias do
1469
- T.all(
1470
- Symbol,
1471
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityRounding::RoundingMethod
1472
- )
1473
- end
1474
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1475
-
1476
- ROUND_UP =
1477
- T.let(
1478
- :ROUND_UP,
1479
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityRounding::RoundingMethod::TaggedSymbol
1480
- )
1481
- ROUND_DOWN =
1482
- T.let(
1483
- :ROUND_DOWN,
1484
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityRounding::RoundingMethod::TaggedSymbol
1485
- )
1486
- ROUND_HALF_UP =
1487
- T.let(
1488
- :ROUND_HALF_UP,
1489
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityRounding::RoundingMethod::TaggedSymbol
1490
- )
1491
-
1492
- sig do
1493
- override.returns(
1494
- T::Array[
1495
- MetronomeSDK::Models::V1::Contracts::ProductRetrieveResponse::Data::Update::QuantityRounding::RoundingMethod::TaggedSymbol
1496
- ]
1497
- )
1498
- end
1499
- def self.values
1500
- end
1501
- end
1502
- end
1503
442
  end
1504
443
  end
1505
444
  end