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
@@ -20,6 +20,15 @@ module MetronomeSDK
20
20
  # @return [String]
21
21
  required :customer_id, String
22
22
 
23
+ # @!attribute add_billing_provider_configuration_update
24
+ # Update the billing provider configuration on the contract. Currently only
25
+ # supports adding a billing provider configuration to a contract that does not
26
+ # already have one.
27
+ #
28
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate, nil]
29
+ optional :add_billing_provider_configuration_update,
30
+ -> { MetronomeSDK::V2::ContractEditParams::AddBillingProviderConfigurationUpdate }
31
+
23
32
  # @!attribute add_commits
24
33
  #
25
34
  # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit>, nil]
@@ -206,7 +215,7 @@ module MetronomeSDK
206
215
  optional :update_subscriptions,
207
216
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription] }
208
217
 
209
- # @!method initialize(contract_id:, customer_id:, add_commits: nil, add_credits: nil, add_discounts: nil, add_overrides: nil, add_prepaid_balance_threshold_configuration: nil, add_professional_services: nil, add_recurring_commits: nil, add_recurring_credits: nil, add_reseller_royalties: nil, add_scheduled_charges: nil, add_spend_threshold_configuration: nil, add_subscriptions: nil, allow_contract_ending_before_finalized_invoice: nil, archive_commits: nil, archive_credits: nil, archive_scheduled_charges: nil, remove_overrides: nil, uniqueness_key: nil, update_commits: nil, update_contract_end_date: nil, update_contract_name: nil, update_credits: nil, update_prepaid_balance_threshold_configuration: nil, update_recurring_commits: nil, update_recurring_credits: nil, update_scheduled_charges: nil, update_spend_threshold_configuration: nil, update_subscriptions: nil, request_options: {})
218
+ # @!method initialize(contract_id:, customer_id:, add_billing_provider_configuration_update: nil, add_commits: nil, add_credits: nil, add_discounts: nil, add_overrides: nil, add_prepaid_balance_threshold_configuration: nil, add_professional_services: nil, add_recurring_commits: nil, add_recurring_credits: nil, add_reseller_royalties: nil, add_scheduled_charges: nil, add_spend_threshold_configuration: nil, add_subscriptions: nil, allow_contract_ending_before_finalized_invoice: nil, archive_commits: nil, archive_credits: nil, archive_scheduled_charges: nil, remove_overrides: nil, uniqueness_key: nil, update_commits: nil, update_contract_end_date: nil, update_contract_name: nil, update_credits: nil, update_prepaid_balance_threshold_configuration: nil, update_recurring_commits: nil, update_recurring_credits: nil, update_scheduled_charges: nil, update_spend_threshold_configuration: nil, update_subscriptions: nil, request_options: {})
210
219
  # Some parameter documentations has been truncated, see
211
220
  # {MetronomeSDK::Models::V2::ContractEditParams} for more details.
212
221
  #
@@ -214,6 +223,8 @@ module MetronomeSDK
214
223
  #
215
224
  # @param customer_id [String] ID of the customer whose contract is being edited
216
225
  #
226
+ # @param add_billing_provider_configuration_update [MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate] Update the billing provider configuration on the contract. Currently only suppor
227
+ #
217
228
  # @param add_commits [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCommit>]
218
229
  #
219
230
  # @param add_credits [Array<MetronomeSDK::Models::V2::ContractEditParams::AddCredit>]
@@ -272,6 +283,119 @@ module MetronomeSDK
272
283
  #
273
284
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
274
285
 
286
+ class AddBillingProviderConfigurationUpdate < MetronomeSDK::Internal::Type::BaseModel
287
+ # @!attribute billing_provider_configuration
288
+ #
289
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration]
290
+ required :billing_provider_configuration,
291
+ -> { MetronomeSDK::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration }
292
+
293
+ # @!attribute schedule
294
+ # Indicates when the billing provider will be active on the contract. Any charges
295
+ # accrued during the schedule will be billed to the indicated billing provider.
296
+ #
297
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::Schedule]
298
+ required :schedule,
299
+ -> { MetronomeSDK::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::Schedule }
300
+
301
+ # @!method initialize(billing_provider_configuration:, schedule:)
302
+ # Some parameter documentations has been truncated, see
303
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate}
304
+ # for more details.
305
+ #
306
+ # Update the billing provider configuration on the contract. Currently only
307
+ # supports adding a billing provider configuration to a contract that does not
308
+ # already have one.
309
+ #
310
+ # @param billing_provider_configuration [MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration]
311
+ #
312
+ # @param schedule [MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::Schedule] Indicates when the billing provider will be active on the contract. Any charges
313
+
314
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate#billing_provider_configuration
315
+ class BillingProviderConfiguration < MetronomeSDK::Internal::Type::BaseModel
316
+ # @!attribute billing_provider
317
+ #
318
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration::BillingProvider, nil]
319
+ optional :billing_provider,
320
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration::BillingProvider }
321
+
322
+ # @!attribute billing_provider_configuration_id
323
+ #
324
+ # @return [String, nil]
325
+ optional :billing_provider_configuration_id, String
326
+
327
+ # @!attribute delivery_method
328
+ #
329
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration::DeliveryMethod, nil]
330
+ optional :delivery_method,
331
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration::DeliveryMethod }
332
+
333
+ # @!method initialize(billing_provider: nil, billing_provider_configuration_id: nil, delivery_method: nil)
334
+ # @param billing_provider [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration::BillingProvider]
335
+ # @param billing_provider_configuration_id [String]
336
+ # @param delivery_method [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration::DeliveryMethod]
337
+
338
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration#billing_provider
339
+ module BillingProvider
340
+ extend MetronomeSDK::Internal::Type::Enum
341
+
342
+ AWS_MARKETPLACE = :aws_marketplace
343
+ STRIPE = :stripe
344
+ NETSUITE = :netsuite
345
+ CUSTOM = :custom
346
+ AZURE_MARKETPLACE = :azure_marketplace
347
+ QUICKBOOKS_ONLINE = :quickbooks_online
348
+ WORKDAY = :workday
349
+ GCP_MARKETPLACE = :gcp_marketplace
350
+ METRONOME = :metronome
351
+
352
+ # @!method self.values
353
+ # @return [Array<Symbol>]
354
+ end
355
+
356
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration#delivery_method
357
+ module DeliveryMethod
358
+ extend MetronomeSDK::Internal::Type::Enum
359
+
360
+ DIRECT_TO_BILLING_PROVIDER = :direct_to_billing_provider
361
+ AWS_SQS = :aws_sqs
362
+ TACKLE = :tackle
363
+ AWS_SNS = :aws_sns
364
+
365
+ # @!method self.values
366
+ # @return [Array<Symbol>]
367
+ end
368
+ end
369
+
370
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate#schedule
371
+ class Schedule < MetronomeSDK::Internal::Type::BaseModel
372
+ # @!attribute effective_at
373
+ # When the billing provider update will take effect.
374
+ #
375
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::Schedule::EffectiveAt]
376
+ required :effective_at,
377
+ enum: -> { MetronomeSDK::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::Schedule::EffectiveAt }
378
+
379
+ # @!method initialize(effective_at:)
380
+ # Indicates when the billing provider will be active on the contract. Any charges
381
+ # accrued during the schedule will be billed to the indicated billing provider.
382
+ #
383
+ # @param effective_at [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::Schedule::EffectiveAt] When the billing provider update will take effect.
384
+
385
+ # When the billing provider update will take effect.
386
+ #
387
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::Schedule#effective_at
388
+ module EffectiveAt
389
+ extend MetronomeSDK::Internal::Type::Enum
390
+
391
+ START_OF_CURRENT_PERIOD = :START_OF_CURRENT_PERIOD
392
+
393
+ # @!method self.values
394
+ # @return [Array<Symbol>]
395
+ end
396
+ end
397
+ end
398
+
275
399
  class AddCommit < MetronomeSDK::Internal::Type::BaseModel
276
400
  # @!attribute product_id
277
401
  #
@@ -850,6 +974,7 @@ module MetronomeSDK
850
974
  NONE = :NONE
851
975
  STRIPE = :STRIPE
852
976
  ANROK = :ANROK
977
+ AVALARA = :AVALARA
853
978
  PRECALCULATED = :PRECALCULATED
854
979
 
855
980
  # @!method self.values
@@ -2008,20 +2133,26 @@ module MetronomeSDK
2008
2133
  required :subscription_id, String
2009
2134
 
2010
2135
  # @!attribute allocation
2011
- # If set to POOLED, allocation added per seat is pooled across the account.
2136
+ # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2137
+ # If set to INDIVIDUAL, each seat in the subscription will have its own
2138
+ # allocation.
2012
2139
  #
2013
2140
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation, nil]
2014
2141
  optional :allocation,
2015
2142
  enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation }
2016
2143
 
2017
2144
  # @!method initialize(apply_seat_increase_config:, subscription_id:, allocation: nil)
2145
+ # Some parameter documentations has been truncated, see
2146
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig}
2147
+ # for more details.
2148
+ #
2018
2149
  # Attach a subscription to the recurring commit/credit.
2019
2150
  #
2020
2151
  # @param apply_seat_increase_config [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig]
2021
2152
  #
2022
2153
  # @param subscription_id [String] ID of the subscription to configure on the recurring commit/credit.
2023
2154
  #
2024
- # @param allocation [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account.
2155
+ # @param allocation [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2025
2156
 
2026
2157
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig#apply_seat_increase_config
2027
2158
  class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
@@ -2035,7 +2166,9 @@ module MetronomeSDK
2035
2166
  # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
2036
2167
  end
2037
2168
 
2038
- # If set to POOLED, allocation added per seat is pooled across the account.
2169
+ # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2170
+ # If set to INDIVIDUAL, each seat in the subscription will have its own
2171
+ # allocation.
2039
2172
  #
2040
2173
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig#allocation
2041
2174
  module Allocation
@@ -2352,20 +2485,26 @@ module MetronomeSDK
2352
2485
  required :subscription_id, String
2353
2486
 
2354
2487
  # @!attribute allocation
2355
- # If set to POOLED, allocation added per seat is pooled across the account.
2488
+ # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2489
+ # If set to INDIVIDUAL, each seat in the subscription will have its own
2490
+ # allocation.
2356
2491
  #
2357
2492
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation, nil]
2358
2493
  optional :allocation,
2359
2494
  enum: -> { MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation }
2360
2495
 
2361
2496
  # @!method initialize(apply_seat_increase_config:, subscription_id:, allocation: nil)
2497
+ # Some parameter documentations has been truncated, see
2498
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig}
2499
+ # for more details.
2500
+ #
2362
2501
  # Attach a subscription to the recurring commit/credit.
2363
2502
  #
2364
2503
  # @param apply_seat_increase_config [MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig]
2365
2504
  #
2366
2505
  # @param subscription_id [String] ID of the subscription to configure on the recurring commit/credit.
2367
2506
  #
2368
- # @param allocation [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account.
2507
+ # @param allocation [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2369
2508
 
2370
2509
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig#apply_seat_increase_config
2371
2510
  class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
@@ -2379,7 +2518,9 @@ module MetronomeSDK
2379
2518
  # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
2380
2519
  end
2381
2520
 
2382
- # If set to POOLED, allocation added per seat is pooled across the account.
2521
+ # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2522
+ # If set to INDIVIDUAL, each seat in the subscription will have its own
2523
+ # allocation.
2383
2524
  #
2384
2525
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig#allocation
2385
2526
  module Allocation
@@ -2811,6 +2952,11 @@ module MetronomeSDK
2811
2952
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
2812
2953
  # directly on the subscription. `initial_quantity` must be provided with this
2813
2954
  # option. Compatible with recurring commits/credits that use POOLED allocation.
2955
+ # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
2956
+ # add user_123) to increment and decrement a subscription quantity, rather than
2957
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
2958
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
2959
+ # provided with this option.
2814
2960
  #
2815
2961
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::QuantityManagementMode, nil]
2816
2962
  optional :quantity_management_mode,
@@ -2960,6 +3106,11 @@ module MetronomeSDK
2960
3106
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
2961
3107
  # directly on the subscription. `initial_quantity` must be provided with this
2962
3108
  # option. Compatible with recurring commits/credits that use POOLED allocation.
3109
+ # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
3110
+ # add user_123) to increment and decrement a subscription quantity, rather than
3111
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
3112
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
3113
+ # provided with this option.
2963
3114
  #
2964
3115
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription#quantity_management_mode
2965
3116
  module QuantityManagementMode
@@ -3607,11 +3758,27 @@ module MetronomeSDK
3607
3758
  optional :invoice_amount,
3608
3759
  -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit::InvoiceAmount }
3609
3760
 
3610
- # @!method initialize(recurring_commit_id:, access_amount: nil, ending_before: nil, invoice_amount: nil)
3761
+ # @!attribute rate_type
3762
+ # If provided, updates the recurring commit to use the specified rate type when
3763
+ # generating future commits.
3764
+ #
3765
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::RateType, nil]
3766
+ optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCommit::RateType }
3767
+
3768
+ # @!method initialize(recurring_commit_id:, access_amount: nil, ending_before: nil, invoice_amount: nil, rate_type: nil)
3769
+ # Some parameter documentations has been truncated, see
3770
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit} for more
3771
+ # details.
3772
+ #
3611
3773
  # @param recurring_commit_id [String]
3774
+ #
3612
3775
  # @param access_amount [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::AccessAmount]
3776
+ #
3613
3777
  # @param ending_before [Time, nil]
3778
+ #
3614
3779
  # @param invoice_amount [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::InvoiceAmount]
3780
+ #
3781
+ # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit::RateType] If provided, updates the recurring commit to use the specified rate type when ge
3615
3782
 
3616
3783
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit#access_amount
3617
3784
  class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
@@ -3646,6 +3813,20 @@ module MetronomeSDK
3646
3813
  # @param quantity [Float]
3647
3814
  # @param unit_price [Float]
3648
3815
  end
3816
+
3817
+ # If provided, updates the recurring commit to use the specified rate type when
3818
+ # generating future commits.
3819
+ #
3820
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCommit#rate_type
3821
+ module RateType
3822
+ extend MetronomeSDK::Internal::Type::Enum
3823
+
3824
+ LIST_RATE = :LIST_RATE
3825
+ COMMIT_RATE = :COMMIT_RATE
3826
+
3827
+ # @!method self.values
3828
+ # @return [Array<Symbol>]
3829
+ end
3649
3830
  end
3650
3831
 
3651
3832
  class UpdateRecurringCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -3664,10 +3845,25 @@ module MetronomeSDK
3664
3845
  # @return [Time, nil]
3665
3846
  optional :ending_before, Time, nil?: true
3666
3847
 
3667
- # @!method initialize(recurring_credit_id:, access_amount: nil, ending_before: nil)
3848
+ # @!attribute rate_type
3849
+ # If provided, updates the recurring credit to use the specified rate type when
3850
+ # generating future credits.
3851
+ #
3852
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::RateType, nil]
3853
+ optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::UpdateRecurringCredit::RateType }
3854
+
3855
+ # @!method initialize(recurring_credit_id:, access_amount: nil, ending_before: nil, rate_type: nil)
3856
+ # Some parameter documentations has been truncated, see
3857
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit} for more
3858
+ # details.
3859
+ #
3668
3860
  # @param recurring_credit_id [String]
3861
+ #
3669
3862
  # @param access_amount [MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::AccessAmount]
3863
+ #
3670
3864
  # @param ending_before [Time, nil]
3865
+ #
3866
+ # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit::RateType] If provided, updates the recurring credit to use the specified rate type when ge
3671
3867
 
3672
3868
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit#access_amount
3673
3869
  class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
@@ -3685,6 +3881,20 @@ module MetronomeSDK
3685
3881
  # @param quantity [Float]
3686
3882
  # @param unit_price [Float]
3687
3883
  end
3884
+
3885
+ # If provided, updates the recurring credit to use the specified rate type when
3886
+ # generating future credits.
3887
+ #
3888
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateRecurringCredit#rate_type
3889
+ module RateType
3890
+ extend MetronomeSDK::Internal::Type::Enum
3891
+
3892
+ LIST_RATE = :LIST_RATE
3893
+ COMMIT_RATE = :COMMIT_RATE
3894
+
3895
+ # @!method self.values
3896
+ # @return [Array<Symbol>]
3897
+ end
3688
3898
  end
3689
3899
 
3690
3900
  class UpdateScheduledCharge < MetronomeSDK::Internal::Type::BaseModel
@@ -323,8 +323,9 @@ module MetronomeSDK
323
323
  # @!attribute invoice_schedule
324
324
  # The schedule that the customer will be invoiced for this commit.
325
325
  #
326
- # @return [MetronomeSDK::Models::SchedulePointInTime, nil]
327
- optional :invoice_schedule, -> { MetronomeSDK::SchedulePointInTime }
326
+ # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule, nil]
327
+ optional :invoice_schedule,
328
+ -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule }
328
329
 
329
330
  # @!attribute name
330
331
  #
@@ -393,7 +394,7 @@ module MetronomeSDK
393
394
  #
394
395
  # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for commit hierarchy access control
395
396
  #
396
- # @param invoice_schedule [MetronomeSDK::Models::SchedulePointInTime] The schedule that the customer will be invoiced for this commit.
397
+ # @param invoice_schedule [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule] The schedule that the customer will be invoiced for this commit.
397
398
  #
398
399
  # @param name [String]
399
400
  #
@@ -437,6 +438,75 @@ module MetronomeSDK
437
438
  # @return [Array<Symbol>]
438
439
  end
439
440
 
441
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit#invoice_schedule
442
+ class InvoiceSchedule < MetronomeSDK::Internal::Type::BaseModel
443
+ # @!attribute credit_type
444
+ #
445
+ # @return [MetronomeSDK::Models::CreditTypeData, nil]
446
+ optional :credit_type, -> { MetronomeSDK::CreditTypeData }
447
+
448
+ # @!attribute do_not_invoice
449
+ # If true, this schedule will not generate an invoice.
450
+ #
451
+ # @return [Boolean, nil]
452
+ optional :do_not_invoice, MetronomeSDK::Internal::Type::Boolean
453
+
454
+ # @!attribute schedule_items
455
+ #
456
+ # @return [Array<MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::ScheduleItem>, nil]
457
+ optional :schedule_items,
458
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::ScheduleItem] }
459
+
460
+ # @!method initialize(credit_type: nil, do_not_invoice: nil, schedule_items: nil)
461
+ # The schedule that the customer will be invoiced for this commit.
462
+ #
463
+ # @param credit_type [MetronomeSDK::Models::CreditTypeData]
464
+ #
465
+ # @param do_not_invoice [Boolean] If true, this schedule will not generate an invoice.
466
+ #
467
+ # @param schedule_items [Array<MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::ScheduleItem>]
468
+
469
+ class ScheduleItem < MetronomeSDK::Internal::Type::BaseModel
470
+ # @!attribute id
471
+ #
472
+ # @return [String]
473
+ required :id, String
474
+
475
+ # @!attribute timestamp
476
+ #
477
+ # @return [Time]
478
+ required :timestamp, Time
479
+
480
+ # @!attribute amount
481
+ #
482
+ # @return [Float, nil]
483
+ optional :amount, Float
484
+
485
+ # @!attribute invoice_id
486
+ #
487
+ # @return [String, nil]
488
+ optional :invoice_id, String, nil?: true
489
+
490
+ # @!attribute quantity
491
+ #
492
+ # @return [Float, nil]
493
+ optional :quantity, Float
494
+
495
+ # @!attribute unit_price
496
+ #
497
+ # @return [Float, nil]
498
+ optional :unit_price, Float
499
+
500
+ # @!method initialize(id:, timestamp:, amount: nil, invoice_id: nil, quantity: nil, unit_price: nil)
501
+ # @param id [String]
502
+ # @param timestamp [Time]
503
+ # @param amount [Float]
504
+ # @param invoice_id [String, nil]
505
+ # @param quantity [Float]
506
+ # @param unit_price [Float]
507
+ end
508
+ end
509
+
440
510
  # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit#rate_type
441
511
  module RateType
442
512
  extend MetronomeSDK::Internal::Type::Enum
@@ -637,8 +707,9 @@ module MetronomeSDK
637
707
 
638
708
  # @!attribute overwrite_rate
639
709
  #
640
- # @return [MetronomeSDK::Models::OverwriteRate, nil]
641
- optional :overwrite_rate, -> { MetronomeSDK::OverwriteRate }
710
+ # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate, nil]
711
+ optional :overwrite_rate,
712
+ -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate }
642
713
 
643
714
  # @!attribute priority
644
715
  #
@@ -673,7 +744,7 @@ module MetronomeSDK
673
744
  # @param multiplier [Float]
674
745
  # @param override_specifiers [Array<MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverrideSpecifier>]
675
746
  # @param override_tiers [Array<MetronomeSDK::Models::OverrideTier>]
676
- # @param overwrite_rate [MetronomeSDK::Models::OverwriteRate]
747
+ # @param overwrite_rate [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate]
677
748
  # @param priority [Float]
678
749
  # @param product [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::Product]
679
750
  # @param target [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::Target]
@@ -745,6 +816,86 @@ module MetronomeSDK
745
816
  end
746
817
  end
747
818
 
819
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride#overwrite_rate
820
+ class OverwriteRate < MetronomeSDK::Internal::Type::BaseModel
821
+ # @!attribute rate_type
822
+ #
823
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::RateType]
824
+ required :rate_type,
825
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::RateType }
826
+
827
+ # @!attribute credit_type
828
+ #
829
+ # @return [MetronomeSDK::Models::CreditTypeData, nil]
830
+ optional :credit_type, -> { MetronomeSDK::CreditTypeData }
831
+
832
+ # @!attribute custom_rate
833
+ # Only set for CUSTOM rate_type. This field is interpreted by custom rate
834
+ # processors.
835
+ #
836
+ # @return [Hash{Symbol=>Object}, nil]
837
+ optional :custom_rate, MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
838
+
839
+ # @!attribute is_prorated
840
+ # Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
841
+ # set to true.
842
+ #
843
+ # @return [Boolean, nil]
844
+ optional :is_prorated, MetronomeSDK::Internal::Type::Boolean
845
+
846
+ # @!attribute price
847
+ # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
848
+ # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
849
+ #
850
+ # @return [Float, nil]
851
+ optional :price, Float
852
+
853
+ # @!attribute quantity
854
+ # Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
855
+ #
856
+ # @return [Float, nil]
857
+ optional :quantity, Float
858
+
859
+ # @!attribute tiers
860
+ # Only set for TIERED rate_type.
861
+ #
862
+ # @return [Array<MetronomeSDK::Models::Tier>, nil]
863
+ optional :tiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Tier] }
864
+
865
+ # @!method initialize(rate_type:, credit_type: nil, custom_rate: nil, is_prorated: nil, price: nil, quantity: nil, tiers: nil)
866
+ # Some parameter documentations has been truncated, see
867
+ # {MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate}
868
+ # for more details.
869
+ #
870
+ # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::RateType]
871
+ #
872
+ # @param credit_type [MetronomeSDK::Models::CreditTypeData]
873
+ #
874
+ # @param custom_rate [Hash{Symbol=>Object}] Only set for CUSTOM rate_type. This field is interpreted by custom rate processo
875
+ #
876
+ # @param is_prorated [Boolean] Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
877
+ #
878
+ # @param price [Float] Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type, t
879
+ #
880
+ # @param quantity [Float] Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
881
+ #
882
+ # @param tiers [Array<MetronomeSDK::Models::Tier>] Only set for TIERED rate_type.
883
+
884
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate#rate_type
885
+ module RateType
886
+ extend MetronomeSDK::Internal::Type::Enum
887
+
888
+ FLAT = :FLAT
889
+ PERCENTAGE = :PERCENTAGE
890
+ SUBSCRIPTION = :SUBSCRIPTION
891
+ TIERED = :TIERED
892
+ CUSTOM = :CUSTOM
893
+
894
+ # @!method self.values
895
+ # @return [Array<Symbol>]
896
+ end
897
+ end
898
+
748
899
  # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride#product
749
900
  class Product < MetronomeSDK::Internal::Type::BaseModel
750
901
  # @!attribute id
@@ -2570,11 +2721,18 @@ module MetronomeSDK
2570
2721
  optional :invoice_amount,
2571
2722
  -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::InvoiceAmount }
2572
2723
 
2573
- # @!method initialize(id:, access_amount: nil, ending_before: nil, invoice_amount: nil)
2724
+ # @!attribute rate_type
2725
+ #
2726
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::RateType, nil]
2727
+ optional :rate_type,
2728
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::RateType }
2729
+
2730
+ # @!method initialize(id:, access_amount: nil, ending_before: nil, invoice_amount: nil, rate_type: nil)
2574
2731
  # @param id [String]
2575
2732
  # @param access_amount [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::AccessAmount]
2576
2733
  # @param ending_before [Time]
2577
2734
  # @param invoice_amount [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::InvoiceAmount]
2735
+ # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::RateType]
2578
2736
 
2579
2737
  # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit#access_amount
2580
2738
  class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
@@ -2609,6 +2767,17 @@ module MetronomeSDK
2609
2767
  # @param quantity [Float]
2610
2768
  # @param unit_price [Float]
2611
2769
  end
2770
+
2771
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit#rate_type
2772
+ module RateType
2773
+ extend MetronomeSDK::Internal::Type::Enum
2774
+
2775
+ LIST_RATE = :LIST_RATE
2776
+ COMMIT_RATE = :COMMIT_RATE
2777
+
2778
+ # @!method self.values
2779
+ # @return [Array<Symbol>]
2780
+ end
2612
2781
  end
2613
2782
 
2614
2783
  class UpdateRecurringCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -2628,10 +2797,17 @@ module MetronomeSDK
2628
2797
  # @return [Time, nil]
2629
2798
  optional :ending_before, Time
2630
2799
 
2631
- # @!method initialize(id:, access_amount: nil, ending_before: nil)
2800
+ # @!attribute rate_type
2801
+ #
2802
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::RateType, nil]
2803
+ optional :rate_type,
2804
+ enum: -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::RateType }
2805
+
2806
+ # @!method initialize(id:, access_amount: nil, ending_before: nil, rate_type: nil)
2632
2807
  # @param id [String]
2633
2808
  # @param access_amount [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::AccessAmount]
2634
2809
  # @param ending_before [Time]
2810
+ # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::RateType]
2635
2811
 
2636
2812
  # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit#access_amount
2637
2813
  class AccessAmount < MetronomeSDK::Internal::Type::BaseModel
@@ -2649,6 +2825,17 @@ module MetronomeSDK
2649
2825
  # @param quantity [Float]
2650
2826
  # @param unit_price [Float]
2651
2827
  end
2828
+
2829
+ # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit#rate_type
2830
+ module RateType
2831
+ extend MetronomeSDK::Internal::Type::Enum
2832
+
2833
+ LIST_RATE = :LIST_RATE
2834
+ COMMIT_RATE = :COMMIT_RATE
2835
+
2836
+ # @!method self.values
2837
+ # @return [Array<Symbol>]
2838
+ end
2652
2839
  end
2653
2840
 
2654
2841
  class UpdateRefundInvoice < MetronomeSDK::Internal::Type::BaseModel