metronome-sdk 0.1.0 → 0.3.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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +39 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +1 -1
  5. data/lib/metronome_sdk/internal/type/array_of.rb +1 -0
  6. data/lib/metronome_sdk/internal/type/base_model.rb +3 -1
  7. data/lib/metronome_sdk/internal/type/converter.rb +27 -0
  8. data/lib/metronome_sdk/internal/type/hash_of.rb +1 -0
  9. data/lib/metronome_sdk/internal/type/union.rb +9 -7
  10. data/lib/metronome_sdk/models/commit.rb +35 -5
  11. data/lib/metronome_sdk/models/contract_without_amendments.rb +128 -2
  12. data/lib/metronome_sdk/models/credit.rb +21 -3
  13. data/lib/metronome_sdk/models/schedule_point_in_time.rb +14 -1
  14. data/lib/metronome_sdk/models/v1/alert_create_params.rb +9 -11
  15. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +54 -5
  16. data/lib/metronome_sdk/models/v1/contract_create_params.rb +219 -23
  17. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +8 -1
  18. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +10 -1
  19. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +29 -1
  20. data/lib/metronome_sdk/models/v1/customers/invoice.rb +13 -1
  21. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  22. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +12 -1
  23. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +12 -1
  24. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +259 -37
  25. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +602 -15
  26. data/lib/metronome_sdk/models/v2/contract_list_response.rb +194 -17
  27. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +194 -17
  28. data/lib/metronome_sdk/resources/v1/alerts.rb +2 -2
  29. data/lib/metronome_sdk/resources/v1/contracts/products.rb +3 -1
  30. data/lib/metronome_sdk/resources/v2/contracts.rb +6 -2
  31. data/lib/metronome_sdk/version.rb +1 -1
  32. data/rbi/metronome_sdk/internal/transport/base_client.rbi +1 -1
  33. data/rbi/metronome_sdk/internal/type/converter.rbi +58 -0
  34. data/rbi/metronome_sdk/internal/type/union.rbi +9 -2
  35. data/rbi/metronome_sdk/models/commit.rbi +89 -15
  36. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +304 -6
  37. data/rbi/metronome_sdk/models/credit.rbi +54 -9
  38. data/rbi/metronome_sdk/models/schedule_point_in_time.rbi +17 -1
  39. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +16 -18
  40. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +76 -3
  41. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +433 -26
  42. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +9 -0
  43. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +13 -0
  44. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +60 -0
  45. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +16 -0
  46. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  47. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +14 -0
  48. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +14 -0
  49. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +481 -38
  50. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1565 -42
  51. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +431 -37
  52. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +431 -37
  53. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -5
  54. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +2 -0
  55. data/rbi/metronome_sdk/resources/v2/contracts.rbi +12 -0
  56. data/sig/metronome_sdk/internal/transport/base_client.rbs +1 -1
  57. data/sig/metronome_sdk/internal/type/converter.rbs +17 -0
  58. data/sig/metronome_sdk/internal/type/union.rbs +2 -2
  59. data/sig/metronome_sdk/models/commit.rbs +50 -15
  60. data/sig/metronome_sdk/models/contract_without_amendments.rbs +120 -6
  61. data/sig/metronome_sdk/models/credit.rbs +30 -9
  62. data/sig/metronome_sdk/models/schedule_point_in_time.rbs +7 -0
  63. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +9 -9
  64. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +38 -3
  65. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +168 -6
  66. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +7 -0
  67. data/sig/metronome_sdk/models/v1/customers/commit_create_params.rbs +7 -0
  68. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +21 -0
  69. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +5 -0
  70. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  71. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +5 -0
  72. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +5 -0
  73. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +178 -6
  74. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +629 -6
  75. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +205 -30
  76. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +205 -30
  77. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -1
  78. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +1 -0
  79. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  80. metadata +2 -2
@@ -860,6 +860,12 @@ module MetronomeSDK
860
860
  end
861
861
  attr_accessor :type
862
862
 
863
+ sig { returns(T.nilable(String)) }
864
+ attr_reader :contract_id
865
+
866
+ sig { params(contract_id: String).void }
867
+ attr_writer :contract_id
868
+
863
869
  sig do
864
870
  params(
865
871
  amount: Float,
@@ -867,10 +873,18 @@ module MetronomeSDK
867
873
  segment_id: String,
868
874
  timestamp: Time,
869
875
  type:
870
- MetronomeSDK::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry::Type::OrSymbol
876
+ MetronomeSDK::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry::Type::OrSymbol,
877
+ contract_id: String
871
878
  ).returns(T.attached_class)
872
879
  end
873
- def self.new(amount:, invoice_id:, segment_id:, timestamp:, type:)
880
+ def self.new(
881
+ amount:,
882
+ invoice_id:,
883
+ segment_id:,
884
+ timestamp:,
885
+ type:,
886
+ contract_id: nil
887
+ )
874
888
  end
875
889
 
876
890
  sig do
@@ -881,7 +895,8 @@ module MetronomeSDK
881
895
  segment_id: String,
882
896
  timestamp: Time,
883
897
  type:
884
- MetronomeSDK::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry::Type::TaggedSymbol
898
+ MetronomeSDK::Commit::Ledger::PrepaidCommitAutomatedInvoiceDeductionLedgerEntry::Type::TaggedSymbol,
899
+ contract_id: String
885
900
  }
886
901
  )
887
902
  end
@@ -1119,6 +1134,12 @@ module MetronomeSDK
1119
1134
  end
1120
1135
  attr_accessor :type
1121
1136
 
1137
+ sig { returns(T.nilable(String)) }
1138
+ attr_reader :contract_id
1139
+
1140
+ sig { params(contract_id: String).void }
1141
+ attr_writer :contract_id
1142
+
1122
1143
  sig do
1123
1144
  params(
1124
1145
  amount: Float,
@@ -1126,10 +1147,18 @@ module MetronomeSDK
1126
1147
  segment_id: String,
1127
1148
  timestamp: Time,
1128
1149
  type:
1129
- MetronomeSDK::Commit::Ledger::PrepaidCommitCanceledLedgerEntry::Type::OrSymbol
1150
+ MetronomeSDK::Commit::Ledger::PrepaidCommitCanceledLedgerEntry::Type::OrSymbol,
1151
+ contract_id: String
1130
1152
  ).returns(T.attached_class)
1131
1153
  end
1132
- def self.new(amount:, invoice_id:, segment_id:, timestamp:, type:)
1154
+ def self.new(
1155
+ amount:,
1156
+ invoice_id:,
1157
+ segment_id:,
1158
+ timestamp:,
1159
+ type:,
1160
+ contract_id: nil
1161
+ )
1133
1162
  end
1134
1163
 
1135
1164
  sig do
@@ -1140,7 +1169,8 @@ module MetronomeSDK
1140
1169
  segment_id: String,
1141
1170
  timestamp: Time,
1142
1171
  type:
1143
- MetronomeSDK::Commit::Ledger::PrepaidCommitCanceledLedgerEntry::Type::TaggedSymbol
1172
+ MetronomeSDK::Commit::Ledger::PrepaidCommitCanceledLedgerEntry::Type::TaggedSymbol,
1173
+ contract_id: String
1144
1174
  }
1145
1175
  )
1146
1176
  end
@@ -1205,6 +1235,12 @@ module MetronomeSDK
1205
1235
  end
1206
1236
  attr_accessor :type
1207
1237
 
1238
+ sig { returns(T.nilable(String)) }
1239
+ attr_reader :contract_id
1240
+
1241
+ sig { params(contract_id: String).void }
1242
+ attr_writer :contract_id
1243
+
1208
1244
  sig do
1209
1245
  params(
1210
1246
  amount: Float,
@@ -1212,10 +1248,18 @@ module MetronomeSDK
1212
1248
  segment_id: String,
1213
1249
  timestamp: Time,
1214
1250
  type:
1215
- MetronomeSDK::Commit::Ledger::PrepaidCommitCreditedLedgerEntry::Type::OrSymbol
1251
+ MetronomeSDK::Commit::Ledger::PrepaidCommitCreditedLedgerEntry::Type::OrSymbol,
1252
+ contract_id: String
1216
1253
  ).returns(T.attached_class)
1217
1254
  end
1218
- def self.new(amount:, invoice_id:, segment_id:, timestamp:, type:)
1255
+ def self.new(
1256
+ amount:,
1257
+ invoice_id:,
1258
+ segment_id:,
1259
+ timestamp:,
1260
+ type:,
1261
+ contract_id: nil
1262
+ )
1219
1263
  end
1220
1264
 
1221
1265
  sig do
@@ -1226,7 +1270,8 @@ module MetronomeSDK
1226
1270
  segment_id: String,
1227
1271
  timestamp: Time,
1228
1272
  type:
1229
- MetronomeSDK::Commit::Ledger::PrepaidCommitCreditedLedgerEntry::Type::TaggedSymbol
1273
+ MetronomeSDK::Commit::Ledger::PrepaidCommitCreditedLedgerEntry::Type::TaggedSymbol,
1274
+ contract_id: String
1230
1275
  }
1231
1276
  )
1232
1277
  end
@@ -1448,6 +1493,12 @@ module MetronomeSDK
1448
1493
  end
1449
1494
  attr_accessor :type
1450
1495
 
1496
+ sig { returns(T.nilable(String)) }
1497
+ attr_reader :contract_id
1498
+
1499
+ sig { params(contract_id: String).void }
1500
+ attr_writer :contract_id
1501
+
1451
1502
  sig do
1452
1503
  params(
1453
1504
  amount: Float,
@@ -1455,10 +1506,18 @@ module MetronomeSDK
1455
1506
  segment_id: String,
1456
1507
  timestamp: Time,
1457
1508
  type:
1458
- MetronomeSDK::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry::Type::OrSymbol
1509
+ MetronomeSDK::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry::Type::OrSymbol,
1510
+ contract_id: String
1459
1511
  ).returns(T.attached_class)
1460
1512
  end
1461
- def self.new(amount:, invoice_id:, segment_id:, timestamp:, type:)
1513
+ def self.new(
1514
+ amount:,
1515
+ invoice_id:,
1516
+ segment_id:,
1517
+ timestamp:,
1518
+ type:,
1519
+ contract_id: nil
1520
+ )
1462
1521
  end
1463
1522
 
1464
1523
  sig do
@@ -1469,7 +1528,8 @@ module MetronomeSDK
1469
1528
  segment_id: String,
1470
1529
  timestamp: Time,
1471
1530
  type:
1472
- MetronomeSDK::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry::Type::TaggedSymbol
1531
+ MetronomeSDK::Commit::Ledger::PostpaidCommitAutomatedInvoiceDeductionLedgerEntry::Type::TaggedSymbol,
1532
+ contract_id: String
1473
1533
  }
1474
1534
  )
1475
1535
  end
@@ -1623,16 +1683,29 @@ module MetronomeSDK
1623
1683
  end
1624
1684
  attr_accessor :type
1625
1685
 
1686
+ sig { returns(T.nilable(String)) }
1687
+ attr_reader :contract_id
1688
+
1689
+ sig { params(contract_id: String).void }
1690
+ attr_writer :contract_id
1691
+
1626
1692
  sig do
1627
1693
  params(
1628
1694
  amount: Float,
1629
1695
  invoice_id: String,
1630
1696
  timestamp: Time,
1631
1697
  type:
1632
- MetronomeSDK::Commit::Ledger::PostpaidCommitTrueupLedgerEntry::Type::OrSymbol
1698
+ MetronomeSDK::Commit::Ledger::PostpaidCommitTrueupLedgerEntry::Type::OrSymbol,
1699
+ contract_id: String
1633
1700
  ).returns(T.attached_class)
1634
1701
  end
1635
- def self.new(amount:, invoice_id:, timestamp:, type:)
1702
+ def self.new(
1703
+ amount:,
1704
+ invoice_id:,
1705
+ timestamp:,
1706
+ type:,
1707
+ contract_id: nil
1708
+ )
1636
1709
  end
1637
1710
 
1638
1711
  sig do
@@ -1642,7 +1715,8 @@ module MetronomeSDK
1642
1715
  invoice_id: String,
1643
1716
  timestamp: Time,
1644
1717
  type:
1645
- MetronomeSDK::Commit::Ledger::PostpaidCommitTrueupLedgerEntry::Type::TaggedSymbol
1718
+ MetronomeSDK::Commit::Ledger::PostpaidCommitTrueupLedgerEntry::Type::TaggedSymbol,
1719
+ contract_id: String
1646
1720
  }
1647
1721
  )
1648
1722
  end
@@ -1660,6 +1660,24 @@ module MetronomeSDK
1660
1660
  end
1661
1661
  attr_writer :specifiers
1662
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
+
1663
1681
  sig do
1664
1682
  params(
1665
1683
  id: String,
@@ -1693,7 +1711,9 @@ module MetronomeSDK
1693
1711
  specifiers:
1694
1712
  T::Array[
1695
1713
  MetronomeSDK::ContractWithoutAmendments::RecurringCommit::Specifier::OrHash
1696
- ]
1714
+ ],
1715
+ subscription_config:
1716
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::SubscriptionConfig::OrHash
1697
1717
  ).returns(T.attached_class)
1698
1718
  end
1699
1719
  def self.new(
@@ -1742,7 +1762,9 @@ module MetronomeSDK
1742
1762
  # List of filters that determine what kind of customer usage draws down a commit
1743
1763
  # or credit. A customer's usage needs to meet the condition of at least one of the
1744
1764
  # specifiers to contribute to a commit's or credit's drawdown.
1745
- specifiers: nil
1765
+ specifiers: nil,
1766
+ # Attach a subscription to the recurring commit/credit.
1767
+ subscription_config: nil
1746
1768
  )
1747
1769
  end
1748
1770
 
@@ -1780,7 +1802,9 @@ module MetronomeSDK
1780
1802
  specifiers:
1781
1803
  T::Array[
1782
1804
  MetronomeSDK::ContractWithoutAmendments::RecurringCommit::Specifier
1783
- ]
1805
+ ],
1806
+ subscription_config:
1807
+ MetronomeSDK::ContractWithoutAmendments::RecurringCommit::SubscriptionConfig
1784
1808
  }
1785
1809
  )
1786
1810
  end
@@ -2461,6 +2485,131 @@ module MetronomeSDK
2461
2485
  def to_hash
2462
2486
  end
2463
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
2464
2613
  end
2465
2614
 
2466
2615
  class RecurringCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -2689,6 +2838,24 @@ module MetronomeSDK
2689
2838
  end
2690
2839
  attr_writer :specifiers
2691
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
+
2692
2859
  sig do
2693
2860
  params(
2694
2861
  id: String,
@@ -2720,7 +2887,9 @@ module MetronomeSDK
2720
2887
  specifiers:
2721
2888
  T::Array[
2722
2889
  MetronomeSDK::ContractWithoutAmendments::RecurringCredit::Specifier::OrHash
2723
- ]
2890
+ ],
2891
+ subscription_config:
2892
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::SubscriptionConfig::OrHash
2724
2893
  ).returns(T.attached_class)
2725
2894
  end
2726
2895
  def self.new(
@@ -2767,7 +2936,9 @@ module MetronomeSDK
2767
2936
  # List of filters that determine what kind of customer usage draws down a commit
2768
2937
  # or credit. A customer's usage needs to meet the condition of at least one of the
2769
2938
  # specifiers to contribute to a commit's or credit's drawdown.
2770
- specifiers: nil
2939
+ specifiers: nil,
2940
+ # Attach a subscription to the recurring commit/credit.
2941
+ subscription_config: nil
2771
2942
  )
2772
2943
  end
2773
2944
 
@@ -2803,7 +2974,9 @@ module MetronomeSDK
2803
2974
  specifiers:
2804
2975
  T::Array[
2805
2976
  MetronomeSDK::ContractWithoutAmendments::RecurringCredit::Specifier
2806
- ]
2977
+ ],
2978
+ subscription_config:
2979
+ MetronomeSDK::ContractWithoutAmendments::RecurringCredit::SubscriptionConfig
2807
2980
  }
2808
2981
  )
2809
2982
  end
@@ -3446,6 +3619,131 @@ module MetronomeSDK
3446
3619
  def to_hash
3447
3620
  end
3448
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
3449
3747
  end
3450
3748
 
3451
3749
  class ResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel