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
@@ -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(
@@ -5376,6 +5394,8 @@ module MetronomeSDK
5376
5394
  applicable_product_tags: T::Array[String],
5377
5395
  description: String,
5378
5396
  ending_before: Time,
5397
+ hierarchy_configuration:
5398
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::OrHash,
5379
5399
  invoice_amount:
5380
5400
  MetronomeSDK::V1::ContractCreateParams::RecurringCommit::InvoiceAmount::OrHash,
5381
5401
  name: String,
@@ -5414,6 +5434,8 @@ module MetronomeSDK
5414
5434
  description: nil,
5415
5435
  # Determines when the contract will stop creating recurring commits. optional
5416
5436
  ending_before: nil,
5437
+ # Optional configuration for recurring commit/credit hierarchy access control
5438
+ hierarchy_configuration: nil,
5417
5439
  # The amount the customer should be billed for the commit. Not required.
5418
5440
  invoice_amount: nil,
5419
5441
  # displayed on invoices. will be passed through to the individual commits
@@ -5460,6 +5482,8 @@ module MetronomeSDK
5460
5482
  applicable_product_tags: T::Array[String],
5461
5483
  description: String,
5462
5484
  ending_before: Time,
5485
+ hierarchy_configuration:
5486
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration,
5463
5487
  invoice_amount:
5464
5488
  MetronomeSDK::V1::ContractCreateParams::RecurringCommit::InvoiceAmount,
5465
5489
  name: String,
@@ -5615,185 +5639,461 @@ module MetronomeSDK
5615
5639
  end
5616
5640
  end
5617
5641
 
5618
- class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
5642
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
5619
5643
  OrHash =
5620
5644
  T.type_alias do
5621
5645
  T.any(
5622
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::InvoiceAmount,
5646
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration,
5623
5647
  MetronomeSDK::Internal::AnyHash
5624
5648
  )
5625
5649
  end
5626
5650
 
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
5651
+ sig do
5652
+ returns(
5653
+ T.any(
5654
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5655
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5656
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
5657
+ )
5658
+ )
5659
+ end
5660
+ attr_accessor :child_access
5635
5661
 
5636
- # The amount the customer should be billed for the commit. Not required.
5662
+ # Optional configuration for recurring commit/credit hierarchy access control
5637
5663
  sig do
5638
5664
  params(
5639
- credit_type_id: String,
5640
- quantity: Float,
5641
- unit_price: Float
5665
+ child_access:
5666
+ T.any(
5667
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
5668
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
5669
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
5670
+ )
5642
5671
  ).returns(T.attached_class)
5643
5672
  end
5644
- def self.new(credit_type_id:, quantity:, unit_price:)
5673
+ def self.new(child_access:)
5645
5674
  end
5646
5675
 
5647
5676
  sig do
5648
5677
  override.returns(
5649
- { credit_type_id: String, quantity: Float, unit_price: Float }
5678
+ {
5679
+ child_access:
5680
+ T.any(
5681
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5682
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5683
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
5684
+ )
5685
+ }
5650
5686
  )
5651
5687
  end
5652
5688
  def to_hash
5653
5689
  end
5654
- end
5655
5690
 
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
5691
+ module ChildAccess
5692
+ extend MetronomeSDK::Internal::Type::Union
5660
5693
 
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) }
5694
+ Variants =
5695
+ T.type_alias do
5696
+ T.any(
5697
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5698
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5699
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
5700
+ )
5701
+ end
5669
5702
 
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
- )
5703
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
5704
+ OrHash =
5705
+ T.type_alias do
5706
+ T.any(
5707
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5708
+ MetronomeSDK::Internal::AnyHash
5709
+ )
5710
+ end
5690
5711
 
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
5712
+ sig do
5713
+ returns(
5714
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
5715
+ )
5716
+ end
5717
+ attr_accessor :type
5701
5718
 
5702
- # Whether the created commits will use the commit rate or list rate
5703
- module RateType
5704
- extend MetronomeSDK::Internal::Type::Enum
5719
+ sig do
5720
+ params(
5721
+ type:
5722
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
5723
+ ).returns(T.attached_class)
5724
+ end
5725
+ def self.new(type:)
5726
+ end
5705
5727
 
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) }
5728
+ sig do
5729
+ override.returns(
5730
+ {
5731
+ type:
5732
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
5733
+ }
5734
+ )
5735
+ end
5736
+ def to_hash
5737
+ end
5714
5738
 
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
- )
5739
+ module Type
5740
+ extend MetronomeSDK::Internal::Type::Enum
5725
5741
 
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
5742
+ TaggedSymbol =
5743
+ T.type_alias do
5744
+ T.all(
5745
+ Symbol,
5746
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
5747
+ )
5748
+ end
5749
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5736
5750
 
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
5751
+ ALL =
5752
+ T.let(
5753
+ :ALL,
5754
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
5755
+ )
5744
5756
 
5745
- TaggedSymbol =
5746
- T.type_alias do
5747
- T.all(
5748
- Symbol,
5749
- MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency
5750
- )
5757
+ sig do
5758
+ override.returns(
5759
+ T::Array[
5760
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
5761
+ ]
5762
+ )
5763
+ end
5764
+ def self.values
5765
+ end
5766
+ end
5751
5767
  end
5752
- OrSymbol = T.type_alias { T.any(Symbol, String) }
5753
-
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
- )
5774
5768
 
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
5769
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
5770
+ OrHash =
5771
+ T.type_alias do
5772
+ T.any(
5773
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5774
+ MetronomeSDK::Internal::AnyHash
5775
+ )
5776
+ end
5785
5777
 
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
5792
- )
5793
- end
5778
+ sig do
5779
+ returns(
5780
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
5781
+ )
5782
+ end
5783
+ attr_accessor :type
5794
5784
 
5795
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
5796
- attr_reader :presentation_group_values
5785
+ sig do
5786
+ params(
5787
+ type:
5788
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
5789
+ ).returns(T.attached_class)
5790
+ end
5791
+ def self.new(type:)
5792
+ end
5793
+
5794
+ sig do
5795
+ override.returns(
5796
+ {
5797
+ type:
5798
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
5799
+ }
5800
+ )
5801
+ end
5802
+ def to_hash
5803
+ end
5804
+
5805
+ module Type
5806
+ extend MetronomeSDK::Internal::Type::Enum
5807
+
5808
+ TaggedSymbol =
5809
+ T.type_alias do
5810
+ T.all(
5811
+ Symbol,
5812
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
5813
+ )
5814
+ end
5815
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5816
+
5817
+ NONE =
5818
+ T.let(
5819
+ :NONE,
5820
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
5821
+ )
5822
+
5823
+ sig do
5824
+ override.returns(
5825
+ T::Array[
5826
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
5827
+ ]
5828
+ )
5829
+ end
5830
+ def self.values
5831
+ end
5832
+ end
5833
+ end
5834
+
5835
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
5836
+ OrHash =
5837
+ T.type_alias do
5838
+ T.any(
5839
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
5840
+ MetronomeSDK::Internal::AnyHash
5841
+ )
5842
+ end
5843
+
5844
+ sig { returns(T::Array[String]) }
5845
+ attr_accessor :contract_ids
5846
+
5847
+ sig do
5848
+ returns(
5849
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
5850
+ )
5851
+ end
5852
+ attr_accessor :type
5853
+
5854
+ sig do
5855
+ params(
5856
+ contract_ids: T::Array[String],
5857
+ type:
5858
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
5859
+ ).returns(T.attached_class)
5860
+ end
5861
+ def self.new(contract_ids:, type:)
5862
+ end
5863
+
5864
+ sig do
5865
+ override.returns(
5866
+ {
5867
+ contract_ids: T::Array[String],
5868
+ type:
5869
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
5870
+ }
5871
+ )
5872
+ end
5873
+ def to_hash
5874
+ end
5875
+
5876
+ module Type
5877
+ extend MetronomeSDK::Internal::Type::Enum
5878
+
5879
+ TaggedSymbol =
5880
+ T.type_alias do
5881
+ T.all(
5882
+ Symbol,
5883
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
5884
+ )
5885
+ end
5886
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5887
+
5888
+ CONTRACT_IDS =
5889
+ T.let(
5890
+ :CONTRACT_IDS,
5891
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
5892
+ )
5893
+
5894
+ sig do
5895
+ override.returns(
5896
+ T::Array[
5897
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
5898
+ ]
5899
+ )
5900
+ end
5901
+ def self.values
5902
+ end
5903
+ end
5904
+ end
5905
+
5906
+ sig do
5907
+ override.returns(
5908
+ T::Array[
5909
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::HierarchyConfiguration::ChildAccess::Variants
5910
+ ]
5911
+ )
5912
+ end
5913
+ def self.variants
5914
+ end
5915
+ end
5916
+ end
5917
+
5918
+ class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
5919
+ OrHash =
5920
+ T.type_alias do
5921
+ T.any(
5922
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::InvoiceAmount,
5923
+ MetronomeSDK::Internal::AnyHash
5924
+ )
5925
+ end
5926
+
5927
+ sig { returns(String) }
5928
+ attr_accessor :credit_type_id
5929
+
5930
+ sig { returns(Float) }
5931
+ attr_accessor :quantity
5932
+
5933
+ sig { returns(Float) }
5934
+ attr_accessor :unit_price
5935
+
5936
+ # The amount the customer should be billed for the commit. Not required.
5937
+ sig do
5938
+ params(
5939
+ credit_type_id: String,
5940
+ quantity: Float,
5941
+ unit_price: Float
5942
+ ).returns(T.attached_class)
5943
+ end
5944
+ def self.new(credit_type_id:, quantity:, unit_price:)
5945
+ end
5946
+
5947
+ sig do
5948
+ override.returns(
5949
+ { credit_type_id: String, quantity: Float, unit_price: Float }
5950
+ )
5951
+ end
5952
+ def to_hash
5953
+ end
5954
+ end
5955
+
5956
+ # Determines whether the first and last commit will be prorated. If not provided,
5957
+ # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
5958
+ module Proration
5959
+ extend MetronomeSDK::Internal::Type::Enum
5960
+
5961
+ TaggedSymbol =
5962
+ T.type_alias do
5963
+ T.all(
5964
+ Symbol,
5965
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration
5966
+ )
5967
+ end
5968
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5969
+
5970
+ NONE =
5971
+ T.let(
5972
+ :NONE,
5973
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration::TaggedSymbol
5974
+ )
5975
+ FIRST =
5976
+ T.let(
5977
+ :FIRST,
5978
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration::TaggedSymbol
5979
+ )
5980
+ LAST =
5981
+ T.let(
5982
+ :LAST,
5983
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration::TaggedSymbol
5984
+ )
5985
+ FIRST_AND_LAST =
5986
+ T.let(
5987
+ :FIRST_AND_LAST,
5988
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration::TaggedSymbol
5989
+ )
5990
+
5991
+ sig do
5992
+ override.returns(
5993
+ T::Array[
5994
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Proration::TaggedSymbol
5995
+ ]
5996
+ )
5997
+ end
5998
+ def self.values
5999
+ end
6000
+ end
6001
+
6002
+ # Whether the created commits will use the commit rate or list rate
6003
+ module RateType
6004
+ extend MetronomeSDK::Internal::Type::Enum
6005
+
6006
+ TaggedSymbol =
6007
+ T.type_alias do
6008
+ T.all(
6009
+ Symbol,
6010
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RateType
6011
+ )
6012
+ end
6013
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6014
+
6015
+ COMMIT_RATE =
6016
+ T.let(
6017
+ :COMMIT_RATE,
6018
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RateType::TaggedSymbol
6019
+ )
6020
+ LIST_RATE =
6021
+ T.let(
6022
+ :LIST_RATE,
6023
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RateType::TaggedSymbol
6024
+ )
6025
+
6026
+ sig do
6027
+ override.returns(
6028
+ T::Array[
6029
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RateType::TaggedSymbol
6030
+ ]
6031
+ )
6032
+ end
6033
+ def self.values
6034
+ end
6035
+ end
6036
+
6037
+ # The frequency at which the recurring commits will be created. If not provided: -
6038
+ # The commits will be created on the usage invoice frequency. If provided: - The
6039
+ # period defined in the duration will correspond to this frequency. - Commits will
6040
+ # be created aligned with the recurring commit's starting_at rather than the usage
6041
+ # invoice dates.
6042
+ module RecurrenceFrequency
6043
+ extend MetronomeSDK::Internal::Type::Enum
6044
+
6045
+ TaggedSymbol =
6046
+ T.type_alias do
6047
+ T.all(
6048
+ Symbol,
6049
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency
6050
+ )
6051
+ end
6052
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6053
+
6054
+ MONTHLY =
6055
+ T.let(
6056
+ :MONTHLY,
6057
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency::TaggedSymbol
6058
+ )
6059
+ QUARTERLY =
6060
+ T.let(
6061
+ :QUARTERLY,
6062
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency::TaggedSymbol
6063
+ )
6064
+ ANNUAL =
6065
+ T.let(
6066
+ :ANNUAL,
6067
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency::TaggedSymbol
6068
+ )
6069
+ WEEKLY =
6070
+ T.let(
6071
+ :WEEKLY,
6072
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency::TaggedSymbol
6073
+ )
6074
+
6075
+ sig do
6076
+ override.returns(
6077
+ T::Array[
6078
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency::TaggedSymbol
6079
+ ]
6080
+ )
6081
+ end
6082
+ def self.values
6083
+ end
6084
+ end
6085
+
6086
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
6087
+ OrHash =
6088
+ T.type_alias do
6089
+ T.any(
6090
+ MetronomeSDK::V1::ContractCreateParams::RecurringCommit::Specifier,
6091
+ MetronomeSDK::Internal::AnyHash
6092
+ )
6093
+ end
6094
+
6095
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
6096
+ attr_reader :presentation_group_values
5797
6097
 
5798
6098
  sig do
5799
6099
  params(presentation_group_values: T::Hash[Symbol, String]).void
@@ -5934,8 +6234,26 @@ module MetronomeSDK
5934
6234
  sig { returns(T.nilable(Time)) }
5935
6235
  attr_reader :ending_before
5936
6236
 
5937
- sig { params(ending_before: Time).void }
5938
- attr_writer :ending_before
6237
+ sig { params(ending_before: Time).void }
6238
+ attr_writer :ending_before
6239
+
6240
+ # Optional configuration for recurring commit/credit hierarchy access control
6241
+ sig do
6242
+ returns(
6243
+ T.nilable(
6244
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration
6245
+ )
6246
+ )
6247
+ end
6248
+ attr_reader :hierarchy_configuration
6249
+
6250
+ sig do
6251
+ params(
6252
+ hierarchy_configuration:
6253
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::OrHash
6254
+ ).void
6255
+ end
6256
+ attr_writer :hierarchy_configuration
5939
6257
 
5940
6258
  # displayed on invoices. will be passed through to the individual commits
5941
6259
  sig { returns(T.nilable(String)) }
@@ -6065,6 +6383,8 @@ module MetronomeSDK
6065
6383
  applicable_product_tags: T::Array[String],
6066
6384
  description: String,
6067
6385
  ending_before: Time,
6386
+ hierarchy_configuration:
6387
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::OrHash,
6068
6388
  name: String,
6069
6389
  netsuite_sales_order_id: String,
6070
6390
  proration:
@@ -6101,6 +6421,8 @@ module MetronomeSDK
6101
6421
  description: nil,
6102
6422
  # Determines when the contract will stop creating recurring commits. optional
6103
6423
  ending_before: nil,
6424
+ # Optional configuration for recurring commit/credit hierarchy access control
6425
+ hierarchy_configuration: nil,
6104
6426
  # displayed on invoices. will be passed through to the individual commits
6105
6427
  name: nil,
6106
6428
  # Will be passed down to the individual commits
@@ -6145,6 +6467,8 @@ module MetronomeSDK
6145
6467
  applicable_product_tags: T::Array[String],
6146
6468
  description: String,
6147
6469
  ending_before: Time,
6470
+ hierarchy_configuration:
6471
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration,
6148
6472
  name: String,
6149
6473
  netsuite_sales_order_id: String,
6150
6474
  proration:
@@ -6298,6 +6622,282 @@ module MetronomeSDK
6298
6622
  end
6299
6623
  end
6300
6624
 
6625
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
6626
+ OrHash =
6627
+ T.type_alias do
6628
+ T.any(
6629
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration,
6630
+ MetronomeSDK::Internal::AnyHash
6631
+ )
6632
+ end
6633
+
6634
+ sig do
6635
+ returns(
6636
+ T.any(
6637
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6638
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6639
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
6640
+ )
6641
+ )
6642
+ end
6643
+ attr_accessor :child_access
6644
+
6645
+ # Optional configuration for recurring commit/credit hierarchy access control
6646
+ sig do
6647
+ params(
6648
+ child_access:
6649
+ T.any(
6650
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
6651
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
6652
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
6653
+ )
6654
+ ).returns(T.attached_class)
6655
+ end
6656
+ def self.new(child_access:)
6657
+ end
6658
+
6659
+ sig do
6660
+ override.returns(
6661
+ {
6662
+ child_access:
6663
+ T.any(
6664
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6665
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6666
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
6667
+ )
6668
+ }
6669
+ )
6670
+ end
6671
+ def to_hash
6672
+ end
6673
+
6674
+ module ChildAccess
6675
+ extend MetronomeSDK::Internal::Type::Union
6676
+
6677
+ Variants =
6678
+ T.type_alias do
6679
+ T.any(
6680
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6681
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6682
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
6683
+ )
6684
+ end
6685
+
6686
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
6687
+ OrHash =
6688
+ T.type_alias do
6689
+ T.any(
6690
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6691
+ MetronomeSDK::Internal::AnyHash
6692
+ )
6693
+ end
6694
+
6695
+ sig do
6696
+ returns(
6697
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
6698
+ )
6699
+ end
6700
+ attr_accessor :type
6701
+
6702
+ sig do
6703
+ params(
6704
+ type:
6705
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
6706
+ ).returns(T.attached_class)
6707
+ end
6708
+ def self.new(type:)
6709
+ end
6710
+
6711
+ sig do
6712
+ override.returns(
6713
+ {
6714
+ type:
6715
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
6716
+ }
6717
+ )
6718
+ end
6719
+ def to_hash
6720
+ end
6721
+
6722
+ module Type
6723
+ extend MetronomeSDK::Internal::Type::Enum
6724
+
6725
+ TaggedSymbol =
6726
+ T.type_alias do
6727
+ T.all(
6728
+ Symbol,
6729
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
6730
+ )
6731
+ end
6732
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6733
+
6734
+ ALL =
6735
+ T.let(
6736
+ :ALL,
6737
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
6738
+ )
6739
+
6740
+ sig do
6741
+ override.returns(
6742
+ T::Array[
6743
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
6744
+ ]
6745
+ )
6746
+ end
6747
+ def self.values
6748
+ end
6749
+ end
6750
+ end
6751
+
6752
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
6753
+ OrHash =
6754
+ T.type_alias do
6755
+ T.any(
6756
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6757
+ MetronomeSDK::Internal::AnyHash
6758
+ )
6759
+ end
6760
+
6761
+ sig do
6762
+ returns(
6763
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
6764
+ )
6765
+ end
6766
+ attr_accessor :type
6767
+
6768
+ sig do
6769
+ params(
6770
+ type:
6771
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
6772
+ ).returns(T.attached_class)
6773
+ end
6774
+ def self.new(type:)
6775
+ end
6776
+
6777
+ sig do
6778
+ override.returns(
6779
+ {
6780
+ type:
6781
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
6782
+ }
6783
+ )
6784
+ end
6785
+ def to_hash
6786
+ end
6787
+
6788
+ module Type
6789
+ extend MetronomeSDK::Internal::Type::Enum
6790
+
6791
+ TaggedSymbol =
6792
+ T.type_alias do
6793
+ T.all(
6794
+ Symbol,
6795
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
6796
+ )
6797
+ end
6798
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6799
+
6800
+ NONE =
6801
+ T.let(
6802
+ :NONE,
6803
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
6804
+ )
6805
+
6806
+ sig do
6807
+ override.returns(
6808
+ T::Array[
6809
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
6810
+ ]
6811
+ )
6812
+ end
6813
+ def self.values
6814
+ end
6815
+ end
6816
+ end
6817
+
6818
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
6819
+ OrHash =
6820
+ T.type_alias do
6821
+ T.any(
6822
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
6823
+ MetronomeSDK::Internal::AnyHash
6824
+ )
6825
+ end
6826
+
6827
+ sig { returns(T::Array[String]) }
6828
+ attr_accessor :contract_ids
6829
+
6830
+ sig do
6831
+ returns(
6832
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
6833
+ )
6834
+ end
6835
+ attr_accessor :type
6836
+
6837
+ sig do
6838
+ params(
6839
+ contract_ids: T::Array[String],
6840
+ type:
6841
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
6842
+ ).returns(T.attached_class)
6843
+ end
6844
+ def self.new(contract_ids:, type:)
6845
+ end
6846
+
6847
+ sig do
6848
+ override.returns(
6849
+ {
6850
+ contract_ids: T::Array[String],
6851
+ type:
6852
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
6853
+ }
6854
+ )
6855
+ end
6856
+ def to_hash
6857
+ end
6858
+
6859
+ module Type
6860
+ extend MetronomeSDK::Internal::Type::Enum
6861
+
6862
+ TaggedSymbol =
6863
+ T.type_alias do
6864
+ T.all(
6865
+ Symbol,
6866
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
6867
+ )
6868
+ end
6869
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6870
+
6871
+ CONTRACT_IDS =
6872
+ T.let(
6873
+ :CONTRACT_IDS,
6874
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
6875
+ )
6876
+
6877
+ sig do
6878
+ override.returns(
6879
+ T::Array[
6880
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
6881
+ ]
6882
+ )
6883
+ end
6884
+ def self.values
6885
+ end
6886
+ end
6887
+ end
6888
+
6889
+ sig do
6890
+ override.returns(
6891
+ T::Array[
6892
+ MetronomeSDK::V1::ContractCreateParams::RecurringCredit::HierarchyConfiguration::ChildAccess::Variants
6893
+ ]
6894
+ )
6895
+ end
6896
+ def self.variants
6897
+ end
6898
+ end
6899
+ end
6900
+
6301
6901
  # Determines whether the first and last commit will be prorated. If not provided,
6302
6902
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
6303
6903
  module Proration