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
@@ -1536,6 +1536,24 @@ module MetronomeSDK
1536
1536
  sig { params(ending_before: Time).void }
1537
1537
  attr_writer :ending_before
1538
1538
 
1539
+ # Optional configuration for recurring commit/credit hierarchy access control
1540
+ sig do
1541
+ returns(
1542
+ T.nilable(
1543
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration
1544
+ )
1545
+ )
1546
+ end
1547
+ attr_reader :hierarchy_configuration
1548
+
1549
+ sig do
1550
+ params(
1551
+ hierarchy_configuration:
1552
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::OrHash
1553
+ ).void
1554
+ end
1555
+ attr_writer :hierarchy_configuration
1556
+
1539
1557
  # The amount the customer should be billed for the commit. Not required.
1540
1558
  sig do
1541
1559
  returns(
@@ -1642,6 +1660,24 @@ module MetronomeSDK
1642
1660
  end
1643
1661
  attr_writer :specifiers
1644
1662
 
1663
+ # Attach a subscription to the recurring commit/credit.
1664
+ sig do
1665
+ returns(
1666
+ T.nilable(
1667
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::SubscriptionConfig
1668
+ )
1669
+ )
1670
+ end
1671
+ attr_reader :subscription_config
1672
+
1673
+ sig do
1674
+ params(
1675
+ subscription_config:
1676
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::SubscriptionConfig::OrHash
1677
+ ).void
1678
+ end
1679
+ attr_writer :subscription_config
1680
+
1645
1681
  sig do
1646
1682
  params(
1647
1683
  id: String,
@@ -1661,6 +1697,8 @@ module MetronomeSDK
1661
1697
  MetronomeSDK::ContractWithoutAmendments::RecurringCommit::Contract::OrHash,
1662
1698
  description: String,
1663
1699
  ending_before: Time,
1700
+ hierarchy_configuration:
1701
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::OrHash,
1664
1702
  invoice_amount:
1665
1703
  MetronomeSDK::ContractWithoutAmendments::RecurringCommit::InvoiceAmount::OrHash,
1666
1704
  name: String,
@@ -1673,7 +1711,9 @@ module MetronomeSDK
1673
1711
  specifiers:
1674
1712
  T::Array[
1675
1713
  MetronomeSDK::ContractWithoutAmendments::RecurringCommit::Specifier::OrHash
1676
- ]
1714
+ ],
1715
+ subscription_config:
1716
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::SubscriptionConfig::OrHash
1677
1717
  ).returns(T.attached_class)
1678
1718
  end
1679
1719
  def self.new(
@@ -1698,6 +1738,8 @@ module MetronomeSDK
1698
1738
  description: nil,
1699
1739
  # Determines when the contract will stop creating recurring commits. Optional
1700
1740
  ending_before: nil,
1741
+ # Optional configuration for recurring commit/credit hierarchy access control
1742
+ hierarchy_configuration: nil,
1701
1743
  # The amount the customer should be billed for the commit. Not required.
1702
1744
  invoice_amount: nil,
1703
1745
  # Displayed on invoices. Will be passed through to the individual commits
@@ -1720,7 +1762,9 @@ module MetronomeSDK
1720
1762
  # List of filters that determine what kind of customer usage draws down a commit
1721
1763
  # or credit. A customer's usage needs to meet the condition of at least one of the
1722
1764
  # specifiers to contribute to a commit's or credit's drawdown.
1723
- specifiers: nil
1765
+ specifiers: nil,
1766
+ # Attach a subscription to the recurring commit/credit.
1767
+ subscription_config: nil
1724
1768
  )
1725
1769
  end
1726
1770
 
@@ -1744,6 +1788,8 @@ module MetronomeSDK
1744
1788
  MetronomeSDK::ContractWithoutAmendments::RecurringCommit::Contract,
1745
1789
  description: String,
1746
1790
  ending_before: Time,
1791
+ hierarchy_configuration:
1792
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration,
1747
1793
  invoice_amount:
1748
1794
  MetronomeSDK::ContractWithoutAmendments::RecurringCommit::InvoiceAmount,
1749
1795
  name: String,
@@ -1756,7 +1802,9 @@ module MetronomeSDK
1756
1802
  specifiers:
1757
1803
  T::Array[
1758
1804
  MetronomeSDK::ContractWithoutAmendments::RecurringCommit::Specifier
1759
- ]
1805
+ ],
1806
+ subscription_config:
1807
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::SubscriptionConfig
1760
1808
  }
1761
1809
  )
1762
1810
  end
@@ -1966,6 +2014,274 @@ module MetronomeSDK
1966
2014
  end
1967
2015
  end
1968
2016
 
2017
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
2018
+ OrHash =
2019
+ T.type_alias do
2020
+ T.any(
2021
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration,
2022
+ MetronomeSDK::Internal::AnyHash
2023
+ )
2024
+ end
2025
+
2026
+ sig do
2027
+ returns(
2028
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::Variants
2029
+ )
2030
+ end
2031
+ attr_accessor :child_access
2032
+
2033
+ # Optional configuration for recurring commit/credit hierarchy access control
2034
+ sig do
2035
+ params(
2036
+ child_access:
2037
+ T.any(
2038
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
2039
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
2040
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
2041
+ )
2042
+ ).returns(T.attached_class)
2043
+ end
2044
+ def self.new(child_access:)
2045
+ end
2046
+
2047
+ sig do
2048
+ override.returns(
2049
+ {
2050
+ child_access:
2051
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::Variants
2052
+ }
2053
+ )
2054
+ end
2055
+ def to_hash
2056
+ end
2057
+
2058
+ module ChildAccess
2059
+ extend MetronomeSDK::Internal::Type::Union
2060
+
2061
+ Variants =
2062
+ T.type_alias do
2063
+ T.any(
2064
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
2065
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
2066
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
2067
+ )
2068
+ end
2069
+
2070
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
2071
+ OrHash =
2072
+ T.type_alias do
2073
+ T.any(
2074
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
2075
+ MetronomeSDK::Internal::AnyHash
2076
+ )
2077
+ end
2078
+
2079
+ sig do
2080
+ returns(
2081
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
2082
+ )
2083
+ end
2084
+ attr_accessor :type
2085
+
2086
+ sig do
2087
+ params(
2088
+ type:
2089
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
2090
+ ).returns(T.attached_class)
2091
+ end
2092
+ def self.new(type:)
2093
+ end
2094
+
2095
+ sig do
2096
+ override.returns(
2097
+ {
2098
+ type:
2099
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
2100
+ }
2101
+ )
2102
+ end
2103
+ def to_hash
2104
+ end
2105
+
2106
+ module Type
2107
+ extend MetronomeSDK::Internal::Type::Enum
2108
+
2109
+ TaggedSymbol =
2110
+ T.type_alias do
2111
+ T.all(
2112
+ Symbol,
2113
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
2114
+ )
2115
+ end
2116
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2117
+
2118
+ ALL =
2119
+ T.let(
2120
+ :ALL,
2121
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
2122
+ )
2123
+
2124
+ sig do
2125
+ override.returns(
2126
+ T::Array[
2127
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
2128
+ ]
2129
+ )
2130
+ end
2131
+ def self.values
2132
+ end
2133
+ end
2134
+ end
2135
+
2136
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
2137
+ OrHash =
2138
+ T.type_alias do
2139
+ T.any(
2140
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
2141
+ MetronomeSDK::Internal::AnyHash
2142
+ )
2143
+ end
2144
+
2145
+ sig do
2146
+ returns(
2147
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
2148
+ )
2149
+ end
2150
+ attr_accessor :type
2151
+
2152
+ sig do
2153
+ params(
2154
+ type:
2155
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
2156
+ ).returns(T.attached_class)
2157
+ end
2158
+ def self.new(type:)
2159
+ end
2160
+
2161
+ sig do
2162
+ override.returns(
2163
+ {
2164
+ type:
2165
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
2166
+ }
2167
+ )
2168
+ end
2169
+ def to_hash
2170
+ end
2171
+
2172
+ module Type
2173
+ extend MetronomeSDK::Internal::Type::Enum
2174
+
2175
+ TaggedSymbol =
2176
+ T.type_alias do
2177
+ T.all(
2178
+ Symbol,
2179
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
2180
+ )
2181
+ end
2182
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2183
+
2184
+ NONE =
2185
+ T.let(
2186
+ :NONE,
2187
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
2188
+ )
2189
+
2190
+ sig do
2191
+ override.returns(
2192
+ T::Array[
2193
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
2194
+ ]
2195
+ )
2196
+ end
2197
+ def self.values
2198
+ end
2199
+ end
2200
+ end
2201
+
2202
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
2203
+ OrHash =
2204
+ T.type_alias do
2205
+ T.any(
2206
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
2207
+ MetronomeSDK::Internal::AnyHash
2208
+ )
2209
+ end
2210
+
2211
+ sig { returns(T::Array[String]) }
2212
+ attr_accessor :contract_ids
2213
+
2214
+ sig do
2215
+ returns(
2216
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
2217
+ )
2218
+ end
2219
+ attr_accessor :type
2220
+
2221
+ sig do
2222
+ params(
2223
+ contract_ids: T::Array[String],
2224
+ type:
2225
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
2226
+ ).returns(T.attached_class)
2227
+ end
2228
+ def self.new(contract_ids:, type:)
2229
+ end
2230
+
2231
+ sig do
2232
+ override.returns(
2233
+ {
2234
+ contract_ids: T::Array[String],
2235
+ type:
2236
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
2237
+ }
2238
+ )
2239
+ end
2240
+ def to_hash
2241
+ end
2242
+
2243
+ module Type
2244
+ extend MetronomeSDK::Internal::Type::Enum
2245
+
2246
+ TaggedSymbol =
2247
+ T.type_alias do
2248
+ T.all(
2249
+ Symbol,
2250
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
2251
+ )
2252
+ end
2253
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2254
+
2255
+ CONTRACT_IDS =
2256
+ T.let(
2257
+ :CONTRACT_IDS,
2258
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
2259
+ )
2260
+
2261
+ sig do
2262
+ override.returns(
2263
+ T::Array[
2264
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
2265
+ ]
2266
+ )
2267
+ end
2268
+ def self.values
2269
+ end
2270
+ end
2271
+ end
2272
+
2273
+ sig do
2274
+ override.returns(
2275
+ T::Array[
2276
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::HierarchyConfiguration::ChildAccess::Variants
2277
+ ]
2278
+ )
2279
+ end
2280
+ def self.variants
2281
+ end
2282
+ end
2283
+ end
2284
+
1969
2285
  class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
1970
2286
  OrHash =
1971
2287
  T.type_alias do
@@ -2169,6 +2485,131 @@ module MetronomeSDK
2169
2485
  def to_hash
2170
2486
  end
2171
2487
  end
2488
+
2489
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
2490
+ OrHash =
2491
+ T.type_alias do
2492
+ T.any(
2493
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::SubscriptionConfig,
2494
+ MetronomeSDK::Internal::AnyHash
2495
+ )
2496
+ end
2497
+
2498
+ sig do
2499
+ returns(
2500
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::SubscriptionConfig::Allocation::TaggedSymbol
2501
+ )
2502
+ end
2503
+ attr_accessor :allocation
2504
+
2505
+ sig do
2506
+ returns(
2507
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig
2508
+ )
2509
+ end
2510
+ attr_reader :apply_seat_increase_config
2511
+
2512
+ sig do
2513
+ params(
2514
+ apply_seat_increase_config:
2515
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash
2516
+ ).void
2517
+ end
2518
+ attr_writer :apply_seat_increase_config
2519
+
2520
+ sig { returns(String) }
2521
+ attr_accessor :subscription_id
2522
+
2523
+ # Attach a subscription to the recurring commit/credit.
2524
+ sig do
2525
+ params(
2526
+ allocation:
2527
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::SubscriptionConfig::Allocation::OrSymbol,
2528
+ apply_seat_increase_config:
2529
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash,
2530
+ subscription_id: String
2531
+ ).returns(T.attached_class)
2532
+ end
2533
+ def self.new(
2534
+ allocation:,
2535
+ apply_seat_increase_config:,
2536
+ subscription_id:
2537
+ )
2538
+ end
2539
+
2540
+ sig do
2541
+ override.returns(
2542
+ {
2543
+ allocation:
2544
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::SubscriptionConfig::Allocation::TaggedSymbol,
2545
+ apply_seat_increase_config:
2546
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig,
2547
+ subscription_id: String
2548
+ }
2549
+ )
2550
+ end
2551
+ def to_hash
2552
+ end
2553
+
2554
+ module Allocation
2555
+ extend MetronomeSDK::Internal::Type::Enum
2556
+
2557
+ TaggedSymbol =
2558
+ T.type_alias do
2559
+ T.all(
2560
+ Symbol,
2561
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::SubscriptionConfig::Allocation
2562
+ )
2563
+ end
2564
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2565
+
2566
+ INDIVIDUAL =
2567
+ T.let(
2568
+ :INDIVIDUAL,
2569
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::SubscriptionConfig::Allocation::TaggedSymbol
2570
+ )
2571
+ POOLED =
2572
+ T.let(
2573
+ :POOLED,
2574
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::SubscriptionConfig::Allocation::TaggedSymbol
2575
+ )
2576
+
2577
+ sig do
2578
+ override.returns(
2579
+ T::Array[
2580
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::SubscriptionConfig::Allocation::TaggedSymbol
2581
+ ]
2582
+ )
2583
+ end
2584
+ def self.values
2585
+ end
2586
+ end
2587
+
2588
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
2589
+ OrHash =
2590
+ T.type_alias do
2591
+ T.any(
2592
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig,
2593
+ MetronomeSDK::Internal::AnyHash
2594
+ )
2595
+ end
2596
+
2597
+ # Indicates whether a mid-period seat increase should be prorated.
2598
+ sig { returns(T::Boolean) }
2599
+ attr_accessor :is_prorated
2600
+
2601
+ sig { params(is_prorated: T::Boolean).returns(T.attached_class) }
2602
+ def self.new(
2603
+ # Indicates whether a mid-period seat increase should be prorated.
2604
+ is_prorated:
2605
+ )
2606
+ end
2607
+
2608
+ sig { override.returns({ is_prorated: T::Boolean }) }
2609
+ def to_hash
2610
+ end
2611
+ end
2612
+ end
2172
2613
  end
2173
2614
 
2174
2615
  class RecurringCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -2291,6 +2732,24 @@ module MetronomeSDK
2291
2732
  sig { params(ending_before: Time).void }
2292
2733
  attr_writer :ending_before
2293
2734
 
2735
+ # Optional configuration for recurring commit/credit hierarchy access control
2736
+ sig do
2737
+ returns(
2738
+ T.nilable(
2739
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration
2740
+ )
2741
+ )
2742
+ end
2743
+ attr_reader :hierarchy_configuration
2744
+
2745
+ sig do
2746
+ params(
2747
+ hierarchy_configuration:
2748
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::OrHash
2749
+ ).void
2750
+ end
2751
+ attr_writer :hierarchy_configuration
2752
+
2294
2753
  # Displayed on invoices. Will be passed through to the individual commits
2295
2754
  sig { returns(T.nilable(String)) }
2296
2755
  attr_reader :name
@@ -2379,6 +2838,24 @@ module MetronomeSDK
2379
2838
  end
2380
2839
  attr_writer :specifiers
2381
2840
 
2841
+ # Attach a subscription to the recurring commit/credit.
2842
+ sig do
2843
+ returns(
2844
+ T.nilable(
2845
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::SubscriptionConfig
2846
+ )
2847
+ )
2848
+ end
2849
+ attr_reader :subscription_config
2850
+
2851
+ sig do
2852
+ params(
2853
+ subscription_config:
2854
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::SubscriptionConfig::OrHash
2855
+ ).void
2856
+ end
2857
+ attr_writer :subscription_config
2858
+
2382
2859
  sig do
2383
2860
  params(
2384
2861
  id: String,
@@ -2398,6 +2875,8 @@ module MetronomeSDK
2398
2875
  MetronomeSDK::ContractWithoutAmendments::RecurringCredit::Contract::OrHash,
2399
2876
  description: String,
2400
2877
  ending_before: Time,
2878
+ hierarchy_configuration:
2879
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::OrHash,
2401
2880
  name: String,
2402
2881
  netsuite_sales_order_id: String,
2403
2882
  proration:
@@ -2408,7 +2887,9 @@ module MetronomeSDK
2408
2887
  specifiers:
2409
2888
  T::Array[
2410
2889
  MetronomeSDK::ContractWithoutAmendments::RecurringCredit::Specifier::OrHash
2411
- ]
2890
+ ],
2891
+ subscription_config:
2892
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::SubscriptionConfig::OrHash
2412
2893
  ).returns(T.attached_class)
2413
2894
  end
2414
2895
  def self.new(
@@ -2433,6 +2914,8 @@ module MetronomeSDK
2433
2914
  description: nil,
2434
2915
  # Determines when the contract will stop creating recurring commits. Optional
2435
2916
  ending_before: nil,
2917
+ # Optional configuration for recurring commit/credit hierarchy access control
2918
+ hierarchy_configuration: nil,
2436
2919
  # Displayed on invoices. Will be passed through to the individual commits
2437
2920
  name: nil,
2438
2921
  # Will be passed down to the individual commits
@@ -2453,7 +2936,9 @@ module MetronomeSDK
2453
2936
  # List of filters that determine what kind of customer usage draws down a commit
2454
2937
  # or credit. A customer's usage needs to meet the condition of at least one of the
2455
2938
  # specifiers to contribute to a commit's or credit's drawdown.
2456
- specifiers: nil
2939
+ specifiers: nil,
2940
+ # Attach a subscription to the recurring commit/credit.
2941
+ subscription_config: nil
2457
2942
  )
2458
2943
  end
2459
2944
 
@@ -2477,6 +2962,8 @@ module MetronomeSDK
2477
2962
  MetronomeSDK::ContractWithoutAmendments::RecurringCredit::Contract,
2478
2963
  description: String,
2479
2964
  ending_before: Time,
2965
+ hierarchy_configuration:
2966
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration,
2480
2967
  name: String,
2481
2968
  netsuite_sales_order_id: String,
2482
2969
  proration:
@@ -2487,7 +2974,9 @@ module MetronomeSDK
2487
2974
  specifiers:
2488
2975
  T::Array[
2489
2976
  MetronomeSDK::ContractWithoutAmendments::RecurringCredit::Specifier
2490
- ]
2977
+ ],
2978
+ subscription_config:
2979
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::SubscriptionConfig
2491
2980
  }
2492
2981
  )
2493
2982
  end
@@ -2697,6 +3186,274 @@ module MetronomeSDK
2697
3186
  end
2698
3187
  end
2699
3188
 
3189
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
3190
+ OrHash =
3191
+ T.type_alias do
3192
+ T.any(
3193
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration,
3194
+ MetronomeSDK::Internal::AnyHash
3195
+ )
3196
+ end
3197
+
3198
+ sig do
3199
+ returns(
3200
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::Variants
3201
+ )
3202
+ end
3203
+ attr_accessor :child_access
3204
+
3205
+ # Optional configuration for recurring commit/credit hierarchy access control
3206
+ sig do
3207
+ params(
3208
+ child_access:
3209
+ T.any(
3210
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
3211
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
3212
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
3213
+ )
3214
+ ).returns(T.attached_class)
3215
+ end
3216
+ def self.new(child_access:)
3217
+ end
3218
+
3219
+ sig do
3220
+ override.returns(
3221
+ {
3222
+ child_access:
3223
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::Variants
3224
+ }
3225
+ )
3226
+ end
3227
+ def to_hash
3228
+ end
3229
+
3230
+ module ChildAccess
3231
+ extend MetronomeSDK::Internal::Type::Union
3232
+
3233
+ Variants =
3234
+ T.type_alias do
3235
+ T.any(
3236
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
3237
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
3238
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
3239
+ )
3240
+ end
3241
+
3242
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
3243
+ OrHash =
3244
+ T.type_alias do
3245
+ T.any(
3246
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
3247
+ MetronomeSDK::Internal::AnyHash
3248
+ )
3249
+ end
3250
+
3251
+ sig do
3252
+ returns(
3253
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
3254
+ )
3255
+ end
3256
+ attr_accessor :type
3257
+
3258
+ sig do
3259
+ params(
3260
+ type:
3261
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
3262
+ ).returns(T.attached_class)
3263
+ end
3264
+ def self.new(type:)
3265
+ end
3266
+
3267
+ sig do
3268
+ override.returns(
3269
+ {
3270
+ type:
3271
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
3272
+ }
3273
+ )
3274
+ end
3275
+ def to_hash
3276
+ end
3277
+
3278
+ module Type
3279
+ extend MetronomeSDK::Internal::Type::Enum
3280
+
3281
+ TaggedSymbol =
3282
+ T.type_alias do
3283
+ T.all(
3284
+ Symbol,
3285
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
3286
+ )
3287
+ end
3288
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
3289
+
3290
+ ALL =
3291
+ T.let(
3292
+ :ALL,
3293
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
3294
+ )
3295
+
3296
+ sig do
3297
+ override.returns(
3298
+ T::Array[
3299
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
3300
+ ]
3301
+ )
3302
+ end
3303
+ def self.values
3304
+ end
3305
+ end
3306
+ end
3307
+
3308
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
3309
+ OrHash =
3310
+ T.type_alias do
3311
+ T.any(
3312
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
3313
+ MetronomeSDK::Internal::AnyHash
3314
+ )
3315
+ end
3316
+
3317
+ sig do
3318
+ returns(
3319
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
3320
+ )
3321
+ end
3322
+ attr_accessor :type
3323
+
3324
+ sig do
3325
+ params(
3326
+ type:
3327
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
3328
+ ).returns(T.attached_class)
3329
+ end
3330
+ def self.new(type:)
3331
+ end
3332
+
3333
+ sig do
3334
+ override.returns(
3335
+ {
3336
+ type:
3337
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
3338
+ }
3339
+ )
3340
+ end
3341
+ def to_hash
3342
+ end
3343
+
3344
+ module Type
3345
+ extend MetronomeSDK::Internal::Type::Enum
3346
+
3347
+ TaggedSymbol =
3348
+ T.type_alias do
3349
+ T.all(
3350
+ Symbol,
3351
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
3352
+ )
3353
+ end
3354
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
3355
+
3356
+ NONE =
3357
+ T.let(
3358
+ :NONE,
3359
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
3360
+ )
3361
+
3362
+ sig do
3363
+ override.returns(
3364
+ T::Array[
3365
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
3366
+ ]
3367
+ )
3368
+ end
3369
+ def self.values
3370
+ end
3371
+ end
3372
+ end
3373
+
3374
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
3375
+ OrHash =
3376
+ T.type_alias do
3377
+ T.any(
3378
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
3379
+ MetronomeSDK::Internal::AnyHash
3380
+ )
3381
+ end
3382
+
3383
+ sig { returns(T::Array[String]) }
3384
+ attr_accessor :contract_ids
3385
+
3386
+ sig do
3387
+ returns(
3388
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
3389
+ )
3390
+ end
3391
+ attr_accessor :type
3392
+
3393
+ sig do
3394
+ params(
3395
+ contract_ids: T::Array[String],
3396
+ type:
3397
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
3398
+ ).returns(T.attached_class)
3399
+ end
3400
+ def self.new(contract_ids:, type:)
3401
+ end
3402
+
3403
+ sig do
3404
+ override.returns(
3405
+ {
3406
+ contract_ids: T::Array[String],
3407
+ type:
3408
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
3409
+ }
3410
+ )
3411
+ end
3412
+ def to_hash
3413
+ end
3414
+
3415
+ module Type
3416
+ extend MetronomeSDK::Internal::Type::Enum
3417
+
3418
+ TaggedSymbol =
3419
+ T.type_alias do
3420
+ T.all(
3421
+ Symbol,
3422
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
3423
+ )
3424
+ end
3425
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
3426
+
3427
+ CONTRACT_IDS =
3428
+ T.let(
3429
+ :CONTRACT_IDS,
3430
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
3431
+ )
3432
+
3433
+ sig do
3434
+ override.returns(
3435
+ T::Array[
3436
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
3437
+ ]
3438
+ )
3439
+ end
3440
+ def self.values
3441
+ end
3442
+ end
3443
+ end
3444
+
3445
+ sig do
3446
+ override.returns(
3447
+ T::Array[
3448
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::HierarchyConfiguration::ChildAccess::Variants
3449
+ ]
3450
+ )
3451
+ end
3452
+ def self.variants
3453
+ end
3454
+ end
3455
+ end
3456
+
2700
3457
  # Determines whether the first and last commit will be prorated. If not provided,
2701
3458
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
2702
3459
  module Proration
@@ -2862,6 +3619,131 @@ module MetronomeSDK
2862
3619
  def to_hash
2863
3620
  end
2864
3621
  end
3622
+
3623
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
3624
+ OrHash =
3625
+ T.type_alias do
3626
+ T.any(
3627
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::SubscriptionConfig,
3628
+ MetronomeSDK::Internal::AnyHash
3629
+ )
3630
+ end
3631
+
3632
+ sig do
3633
+ returns(
3634
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::SubscriptionConfig::Allocation::TaggedSymbol
3635
+ )
3636
+ end
3637
+ attr_accessor :allocation
3638
+
3639
+ sig do
3640
+ returns(
3641
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig
3642
+ )
3643
+ end
3644
+ attr_reader :apply_seat_increase_config
3645
+
3646
+ sig do
3647
+ params(
3648
+ apply_seat_increase_config:
3649
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash
3650
+ ).void
3651
+ end
3652
+ attr_writer :apply_seat_increase_config
3653
+
3654
+ sig { returns(String) }
3655
+ attr_accessor :subscription_id
3656
+
3657
+ # Attach a subscription to the recurring commit/credit.
3658
+ sig do
3659
+ params(
3660
+ allocation:
3661
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::SubscriptionConfig::Allocation::OrSymbol,
3662
+ apply_seat_increase_config:
3663
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash,
3664
+ subscription_id: String
3665
+ ).returns(T.attached_class)
3666
+ end
3667
+ def self.new(
3668
+ allocation:,
3669
+ apply_seat_increase_config:,
3670
+ subscription_id:
3671
+ )
3672
+ end
3673
+
3674
+ sig do
3675
+ override.returns(
3676
+ {
3677
+ allocation:
3678
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::SubscriptionConfig::Allocation::TaggedSymbol,
3679
+ apply_seat_increase_config:
3680
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig,
3681
+ subscription_id: String
3682
+ }
3683
+ )
3684
+ end
3685
+ def to_hash
3686
+ end
3687
+
3688
+ module Allocation
3689
+ extend MetronomeSDK::Internal::Type::Enum
3690
+
3691
+ TaggedSymbol =
3692
+ T.type_alias do
3693
+ T.all(
3694
+ Symbol,
3695
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::SubscriptionConfig::Allocation
3696
+ )
3697
+ end
3698
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
3699
+
3700
+ INDIVIDUAL =
3701
+ T.let(
3702
+ :INDIVIDUAL,
3703
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::SubscriptionConfig::Allocation::TaggedSymbol
3704
+ )
3705
+ POOLED =
3706
+ T.let(
3707
+ :POOLED,
3708
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::SubscriptionConfig::Allocation::TaggedSymbol
3709
+ )
3710
+
3711
+ sig do
3712
+ override.returns(
3713
+ T::Array[
3714
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::SubscriptionConfig::Allocation::TaggedSymbol
3715
+ ]
3716
+ )
3717
+ end
3718
+ def self.values
3719
+ end
3720
+ end
3721
+
3722
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
3723
+ OrHash =
3724
+ T.type_alias do
3725
+ T.any(
3726
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig,
3727
+ MetronomeSDK::Internal::AnyHash
3728
+ )
3729
+ end
3730
+
3731
+ # Indicates whether a mid-period seat increase should be prorated.
3732
+ sig { returns(T::Boolean) }
3733
+ attr_accessor :is_prorated
3734
+
3735
+ sig { params(is_prorated: T::Boolean).returns(T.attached_class) }
3736
+ def self.new(
3737
+ # Indicates whether a mid-period seat increase should be prorated.
3738
+ is_prorated:
3739
+ )
3740
+ end
3741
+
3742
+ sig { override.returns({ is_prorated: T::Boolean }) }
3743
+ def to_hash
3744
+ end
3745
+ end
3746
+ end
2865
3747
  end
2866
3748
 
2867
3749
  class ResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel