metronome-sdk 0.2.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (321) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +61 -0
  3. data/README.md +9 -9
  4. data/lib/metronome_sdk/internal/body_cursor_page.rb +86 -0
  5. data/lib/metronome_sdk/internal/cursor_page_without_limit.rb +86 -0
  6. data/lib/metronome_sdk/internal/transport/base_client.rb +1 -4
  7. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +1 -9
  8. data/lib/metronome_sdk/internal/type/array_of.rb +1 -0
  9. data/lib/metronome_sdk/internal/type/base_model.rb +9 -14
  10. data/lib/metronome_sdk/internal/type/converter.rb +27 -0
  11. data/lib/metronome_sdk/internal/type/hash_of.rb +1 -0
  12. data/lib/metronome_sdk/internal/type/union.rb +20 -7
  13. data/lib/metronome_sdk/internal/util.rb +1 -1
  14. data/lib/metronome_sdk/models/base_threshold_commit.rb +36 -0
  15. data/lib/metronome_sdk/models/commit.rb +26 -170
  16. data/lib/metronome_sdk/models/commit_hierarchy_configuration.rb +98 -0
  17. data/lib/metronome_sdk/models/commit_rate.rb +48 -0
  18. data/lib/metronome_sdk/models/commit_specifier.rb +42 -0
  19. data/lib/metronome_sdk/models/commit_specifier_input.rb +42 -0
  20. data/lib/metronome_sdk/models/contract.rb +404 -0
  21. data/lib/metronome_sdk/models/contract_v2.rb +2919 -0
  22. data/lib/metronome_sdk/models/contract_without_amendments.rb +36 -1126
  23. data/lib/metronome_sdk/models/credit.rb +9 -156
  24. data/lib/metronome_sdk/models/discount.rb +2 -1
  25. data/lib/metronome_sdk/models/hierarchy_configuration.rb +76 -0
  26. data/lib/metronome_sdk/models/override.rb +6 -101
  27. data/lib/metronome_sdk/models/override_tier.rb +21 -0
  28. data/lib/metronome_sdk/models/overwrite_rate.rb +82 -0
  29. data/lib/metronome_sdk/models/payment_gate_config.rb +149 -0
  30. data/lib/metronome_sdk/models/payment_gate_config_v2.rb +149 -0
  31. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +100 -0
  32. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +102 -0
  33. data/lib/metronome_sdk/models/pro_service.rb +2 -1
  34. data/lib/metronome_sdk/models/recurring_commit_subscription_config.rb +51 -0
  35. data/lib/metronome_sdk/models/schedule_point_in_time.rb +14 -1
  36. data/lib/metronome_sdk/models/scheduled_charge.rb +2 -1
  37. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +44 -0
  38. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +44 -0
  39. data/lib/metronome_sdk/models/subscription.rb +227 -0
  40. data/lib/metronome_sdk/models/update_base_threshold_commit.rb +36 -0
  41. data/lib/metronome_sdk/models/v1/alert_create_params.rb +4 -6
  42. data/lib/metronome_sdk/models/v1/billable_metric_create_params.rb +1 -2
  43. data/lib/metronome_sdk/models/v1/billable_metric_list_response.rb +3 -3
  44. data/lib/metronome_sdk/models/v1/billable_metric_retrieve_response.rb +4 -7
  45. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +110 -415
  46. data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_params.rb +7 -16
  47. data/lib/metronome_sdk/models/v1/contract_create_params.rb +287 -1480
  48. data/lib/metronome_sdk/models/v1/contract_list_balances_response.rb +6 -23
  49. data/lib/metronome_sdk/models/v1/contract_list_response.rb +3 -1153
  50. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rb +2 -6
  51. data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rb +5 -50
  52. data/lib/metronome_sdk/models/v1/contract_retrieve_response.rb +3 -1154
  53. data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_params.rb +1 -3
  54. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +9 -1
  55. data/lib/metronome_sdk/models/v1/contracts/product_list_response.rb +8 -1
  56. data/lib/metronome_sdk/models/v1/contracts/product_retrieve_response.rb +8 -1
  57. data/lib/metronome_sdk/models/v1/contracts/quantity_rounding.rb +1 -4
  58. data/lib/metronome_sdk/models/v1/contracts/rate_card_create_params.rb +4 -7
  59. data/lib/metronome_sdk/models/v1/contracts/rate_card_list_response.rb +10 -1
  60. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rb +2 -6
  61. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rb +5 -50
  62. data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rb +10 -1
  63. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_params.rb +1 -3
  64. data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_params.rb +1 -3
  65. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +6 -61
  66. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +3 -49
  67. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +4 -51
  68. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rb +2 -6
  69. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rb +5 -49
  70. data/lib/metronome_sdk/models/v1/credit_grant_list_entries_response.rb +103 -123
  71. data/lib/metronome_sdk/models/v1/credit_grant_list_response.rb +3 -5
  72. data/lib/metronome_sdk/models/v1/custom_field_list_keys_params.rb +1 -3
  73. data/lib/metronome_sdk/models/v1/custom_field_list_keys_response.rb +41 -58
  74. data/lib/metronome_sdk/models/v1/custom_field_set_values_params.rb +5 -1
  75. data/lib/metronome_sdk/models/v1/customer.rb +2 -1
  76. data/lib/metronome_sdk/models/v1/customer_create_params.rb +37 -11
  77. data/lib/metronome_sdk/models/v1/customer_detail.rb +2 -1
  78. data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_response.rb +3 -3
  79. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +1 -3
  80. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rb +28 -0
  81. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rb +128 -0
  82. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb +143 -0
  83. data/lib/metronome_sdk/models/v1/customers/alert_list_params.rb +1 -3
  84. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +30 -1
  85. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +2 -0
  86. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +2 -0
  87. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +20 -61
  88. data/lib/metronome_sdk/models/v1/customers/credit_create_params.rb +6 -48
  89. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +8 -16
  90. data/lib/metronome_sdk/models/v1/customers/invoice.rb +68 -43
  91. data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_params.rb +1 -4
  92. data/lib/metronome_sdk/models/v1/customers/plan_add_params.rb +2 -6
  93. data/lib/metronome_sdk/models/v1/customers/plan_list_response.rb +2 -1
  94. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +4 -11
  95. data/lib/metronome_sdk/models/v1/plan_detail.rb +9 -5
  96. data/lib/metronome_sdk/models/v1/plan_list_charges_response.rb +2 -1
  97. data/lib/metronome_sdk/models/v1/plan_list_customers_response.rb +2 -1
  98. data/lib/metronome_sdk/models/v1/plan_list_response.rb +5 -1
  99. data/lib/metronome_sdk/models/v1/usage_ingest_params.rb +1 -4
  100. data/lib/metronome_sdk/models/v1/usage_list_params.rb +1 -3
  101. data/lib/metronome_sdk/models/v1/usage_list_response.rb +45 -62
  102. data/lib/metronome_sdk/models/v1/usage_search_response.rb +4 -7
  103. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +38 -58
  104. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +35 -49
  105. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +469 -2302
  106. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +358 -2414
  107. data/lib/metronome_sdk/models/v2/contract_list_response.rb +3 -4520
  108. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +3 -4528
  109. data/lib/metronome_sdk/models.rb +38 -0
  110. data/lib/metronome_sdk/resources/v1/alerts.rb +72 -2
  111. data/lib/metronome_sdk/resources/v1/audit_logs.rb +39 -4
  112. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +54 -4
  113. data/lib/metronome_sdk/resources/v1/contracts/products.rb +27 -6
  114. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rb +7 -2
  115. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +10 -2
  116. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +109 -10
  117. data/lib/metronome_sdk/resources/v1/contracts.rb +254 -18
  118. data/lib/metronome_sdk/resources/v1/credit_grants.rb +2 -1
  119. data/lib/metronome_sdk/resources/v1/custom_fields.rb +51 -14
  120. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +103 -8
  121. data/lib/metronome_sdk/resources/v1/customers/commits.rb +119 -9
  122. data/lib/metronome_sdk/resources/v1/customers/credits.rb +104 -8
  123. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +124 -8
  124. data/lib/metronome_sdk/resources/v1/customers.rb +169 -12
  125. data/lib/metronome_sdk/resources/v1/dashboards.rb +29 -3
  126. data/lib/metronome_sdk/resources/v1/invoices.rb +23 -2
  127. data/lib/metronome_sdk/resources/v1/pricing_units.rb +6 -1
  128. data/lib/metronome_sdk/resources/v1/services.rb +6 -4
  129. data/lib/metronome_sdk/resources/v1/usage.rb +185 -12
  130. data/lib/metronome_sdk/resources/v2/contracts.rb +118 -18
  131. data/lib/metronome_sdk/version.rb +1 -1
  132. data/lib/metronome_sdk.rb +24 -3
  133. data/rbi/metronome_sdk/errors.rbi +2 -2
  134. data/rbi/metronome_sdk/internal/body_cursor_page.rbi +22 -0
  135. data/rbi/metronome_sdk/internal/cursor_page_without_limit.rbi +22 -0
  136. data/rbi/metronome_sdk/internal/type/converter.rbi +58 -0
  137. data/rbi/metronome_sdk/internal/type/union.rbi +9 -2
  138. data/rbi/metronome_sdk/models/base_threshold_commit.rbi +58 -0
  139. data/rbi/metronome_sdk/models/commit.rbi +26 -348
  140. data/rbi/metronome_sdk/models/commit_hierarchy_configuration.rbi +280 -0
  141. data/rbi/metronome_sdk/models/commit_rate.rbi +85 -0
  142. data/rbi/metronome_sdk/models/commit_specifier.rbi +71 -0
  143. data/rbi/metronome_sdk/models/commit_specifier_input.rbi +74 -0
  144. data/rbi/metronome_sdk/models/contract.rbi +768 -0
  145. data/rbi/metronome_sdk/models/contract_v2.rbi +5822 -0
  146. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +184 -2507
  147. data/rbi/metronome_sdk/models/credit.rbi +10 -348
  148. data/rbi/metronome_sdk/models/discount.rbi +2 -0
  149. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +180 -0
  150. data/rbi/metronome_sdk/models/override.rbi +8 -193
  151. data/rbi/metronome_sdk/models/override_tier.rbi +29 -0
  152. data/rbi/metronome_sdk/models/overwrite_rate.rbi +137 -0
  153. data/rbi/metronome_sdk/models/payment_gate_config.rbi +312 -0
  154. data/rbi/metronome_sdk/models/payment_gate_config_v2.rbi +321 -0
  155. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +183 -0
  156. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +188 -0
  157. data/rbi/metronome_sdk/models/pro_service.rbi +2 -0
  158. data/rbi/metronome_sdk/models/recurring_commit_subscription_config.rbi +125 -0
  159. data/rbi/metronome_sdk/models/schedule_point_in_time.rbi +17 -1
  160. data/rbi/metronome_sdk/models/scheduled_charge.rbi +2 -0
  161. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +76 -0
  162. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -0
  163. data/rbi/metronome_sdk/models/subscription.rbi +460 -0
  164. data/rbi/metronome_sdk/models/update_base_threshold_commit.rbi +61 -0
  165. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +6 -3
  166. data/rbi/metronome_sdk/models/v1/billable_metric_list_response.rbi +2 -0
  167. data/rbi/metronome_sdk/models/v1/billable_metric_retrieve_response.rbi +2 -0
  168. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +120 -771
  169. data/rbi/metronome_sdk/models/v1/contract_create_historical_invoices_params.rbi +2 -0
  170. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1613 -4069
  171. data/rbi/metronome_sdk/models/v1/contract_list_balances_response.rbi +8 -59
  172. data/rbi/metronome_sdk/models/v1/contract_list_response.rbi +5 -2420
  173. data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbi +6 -129
  174. data/rbi/metronome_sdk/models/v1/contract_retrieve_response.rbi +4 -2419
  175. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +11 -0
  176. data/rbi/metronome_sdk/models/v1/contracts/product_list_response.rbi +2 -0
  177. data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_response.rbi +2 -0
  178. data/rbi/metronome_sdk/models/v1/contracts/rate_card_create_params.rbi +2 -0
  179. data/rbi/metronome_sdk/models/v1/contracts/rate_card_list_response.rbi +2 -0
  180. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbi +6 -129
  181. data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbi +2 -0
  182. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +4 -129
  183. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +4 -129
  184. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +4 -129
  185. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbi +6 -129
  186. data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_response.rbi +147 -198
  187. data/rbi/metronome_sdk/models/v1/credit_grant_list_response.rbi +2 -0
  188. data/rbi/metronome_sdk/models/v1/custom_field_list_keys_response.rbi +117 -165
  189. data/rbi/metronome_sdk/models/v1/custom_field_set_values_params.rbi +8 -1
  190. data/rbi/metronome_sdk/models/v1/customer.rbi +2 -0
  191. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +88 -3
  192. data/rbi/metronome_sdk/models/v1/customer_detail.rbi +2 -0
  193. data/rbi/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbi +2 -0
  194. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbi +51 -0
  195. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbi +265 -0
  196. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbi +348 -0
  197. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +60 -0
  198. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +10 -0
  199. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +10 -0
  200. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +19 -90
  201. data/rbi/metronome_sdk/models/v1/customers/credit_create_params.rbi +6 -90
  202. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +6 -3
  203. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +76 -0
  204. data/rbi/metronome_sdk/models/v1/customers/plan_list_response.rbi +2 -0
  205. data/rbi/metronome_sdk/models/v1/plan_detail.rbi +2 -0
  206. data/rbi/metronome_sdk/models/v1/plan_list_charges_response.rbi +2 -0
  207. data/rbi/metronome_sdk/models/v1/plan_list_customers_response.rbi +2 -0
  208. data/rbi/metronome_sdk/models/v1/plan_list_response.rbi +8 -1
  209. data/rbi/metronome_sdk/models/v1/usage_list_response.rbi +45 -86
  210. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +2 -0
  211. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +66 -76
  212. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +66 -76
  213. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +3563 -7329
  214. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1181 -6070
  215. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +5 -9867
  216. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +6 -9866
  217. data/rbi/metronome_sdk/models.rbi +44 -0
  218. data/rbi/metronome_sdk/resources/v1/alerts.rbi +72 -2
  219. data/rbi/metronome_sdk/resources/v1/audit_logs.rbi +39 -4
  220. data/rbi/metronome_sdk/resources/v1/billable_metrics.rbi +54 -4
  221. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +27 -5
  222. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rbi +7 -2
  223. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +10 -3
  224. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards.rbi +109 -9
  225. data/rbi/metronome_sdk/resources/v1/contracts.rbi +257 -16
  226. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +5 -1
  227. data/rbi/metronome_sdk/resources/v1/custom_fields.rbi +57 -14
  228. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +108 -5
  229. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +119 -10
  230. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +104 -9
  231. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +123 -7
  232. data/rbi/metronome_sdk/resources/v1/customers.rbi +156 -11
  233. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +29 -3
  234. data/rbi/metronome_sdk/resources/v1/invoices.rbi +23 -2
  235. data/rbi/metronome_sdk/resources/v1/pricing_units.rbi +6 -1
  236. data/rbi/metronome_sdk/resources/v1/services.rbi +6 -4
  237. data/rbi/metronome_sdk/resources/v1/usage.rbi +188 -12
  238. data/rbi/metronome_sdk/resources/v2/contracts.rbi +128 -23
  239. data/sig/metronome_sdk/internal/body_cursor_page.rbs +13 -0
  240. data/sig/metronome_sdk/internal/cursor_page_without_limit.rbs +13 -0
  241. data/sig/metronome_sdk/internal/type/converter.rbs +17 -0
  242. data/sig/metronome_sdk/internal/type/union.rbs +2 -2
  243. data/sig/metronome_sdk/models/base_threshold_commit.rbs +26 -0
  244. data/sig/metronome_sdk/models/commit.rbs +17 -170
  245. data/sig/metronome_sdk/models/commit_hierarchy_configuration.rbs +117 -0
  246. data/sig/metronome_sdk/models/commit_rate.rbs +48 -0
  247. data/sig/metronome_sdk/models/commit_specifier.rbs +47 -0
  248. data/sig/metronome_sdk/models/commit_specifier_input.rbs +47 -0
  249. data/sig/metronome_sdk/models/contract.rbs +398 -0
  250. data/sig/metronome_sdk/models/contract_v2.rbs +2881 -0
  251. data/sig/metronome_sdk/models/contract_without_amendments.rbs +54 -976
  252. data/sig/metronome_sdk/models/credit.rbs +12 -170
  253. data/sig/metronome_sdk/models/hierarchy_configuration.rbs +71 -0
  254. data/sig/metronome_sdk/models/override.rbs +12 -101
  255. data/sig/metronome_sdk/models/override_tier.rbs +17 -0
  256. data/sig/metronome_sdk/models/overwrite_rate.rbs +78 -0
  257. data/sig/metronome_sdk/models/payment_gate_config.rbs +123 -0
  258. data/sig/metronome_sdk/models/payment_gate_config_v2.rbs +123 -0
  259. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +82 -0
  260. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +82 -0
  261. data/sig/metronome_sdk/models/recurring_commit_subscription_config.rbs +51 -0
  262. data/sig/metronome_sdk/models/schedule_point_in_time.rbs +7 -0
  263. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +35 -0
  264. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +35 -0
  265. data/sig/metronome_sdk/models/subscription.rbs +215 -0
  266. data/sig/metronome_sdk/models/update_base_threshold_commit.rbs +28 -0
  267. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +4 -2
  268. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +62 -343
  269. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +218 -1234
  270. data/sig/metronome_sdk/models/v1/contract_list_balances_response.rbs +4 -25
  271. data/sig/metronome_sdk/models/v1/contract_list_response.rbs +4 -1041
  272. data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbs +6 -54
  273. data/sig/metronome_sdk/models/v1/contract_retrieve_response.rbs +4 -1041
  274. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +7 -0
  275. data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbs +6 -54
  276. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +6 -54
  277. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +6 -54
  278. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +6 -54
  279. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbs +6 -54
  280. data/sig/metronome_sdk/models/v1/credit_grant_list_entries_response.rbs +72 -94
  281. data/sig/metronome_sdk/models/v1/custom_field_list_keys_response.rbs +53 -75
  282. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +31 -4
  283. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbs +32 -0
  284. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbs +113 -0
  285. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbs +133 -0
  286. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +21 -0
  287. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +7 -1
  288. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +6 -1
  289. data/sig/metronome_sdk/models/v1/customers/commit_create_params.rbs +13 -50
  290. data/sig/metronome_sdk/models/v1/customers/credit_create_params.rbs +6 -50
  291. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +4 -2
  292. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +5 -0
  293. data/sig/metronome_sdk/models/v1/usage_list_response.rbs +33 -55
  294. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +24 -43
  295. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +24 -43
  296. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +400 -1911
  297. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +256 -2249
  298. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +4 -4426
  299. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +4 -4426
  300. data/sig/metronome_sdk/models.rbs +38 -0
  301. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +1 -0
  302. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -1
  303. data/sig/metronome_sdk/resources/v1/contracts.rbs +3 -3
  304. data/sig/metronome_sdk/resources/v1/credit_grants.rbs +1 -1
  305. data/sig/metronome_sdk/resources/v1/custom_fields.rbs +1 -1
  306. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +2 -1
  307. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +2 -2
  308. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +2 -2
  309. data/sig/metronome_sdk/resources/v1/customers.rbs +11 -0
  310. data/sig/metronome_sdk/resources/v1/usage.rbs +1 -1
  311. data/sig/metronome_sdk/resources/v2/contracts.rbs +9 -4
  312. metadata +74 -11
  313. data/lib/metronome_sdk/models/v1/customers/alert_list_response.rb +0 -29
  314. data/lib/metronome_sdk/models/v1/customers/commit_list_response.rb +0 -26
  315. data/lib/metronome_sdk/models/v1/customers/credit_list_response.rb +0 -26
  316. data/rbi/metronome_sdk/models/v1/customers/alert_list_response.rbi +0 -46
  317. data/rbi/metronome_sdk/models/v1/customers/commit_list_response.rbi +0 -45
  318. data/rbi/metronome_sdk/models/v1/customers/credit_list_response.rbi +0 -45
  319. data/sig/metronome_sdk/models/v1/customers/alert_list_response.rbs +0 -29
  320. data/sig/metronome_sdk/models/v1/customers/commit_list_response.rbs +0 -26
  321. data/sig/metronome_sdk/models/v1/customers/credit_list_response.rbs +0 -26
@@ -0,0 +1,768 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ class Contract < MetronomeSDK::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(MetronomeSDK::Contract, MetronomeSDK::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(String) }
12
+ attr_accessor :id
13
+
14
+ sig { returns(T::Array[MetronomeSDK::Contract::Amendment]) }
15
+ attr_accessor :amendments
16
+
17
+ sig { returns(MetronomeSDK::ContractWithoutAmendments) }
18
+ attr_reader :current
19
+
20
+ sig do
21
+ params(current: MetronomeSDK::ContractWithoutAmendments::OrHash).void
22
+ end
23
+ attr_writer :current
24
+
25
+ sig { returns(String) }
26
+ attr_accessor :customer_id
27
+
28
+ sig { returns(MetronomeSDK::ContractWithoutAmendments) }
29
+ attr_reader :initial
30
+
31
+ sig do
32
+ params(initial: MetronomeSDK::ContractWithoutAmendments::OrHash).void
33
+ end
34
+ attr_writer :initial
35
+
36
+ # RFC 3339 timestamp indicating when the contract was archived. If not returned,
37
+ # the contract is not archived.
38
+ sig { returns(T.nilable(Time)) }
39
+ attr_reader :archived_at
40
+
41
+ sig { params(archived_at: Time).void }
42
+ attr_writer :archived_at
43
+
44
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
45
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
46
+ attr_reader :custom_fields
47
+
48
+ sig { params(custom_fields: T::Hash[Symbol, String]).void }
49
+ attr_writer :custom_fields
50
+
51
+ # The billing provider configuration associated with a contract.
52
+ sig do
53
+ returns(
54
+ T.nilable(
55
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration
56
+ )
57
+ )
58
+ end
59
+ attr_reader :customer_billing_provider_configuration
60
+
61
+ sig do
62
+ params(
63
+ customer_billing_provider_configuration:
64
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::OrHash
65
+ ).void
66
+ end
67
+ attr_writer :customer_billing_provider_configuration
68
+
69
+ sig do
70
+ returns(T.nilable(MetronomeSDK::PrepaidBalanceThresholdConfiguration))
71
+ end
72
+ attr_reader :prepaid_balance_threshold_configuration
73
+
74
+ sig do
75
+ params(
76
+ prepaid_balance_threshold_configuration:
77
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::OrHash
78
+ ).void
79
+ end
80
+ attr_writer :prepaid_balance_threshold_configuration
81
+
82
+ # Priority of the contract.
83
+ sig { returns(T.nilable(Float)) }
84
+ attr_reader :priority
85
+
86
+ sig { params(priority: Float).void }
87
+ attr_writer :priority
88
+
89
+ # Determines which scheduled and commit charges to consolidate onto the Contract's
90
+ # usage invoice. The charge's `timestamp` must match the usage invoice's
91
+ # `ending_before` date for consolidation to occur. This field cannot be modified
92
+ # after a Contract has been created. If this field is omitted, charges will appear
93
+ # on a separate invoice from usage charges.
94
+ sig do
95
+ returns(
96
+ T.nilable(
97
+ MetronomeSDK::Contract::ScheduledChargesOnUsageInvoices::TaggedSymbol
98
+ )
99
+ )
100
+ end
101
+ attr_reader :scheduled_charges_on_usage_invoices
102
+
103
+ sig do
104
+ params(
105
+ scheduled_charges_on_usage_invoices:
106
+ MetronomeSDK::Contract::ScheduledChargesOnUsageInvoices::OrSymbol
107
+ ).void
108
+ end
109
+ attr_writer :scheduled_charges_on_usage_invoices
110
+
111
+ sig { returns(T.nilable(MetronomeSDK::SpendThresholdConfiguration)) }
112
+ attr_reader :spend_threshold_configuration
113
+
114
+ sig do
115
+ params(
116
+ spend_threshold_configuration:
117
+ MetronomeSDK::SpendThresholdConfiguration::OrHash
118
+ ).void
119
+ end
120
+ attr_writer :spend_threshold_configuration
121
+
122
+ # List of subscriptions on the contract.
123
+ sig { returns(T.nilable(T::Array[MetronomeSDK::Subscription])) }
124
+ attr_reader :subscriptions
125
+
126
+ sig do
127
+ params(subscriptions: T::Array[MetronomeSDK::Subscription::OrHash]).void
128
+ end
129
+ attr_writer :subscriptions
130
+
131
+ # Prevents the creation of duplicates. If a request to create a record is made
132
+ # with a previously used uniqueness key, a new record will not be created and the
133
+ # request will fail with a 409 error.
134
+ sig { returns(T.nilable(String)) }
135
+ attr_reader :uniqueness_key
136
+
137
+ sig { params(uniqueness_key: String).void }
138
+ attr_writer :uniqueness_key
139
+
140
+ sig do
141
+ params(
142
+ id: String,
143
+ amendments: T::Array[MetronomeSDK::Contract::Amendment::OrHash],
144
+ current: MetronomeSDK::ContractWithoutAmendments::OrHash,
145
+ customer_id: String,
146
+ initial: MetronomeSDK::ContractWithoutAmendments::OrHash,
147
+ archived_at: Time,
148
+ custom_fields: T::Hash[Symbol, String],
149
+ customer_billing_provider_configuration:
150
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::OrHash,
151
+ prepaid_balance_threshold_configuration:
152
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::OrHash,
153
+ priority: Float,
154
+ scheduled_charges_on_usage_invoices:
155
+ MetronomeSDK::Contract::ScheduledChargesOnUsageInvoices::OrSymbol,
156
+ spend_threshold_configuration:
157
+ MetronomeSDK::SpendThresholdConfiguration::OrHash,
158
+ subscriptions: T::Array[MetronomeSDK::Subscription::OrHash],
159
+ uniqueness_key: String
160
+ ).returns(T.attached_class)
161
+ end
162
+ def self.new(
163
+ id:,
164
+ amendments:,
165
+ current:,
166
+ customer_id:,
167
+ initial:,
168
+ # RFC 3339 timestamp indicating when the contract was archived. If not returned,
169
+ # the contract is not archived.
170
+ archived_at: nil,
171
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
172
+ custom_fields: nil,
173
+ # The billing provider configuration associated with a contract.
174
+ customer_billing_provider_configuration: nil,
175
+ prepaid_balance_threshold_configuration: nil,
176
+ # Priority of the contract.
177
+ priority: nil,
178
+ # Determines which scheduled and commit charges to consolidate onto the Contract's
179
+ # usage invoice. The charge's `timestamp` must match the usage invoice's
180
+ # `ending_before` date for consolidation to occur. This field cannot be modified
181
+ # after a Contract has been created. If this field is omitted, charges will appear
182
+ # on a separate invoice from usage charges.
183
+ scheduled_charges_on_usage_invoices: nil,
184
+ spend_threshold_configuration: nil,
185
+ # List of subscriptions on the contract.
186
+ subscriptions: nil,
187
+ # Prevents the creation of duplicates. If a request to create a record is made
188
+ # with a previously used uniqueness key, a new record will not be created and the
189
+ # request will fail with a 409 error.
190
+ uniqueness_key: nil
191
+ )
192
+ end
193
+
194
+ sig do
195
+ override.returns(
196
+ {
197
+ id: String,
198
+ amendments: T::Array[MetronomeSDK::Contract::Amendment],
199
+ current: MetronomeSDK::ContractWithoutAmendments,
200
+ customer_id: String,
201
+ initial: MetronomeSDK::ContractWithoutAmendments,
202
+ archived_at: Time,
203
+ custom_fields: T::Hash[Symbol, String],
204
+ customer_billing_provider_configuration:
205
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration,
206
+ prepaid_balance_threshold_configuration:
207
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration,
208
+ priority: Float,
209
+ scheduled_charges_on_usage_invoices:
210
+ MetronomeSDK::Contract::ScheduledChargesOnUsageInvoices::TaggedSymbol,
211
+ spend_threshold_configuration:
212
+ MetronomeSDK::SpendThresholdConfiguration,
213
+ subscriptions: T::Array[MetronomeSDK::Subscription],
214
+ uniqueness_key: String
215
+ }
216
+ )
217
+ end
218
+ def to_hash
219
+ end
220
+
221
+ class Amendment < MetronomeSDK::Internal::Type::BaseModel
222
+ OrHash =
223
+ T.type_alias do
224
+ T.any(
225
+ MetronomeSDK::Contract::Amendment,
226
+ MetronomeSDK::Internal::AnyHash
227
+ )
228
+ end
229
+
230
+ sig { returns(String) }
231
+ attr_accessor :id
232
+
233
+ sig { returns(T::Array[MetronomeSDK::Commit]) }
234
+ attr_accessor :commits
235
+
236
+ sig { returns(Time) }
237
+ attr_accessor :created_at
238
+
239
+ sig { returns(String) }
240
+ attr_accessor :created_by
241
+
242
+ sig { returns(T::Array[MetronomeSDK::Override]) }
243
+ attr_accessor :overrides
244
+
245
+ sig { returns(T::Array[MetronomeSDK::ScheduledCharge]) }
246
+ attr_accessor :scheduled_charges
247
+
248
+ sig { returns(Time) }
249
+ attr_accessor :starting_at
250
+
251
+ sig { returns(T.nilable(T::Array[MetronomeSDK::Credit])) }
252
+ attr_reader :credits
253
+
254
+ sig { params(credits: T::Array[MetronomeSDK::Credit::OrHash]).void }
255
+ attr_writer :credits
256
+
257
+ # This field's availability is dependent on your client's configuration.
258
+ sig { returns(T.nilable(T::Array[MetronomeSDK::Discount])) }
259
+ attr_reader :discounts
260
+
261
+ sig { params(discounts: T::Array[MetronomeSDK::Discount::OrHash]).void }
262
+ attr_writer :discounts
263
+
264
+ # This field's availability is dependent on your client's configuration.
265
+ sig { returns(T.nilable(String)) }
266
+ attr_reader :netsuite_sales_order_id
267
+
268
+ sig { params(netsuite_sales_order_id: String).void }
269
+ attr_writer :netsuite_sales_order_id
270
+
271
+ # This field's availability is dependent on your client's configuration.
272
+ sig { returns(T.nilable(T::Array[MetronomeSDK::ProService])) }
273
+ attr_reader :professional_services
274
+
275
+ sig do
276
+ params(
277
+ professional_services: T::Array[MetronomeSDK::ProService::OrHash]
278
+ ).void
279
+ end
280
+ attr_writer :professional_services
281
+
282
+ # This field's availability is dependent on your client's configuration.
283
+ sig do
284
+ returns(
285
+ T.nilable(
286
+ T::Array[MetronomeSDK::Contract::Amendment::ResellerRoyalty]
287
+ )
288
+ )
289
+ end
290
+ attr_reader :reseller_royalties
291
+
292
+ sig do
293
+ params(
294
+ reseller_royalties:
295
+ T::Array[
296
+ MetronomeSDK::Contract::Amendment::ResellerRoyalty::OrHash
297
+ ]
298
+ ).void
299
+ end
300
+ attr_writer :reseller_royalties
301
+
302
+ # This field's availability is dependent on your client's configuration.
303
+ sig { returns(T.nilable(String)) }
304
+ attr_reader :salesforce_opportunity_id
305
+
306
+ sig { params(salesforce_opportunity_id: String).void }
307
+ attr_writer :salesforce_opportunity_id
308
+
309
+ sig do
310
+ params(
311
+ id: String,
312
+ commits: T::Array[MetronomeSDK::Commit::OrHash],
313
+ created_at: Time,
314
+ created_by: String,
315
+ overrides: T::Array[MetronomeSDK::Override::OrHash],
316
+ scheduled_charges: T::Array[MetronomeSDK::ScheduledCharge::OrHash],
317
+ starting_at: Time,
318
+ credits: T::Array[MetronomeSDK::Credit::OrHash],
319
+ discounts: T::Array[MetronomeSDK::Discount::OrHash],
320
+ netsuite_sales_order_id: String,
321
+ professional_services: T::Array[MetronomeSDK::ProService::OrHash],
322
+ reseller_royalties:
323
+ T::Array[
324
+ MetronomeSDK::Contract::Amendment::ResellerRoyalty::OrHash
325
+ ],
326
+ salesforce_opportunity_id: String
327
+ ).returns(T.attached_class)
328
+ end
329
+ def self.new(
330
+ id:,
331
+ commits:,
332
+ created_at:,
333
+ created_by:,
334
+ overrides:,
335
+ scheduled_charges:,
336
+ starting_at:,
337
+ credits: nil,
338
+ # This field's availability is dependent on your client's configuration.
339
+ discounts: nil,
340
+ # This field's availability is dependent on your client's configuration.
341
+ netsuite_sales_order_id: nil,
342
+ # This field's availability is dependent on your client's configuration.
343
+ professional_services: nil,
344
+ # This field's availability is dependent on your client's configuration.
345
+ reseller_royalties: nil,
346
+ # This field's availability is dependent on your client's configuration.
347
+ salesforce_opportunity_id: nil
348
+ )
349
+ end
350
+
351
+ sig do
352
+ override.returns(
353
+ {
354
+ id: String,
355
+ commits: T::Array[MetronomeSDK::Commit],
356
+ created_at: Time,
357
+ created_by: String,
358
+ overrides: T::Array[MetronomeSDK::Override],
359
+ scheduled_charges: T::Array[MetronomeSDK::ScheduledCharge],
360
+ starting_at: Time,
361
+ credits: T::Array[MetronomeSDK::Credit],
362
+ discounts: T::Array[MetronomeSDK::Discount],
363
+ netsuite_sales_order_id: String,
364
+ professional_services: T::Array[MetronomeSDK::ProService],
365
+ reseller_royalties:
366
+ T::Array[MetronomeSDK::Contract::Amendment::ResellerRoyalty],
367
+ salesforce_opportunity_id: String
368
+ }
369
+ )
370
+ end
371
+ def to_hash
372
+ end
373
+
374
+ class ResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel
375
+ OrHash =
376
+ T.type_alias do
377
+ T.any(
378
+ MetronomeSDK::Contract::Amendment::ResellerRoyalty,
379
+ MetronomeSDK::Internal::AnyHash
380
+ )
381
+ end
382
+
383
+ sig do
384
+ returns(
385
+ MetronomeSDK::Contract::Amendment::ResellerRoyalty::ResellerType::TaggedSymbol
386
+ )
387
+ end
388
+ attr_accessor :reseller_type
389
+
390
+ sig { returns(T.nilable(String)) }
391
+ attr_reader :aws_account_number
392
+
393
+ sig { params(aws_account_number: String).void }
394
+ attr_writer :aws_account_number
395
+
396
+ sig { returns(T.nilable(String)) }
397
+ attr_reader :aws_offer_id
398
+
399
+ sig { params(aws_offer_id: String).void }
400
+ attr_writer :aws_offer_id
401
+
402
+ sig { returns(T.nilable(String)) }
403
+ attr_reader :aws_payer_reference_id
404
+
405
+ sig { params(aws_payer_reference_id: String).void }
406
+ attr_writer :aws_payer_reference_id
407
+
408
+ sig { returns(T.nilable(Time)) }
409
+ attr_accessor :ending_before
410
+
411
+ sig { returns(T.nilable(Float)) }
412
+ attr_reader :fraction
413
+
414
+ sig { params(fraction: Float).void }
415
+ attr_writer :fraction
416
+
417
+ sig { returns(T.nilable(String)) }
418
+ attr_reader :gcp_account_id
419
+
420
+ sig { params(gcp_account_id: String).void }
421
+ attr_writer :gcp_account_id
422
+
423
+ sig { returns(T.nilable(String)) }
424
+ attr_reader :gcp_offer_id
425
+
426
+ sig { params(gcp_offer_id: String).void }
427
+ attr_writer :gcp_offer_id
428
+
429
+ sig { returns(T.nilable(String)) }
430
+ attr_reader :netsuite_reseller_id
431
+
432
+ sig { params(netsuite_reseller_id: String).void }
433
+ attr_writer :netsuite_reseller_id
434
+
435
+ sig { returns(T.nilable(Float)) }
436
+ attr_reader :reseller_contract_value
437
+
438
+ sig { params(reseller_contract_value: Float).void }
439
+ attr_writer :reseller_contract_value
440
+
441
+ sig { returns(T.nilable(Time)) }
442
+ attr_reader :starting_at
443
+
444
+ sig { params(starting_at: Time).void }
445
+ attr_writer :starting_at
446
+
447
+ sig do
448
+ params(
449
+ reseller_type:
450
+ MetronomeSDK::Contract::Amendment::ResellerRoyalty::ResellerType::OrSymbol,
451
+ aws_account_number: String,
452
+ aws_offer_id: String,
453
+ aws_payer_reference_id: String,
454
+ ending_before: T.nilable(Time),
455
+ fraction: Float,
456
+ gcp_account_id: String,
457
+ gcp_offer_id: String,
458
+ netsuite_reseller_id: String,
459
+ reseller_contract_value: Float,
460
+ starting_at: Time
461
+ ).returns(T.attached_class)
462
+ end
463
+ def self.new(
464
+ reseller_type:,
465
+ aws_account_number: nil,
466
+ aws_offer_id: nil,
467
+ aws_payer_reference_id: nil,
468
+ ending_before: nil,
469
+ fraction: nil,
470
+ gcp_account_id: nil,
471
+ gcp_offer_id: nil,
472
+ netsuite_reseller_id: nil,
473
+ reseller_contract_value: nil,
474
+ starting_at: nil
475
+ )
476
+ end
477
+
478
+ sig do
479
+ override.returns(
480
+ {
481
+ reseller_type:
482
+ MetronomeSDK::Contract::Amendment::ResellerRoyalty::ResellerType::TaggedSymbol,
483
+ aws_account_number: String,
484
+ aws_offer_id: String,
485
+ aws_payer_reference_id: String,
486
+ ending_before: T.nilable(Time),
487
+ fraction: Float,
488
+ gcp_account_id: String,
489
+ gcp_offer_id: String,
490
+ netsuite_reseller_id: String,
491
+ reseller_contract_value: Float,
492
+ starting_at: Time
493
+ }
494
+ )
495
+ end
496
+ def to_hash
497
+ end
498
+
499
+ module ResellerType
500
+ extend MetronomeSDK::Internal::Type::Enum
501
+
502
+ TaggedSymbol =
503
+ T.type_alias do
504
+ T.all(
505
+ Symbol,
506
+ MetronomeSDK::Contract::Amendment::ResellerRoyalty::ResellerType
507
+ )
508
+ end
509
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
510
+
511
+ AWS =
512
+ T.let(
513
+ :AWS,
514
+ MetronomeSDK::Contract::Amendment::ResellerRoyalty::ResellerType::TaggedSymbol
515
+ )
516
+ AWS_PRO_SERVICE =
517
+ T.let(
518
+ :AWS_PRO_SERVICE,
519
+ MetronomeSDK::Contract::Amendment::ResellerRoyalty::ResellerType::TaggedSymbol
520
+ )
521
+ GCP =
522
+ T.let(
523
+ :GCP,
524
+ MetronomeSDK::Contract::Amendment::ResellerRoyalty::ResellerType::TaggedSymbol
525
+ )
526
+ GCP_PRO_SERVICE =
527
+ T.let(
528
+ :GCP_PRO_SERVICE,
529
+ MetronomeSDK::Contract::Amendment::ResellerRoyalty::ResellerType::TaggedSymbol
530
+ )
531
+
532
+ sig do
533
+ override.returns(
534
+ T::Array[
535
+ MetronomeSDK::Contract::Amendment::ResellerRoyalty::ResellerType::TaggedSymbol
536
+ ]
537
+ )
538
+ end
539
+ def self.values
540
+ end
541
+ end
542
+ end
543
+ end
544
+
545
+ class CustomerBillingProviderConfiguration < MetronomeSDK::Internal::Type::BaseModel
546
+ OrHash =
547
+ T.type_alias do
548
+ T.any(
549
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration,
550
+ MetronomeSDK::Internal::AnyHash
551
+ )
552
+ end
553
+
554
+ sig { returns(T.nilable(Time)) }
555
+ attr_accessor :archived_at
556
+
557
+ sig do
558
+ returns(
559
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
560
+ )
561
+ end
562
+ attr_accessor :billing_provider
563
+
564
+ sig do
565
+ returns(
566
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol
567
+ )
568
+ end
569
+ attr_accessor :delivery_method
570
+
571
+ sig { returns(T.nilable(String)) }
572
+ attr_reader :id
573
+
574
+ sig { params(id: String).void }
575
+ attr_writer :id
576
+
577
+ # Configuration for the billing provider. The structure of this object is specific
578
+ # to the billing provider.
579
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
580
+ attr_reader :configuration
581
+
582
+ sig { params(configuration: T::Hash[Symbol, T.anything]).void }
583
+ attr_writer :configuration
584
+
585
+ # The billing provider configuration associated with a contract.
586
+ sig do
587
+ params(
588
+ archived_at: T.nilable(Time),
589
+ billing_provider:
590
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::BillingProvider::OrSymbol,
591
+ delivery_method:
592
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::DeliveryMethod::OrSymbol,
593
+ id: String,
594
+ configuration: T::Hash[Symbol, T.anything]
595
+ ).returns(T.attached_class)
596
+ end
597
+ def self.new(
598
+ archived_at:,
599
+ billing_provider:,
600
+ delivery_method:,
601
+ id: nil,
602
+ # Configuration for the billing provider. The structure of this object is specific
603
+ # to the billing provider.
604
+ configuration: nil
605
+ )
606
+ end
607
+
608
+ sig do
609
+ override.returns(
610
+ {
611
+ archived_at: T.nilable(Time),
612
+ billing_provider:
613
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol,
614
+ delivery_method:
615
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol,
616
+ id: String,
617
+ configuration: T::Hash[Symbol, T.anything]
618
+ }
619
+ )
620
+ end
621
+ def to_hash
622
+ end
623
+
624
+ module BillingProvider
625
+ extend MetronomeSDK::Internal::Type::Enum
626
+
627
+ TaggedSymbol =
628
+ T.type_alias do
629
+ T.all(
630
+ Symbol,
631
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::BillingProvider
632
+ )
633
+ end
634
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
635
+
636
+ AWS_MARKETPLACE =
637
+ T.let(
638
+ :aws_marketplace,
639
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
640
+ )
641
+ STRIPE =
642
+ T.let(
643
+ :stripe,
644
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
645
+ )
646
+ NETSUITE =
647
+ T.let(
648
+ :netsuite,
649
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
650
+ )
651
+ CUSTOM =
652
+ T.let(
653
+ :custom,
654
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
655
+ )
656
+ AZURE_MARKETPLACE =
657
+ T.let(
658
+ :azure_marketplace,
659
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
660
+ )
661
+ QUICKBOOKS_ONLINE =
662
+ T.let(
663
+ :quickbooks_online,
664
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
665
+ )
666
+ WORKDAY =
667
+ T.let(
668
+ :workday,
669
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
670
+ )
671
+ GCP_MARKETPLACE =
672
+ T.let(
673
+ :gcp_marketplace,
674
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
675
+ )
676
+
677
+ sig do
678
+ override.returns(
679
+ T::Array[
680
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
681
+ ]
682
+ )
683
+ end
684
+ def self.values
685
+ end
686
+ end
687
+
688
+ module DeliveryMethod
689
+ extend MetronomeSDK::Internal::Type::Enum
690
+
691
+ TaggedSymbol =
692
+ T.type_alias do
693
+ T.all(
694
+ Symbol,
695
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::DeliveryMethod
696
+ )
697
+ end
698
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
699
+
700
+ DIRECT_TO_BILLING_PROVIDER =
701
+ T.let(
702
+ :direct_to_billing_provider,
703
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol
704
+ )
705
+ AWS_SQS =
706
+ T.let(
707
+ :aws_sqs,
708
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol
709
+ )
710
+ TACKLE =
711
+ T.let(
712
+ :tackle,
713
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol
714
+ )
715
+ AWS_SNS =
716
+ T.let(
717
+ :aws_sns,
718
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol
719
+ )
720
+
721
+ sig do
722
+ override.returns(
723
+ T::Array[
724
+ MetronomeSDK::Contract::CustomerBillingProviderConfiguration::DeliveryMethod::TaggedSymbol
725
+ ]
726
+ )
727
+ end
728
+ def self.values
729
+ end
730
+ end
731
+ end
732
+
733
+ # Determines which scheduled and commit charges to consolidate onto the Contract's
734
+ # usage invoice. The charge's `timestamp` must match the usage invoice's
735
+ # `ending_before` date for consolidation to occur. This field cannot be modified
736
+ # after a Contract has been created. If this field is omitted, charges will appear
737
+ # on a separate invoice from usage charges.
738
+ module ScheduledChargesOnUsageInvoices
739
+ extend MetronomeSDK::Internal::Type::Enum
740
+
741
+ TaggedSymbol =
742
+ T.type_alias do
743
+ T.all(
744
+ Symbol,
745
+ MetronomeSDK::Contract::ScheduledChargesOnUsageInvoices
746
+ )
747
+ end
748
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
749
+
750
+ ALL =
751
+ T.let(
752
+ :ALL,
753
+ MetronomeSDK::Contract::ScheduledChargesOnUsageInvoices::TaggedSymbol
754
+ )
755
+
756
+ sig do
757
+ override.returns(
758
+ T::Array[
759
+ MetronomeSDK::Contract::ScheduledChargesOnUsageInvoices::TaggedSymbol
760
+ ]
761
+ )
762
+ end
763
+ def self.values
764
+ end
765
+ end
766
+ end
767
+ end
768
+ end