metronome-sdk 3.9.0 → 3.10.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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/models/commit.rb +9 -1
  5. data/lib/metronome_sdk/models/contract_v2.rb +29 -12
  6. data/lib/metronome_sdk/models/contract_without_amendments.rb +8 -5
  7. data/lib/metronome_sdk/models/v1/contract_create_params.rb +8 -5
  8. data/lib/metronome_sdk/models/v1/contract_create_response.rb +8 -5
  9. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_params.rb +27 -1
  10. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +32 -5
  11. data/lib/metronome_sdk/models/v1/package_create_params.rb +8 -4
  12. data/lib/metronome_sdk/models/v1/package_list_response.rb +8 -4
  13. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +8 -4
  14. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +11 -1
  15. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +11 -1
  16. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +12 -8
  17. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +8 -4
  18. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +8 -4
  19. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +11 -14
  20. data/lib/metronome_sdk/resources/v1/dashboards.rb +6 -9
  21. data/lib/metronome_sdk/resources/v2/contracts.rb +6 -2
  22. data/lib/metronome_sdk/version.rb +1 -1
  23. data/rbi/metronome_sdk/models/commit.rbi +11 -0
  24. data/rbi/metronome_sdk/models/contract_v2.rbi +47 -19
  25. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +12 -11
  26. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +12 -11
  27. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +12 -11
  28. data/rbi/metronome_sdk/models/v1/contracts/rate_card_update_params.rbi +67 -0
  29. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +96 -5
  30. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +12 -6
  31. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +12 -6
  32. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +12 -6
  33. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +12 -0
  34. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +12 -0
  35. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +18 -18
  36. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +12 -6
  37. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +12 -6
  38. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards.rbi +15 -13
  39. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +6 -9
  40. data/rbi/metronome_sdk/resources/v2/contracts.rbi +10 -0
  41. data/sig/metronome_sdk/models/commit.rbs +7 -0
  42. data/sig/metronome_sdk/models/contract_v2.rbs +16 -10
  43. data/sig/metronome_sdk/models/contract_without_amendments.rbs +1 -2
  44. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +1 -2
  45. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +1 -2
  46. data/sig/metronome_sdk/models/v1/contracts/rate_card_update_params.rbs +28 -0
  47. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +39 -4
  48. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +5 -0
  49. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +5 -0
  50. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +8 -12
  51. data/sig/metronome_sdk/resources/v1/contracts/rate_cards.rbs +1 -0
  52. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  53. metadata +2 -2
@@ -956,10 +956,7 @@ module MetronomeSDK
956
956
  attr_writer :billing_provider
957
957
 
958
958
  sig { returns(T.nilable(String)) }
959
- attr_reader :billing_provider_configuration_id
960
-
961
- sig { params(billing_provider_configuration_id: String).void }
962
- attr_writer :billing_provider_configuration_id
959
+ attr_accessor :billing_provider_configuration_id
963
960
 
964
961
  sig do
965
962
  returns(
@@ -982,7 +979,7 @@ module MetronomeSDK
982
979
  params(
983
980
  billing_provider:
984
981
  MetronomeSDK::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration::BillingProvider::OrSymbol,
985
- billing_provider_configuration_id: String,
982
+ billing_provider_configuration_id: T.nilable(String),
986
983
  delivery_method:
987
984
  MetronomeSDK::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration::DeliveryMethod::OrSymbol
988
985
  ).returns(T.attached_class)
@@ -999,7 +996,7 @@ module MetronomeSDK
999
996
  {
1000
997
  billing_provider:
1001
998
  MetronomeSDK::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration::BillingProvider::OrSymbol,
1002
- billing_provider_configuration_id: String,
999
+ billing_provider_configuration_id: T.nilable(String),
1003
1000
  delivery_method:
1004
1001
  MetronomeSDK::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration::DeliveryMethod::OrSymbol
1005
1002
  }
@@ -4343,7 +4340,8 @@ module MetronomeSDK
4343
4340
  # The commits will be created on the usage invoice frequency. If provided: - The
4344
4341
  # period defined in the duration will correspond to this frequency. - Commits will
4345
4342
  # be created aligned with the recurring commit's starting_at rather than the usage
4346
- # invoice dates.
4343
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
4344
+ # are unable to be created with seat-based subscriptions
4347
4345
  sig do
4348
4346
  returns(
4349
4347
  T.nilable(
@@ -4487,7 +4485,8 @@ module MetronomeSDK
4487
4485
  # The commits will be created on the usage invoice frequency. If provided: - The
4488
4486
  # period defined in the duration will correspond to this frequency. - Commits will
4489
4487
  # be created aligned with the recurring commit's starting_at rather than the usage
4490
- # invoice dates.
4488
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
4489
+ # are unable to be created with seat-based subscriptions
4491
4490
  recurrence_frequency: nil,
4492
4491
  # Will be passed down to the individual commits. This controls how much of an
4493
4492
  # individual unexpired commit will roll over upon contract transition. Must be
@@ -5052,7 +5051,8 @@ module MetronomeSDK
5052
5051
  # The commits will be created on the usage invoice frequency. If provided: - The
5053
5052
  # period defined in the duration will correspond to this frequency. - Commits will
5054
5053
  # be created aligned with the recurring commit's starting_at rather than the usage
5055
- # invoice dates.
5054
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
5055
+ # are unable to be created with seat-based subscriptions
5056
5056
  module RecurrenceFrequency
5057
5057
  extend MetronomeSDK::Internal::Type::Enum
5058
5058
 
@@ -5413,7 +5413,8 @@ module MetronomeSDK
5413
5413
  # The commits will be created on the usage invoice frequency. If provided: - The
5414
5414
  # period defined in the duration will correspond to this frequency. - Commits will
5415
5415
  # be created aligned with the recurring commit's starting_at rather than the usage
5416
- # invoice dates.
5416
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
5417
+ # are unable to be created with seat-based subscriptions
5417
5418
  sig do
5418
5419
  returns(
5419
5420
  T.nilable(
@@ -5553,7 +5554,8 @@ module MetronomeSDK
5553
5554
  # The commits will be created on the usage invoice frequency. If provided: - The
5554
5555
  # period defined in the duration will correspond to this frequency. - Commits will
5555
5556
  # be created aligned with the recurring commit's starting_at rather than the usage
5556
- # invoice dates.
5557
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
5558
+ # are unable to be created with seat-based subscriptions
5557
5559
  recurrence_frequency: nil,
5558
5560
  # Will be passed down to the individual commits. This controls how much of an
5559
5561
  # individual unexpired commit will roll over upon contract transition. Must be
@@ -5967,7 +5969,8 @@ module MetronomeSDK
5967
5969
  # The commits will be created on the usage invoice frequency. If provided: - The
5968
5970
  # period defined in the duration will correspond to this frequency. - Commits will
5969
5971
  # be created aligned with the recurring commit's starting_at rather than the usage
5970
- # invoice dates.
5972
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
5973
+ # are unable to be created with seat-based subscriptions
5971
5974
  module RecurrenceFrequency
5972
5975
  extend MetronomeSDK::Internal::Type::Enum
5973
5976
 
@@ -6555,10 +6558,7 @@ module MetronomeSDK
6555
6558
  attr_writer :provider
6556
6559
 
6557
6560
  sig { returns(T.nilable(String)) }
6558
- attr_reader :revenue_system_configuration_id
6559
-
6560
- sig { params(revenue_system_configuration_id: String).void }
6561
- attr_writer :revenue_system_configuration_id
6561
+ attr_accessor :revenue_system_configuration_id
6562
6562
 
6563
6563
  sig do
6564
6564
  params(
@@ -6566,7 +6566,7 @@ module MetronomeSDK
6566
6566
  MetronomeSDK::V2::ContractEditParams::AddRevenueSystemConfigurationUpdate::RevenueSystemConfiguration::DeliveryMethod::OrSymbol,
6567
6567
  provider:
6568
6568
  MetronomeSDK::V2::ContractEditParams::AddRevenueSystemConfigurationUpdate::RevenueSystemConfiguration::Provider::OrSymbol,
6569
- revenue_system_configuration_id: String
6569
+ revenue_system_configuration_id: T.nilable(String)
6570
6570
  ).returns(T.attached_class)
6571
6571
  end
6572
6572
  def self.new(
@@ -6584,7 +6584,7 @@ module MetronomeSDK
6584
6584
  MetronomeSDK::V2::ContractEditParams::AddRevenueSystemConfigurationUpdate::RevenueSystemConfiguration::DeliveryMethod::OrSymbol,
6585
6585
  provider:
6586
6586
  MetronomeSDK::V2::ContractEditParams::AddRevenueSystemConfigurationUpdate::RevenueSystemConfiguration::Provider::OrSymbol,
6587
- revenue_system_configuration_id: String
6587
+ revenue_system_configuration_id: T.nilable(String)
6588
6588
  }
6589
6589
  )
6590
6590
  end
@@ -2596,7 +2596,8 @@ module MetronomeSDK
2596
2596
  # The commits will be created on the usage invoice frequency. If provided: - The
2597
2597
  # period defined in the duration will correspond to this frequency. - Commits will
2598
2598
  # be created aligned with the recurring commit's starting_at rather than the usage
2599
- # invoice dates.
2599
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
2600
+ # are unable to be created with seat-based subscriptions
2600
2601
  sig do
2601
2602
  returns(
2602
2603
  T.nilable(
@@ -2732,7 +2733,8 @@ module MetronomeSDK
2732
2733
  # The commits will be created on the usage invoice frequency. If provided: - The
2733
2734
  # period defined in the duration will correspond to this frequency. - Commits will
2734
2735
  # be created aligned with the recurring commit's starting_at rather than the usage
2735
- # invoice dates.
2736
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
2737
+ # are unable to be created with seat-based subscriptions
2736
2738
  recurrence_frequency: nil,
2737
2739
  # Will be passed down to the individual commits. This controls how much of an
2738
2740
  # individual unexpired commit will roll over upon contract transition. Must be
@@ -3341,7 +3343,8 @@ module MetronomeSDK
3341
3343
  # The commits will be created on the usage invoice frequency. If provided: - The
3342
3344
  # period defined in the duration will correspond to this frequency. - Commits will
3343
3345
  # be created aligned with the recurring commit's starting_at rather than the usage
3344
- # invoice dates.
3346
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
3347
+ # are unable to be created with seat-based subscriptions
3345
3348
  module RecurrenceFrequency
3346
3349
  extend MetronomeSDK::Internal::Type::Enum
3347
3350
 
@@ -3583,7 +3586,8 @@ module MetronomeSDK
3583
3586
  # The commits will be created on the usage invoice frequency. If provided: - The
3584
3587
  # period defined in the duration will correspond to this frequency. - Commits will
3585
3588
  # be created aligned with the recurring commit's starting_at rather than the usage
3586
- # invoice dates.
3589
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
3590
+ # are unable to be created with seat-based subscriptions
3587
3591
  sig do
3588
3592
  returns(
3589
3593
  T.nilable(
@@ -3715,7 +3719,8 @@ module MetronomeSDK
3715
3719
  # The commits will be created on the usage invoice frequency. If provided: - The
3716
3720
  # period defined in the duration will correspond to this frequency. - Commits will
3717
3721
  # be created aligned with the recurring commit's starting_at rather than the usage
3718
- # invoice dates.
3722
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
3723
+ # are unable to be created with seat-based subscriptions
3719
3724
  recurrence_frequency: nil,
3720
3725
  # Will be passed down to the individual commits. This controls how much of an
3721
3726
  # individual unexpired commit will roll over upon contract transition. Must be
@@ -4169,7 +4174,8 @@ module MetronomeSDK
4169
4174
  # The commits will be created on the usage invoice frequency. If provided: - The
4170
4175
  # period defined in the duration will correspond to this frequency. - Commits will
4171
4176
  # be created aligned with the recurring commit's starting_at rather than the usage
4172
- # invoice dates.
4177
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
4178
+ # are unable to be created with seat-based subscriptions
4173
4179
  module RecurrenceFrequency
4174
4180
  extend MetronomeSDK::Internal::Type::Enum
4175
4181
 
@@ -2537,7 +2537,8 @@ module MetronomeSDK
2537
2537
  # The commits will be created on the usage invoice frequency. If provided: - The
2538
2538
  # period defined in the duration will correspond to this frequency. - Commits will
2539
2539
  # be created aligned with the recurring commit's starting_at rather than the usage
2540
- # invoice dates.
2540
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
2541
+ # are unable to be created with seat-based subscriptions
2541
2542
  sig do
2542
2543
  returns(
2543
2544
  T.nilable(
@@ -2671,7 +2672,8 @@ module MetronomeSDK
2671
2672
  # The commits will be created on the usage invoice frequency. If provided: - The
2672
2673
  # period defined in the duration will correspond to this frequency. - Commits will
2673
2674
  # be created aligned with the recurring commit's starting_at rather than the usage
2674
- # invoice dates.
2675
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
2676
+ # are unable to be created with seat-based subscriptions
2675
2677
  recurrence_frequency: nil,
2676
2678
  # Will be passed down to the individual commits. This controls how much of an
2677
2679
  # individual unexpired commit will roll over upon contract transition. Must be
@@ -3270,7 +3272,8 @@ module MetronomeSDK
3270
3272
  # The commits will be created on the usage invoice frequency. If provided: - The
3271
3273
  # period defined in the duration will correspond to this frequency. - Commits will
3272
3274
  # be created aligned with the recurring commit's starting_at rather than the usage
3273
- # invoice dates.
3275
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
3276
+ # are unable to be created with seat-based subscriptions
3274
3277
  module RecurrenceFrequency
3275
3278
  extend MetronomeSDK::Internal::Type::Enum
3276
3279
 
@@ -3512,7 +3515,8 @@ module MetronomeSDK
3512
3515
  # The commits will be created on the usage invoice frequency. If provided: - The
3513
3516
  # period defined in the duration will correspond to this frequency. - Commits will
3514
3517
  # be created aligned with the recurring commit's starting_at rather than the usage
3515
- # invoice dates.
3518
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
3519
+ # are unable to be created with seat-based subscriptions
3516
3520
  sig do
3517
3521
  returns(
3518
3522
  T.nilable(
@@ -3642,7 +3646,8 @@ module MetronomeSDK
3642
3646
  # The commits will be created on the usage invoice frequency. If provided: - The
3643
3647
  # period defined in the duration will correspond to this frequency. - Commits will
3644
3648
  # be created aligned with the recurring commit's starting_at rather than the usage
3645
- # invoice dates.
3649
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
3650
+ # are unable to be created with seat-based subscriptions
3646
3651
  recurrence_frequency: nil,
3647
3652
  # Will be passed down to the individual commits. This controls how much of an
3648
3653
  # individual unexpired commit will roll over upon contract transition. Must be
@@ -4090,7 +4095,8 @@ module MetronomeSDK
4090
4095
  # The commits will be created on the usage invoice frequency. If provided: - The
4091
4096
  # period defined in the duration will correspond to this frequency. - Commits will
4092
4097
  # be created aligned with the recurring commit's starting_at rather than the usage
4093
- # invoice dates.
4098
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
4099
+ # are unable to be created with seat-based subscriptions
4094
4100
  module RecurrenceFrequency
4095
4101
  extend MetronomeSDK::Internal::Type::Enum
4096
4102
 
@@ -114,24 +114,19 @@ module MetronomeSDK
114
114
  def retrieve(id:, request_options: {})
115
115
  end
116
116
 
117
- # Update the metadata properties of an existing rate card, including its name,
118
- # description, and aliases. This endpoint is designed for managing rate card
119
- # identity and reference aliases rather than modifying pricing rates.
120
- #
121
- # Modifies the descriptive properties and alias configuration of a rate card
122
- # without affecting the underlying pricing rates or schedules. This allows you to
123
- # update how a rate card is identified and referenced throughout your system.
117
+ # Update a rate card's name, description, aliases, and credit type conversion
118
+ # rates. This endpoint does not affect underlying pricing rates or schedules.
124
119
  #
125
120
  # ### Use this endpoint to:
126
121
  #
127
- # - Rate card renaming: Update display names or descriptions for organizational
122
+ # - Rename rate cards: Update display names or descriptions for organizational
128
123
  # clarity
129
- # - Alias management: Add, modify, or schedule alias transitions for seamless rate
130
- # card migrations
131
- # - Documentation updates: Keep rate card descriptions current with business
124
+ # - Manage aliases: Add, modify, or schedule alias transitions for seamless and
125
+ # code-free rate card migrations
126
+ # - Update documentation: Keep rate card descriptions current with business
132
127
  # context
133
- # - Self-serve provisioning setup: Configure aliases to enable code-free rate card
134
- # transitions
128
+ # - Configure custom pricing units: Add credit type conversions to enable rates
129
+ # with different pricing units
135
130
  #
136
131
  # #### Active contract impact:
137
132
  #
@@ -169,6 +164,10 @@ module MetronomeSDK
169
164
  sig do
170
165
  params(
171
166
  rate_card_id: String,
167
+ add_credit_type_conversions:
168
+ T::Array[
169
+ MetronomeSDK::V1::Contracts::RateCardUpdateParams::AddCreditTypeConversion::OrHash
170
+ ],
172
171
  aliases:
173
172
  T::Array[
174
173
  MetronomeSDK::V1::Contracts::RateCardUpdateParams::Alias::OrHash
@@ -183,6 +182,9 @@ module MetronomeSDK
183
182
  def update(
184
183
  # ID of the rate card to update
185
184
  rate_card_id:,
185
+ # Add credit type conversions for using custom pricing units in rates. Existing
186
+ # conversions cannot be modified.
187
+ add_credit_type_conversions: nil,
186
188
  # Reference this alias when creating a contract. If the same alias is assigned to
187
189
  # multiple rate cards, it will reference the rate card to which it was most
188
190
  # recently assigned. It is not exposed to end customers.
@@ -30,16 +30,13 @@ module MetronomeSDK
30
30
  #
31
31
  # - Dashboard types: Choose from `invoices`, `usage`, or `commits_and_credits`
32
32
  # - Customization options:
33
- # - `dashboard_options`: Configure dashboard behavior. For the invoices
34
- # dashboard, supported keys include: `show_zero_usage_line_items`
35
- # ("true"/"false"), `hide_voided_invoices` ("true"/"false"), `contract_id`
36
- # (UUID, filters invoices by contract), `invoice_type` ("USAGE" or
37
- # "SCHEDULED", filters by invoice type), `invoice_status_filter` ("VOID",
38
- # "FINALIZED", "DRAFT", "FINALIZED_AND_DRAFT", or "ALL"), and
39
- # `billable_status_filter` ("BILLABLE", "UNBILLABLE", or "ALL")
33
+ # - `dashboard_options`: Configure dashboard behavior. Supported for the
34
+ # invoices dashboard only. Available keys include:
35
+ # `show_zero_usage_line_items` ("true"/"false"), `contract_id` (UUID, filters
36
+ # invoices by contract), `invoice_type` ("USAGE" or "SCHEDULED", filters by
37
+ # invoice type), and `invoice_status_filter` ("VOID", "FINALIZED", "DRAFT",
38
+ # "FINALIZED_AND_DRAFT", or "ALL")
40
39
  # - `color_overrides`: Match your brand's color palette
41
- # - `bm_group_key_overrides`: Customize how dimensions are displayed (for the
42
- # usage embeddable dashboard)
43
40
  # - Iframe implementation: Embed the returned URL directly in an iframe element
44
41
  # - Responsive design: Dashboards automatically adapt to container dimensions
45
42
  sig do
@@ -318,6 +318,7 @@ module MetronomeSDK
318
318
  customer_id: String,
319
319
  access_schedule:
320
320
  MetronomeSDK::V2::ContractEditCommitParams::AccessSchedule::OrHash,
321
+ applicable_contract_ids: T.nilable(T::Array[String]),
321
322
  applicable_product_ids: T.nilable(T::Array[String]),
322
323
  applicable_product_tags: T.nilable(T::Array[String]),
323
324
  description: String,
@@ -342,6 +343,10 @@ module MetronomeSDK
342
343
  # ID of the customer whose commit is being edited
343
344
  customer_id:,
344
345
  access_schedule: nil,
346
+ # Which contracts the customer-level commit applies to. If set to null, the commit
347
+ # applies to all of the customer's contracts. This field cannot be edited for
348
+ # POSTPAID commits or contract-level commits.
349
+ applicable_contract_ids: nil,
345
350
  # Which products the commit applies to. If applicable_product_ids,
346
351
  # applicable_product_tags or specifiers are not provided, the commit applies to
347
352
  # all products.
@@ -400,6 +405,7 @@ module MetronomeSDK
400
405
  customer_id: String,
401
406
  access_schedule:
402
407
  MetronomeSDK::V2::ContractEditCreditParams::AccessSchedule::OrHash,
408
+ applicable_contract_ids: T.nilable(T::Array[String]),
403
409
  applicable_product_ids: T.nilable(T::Array[String]),
404
410
  applicable_product_tags: T.nilable(T::Array[String]),
405
411
  description: String,
@@ -421,6 +427,10 @@ module MetronomeSDK
421
427
  # ID of the customer whose credit is being edited
422
428
  customer_id:,
423
429
  access_schedule: nil,
430
+ # Which contracts the customer-level credit applies to. If set to null, the credit
431
+ # applies to all of the customer's contracts. This field cannot be set on a
432
+ # contract-level credit.
433
+ applicable_contract_ids: nil,
424
434
  # Which products the credit applies to. If both applicable_product_ids and
425
435
  # applicable_product_tags are not provided, the credit applies to all products.
426
436
  applicable_product_ids: nil,
@@ -14,6 +14,7 @@ module MetronomeSDK
14
14
  archived_at: Time,
15
15
  balance: Float,
16
16
  contract: MetronomeSDK::Commit::Contract,
17
+ cost_basis: Float,
17
18
  created_by: String,
18
19
  custom_fields: ::Hash[Symbol, String],
19
20
  description: String,
@@ -80,6 +81,10 @@ module MetronomeSDK
80
81
  MetronomeSDK::Commit::Contract
81
82
  ) -> MetronomeSDK::Commit::Contract
82
83
 
84
+ attr_reader cost_basis: Float?
85
+
86
+ def cost_basis=: (Float) -> Float
87
+
83
88
  attr_reader created_by: String?
84
89
 
85
90
  def created_by=: (String) -> String
@@ -187,6 +192,7 @@ module MetronomeSDK
187
192
  ?archived_at: Time,
188
193
  ?balance: Float,
189
194
  ?contract: MetronomeSDK::Commit::Contract,
195
+ ?cost_basis: Float,
190
196
  ?created_by: String,
191
197
  ?custom_fields: ::Hash[Symbol, String],
192
198
  ?description: String,
@@ -221,6 +227,7 @@ module MetronomeSDK
221
227
  archived_at: Time,
222
228
  balance: Float,
223
229
  contract: MetronomeSDK::Commit::Contract,
230
+ cost_basis: Float,
224
231
  created_by: String,
225
232
  custom_fields: ::Hash[Symbol, String],
226
233
  description: String,
@@ -309,6 +309,7 @@ module MetronomeSDK
309
309
  archived_at: Time,
310
310
  balance: Float,
311
311
  contract: MetronomeSDK::ContractV2::Commit::Contract,
312
+ cost_basis: Float,
312
313
  created_by: String,
313
314
  custom_fields: ::Hash[Symbol, String],
314
315
  description: String,
@@ -370,6 +371,10 @@ module MetronomeSDK
370
371
  MetronomeSDK::ContractV2::Commit::Contract
371
372
  ) -> MetronomeSDK::ContractV2::Commit::Contract
372
373
 
374
+ attr_reader cost_basis: Float?
375
+
376
+ def cost_basis=: (Float) -> Float
377
+
373
378
  attr_reader created_by: String?
374
379
 
375
380
  def created_by=: (String) -> String
@@ -472,6 +477,7 @@ module MetronomeSDK
472
477
  ?archived_at: Time,
473
478
  ?balance: Float,
474
479
  ?contract: MetronomeSDK::ContractV2::Commit::Contract,
480
+ ?cost_basis: Float,
475
481
  ?created_by: String,
476
482
  ?custom_fields: ::Hash[Symbol, String],
477
483
  ?description: String,
@@ -504,6 +510,7 @@ module MetronomeSDK
504
510
  archived_at: Time,
505
511
  balance: Float,
506
512
  contract: MetronomeSDK::ContractV2::Commit::Contract,
513
+ cost_basis: Float,
507
514
  created_by: String,
508
515
  custom_fields: ::Hash[Symbol, String],
509
516
  description: String,
@@ -1621,12 +1628,11 @@ module MetronomeSDK
1621
1628
  type: MetronomeSDK::Models::ContractV2::Transition::type_
1622
1629
  }
1623
1630
 
1624
- type type_ = :SUPERSEDE | :RENEWAL
1631
+ type type_ = :RENEWAL
1625
1632
 
1626
1633
  module Type
1627
1634
  extend MetronomeSDK::Internal::Type::Enum
1628
1635
 
1629
- SUPERSEDE: :SUPERSEDE
1630
1636
  RENEWAL: :RENEWAL
1631
1637
 
1632
1638
  def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Transition::type_]
@@ -1704,13 +1710,13 @@ module MetronomeSDK
1704
1710
 
1705
1711
  type billing_provider_configuration_schedule =
1706
1712
  {
1707
- billing_provider_configuration: MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration,
1713
+ billing_provider_configuration: MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration?,
1708
1714
  effective_at: Time,
1709
1715
  effective_until: Time
1710
1716
  }
1711
1717
 
1712
1718
  class BillingProviderConfigurationSchedule < MetronomeSDK::Internal::Type::BaseModel
1713
- attr_accessor billing_provider_configuration: MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration
1719
+ attr_accessor billing_provider_configuration: MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration?
1714
1720
 
1715
1721
  attr_accessor effective_at: Time
1716
1722
 
@@ -1719,13 +1725,13 @@ module MetronomeSDK
1719
1725
  def effective_until=: (Time) -> Time
1720
1726
 
1721
1727
  def initialize: (
1722
- billing_provider_configuration: MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration,
1728
+ billing_provider_configuration: MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration?,
1723
1729
  effective_at: Time,
1724
1730
  ?effective_until: Time
1725
1731
  ) -> void
1726
1732
 
1727
1733
  def to_hash: -> {
1728
- billing_provider_configuration: MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration,
1734
+ billing_provider_configuration: MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration?,
1729
1735
  effective_at: Time,
1730
1736
  effective_until: Time
1731
1737
  }
@@ -3599,14 +3605,14 @@ module MetronomeSDK
3599
3605
  type revenue_system_configuration_schedule =
3600
3606
  {
3601
3607
  effective_at: Time,
3602
- revenue_system_configuration: MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration,
3608
+ revenue_system_configuration: MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration?,
3603
3609
  effective_until: Time
3604
3610
  }
3605
3611
 
3606
3612
  class RevenueSystemConfigurationSchedule < MetronomeSDK::Internal::Type::BaseModel
3607
3613
  attr_accessor effective_at: Time
3608
3614
 
3609
- attr_accessor revenue_system_configuration: MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration
3615
+ attr_accessor revenue_system_configuration: MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration?
3610
3616
 
3611
3617
  attr_reader effective_until: Time?
3612
3618
 
@@ -3614,13 +3620,13 @@ module MetronomeSDK
3614
3620
 
3615
3621
  def initialize: (
3616
3622
  effective_at: Time,
3617
- revenue_system_configuration: MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration,
3623
+ revenue_system_configuration: MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration?,
3618
3624
  ?effective_until: Time
3619
3625
  ) -> void
3620
3626
 
3621
3627
  def to_hash: -> {
3622
3628
  effective_at: Time,
3623
- revenue_system_configuration: MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration,
3629
+ revenue_system_configuration: MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration?,
3624
3630
  effective_until: Time
3625
3631
  }
3626
3632
 
@@ -234,12 +234,11 @@ module MetronomeSDK
234
234
  type: MetronomeSDK::Models::ContractWithoutAmendments::Transition::type_
235
235
  }
236
236
 
237
- type type_ = :SUPERSEDE | :RENEWAL
237
+ type type_ = :RENEWAL
238
238
 
239
239
  module Type
240
240
  extend MetronomeSDK::Internal::Type::Enum
241
241
 
242
- SUPERSEDE: :SUPERSEDE
243
242
  RENEWAL: :RENEWAL
244
243
 
245
244
  def self?.values: -> ::Array[MetronomeSDK::Models::ContractWithoutAmendments::Transition::type_]
@@ -3278,12 +3278,11 @@ module MetronomeSDK
3278
3278
  future_invoice_behavior: MetronomeSDK::V1::ContractCreateParams::Transition::FutureInvoiceBehavior
3279
3279
  }
3280
3280
 
3281
- type type_ = :SUPERSEDE | :RENEWAL
3281
+ type type_ = :RENEWAL
3282
3282
 
3283
3283
  module Type
3284
3284
  extend MetronomeSDK::Internal::Type::Enum
3285
3285
 
3286
- SUPERSEDE: :SUPERSEDE
3287
3286
  RENEWAL: :RENEWAL
3288
3287
 
3289
3288
  def self?.values: -> ::Array[MetronomeSDK::Models::V1::ContractCreateParams::Transition::type_]
@@ -282,12 +282,11 @@ module MetronomeSDK
282
282
  type: MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::Transition::type_
283
283
  }
284
284
 
285
- type type_ = :SUPERSEDE | :RENEWAL
285
+ type type_ = :RENEWAL
286
286
 
287
287
  module Type
288
288
  extend MetronomeSDK::Internal::Type::Enum
289
289
 
290
- SUPERSEDE: :SUPERSEDE
291
290
  RENEWAL: :RENEWAL
292
291
 
293
292
  def self?.values: -> ::Array[MetronomeSDK::Models::V1::ContractCreateResponse::Data::Contract::Transition::type_]
@@ -5,6 +5,7 @@ module MetronomeSDK
5
5
  type rate_card_update_params =
6
6
  {
7
7
  rate_card_id: String,
8
+ add_credit_type_conversions: ::Array[MetronomeSDK::V1::Contracts::RateCardUpdateParams::AddCreditTypeConversion],
8
9
  aliases: ::Array[MetronomeSDK::V1::Contracts::RateCardUpdateParams::Alias],
9
10
  description: String,
10
11
  name: String
@@ -17,6 +18,12 @@ module MetronomeSDK
17
18
 
18
19
  attr_accessor rate_card_id: String
19
20
 
21
+ attr_reader add_credit_type_conversions: ::Array[MetronomeSDK::V1::Contracts::RateCardUpdateParams::AddCreditTypeConversion]?
22
+
23
+ def add_credit_type_conversions=: (
24
+ ::Array[MetronomeSDK::V1::Contracts::RateCardUpdateParams::AddCreditTypeConversion]
25
+ ) -> ::Array[MetronomeSDK::V1::Contracts::RateCardUpdateParams::AddCreditTypeConversion]
26
+
20
27
  attr_reader aliases: ::Array[MetronomeSDK::V1::Contracts::RateCardUpdateParams::Alias]?
21
28
 
22
29
  def aliases=: (
@@ -33,6 +40,7 @@ module MetronomeSDK
33
40
 
34
41
  def initialize: (
35
42
  rate_card_id: String,
43
+ ?add_credit_type_conversions: ::Array[MetronomeSDK::V1::Contracts::RateCardUpdateParams::AddCreditTypeConversion],
36
44
  ?aliases: ::Array[MetronomeSDK::V1::Contracts::RateCardUpdateParams::Alias],
37
45
  ?description: String,
38
46
  ?name: String,
@@ -41,12 +49,32 @@ module MetronomeSDK
41
49
 
42
50
  def to_hash: -> {
43
51
  rate_card_id: String,
52
+ add_credit_type_conversions: ::Array[MetronomeSDK::V1::Contracts::RateCardUpdateParams::AddCreditTypeConversion],
44
53
  aliases: ::Array[MetronomeSDK::V1::Contracts::RateCardUpdateParams::Alias],
45
54
  description: String,
46
55
  name: String,
47
56
  request_options: MetronomeSDK::RequestOptions
48
57
  }
49
58
 
59
+ type add_credit_type_conversion =
60
+ { custom_credit_type_id: String, fiat_per_custom_credit: Float }
61
+
62
+ class AddCreditTypeConversion < MetronomeSDK::Internal::Type::BaseModel
63
+ attr_accessor custom_credit_type_id: String
64
+
65
+ attr_accessor fiat_per_custom_credit: Float
66
+
67
+ def initialize: (
68
+ custom_credit_type_id: String,
69
+ fiat_per_custom_credit: Float
70
+ ) -> void
71
+
72
+ def to_hash: -> {
73
+ custom_credit_type_id: String,
74
+ fiat_per_custom_credit: Float
75
+ }
76
+ end
77
+
50
78
  type alias_ = { name: String, ending_before: Time, starting_at: Time }
51
79
 
52
80
  class Alias < MetronomeSDK::Internal::Type::BaseModel