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