metronome-sdk 0.1.0.pre.alpha.4 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/cursor_page.rb +1 -1
  5. data/lib/metronome_sdk/models/commit.rb +46 -3
  6. data/lib/metronome_sdk/models/contract_without_amendments.rb +242 -2
  7. data/lib/metronome_sdk/models/credit.rb +46 -3
  8. data/lib/metronome_sdk/models/v1/contract_create_params.rb +242 -2
  9. data/lib/metronome_sdk/models/v1/contract_list_balances_params.rb +9 -1
  10. data/lib/metronome_sdk/models/v1/customers/commit_list_params.rb +9 -1
  11. data/lib/metronome_sdk/models/v1/customers/credit_list_params.rb +9 -1
  12. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +242 -2
  13. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +214 -6
  14. data/lib/metronome_sdk/models/v2/contract_list_response.rb +343 -13
  15. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +343 -13
  16. data/lib/metronome_sdk/resources/v1/contracts.rb +3 -1
  17. data/lib/metronome_sdk/resources/v1/customers/commits.rb +3 -1
  18. data/lib/metronome_sdk/resources/v1/customers/credits.rb +3 -1
  19. data/lib/metronome_sdk/version.rb +1 -1
  20. data/rbi/metronome_sdk/models/commit.rbi +84 -0
  21. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +584 -0
  22. data/rbi/metronome_sdk/models/credit.rbi +87 -3
  23. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +747 -147
  24. data/rbi/metronome_sdk/models/v1/contract_list_balances_params.rbi +11 -0
  25. data/rbi/metronome_sdk/models/v1/customers/commit_list_params.rbi +11 -0
  26. data/rbi/metronome_sdk/models/v1/customers/credit_list_params.rbi +11 -0
  27. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +747 -147
  28. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +584 -6
  29. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +867 -48
  30. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +867 -48
  31. data/rbi/metronome_sdk/resources/v1/contracts.rbi +3 -0
  32. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +3 -0
  33. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +3 -0
  34. data/sig/metronome_sdk/models/commit.rbs +43 -0
  35. data/sig/metronome_sdk/models/contract_without_amendments.rbs +246 -0
  36. data/sig/metronome_sdk/models/credit.rbs +43 -0
  37. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +246 -0
  38. data/sig/metronome_sdk/models/v1/contract_list_balances_params.rbs +7 -0
  39. data/sig/metronome_sdk/models/v1/customers/commit_list_params.rbs +7 -0
  40. data/sig/metronome_sdk/models/v1/customers/credit_list_params.rbs +7 -0
  41. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +246 -0
  42. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +246 -0
  43. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +353 -0
  44. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +353 -0
  45. data/sig/metronome_sdk/resources/v1/contracts.rbs +1 -0
  46. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +1 -0
  47. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +1 -0
  48. metadata +4 -4
@@ -5036,6 +5036,24 @@ module MetronomeSDK
5036
5036
  sig { params(ending_before: Time).void }
5037
5037
  attr_writer :ending_before
5038
5038
 
5039
+ # Optional configuration for recurring commit/credit hierarchy access control
5040
+ sig do
5041
+ returns(
5042
+ T.nilable(
5043
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration
5044
+ )
5045
+ )
5046
+ end
5047
+ attr_reader :hierarchy_configuration
5048
+
5049
+ sig do
5050
+ params(
5051
+ hierarchy_configuration:
5052
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::OrHash
5053
+ ).void
5054
+ end
5055
+ attr_writer :hierarchy_configuration
5056
+
5039
5057
  # The amount the customer should be billed for the commit. Not required.
5040
5058
  sig do
5041
5059
  returns(
@@ -5182,6 +5200,8 @@ module MetronomeSDK
5182
5200
  applicable_product_tags: T::Array[String],
5183
5201
  description: String,
5184
5202
  ending_before: Time,
5203
+ hierarchy_configuration:
5204
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::OrHash,
5185
5205
  invoice_amount:
5186
5206
  MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount::OrHash,
5187
5207
  name: String,
@@ -5220,6 +5240,8 @@ module MetronomeSDK
5220
5240
  description: nil,
5221
5241
  # Determines when the contract will stop creating recurring commits. optional
5222
5242
  ending_before: nil,
5243
+ # Optional configuration for recurring commit/credit hierarchy access control
5244
+ hierarchy_configuration: nil,
5223
5245
  # The amount the customer should be billed for the commit. Not required.
5224
5246
  invoice_amount: nil,
5225
5247
  # displayed on invoices. will be passed through to the individual commits
@@ -5266,6 +5288,8 @@ module MetronomeSDK
5266
5288
  applicable_product_tags: T::Array[String],
5267
5289
  description: String,
5268
5290
  ending_before: Time,
5291
+ hierarchy_configuration:
5292
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration,
5269
5293
  invoice_amount:
5270
5294
  MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount,
5271
5295
  name: String,
@@ -5421,185 +5445,461 @@ module MetronomeSDK
5421
5445
  end
5422
5446
  end
5423
5447
 
5424
- class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
5448
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
5425
5449
  OrHash =
5426
5450
  T.type_alias do
5427
5451
  T.any(
5428
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount,
5452
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration,
5429
5453
  MetronomeSDK::Internal::AnyHash
5430
5454
  )
5431
5455
  end
5432
5456
 
5433
- sig { returns(String) }
5434
- attr_accessor :credit_type_id
5435
-
5436
- sig { returns(Float) }
5437
- attr_accessor :quantity
5438
-
5439
- sig { returns(Float) }
5440
- attr_accessor :unit_price
5457
+ sig do
5458
+ returns(
5459
+ T.any(
5460
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5461
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5462
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
5463
+ )
5464
+ )
5465
+ end
5466
+ attr_accessor :child_access
5441
5467
 
5442
- # The amount the customer should be billed for the commit. Not required.
5468
+ # Optional configuration for recurring commit/credit hierarchy access control
5443
5469
  sig do
5444
5470
  params(
5445
- credit_type_id: String,
5446
- quantity: Float,
5447
- unit_price: Float
5471
+ child_access:
5472
+ T.any(
5473
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
5474
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
5475
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
5476
+ )
5448
5477
  ).returns(T.attached_class)
5449
5478
  end
5450
- def self.new(credit_type_id:, quantity:, unit_price:)
5479
+ def self.new(child_access:)
5451
5480
  end
5452
5481
 
5453
5482
  sig do
5454
5483
  override.returns(
5455
- { credit_type_id: String, quantity: Float, unit_price: Float }
5484
+ {
5485
+ child_access:
5486
+ T.any(
5487
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5488
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5489
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
5490
+ )
5491
+ }
5456
5492
  )
5457
5493
  end
5458
5494
  def to_hash
5459
5495
  end
5460
- end
5461
5496
 
5462
- # Determines whether the first and last commit will be prorated. If not provided,
5463
- # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
5464
- module Proration
5465
- extend MetronomeSDK::Internal::Type::Enum
5497
+ module ChildAccess
5498
+ extend MetronomeSDK::Internal::Type::Union
5466
5499
 
5467
- TaggedSymbol =
5468
- T.type_alias do
5469
- T.all(
5470
- Symbol,
5471
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration
5472
- )
5473
- end
5474
- OrSymbol = T.type_alias { T.any(Symbol, String) }
5500
+ Variants =
5501
+ T.type_alias do
5502
+ T.any(
5503
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5504
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5505
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
5506
+ )
5507
+ end
5475
5508
 
5476
- NONE =
5477
- T.let(
5478
- :NONE,
5479
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration::TaggedSymbol
5480
- )
5481
- FIRST =
5482
- T.let(
5483
- :FIRST,
5484
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration::TaggedSymbol
5485
- )
5486
- LAST =
5487
- T.let(
5488
- :LAST,
5489
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration::TaggedSymbol
5490
- )
5491
- FIRST_AND_LAST =
5492
- T.let(
5493
- :FIRST_AND_LAST,
5494
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration::TaggedSymbol
5495
- )
5509
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
5510
+ OrHash =
5511
+ T.type_alias do
5512
+ T.any(
5513
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5514
+ MetronomeSDK::Internal::AnyHash
5515
+ )
5516
+ end
5496
5517
 
5497
- sig do
5498
- override.returns(
5499
- T::Array[
5500
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration::TaggedSymbol
5501
- ]
5502
- )
5503
- end
5504
- def self.values
5505
- end
5506
- end
5518
+ sig do
5519
+ returns(
5520
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
5521
+ )
5522
+ end
5523
+ attr_accessor :type
5507
5524
 
5508
- # Whether the created commits will use the commit rate or list rate
5509
- module RateType
5510
- extend MetronomeSDK::Internal::Type::Enum
5525
+ sig do
5526
+ params(
5527
+ type:
5528
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
5529
+ ).returns(T.attached_class)
5530
+ end
5531
+ def self.new(type:)
5532
+ end
5511
5533
 
5512
- TaggedSymbol =
5513
- T.type_alias do
5514
- T.all(
5515
- Symbol,
5516
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RateType
5517
- )
5518
- end
5519
- OrSymbol = T.type_alias { T.any(Symbol, String) }
5534
+ sig do
5535
+ override.returns(
5536
+ {
5537
+ type:
5538
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
5539
+ }
5540
+ )
5541
+ end
5542
+ def to_hash
5543
+ end
5520
5544
 
5521
- COMMIT_RATE =
5522
- T.let(
5523
- :COMMIT_RATE,
5524
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RateType::TaggedSymbol
5525
- )
5526
- LIST_RATE =
5527
- T.let(
5528
- :LIST_RATE,
5529
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RateType::TaggedSymbol
5530
- )
5545
+ module Type
5546
+ extend MetronomeSDK::Internal::Type::Enum
5531
5547
 
5532
- sig do
5533
- override.returns(
5534
- T::Array[
5535
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RateType::TaggedSymbol
5536
- ]
5537
- )
5538
- end
5539
- def self.values
5540
- end
5541
- end
5548
+ TaggedSymbol =
5549
+ T.type_alias do
5550
+ T.all(
5551
+ Symbol,
5552
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
5553
+ )
5554
+ end
5555
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5542
5556
 
5543
- # The frequency at which the recurring commits will be created. If not provided: -
5544
- # The commits will be created on the usage invoice frequency. If provided: - The
5545
- # period defined in the duration will correspond to this frequency. - Commits will
5546
- # be created aligned with the recurring commit's starting_at rather than the usage
5547
- # invoice dates.
5548
- module RecurrenceFrequency
5549
- extend MetronomeSDK::Internal::Type::Enum
5557
+ ALL =
5558
+ T.let(
5559
+ :ALL,
5560
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
5561
+ )
5550
5562
 
5551
- TaggedSymbol =
5552
- T.type_alias do
5553
- T.all(
5554
- Symbol,
5555
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency
5556
- )
5563
+ sig do
5564
+ override.returns(
5565
+ T::Array[
5566
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
5567
+ ]
5568
+ )
5569
+ end
5570
+ def self.values
5571
+ end
5572
+ end
5557
5573
  end
5558
- OrSymbol = T.type_alias { T.any(Symbol, String) }
5559
-
5560
- MONTHLY =
5561
- T.let(
5562
- :MONTHLY,
5563
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
5564
- )
5565
- QUARTERLY =
5566
- T.let(
5567
- :QUARTERLY,
5568
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
5569
- )
5570
- ANNUAL =
5571
- T.let(
5572
- :ANNUAL,
5573
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
5574
- )
5575
- WEEKLY =
5576
- T.let(
5577
- :WEEKLY,
5578
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
5579
- )
5580
5574
 
5581
- sig do
5582
- override.returns(
5583
- T::Array[
5584
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
5585
- ]
5586
- )
5587
- end
5588
- def self.values
5589
- end
5590
- end
5575
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
5576
+ OrHash =
5577
+ T.type_alias do
5578
+ T.any(
5579
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5580
+ MetronomeSDK::Internal::AnyHash
5581
+ )
5582
+ end
5591
5583
 
5592
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
5593
- OrHash =
5594
- T.type_alias do
5595
- T.any(
5596
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Specifier,
5597
- MetronomeSDK::Internal::AnyHash
5598
- )
5599
- end
5584
+ sig do
5585
+ returns(
5586
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
5587
+ )
5588
+ end
5589
+ attr_accessor :type
5600
5590
 
5601
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
5602
- attr_reader :presentation_group_values
5591
+ sig do
5592
+ params(
5593
+ type:
5594
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
5595
+ ).returns(T.attached_class)
5596
+ end
5597
+ def self.new(type:)
5598
+ end
5599
+
5600
+ sig do
5601
+ override.returns(
5602
+ {
5603
+ type:
5604
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
5605
+ }
5606
+ )
5607
+ end
5608
+ def to_hash
5609
+ end
5610
+
5611
+ module Type
5612
+ extend MetronomeSDK::Internal::Type::Enum
5613
+
5614
+ TaggedSymbol =
5615
+ T.type_alias do
5616
+ T.all(
5617
+ Symbol,
5618
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
5619
+ )
5620
+ end
5621
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5622
+
5623
+ NONE =
5624
+ T.let(
5625
+ :NONE,
5626
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
5627
+ )
5628
+
5629
+ sig do
5630
+ override.returns(
5631
+ T::Array[
5632
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
5633
+ ]
5634
+ )
5635
+ end
5636
+ def self.values
5637
+ end
5638
+ end
5639
+ end
5640
+
5641
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
5642
+ OrHash =
5643
+ T.type_alias do
5644
+ T.any(
5645
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
5646
+ MetronomeSDK::Internal::AnyHash
5647
+ )
5648
+ end
5649
+
5650
+ sig { returns(T::Array[String]) }
5651
+ attr_accessor :contract_ids
5652
+
5653
+ sig do
5654
+ returns(
5655
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
5656
+ )
5657
+ end
5658
+ attr_accessor :type
5659
+
5660
+ sig do
5661
+ params(
5662
+ contract_ids: T::Array[String],
5663
+ type:
5664
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
5665
+ ).returns(T.attached_class)
5666
+ end
5667
+ def self.new(contract_ids:, type:)
5668
+ end
5669
+
5670
+ sig do
5671
+ override.returns(
5672
+ {
5673
+ contract_ids: T::Array[String],
5674
+ type:
5675
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
5676
+ }
5677
+ )
5678
+ end
5679
+ def to_hash
5680
+ end
5681
+
5682
+ module Type
5683
+ extend MetronomeSDK::Internal::Type::Enum
5684
+
5685
+ TaggedSymbol =
5686
+ T.type_alias do
5687
+ T.all(
5688
+ Symbol,
5689
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
5690
+ )
5691
+ end
5692
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5693
+
5694
+ CONTRACT_IDS =
5695
+ T.let(
5696
+ :CONTRACT_IDS,
5697
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
5698
+ )
5699
+
5700
+ sig do
5701
+ override.returns(
5702
+ T::Array[
5703
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
5704
+ ]
5705
+ )
5706
+ end
5707
+ def self.values
5708
+ end
5709
+ end
5710
+ end
5711
+
5712
+ sig do
5713
+ override.returns(
5714
+ T::Array[
5715
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::Variants
5716
+ ]
5717
+ )
5718
+ end
5719
+ def self.variants
5720
+ end
5721
+ end
5722
+ end
5723
+
5724
+ class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
5725
+ OrHash =
5726
+ T.type_alias do
5727
+ T.any(
5728
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount,
5729
+ MetronomeSDK::Internal::AnyHash
5730
+ )
5731
+ end
5732
+
5733
+ sig { returns(String) }
5734
+ attr_accessor :credit_type_id
5735
+
5736
+ sig { returns(Float) }
5737
+ attr_accessor :quantity
5738
+
5739
+ sig { returns(Float) }
5740
+ attr_accessor :unit_price
5741
+
5742
+ # The amount the customer should be billed for the commit. Not required.
5743
+ sig do
5744
+ params(
5745
+ credit_type_id: String,
5746
+ quantity: Float,
5747
+ unit_price: Float
5748
+ ).returns(T.attached_class)
5749
+ end
5750
+ def self.new(credit_type_id:, quantity:, unit_price:)
5751
+ end
5752
+
5753
+ sig do
5754
+ override.returns(
5755
+ { credit_type_id: String, quantity: Float, unit_price: Float }
5756
+ )
5757
+ end
5758
+ def to_hash
5759
+ end
5760
+ end
5761
+
5762
+ # Determines whether the first and last commit will be prorated. If not provided,
5763
+ # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
5764
+ module Proration
5765
+ extend MetronomeSDK::Internal::Type::Enum
5766
+
5767
+ TaggedSymbol =
5768
+ T.type_alias do
5769
+ T.all(
5770
+ Symbol,
5771
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration
5772
+ )
5773
+ end
5774
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5775
+
5776
+ NONE =
5777
+ T.let(
5778
+ :NONE,
5779
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration::TaggedSymbol
5780
+ )
5781
+ FIRST =
5782
+ T.let(
5783
+ :FIRST,
5784
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration::TaggedSymbol
5785
+ )
5786
+ LAST =
5787
+ T.let(
5788
+ :LAST,
5789
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration::TaggedSymbol
5790
+ )
5791
+ FIRST_AND_LAST =
5792
+ T.let(
5793
+ :FIRST_AND_LAST,
5794
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration::TaggedSymbol
5795
+ )
5796
+
5797
+ sig do
5798
+ override.returns(
5799
+ T::Array[
5800
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration::TaggedSymbol
5801
+ ]
5802
+ )
5803
+ end
5804
+ def self.values
5805
+ end
5806
+ end
5807
+
5808
+ # Whether the created commits will use the commit rate or list rate
5809
+ module RateType
5810
+ extend MetronomeSDK::Internal::Type::Enum
5811
+
5812
+ TaggedSymbol =
5813
+ T.type_alias do
5814
+ T.all(
5815
+ Symbol,
5816
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RateType
5817
+ )
5818
+ end
5819
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5820
+
5821
+ COMMIT_RATE =
5822
+ T.let(
5823
+ :COMMIT_RATE,
5824
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RateType::TaggedSymbol
5825
+ )
5826
+ LIST_RATE =
5827
+ T.let(
5828
+ :LIST_RATE,
5829
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RateType::TaggedSymbol
5830
+ )
5831
+
5832
+ sig do
5833
+ override.returns(
5834
+ T::Array[
5835
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RateType::TaggedSymbol
5836
+ ]
5837
+ )
5838
+ end
5839
+ def self.values
5840
+ end
5841
+ end
5842
+
5843
+ # The frequency at which the recurring commits will be created. If not provided: -
5844
+ # The commits will be created on the usage invoice frequency. If provided: - The
5845
+ # period defined in the duration will correspond to this frequency. - Commits will
5846
+ # be created aligned with the recurring commit's starting_at rather than the usage
5847
+ # invoice dates.
5848
+ module RecurrenceFrequency
5849
+ extend MetronomeSDK::Internal::Type::Enum
5850
+
5851
+ TaggedSymbol =
5852
+ T.type_alias do
5853
+ T.all(
5854
+ Symbol,
5855
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency
5856
+ )
5857
+ end
5858
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5859
+
5860
+ MONTHLY =
5861
+ T.let(
5862
+ :MONTHLY,
5863
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
5864
+ )
5865
+ QUARTERLY =
5866
+ T.let(
5867
+ :QUARTERLY,
5868
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
5869
+ )
5870
+ ANNUAL =
5871
+ T.let(
5872
+ :ANNUAL,
5873
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
5874
+ )
5875
+ WEEKLY =
5876
+ T.let(
5877
+ :WEEKLY,
5878
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
5879
+ )
5880
+
5881
+ sig do
5882
+ override.returns(
5883
+ T::Array[
5884
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
5885
+ ]
5886
+ )
5887
+ end
5888
+ def self.values
5889
+ end
5890
+ end
5891
+
5892
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
5893
+ OrHash =
5894
+ T.type_alias do
5895
+ T.any(
5896
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Specifier,
5897
+ MetronomeSDK::Internal::AnyHash
5898
+ )
5899
+ end
5900
+
5901
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
5902
+ attr_reader :presentation_group_values
5603
5903
 
5604
5904
  sig do
5605
5905
  params(presentation_group_values: T::Hash[Symbol, String]).void
@@ -5740,8 +6040,26 @@ module MetronomeSDK
5740
6040
  sig { returns(T.nilable(Time)) }
5741
6041
  attr_reader :ending_before
5742
6042
 
5743
- sig { params(ending_before: Time).void }
5744
- attr_writer :ending_before
6043
+ sig { params(ending_before: Time).void }
6044
+ attr_writer :ending_before
6045
+
6046
+ # Optional configuration for recurring commit/credit hierarchy access control
6047
+ sig do
6048
+ returns(
6049
+ T.nilable(
6050
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration
6051
+ )
6052
+ )
6053
+ end
6054
+ attr_reader :hierarchy_configuration
6055
+
6056
+ sig do
6057
+ params(
6058
+ hierarchy_configuration:
6059
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::OrHash
6060
+ ).void
6061
+ end
6062
+ attr_writer :hierarchy_configuration
5745
6063
 
5746
6064
  # displayed on invoices. will be passed through to the individual commits
5747
6065
  sig { returns(T.nilable(String)) }
@@ -5871,6 +6189,8 @@ module MetronomeSDK
5871
6189
  applicable_product_tags: T::Array[String],
5872
6190
  description: String,
5873
6191
  ending_before: Time,
6192
+ hierarchy_configuration:
6193
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::OrHash,
5874
6194
  name: String,
5875
6195
  netsuite_sales_order_id: String,
5876
6196
  proration:
@@ -5907,6 +6227,8 @@ module MetronomeSDK
5907
6227
  description: nil,
5908
6228
  # Determines when the contract will stop creating recurring commits. optional
5909
6229
  ending_before: nil,
6230
+ # Optional configuration for recurring commit/credit hierarchy access control
6231
+ hierarchy_configuration: nil,
5910
6232
  # displayed on invoices. will be passed through to the individual commits
5911
6233
  name: nil,
5912
6234
  # Will be passed down to the individual commits
@@ -5951,6 +6273,8 @@ module MetronomeSDK
5951
6273
  applicable_product_tags: T::Array[String],
5952
6274
  description: String,
5953
6275
  ending_before: Time,
6276
+ hierarchy_configuration:
6277
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration,
5954
6278
  name: String,
5955
6279
  netsuite_sales_order_id: String,
5956
6280
  proration:
@@ -6104,6 +6428,282 @@ module MetronomeSDK
6104
6428
  end
6105
6429
  end
6106
6430
 
6431
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
6432
+ OrHash =
6433
+ T.type_alias do
6434
+ T.any(
6435
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration,
6436
+ MetronomeSDK::Internal::AnyHash
6437
+ )
6438
+ end
6439
+
6440
+ sig do
6441
+ returns(
6442
+ T.any(
6443
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6444
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6445
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
6446
+ )
6447
+ )
6448
+ end
6449
+ attr_accessor :child_access
6450
+
6451
+ # Optional configuration for recurring commit/credit hierarchy access control
6452
+ sig do
6453
+ params(
6454
+ child_access:
6455
+ T.any(
6456
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
6457
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
6458
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
6459
+ )
6460
+ ).returns(T.attached_class)
6461
+ end
6462
+ def self.new(child_access:)
6463
+ end
6464
+
6465
+ sig do
6466
+ override.returns(
6467
+ {
6468
+ child_access:
6469
+ T.any(
6470
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6471
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6472
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
6473
+ )
6474
+ }
6475
+ )
6476
+ end
6477
+ def to_hash
6478
+ end
6479
+
6480
+ module ChildAccess
6481
+ extend MetronomeSDK::Internal::Type::Union
6482
+
6483
+ Variants =
6484
+ T.type_alias do
6485
+ T.any(
6486
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6487
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6488
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
6489
+ )
6490
+ end
6491
+
6492
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
6493
+ OrHash =
6494
+ T.type_alias do
6495
+ T.any(
6496
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6497
+ MetronomeSDK::Internal::AnyHash
6498
+ )
6499
+ end
6500
+
6501
+ sig do
6502
+ returns(
6503
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
6504
+ )
6505
+ end
6506
+ attr_accessor :type
6507
+
6508
+ sig do
6509
+ params(
6510
+ type:
6511
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
6512
+ ).returns(T.attached_class)
6513
+ end
6514
+ def self.new(type:)
6515
+ end
6516
+
6517
+ sig do
6518
+ override.returns(
6519
+ {
6520
+ type:
6521
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
6522
+ }
6523
+ )
6524
+ end
6525
+ def to_hash
6526
+ end
6527
+
6528
+ module Type
6529
+ extend MetronomeSDK::Internal::Type::Enum
6530
+
6531
+ TaggedSymbol =
6532
+ T.type_alias do
6533
+ T.all(
6534
+ Symbol,
6535
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
6536
+ )
6537
+ end
6538
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6539
+
6540
+ ALL =
6541
+ T.let(
6542
+ :ALL,
6543
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
6544
+ )
6545
+
6546
+ sig do
6547
+ override.returns(
6548
+ T::Array[
6549
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
6550
+ ]
6551
+ )
6552
+ end
6553
+ def self.values
6554
+ end
6555
+ end
6556
+ end
6557
+
6558
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
6559
+ OrHash =
6560
+ T.type_alias do
6561
+ T.any(
6562
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6563
+ MetronomeSDK::Internal::AnyHash
6564
+ )
6565
+ end
6566
+
6567
+ sig do
6568
+ returns(
6569
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
6570
+ )
6571
+ end
6572
+ attr_accessor :type
6573
+
6574
+ sig do
6575
+ params(
6576
+ type:
6577
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
6578
+ ).returns(T.attached_class)
6579
+ end
6580
+ def self.new(type:)
6581
+ end
6582
+
6583
+ sig do
6584
+ override.returns(
6585
+ {
6586
+ type:
6587
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
6588
+ }
6589
+ )
6590
+ end
6591
+ def to_hash
6592
+ end
6593
+
6594
+ module Type
6595
+ extend MetronomeSDK::Internal::Type::Enum
6596
+
6597
+ TaggedSymbol =
6598
+ T.type_alias do
6599
+ T.all(
6600
+ Symbol,
6601
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
6602
+ )
6603
+ end
6604
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6605
+
6606
+ NONE =
6607
+ T.let(
6608
+ :NONE,
6609
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
6610
+ )
6611
+
6612
+ sig do
6613
+ override.returns(
6614
+ T::Array[
6615
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
6616
+ ]
6617
+ )
6618
+ end
6619
+ def self.values
6620
+ end
6621
+ end
6622
+ end
6623
+
6624
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
6625
+ OrHash =
6626
+ T.type_alias do
6627
+ T.any(
6628
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
6629
+ MetronomeSDK::Internal::AnyHash
6630
+ )
6631
+ end
6632
+
6633
+ sig { returns(T::Array[String]) }
6634
+ attr_accessor :contract_ids
6635
+
6636
+ sig do
6637
+ returns(
6638
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
6639
+ )
6640
+ end
6641
+ attr_accessor :type
6642
+
6643
+ sig do
6644
+ params(
6645
+ contract_ids: T::Array[String],
6646
+ type:
6647
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
6648
+ ).returns(T.attached_class)
6649
+ end
6650
+ def self.new(contract_ids:, type:)
6651
+ end
6652
+
6653
+ sig do
6654
+ override.returns(
6655
+ {
6656
+ contract_ids: T::Array[String],
6657
+ type:
6658
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
6659
+ }
6660
+ )
6661
+ end
6662
+ def to_hash
6663
+ end
6664
+
6665
+ module Type
6666
+ extend MetronomeSDK::Internal::Type::Enum
6667
+
6668
+ TaggedSymbol =
6669
+ T.type_alias do
6670
+ T.all(
6671
+ Symbol,
6672
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
6673
+ )
6674
+ end
6675
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6676
+
6677
+ CONTRACT_IDS =
6678
+ T.let(
6679
+ :CONTRACT_IDS,
6680
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
6681
+ )
6682
+
6683
+ sig do
6684
+ override.returns(
6685
+ T::Array[
6686
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
6687
+ ]
6688
+ )
6689
+ end
6690
+ def self.values
6691
+ end
6692
+ end
6693
+ end
6694
+
6695
+ sig do
6696
+ override.returns(
6697
+ T::Array[
6698
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::Variants
6699
+ ]
6700
+ )
6701
+ end
6702
+ def self.variants
6703
+ end
6704
+ end
6705
+ end
6706
+
6107
6707
  # Determines whether the first and last commit will be prorated. If not provided,
6108
6708
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
6109
6709
  module Proration