metronome-sdk 1.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +91 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/errors.rb +25 -11
  5. data/lib/metronome_sdk/file_part.rb +10 -7
  6. data/lib/metronome_sdk/internal/body_cursor_page.rb +1 -1
  7. data/lib/metronome_sdk/internal/cursor_page.rb +1 -1
  8. data/lib/metronome_sdk/internal/cursor_page_without_limit.rb +1 -1
  9. data/lib/metronome_sdk/internal/transport/base_client.rb +11 -7
  10. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +34 -31
  11. data/lib/metronome_sdk/internal/type/base_page.rb +1 -1
  12. data/lib/metronome_sdk/internal/type/enum.rb +25 -0
  13. data/lib/metronome_sdk/internal/type/file_input.rb +7 -4
  14. data/lib/metronome_sdk/internal/util.rb +8 -7
  15. data/lib/metronome_sdk/models/contract.rb +1 -0
  16. data/lib/metronome_sdk/models/contract_v2.rb +275 -6
  17. data/lib/metronome_sdk/models/contract_without_amendments.rb +2 -2
  18. data/lib/metronome_sdk/models/hierarchy_configuration.rb +123 -2
  19. data/lib/metronome_sdk/models/payment_gate_config.rb +1 -0
  20. data/lib/metronome_sdk/models/payment_gate_config_v2.rb +1 -0
  21. data/lib/metronome_sdk/models/subscription.rb +95 -1
  22. data/lib/metronome_sdk/models/v1/alert_archive_params.rb +8 -4
  23. data/lib/metronome_sdk/models/v1/alert_create_params.rb +38 -36
  24. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +1 -0
  25. data/lib/metronome_sdk/models/v1/contract_create_params.rb +157 -9
  26. data/lib/metronome_sdk/models/v1/contract_list_balances_params.rb +9 -1
  27. data/lib/metronome_sdk/models/v1/customer_create_params.rb +11 -1
  28. data/lib/metronome_sdk/models/v1/customer_detail.rb +9 -1
  29. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +19 -25
  30. data/lib/metronome_sdk/models/v1/customer_preview_events_response.rb +3 -3
  31. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rb +1 -0
  32. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb +1 -0
  33. data/lib/metronome_sdk/models/v1/customers/alert_list_params.rb +3 -3
  34. data/lib/metronome_sdk/models/v1/customers/alert_reset_params.rb +2 -2
  35. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +12 -12
  36. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +6 -1
  37. data/lib/metronome_sdk/models/v1/customers/billing_config_delete_params.rb +1 -0
  38. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rb +1 -0
  39. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +6 -1
  40. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +1 -1
  41. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +41 -38
  42. data/lib/metronome_sdk/models/v1/customers/invoice.rb +256 -16
  43. data/lib/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rb +30 -0
  44. data/lib/metronome_sdk/models/v1/payment.rb +157 -0
  45. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +28 -0
  46. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +18 -0
  47. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +28 -0
  48. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +18 -0
  49. data/lib/metronome_sdk/models/v1/payment_list_params.rb +53 -0
  50. data/lib/metronome_sdk/models/v1/payment_status.rb +19 -0
  51. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rb +65 -0
  52. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rb +12 -0
  53. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_params.rb +73 -0
  54. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_response.rb +31 -0
  55. data/lib/metronome_sdk/models/v1/settings/billing_provider_list_params.rb +26 -0
  56. data/lib/metronome_sdk/models/v1/settings/billing_provider_list_response.rb +105 -0
  57. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +9 -1
  58. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +9 -1
  59. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +219 -9
  60. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +195 -8
  61. data/lib/metronome_sdk/resources/v1/alerts.rb +57 -53
  62. data/lib/metronome_sdk/resources/v1/contracts.rb +8 -5
  63. data/lib/metronome_sdk/resources/v1/credit_grants.rb +10 -5
  64. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +70 -51
  65. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +7 -4
  66. data/lib/metronome_sdk/resources/v1/customers/commits.rb +2 -1
  67. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +57 -1
  68. data/lib/metronome_sdk/resources/v1/customers/plans.rb +8 -4
  69. data/lib/metronome_sdk/resources/v1/customers.rb +13 -8
  70. data/lib/metronome_sdk/resources/v1/payments.rb +102 -0
  71. data/lib/metronome_sdk/resources/v1/plans.rb +8 -4
  72. data/lib/metronome_sdk/resources/v1/settings/billing_providers.rb +75 -0
  73. data/lib/metronome_sdk/resources/v1/settings.rb +55 -0
  74. data/lib/metronome_sdk/resources/v1/usage.rb +4 -2
  75. data/lib/metronome_sdk/resources/v1.rb +8 -0
  76. data/lib/metronome_sdk/resources/v2/contracts.rb +9 -3
  77. data/lib/metronome_sdk/version.rb +1 -1
  78. data/lib/metronome_sdk.rb +17 -0
  79. data/rbi/metronome_sdk/errors.rbi +29 -2
  80. data/rbi/metronome_sdk/file_part.rbi +1 -1
  81. data/rbi/metronome_sdk/internal/transport/base_client.rbi +4 -5
  82. data/rbi/metronome_sdk/internal/type/base_page.rbi +1 -1
  83. data/rbi/metronome_sdk/internal/util.rbi +1 -1
  84. data/rbi/metronome_sdk/models/contract.rbi +5 -0
  85. data/rbi/metronome_sdk/models/contract_v2.rbi +635 -10
  86. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +2 -2
  87. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +286 -6
  88. data/rbi/metronome_sdk/models/payment_gate_config.rbi +5 -0
  89. data/rbi/metronome_sdk/models/payment_gate_config_v2.rbi +5 -0
  90. data/rbi/metronome_sdk/models/subscription.rbi +190 -0
  91. data/rbi/metronome_sdk/models/v1/alert_archive_params.rbi +6 -4
  92. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +51 -47
  93. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +5 -0
  94. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +326 -10
  95. data/rbi/metronome_sdk/models/v1/contract_list_balances_params.rbi +11 -0
  96. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +11 -0
  97. data/rbi/metronome_sdk/models/v1/customer_detail.rbi +8 -0
  98. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +24 -32
  99. data/rbi/metronome_sdk/models/v1/customer_preview_events_response.rbi +10 -9
  100. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbi +5 -0
  101. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbi +5 -0
  102. data/rbi/metronome_sdk/models/v1/customers/alert_list_params.rbi +4 -4
  103. data/rbi/metronome_sdk/models/v1/customers/alert_reset_params.rbi +2 -2
  104. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +14 -14
  105. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +11 -0
  106. data/rbi/metronome_sdk/models/v1/customers/billing_config_delete_params.rbi +5 -0
  107. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rbi +5 -0
  108. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +6 -0
  109. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +2 -2
  110. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +53 -44
  111. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +462 -38
  112. data/rbi/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rbi +50 -0
  113. data/rbi/metronome_sdk/models/v1/payment.rbi +324 -0
  114. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +48 -0
  115. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +35 -0
  116. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +48 -0
  117. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +35 -0
  118. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +91 -0
  119. data/rbi/metronome_sdk/models/v1/payment_status.rbi +33 -0
  120. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbi +115 -0
  121. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rbi +25 -0
  122. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_params.rbi +157 -0
  123. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_response.rbi +75 -0
  124. data/rbi/metronome_sdk/models/v1/settings/billing_provider_list_params.rbi +50 -0
  125. data/rbi/metronome_sdk/models/v1/settings/billing_provider_list_response.rbi +245 -0
  126. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +18 -0
  127. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +18 -0
  128. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +536 -12
  129. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +462 -14
  130. data/rbi/metronome_sdk/resources/v1/alerts.rbi +68 -64
  131. data/rbi/metronome_sdk/resources/v1/contracts.rbi +8 -4
  132. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +10 -5
  133. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +73 -54
  134. data/rbi/metronome_sdk/resources/v1/customers/billing_config.rbi +8 -4
  135. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +3 -2
  136. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +38 -1
  137. data/rbi/metronome_sdk/resources/v1/customers/plans.rbi +8 -4
  138. data/rbi/metronome_sdk/resources/v1/customers.rbi +17 -11
  139. data/rbi/metronome_sdk/resources/v1/payments.rbi +72 -0
  140. data/rbi/metronome_sdk/resources/v1/plans.rbi +8 -4
  141. data/rbi/metronome_sdk/resources/v1/settings/billing_providers.rbi +63 -0
  142. data/rbi/metronome_sdk/resources/v1/settings.rbi +47 -0
  143. data/rbi/metronome_sdk/resources/v1/usage.rbi +4 -2
  144. data/rbi/metronome_sdk/resources/v1.rbi +6 -0
  145. data/rbi/metronome_sdk/resources/v2/contracts.rbi +14 -0
  146. data/sig/metronome_sdk/errors.rbs +7 -0
  147. data/sig/metronome_sdk/file_part.rbs +1 -1
  148. data/sig/metronome_sdk/models/contract.rbs +2 -0
  149. data/sig/metronome_sdk/models/contract_v2.rbs +241 -12
  150. data/sig/metronome_sdk/models/hierarchy_configuration.rbs +87 -6
  151. data/sig/metronome_sdk/models/payment_gate_config.rbs +2 -1
  152. data/sig/metronome_sdk/models/payment_gate_config_v2.rbs +2 -1
  153. data/sig/metronome_sdk/models/subscription.rbs +80 -0
  154. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +2 -1
  155. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +91 -5
  156. data/sig/metronome_sdk/models/v1/contract_list_balances_params.rbs +7 -0
  157. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +2 -0
  158. data/sig/metronome_sdk/models/v1/customer_detail.rbs +5 -0
  159. data/sig/metronome_sdk/models/v1/customer_preview_events_params.rbs +0 -7
  160. data/sig/metronome_sdk/models/v1/customer_preview_events_response.rbs +6 -4
  161. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbs +2 -0
  162. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbs +2 -0
  163. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +2 -0
  164. data/sig/metronome_sdk/models/v1/customers/billing_config_delete_params.rbs +2 -0
  165. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rbs +2 -0
  166. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +2 -0
  167. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +244 -19
  168. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rbs +32 -0
  169. data/sig/metronome_sdk/models/v1/payment.rbs +198 -0
  170. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +30 -0
  171. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +15 -0
  172. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +30 -0
  173. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +15 -0
  174. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +56 -0
  175. data/sig/metronome_sdk/models/v1/payment_status.rbs +19 -0
  176. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbs +54 -0
  177. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rbs +13 -0
  178. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_params.rbs +64 -0
  179. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_response.rbs +34 -0
  180. data/sig/metronome_sdk/models/v1/settings/billing_provider_list_params.rbs +28 -0
  181. data/sig/metronome_sdk/models/v1/settings/billing_provider_list_response.rbs +102 -0
  182. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +9 -0
  183. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +9 -0
  184. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +184 -7
  185. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +221 -18
  186. data/sig/metronome_sdk/resources/v1/contracts.rbs +1 -0
  187. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +6 -0
  188. data/sig/metronome_sdk/resources/v1/payments.rbs +30 -0
  189. data/sig/metronome_sdk/resources/v1/settings/billing_providers.rbs +23 -0
  190. data/sig/metronome_sdk/resources/v1/settings.rbs +19 -0
  191. data/sig/metronome_sdk/resources/v1.rbs +4 -0
  192. data/sig/metronome_sdk/resources/v2/contracts.rbs +3 -0
  193. metadata +53 -2
@@ -111,15 +111,19 @@ module MetronomeSDK
111
111
 
112
112
  # Either a **parent** configuration with a list of children or a **child**
113
113
  # configuration with a single parent.
114
- sig { returns(T.nilable(MetronomeSDK::HierarchyConfiguration::Variants)) }
114
+ sig do
115
+ returns(
116
+ T.nilable(MetronomeSDK::ContractV2::HierarchyConfiguration::Variants)
117
+ )
118
+ end
115
119
  attr_reader :hierarchy_configuration
116
120
 
117
121
  sig do
118
122
  params(
119
123
  hierarchy_configuration:
120
124
  T.any(
121
- MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::OrHash,
122
- MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::OrHash
125
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::OrHash,
126
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::OrHash
123
127
  )
124
128
  ).void
125
129
  end
@@ -328,8 +332,8 @@ module MetronomeSDK
328
332
  has_more: MetronomeSDK::ContractV2::HasMore::OrHash,
329
333
  hierarchy_configuration:
330
334
  T.any(
331
- MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::OrHash,
332
- MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::OrHash
335
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::OrHash,
336
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::OrHash
333
337
  ),
334
338
  multiplier_override_prioritization:
335
339
  MetronomeSDK::ContractV2::MultiplierOverridePrioritization::OrSymbol,
@@ -444,7 +448,7 @@ module MetronomeSDK
444
448
  ending_before: Time,
445
449
  has_more: MetronomeSDK::ContractV2::HasMore,
446
450
  hierarchy_configuration:
447
- MetronomeSDK::HierarchyConfiguration::Variants,
451
+ MetronomeSDK::ContractV2::HierarchyConfiguration::Variants,
448
452
  multiplier_override_prioritization:
449
453
  MetronomeSDK::ContractV2::MultiplierOverridePrioritization::TaggedSymbol,
450
454
  name: String,
@@ -2372,10 +2376,17 @@ module MetronomeSDK
2372
2376
  end
2373
2377
  attr_writer :override_tiers
2374
2378
 
2375
- sig { returns(T.nilable(MetronomeSDK::OverwriteRate)) }
2379
+ sig do
2380
+ returns(T.nilable(MetronomeSDK::ContractV2::Override::OverwriteRate))
2381
+ end
2376
2382
  attr_reader :overwrite_rate
2377
2383
 
2378
- sig { params(overwrite_rate: MetronomeSDK::OverwriteRate::OrHash).void }
2384
+ sig do
2385
+ params(
2386
+ overwrite_rate:
2387
+ MetronomeSDK::ContractV2::Override::OverwriteRate::OrHash
2388
+ ).void
2389
+ end
2379
2390
  attr_writer :overwrite_rate
2380
2391
 
2381
2392
  sig { returns(T.nilable(Float)) }
@@ -2434,7 +2445,8 @@ module MetronomeSDK
2434
2445
  MetronomeSDK::ContractV2::Override::OverrideSpecifier::OrHash
2435
2446
  ],
2436
2447
  override_tiers: T::Array[MetronomeSDK::OverrideTier::OrHash],
2437
- overwrite_rate: MetronomeSDK::OverwriteRate::OrHash,
2448
+ overwrite_rate:
2449
+ MetronomeSDK::ContractV2::Override::OverwriteRate::OrHash,
2438
2450
  priority: Float,
2439
2451
  product: MetronomeSDK::ContractV2::Override::Product::OrHash,
2440
2452
  target: MetronomeSDK::ContractV2::Override::Target::OrSymbol,
@@ -2472,7 +2484,7 @@ module MetronomeSDK
2472
2484
  override_specifiers:
2473
2485
  T::Array[MetronomeSDK::ContractV2::Override::OverrideSpecifier],
2474
2486
  override_tiers: T::Array[MetronomeSDK::OverrideTier],
2475
- overwrite_rate: MetronomeSDK::OverwriteRate,
2487
+ overwrite_rate: MetronomeSDK::ContractV2::Override::OverwriteRate,
2476
2488
  priority: Float,
2477
2489
  product: MetronomeSDK::ContractV2::Override::Product,
2478
2490
  target: MetronomeSDK::ContractV2::Override::Target::TaggedSymbol,
@@ -2643,6 +2655,164 @@ module MetronomeSDK
2643
2655
  end
2644
2656
  end
2645
2657
 
2658
+ class OverwriteRate < MetronomeSDK::Internal::Type::BaseModel
2659
+ OrHash =
2660
+ T.type_alias do
2661
+ T.any(
2662
+ MetronomeSDK::ContractV2::Override::OverwriteRate,
2663
+ MetronomeSDK::Internal::AnyHash
2664
+ )
2665
+ end
2666
+
2667
+ sig do
2668
+ returns(
2669
+ MetronomeSDK::ContractV2::Override::OverwriteRate::RateType::TaggedSymbol
2670
+ )
2671
+ end
2672
+ attr_accessor :rate_type
2673
+
2674
+ sig { returns(T.nilable(MetronomeSDK::CreditTypeData)) }
2675
+ attr_reader :credit_type
2676
+
2677
+ sig { params(credit_type: MetronomeSDK::CreditTypeData::OrHash).void }
2678
+ attr_writer :credit_type
2679
+
2680
+ # Only set for CUSTOM rate_type. This field is interpreted by custom rate
2681
+ # processors.
2682
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
2683
+ attr_reader :custom_rate
2684
+
2685
+ sig { params(custom_rate: T::Hash[Symbol, T.anything]).void }
2686
+ attr_writer :custom_rate
2687
+
2688
+ # Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
2689
+ # set to true.
2690
+ sig { returns(T.nilable(T::Boolean)) }
2691
+ attr_reader :is_prorated
2692
+
2693
+ sig { params(is_prorated: T::Boolean).void }
2694
+ attr_writer :is_prorated
2695
+
2696
+ # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
2697
+ # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
2698
+ sig { returns(T.nilable(Float)) }
2699
+ attr_reader :price
2700
+
2701
+ sig { params(price: Float).void }
2702
+ attr_writer :price
2703
+
2704
+ # Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
2705
+ sig { returns(T.nilable(Float)) }
2706
+ attr_reader :quantity
2707
+
2708
+ sig { params(quantity: Float).void }
2709
+ attr_writer :quantity
2710
+
2711
+ # Only set for TIERED rate_type.
2712
+ sig { returns(T.nilable(T::Array[MetronomeSDK::Tier])) }
2713
+ attr_reader :tiers
2714
+
2715
+ sig { params(tiers: T::Array[MetronomeSDK::Tier::OrHash]).void }
2716
+ attr_writer :tiers
2717
+
2718
+ sig do
2719
+ params(
2720
+ rate_type:
2721
+ MetronomeSDK::ContractV2::Override::OverwriteRate::RateType::OrSymbol,
2722
+ credit_type: MetronomeSDK::CreditTypeData::OrHash,
2723
+ custom_rate: T::Hash[Symbol, T.anything],
2724
+ is_prorated: T::Boolean,
2725
+ price: Float,
2726
+ quantity: Float,
2727
+ tiers: T::Array[MetronomeSDK::Tier::OrHash]
2728
+ ).returns(T.attached_class)
2729
+ end
2730
+ def self.new(
2731
+ rate_type:,
2732
+ credit_type: nil,
2733
+ # Only set for CUSTOM rate_type. This field is interpreted by custom rate
2734
+ # processors.
2735
+ custom_rate: nil,
2736
+ # Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
2737
+ # set to true.
2738
+ is_prorated: nil,
2739
+ # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
2740
+ # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
2741
+ price: nil,
2742
+ # Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
2743
+ quantity: nil,
2744
+ # Only set for TIERED rate_type.
2745
+ tiers: nil
2746
+ )
2747
+ end
2748
+
2749
+ sig do
2750
+ override.returns(
2751
+ {
2752
+ rate_type:
2753
+ MetronomeSDK::ContractV2::Override::OverwriteRate::RateType::TaggedSymbol,
2754
+ credit_type: MetronomeSDK::CreditTypeData,
2755
+ custom_rate: T::Hash[Symbol, T.anything],
2756
+ is_prorated: T::Boolean,
2757
+ price: Float,
2758
+ quantity: Float,
2759
+ tiers: T::Array[MetronomeSDK::Tier]
2760
+ }
2761
+ )
2762
+ end
2763
+ def to_hash
2764
+ end
2765
+
2766
+ module RateType
2767
+ extend MetronomeSDK::Internal::Type::Enum
2768
+
2769
+ TaggedSymbol =
2770
+ T.type_alias do
2771
+ T.all(
2772
+ Symbol,
2773
+ MetronomeSDK::ContractV2::Override::OverwriteRate::RateType
2774
+ )
2775
+ end
2776
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2777
+
2778
+ FLAT =
2779
+ T.let(
2780
+ :FLAT,
2781
+ MetronomeSDK::ContractV2::Override::OverwriteRate::RateType::TaggedSymbol
2782
+ )
2783
+ PERCENTAGE =
2784
+ T.let(
2785
+ :PERCENTAGE,
2786
+ MetronomeSDK::ContractV2::Override::OverwriteRate::RateType::TaggedSymbol
2787
+ )
2788
+ SUBSCRIPTION =
2789
+ T.let(
2790
+ :SUBSCRIPTION,
2791
+ MetronomeSDK::ContractV2::Override::OverwriteRate::RateType::TaggedSymbol
2792
+ )
2793
+ TIERED =
2794
+ T.let(
2795
+ :TIERED,
2796
+ MetronomeSDK::ContractV2::Override::OverwriteRate::RateType::TaggedSymbol
2797
+ )
2798
+ CUSTOM =
2799
+ T.let(
2800
+ :CUSTOM,
2801
+ MetronomeSDK::ContractV2::Override::OverwriteRate::RateType::TaggedSymbol
2802
+ )
2803
+
2804
+ sig do
2805
+ override.returns(
2806
+ T::Array[
2807
+ MetronomeSDK::ContractV2::Override::OverwriteRate::RateType::TaggedSymbol
2808
+ ]
2809
+ )
2810
+ end
2811
+ def self.values
2812
+ end
2813
+ end
2814
+ end
2815
+
2646
2816
  class Product < MetronomeSDK::Internal::Type::BaseModel
2647
2817
  OrHash =
2648
2818
  T.type_alias do
@@ -4062,6 +4232,11 @@ module MetronomeSDK
4062
4232
  :gcp_marketplace,
4063
4233
  MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
4064
4234
  )
4235
+ METRONOME =
4236
+ T.let(
4237
+ :metronome,
4238
+ MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
4239
+ )
4065
4240
 
4066
4241
  sig do
4067
4242
  override.returns(
@@ -4164,6 +4339,456 @@ module MetronomeSDK
4164
4339
  end
4165
4340
  end
4166
4341
 
4342
+ # Either a **parent** configuration with a list of children or a **child**
4343
+ # configuration with a single parent.
4344
+ module HierarchyConfiguration
4345
+ extend MetronomeSDK::Internal::Type::Union
4346
+
4347
+ Variants =
4348
+ T.type_alias do
4349
+ T.any(
4350
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration,
4351
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2
4352
+ )
4353
+ end
4354
+
4355
+ class ParentHierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
4356
+ OrHash =
4357
+ T.type_alias do
4358
+ T.any(
4359
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration,
4360
+ MetronomeSDK::Internal::AnyHash
4361
+ )
4362
+ end
4363
+
4364
+ # List of contracts that belong to this parent.
4365
+ sig do
4366
+ returns(
4367
+ T::Array[
4368
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child
4369
+ ]
4370
+ )
4371
+ end
4372
+ attr_accessor :children
4373
+
4374
+ sig do
4375
+ returns(
4376
+ T.nilable(
4377
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior
4378
+ )
4379
+ )
4380
+ end
4381
+ attr_reader :parent_behavior
4382
+
4383
+ sig do
4384
+ params(
4385
+ parent_behavior:
4386
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::OrHash
4387
+ ).void
4388
+ end
4389
+ attr_writer :parent_behavior
4390
+
4391
+ sig do
4392
+ params(
4393
+ children:
4394
+ T::Array[
4395
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child::OrHash
4396
+ ],
4397
+ parent_behavior:
4398
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::OrHash
4399
+ ).returns(T.attached_class)
4400
+ end
4401
+ def self.new(
4402
+ # List of contracts that belong to this parent.
4403
+ children:,
4404
+ parent_behavior: nil
4405
+ )
4406
+ end
4407
+
4408
+ sig do
4409
+ override.returns(
4410
+ {
4411
+ children:
4412
+ T::Array[
4413
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child
4414
+ ],
4415
+ parent_behavior:
4416
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior
4417
+ }
4418
+ )
4419
+ end
4420
+ def to_hash
4421
+ end
4422
+
4423
+ class Child < MetronomeSDK::Internal::Type::BaseModel
4424
+ OrHash =
4425
+ T.type_alias do
4426
+ T.any(
4427
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child,
4428
+ MetronomeSDK::Internal::AnyHash
4429
+ )
4430
+ end
4431
+
4432
+ sig { returns(String) }
4433
+ attr_accessor :contract_id
4434
+
4435
+ sig { returns(String) }
4436
+ attr_accessor :customer_id
4437
+
4438
+ sig do
4439
+ params(contract_id: String, customer_id: String).returns(
4440
+ T.attached_class
4441
+ )
4442
+ end
4443
+ def self.new(contract_id:, customer_id:)
4444
+ end
4445
+
4446
+ sig do
4447
+ override.returns({ contract_id: String, customer_id: String })
4448
+ end
4449
+ def to_hash
4450
+ end
4451
+ end
4452
+
4453
+ class ParentBehavior < MetronomeSDK::Internal::Type::BaseModel
4454
+ OrHash =
4455
+ T.type_alias do
4456
+ T.any(
4457
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior,
4458
+ MetronomeSDK::Internal::AnyHash
4459
+ )
4460
+ end
4461
+
4462
+ # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
4463
+ # generated by the parent in a customer hierarchy
4464
+ #
4465
+ # **CONCATENATE**: Statements on the invoices of child customers will be appended
4466
+ # to the consolidated invoice
4467
+ #
4468
+ # **NONE**: Do not generate consolidated invoices
4469
+ sig do
4470
+ returns(
4471
+ T.nilable(
4472
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
4473
+ )
4474
+ )
4475
+ end
4476
+ attr_reader :invoice_consolidation_type
4477
+
4478
+ sig do
4479
+ params(
4480
+ invoice_consolidation_type:
4481
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::OrSymbol
4482
+ ).void
4483
+ end
4484
+ attr_writer :invoice_consolidation_type
4485
+
4486
+ sig do
4487
+ params(
4488
+ invoice_consolidation_type:
4489
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::OrSymbol
4490
+ ).returns(T.attached_class)
4491
+ end
4492
+ def self.new(
4493
+ # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
4494
+ # generated by the parent in a customer hierarchy
4495
+ #
4496
+ # **CONCATENATE**: Statements on the invoices of child customers will be appended
4497
+ # to the consolidated invoice
4498
+ #
4499
+ # **NONE**: Do not generate consolidated invoices
4500
+ invoice_consolidation_type: nil
4501
+ )
4502
+ end
4503
+
4504
+ sig do
4505
+ override.returns(
4506
+ {
4507
+ invoice_consolidation_type:
4508
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
4509
+ }
4510
+ )
4511
+ end
4512
+ def to_hash
4513
+ end
4514
+
4515
+ # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
4516
+ # generated by the parent in a customer hierarchy
4517
+ #
4518
+ # **CONCATENATE**: Statements on the invoices of child customers will be appended
4519
+ # to the consolidated invoice
4520
+ #
4521
+ # **NONE**: Do not generate consolidated invoices
4522
+ module InvoiceConsolidationType
4523
+ extend MetronomeSDK::Internal::Type::Enum
4524
+
4525
+ TaggedSymbol =
4526
+ T.type_alias do
4527
+ T.all(
4528
+ Symbol,
4529
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType
4530
+ )
4531
+ end
4532
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4533
+
4534
+ CONCATENATE =
4535
+ T.let(
4536
+ :CONCATENATE,
4537
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
4538
+ )
4539
+ NONE =
4540
+ T.let(
4541
+ :NONE,
4542
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
4543
+ )
4544
+
4545
+ sig do
4546
+ override.returns(
4547
+ T::Array[
4548
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
4549
+ ]
4550
+ )
4551
+ end
4552
+ def self.values
4553
+ end
4554
+ end
4555
+ end
4556
+ end
4557
+
4558
+ class ChildHierarchyConfigurationV2 < MetronomeSDK::Internal::Type::BaseModel
4559
+ OrHash =
4560
+ T.type_alias do
4561
+ T.any(
4562
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2,
4563
+ MetronomeSDK::Internal::AnyHash
4564
+ )
4565
+ end
4566
+
4567
+ # The single parent contract/customer for this child.
4568
+ sig do
4569
+ returns(
4570
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent
4571
+ )
4572
+ end
4573
+ attr_reader :parent
4574
+
4575
+ sig do
4576
+ params(
4577
+ parent:
4578
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent::OrHash
4579
+ ).void
4580
+ end
4581
+ attr_writer :parent
4582
+
4583
+ # Account hierarchy M3 - Indicates which customer should pay for the child's
4584
+ # invoice charges **SELF**: The child pays for its own invoice charges **PARENT**:
4585
+ # The parent pays for the child's invoice charges
4586
+ sig do
4587
+ returns(
4588
+ T.nilable(
4589
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer::TaggedSymbol
4590
+ )
4591
+ )
4592
+ end
4593
+ attr_reader :payer
4594
+
4595
+ sig do
4596
+ params(
4597
+ payer:
4598
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer::OrSymbol
4599
+ ).void
4600
+ end
4601
+ attr_writer :payer
4602
+
4603
+ # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
4604
+ # on the parent's invoices.
4605
+ #
4606
+ # **CONSOLIDATE**: Child's invoice statements will be added to parent's
4607
+ # consolidated invoices
4608
+ #
4609
+ # **SEPARATE**: Child's invoice statements will appear not appear on parent's
4610
+ # consolidated invoices
4611
+ sig do
4612
+ returns(
4613
+ T.nilable(
4614
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior::TaggedSymbol
4615
+ )
4616
+ )
4617
+ end
4618
+ attr_reader :usage_statement_behavior
4619
+
4620
+ sig do
4621
+ params(
4622
+ usage_statement_behavior:
4623
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior::OrSymbol
4624
+ ).void
4625
+ end
4626
+ attr_writer :usage_statement_behavior
4627
+
4628
+ sig do
4629
+ params(
4630
+ parent:
4631
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent::OrHash,
4632
+ payer:
4633
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer::OrSymbol,
4634
+ usage_statement_behavior:
4635
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior::OrSymbol
4636
+ ).returns(T.attached_class)
4637
+ end
4638
+ def self.new(
4639
+ # The single parent contract/customer for this child.
4640
+ parent:,
4641
+ # Account hierarchy M3 - Indicates which customer should pay for the child's
4642
+ # invoice charges **SELF**: The child pays for its own invoice charges **PARENT**:
4643
+ # The parent pays for the child's invoice charges
4644
+ payer: nil,
4645
+ # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
4646
+ # on the parent's invoices.
4647
+ #
4648
+ # **CONSOLIDATE**: Child's invoice statements will be added to parent's
4649
+ # consolidated invoices
4650
+ #
4651
+ # **SEPARATE**: Child's invoice statements will appear not appear on parent's
4652
+ # consolidated invoices
4653
+ usage_statement_behavior: nil
4654
+ )
4655
+ end
4656
+
4657
+ sig do
4658
+ override.returns(
4659
+ {
4660
+ parent:
4661
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent,
4662
+ payer:
4663
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer::TaggedSymbol,
4664
+ usage_statement_behavior:
4665
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior::TaggedSymbol
4666
+ }
4667
+ )
4668
+ end
4669
+ def to_hash
4670
+ end
4671
+
4672
+ class Parent < MetronomeSDK::Internal::Type::BaseModel
4673
+ OrHash =
4674
+ T.type_alias do
4675
+ T.any(
4676
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent,
4677
+ MetronomeSDK::Internal::AnyHash
4678
+ )
4679
+ end
4680
+
4681
+ sig { returns(String) }
4682
+ attr_accessor :contract_id
4683
+
4684
+ sig { returns(String) }
4685
+ attr_accessor :customer_id
4686
+
4687
+ # The single parent contract/customer for this child.
4688
+ sig do
4689
+ params(contract_id: String, customer_id: String).returns(
4690
+ T.attached_class
4691
+ )
4692
+ end
4693
+ def self.new(contract_id:, customer_id:)
4694
+ end
4695
+
4696
+ sig do
4697
+ override.returns({ contract_id: String, customer_id: String })
4698
+ end
4699
+ def to_hash
4700
+ end
4701
+ end
4702
+
4703
+ # Account hierarchy M3 - Indicates which customer should pay for the child's
4704
+ # invoice charges **SELF**: The child pays for its own invoice charges **PARENT**:
4705
+ # The parent pays for the child's invoice charges
4706
+ module Payer
4707
+ extend MetronomeSDK::Internal::Type::Enum
4708
+
4709
+ TaggedSymbol =
4710
+ T.type_alias do
4711
+ T.all(
4712
+ Symbol,
4713
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer
4714
+ )
4715
+ end
4716
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4717
+
4718
+ SELF =
4719
+ T.let(
4720
+ :SELF,
4721
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer::TaggedSymbol
4722
+ )
4723
+ PARENT =
4724
+ T.let(
4725
+ :PARENT,
4726
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer::TaggedSymbol
4727
+ )
4728
+
4729
+ sig do
4730
+ override.returns(
4731
+ T::Array[
4732
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Payer::TaggedSymbol
4733
+ ]
4734
+ )
4735
+ end
4736
+ def self.values
4737
+ end
4738
+ end
4739
+
4740
+ # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
4741
+ # on the parent's invoices.
4742
+ #
4743
+ # **CONSOLIDATE**: Child's invoice statements will be added to parent's
4744
+ # consolidated invoices
4745
+ #
4746
+ # **SEPARATE**: Child's invoice statements will appear not appear on parent's
4747
+ # consolidated invoices
4748
+ module UsageStatementBehavior
4749
+ extend MetronomeSDK::Internal::Type::Enum
4750
+
4751
+ TaggedSymbol =
4752
+ T.type_alias do
4753
+ T.all(
4754
+ Symbol,
4755
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior
4756
+ )
4757
+ end
4758
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4759
+
4760
+ CONSOLIDATE =
4761
+ T.let(
4762
+ :CONSOLIDATE,
4763
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior::TaggedSymbol
4764
+ )
4765
+ SEPARATE =
4766
+ T.let(
4767
+ :SEPARATE,
4768
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior::TaggedSymbol
4769
+ )
4770
+
4771
+ sig do
4772
+ override.returns(
4773
+ T::Array[
4774
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::UsageStatementBehavior::TaggedSymbol
4775
+ ]
4776
+ )
4777
+ end
4778
+ def self.values
4779
+ end
4780
+ end
4781
+ end
4782
+
4783
+ sig do
4784
+ override.returns(
4785
+ T::Array[MetronomeSDK::ContractV2::HierarchyConfiguration::Variants]
4786
+ )
4787
+ end
4788
+ def self.variants
4789
+ end
4790
+ end
4791
+
4167
4792
  # Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list
4168
4793
  # prices automatically. EXPLICIT prioritization requires specifying priorities for
4169
4794
  # each multiplier; the one with the lowest priority value will be prioritized