metronome-sdk 3.4.0 → 3.6.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 (95) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +84 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/client.rb +15 -1
  5. data/lib/metronome_sdk/internal/transport/base_client.rb +2 -0
  6. data/lib/metronome_sdk/internal/util.rb +22 -7
  7. data/lib/metronome_sdk/models/base_threshold_commit.rb +10 -1
  8. data/lib/metronome_sdk/models/contract_v2.rb +443 -15
  9. data/lib/metronome_sdk/models/credit.rb +74 -4
  10. data/lib/metronome_sdk/models/override.rb +9 -8
  11. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +27 -1
  12. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +28 -2
  13. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +26 -1
  14. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +30 -4
  15. data/lib/metronome_sdk/models/update_base_threshold_commit.rb +11 -1
  16. data/lib/metronome_sdk/models/v1/alert_create_params.rb +1 -0
  17. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +2 -189
  18. data/lib/metronome_sdk/models/v1/contract_create_params.rb +3 -191
  19. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +119 -0
  20. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_response.rb +315 -0
  21. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +31 -1
  22. data/lib/metronome_sdk/models/v1/contracts/product_update_params.rb +31 -1
  23. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +1 -0
  24. data/lib/metronome_sdk/models/v1/customers/invoice.rb +8 -1
  25. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +29 -1
  26. data/lib/metronome_sdk/models/v1/package_create_params.rb +2 -30
  27. data/lib/metronome_sdk/models/v1/package_list_response.rb +28 -9
  28. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +29 -9
  29. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +67 -20
  30. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +496 -15
  31. data/lib/metronome_sdk/resources/v1/contracts/products.rb +6 -2
  32. data/lib/metronome_sdk/resources/v1/contracts.rb +76 -2
  33. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +5 -1
  34. data/lib/metronome_sdk/resources/v1/packages.rb +1 -3
  35. data/lib/metronome_sdk/version.rb +1 -1
  36. data/lib/metronome_sdk.rb +3 -1
  37. data/rbi/metronome_sdk/internal/util.rbi +8 -0
  38. data/rbi/metronome_sdk/models/base_threshold_commit.rbi +24 -5
  39. data/rbi/metronome_sdk/models/contract_v2.rbi +916 -19
  40. data/rbi/metronome_sdk/models/credit.rbi +139 -3
  41. data/rbi/metronome_sdk/models/override.rbi +9 -12
  42. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +54 -3
  43. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +55 -4
  44. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +54 -3
  45. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +58 -9
  46. data/rbi/metronome_sdk/models/update_base_threshold_commit.rbi +22 -4
  47. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +5 -0
  48. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +3 -416
  49. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +5 -418
  50. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +179 -0
  51. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_response.rbi +714 -0
  52. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +74 -0
  53. data/rbi/metronome_sdk/models/v1/contracts/product_update_params.rbi +74 -0
  54. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +5 -0
  55. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +9 -0
  56. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +75 -0
  57. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +3 -76
  58. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +72 -15
  59. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +72 -17
  60. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +133 -28
  61. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1174 -145
  62. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +18 -0
  63. data/rbi/metronome_sdk/resources/v1/contracts.rbi +88 -3
  64. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +7 -0
  65. data/rbi/metronome_sdk/resources/v1/packages.rbi +0 -3
  66. data/sig/metronome_sdk/internal/util.rbs +4 -0
  67. data/sig/metronome_sdk/models/base_threshold_commit.rbs +13 -3
  68. data/sig/metronome_sdk/models/contract_v2.rbs +401 -16
  69. data/sig/metronome_sdk/models/credit.rbs +69 -0
  70. data/sig/metronome_sdk/models/override.rbs +8 -10
  71. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +22 -3
  72. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +23 -4
  73. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +22 -3
  74. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +26 -7
  75. data/sig/metronome_sdk/models/update_base_threshold_commit.rbs +15 -2
  76. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +3 -1
  77. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +3 -147
  78. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +3 -147
  79. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +96 -0
  80. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_response.rbs +299 -0
  81. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +20 -0
  82. data/sig/metronome_sdk/models/v1/contracts/product_update_params.rbs +20 -0
  83. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +3 -1
  84. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +7 -0
  85. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +29 -1
  86. data/sig/metronome_sdk/models/v1/package_create_params.rbs +3 -30
  87. data/sig/metronome_sdk/models/v1/package_list_response.rbs +33 -15
  88. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +33 -15
  89. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +33 -10
  90. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +409 -19
  91. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +2 -0
  92. data/sig/metronome_sdk/resources/v1/contracts.rbs +15 -0
  93. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +2 -0
  94. data/sig/metronome_sdk/resources/v1/packages.rbs +0 -1
  95. metadata +8 -2
@@ -35,7 +35,7 @@ module MetronomeSDK
35
35
  salesforce_opportunity_id: String,
36
36
  scheduled_charges_on_usage_invoices: MetronomeSDK::Models::ContractV2::scheduled_charges_on_usage_invoices,
37
37
  spend_threshold_configuration: MetronomeSDK::SpendThresholdConfigurationV2,
38
- subscriptions: ::Array[MetronomeSDK::Subscription],
38
+ subscriptions: ::Array[MetronomeSDK::ContractV2::Subscription],
39
39
  total_contract_value: Float,
40
40
  uniqueness_key: String
41
41
  }
@@ -177,11 +177,11 @@ module MetronomeSDK
177
177
  MetronomeSDK::SpendThresholdConfigurationV2
178
178
  ) -> MetronomeSDK::SpendThresholdConfigurationV2
179
179
 
180
- attr_reader subscriptions: ::Array[MetronomeSDK::Subscription]?
180
+ attr_reader subscriptions: ::Array[MetronomeSDK::ContractV2::Subscription]?
181
181
 
182
182
  def subscriptions=: (
183
- ::Array[MetronomeSDK::Subscription]
184
- ) -> ::Array[MetronomeSDK::Subscription]
183
+ ::Array[MetronomeSDK::ContractV2::Subscription]
184
+ ) -> ::Array[MetronomeSDK::ContractV2::Subscription]
185
185
 
186
186
  attr_reader total_contract_value: Float?
187
187
 
@@ -225,7 +225,7 @@ module MetronomeSDK
225
225
  ?salesforce_opportunity_id: String,
226
226
  ?scheduled_charges_on_usage_invoices: MetronomeSDK::Models::ContractV2::scheduled_charges_on_usage_invoices,
227
227
  ?spend_threshold_configuration: MetronomeSDK::SpendThresholdConfigurationV2,
228
- ?subscriptions: ::Array[MetronomeSDK::Subscription],
228
+ ?subscriptions: ::Array[MetronomeSDK::ContractV2::Subscription],
229
229
  ?total_contract_value: Float,
230
230
  ?uniqueness_key: String
231
231
  ) -> void
@@ -264,7 +264,7 @@ module MetronomeSDK
264
264
  salesforce_opportunity_id: String,
265
265
  scheduled_charges_on_usage_invoices: MetronomeSDK::Models::ContractV2::scheduled_charges_on_usage_invoices,
266
266
  spend_threshold_configuration: MetronomeSDK::SpendThresholdConfigurationV2,
267
- subscriptions: ::Array[MetronomeSDK::Subscription],
267
+ subscriptions: ::Array[MetronomeSDK::ContractV2::Subscription],
268
268
  total_contract_value: Float,
269
269
  uniqueness_key: String
270
270
  }
@@ -1216,6 +1216,7 @@ module MetronomeSDK
1216
1216
  type override =
1217
1217
  {
1218
1218
  id: String,
1219
+ created_at: Time,
1219
1220
  starting_at: Time,
1220
1221
  applicable_product_tags: ::Array[String],
1221
1222
  ending_before: Time,
@@ -1234,6 +1235,8 @@ module MetronomeSDK
1234
1235
  class Override < MetronomeSDK::Internal::Type::BaseModel
1235
1236
  attr_accessor id: String
1236
1237
 
1238
+ attr_accessor created_at: Time
1239
+
1237
1240
  attr_accessor starting_at: Time
1238
1241
 
1239
1242
  attr_reader applicable_product_tags: ::Array[String]?
@@ -1298,6 +1301,7 @@ module MetronomeSDK
1298
1301
 
1299
1302
  def initialize: (
1300
1303
  id: String,
1304
+ created_at: Time,
1301
1305
  starting_at: Time,
1302
1306
  ?applicable_product_tags: ::Array[String],
1303
1307
  ?ending_before: Time,
@@ -1315,6 +1319,7 @@ module MetronomeSDK
1315
1319
 
1316
1320
  def to_hash: -> {
1317
1321
  id: String,
1322
+ created_at: Time,
1318
1323
  starting_at: Time,
1319
1324
  applicable_product_tags: ::Array[String],
1320
1325
  ending_before: Time,
@@ -1338,8 +1343,7 @@ module MetronomeSDK
1338
1343
  pricing_group_values: ::Hash[Symbol, String],
1339
1344
  product_id: String,
1340
1345
  product_tags: ::Array[String],
1341
- recurring_commit_ids: ::Array[String],
1342
- recurring_credit_ids: ::Array[String]
1346
+ recurring_commit_ids: ::Array[String]
1343
1347
  }
1344
1348
 
1345
1349
  class OverrideSpecifier < MetronomeSDK::Internal::Type::BaseModel
@@ -1377,10 +1381,6 @@ module MetronomeSDK
1377
1381
 
1378
1382
  def recurring_commit_ids=: (::Array[String]) -> ::Array[String]
1379
1383
 
1380
- attr_reader recurring_credit_ids: ::Array[String]?
1381
-
1382
- def recurring_credit_ids=: (::Array[String]) -> ::Array[String]
1383
-
1384
1384
  def initialize: (
1385
1385
  ?billing_frequency: MetronomeSDK::Models::ContractV2::Override::OverrideSpecifier::billing_frequency,
1386
1386
  ?commit_ids: ::Array[String],
@@ -1388,8 +1388,7 @@ module MetronomeSDK
1388
1388
  ?pricing_group_values: ::Hash[Symbol, String],
1389
1389
  ?product_id: String,
1390
1390
  ?product_tags: ::Array[String],
1391
- ?recurring_commit_ids: ::Array[String],
1392
- ?recurring_credit_ids: ::Array[String]
1391
+ ?recurring_commit_ids: ::Array[String]
1393
1392
  ) -> void
1394
1393
 
1395
1394
  def to_hash: -> {
@@ -1399,8 +1398,7 @@ module MetronomeSDK
1399
1398
  pricing_group_values: ::Hash[Symbol, String],
1400
1399
  product_id: String,
1401
1400
  product_tags: ::Array[String],
1402
- recurring_commit_ids: ::Array[String],
1403
- recurring_credit_ids: ::Array[String]
1401
+ recurring_commit_ids: ::Array[String]
1404
1402
  }
1405
1403
 
1406
1404
  type billing_frequency = :MONTHLY | :QUARTERLY | :ANNUAL | :WEEKLY
@@ -1653,6 +1651,7 @@ module MetronomeSDK
1653
1651
  applicable_contract_ids: ::Array[String],
1654
1652
  applicable_product_ids: ::Array[String],
1655
1653
  applicable_product_tags: ::Array[String],
1654
+ archived_at: Time,
1656
1655
  balance: Float,
1657
1656
  contract: MetronomeSDK::ContractV2::Credit::Contract,
1658
1657
  created_at: Time,
@@ -1664,6 +1663,7 @@ module MetronomeSDK
1664
1663
  netsuite_sales_order_id: String,
1665
1664
  priority: Float,
1666
1665
  recurring_credit_id: String,
1666
+ rolled_over_from: MetronomeSDK::ContractV2::Credit::RolledOverFrom,
1667
1667
  salesforce_opportunity_id: String,
1668
1668
  specifiers: ::Array[MetronomeSDK::CommitSpecifier],
1669
1669
  subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
@@ -1694,6 +1694,10 @@ module MetronomeSDK
1694
1694
 
1695
1695
  def applicable_product_tags=: (::Array[String]) -> ::Array[String]
1696
1696
 
1697
+ attr_reader archived_at: Time?
1698
+
1699
+ def archived_at=: (Time) -> Time
1700
+
1697
1701
  attr_reader balance: Float?
1698
1702
 
1699
1703
  def balance=: (Float) -> Float
@@ -1744,6 +1748,12 @@ module MetronomeSDK
1744
1748
 
1745
1749
  def recurring_credit_id=: (String) -> String
1746
1750
 
1751
+ attr_reader rolled_over_from: MetronomeSDK::ContractV2::Credit::RolledOverFrom?
1752
+
1753
+ def rolled_over_from=: (
1754
+ MetronomeSDK::ContractV2::Credit::RolledOverFrom
1755
+ ) -> MetronomeSDK::ContractV2::Credit::RolledOverFrom
1756
+
1747
1757
  attr_reader salesforce_opportunity_id: String?
1748
1758
 
1749
1759
  def salesforce_opportunity_id=: (String) -> String
@@ -1768,6 +1778,7 @@ module MetronomeSDK
1768
1778
  ?applicable_contract_ids: ::Array[String],
1769
1779
  ?applicable_product_ids: ::Array[String],
1770
1780
  ?applicable_product_tags: ::Array[String],
1781
+ ?archived_at: Time,
1771
1782
  ?balance: Float,
1772
1783
  ?contract: MetronomeSDK::ContractV2::Credit::Contract,
1773
1784
  ?created_at: Time,
@@ -1779,6 +1790,7 @@ module MetronomeSDK
1779
1790
  ?netsuite_sales_order_id: String,
1780
1791
  ?priority: Float,
1781
1792
  ?recurring_credit_id: String,
1793
+ ?rolled_over_from: MetronomeSDK::ContractV2::Credit::RolledOverFrom,
1782
1794
  ?salesforce_opportunity_id: String,
1783
1795
  ?specifiers: ::Array[MetronomeSDK::CommitSpecifier],
1784
1796
  ?subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
@@ -1792,6 +1804,7 @@ module MetronomeSDK
1792
1804
  applicable_contract_ids: ::Array[String],
1793
1805
  applicable_product_ids: ::Array[String],
1794
1806
  applicable_product_tags: ::Array[String],
1807
+ archived_at: Time,
1795
1808
  balance: Float,
1796
1809
  contract: MetronomeSDK::ContractV2::Credit::Contract,
1797
1810
  created_at: Time,
@@ -1803,6 +1816,7 @@ module MetronomeSDK
1803
1816
  netsuite_sales_order_id: String,
1804
1817
  priority: Float,
1805
1818
  recurring_credit_id: String,
1819
+ rolled_over_from: MetronomeSDK::ContractV2::Credit::RolledOverFrom,
1806
1820
  salesforce_opportunity_id: String,
1807
1821
  specifiers: ::Array[MetronomeSDK::CommitSpecifier],
1808
1822
  subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
@@ -1848,6 +1862,7 @@ module MetronomeSDK
1848
1862
  | MetronomeSDK::ContractV2::Credit::Ledger::CreditCreditedLedgerEntry
1849
1863
  | MetronomeSDK::ContractV2::Credit::Ledger::CreditManualLedgerEntry
1850
1864
  | MetronomeSDK::ContractV2::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry
1865
+ | MetronomeSDK::ContractV2::Credit::Ledger::CreditRolloverLedgerEntry
1851
1866
 
1852
1867
  module Ledger
1853
1868
  extend MetronomeSDK::Internal::Type::Union
@@ -2182,8 +2197,67 @@ module MetronomeSDK
2182
2197
  end
2183
2198
  end
2184
2199
 
2200
+ type credit_rollover_ledger_entry =
2201
+ {
2202
+ amount: Float,
2203
+ new_contract_id: String,
2204
+ segment_id: String,
2205
+ timestamp: Time,
2206
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditRolloverLedgerEntry::type_
2207
+ }
2208
+
2209
+ class CreditRolloverLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
2210
+ attr_accessor amount: Float
2211
+
2212
+ attr_accessor new_contract_id: String
2213
+
2214
+ attr_accessor segment_id: String
2215
+
2216
+ attr_accessor timestamp: Time
2217
+
2218
+ attr_accessor type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditRolloverLedgerEntry::type_
2219
+
2220
+ def initialize: (
2221
+ amount: Float,
2222
+ new_contract_id: String,
2223
+ segment_id: String,
2224
+ timestamp: Time,
2225
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditRolloverLedgerEntry::type_
2226
+ ) -> void
2227
+
2228
+ def to_hash: -> {
2229
+ amount: Float,
2230
+ new_contract_id: String,
2231
+ segment_id: String,
2232
+ timestamp: Time,
2233
+ type: MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditRolloverLedgerEntry::type_
2234
+ }
2235
+
2236
+ type type_ = :CREDIT_ROLLOVER
2237
+
2238
+ module Type
2239
+ extend MetronomeSDK::Internal::Type::Enum
2240
+
2241
+ CREDIT_ROLLOVER: :CREDIT_ROLLOVER
2242
+
2243
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Credit::Ledger::CreditRolloverLedgerEntry::type_]
2244
+ end
2245
+ end
2246
+
2185
2247
  def self?.variants: -> ::Array[MetronomeSDK::Models::ContractV2::Credit::ledger]
2186
2248
  end
2249
+
2250
+ type rolled_over_from = { contract_id: String, credit_id: String }
2251
+
2252
+ class RolledOverFrom < MetronomeSDK::Internal::Type::BaseModel
2253
+ attr_accessor contract_id: String
2254
+
2255
+ attr_accessor credit_id: String
2256
+
2257
+ def initialize: (contract_id: String, credit_id: String) -> void
2258
+
2259
+ def to_hash: -> { contract_id: String, credit_id: String }
2260
+ end
2187
2261
  end
2188
2262
 
2189
2263
  type customer_billing_provider_configuration =
@@ -3150,6 +3224,317 @@ module MetronomeSDK
3150
3224
 
3151
3225
  def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::scheduled_charges_on_usage_invoices]
3152
3226
  end
3227
+
3228
+ type subscription =
3229
+ {
3230
+ billing_periods: MetronomeSDK::ContractV2::Subscription::BillingPeriods,
3231
+ collection_schedule: MetronomeSDK::Models::ContractV2::Subscription::collection_schedule,
3232
+ proration: MetronomeSDK::ContractV2::Subscription::Proration,
3233
+ quantity_management_mode: MetronomeSDK::Models::ContractV2::Subscription::quantity_management_mode,
3234
+ quantity_schedule: ::Array[MetronomeSDK::ContractV2::Subscription::QuantitySchedule],
3235
+ starting_at: Time,
3236
+ subscription_rate: MetronomeSDK::ContractV2::Subscription::SubscriptionRate,
3237
+ id: String,
3238
+ custom_fields: ::Hash[Symbol, String],
3239
+ description: String,
3240
+ ending_before: Time,
3241
+ fiat_credit_type_id: String,
3242
+ name: String,
3243
+ seat_config: MetronomeSDK::ContractV2::Subscription::SeatConfig
3244
+ }
3245
+
3246
+ class Subscription < MetronomeSDK::Internal::Type::BaseModel
3247
+ attr_accessor billing_periods: MetronomeSDK::ContractV2::Subscription::BillingPeriods
3248
+
3249
+ attr_accessor collection_schedule: MetronomeSDK::Models::ContractV2::Subscription::collection_schedule
3250
+
3251
+ attr_accessor proration: MetronomeSDK::ContractV2::Subscription::Proration
3252
+
3253
+ attr_accessor quantity_management_mode: MetronomeSDK::Models::ContractV2::Subscription::quantity_management_mode
3254
+
3255
+ attr_accessor quantity_schedule: ::Array[MetronomeSDK::ContractV2::Subscription::QuantitySchedule]
3256
+
3257
+ attr_accessor starting_at: Time
3258
+
3259
+ attr_accessor subscription_rate: MetronomeSDK::ContractV2::Subscription::SubscriptionRate
3260
+
3261
+ attr_reader id: String?
3262
+
3263
+ def id=: (String) -> String
3264
+
3265
+ attr_reader custom_fields: ::Hash[Symbol, String]?
3266
+
3267
+ def custom_fields=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
3268
+
3269
+ attr_reader description: String?
3270
+
3271
+ def description=: (String) -> String
3272
+
3273
+ attr_reader ending_before: Time?
3274
+
3275
+ def ending_before=: (Time) -> Time
3276
+
3277
+ attr_reader fiat_credit_type_id: String?
3278
+
3279
+ def fiat_credit_type_id=: (String) -> String
3280
+
3281
+ attr_reader name: String?
3282
+
3283
+ def name=: (String) -> String
3284
+
3285
+ attr_reader seat_config: MetronomeSDK::ContractV2::Subscription::SeatConfig?
3286
+
3287
+ def seat_config=: (
3288
+ MetronomeSDK::ContractV2::Subscription::SeatConfig
3289
+ ) -> MetronomeSDK::ContractV2::Subscription::SeatConfig
3290
+
3291
+ def initialize: (
3292
+ billing_periods: MetronomeSDK::ContractV2::Subscription::BillingPeriods,
3293
+ collection_schedule: MetronomeSDK::Models::ContractV2::Subscription::collection_schedule,
3294
+ proration: MetronomeSDK::ContractV2::Subscription::Proration,
3295
+ quantity_management_mode: MetronomeSDK::Models::ContractV2::Subscription::quantity_management_mode,
3296
+ quantity_schedule: ::Array[MetronomeSDK::ContractV2::Subscription::QuantitySchedule],
3297
+ starting_at: Time,
3298
+ subscription_rate: MetronomeSDK::ContractV2::Subscription::SubscriptionRate,
3299
+ ?id: String,
3300
+ ?custom_fields: ::Hash[Symbol, String],
3301
+ ?description: String,
3302
+ ?ending_before: Time,
3303
+ ?fiat_credit_type_id: String,
3304
+ ?name: String,
3305
+ ?seat_config: MetronomeSDK::ContractV2::Subscription::SeatConfig
3306
+ ) -> void
3307
+
3308
+ def to_hash: -> {
3309
+ billing_periods: MetronomeSDK::ContractV2::Subscription::BillingPeriods,
3310
+ collection_schedule: MetronomeSDK::Models::ContractV2::Subscription::collection_schedule,
3311
+ proration: MetronomeSDK::ContractV2::Subscription::Proration,
3312
+ quantity_management_mode: MetronomeSDK::Models::ContractV2::Subscription::quantity_management_mode,
3313
+ quantity_schedule: ::Array[MetronomeSDK::ContractV2::Subscription::QuantitySchedule],
3314
+ starting_at: Time,
3315
+ subscription_rate: MetronomeSDK::ContractV2::Subscription::SubscriptionRate,
3316
+ id: String,
3317
+ custom_fields: ::Hash[Symbol, String],
3318
+ description: String,
3319
+ ending_before: Time,
3320
+ fiat_credit_type_id: String,
3321
+ name: String,
3322
+ seat_config: MetronomeSDK::ContractV2::Subscription::SeatConfig
3323
+ }
3324
+
3325
+ type billing_periods =
3326
+ {
3327
+ current: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Current,
3328
+ next_: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Next,
3329
+ previous: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Previous
3330
+ }
3331
+
3332
+ class BillingPeriods < MetronomeSDK::Internal::Type::BaseModel
3333
+ attr_reader current: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Current?
3334
+
3335
+ def current=: (
3336
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::Current
3337
+ ) -> MetronomeSDK::ContractV2::Subscription::BillingPeriods::Current
3338
+
3339
+ attr_reader next_: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Next?
3340
+
3341
+ def next_=: (
3342
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::Next
3343
+ ) -> MetronomeSDK::ContractV2::Subscription::BillingPeriods::Next
3344
+
3345
+ attr_reader previous: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Previous?
3346
+
3347
+ def previous=: (
3348
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::Previous
3349
+ ) -> MetronomeSDK::ContractV2::Subscription::BillingPeriods::Previous
3350
+
3351
+ def initialize: (
3352
+ ?current: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Current,
3353
+ ?next_: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Next,
3354
+ ?previous: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Previous
3355
+ ) -> void
3356
+
3357
+ def to_hash: -> {
3358
+ current: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Current,
3359
+ next_: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Next,
3360
+ previous: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Previous
3361
+ }
3362
+
3363
+ type current = { ending_before: Time, starting_at: Time }
3364
+
3365
+ class Current < MetronomeSDK::Internal::Type::BaseModel
3366
+ attr_accessor ending_before: Time
3367
+
3368
+ attr_accessor starting_at: Time
3369
+
3370
+ def initialize: (ending_before: Time, starting_at: Time) -> void
3371
+
3372
+ def to_hash: -> { ending_before: Time, starting_at: Time }
3373
+ end
3374
+
3375
+ type next_ = { ending_before: Time, starting_at: Time }
3376
+
3377
+ class Next < MetronomeSDK::Internal::Type::BaseModel
3378
+ attr_accessor ending_before: Time
3379
+
3380
+ attr_accessor starting_at: Time
3381
+
3382
+ def initialize: (ending_before: Time, starting_at: Time) -> void
3383
+
3384
+ def to_hash: -> { ending_before: Time, starting_at: Time }
3385
+ end
3386
+
3387
+ type previous = { ending_before: Time, starting_at: Time }
3388
+
3389
+ class Previous < MetronomeSDK::Internal::Type::BaseModel
3390
+ attr_accessor ending_before: Time
3391
+
3392
+ attr_accessor starting_at: Time
3393
+
3394
+ def initialize: (ending_before: Time, starting_at: Time) -> void
3395
+
3396
+ def to_hash: -> { ending_before: Time, starting_at: Time }
3397
+ end
3398
+ end
3399
+
3400
+ type collection_schedule = :ADVANCE | :ARREARS
3401
+
3402
+ module CollectionSchedule
3403
+ extend MetronomeSDK::Internal::Type::Enum
3404
+
3405
+ ADVANCE: :ADVANCE
3406
+ ARREARS: :ARREARS
3407
+
3408
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Subscription::collection_schedule]
3409
+ end
3410
+
3411
+ type proration =
3412
+ {
3413
+ invoice_behavior: MetronomeSDK::Models::ContractV2::Subscription::Proration::invoice_behavior,
3414
+ is_prorated: bool
3415
+ }
3416
+
3417
+ class Proration < MetronomeSDK::Internal::Type::BaseModel
3418
+ attr_accessor invoice_behavior: MetronomeSDK::Models::ContractV2::Subscription::Proration::invoice_behavior
3419
+
3420
+ attr_accessor is_prorated: bool
3421
+
3422
+ def initialize: (
3423
+ invoice_behavior: MetronomeSDK::Models::ContractV2::Subscription::Proration::invoice_behavior,
3424
+ is_prorated: bool
3425
+ ) -> void
3426
+
3427
+ def to_hash: -> {
3428
+ invoice_behavior: MetronomeSDK::Models::ContractV2::Subscription::Proration::invoice_behavior,
3429
+ is_prorated: bool
3430
+ }
3431
+
3432
+ type invoice_behavior =
3433
+ :BILL_IMMEDIATELY | :BILL_ON_NEXT_COLLECTION_DATE
3434
+
3435
+ module InvoiceBehavior
3436
+ extend MetronomeSDK::Internal::Type::Enum
3437
+
3438
+ BILL_IMMEDIATELY: :BILL_IMMEDIATELY
3439
+ BILL_ON_NEXT_COLLECTION_DATE: :BILL_ON_NEXT_COLLECTION_DATE
3440
+
3441
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Subscription::Proration::invoice_behavior]
3442
+ end
3443
+ end
3444
+
3445
+ type quantity_management_mode = :SEAT_BASED | :QUANTITY_ONLY
3446
+
3447
+ module QuantityManagementMode
3448
+ extend MetronomeSDK::Internal::Type::Enum
3449
+
3450
+ SEAT_BASED: :SEAT_BASED
3451
+ QUANTITY_ONLY: :QUANTITY_ONLY
3452
+
3453
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Subscription::quantity_management_mode]
3454
+ end
3455
+
3456
+ type quantity_schedule =
3457
+ { quantity: Float, starting_at: Time, ending_before: Time }
3458
+
3459
+ class QuantitySchedule < MetronomeSDK::Internal::Type::BaseModel
3460
+ attr_accessor quantity: Float
3461
+
3462
+ attr_accessor starting_at: Time
3463
+
3464
+ attr_reader ending_before: Time?
3465
+
3466
+ def ending_before=: (Time) -> Time
3467
+
3468
+ def initialize: (
3469
+ quantity: Float,
3470
+ starting_at: Time,
3471
+ ?ending_before: Time
3472
+ ) -> void
3473
+
3474
+ def to_hash: -> {
3475
+ quantity: Float,
3476
+ starting_at: Time,
3477
+ ending_before: Time
3478
+ }
3479
+ end
3480
+
3481
+ type subscription_rate =
3482
+ {
3483
+ billing_frequency: MetronomeSDK::Models::ContractV2::Subscription::SubscriptionRate::billing_frequency,
3484
+ product: MetronomeSDK::ContractV2::Subscription::SubscriptionRate::Product
3485
+ }
3486
+
3487
+ class SubscriptionRate < MetronomeSDK::Internal::Type::BaseModel
3488
+ attr_accessor billing_frequency: MetronomeSDK::Models::ContractV2::Subscription::SubscriptionRate::billing_frequency
3489
+
3490
+ attr_accessor product: MetronomeSDK::ContractV2::Subscription::SubscriptionRate::Product
3491
+
3492
+ def initialize: (
3493
+ billing_frequency: MetronomeSDK::Models::ContractV2::Subscription::SubscriptionRate::billing_frequency,
3494
+ product: MetronomeSDK::ContractV2::Subscription::SubscriptionRate::Product
3495
+ ) -> void
3496
+
3497
+ def to_hash: -> {
3498
+ billing_frequency: MetronomeSDK::Models::ContractV2::Subscription::SubscriptionRate::billing_frequency,
3499
+ product: MetronomeSDK::ContractV2::Subscription::SubscriptionRate::Product
3500
+ }
3501
+
3502
+ type billing_frequency = :MONTHLY | :QUARTERLY | :ANNUAL | :WEEKLY
3503
+
3504
+ module BillingFrequency
3505
+ extend MetronomeSDK::Internal::Type::Enum
3506
+
3507
+ MONTHLY: :MONTHLY
3508
+ QUARTERLY: :QUARTERLY
3509
+ ANNUAL: :ANNUAL
3510
+ WEEKLY: :WEEKLY
3511
+
3512
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Subscription::SubscriptionRate::billing_frequency]
3513
+ end
3514
+
3515
+ type product = { id: String, name: String }
3516
+
3517
+ class Product < MetronomeSDK::Internal::Type::BaseModel
3518
+ attr_accessor id: String
3519
+
3520
+ attr_accessor name: String
3521
+
3522
+ def initialize: (id: String, name: String) -> void
3523
+
3524
+ def to_hash: -> { id: String, name: String }
3525
+ end
3526
+ end
3527
+
3528
+ type seat_config = { seat_group_key: String }
3529
+
3530
+ class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
3531
+ attr_accessor seat_group_key: String
3532
+
3533
+ def initialize: (seat_group_key: String) -> void
3534
+
3535
+ def to_hash: -> { seat_group_key: String }
3536
+ end
3537
+ end
3153
3538
  end
3154
3539
  end
3155
3540
  end
@@ -20,6 +20,7 @@ module MetronomeSDK
20
20
  priority: Float,
21
21
  rate_type: MetronomeSDK::Models::Credit::rate_type,
22
22
  recurring_credit_id: String,
23
+ rolled_over_from: MetronomeSDK::Credit::RolledOverFrom,
23
24
  salesforce_opportunity_id: String,
24
25
  specifiers: ::Array[MetronomeSDK::CommitSpecifier],
25
26
  subscription_config: MetronomeSDK::Credit::SubscriptionConfig,
@@ -103,6 +104,12 @@ module MetronomeSDK
103
104
 
104
105
  def recurring_credit_id=: (String) -> String
105
106
 
107
+ attr_reader rolled_over_from: MetronomeSDK::Credit::RolledOverFrom?
108
+
109
+ def rolled_over_from=: (
110
+ MetronomeSDK::Credit::RolledOverFrom
111
+ ) -> MetronomeSDK::Credit::RolledOverFrom
112
+
106
113
  attr_reader salesforce_opportunity_id: String?
107
114
 
108
115
  def salesforce_opportunity_id=: (String) -> String
@@ -142,6 +149,7 @@ module MetronomeSDK
142
149
  ?priority: Float,
143
150
  ?rate_type: MetronomeSDK::Models::Credit::rate_type,
144
151
  ?recurring_credit_id: String,
152
+ ?rolled_over_from: MetronomeSDK::Credit::RolledOverFrom,
145
153
  ?salesforce_opportunity_id: String,
146
154
  ?specifiers: ::Array[MetronomeSDK::CommitSpecifier],
147
155
  ?subscription_config: MetronomeSDK::Credit::SubscriptionConfig,
@@ -167,6 +175,7 @@ module MetronomeSDK
167
175
  priority: Float,
168
176
  rate_type: MetronomeSDK::Models::Credit::rate_type,
169
177
  recurring_credit_id: String,
178
+ rolled_over_from: MetronomeSDK::Credit::RolledOverFrom,
170
179
  salesforce_opportunity_id: String,
171
180
  specifiers: ::Array[MetronomeSDK::CommitSpecifier],
172
181
  subscription_config: MetronomeSDK::Credit::SubscriptionConfig,
@@ -213,6 +222,7 @@ module MetronomeSDK
213
222
  | MetronomeSDK::Credit::Ledger::CreditCreditedLedgerEntry
214
223
  | MetronomeSDK::Credit::Ledger::CreditManualLedgerEntry
215
224
  | MetronomeSDK::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry
225
+ | MetronomeSDK::Credit::Ledger::CreditRolloverLedgerEntry
216
226
 
217
227
  module Ledger
218
228
  extend MetronomeSDK::Internal::Type::Union
@@ -547,6 +557,53 @@ module MetronomeSDK
547
557
  end
548
558
  end
549
559
 
560
+ type credit_rollover_ledger_entry =
561
+ {
562
+ amount: Float,
563
+ new_contract_id: String,
564
+ segment_id: String,
565
+ timestamp: Time,
566
+ type: MetronomeSDK::Models::Credit::Ledger::CreditRolloverLedgerEntry::type_
567
+ }
568
+
569
+ class CreditRolloverLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
570
+ attr_accessor amount: Float
571
+
572
+ attr_accessor new_contract_id: String
573
+
574
+ attr_accessor segment_id: String
575
+
576
+ attr_accessor timestamp: Time
577
+
578
+ attr_accessor type: MetronomeSDK::Models::Credit::Ledger::CreditRolloverLedgerEntry::type_
579
+
580
+ def initialize: (
581
+ amount: Float,
582
+ new_contract_id: String,
583
+ segment_id: String,
584
+ timestamp: Time,
585
+ type: MetronomeSDK::Models::Credit::Ledger::CreditRolloverLedgerEntry::type_
586
+ ) -> void
587
+
588
+ def to_hash: -> {
589
+ amount: Float,
590
+ new_contract_id: String,
591
+ segment_id: String,
592
+ timestamp: Time,
593
+ type: MetronomeSDK::Models::Credit::Ledger::CreditRolloverLedgerEntry::type_
594
+ }
595
+
596
+ type type_ = :CREDIT_ROLLOVER
597
+
598
+ module Type
599
+ extend MetronomeSDK::Internal::Type::Enum
600
+
601
+ CREDIT_ROLLOVER: :CREDIT_ROLLOVER
602
+
603
+ def self?.values: -> ::Array[MetronomeSDK::Models::Credit::Ledger::CreditRolloverLedgerEntry::type_]
604
+ end
605
+ end
606
+
550
607
  def self?.variants: -> ::Array[MetronomeSDK::Models::Credit::ledger]
551
608
  end
552
609
 
@@ -561,6 +618,18 @@ module MetronomeSDK
561
618
  def self?.values: -> ::Array[MetronomeSDK::Models::Credit::rate_type]
562
619
  end
563
620
 
621
+ type rolled_over_from = { contract_id: String, credit_id: String }
622
+
623
+ class RolledOverFrom < MetronomeSDK::Internal::Type::BaseModel
624
+ attr_accessor contract_id: String
625
+
626
+ attr_accessor credit_id: String
627
+
628
+ def initialize: (contract_id: String, credit_id: String) -> void
629
+
630
+ def to_hash: -> { contract_id: String, credit_id: String }
631
+ end
632
+
564
633
  type subscription_config =
565
634
  {
566
635
  allocation: MetronomeSDK::Models::Credit::SubscriptionConfig::allocation,