metronome-sdk 0.1.0.pre.alpha.4 → 0.2.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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/cursor_page.rb +1 -1
  5. data/lib/metronome_sdk/internal/transport/base_client.rb +1 -1
  6. data/lib/metronome_sdk/models/commit.rb +81 -8
  7. data/lib/metronome_sdk/models/contract_without_amendments.rb +368 -2
  8. data/lib/metronome_sdk/models/credit.rb +67 -6
  9. data/lib/metronome_sdk/models/v1/alert_create_params.rb +9 -11
  10. data/lib/metronome_sdk/models/v1/contract_create_params.rb +399 -12
  11. data/lib/metronome_sdk/models/v1/contract_list_balances_params.rb +9 -1
  12. data/lib/metronome_sdk/models/v1/customers/commit_list_params.rb +9 -1
  13. data/lib/metronome_sdk/models/v1/customers/credit_list_params.rb +9 -1
  14. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +29 -1
  15. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  16. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +2 -0
  17. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +2 -0
  18. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +417 -18
  19. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +776 -12
  20. data/lib/metronome_sdk/models/v2/contract_list_response.rb +529 -22
  21. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +529 -22
  22. data/lib/metronome_sdk/resources/v1/alerts.rb +2 -2
  23. data/lib/metronome_sdk/resources/v1/contracts.rb +3 -1
  24. data/lib/metronome_sdk/resources/v1/customers/commits.rb +3 -1
  25. data/lib/metronome_sdk/resources/v1/customers/credits.rb +3 -1
  26. data/lib/metronome_sdk/version.rb +1 -1
  27. data/rbi/metronome_sdk/internal/transport/base_client.rbi +1 -1
  28. data/rbi/metronome_sdk/models/commit.rbi +173 -15
  29. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +888 -6
  30. data/rbi/metronome_sdk/models/credit.rbi +141 -12
  31. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +16 -18
  32. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1160 -226
  33. data/rbi/metronome_sdk/models/v1/contract_list_balances_params.rbi +11 -0
  34. data/rbi/metronome_sdk/models/v1/customers/commit_list_params.rbi +11 -0
  35. data/rbi/metronome_sdk/models/v1/customers/credit_list_params.rbi +11 -0
  36. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +60 -0
  37. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  38. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +4 -0
  39. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +4 -0
  40. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +1192 -234
  41. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +2155 -87
  42. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +1260 -47
  43. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +1260 -47
  44. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -5
  45. data/rbi/metronome_sdk/resources/v1/contracts.rbi +3 -0
  46. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +3 -0
  47. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +3 -0
  48. data/rbi/metronome_sdk/resources/v2/contracts.rbi +4 -0
  49. data/sig/metronome_sdk/internal/transport/base_client.rbs +1 -1
  50. data/sig/metronome_sdk/models/commit.rbs +93 -15
  51. data/sig/metronome_sdk/models/contract_without_amendments.rbs +366 -6
  52. data/sig/metronome_sdk/models/credit.rbs +73 -9
  53. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +9 -9
  54. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +376 -3
  55. data/sig/metronome_sdk/models/v1/contract_list_balances_params.rbs +7 -0
  56. data/sig/metronome_sdk/models/v1/customers/commit_list_params.rbs +7 -0
  57. data/sig/metronome_sdk/models/v1/customers/credit_list_params.rbs +7 -0
  58. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +21 -0
  59. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  60. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +376 -3
  61. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +858 -6
  62. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +558 -30
  63. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +558 -30
  64. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -1
  65. data/sig/metronome_sdk/resources/v1/contracts.rbs +1 -0
  66. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +1 -0
  67. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +1 -0
  68. metadata +4 -4
@@ -5230,6 +5230,24 @@ module MetronomeSDK
5230
5230
  sig { params(ending_before: Time).void }
5231
5231
  attr_writer :ending_before
5232
5232
 
5233
+ # Optional configuration for recurring commit/credit hierarchy access control
5234
+ sig do
5235
+ returns(
5236
+ T.nilable(
5237
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration
5238
+ )
5239
+ )
5240
+ end
5241
+ attr_reader :hierarchy_configuration
5242
+
5243
+ sig do
5244
+ params(
5245
+ hierarchy_configuration:
5246
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::OrHash
5247
+ ).void
5248
+ end
5249
+ attr_writer :hierarchy_configuration
5250
+
5233
5251
  # The amount the customer should be billed for the commit. Not required.
5234
5252
  sig do
5235
5253
  returns(
@@ -5355,6 +5373,24 @@ module MetronomeSDK
5355
5373
  end
5356
5374
  attr_writer :specifiers
5357
5375
 
5376
+ # Attach a subscription to the recurring commit/credit.
5377
+ sig do
5378
+ returns(
5379
+ T.nilable(
5380
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig
5381
+ )
5382
+ )
5383
+ end
5384
+ attr_reader :subscription_config
5385
+
5386
+ sig do
5387
+ params(
5388
+ subscription_config:
5389
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::OrHash
5390
+ ).void
5391
+ end
5392
+ attr_writer :subscription_config
5393
+
5358
5394
  # A temporary ID that can be used to reference the recurring commit for commit
5359
5395
  # specific overrides.
5360
5396
  sig { returns(T.nilable(String)) }
@@ -5376,6 +5412,8 @@ module MetronomeSDK
5376
5412
  applicable_product_tags: T::Array[String],
5377
5413
  description: String,
5378
5414
  ending_before: Time,
5415
+ hierarchy_configuration:
5416
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::OrHash,
5379
5417
  invoice_amount:
5380
5418
  MetronomeSDK::V1::ContractCreateParams::RecurringCommit::InvoiceAmount::OrHash,
5381
5419
  name: String,
@@ -5391,6 +5429,8 @@ module MetronomeSDK
5391
5429
  T::Array[
5392
5430
  MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Specifier::OrHash
5393
5431
  ],
5432
+ subscription_config:
5433
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::OrHash,
5394
5434
  temporary_id: String
5395
5435
  ).returns(T.attached_class)
5396
5436
  end
@@ -5414,6 +5454,8 @@ module MetronomeSDK
5414
5454
  description: nil,
5415
5455
  # Determines when the contract will stop creating recurring commits. optional
5416
5456
  ending_before: nil,
5457
+ # Optional configuration for recurring commit/credit hierarchy access control
5458
+ hierarchy_configuration: nil,
5417
5459
  # The amount the customer should be billed for the commit. Not required.
5418
5460
  invoice_amount: nil,
5419
5461
  # displayed on invoices. will be passed through to the individual commits
@@ -5440,6 +5482,8 @@ module MetronomeSDK
5440
5482
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
5441
5483
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
5442
5484
  specifiers: nil,
5485
+ # Attach a subscription to the recurring commit/credit.
5486
+ subscription_config: nil,
5443
5487
  # A temporary ID that can be used to reference the recurring commit for commit
5444
5488
  # specific overrides.
5445
5489
  temporary_id: nil
@@ -5460,6 +5504,8 @@ module MetronomeSDK
5460
5504
  applicable_product_tags: T::Array[String],
5461
5505
  description: String,
5462
5506
  ending_before: Time,
5507
+ hierarchy_configuration:
5508
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration,
5463
5509
  invoice_amount:
5464
5510
  MetronomeSDK::V1::ContractCreateParams::RecurringCommit::InvoiceAmount,
5465
5511
  name: String,
@@ -5475,6 +5521,8 @@ module MetronomeSDK
5475
5521
  T::Array[
5476
5522
  MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Specifier
5477
5523
  ],
5524
+ subscription_config:
5525
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig,
5478
5526
  temporary_id: String
5479
5527
  }
5480
5528
  )
@@ -5615,180 +5663,456 @@ module MetronomeSDK
5615
5663
  end
5616
5664
  end
5617
5665
 
5618
- class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
5666
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
5619
5667
  OrHash =
5620
5668
  T.type_alias do
5621
5669
  T.any(
5622
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::InvoiceAmount,
5670
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration,
5623
5671
  MetronomeSDK::Internal::AnyHash
5624
5672
  )
5625
5673
  end
5626
5674
 
5627
- sig { returns(String) }
5628
- attr_accessor :credit_type_id
5629
-
5630
- sig { returns(Float) }
5631
- attr_accessor :quantity
5632
-
5633
- sig { returns(Float) }
5634
- attr_accessor :unit_price
5675
+ sig do
5676
+ returns(
5677
+ T.any(
5678
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5679
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5680
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
5681
+ )
5682
+ )
5683
+ end
5684
+ attr_accessor :child_access
5635
5685
 
5636
- # The amount the customer should be billed for the commit. Not required.
5686
+ # Optional configuration for recurring commit/credit hierarchy access control
5637
5687
  sig do
5638
5688
  params(
5639
- credit_type_id: String,
5640
- quantity: Float,
5641
- unit_price: Float
5689
+ child_access:
5690
+ T.any(
5691
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
5692
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
5693
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
5694
+ )
5642
5695
  ).returns(T.attached_class)
5643
5696
  end
5644
- def self.new(credit_type_id:, quantity:, unit_price:)
5697
+ def self.new(child_access:)
5645
5698
  end
5646
5699
 
5647
5700
  sig do
5648
5701
  override.returns(
5649
- { credit_type_id: String, quantity: Float, unit_price: Float }
5702
+ {
5703
+ child_access:
5704
+ T.any(
5705
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5706
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5707
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
5708
+ )
5709
+ }
5650
5710
  )
5651
5711
  end
5652
5712
  def to_hash
5653
5713
  end
5654
- end
5655
5714
 
5656
- # Determines whether the first and last commit will be prorated. If not provided,
5657
- # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
5658
- module Proration
5659
- extend MetronomeSDK::Internal::Type::Enum
5715
+ module ChildAccess
5716
+ extend MetronomeSDK::Internal::Type::Union
5660
5717
 
5661
- TaggedSymbol =
5662
- T.type_alias do
5663
- T.all(
5664
- Symbol,
5665
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration
5666
- )
5667
- end
5668
- OrSymbol = T.type_alias { T.any(Symbol, String) }
5718
+ Variants =
5719
+ T.type_alias do
5720
+ T.any(
5721
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5722
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5723
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
5724
+ )
5725
+ end
5669
5726
 
5670
- NONE =
5671
- T.let(
5672
- :NONE,
5673
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration::TaggedSymbol
5674
- )
5675
- FIRST =
5676
- T.let(
5677
- :FIRST,
5678
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration::TaggedSymbol
5679
- )
5680
- LAST =
5681
- T.let(
5682
- :LAST,
5683
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration::TaggedSymbol
5684
- )
5685
- FIRST_AND_LAST =
5686
- T.let(
5687
- :FIRST_AND_LAST,
5688
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration::TaggedSymbol
5689
- )
5727
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
5728
+ OrHash =
5729
+ T.type_alias do
5730
+ T.any(
5731
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5732
+ MetronomeSDK::Internal::AnyHash
5733
+ )
5734
+ end
5690
5735
 
5691
- sig do
5692
- override.returns(
5693
- T::Array[
5694
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration::TaggedSymbol
5695
- ]
5696
- )
5697
- end
5698
- def self.values
5699
- end
5700
- end
5736
+ sig do
5737
+ returns(
5738
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
5739
+ )
5740
+ end
5741
+ attr_accessor :type
5701
5742
 
5702
- # Whether the created commits will use the commit rate or list rate
5703
- module RateType
5704
- extend MetronomeSDK::Internal::Type::Enum
5743
+ sig do
5744
+ params(
5745
+ type:
5746
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
5747
+ ).returns(T.attached_class)
5748
+ end
5749
+ def self.new(type:)
5750
+ end
5705
5751
 
5706
- TaggedSymbol =
5707
- T.type_alias do
5708
- T.all(
5709
- Symbol,
5710
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RateType
5711
- )
5712
- end
5713
- OrSymbol = T.type_alias { T.any(Symbol, String) }
5752
+ sig do
5753
+ override.returns(
5754
+ {
5755
+ type:
5756
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
5757
+ }
5758
+ )
5759
+ end
5760
+ def to_hash
5761
+ end
5714
5762
 
5715
- COMMIT_RATE =
5716
- T.let(
5717
- :COMMIT_RATE,
5718
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RateType::TaggedSymbol
5719
- )
5720
- LIST_RATE =
5721
- T.let(
5722
- :LIST_RATE,
5723
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RateType::TaggedSymbol
5724
- )
5763
+ module Type
5764
+ extend MetronomeSDK::Internal::Type::Enum
5725
5765
 
5726
- sig do
5727
- override.returns(
5728
- T::Array[
5729
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RateType::TaggedSymbol
5730
- ]
5731
- )
5732
- end
5733
- def self.values
5734
- end
5735
- end
5766
+ TaggedSymbol =
5767
+ T.type_alias do
5768
+ T.all(
5769
+ Symbol,
5770
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
5771
+ )
5772
+ end
5773
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5736
5774
 
5737
- # The frequency at which the recurring commits will be created. If not provided: -
5738
- # The commits will be created on the usage invoice frequency. If provided: - The
5739
- # period defined in the duration will correspond to this frequency. - Commits will
5740
- # be created aligned with the recurring commit's starting_at rather than the usage
5741
- # invoice dates.
5742
- module RecurrenceFrequency
5743
- extend MetronomeSDK::Internal::Type::Enum
5775
+ ALL =
5776
+ T.let(
5777
+ :ALL,
5778
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
5779
+ )
5744
5780
 
5745
- TaggedSymbol =
5746
- T.type_alias do
5747
- T.all(
5748
- Symbol,
5749
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency
5750
- )
5781
+ sig do
5782
+ override.returns(
5783
+ T::Array[
5784
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
5785
+ ]
5786
+ )
5787
+ end
5788
+ def self.values
5789
+ end
5790
+ end
5751
5791
  end
5752
- OrSymbol = T.type_alias { T.any(Symbol, String) }
5753
5792
 
5754
- MONTHLY =
5755
- T.let(
5756
- :MONTHLY,
5757
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency::TaggedSymbol
5758
- )
5759
- QUARTERLY =
5760
- T.let(
5761
- :QUARTERLY,
5762
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency::TaggedSymbol
5763
- )
5764
- ANNUAL =
5765
- T.let(
5766
- :ANNUAL,
5767
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency::TaggedSymbol
5768
- )
5769
- WEEKLY =
5770
- T.let(
5771
- :WEEKLY,
5772
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency::TaggedSymbol
5773
- )
5793
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
5794
+ OrHash =
5795
+ T.type_alias do
5796
+ T.any(
5797
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5798
+ MetronomeSDK::Internal::AnyHash
5799
+ )
5800
+ end
5774
5801
 
5775
- sig do
5776
- override.returns(
5777
- T::Array[
5778
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency::TaggedSymbol
5779
- ]
5780
- )
5781
- end
5782
- def self.values
5783
- end
5784
- end
5802
+ sig do
5803
+ returns(
5804
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
5805
+ )
5806
+ end
5807
+ attr_accessor :type
5785
5808
 
5786
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
5787
- OrHash =
5788
- T.type_alias do
5789
- T.any(
5790
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Specifier,
5791
- MetronomeSDK::Internal::AnyHash
5809
+ sig do
5810
+ params(
5811
+ type:
5812
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
5813
+ ).returns(T.attached_class)
5814
+ end
5815
+ def self.new(type:)
5816
+ end
5817
+
5818
+ sig do
5819
+ override.returns(
5820
+ {
5821
+ type:
5822
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
5823
+ }
5824
+ )
5825
+ end
5826
+ def to_hash
5827
+ end
5828
+
5829
+ module Type
5830
+ extend MetronomeSDK::Internal::Type::Enum
5831
+
5832
+ TaggedSymbol =
5833
+ T.type_alias do
5834
+ T.all(
5835
+ Symbol,
5836
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
5837
+ )
5838
+ end
5839
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5840
+
5841
+ NONE =
5842
+ T.let(
5843
+ :NONE,
5844
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
5845
+ )
5846
+
5847
+ sig do
5848
+ override.returns(
5849
+ T::Array[
5850
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
5851
+ ]
5852
+ )
5853
+ end
5854
+ def self.values
5855
+ end
5856
+ end
5857
+ end
5858
+
5859
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
5860
+ OrHash =
5861
+ T.type_alias do
5862
+ T.any(
5863
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
5864
+ MetronomeSDK::Internal::AnyHash
5865
+ )
5866
+ end
5867
+
5868
+ sig { returns(T::Array[String]) }
5869
+ attr_accessor :contract_ids
5870
+
5871
+ sig do
5872
+ returns(
5873
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
5874
+ )
5875
+ end
5876
+ attr_accessor :type
5877
+
5878
+ sig do
5879
+ params(
5880
+ contract_ids: T::Array[String],
5881
+ type:
5882
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
5883
+ ).returns(T.attached_class)
5884
+ end
5885
+ def self.new(contract_ids:, type:)
5886
+ end
5887
+
5888
+ sig do
5889
+ override.returns(
5890
+ {
5891
+ contract_ids: T::Array[String],
5892
+ type:
5893
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
5894
+ }
5895
+ )
5896
+ end
5897
+ def to_hash
5898
+ end
5899
+
5900
+ module Type
5901
+ extend MetronomeSDK::Internal::Type::Enum
5902
+
5903
+ TaggedSymbol =
5904
+ T.type_alias do
5905
+ T.all(
5906
+ Symbol,
5907
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
5908
+ )
5909
+ end
5910
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5911
+
5912
+ CONTRACT_IDS =
5913
+ T.let(
5914
+ :CONTRACT_IDS,
5915
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
5916
+ )
5917
+
5918
+ sig do
5919
+ override.returns(
5920
+ T::Array[
5921
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
5922
+ ]
5923
+ )
5924
+ end
5925
+ def self.values
5926
+ end
5927
+ end
5928
+ end
5929
+
5930
+ sig do
5931
+ override.returns(
5932
+ T::Array[
5933
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::Variants
5934
+ ]
5935
+ )
5936
+ end
5937
+ def self.variants
5938
+ end
5939
+ end
5940
+ end
5941
+
5942
+ class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
5943
+ OrHash =
5944
+ T.type_alias do
5945
+ T.any(
5946
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::InvoiceAmount,
5947
+ MetronomeSDK::Internal::AnyHash
5948
+ )
5949
+ end
5950
+
5951
+ sig { returns(String) }
5952
+ attr_accessor :credit_type_id
5953
+
5954
+ sig { returns(Float) }
5955
+ attr_accessor :quantity
5956
+
5957
+ sig { returns(Float) }
5958
+ attr_accessor :unit_price
5959
+
5960
+ # The amount the customer should be billed for the commit. Not required.
5961
+ sig do
5962
+ params(
5963
+ credit_type_id: String,
5964
+ quantity: Float,
5965
+ unit_price: Float
5966
+ ).returns(T.attached_class)
5967
+ end
5968
+ def self.new(credit_type_id:, quantity:, unit_price:)
5969
+ end
5970
+
5971
+ sig do
5972
+ override.returns(
5973
+ { credit_type_id: String, quantity: Float, unit_price: Float }
5974
+ )
5975
+ end
5976
+ def to_hash
5977
+ end
5978
+ end
5979
+
5980
+ # Determines whether the first and last commit will be prorated. If not provided,
5981
+ # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
5982
+ module Proration
5983
+ extend MetronomeSDK::Internal::Type::Enum
5984
+
5985
+ TaggedSymbol =
5986
+ T.type_alias do
5987
+ T.all(
5988
+ Symbol,
5989
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration
5990
+ )
5991
+ end
5992
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5993
+
5994
+ NONE =
5995
+ T.let(
5996
+ :NONE,
5997
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration::TaggedSymbol
5998
+ )
5999
+ FIRST =
6000
+ T.let(
6001
+ :FIRST,
6002
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration::TaggedSymbol
6003
+ )
6004
+ LAST =
6005
+ T.let(
6006
+ :LAST,
6007
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration::TaggedSymbol
6008
+ )
6009
+ FIRST_AND_LAST =
6010
+ T.let(
6011
+ :FIRST_AND_LAST,
6012
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration::TaggedSymbol
6013
+ )
6014
+
6015
+ sig do
6016
+ override.returns(
6017
+ T::Array[
6018
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration::TaggedSymbol
6019
+ ]
6020
+ )
6021
+ end
6022
+ def self.values
6023
+ end
6024
+ end
6025
+
6026
+ # Whether the created commits will use the commit rate or list rate
6027
+ module RateType
6028
+ extend MetronomeSDK::Internal::Type::Enum
6029
+
6030
+ TaggedSymbol =
6031
+ T.type_alias do
6032
+ T.all(
6033
+ Symbol,
6034
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RateType
6035
+ )
6036
+ end
6037
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6038
+
6039
+ COMMIT_RATE =
6040
+ T.let(
6041
+ :COMMIT_RATE,
6042
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RateType::TaggedSymbol
6043
+ )
6044
+ LIST_RATE =
6045
+ T.let(
6046
+ :LIST_RATE,
6047
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RateType::TaggedSymbol
6048
+ )
6049
+
6050
+ sig do
6051
+ override.returns(
6052
+ T::Array[
6053
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RateType::TaggedSymbol
6054
+ ]
6055
+ )
6056
+ end
6057
+ def self.values
6058
+ end
6059
+ end
6060
+
6061
+ # The frequency at which the recurring commits will be created. If not provided: -
6062
+ # The commits will be created on the usage invoice frequency. If provided: - The
6063
+ # period defined in the duration will correspond to this frequency. - Commits will
6064
+ # be created aligned with the recurring commit's starting_at rather than the usage
6065
+ # invoice dates.
6066
+ module RecurrenceFrequency
6067
+ extend MetronomeSDK::Internal::Type::Enum
6068
+
6069
+ TaggedSymbol =
6070
+ T.type_alias do
6071
+ T.all(
6072
+ Symbol,
6073
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency
6074
+ )
6075
+ end
6076
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6077
+
6078
+ MONTHLY =
6079
+ T.let(
6080
+ :MONTHLY,
6081
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency::TaggedSymbol
6082
+ )
6083
+ QUARTERLY =
6084
+ T.let(
6085
+ :QUARTERLY,
6086
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency::TaggedSymbol
6087
+ )
6088
+ ANNUAL =
6089
+ T.let(
6090
+ :ANNUAL,
6091
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency::TaggedSymbol
6092
+ )
6093
+ WEEKLY =
6094
+ T.let(
6095
+ :WEEKLY,
6096
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency::TaggedSymbol
6097
+ )
6098
+
6099
+ sig do
6100
+ override.returns(
6101
+ T::Array[
6102
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency::TaggedSymbol
6103
+ ]
6104
+ )
6105
+ end
6106
+ def self.values
6107
+ end
6108
+ end
6109
+
6110
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
6111
+ OrHash =
6112
+ T.type_alias do
6113
+ T.any(
6114
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Specifier,
6115
+ MetronomeSDK::Internal::AnyHash
5792
6116
  )
5793
6117
  end
5794
6118
 
@@ -5853,6 +6177,141 @@ module MetronomeSDK
5853
6177
  def to_hash
5854
6178
  end
5855
6179
  end
6180
+
6181
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
6182
+ OrHash =
6183
+ T.type_alias do
6184
+ T.any(
6185
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig,
6186
+ MetronomeSDK::Internal::AnyHash
6187
+ )
6188
+ end
6189
+
6190
+ sig do
6191
+ returns(
6192
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig
6193
+ )
6194
+ end
6195
+ attr_reader :apply_seat_increase_config
6196
+
6197
+ sig do
6198
+ params(
6199
+ apply_seat_increase_config:
6200
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash
6201
+ ).void
6202
+ end
6203
+ attr_writer :apply_seat_increase_config
6204
+
6205
+ # ID of the subscription to configure on the recurring commit/credit.
6206
+ sig { returns(String) }
6207
+ attr_accessor :subscription_id
6208
+
6209
+ # If set to POOLED, allocation added per seat is pooled across the account.
6210
+ sig do
6211
+ returns(
6212
+ T.nilable(
6213
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation::OrSymbol
6214
+ )
6215
+ )
6216
+ end
6217
+ attr_reader :allocation
6218
+
6219
+ sig do
6220
+ params(
6221
+ allocation:
6222
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation::OrSymbol
6223
+ ).void
6224
+ end
6225
+ attr_writer :allocation
6226
+
6227
+ # Attach a subscription to the recurring commit/credit.
6228
+ sig do
6229
+ params(
6230
+ apply_seat_increase_config:
6231
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash,
6232
+ subscription_id: String,
6233
+ allocation:
6234
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation::OrSymbol
6235
+ ).returns(T.attached_class)
6236
+ end
6237
+ def self.new(
6238
+ apply_seat_increase_config:,
6239
+ # ID of the subscription to configure on the recurring commit/credit.
6240
+ subscription_id:,
6241
+ # If set to POOLED, allocation added per seat is pooled across the account.
6242
+ allocation: nil
6243
+ )
6244
+ end
6245
+
6246
+ sig do
6247
+ override.returns(
6248
+ {
6249
+ apply_seat_increase_config:
6250
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig,
6251
+ subscription_id: String,
6252
+ allocation:
6253
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation::OrSymbol
6254
+ }
6255
+ )
6256
+ end
6257
+ def to_hash
6258
+ end
6259
+
6260
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
6261
+ OrHash =
6262
+ T.type_alias do
6263
+ T.any(
6264
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig,
6265
+ MetronomeSDK::Internal::AnyHash
6266
+ )
6267
+ end
6268
+
6269
+ # Indicates whether a mid-period seat increase should be prorated.
6270
+ sig { returns(T::Boolean) }
6271
+ attr_accessor :is_prorated
6272
+
6273
+ sig { params(is_prorated: T::Boolean).returns(T.attached_class) }
6274
+ def self.new(
6275
+ # Indicates whether a mid-period seat increase should be prorated.
6276
+ is_prorated:
6277
+ )
6278
+ end
6279
+
6280
+ sig { override.returns({ is_prorated: T::Boolean }) }
6281
+ def to_hash
6282
+ end
6283
+ end
6284
+
6285
+ # If set to POOLED, allocation added per seat is pooled across the account.
6286
+ module Allocation
6287
+ extend MetronomeSDK::Internal::Type::Enum
6288
+
6289
+ TaggedSymbol =
6290
+ T.type_alias do
6291
+ T.all(
6292
+ Symbol,
6293
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation
6294
+ )
6295
+ end
6296
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6297
+
6298
+ POOLED =
6299
+ T.let(
6300
+ :POOLED,
6301
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation::TaggedSymbol
6302
+ )
6303
+
6304
+ sig do
6305
+ override.returns(
6306
+ T::Array[
6307
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation::TaggedSymbol
6308
+ ]
6309
+ )
6310
+ end
6311
+ def self.values
6312
+ end
6313
+ end
6314
+ end
5856
6315
  end
5857
6316
 
5858
6317
  class RecurringCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -5937,6 +6396,24 @@ module MetronomeSDK
5937
6396
  sig { params(ending_before: Time).void }
5938
6397
  attr_writer :ending_before
5939
6398
 
6399
+ # Optional configuration for recurring commit/credit hierarchy access control
6400
+ sig do
6401
+ returns(
6402
+ T.nilable(
6403
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration
6404
+ )
6405
+ )
6406
+ end
6407
+ attr_reader :hierarchy_configuration
6408
+
6409
+ sig do
6410
+ params(
6411
+ hierarchy_configuration:
6412
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::OrHash
6413
+ ).void
6414
+ end
6415
+ attr_writer :hierarchy_configuration
6416
+
5940
6417
  # displayed on invoices. will be passed through to the individual commits
5941
6418
  sig { returns(T.nilable(String)) }
5942
6419
  attr_reader :name
@@ -6044,6 +6521,24 @@ module MetronomeSDK
6044
6521
  end
6045
6522
  attr_writer :specifiers
6046
6523
 
6524
+ # Attach a subscription to the recurring commit/credit.
6525
+ sig do
6526
+ returns(
6527
+ T.nilable(
6528
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig
6529
+ )
6530
+ )
6531
+ end
6532
+ attr_reader :subscription_config
6533
+
6534
+ sig do
6535
+ params(
6536
+ subscription_config:
6537
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::OrHash
6538
+ ).void
6539
+ end
6540
+ attr_writer :subscription_config
6541
+
6047
6542
  # A temporary ID that can be used to reference the recurring commit for commit
6048
6543
  # specific overrides.
6049
6544
  sig { returns(T.nilable(String)) }
@@ -6065,6 +6560,8 @@ module MetronomeSDK
6065
6560
  applicable_product_tags: T::Array[String],
6066
6561
  description: String,
6067
6562
  ending_before: Time,
6563
+ hierarchy_configuration:
6564
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::OrHash,
6068
6565
  name: String,
6069
6566
  netsuite_sales_order_id: String,
6070
6567
  proration:
@@ -6078,6 +6575,8 @@ module MetronomeSDK
6078
6575
  T::Array[
6079
6576
  MetronomeSDK::V1::ContractCreateParams::RecurringCredit::Specifier::OrHash
6080
6577
  ],
6578
+ subscription_config:
6579
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::OrHash,
6081
6580
  temporary_id: String
6082
6581
  ).returns(T.attached_class)
6083
6582
  end
@@ -6101,6 +6600,8 @@ module MetronomeSDK
6101
6600
  description: nil,
6102
6601
  # Determines when the contract will stop creating recurring commits. optional
6103
6602
  ending_before: nil,
6603
+ # Optional configuration for recurring commit/credit hierarchy access control
6604
+ hierarchy_configuration: nil,
6104
6605
  # displayed on invoices. will be passed through to the individual commits
6105
6606
  name: nil,
6106
6607
  # Will be passed down to the individual commits
@@ -6125,6 +6626,8 @@ module MetronomeSDK
6125
6626
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
6126
6627
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
6127
6628
  specifiers: nil,
6629
+ # Attach a subscription to the recurring commit/credit.
6630
+ subscription_config: nil,
6128
6631
  # A temporary ID that can be used to reference the recurring commit for commit
6129
6632
  # specific overrides.
6130
6633
  temporary_id: nil
@@ -6145,6 +6648,8 @@ module MetronomeSDK
6145
6648
  applicable_product_tags: T::Array[String],
6146
6649
  description: String,
6147
6650
  ending_before: Time,
6651
+ hierarchy_configuration:
6652
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration,
6148
6653
  name: String,
6149
6654
  netsuite_sales_order_id: String,
6150
6655
  proration:
@@ -6158,6 +6663,8 @@ module MetronomeSDK
6158
6663
  T::Array[
6159
6664
  MetronomeSDK::V1::ContractCreateParams::RecurringCredit::Specifier
6160
6665
  ],
6666
+ subscription_config:
6667
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig,
6161
6668
  temporary_id: String
6162
6669
  }
6163
6670
  )
@@ -6205,95 +6712,371 @@ module MetronomeSDK
6205
6712
  )
6206
6713
  end
6207
6714
 
6208
- sig do
6209
- override.returns(
6210
- { credit_type_id: String, unit_price: Float, quantity: Float }
6211
- )
6212
- end
6213
- def to_hash
6214
- end
6215
- end
6715
+ sig do
6716
+ override.returns(
6717
+ { credit_type_id: String, unit_price: Float, quantity: Float }
6718
+ )
6719
+ end
6720
+ def to_hash
6721
+ end
6722
+ end
6723
+
6724
+ class CommitDuration < MetronomeSDK::Internal::Type::BaseModel
6725
+ OrHash =
6726
+ T.type_alias do
6727
+ T.any(
6728
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration,
6729
+ MetronomeSDK::Internal::AnyHash
6730
+ )
6731
+ end
6732
+
6733
+ sig { returns(Float) }
6734
+ attr_accessor :value
6735
+
6736
+ sig do
6737
+ returns(
6738
+ T.nilable(
6739
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit::OrSymbol
6740
+ )
6741
+ )
6742
+ end
6743
+ attr_reader :unit
6744
+
6745
+ sig do
6746
+ params(
6747
+ unit:
6748
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit::OrSymbol
6749
+ ).void
6750
+ end
6751
+ attr_writer :unit
6752
+
6753
+ # Defines the length of the access schedule for each created commit/credit. The
6754
+ # value represents the number of units. Unit defaults to "PERIODS", where the
6755
+ # length of a period is determined by the recurrence_frequency.
6756
+ sig do
6757
+ params(
6758
+ value: Float,
6759
+ unit:
6760
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit::OrSymbol
6761
+ ).returns(T.attached_class)
6762
+ end
6763
+ def self.new(value:, unit: nil)
6764
+ end
6765
+
6766
+ sig do
6767
+ override.returns(
6768
+ {
6769
+ value: Float,
6770
+ unit:
6771
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit::OrSymbol
6772
+ }
6773
+ )
6774
+ end
6775
+ def to_hash
6776
+ end
6777
+
6778
+ module Unit
6779
+ extend MetronomeSDK::Internal::Type::Enum
6780
+
6781
+ TaggedSymbol =
6782
+ T.type_alias do
6783
+ T.all(
6784
+ Symbol,
6785
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit
6786
+ )
6787
+ end
6788
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6789
+
6790
+ PERIODS =
6791
+ T.let(
6792
+ :PERIODS,
6793
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit::TaggedSymbol
6794
+ )
6795
+
6796
+ sig do
6797
+ override.returns(
6798
+ T::Array[
6799
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit::TaggedSymbol
6800
+ ]
6801
+ )
6802
+ end
6803
+ def self.values
6804
+ end
6805
+ end
6806
+ end
6807
+
6808
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
6809
+ OrHash =
6810
+ T.type_alias do
6811
+ T.any(
6812
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration,
6813
+ MetronomeSDK::Internal::AnyHash
6814
+ )
6815
+ end
6816
+
6817
+ sig do
6818
+ returns(
6819
+ T.any(
6820
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6821
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6822
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
6823
+ )
6824
+ )
6825
+ end
6826
+ attr_accessor :child_access
6827
+
6828
+ # Optional configuration for recurring commit/credit hierarchy access control
6829
+ sig do
6830
+ params(
6831
+ child_access:
6832
+ T.any(
6833
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
6834
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
6835
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
6836
+ )
6837
+ ).returns(T.attached_class)
6838
+ end
6839
+ def self.new(child_access:)
6840
+ end
6841
+
6842
+ sig do
6843
+ override.returns(
6844
+ {
6845
+ child_access:
6846
+ T.any(
6847
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6848
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6849
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
6850
+ )
6851
+ }
6852
+ )
6853
+ end
6854
+ def to_hash
6855
+ end
6856
+
6857
+ module ChildAccess
6858
+ extend MetronomeSDK::Internal::Type::Union
6859
+
6860
+ Variants =
6861
+ T.type_alias do
6862
+ T.any(
6863
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6864
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6865
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
6866
+ )
6867
+ end
6868
+
6869
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
6870
+ OrHash =
6871
+ T.type_alias do
6872
+ T.any(
6873
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6874
+ MetronomeSDK::Internal::AnyHash
6875
+ )
6876
+ end
6877
+
6878
+ sig do
6879
+ returns(
6880
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
6881
+ )
6882
+ end
6883
+ attr_accessor :type
6884
+
6885
+ sig do
6886
+ params(
6887
+ type:
6888
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
6889
+ ).returns(T.attached_class)
6890
+ end
6891
+ def self.new(type:)
6892
+ end
6893
+
6894
+ sig do
6895
+ override.returns(
6896
+ {
6897
+ type:
6898
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
6899
+ }
6900
+ )
6901
+ end
6902
+ def to_hash
6903
+ end
6904
+
6905
+ module Type
6906
+ extend MetronomeSDK::Internal::Type::Enum
6907
+
6908
+ TaggedSymbol =
6909
+ T.type_alias do
6910
+ T.all(
6911
+ Symbol,
6912
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
6913
+ )
6914
+ end
6915
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6916
+
6917
+ ALL =
6918
+ T.let(
6919
+ :ALL,
6920
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
6921
+ )
6922
+
6923
+ sig do
6924
+ override.returns(
6925
+ T::Array[
6926
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
6927
+ ]
6928
+ )
6929
+ end
6930
+ def self.values
6931
+ end
6932
+ end
6933
+ end
6934
+
6935
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
6936
+ OrHash =
6937
+ T.type_alias do
6938
+ T.any(
6939
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6940
+ MetronomeSDK::Internal::AnyHash
6941
+ )
6942
+ end
6943
+
6944
+ sig do
6945
+ returns(
6946
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
6947
+ )
6948
+ end
6949
+ attr_accessor :type
6950
+
6951
+ sig do
6952
+ params(
6953
+ type:
6954
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
6955
+ ).returns(T.attached_class)
6956
+ end
6957
+ def self.new(type:)
6958
+ end
6959
+
6960
+ sig do
6961
+ override.returns(
6962
+ {
6963
+ type:
6964
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
6965
+ }
6966
+ )
6967
+ end
6968
+ def to_hash
6969
+ end
6970
+
6971
+ module Type
6972
+ extend MetronomeSDK::Internal::Type::Enum
6216
6973
 
6217
- class CommitDuration < MetronomeSDK::Internal::Type::BaseModel
6218
- OrHash =
6219
- T.type_alias do
6220
- T.any(
6221
- MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration,
6222
- MetronomeSDK::Internal::AnyHash
6223
- )
6224
- end
6974
+ TaggedSymbol =
6975
+ T.type_alias do
6976
+ T.all(
6977
+ Symbol,
6978
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
6979
+ )
6980
+ end
6981
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6225
6982
 
6226
- sig { returns(Float) }
6227
- attr_accessor :value
6983
+ NONE =
6984
+ T.let(
6985
+ :NONE,
6986
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
6987
+ )
6228
6988
 
6229
- sig do
6230
- returns(
6231
- T.nilable(
6232
- MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit::OrSymbol
6233
- )
6234
- )
6235
- end
6236
- attr_reader :unit
6989
+ sig do
6990
+ override.returns(
6991
+ T::Array[
6992
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
6993
+ ]
6994
+ )
6995
+ end
6996
+ def self.values
6997
+ end
6998
+ end
6999
+ end
6237
7000
 
6238
- sig do
6239
- params(
6240
- unit:
6241
- MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit::OrSymbol
6242
- ).void
6243
- end
6244
- attr_writer :unit
7001
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
7002
+ OrHash =
7003
+ T.type_alias do
7004
+ T.any(
7005
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
7006
+ MetronomeSDK::Internal::AnyHash
7007
+ )
7008
+ end
6245
7009
 
6246
- # Defines the length of the access schedule for each created commit/credit. The
6247
- # value represents the number of units. Unit defaults to "PERIODS", where the
6248
- # length of a period is determined by the recurrence_frequency.
6249
- sig do
6250
- params(
6251
- value: Float,
6252
- unit:
6253
- MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit::OrSymbol
6254
- ).returns(T.attached_class)
6255
- end
6256
- def self.new(value:, unit: nil)
6257
- end
7010
+ sig { returns(T::Array[String]) }
7011
+ attr_accessor :contract_ids
6258
7012
 
6259
- sig do
6260
- override.returns(
6261
- {
6262
- value: Float,
6263
- unit:
6264
- MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit::OrSymbol
6265
- }
6266
- )
6267
- end
6268
- def to_hash
6269
- end
7013
+ sig do
7014
+ returns(
7015
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
7016
+ )
7017
+ end
7018
+ attr_accessor :type
6270
7019
 
6271
- module Unit
6272
- extend MetronomeSDK::Internal::Type::Enum
7020
+ sig do
7021
+ params(
7022
+ contract_ids: T::Array[String],
7023
+ type:
7024
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
7025
+ ).returns(T.attached_class)
7026
+ end
7027
+ def self.new(contract_ids:, type:)
7028
+ end
6273
7029
 
6274
- TaggedSymbol =
6275
- T.type_alias do
6276
- T.all(
6277
- Symbol,
6278
- MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit
7030
+ sig do
7031
+ override.returns(
7032
+ {
7033
+ contract_ids: T::Array[String],
7034
+ type:
7035
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
7036
+ }
6279
7037
  )
6280
7038
  end
6281
- OrSymbol = T.type_alias { T.any(Symbol, String) }
7039
+ def to_hash
7040
+ end
6282
7041
 
6283
- PERIODS =
6284
- T.let(
6285
- :PERIODS,
6286
- MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit::TaggedSymbol
6287
- )
7042
+ module Type
7043
+ extend MetronomeSDK::Internal::Type::Enum
7044
+
7045
+ TaggedSymbol =
7046
+ T.type_alias do
7047
+ T.all(
7048
+ Symbol,
7049
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
7050
+ )
7051
+ end
7052
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
7053
+
7054
+ CONTRACT_IDS =
7055
+ T.let(
7056
+ :CONTRACT_IDS,
7057
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
7058
+ )
7059
+
7060
+ sig do
7061
+ override.returns(
7062
+ T::Array[
7063
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
7064
+ ]
7065
+ )
7066
+ end
7067
+ def self.values
7068
+ end
7069
+ end
7070
+ end
6288
7071
 
6289
7072
  sig do
6290
7073
  override.returns(
6291
7074
  T::Array[
6292
- MetronomeSDK::V1::ContractCreateParams::RecurringCredit::CommitDuration::Unit::TaggedSymbol
7075
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::Variants
6293
7076
  ]
6294
7077
  )
6295
7078
  end
6296
- def self.values
7079
+ def self.variants
6297
7080
  end
6298
7081
  end
6299
7082
  end
@@ -6498,6 +7281,141 @@ module MetronomeSDK
6498
7281
  def to_hash
6499
7282
  end
6500
7283
  end
7284
+
7285
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
7286
+ OrHash =
7287
+ T.type_alias do
7288
+ T.any(
7289
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig,
7290
+ MetronomeSDK::Internal::AnyHash
7291
+ )
7292
+ end
7293
+
7294
+ sig do
7295
+ returns(
7296
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig
7297
+ )
7298
+ end
7299
+ attr_reader :apply_seat_increase_config
7300
+
7301
+ sig do
7302
+ params(
7303
+ apply_seat_increase_config:
7304
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash
7305
+ ).void
7306
+ end
7307
+ attr_writer :apply_seat_increase_config
7308
+
7309
+ # ID of the subscription to configure on the recurring commit/credit.
7310
+ sig { returns(String) }
7311
+ attr_accessor :subscription_id
7312
+
7313
+ # If set to POOLED, allocation added per seat is pooled across the account.
7314
+ sig do
7315
+ returns(
7316
+ T.nilable(
7317
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation::OrSymbol
7318
+ )
7319
+ )
7320
+ end
7321
+ attr_reader :allocation
7322
+
7323
+ sig do
7324
+ params(
7325
+ allocation:
7326
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation::OrSymbol
7327
+ ).void
7328
+ end
7329
+ attr_writer :allocation
7330
+
7331
+ # Attach a subscription to the recurring commit/credit.
7332
+ sig do
7333
+ params(
7334
+ apply_seat_increase_config:
7335
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash,
7336
+ subscription_id: String,
7337
+ allocation:
7338
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation::OrSymbol
7339
+ ).returns(T.attached_class)
7340
+ end
7341
+ def self.new(
7342
+ apply_seat_increase_config:,
7343
+ # ID of the subscription to configure on the recurring commit/credit.
7344
+ subscription_id:,
7345
+ # If set to POOLED, allocation added per seat is pooled across the account.
7346
+ allocation: nil
7347
+ )
7348
+ end
7349
+
7350
+ sig do
7351
+ override.returns(
7352
+ {
7353
+ apply_seat_increase_config:
7354
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig,
7355
+ subscription_id: String,
7356
+ allocation:
7357
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation::OrSymbol
7358
+ }
7359
+ )
7360
+ end
7361
+ def to_hash
7362
+ end
7363
+
7364
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
7365
+ OrHash =
7366
+ T.type_alias do
7367
+ T.any(
7368
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig,
7369
+ MetronomeSDK::Internal::AnyHash
7370
+ )
7371
+ end
7372
+
7373
+ # Indicates whether a mid-period seat increase should be prorated.
7374
+ sig { returns(T::Boolean) }
7375
+ attr_accessor :is_prorated
7376
+
7377
+ sig { params(is_prorated: T::Boolean).returns(T.attached_class) }
7378
+ def self.new(
7379
+ # Indicates whether a mid-period seat increase should be prorated.
7380
+ is_prorated:
7381
+ )
7382
+ end
7383
+
7384
+ sig { override.returns({ is_prorated: T::Boolean }) }
7385
+ def to_hash
7386
+ end
7387
+ end
7388
+
7389
+ # If set to POOLED, allocation added per seat is pooled across the account.
7390
+ module Allocation
7391
+ extend MetronomeSDK::Internal::Type::Enum
7392
+
7393
+ TaggedSymbol =
7394
+ T.type_alias do
7395
+ T.all(
7396
+ Symbol,
7397
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation
7398
+ )
7399
+ end
7400
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
7401
+
7402
+ POOLED =
7403
+ T.let(
7404
+ :POOLED,
7405
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation::TaggedSymbol
7406
+ )
7407
+
7408
+ sig do
7409
+ override.returns(
7410
+ T::Array[
7411
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation::TaggedSymbol
7412
+ ]
7413
+ )
7414
+ end
7415
+ def self.values
7416
+ end
7417
+ end
7418
+ end
6501
7419
  end
6502
7420
 
6503
7421
  class ResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel
@@ -7837,6 +8755,14 @@ module MetronomeSDK
7837
8755
  sig { params(starting_at: Time).void }
7838
8756
  attr_writer :starting_at
7839
8757
 
8758
+ # A temporary ID used to reference the subscription in recurring commit/credit
8759
+ # subscription configs created within the same payload.
8760
+ sig { returns(T.nilable(String)) }
8761
+ attr_reader :temporary_id
8762
+
8763
+ sig { params(temporary_id: String).void }
8764
+ attr_writer :temporary_id
8765
+
7840
8766
  sig do
7841
8767
  params(
7842
8768
  collection_schedule:
@@ -7850,7 +8776,8 @@ module MetronomeSDK
7850
8776
  description: String,
7851
8777
  ending_before: Time,
7852
8778
  name: String,
7853
- starting_at: Time
8779
+ starting_at: Time,
8780
+ temporary_id: String
7854
8781
  ).returns(T.attached_class)
7855
8782
  end
7856
8783
  def self.new(
@@ -7867,7 +8794,10 @@ module MetronomeSDK
7867
8794
  name: nil,
7868
8795
  # Inclusive start time for the subscription. If not provided, defaults to contract
7869
8796
  # start date
7870
- starting_at: nil
8797
+ starting_at: nil,
8798
+ # A temporary ID used to reference the subscription in recurring commit/credit
8799
+ # subscription configs created within the same payload.
8800
+ temporary_id: nil
7871
8801
  )
7872
8802
  end
7873
8803
 
@@ -7885,7 +8815,8 @@ module MetronomeSDK
7885
8815
  description: String,
7886
8816
  ending_before: Time,
7887
8817
  name: String,
7888
- starting_at: Time
8818
+ starting_at: Time,
8819
+ temporary_id: String
7889
8820
  }
7890
8821
  )
7891
8822
  end
@@ -7935,10 +8866,11 @@ module MetronomeSDK
7935
8866
  )
7936
8867
  end
7937
8868
 
7938
- # Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
7939
- # is selected, the quantity increase will be billed on the scheduled date. If
7940
- # BILL_ON_NEXT_COLLECTION_DATE is selected, the quantity increase will be billed
7941
- # for in-arrears at the end of the period.
8869
+ # Indicates how mid-period quantity adjustments are invoiced.
8870
+ # **BILL_IMMEDIATELY**: Only available when collection schedule is `ADVANCE`. The
8871
+ # quantity increase will be billed immediately on the scheduled date.
8872
+ # **BILL_ON_NEXT_COLLECTION_DATE**: The quantity increase will be billed for
8873
+ # in-arrears at the end of the period.
7942
8874
  sig do
7943
8875
  returns(
7944
8876
  T.nilable(
@@ -7971,10 +8903,11 @@ module MetronomeSDK
7971
8903
  ).returns(T.attached_class)
7972
8904
  end
7973
8905
  def self.new(
7974
- # Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
7975
- # is selected, the quantity increase will be billed on the scheduled date. If
7976
- # BILL_ON_NEXT_COLLECTION_DATE is selected, the quantity increase will be billed
7977
- # for in-arrears at the end of the period.
8906
+ # Indicates how mid-period quantity adjustments are invoiced.
8907
+ # **BILL_IMMEDIATELY**: Only available when collection schedule is `ADVANCE`. The
8908
+ # quantity increase will be billed immediately on the scheduled date.
8909
+ # **BILL_ON_NEXT_COLLECTION_DATE**: The quantity increase will be billed for
8910
+ # in-arrears at the end of the period.
7978
8911
  invoice_behavior: nil,
7979
8912
  # Indicates if the partial period will be prorated or charged a full amount.
7980
8913
  is_prorated: nil
@@ -7993,10 +8926,11 @@ module MetronomeSDK
7993
8926
  def to_hash
7994
8927
  end
7995
8928
 
7996
- # Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
7997
- # is selected, the quantity increase will be billed on the scheduled date. If
7998
- # BILL_ON_NEXT_COLLECTION_DATE is selected, the quantity increase will be billed
7999
- # for in-arrears at the end of the period.
8929
+ # Indicates how mid-period quantity adjustments are invoiced.
8930
+ # **BILL_IMMEDIATELY**: Only available when collection schedule is `ADVANCE`. The
8931
+ # quantity increase will be billed immediately on the scheduled date.
8932
+ # **BILL_ON_NEXT_COLLECTION_DATE**: The quantity increase will be billed for
8933
+ # in-arrears at the end of the period.
8000
8934
  module InvoiceBehavior
8001
8935
  extend MetronomeSDK::Internal::Type::Enum
8002
8936