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
@@ -185,6 +185,25 @@ module MetronomeSDK
185
185
  sig { params(ending_before: Time).void }
186
186
  attr_writer :ending_before
187
187
 
188
+ # Indicates whether there are more items than the limit for this endpoint. Use the
189
+ # respective list endpoints to get the full lists.
190
+ sig do
191
+ returns(
192
+ T.nilable(
193
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HasMore
194
+ )
195
+ )
196
+ end
197
+ attr_reader :has_more
198
+
199
+ sig do
200
+ params(
201
+ has_more:
202
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HasMore::OrHash
203
+ ).void
204
+ end
205
+ attr_writer :has_more
206
+
188
207
  # Either a **parent** configuration with a list of children or a **child**
189
208
  # configuration with a single parent.
190
209
  sig do
@@ -472,6 +491,8 @@ module MetronomeSDK
472
491
  MetronomeSDK::Models::V2::ContractListResponse::Data::CustomerBillingProviderConfiguration::OrHash,
473
492
  discounts: T::Array[MetronomeSDK::Discount::OrHash],
474
493
  ending_before: Time,
494
+ has_more:
495
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HasMore::OrHash,
475
496
  hierarchy_configuration:
476
497
  T.any(
477
498
  MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::ParentHierarchyConfiguration::OrHash,
@@ -532,6 +553,9 @@ module MetronomeSDK
532
553
  # This field's availability is dependent on your client's configuration.
533
554
  discounts: nil,
534
555
  ending_before: nil,
556
+ # Indicates whether there are more items than the limit for this endpoint. Use the
557
+ # respective list endpoints to get the full lists.
558
+ has_more: nil,
535
559
  # Either a **parent** configuration with a list of children or a **child**
536
560
  # configuration with a single parent.
537
561
  hierarchy_configuration: nil,
@@ -610,6 +634,8 @@ module MetronomeSDK
610
634
  MetronomeSDK::Models::V2::ContractListResponse::Data::CustomerBillingProviderConfiguration,
611
635
  discounts: T::Array[MetronomeSDK::Discount],
612
636
  ending_before: Time,
637
+ has_more:
638
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HasMore,
613
639
  hierarchy_configuration:
614
640
  MetronomeSDK::Models::V2::ContractListResponse::Data::HierarchyConfiguration::Variants,
615
641
  multiplier_override_prioritization:
@@ -835,6 +861,7 @@ module MetronomeSDK
835
861
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitExpirationLedgerEntry::OrHash,
836
862
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCanceledLedgerEntry::OrHash,
837
863
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCreditedLedgerEntry::OrHash,
864
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitSeatBasedAdjustmentLedgerEntry::OrHash,
838
865
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitInitialBalanceLedgerEntry::OrHash,
839
866
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry::OrHash,
840
867
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitRolloverLedgerEntry::OrHash,
@@ -971,6 +998,7 @@ module MetronomeSDK
971
998
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitExpirationLedgerEntry::OrHash,
972
999
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCanceledLedgerEntry::OrHash,
973
1000
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCreditedLedgerEntry::OrHash,
1001
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitSeatBasedAdjustmentLedgerEntry::OrHash,
974
1002
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitInitialBalanceLedgerEntry::OrHash,
975
1003
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry::OrHash,
976
1004
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitRolloverLedgerEntry::OrHash,
@@ -1472,6 +1500,7 @@ module MetronomeSDK
1472
1500
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitExpirationLedgerEntry,
1473
1501
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCanceledLedgerEntry,
1474
1502
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCreditedLedgerEntry,
1503
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitSeatBasedAdjustmentLedgerEntry,
1475
1504
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitInitialBalanceLedgerEntry,
1476
1505
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry,
1477
1506
  MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitRolloverLedgerEntry,
@@ -1591,6 +1620,12 @@ module MetronomeSDK
1591
1620
  end
1592
1621
  attr_accessor :type
1593
1622
 
1623
+ sig { returns(T.nilable(String)) }
1624
+ attr_reader :contract_id
1625
+
1626
+ sig { params(contract_id: String).void }
1627
+ attr_writer :contract_id
1628
+
1594
1629
  sig do
1595
1630
  params(
1596
1631
  amount: Float,
@@ -1598,7 +1633,8 @@ module MetronomeSDK
1598
1633
  segment_id: String,
1599
1634
  timestamp: Time,
1600
1635
  type:
1601
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry::Type::OrSymbol
1636
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry::Type::OrSymbol,
1637
+ contract_id: String
1602
1638
  ).returns(T.attached_class)
1603
1639
  end
1604
1640
  def self.new(
@@ -1606,7 +1642,8 @@ module MetronomeSDK
1606
1642
  invoice_id:,
1607
1643
  segment_id:,
1608
1644
  timestamp:,
1609
- type:
1645
+ type:,
1646
+ contract_id: nil
1610
1647
  )
1611
1648
  end
1612
1649
 
@@ -1618,7 +1655,8 @@ module MetronomeSDK
1618
1655
  segment_id: String,
1619
1656
  timestamp: Time,
1620
1657
  type:
1621
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry::Type::TaggedSymbol
1658
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry::Type::TaggedSymbol,
1659
+ contract_id: String
1622
1660
  }
1623
1661
  )
1624
1662
  end
@@ -1856,6 +1894,12 @@ module MetronomeSDK
1856
1894
  end
1857
1895
  attr_accessor :type
1858
1896
 
1897
+ sig { returns(T.nilable(String)) }
1898
+ attr_reader :contract_id
1899
+
1900
+ sig { params(contract_id: String).void }
1901
+ attr_writer :contract_id
1902
+
1859
1903
  sig do
1860
1904
  params(
1861
1905
  amount: Float,
@@ -1863,7 +1907,8 @@ module MetronomeSDK
1863
1907
  segment_id: String,
1864
1908
  timestamp: Time,
1865
1909
  type:
1866
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCanceledLedgerEntry::Type::OrSymbol
1910
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCanceledLedgerEntry::Type::OrSymbol,
1911
+ contract_id: String
1867
1912
  ).returns(T.attached_class)
1868
1913
  end
1869
1914
  def self.new(
@@ -1871,7 +1916,8 @@ module MetronomeSDK
1871
1916
  invoice_id:,
1872
1917
  segment_id:,
1873
1918
  timestamp:,
1874
- type:
1919
+ type:,
1920
+ contract_id: nil
1875
1921
  )
1876
1922
  end
1877
1923
 
@@ -1883,7 +1929,8 @@ module MetronomeSDK
1883
1929
  segment_id: String,
1884
1930
  timestamp: Time,
1885
1931
  type:
1886
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCanceledLedgerEntry::Type::TaggedSymbol
1932
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCanceledLedgerEntry::Type::TaggedSymbol,
1933
+ contract_id: String
1887
1934
  }
1888
1935
  )
1889
1936
  end
@@ -1948,6 +1995,12 @@ module MetronomeSDK
1948
1995
  end
1949
1996
  attr_accessor :type
1950
1997
 
1998
+ sig { returns(T.nilable(String)) }
1999
+ attr_reader :contract_id
2000
+
2001
+ sig { params(contract_id: String).void }
2002
+ attr_writer :contract_id
2003
+
1951
2004
  sig do
1952
2005
  params(
1953
2006
  amount: Float,
@@ -1955,7 +2008,8 @@ module MetronomeSDK
1955
2008
  segment_id: String,
1956
2009
  timestamp: Time,
1957
2010
  type:
1958
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCreditedLedgerEntry::Type::OrSymbol
2011
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCreditedLedgerEntry::Type::OrSymbol,
2012
+ contract_id: String
1959
2013
  ).returns(T.attached_class)
1960
2014
  end
1961
2015
  def self.new(
@@ -1963,7 +2017,8 @@ module MetronomeSDK
1963
2017
  invoice_id:,
1964
2018
  segment_id:,
1965
2019
  timestamp:,
1966
- type:
2020
+ type:,
2021
+ contract_id: nil
1967
2022
  )
1968
2023
  end
1969
2024
 
@@ -1975,7 +2030,8 @@ module MetronomeSDK
1975
2030
  segment_id: String,
1976
2031
  timestamp: Time,
1977
2032
  type:
1978
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCreditedLedgerEntry::Type::TaggedSymbol
2033
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitCreditedLedgerEntry::Type::TaggedSymbol,
2034
+ contract_id: String
1979
2035
  }
1980
2036
  )
1981
2037
  end
@@ -2012,6 +2068,87 @@ module MetronomeSDK
2012
2068
  end
2013
2069
  end
2014
2070
 
2071
+ class PrepaidCommitSeatBasedAdjustmentLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
2072
+ OrHash =
2073
+ T.type_alias do
2074
+ T.any(
2075
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitSeatBasedAdjustmentLedgerEntry,
2076
+ MetronomeSDK::Internal::AnyHash
2077
+ )
2078
+ end
2079
+
2080
+ sig { returns(Float) }
2081
+ attr_accessor :amount
2082
+
2083
+ sig { returns(String) }
2084
+ attr_accessor :segment_id
2085
+
2086
+ sig { returns(Time) }
2087
+ attr_accessor :timestamp
2088
+
2089
+ sig do
2090
+ returns(
2091
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitSeatBasedAdjustmentLedgerEntry::Type::TaggedSymbol
2092
+ )
2093
+ end
2094
+ attr_accessor :type
2095
+
2096
+ sig do
2097
+ params(
2098
+ amount: Float,
2099
+ segment_id: String,
2100
+ timestamp: Time,
2101
+ type:
2102
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitSeatBasedAdjustmentLedgerEntry::Type::OrSymbol
2103
+ ).returns(T.attached_class)
2104
+ end
2105
+ def self.new(amount:, segment_id:, timestamp:, type:)
2106
+ end
2107
+
2108
+ sig do
2109
+ override.returns(
2110
+ {
2111
+ amount: Float,
2112
+ segment_id: String,
2113
+ timestamp: Time,
2114
+ type:
2115
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitSeatBasedAdjustmentLedgerEntry::Type::TaggedSymbol
2116
+ }
2117
+ )
2118
+ end
2119
+ def to_hash
2120
+ end
2121
+
2122
+ module Type
2123
+ extend MetronomeSDK::Internal::Type::Enum
2124
+
2125
+ TaggedSymbol =
2126
+ T.type_alias do
2127
+ T.all(
2128
+ Symbol,
2129
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitSeatBasedAdjustmentLedgerEntry::Type
2130
+ )
2131
+ end
2132
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2133
+
2134
+ PREPAID_COMMIT_SEAT_BASED_ADJUSTMENT =
2135
+ T.let(
2136
+ :PREPAID_COMMIT_SEAT_BASED_ADJUSTMENT,
2137
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitSeatBasedAdjustmentLedgerEntry::Type::TaggedSymbol
2138
+ )
2139
+
2140
+ sig do
2141
+ override.returns(
2142
+ T::Array[
2143
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PrepaidCommitSeatBasedAdjustmentLedgerEntry::Type::TaggedSymbol
2144
+ ]
2145
+ )
2146
+ end
2147
+ def self.values
2148
+ end
2149
+ end
2150
+ end
2151
+
2015
2152
  class PostpaidCommitInitialBalanceLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
2016
2153
  OrHash =
2017
2154
  T.type_alias do
@@ -2116,6 +2253,12 @@ module MetronomeSDK
2116
2253
  end
2117
2254
  attr_accessor :type
2118
2255
 
2256
+ sig { returns(T.nilable(String)) }
2257
+ attr_reader :contract_id
2258
+
2259
+ sig { params(contract_id: String).void }
2260
+ attr_writer :contract_id
2261
+
2119
2262
  sig do
2120
2263
  params(
2121
2264
  amount: Float,
@@ -2123,7 +2266,8 @@ module MetronomeSDK
2123
2266
  segment_id: String,
2124
2267
  timestamp: Time,
2125
2268
  type:
2126
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry::Type::OrSymbol
2269
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry::Type::OrSymbol,
2270
+ contract_id: String
2127
2271
  ).returns(T.attached_class)
2128
2272
  end
2129
2273
  def self.new(
@@ -2131,7 +2275,8 @@ module MetronomeSDK
2131
2275
  invoice_id:,
2132
2276
  segment_id:,
2133
2277
  timestamp:,
2134
- type:
2278
+ type:,
2279
+ contract_id: nil
2135
2280
  )
2136
2281
  end
2137
2282
 
@@ -2143,7 +2288,8 @@ module MetronomeSDK
2143
2288
  segment_id: String,
2144
2289
  timestamp: Time,
2145
2290
  type:
2146
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry::Type::TaggedSymbol
2291
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry::Type::TaggedSymbol,
2292
+ contract_id: String
2147
2293
  }
2148
2294
  )
2149
2295
  end
@@ -2297,16 +2443,29 @@ module MetronomeSDK
2297
2443
  end
2298
2444
  attr_accessor :type
2299
2445
 
2446
+ sig { returns(T.nilable(String)) }
2447
+ attr_reader :contract_id
2448
+
2449
+ sig { params(contract_id: String).void }
2450
+ attr_writer :contract_id
2451
+
2300
2452
  sig do
2301
2453
  params(
2302
2454
  amount: Float,
2303
2455
  invoice_id: String,
2304
2456
  timestamp: Time,
2305
2457
  type:
2306
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitTrueupLedgerEntry::Type::OrSymbol
2458
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitTrueupLedgerEntry::Type::OrSymbol,
2459
+ contract_id: String
2307
2460
  ).returns(T.attached_class)
2308
2461
  end
2309
- def self.new(amount:, invoice_id:, timestamp:, type:)
2462
+ def self.new(
2463
+ amount:,
2464
+ invoice_id:,
2465
+ timestamp:,
2466
+ type:,
2467
+ contract_id: nil
2468
+ )
2310
2469
  end
2311
2470
 
2312
2471
  sig do
@@ -2316,7 +2475,8 @@ module MetronomeSDK
2316
2475
  invoice_id: String,
2317
2476
  timestamp: Time,
2318
2477
  type:
2319
- MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitTrueupLedgerEntry::Type::TaggedSymbol
2478
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Commit::Ledger::PostpaidCommitTrueupLedgerEntry::Type::TaggedSymbol,
2479
+ contract_id: String
2320
2480
  }
2321
2481
  )
2322
2482
  end
@@ -3807,7 +3967,8 @@ module MetronomeSDK
3807
3967
  MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditExpirationLedgerEntry::OrHash,
3808
3968
  MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCanceledLedgerEntry::OrHash,
3809
3969
  MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCreditedLedgerEntry::OrHash,
3810
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditManualLedgerEntry::OrHash
3970
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditManualLedgerEntry::OrHash,
3971
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::OrHash
3811
3972
  )
3812
3973
  ]
3813
3974
  ).void
@@ -3892,7 +4053,8 @@ module MetronomeSDK
3892
4053
  MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditExpirationLedgerEntry::OrHash,
3893
4054
  MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCanceledLedgerEntry::OrHash,
3894
4055
  MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCreditedLedgerEntry::OrHash,
3895
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditManualLedgerEntry::OrHash
4056
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditManualLedgerEntry::OrHash,
4057
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::OrHash
3896
4058
  )
3897
4059
  ],
3898
4060
  name: String,
@@ -4336,7 +4498,8 @@ module MetronomeSDK
4336
4498
  MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditExpirationLedgerEntry,
4337
4499
  MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCanceledLedgerEntry,
4338
4500
  MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCreditedLedgerEntry,
4339
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditManualLedgerEntry
4501
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditManualLedgerEntry,
4502
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry
4340
4503
  )
4341
4504
  end
4342
4505
 
@@ -4449,6 +4612,12 @@ module MetronomeSDK
4449
4612
  end
4450
4613
  attr_accessor :type
4451
4614
 
4615
+ sig { returns(T.nilable(String)) }
4616
+ attr_reader :contract_id
4617
+
4618
+ sig { params(contract_id: String).void }
4619
+ attr_writer :contract_id
4620
+
4452
4621
  sig do
4453
4622
  params(
4454
4623
  amount: Float,
@@ -4456,7 +4625,8 @@ module MetronomeSDK
4456
4625
  segment_id: String,
4457
4626
  timestamp: Time,
4458
4627
  type:
4459
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry::Type::OrSymbol
4628
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry::Type::OrSymbol,
4629
+ contract_id: String
4460
4630
  ).returns(T.attached_class)
4461
4631
  end
4462
4632
  def self.new(
@@ -4464,7 +4634,8 @@ module MetronomeSDK
4464
4634
  invoice_id:,
4465
4635
  segment_id:,
4466
4636
  timestamp:,
4467
- type:
4637
+ type:,
4638
+ contract_id: nil
4468
4639
  )
4469
4640
  end
4470
4641
 
@@ -4476,7 +4647,8 @@ module MetronomeSDK
4476
4647
  segment_id: String,
4477
4648
  timestamp: Time,
4478
4649
  type:
4479
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry::Type::TaggedSymbol
4650
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditAutomatedInvoiceDeductionLedgerEntry::Type::TaggedSymbol,
4651
+ contract_id: String
4480
4652
  }
4481
4653
  )
4482
4654
  end
@@ -4622,6 +4794,12 @@ module MetronomeSDK
4622
4794
  end
4623
4795
  attr_accessor :type
4624
4796
 
4797
+ sig { returns(T.nilable(String)) }
4798
+ attr_reader :contract_id
4799
+
4800
+ sig { params(contract_id: String).void }
4801
+ attr_writer :contract_id
4802
+
4625
4803
  sig do
4626
4804
  params(
4627
4805
  amount: Float,
@@ -4629,7 +4807,8 @@ module MetronomeSDK
4629
4807
  segment_id: String,
4630
4808
  timestamp: Time,
4631
4809
  type:
4632
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCanceledLedgerEntry::Type::OrSymbol
4810
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCanceledLedgerEntry::Type::OrSymbol,
4811
+ contract_id: String
4633
4812
  ).returns(T.attached_class)
4634
4813
  end
4635
4814
  def self.new(
@@ -4637,7 +4816,8 @@ module MetronomeSDK
4637
4816
  invoice_id:,
4638
4817
  segment_id:,
4639
4818
  timestamp:,
4640
- type:
4819
+ type:,
4820
+ contract_id: nil
4641
4821
  )
4642
4822
  end
4643
4823
 
@@ -4649,7 +4829,8 @@ module MetronomeSDK
4649
4829
  segment_id: String,
4650
4830
  timestamp: Time,
4651
4831
  type:
4652
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCanceledLedgerEntry::Type::TaggedSymbol
4832
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCanceledLedgerEntry::Type::TaggedSymbol,
4833
+ contract_id: String
4653
4834
  }
4654
4835
  )
4655
4836
  end
@@ -4714,6 +4895,12 @@ module MetronomeSDK
4714
4895
  end
4715
4896
  attr_accessor :type
4716
4897
 
4898
+ sig { returns(T.nilable(String)) }
4899
+ attr_reader :contract_id
4900
+
4901
+ sig { params(contract_id: String).void }
4902
+ attr_writer :contract_id
4903
+
4717
4904
  sig do
4718
4905
  params(
4719
4906
  amount: Float,
@@ -4721,7 +4908,8 @@ module MetronomeSDK
4721
4908
  segment_id: String,
4722
4909
  timestamp: Time,
4723
4910
  type:
4724
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCreditedLedgerEntry::Type::OrSymbol
4911
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCreditedLedgerEntry::Type::OrSymbol,
4912
+ contract_id: String
4725
4913
  ).returns(T.attached_class)
4726
4914
  end
4727
4915
  def self.new(
@@ -4729,7 +4917,8 @@ module MetronomeSDK
4729
4917
  invoice_id:,
4730
4918
  segment_id:,
4731
4919
  timestamp:,
4732
- type:
4920
+ type:,
4921
+ contract_id: nil
4733
4922
  )
4734
4923
  end
4735
4924
 
@@ -4741,7 +4930,8 @@ module MetronomeSDK
4741
4930
  segment_id: String,
4742
4931
  timestamp: Time,
4743
4932
  type:
4744
- MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCreditedLedgerEntry::Type::TaggedSymbol
4933
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditCreditedLedgerEntry::Type::TaggedSymbol,
4934
+ contract_id: String
4745
4935
  }
4746
4936
  )
4747
4937
  end
@@ -4859,6 +5049,87 @@ module MetronomeSDK
4859
5049
  end
4860
5050
  end
4861
5051
 
5052
+ class CreditSeatBasedAdjustmentLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
5053
+ OrHash =
5054
+ T.type_alias do
5055
+ T.any(
5056
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry,
5057
+ MetronomeSDK::Internal::AnyHash
5058
+ )
5059
+ end
5060
+
5061
+ sig { returns(Float) }
5062
+ attr_accessor :amount
5063
+
5064
+ sig { returns(String) }
5065
+ attr_accessor :segment_id
5066
+
5067
+ sig { returns(Time) }
5068
+ attr_accessor :timestamp
5069
+
5070
+ sig do
5071
+ returns(
5072
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::Type::TaggedSymbol
5073
+ )
5074
+ end
5075
+ attr_accessor :type
5076
+
5077
+ sig do
5078
+ params(
5079
+ amount: Float,
5080
+ segment_id: String,
5081
+ timestamp: Time,
5082
+ type:
5083
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::Type::OrSymbol
5084
+ ).returns(T.attached_class)
5085
+ end
5086
+ def self.new(amount:, segment_id:, timestamp:, type:)
5087
+ end
5088
+
5089
+ sig do
5090
+ override.returns(
5091
+ {
5092
+ amount: Float,
5093
+ segment_id: String,
5094
+ timestamp: Time,
5095
+ type:
5096
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::Type::TaggedSymbol
5097
+ }
5098
+ )
5099
+ end
5100
+ def to_hash
5101
+ end
5102
+
5103
+ module Type
5104
+ extend MetronomeSDK::Internal::Type::Enum
5105
+
5106
+ TaggedSymbol =
5107
+ T.type_alias do
5108
+ T.all(
5109
+ Symbol,
5110
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::Type
5111
+ )
5112
+ end
5113
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5114
+
5115
+ CREDIT_SEAT_BASED_ADJUSTMENT =
5116
+ T.let(
5117
+ :CREDIT_SEAT_BASED_ADJUSTMENT,
5118
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::Type::TaggedSymbol
5119
+ )
5120
+
5121
+ sig do
5122
+ override.returns(
5123
+ T::Array[
5124
+ MetronomeSDK::Models::V2::ContractListResponse::Data::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::Type::TaggedSymbol
5125
+ ]
5126
+ )
5127
+ end
5128
+ def self.values
5129
+ end
5130
+ end
5131
+ end
5132
+
4862
5133
  sig do
4863
5134
  override.returns(
4864
5135
  T::Array[
@@ -4951,6 +5222,10 @@ module MetronomeSDK
4951
5222
  )
4952
5223
  end
4953
5224
 
5225
+ # ID of Customer's billing provider configuration.
5226
+ sig { returns(String) }
5227
+ attr_accessor :id
5228
+
4954
5229
  sig do
4955
5230
  returns(
4956
5231
  MetronomeSDK::Models::V2::ContractListResponse::Data::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol
@@ -4968,18 +5243,25 @@ module MetronomeSDK
4968
5243
  # This field's availability is dependent on your client's configuration.
4969
5244
  sig do
4970
5245
  params(
5246
+ id: String,
4971
5247
  billing_provider:
4972
5248
  MetronomeSDK::Models::V2::ContractListResponse::Data::CustomerBillingProviderConfiguration::BillingProvider::OrSymbol,
4973
5249
  delivery_method:
4974
5250
  MetronomeSDK::Models::V2::ContractListResponse::Data::CustomerBillingProviderConfiguration::DeliveryMethod::OrSymbol
4975
5251
  ).returns(T.attached_class)
4976
5252
  end
4977
- def self.new(billing_provider:, delivery_method:)
5253
+ def self.new(
5254
+ # ID of Customer's billing provider configuration.
5255
+ id:,
5256
+ billing_provider:,
5257
+ delivery_method:
5258
+ )
4978
5259
  end
4979
5260
 
4980
5261
  sig do
4981
5262
  override.returns(
4982
5263
  {
5264
+ id: String,
4983
5265
  billing_provider:
4984
5266
  MetronomeSDK::Models::V2::ContractListResponse::Data::CustomerBillingProviderConfiguration::BillingProvider::TaggedSymbol,
4985
5267
  delivery_method:
@@ -5099,6 +5381,53 @@ module MetronomeSDK
5099
5381
  end
5100
5382
  end
5101
5383
 
5384
+ class HasMore < MetronomeSDK::Internal::Type::BaseModel
5385
+ OrHash =
5386
+ T.type_alias do
5387
+ T.any(
5388
+ MetronomeSDK::Models::V2::ContractListResponse::Data::HasMore,
5389
+ MetronomeSDK::Internal::AnyHash
5390
+ )
5391
+ end
5392
+
5393
+ # Whether there are more commits on this contract than the limit for this
5394
+ # endpoint. Use the /contracts/customerCommits/list endpoint to get the full list
5395
+ # of commits.
5396
+ sig { returns(T::Boolean) }
5397
+ attr_accessor :commits
5398
+
5399
+ # Whether there are more credits on this contract than the limit for this
5400
+ # endpoint. Use the /contracts/customerCredits/list endpoint to get the full list
5401
+ # of credits.
5402
+ sig { returns(T::Boolean) }
5403
+ attr_accessor :credits
5404
+
5405
+ # Indicates whether there are more items than the limit for this endpoint. Use the
5406
+ # respective list endpoints to get the full lists.
5407
+ sig do
5408
+ params(commits: T::Boolean, credits: T::Boolean).returns(
5409
+ T.attached_class
5410
+ )
5411
+ end
5412
+ def self.new(
5413
+ # Whether there are more commits on this contract than the limit for this
5414
+ # endpoint. Use the /contracts/customerCommits/list endpoint to get the full list
5415
+ # of commits.
5416
+ commits:,
5417
+ # Whether there are more credits on this contract than the limit for this
5418
+ # endpoint. Use the /contracts/customerCredits/list endpoint to get the full list
5419
+ # of credits.
5420
+ credits:
5421
+ )
5422
+ end
5423
+
5424
+ sig do
5425
+ override.returns({ commits: T::Boolean, credits: T::Boolean })
5426
+ end
5427
+ def to_hash
5428
+ end
5429
+ end
5430
+
5102
5431
  # Either a **parent** configuration with a list of children or a **child**
5103
5432
  # configuration with a single parent.
5104
5433
  module HierarchyConfiguration
@@ -5477,6 +5806,8 @@ module MetronomeSDK
5477
5806
  # or credit. A customer's usage needs to meet the condition of at least one of the
5478
5807
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
5479
5808
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
5809
+ # Instead, to target usage by product or product tag, pass those values in the
5810
+ # body of `specifiers`.
5480
5811
  sig do
5481
5812
  returns(
5482
5813
  T.nilable(
@@ -5531,6 +5862,8 @@ module MetronomeSDK
5531
5862
  # or credit. A customer's usage needs to meet the condition of at least one of the
5532
5863
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
5533
5864
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
5865
+ # Instead, to target usage by product or product tag, pass those values in the
5866
+ # body of `specifiers`.
5534
5867
  specifiers: nil
5535
5868
  )
5536
5869
  end
@@ -6098,6 +6431,24 @@ module MetronomeSDK
6098
6431
  sig { params(ending_before: Time).void }
6099
6432
  attr_writer :ending_before
6100
6433
 
6434
+ # Optional configuration for recurring credit hierarchy access control
6435
+ sig do
6436
+ returns(
6437
+ T.nilable(
6438
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration
6439
+ )
6440
+ )
6441
+ end
6442
+ attr_reader :hierarchy_configuration
6443
+
6444
+ sig do
6445
+ params(
6446
+ hierarchy_configuration:
6447
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::OrHash
6448
+ ).void
6449
+ end
6450
+ attr_writer :hierarchy_configuration
6451
+
6101
6452
  # The amount the customer should be billed for the commit. Not required.
6102
6453
  sig do
6103
6454
  returns(
@@ -6132,7 +6483,6 @@ module MetronomeSDK
6132
6483
 
6133
6484
  # Determines whether the first and last commit will be prorated. If not provided,
6134
6485
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
6135
- # subscription_config:
6136
6486
  sig do
6137
6487
  returns(
6138
6488
  T.nilable(
@@ -6205,11 +6555,29 @@ module MetronomeSDK
6205
6555
  end
6206
6556
  attr_writer :specifiers
6207
6557
 
6558
+ # Attach a subscription to the recurring commit/credit.
6559
+ sig do
6560
+ returns(
6561
+ T.nilable(
6562
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig
6563
+ )
6564
+ )
6565
+ end
6566
+ attr_reader :subscription_config
6567
+
6208
6568
  sig do
6209
6569
  params(
6210
- id: String,
6211
- access_amount:
6212
- MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::AccessAmount::OrHash,
6570
+ subscription_config:
6571
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig::OrHash
6572
+ ).void
6573
+ end
6574
+ attr_writer :subscription_config
6575
+
6576
+ sig do
6577
+ params(
6578
+ id: String,
6579
+ access_amount:
6580
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::AccessAmount::OrHash,
6213
6581
  commit_duration:
6214
6582
  MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::CommitDuration::OrHash,
6215
6583
  priority: Float,
@@ -6224,6 +6592,8 @@ module MetronomeSDK
6224
6592
  MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::Contract::OrHash,
6225
6593
  description: String,
6226
6594
  ending_before: Time,
6595
+ hierarchy_configuration:
6596
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::OrHash,
6227
6597
  invoice_amount:
6228
6598
  MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::InvoiceAmount::OrHash,
6229
6599
  name: String,
@@ -6236,7 +6606,9 @@ module MetronomeSDK
6236
6606
  specifiers:
6237
6607
  T::Array[
6238
6608
  MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::Specifier::OrHash
6239
- ]
6609
+ ],
6610
+ subscription_config:
6611
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig::OrHash
6240
6612
  ).returns(T.attached_class)
6241
6613
  end
6242
6614
  def self.new(
@@ -6261,6 +6633,8 @@ module MetronomeSDK
6261
6633
  description: nil,
6262
6634
  # Determines when the contract will stop creating recurring commits. Optional
6263
6635
  ending_before: nil,
6636
+ # Optional configuration for recurring credit hierarchy access control
6637
+ hierarchy_configuration: nil,
6264
6638
  # The amount the customer should be billed for the commit. Not required.
6265
6639
  invoice_amount: nil,
6266
6640
  # Displayed on invoices. Will be passed through to the individual commits
@@ -6269,7 +6643,6 @@ module MetronomeSDK
6269
6643
  netsuite_sales_order_id: nil,
6270
6644
  # Determines whether the first and last commit will be prorated. If not provided,
6271
6645
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
6272
- # subscription_config:
6273
6646
  proration: nil,
6274
6647
  # The frequency at which the recurring commits will be created. If not provided: -
6275
6648
  # The commits will be created on the usage invoice frequency. If provided: - The
@@ -6284,7 +6657,9 @@ module MetronomeSDK
6284
6657
  # List of filters that determine what kind of customer usage draws down a commit
6285
6658
  # or credit. A customer's usage needs to meet the condition of at least one of the
6286
6659
  # specifiers to contribute to a commit's or credit's drawdown.
6287
- specifiers: nil
6660
+ specifiers: nil,
6661
+ # Attach a subscription to the recurring commit/credit.
6662
+ subscription_config: nil
6288
6663
  )
6289
6664
  end
6290
6665
 
@@ -6308,6 +6683,8 @@ module MetronomeSDK
6308
6683
  MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::Contract,
6309
6684
  description: String,
6310
6685
  ending_before: Time,
6686
+ hierarchy_configuration:
6687
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration,
6311
6688
  invoice_amount:
6312
6689
  MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::InvoiceAmount,
6313
6690
  name: String,
@@ -6320,7 +6697,9 @@ module MetronomeSDK
6320
6697
  specifiers:
6321
6698
  T::Array[
6322
6699
  MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::Specifier
6323
- ]
6700
+ ],
6701
+ subscription_config:
6702
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig
6324
6703
  }
6325
6704
  )
6326
6705
  end
@@ -6530,6 +6909,274 @@ module MetronomeSDK
6530
6909
  end
6531
6910
  end
6532
6911
 
6912
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
6913
+ OrHash =
6914
+ T.type_alias do
6915
+ T.any(
6916
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration,
6917
+ MetronomeSDK::Internal::AnyHash
6918
+ )
6919
+ end
6920
+
6921
+ sig do
6922
+ returns(
6923
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::Variants
6924
+ )
6925
+ end
6926
+ attr_accessor :child_access
6927
+
6928
+ # Optional configuration for recurring credit hierarchy access control
6929
+ sig do
6930
+ params(
6931
+ child_access:
6932
+ T.any(
6933
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
6934
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
6935
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
6936
+ )
6937
+ ).returns(T.attached_class)
6938
+ end
6939
+ def self.new(child_access:)
6940
+ end
6941
+
6942
+ sig do
6943
+ override.returns(
6944
+ {
6945
+ child_access:
6946
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::Variants
6947
+ }
6948
+ )
6949
+ end
6950
+ def to_hash
6951
+ end
6952
+
6953
+ module ChildAccess
6954
+ extend MetronomeSDK::Internal::Type::Union
6955
+
6956
+ Variants =
6957
+ T.type_alias do
6958
+ T.any(
6959
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6960
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6961
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
6962
+ )
6963
+ end
6964
+
6965
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
6966
+ OrHash =
6967
+ T.type_alias do
6968
+ T.any(
6969
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6970
+ MetronomeSDK::Internal::AnyHash
6971
+ )
6972
+ end
6973
+
6974
+ sig do
6975
+ returns(
6976
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
6977
+ )
6978
+ end
6979
+ attr_accessor :type
6980
+
6981
+ sig do
6982
+ params(
6983
+ type:
6984
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
6985
+ ).returns(T.attached_class)
6986
+ end
6987
+ def self.new(type:)
6988
+ end
6989
+
6990
+ sig do
6991
+ override.returns(
6992
+ {
6993
+ type:
6994
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
6995
+ }
6996
+ )
6997
+ end
6998
+ def to_hash
6999
+ end
7000
+
7001
+ module Type
7002
+ extend MetronomeSDK::Internal::Type::Enum
7003
+
7004
+ TaggedSymbol =
7005
+ T.type_alias do
7006
+ T.all(
7007
+ Symbol,
7008
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
7009
+ )
7010
+ end
7011
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
7012
+
7013
+ ALL =
7014
+ T.let(
7015
+ :ALL,
7016
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
7017
+ )
7018
+
7019
+ sig do
7020
+ override.returns(
7021
+ T::Array[
7022
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
7023
+ ]
7024
+ )
7025
+ end
7026
+ def self.values
7027
+ end
7028
+ end
7029
+ end
7030
+
7031
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
7032
+ OrHash =
7033
+ T.type_alias do
7034
+ T.any(
7035
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
7036
+ MetronomeSDK::Internal::AnyHash
7037
+ )
7038
+ end
7039
+
7040
+ sig do
7041
+ returns(
7042
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
7043
+ )
7044
+ end
7045
+ attr_accessor :type
7046
+
7047
+ sig do
7048
+ params(
7049
+ type:
7050
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
7051
+ ).returns(T.attached_class)
7052
+ end
7053
+ def self.new(type:)
7054
+ end
7055
+
7056
+ sig do
7057
+ override.returns(
7058
+ {
7059
+ type:
7060
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
7061
+ }
7062
+ )
7063
+ end
7064
+ def to_hash
7065
+ end
7066
+
7067
+ module Type
7068
+ extend MetronomeSDK::Internal::Type::Enum
7069
+
7070
+ TaggedSymbol =
7071
+ T.type_alias do
7072
+ T.all(
7073
+ Symbol,
7074
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
7075
+ )
7076
+ end
7077
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
7078
+
7079
+ NONE =
7080
+ T.let(
7081
+ :NONE,
7082
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
7083
+ )
7084
+
7085
+ sig do
7086
+ override.returns(
7087
+ T::Array[
7088
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
7089
+ ]
7090
+ )
7091
+ end
7092
+ def self.values
7093
+ end
7094
+ end
7095
+ end
7096
+
7097
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
7098
+ OrHash =
7099
+ T.type_alias do
7100
+ T.any(
7101
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
7102
+ MetronomeSDK::Internal::AnyHash
7103
+ )
7104
+ end
7105
+
7106
+ sig { returns(T::Array[String]) }
7107
+ attr_accessor :contract_ids
7108
+
7109
+ sig do
7110
+ returns(
7111
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
7112
+ )
7113
+ end
7114
+ attr_accessor :type
7115
+
7116
+ sig do
7117
+ params(
7118
+ contract_ids: T::Array[String],
7119
+ type:
7120
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
7121
+ ).returns(T.attached_class)
7122
+ end
7123
+ def self.new(contract_ids:, type:)
7124
+ end
7125
+
7126
+ sig do
7127
+ override.returns(
7128
+ {
7129
+ contract_ids: T::Array[String],
7130
+ type:
7131
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
7132
+ }
7133
+ )
7134
+ end
7135
+ def to_hash
7136
+ end
7137
+
7138
+ module Type
7139
+ extend MetronomeSDK::Internal::Type::Enum
7140
+
7141
+ TaggedSymbol =
7142
+ T.type_alias do
7143
+ T.all(
7144
+ Symbol,
7145
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
7146
+ )
7147
+ end
7148
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
7149
+
7150
+ CONTRACT_IDS =
7151
+ T.let(
7152
+ :CONTRACT_IDS,
7153
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
7154
+ )
7155
+
7156
+ sig do
7157
+ override.returns(
7158
+ T::Array[
7159
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
7160
+ ]
7161
+ )
7162
+ end
7163
+ def self.values
7164
+ end
7165
+ end
7166
+ end
7167
+
7168
+ sig do
7169
+ override.returns(
7170
+ T::Array[
7171
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::HierarchyConfiguration::ChildAccess::Variants
7172
+ ]
7173
+ )
7174
+ end
7175
+ def self.variants
7176
+ end
7177
+ end
7178
+ end
7179
+
6533
7180
  class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
6534
7181
  OrHash =
6535
7182
  T.type_alias do
@@ -6570,7 +7217,6 @@ module MetronomeSDK
6570
7217
 
6571
7218
  # Determines whether the first and last commit will be prorated. If not provided,
6572
7219
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
6573
- # subscription_config:
6574
7220
  module Proration
6575
7221
  extend MetronomeSDK::Internal::Type::Enum
6576
7222
 
@@ -6734,11 +7380,138 @@ module MetronomeSDK
6734
7380
  def to_hash
6735
7381
  end
6736
7382
  end
6737
- end
6738
7383
 
6739
- class RecurringCredit < MetronomeSDK::Internal::Type::BaseModel
6740
- OrHash =
6741
- T.type_alias do
7384
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
7385
+ OrHash =
7386
+ T.type_alias do
7387
+ T.any(
7388
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig,
7389
+ MetronomeSDK::Internal::AnyHash
7390
+ )
7391
+ end
7392
+
7393
+ sig do
7394
+ returns(
7395
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig::Allocation::TaggedSymbol
7396
+ )
7397
+ end
7398
+ attr_accessor :allocation
7399
+
7400
+ sig do
7401
+ returns(
7402
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig
7403
+ )
7404
+ end
7405
+ attr_reader :apply_seat_increase_config
7406
+
7407
+ sig do
7408
+ params(
7409
+ apply_seat_increase_config:
7410
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash
7411
+ ).void
7412
+ end
7413
+ attr_writer :apply_seat_increase_config
7414
+
7415
+ sig { returns(String) }
7416
+ attr_accessor :subscription_id
7417
+
7418
+ # Attach a subscription to the recurring commit/credit.
7419
+ sig do
7420
+ params(
7421
+ allocation:
7422
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig::Allocation::OrSymbol,
7423
+ apply_seat_increase_config:
7424
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash,
7425
+ subscription_id: String
7426
+ ).returns(T.attached_class)
7427
+ end
7428
+ def self.new(
7429
+ allocation:,
7430
+ apply_seat_increase_config:,
7431
+ subscription_id:
7432
+ )
7433
+ end
7434
+
7435
+ sig do
7436
+ override.returns(
7437
+ {
7438
+ allocation:
7439
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig::Allocation::TaggedSymbol,
7440
+ apply_seat_increase_config:
7441
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig,
7442
+ subscription_id: String
7443
+ }
7444
+ )
7445
+ end
7446
+ def to_hash
7447
+ end
7448
+
7449
+ module Allocation
7450
+ extend MetronomeSDK::Internal::Type::Enum
7451
+
7452
+ TaggedSymbol =
7453
+ T.type_alias do
7454
+ T.all(
7455
+ Symbol,
7456
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig::Allocation
7457
+ )
7458
+ end
7459
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
7460
+
7461
+ INDIVIDUAL =
7462
+ T.let(
7463
+ :INDIVIDUAL,
7464
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig::Allocation::TaggedSymbol
7465
+ )
7466
+ POOLED =
7467
+ T.let(
7468
+ :POOLED,
7469
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig::Allocation::TaggedSymbol
7470
+ )
7471
+
7472
+ sig do
7473
+ override.returns(
7474
+ T::Array[
7475
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig::Allocation::TaggedSymbol
7476
+ ]
7477
+ )
7478
+ end
7479
+ def self.values
7480
+ end
7481
+ end
7482
+
7483
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
7484
+ OrHash =
7485
+ T.type_alias do
7486
+ T.any(
7487
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig,
7488
+ MetronomeSDK::Internal::AnyHash
7489
+ )
7490
+ end
7491
+
7492
+ # Indicates whether a mid-period seat increase should be prorated.
7493
+ sig { returns(T::Boolean) }
7494
+ attr_accessor :is_prorated
7495
+
7496
+ sig do
7497
+ params(is_prorated: T::Boolean).returns(T.attached_class)
7498
+ end
7499
+ def self.new(
7500
+ # Indicates whether a mid-period seat increase should be prorated.
7501
+ is_prorated:
7502
+ )
7503
+ end
7504
+
7505
+ sig { override.returns({ is_prorated: T::Boolean }) }
7506
+ def to_hash
7507
+ end
7508
+ end
7509
+ end
7510
+ end
7511
+
7512
+ class RecurringCredit < MetronomeSDK::Internal::Type::BaseModel
7513
+ OrHash =
7514
+ T.type_alias do
6742
7515
  T.any(
6743
7516
  MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit,
6744
7517
  MetronomeSDK::Internal::AnyHash
@@ -6856,6 +7629,24 @@ module MetronomeSDK
6856
7629
  sig { params(ending_before: Time).void }
6857
7630
  attr_writer :ending_before
6858
7631
 
7632
+ # Optional configuration for recurring credit hierarchy access control
7633
+ sig do
7634
+ returns(
7635
+ T.nilable(
7636
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration
7637
+ )
7638
+ )
7639
+ end
7640
+ attr_reader :hierarchy_configuration
7641
+
7642
+ sig do
7643
+ params(
7644
+ hierarchy_configuration:
7645
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::OrHash
7646
+ ).void
7647
+ end
7648
+ attr_writer :hierarchy_configuration
7649
+
6859
7650
  # Displayed on invoices. Will be passed through to the individual commits
6860
7651
  sig { returns(T.nilable(String)) }
6861
7652
  attr_reader :name
@@ -6872,7 +7663,6 @@ module MetronomeSDK
6872
7663
 
6873
7664
  # Determines whether the first and last commit will be prorated. If not provided,
6874
7665
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
6875
- # subscription_config:
6876
7666
  sig do
6877
7667
  returns(
6878
7668
  T.nilable(
@@ -6945,6 +7735,24 @@ module MetronomeSDK
6945
7735
  end
6946
7736
  attr_writer :specifiers
6947
7737
 
7738
+ # Attach a subscription to the recurring commit/credit.
7739
+ sig do
7740
+ returns(
7741
+ T.nilable(
7742
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig
7743
+ )
7744
+ )
7745
+ end
7746
+ attr_reader :subscription_config
7747
+
7748
+ sig do
7749
+ params(
7750
+ subscription_config:
7751
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig::OrHash
7752
+ ).void
7753
+ end
7754
+ attr_writer :subscription_config
7755
+
6948
7756
  sig do
6949
7757
  params(
6950
7758
  id: String,
@@ -6964,6 +7772,8 @@ module MetronomeSDK
6964
7772
  MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::Contract::OrHash,
6965
7773
  description: String,
6966
7774
  ending_before: Time,
7775
+ hierarchy_configuration:
7776
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::OrHash,
6967
7777
  name: String,
6968
7778
  netsuite_sales_order_id: String,
6969
7779
  proration:
@@ -6974,7 +7784,9 @@ module MetronomeSDK
6974
7784
  specifiers:
6975
7785
  T::Array[
6976
7786
  MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::Specifier::OrHash
6977
- ]
7787
+ ],
7788
+ subscription_config:
7789
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig::OrHash
6978
7790
  ).returns(T.attached_class)
6979
7791
  end
6980
7792
  def self.new(
@@ -6999,13 +7811,14 @@ module MetronomeSDK
6999
7811
  description: nil,
7000
7812
  # Determines when the contract will stop creating recurring commits. Optional
7001
7813
  ending_before: nil,
7814
+ # Optional configuration for recurring credit hierarchy access control
7815
+ hierarchy_configuration: nil,
7002
7816
  # Displayed on invoices. Will be passed through to the individual commits
7003
7817
  name: nil,
7004
7818
  # Will be passed down to the individual commits
7005
7819
  netsuite_sales_order_id: nil,
7006
7820
  # Determines whether the first and last commit will be prorated. If not provided,
7007
7821
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
7008
- # subscription_config:
7009
7822
  proration: nil,
7010
7823
  # The frequency at which the recurring commits will be created. If not provided: -
7011
7824
  # The commits will be created on the usage invoice frequency. If provided: - The
@@ -7020,7 +7833,9 @@ module MetronomeSDK
7020
7833
  # List of filters that determine what kind of customer usage draws down a commit
7021
7834
  # or credit. A customer's usage needs to meet the condition of at least one of the
7022
7835
  # specifiers to contribute to a commit's or credit's drawdown.
7023
- specifiers: nil
7836
+ specifiers: nil,
7837
+ # Attach a subscription to the recurring commit/credit.
7838
+ subscription_config: nil
7024
7839
  )
7025
7840
  end
7026
7841
 
@@ -7044,6 +7859,8 @@ module MetronomeSDK
7044
7859
  MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::Contract,
7045
7860
  description: String,
7046
7861
  ending_before: Time,
7862
+ hierarchy_configuration:
7863
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration,
7047
7864
  name: String,
7048
7865
  netsuite_sales_order_id: String,
7049
7866
  proration:
@@ -7054,7 +7871,9 @@ module MetronomeSDK
7054
7871
  specifiers:
7055
7872
  T::Array[
7056
7873
  MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::Specifier
7057
- ]
7874
+ ],
7875
+ subscription_config:
7876
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig
7058
7877
  }
7059
7878
  )
7060
7879
  end
@@ -7264,9 +8083,276 @@ module MetronomeSDK
7264
8083
  end
7265
8084
  end
7266
8085
 
8086
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
8087
+ OrHash =
8088
+ T.type_alias do
8089
+ T.any(
8090
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration,
8091
+ MetronomeSDK::Internal::AnyHash
8092
+ )
8093
+ end
8094
+
8095
+ sig do
8096
+ returns(
8097
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::Variants
8098
+ )
8099
+ end
8100
+ attr_accessor :child_access
8101
+
8102
+ # Optional configuration for recurring credit hierarchy access control
8103
+ sig do
8104
+ params(
8105
+ child_access:
8106
+ T.any(
8107
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
8108
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
8109
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
8110
+ )
8111
+ ).returns(T.attached_class)
8112
+ end
8113
+ def self.new(child_access:)
8114
+ end
8115
+
8116
+ sig do
8117
+ override.returns(
8118
+ {
8119
+ child_access:
8120
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::Variants
8121
+ }
8122
+ )
8123
+ end
8124
+ def to_hash
8125
+ end
8126
+
8127
+ module ChildAccess
8128
+ extend MetronomeSDK::Internal::Type::Union
8129
+
8130
+ Variants =
8131
+ T.type_alias do
8132
+ T.any(
8133
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
8134
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
8135
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
8136
+ )
8137
+ end
8138
+
8139
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
8140
+ OrHash =
8141
+ T.type_alias do
8142
+ T.any(
8143
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
8144
+ MetronomeSDK::Internal::AnyHash
8145
+ )
8146
+ end
8147
+
8148
+ sig do
8149
+ returns(
8150
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
8151
+ )
8152
+ end
8153
+ attr_accessor :type
8154
+
8155
+ sig do
8156
+ params(
8157
+ type:
8158
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
8159
+ ).returns(T.attached_class)
8160
+ end
8161
+ def self.new(type:)
8162
+ end
8163
+
8164
+ sig do
8165
+ override.returns(
8166
+ {
8167
+ type:
8168
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
8169
+ }
8170
+ )
8171
+ end
8172
+ def to_hash
8173
+ end
8174
+
8175
+ module Type
8176
+ extend MetronomeSDK::Internal::Type::Enum
8177
+
8178
+ TaggedSymbol =
8179
+ T.type_alias do
8180
+ T.all(
8181
+ Symbol,
8182
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
8183
+ )
8184
+ end
8185
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
8186
+
8187
+ ALL =
8188
+ T.let(
8189
+ :ALL,
8190
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
8191
+ )
8192
+
8193
+ sig do
8194
+ override.returns(
8195
+ T::Array[
8196
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
8197
+ ]
8198
+ )
8199
+ end
8200
+ def self.values
8201
+ end
8202
+ end
8203
+ end
8204
+
8205
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
8206
+ OrHash =
8207
+ T.type_alias do
8208
+ T.any(
8209
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
8210
+ MetronomeSDK::Internal::AnyHash
8211
+ )
8212
+ end
8213
+
8214
+ sig do
8215
+ returns(
8216
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
8217
+ )
8218
+ end
8219
+ attr_accessor :type
8220
+
8221
+ sig do
8222
+ params(
8223
+ type:
8224
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
8225
+ ).returns(T.attached_class)
8226
+ end
8227
+ def self.new(type:)
8228
+ end
8229
+
8230
+ sig do
8231
+ override.returns(
8232
+ {
8233
+ type:
8234
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
8235
+ }
8236
+ )
8237
+ end
8238
+ def to_hash
8239
+ end
8240
+
8241
+ module Type
8242
+ extend MetronomeSDK::Internal::Type::Enum
8243
+
8244
+ TaggedSymbol =
8245
+ T.type_alias do
8246
+ T.all(
8247
+ Symbol,
8248
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
8249
+ )
8250
+ end
8251
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
8252
+
8253
+ NONE =
8254
+ T.let(
8255
+ :NONE,
8256
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
8257
+ )
8258
+
8259
+ sig do
8260
+ override.returns(
8261
+ T::Array[
8262
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
8263
+ ]
8264
+ )
8265
+ end
8266
+ def self.values
8267
+ end
8268
+ end
8269
+ end
8270
+
8271
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
8272
+ OrHash =
8273
+ T.type_alias do
8274
+ T.any(
8275
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
8276
+ MetronomeSDK::Internal::AnyHash
8277
+ )
8278
+ end
8279
+
8280
+ sig { returns(T::Array[String]) }
8281
+ attr_accessor :contract_ids
8282
+
8283
+ sig do
8284
+ returns(
8285
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
8286
+ )
8287
+ end
8288
+ attr_accessor :type
8289
+
8290
+ sig do
8291
+ params(
8292
+ contract_ids: T::Array[String],
8293
+ type:
8294
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
8295
+ ).returns(T.attached_class)
8296
+ end
8297
+ def self.new(contract_ids:, type:)
8298
+ end
8299
+
8300
+ sig do
8301
+ override.returns(
8302
+ {
8303
+ contract_ids: T::Array[String],
8304
+ type:
8305
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
8306
+ }
8307
+ )
8308
+ end
8309
+ def to_hash
8310
+ end
8311
+
8312
+ module Type
8313
+ extend MetronomeSDK::Internal::Type::Enum
8314
+
8315
+ TaggedSymbol =
8316
+ T.type_alias do
8317
+ T.all(
8318
+ Symbol,
8319
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
8320
+ )
8321
+ end
8322
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
8323
+
8324
+ CONTRACT_IDS =
8325
+ T.let(
8326
+ :CONTRACT_IDS,
8327
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
8328
+ )
8329
+
8330
+ sig do
8331
+ override.returns(
8332
+ T::Array[
8333
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
8334
+ ]
8335
+ )
8336
+ end
8337
+ def self.values
8338
+ end
8339
+ end
8340
+ end
8341
+
8342
+ sig do
8343
+ override.returns(
8344
+ T::Array[
8345
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::HierarchyConfiguration::ChildAccess::Variants
8346
+ ]
8347
+ )
8348
+ end
8349
+ def self.variants
8350
+ end
8351
+ end
8352
+ end
8353
+
7267
8354
  # Determines whether the first and last commit will be prorated. If not provided,
7268
8355
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
7269
- # subscription_config:
7270
8356
  module Proration
7271
8357
  extend MetronomeSDK::Internal::Type::Enum
7272
8358
 
@@ -7430,6 +8516,133 @@ module MetronomeSDK
7430
8516
  def to_hash
7431
8517
  end
7432
8518
  end
8519
+
8520
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
8521
+ OrHash =
8522
+ T.type_alias do
8523
+ T.any(
8524
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig,
8525
+ MetronomeSDK::Internal::AnyHash
8526
+ )
8527
+ end
8528
+
8529
+ sig do
8530
+ returns(
8531
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig::Allocation::TaggedSymbol
8532
+ )
8533
+ end
8534
+ attr_accessor :allocation
8535
+
8536
+ sig do
8537
+ returns(
8538
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig
8539
+ )
8540
+ end
8541
+ attr_reader :apply_seat_increase_config
8542
+
8543
+ sig do
8544
+ params(
8545
+ apply_seat_increase_config:
8546
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash
8547
+ ).void
8548
+ end
8549
+ attr_writer :apply_seat_increase_config
8550
+
8551
+ sig { returns(String) }
8552
+ attr_accessor :subscription_id
8553
+
8554
+ # Attach a subscription to the recurring commit/credit.
8555
+ sig do
8556
+ params(
8557
+ allocation:
8558
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig::Allocation::OrSymbol,
8559
+ apply_seat_increase_config:
8560
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash,
8561
+ subscription_id: String
8562
+ ).returns(T.attached_class)
8563
+ end
8564
+ def self.new(
8565
+ allocation:,
8566
+ apply_seat_increase_config:,
8567
+ subscription_id:
8568
+ )
8569
+ end
8570
+
8571
+ sig do
8572
+ override.returns(
8573
+ {
8574
+ allocation:
8575
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig::Allocation::TaggedSymbol,
8576
+ apply_seat_increase_config:
8577
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig,
8578
+ subscription_id: String
8579
+ }
8580
+ )
8581
+ end
8582
+ def to_hash
8583
+ end
8584
+
8585
+ module Allocation
8586
+ extend MetronomeSDK::Internal::Type::Enum
8587
+
8588
+ TaggedSymbol =
8589
+ T.type_alias do
8590
+ T.all(
8591
+ Symbol,
8592
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig::Allocation
8593
+ )
8594
+ end
8595
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
8596
+
8597
+ INDIVIDUAL =
8598
+ T.let(
8599
+ :INDIVIDUAL,
8600
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig::Allocation::TaggedSymbol
8601
+ )
8602
+ POOLED =
8603
+ T.let(
8604
+ :POOLED,
8605
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig::Allocation::TaggedSymbol
8606
+ )
8607
+
8608
+ sig do
8609
+ override.returns(
8610
+ T::Array[
8611
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig::Allocation::TaggedSymbol
8612
+ ]
8613
+ )
8614
+ end
8615
+ def self.values
8616
+ end
8617
+ end
8618
+
8619
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
8620
+ OrHash =
8621
+ T.type_alias do
8622
+ T.any(
8623
+ MetronomeSDK::Models::V2::ContractListResponse::Data::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig,
8624
+ MetronomeSDK::Internal::AnyHash
8625
+ )
8626
+ end
8627
+
8628
+ # Indicates whether a mid-period seat increase should be prorated.
8629
+ sig { returns(T::Boolean) }
8630
+ attr_accessor :is_prorated
8631
+
8632
+ sig do
8633
+ params(is_prorated: T::Boolean).returns(T.attached_class)
8634
+ end
8635
+ def self.new(
8636
+ # Indicates whether a mid-period seat increase should be prorated.
8637
+ is_prorated:
8638
+ )
8639
+ end
8640
+
8641
+ sig { override.returns({ is_prorated: T::Boolean }) }
8642
+ def to_hash
8643
+ end
8644
+ end
8645
+ end
7433
8646
  end
7434
8647
 
7435
8648
  class ResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel