metronome-sdk 0.1.0 → 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 (49) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +1 -1
  5. data/lib/metronome_sdk/models/commit.rb +35 -5
  6. data/lib/metronome_sdk/models/contract_without_amendments.rb +128 -2
  7. data/lib/metronome_sdk/models/credit.rb +21 -3
  8. data/lib/metronome_sdk/models/v1/alert_create_params.rb +9 -11
  9. data/lib/metronome_sdk/models/v1/contract_create_params.rb +159 -12
  10. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +29 -1
  11. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  12. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +2 -0
  13. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +2 -0
  14. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +183 -24
  15. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +570 -14
  16. data/lib/metronome_sdk/models/v2/contract_list_response.rb +194 -17
  17. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +194 -17
  18. data/lib/metronome_sdk/resources/v1/alerts.rb +2 -2
  19. data/lib/metronome_sdk/version.rb +1 -1
  20. data/rbi/metronome_sdk/internal/transport/base_client.rbi +1 -1
  21. data/rbi/metronome_sdk/models/commit.rbi +89 -15
  22. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +304 -6
  23. data/rbi/metronome_sdk/models/credit.rbi +54 -9
  24. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +16 -18
  25. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +349 -15
  26. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +60 -0
  27. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  28. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +4 -0
  29. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +4 -0
  30. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +385 -27
  31. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1532 -42
  32. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +431 -37
  33. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +431 -37
  34. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -5
  35. data/rbi/metronome_sdk/resources/v2/contracts.rbi +4 -0
  36. data/sig/metronome_sdk/internal/transport/base_client.rbs +1 -1
  37. data/sig/metronome_sdk/models/commit.rbs +50 -15
  38. data/sig/metronome_sdk/models/contract_without_amendments.rbs +120 -6
  39. data/sig/metronome_sdk/models/credit.rbs +30 -9
  40. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +9 -9
  41. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +130 -3
  42. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +21 -0
  43. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  44. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +130 -3
  45. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +612 -6
  46. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +205 -30
  47. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +205 -30
  48. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -1
  49. metadata +2 -2
@@ -915,6 +915,24 @@ module MetronomeSDK
915
915
  sig { params(description: String).void }
916
916
  attr_writer :description
917
917
 
918
+ # Optional configuration for commit hierarchy access control
919
+ sig do
920
+ returns(
921
+ T.nilable(
922
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration
923
+ )
924
+ )
925
+ end
926
+ attr_reader :hierarchy_configuration
927
+
928
+ sig do
929
+ params(
930
+ hierarchy_configuration:
931
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::OrHash
932
+ ).void
933
+ end
934
+ attr_writer :hierarchy_configuration
935
+
918
936
  # The schedule that the customer will be invoiced for this commit.
919
937
  sig { returns(T.nilable(MetronomeSDK::SchedulePointInTime)) }
920
938
  attr_reader :invoice_schedule
@@ -981,6 +999,8 @@ module MetronomeSDK
981
999
  # or credit. A customer's usage needs to meet the condition of at least one of the
982
1000
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
983
1001
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
1002
+ # Instead, to target usage by product or product tag, pass those values in the
1003
+ # body of `specifiers`.
984
1004
  sig do
985
1005
  returns(
986
1006
  T.nilable(
@@ -1013,6 +1033,8 @@ module MetronomeSDK
1013
1033
  applicable_product_ids: T::Array[String],
1014
1034
  applicable_product_tags: T::Array[String],
1015
1035
  description: String,
1036
+ hierarchy_configuration:
1037
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::OrHash,
1016
1038
  invoice_schedule: MetronomeSDK::SchedulePointInTime::OrHash,
1017
1039
  name: String,
1018
1040
  netsuite_sales_order_id: String,
@@ -1037,6 +1059,8 @@ module MetronomeSDK
1037
1059
  applicable_product_ids: nil,
1038
1060
  applicable_product_tags: nil,
1039
1061
  description: nil,
1062
+ # Optional configuration for commit hierarchy access control
1063
+ hierarchy_configuration: nil,
1040
1064
  # The schedule that the customer will be invoiced for this commit.
1041
1065
  invoice_schedule: nil,
1042
1066
  name: nil,
@@ -1053,6 +1077,8 @@ module MetronomeSDK
1053
1077
  # or credit. A customer's usage needs to meet the condition of at least one of the
1054
1078
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
1055
1079
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
1080
+ # Instead, to target usage by product or product tag, pass those values in the
1081
+ # body of `specifiers`.
1056
1082
  specifiers: nil
1057
1083
  )
1058
1084
  end
@@ -1069,6 +1095,8 @@ module MetronomeSDK
1069
1095
  applicable_product_ids: T::Array[String],
1070
1096
  applicable_product_tags: T::Array[String],
1071
1097
  description: String,
1098
+ hierarchy_configuration:
1099
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration,
1072
1100
  invoice_schedule: MetronomeSDK::SchedulePointInTime,
1073
1101
  name: String,
1074
1102
  netsuite_sales_order_id: String,
@@ -1145,6 +1173,274 @@ module MetronomeSDK
1145
1173
  end
1146
1174
  end
1147
1175
 
1176
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
1177
+ OrHash =
1178
+ T.type_alias do
1179
+ T.any(
1180
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration,
1181
+ MetronomeSDK::Internal::AnyHash
1182
+ )
1183
+ end
1184
+
1185
+ sig do
1186
+ returns(
1187
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::Variants
1188
+ )
1189
+ end
1190
+ attr_accessor :child_access
1191
+
1192
+ # Optional configuration for commit hierarchy access control
1193
+ sig do
1194
+ params(
1195
+ child_access:
1196
+ T.any(
1197
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
1198
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
1199
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
1200
+ )
1201
+ ).returns(T.attached_class)
1202
+ end
1203
+ def self.new(child_access:)
1204
+ end
1205
+
1206
+ sig do
1207
+ override.returns(
1208
+ {
1209
+ child_access:
1210
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::Variants
1211
+ }
1212
+ )
1213
+ end
1214
+ def to_hash
1215
+ end
1216
+
1217
+ module ChildAccess
1218
+ extend MetronomeSDK::Internal::Type::Union
1219
+
1220
+ Variants =
1221
+ T.type_alias do
1222
+ T.any(
1223
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
1224
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
1225
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
1226
+ )
1227
+ end
1228
+
1229
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
1230
+ OrHash =
1231
+ T.type_alias do
1232
+ T.any(
1233
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
1234
+ MetronomeSDK::Internal::AnyHash
1235
+ )
1236
+ end
1237
+
1238
+ sig do
1239
+ returns(
1240
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
1241
+ )
1242
+ end
1243
+ attr_accessor :type
1244
+
1245
+ sig do
1246
+ params(
1247
+ type:
1248
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
1249
+ ).returns(T.attached_class)
1250
+ end
1251
+ def self.new(type:)
1252
+ end
1253
+
1254
+ sig do
1255
+ override.returns(
1256
+ {
1257
+ type:
1258
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
1259
+ }
1260
+ )
1261
+ end
1262
+ def to_hash
1263
+ end
1264
+
1265
+ module Type
1266
+ extend MetronomeSDK::Internal::Type::Enum
1267
+
1268
+ TaggedSymbol =
1269
+ T.type_alias do
1270
+ T.all(
1271
+ Symbol,
1272
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
1273
+ )
1274
+ end
1275
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1276
+
1277
+ ALL =
1278
+ T.let(
1279
+ :ALL,
1280
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
1281
+ )
1282
+
1283
+ sig do
1284
+ override.returns(
1285
+ T::Array[
1286
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
1287
+ ]
1288
+ )
1289
+ end
1290
+ def self.values
1291
+ end
1292
+ end
1293
+ end
1294
+
1295
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
1296
+ OrHash =
1297
+ T.type_alias do
1298
+ T.any(
1299
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
1300
+ MetronomeSDK::Internal::AnyHash
1301
+ )
1302
+ end
1303
+
1304
+ sig do
1305
+ returns(
1306
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
1307
+ )
1308
+ end
1309
+ attr_accessor :type
1310
+
1311
+ sig do
1312
+ params(
1313
+ type:
1314
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
1315
+ ).returns(T.attached_class)
1316
+ end
1317
+ def self.new(type:)
1318
+ end
1319
+
1320
+ sig do
1321
+ override.returns(
1322
+ {
1323
+ type:
1324
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
1325
+ }
1326
+ )
1327
+ end
1328
+ def to_hash
1329
+ end
1330
+
1331
+ module Type
1332
+ extend MetronomeSDK::Internal::Type::Enum
1333
+
1334
+ TaggedSymbol =
1335
+ T.type_alias do
1336
+ T.all(
1337
+ Symbol,
1338
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
1339
+ )
1340
+ end
1341
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1342
+
1343
+ NONE =
1344
+ T.let(
1345
+ :NONE,
1346
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
1347
+ )
1348
+
1349
+ sig do
1350
+ override.returns(
1351
+ T::Array[
1352
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
1353
+ ]
1354
+ )
1355
+ end
1356
+ def self.values
1357
+ end
1358
+ end
1359
+ end
1360
+
1361
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
1362
+ OrHash =
1363
+ T.type_alias do
1364
+ T.any(
1365
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
1366
+ MetronomeSDK::Internal::AnyHash
1367
+ )
1368
+ end
1369
+
1370
+ sig { returns(T::Array[String]) }
1371
+ attr_accessor :contract_ids
1372
+
1373
+ sig do
1374
+ returns(
1375
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
1376
+ )
1377
+ end
1378
+ attr_accessor :type
1379
+
1380
+ sig do
1381
+ params(
1382
+ contract_ids: T::Array[String],
1383
+ type:
1384
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
1385
+ ).returns(T.attached_class)
1386
+ end
1387
+ def self.new(contract_ids:, type:)
1388
+ end
1389
+
1390
+ sig do
1391
+ override.returns(
1392
+ {
1393
+ contract_ids: T::Array[String],
1394
+ type:
1395
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
1396
+ }
1397
+ )
1398
+ end
1399
+ def to_hash
1400
+ end
1401
+
1402
+ module Type
1403
+ extend MetronomeSDK::Internal::Type::Enum
1404
+
1405
+ TaggedSymbol =
1406
+ T.type_alias do
1407
+ T.all(
1408
+ Symbol,
1409
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
1410
+ )
1411
+ end
1412
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1413
+
1414
+ CONTRACT_IDS =
1415
+ T.let(
1416
+ :CONTRACT_IDS,
1417
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
1418
+ )
1419
+
1420
+ sig do
1421
+ override.returns(
1422
+ T::Array[
1423
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
1424
+ ]
1425
+ )
1426
+ end
1427
+ def self.values
1428
+ end
1429
+ end
1430
+ end
1431
+
1432
+ sig do
1433
+ override.returns(
1434
+ T::Array[
1435
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::HierarchyConfiguration::ChildAccess::Variants
1436
+ ]
1437
+ )
1438
+ end
1439
+ def self.variants
1440
+ end
1441
+ end
1442
+ end
1443
+
1148
1444
  module RateType
1149
1445
  extend MetronomeSDK::Internal::Type::Enum
1150
1446
 
@@ -1314,6 +1610,24 @@ module MetronomeSDK
1314
1610
  sig { params(description: String).void }
1315
1611
  attr_writer :description
1316
1612
 
1613
+ # Optional configuration for recurring credit hierarchy access control
1614
+ sig do
1615
+ returns(
1616
+ T.nilable(
1617
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration
1618
+ )
1619
+ )
1620
+ end
1621
+ attr_reader :hierarchy_configuration
1622
+
1623
+ sig do
1624
+ params(
1625
+ hierarchy_configuration:
1626
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::OrHash
1627
+ ).void
1628
+ end
1629
+ attr_writer :hierarchy_configuration
1630
+
1317
1631
  sig { returns(T.nilable(String)) }
1318
1632
  attr_reader :name
1319
1633
 
@@ -1346,6 +1660,8 @@ module MetronomeSDK
1346
1660
  # or credit. A customer's usage needs to meet the condition of at least one of the
1347
1661
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
1348
1662
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
1663
+ # Instead, to target usage by product or product tag, pass those values in the
1664
+ # body of `specifiers`.
1349
1665
  sig do
1350
1666
  returns(
1351
1667
  T.nilable(
@@ -1378,6 +1694,8 @@ module MetronomeSDK
1378
1694
  applicable_product_ids: T::Array[String],
1379
1695
  applicable_product_tags: T::Array[String],
1380
1696
  description: String,
1697
+ hierarchy_configuration:
1698
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::OrHash,
1381
1699
  name: String,
1382
1700
  netsuite_sales_order_id: String,
1383
1701
  priority: Float,
@@ -1397,6 +1715,8 @@ module MetronomeSDK
1397
1715
  applicable_product_ids: nil,
1398
1716
  applicable_product_tags: nil,
1399
1717
  description: nil,
1718
+ # Optional configuration for recurring credit hierarchy access control
1719
+ hierarchy_configuration: nil,
1400
1720
  name: nil,
1401
1721
  # This field's availability is dependent on your client's configuration.
1402
1722
  netsuite_sales_order_id: nil,
@@ -1409,6 +1729,8 @@ module MetronomeSDK
1409
1729
  # or credit. A customer's usage needs to meet the condition of at least one of the
1410
1730
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
1411
1731
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
1732
+ # Instead, to target usage by product or product tag, pass those values in the
1733
+ # body of `specifiers`.
1412
1734
  specifiers: nil
1413
1735
  )
1414
1736
  end
@@ -1425,6 +1747,8 @@ module MetronomeSDK
1425
1747
  applicable_product_ids: T::Array[String],
1426
1748
  applicable_product_tags: T::Array[String],
1427
1749
  description: String,
1750
+ hierarchy_configuration:
1751
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration,
1428
1752
  name: String,
1429
1753
  netsuite_sales_order_id: String,
1430
1754
  priority: Float,
@@ -1458,37 +1782,305 @@ module MetronomeSDK
1458
1782
  def self.new(id:, name:)
1459
1783
  end
1460
1784
 
1461
- sig { override.returns({ id: String, name: String }) }
1462
- def to_hash
1463
- end
1464
- end
1785
+ sig { override.returns({ id: String, name: String }) }
1786
+ def to_hash
1787
+ end
1788
+ end
1789
+
1790
+ module Type
1791
+ extend MetronomeSDK::Internal::Type::Enum
1792
+
1793
+ TaggedSymbol =
1794
+ T.type_alias do
1795
+ T.all(
1796
+ Symbol,
1797
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::Type
1798
+ )
1799
+ end
1800
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1801
+
1802
+ CREDIT =
1803
+ T.let(
1804
+ :CREDIT,
1805
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::Type::TaggedSymbol
1806
+ )
1807
+
1808
+ sig do
1809
+ override.returns(
1810
+ T::Array[
1811
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::Type::TaggedSymbol
1812
+ ]
1813
+ )
1814
+ end
1815
+ def self.values
1816
+ end
1817
+ end
1818
+
1819
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
1820
+ OrHash =
1821
+ T.type_alias do
1822
+ T.any(
1823
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration,
1824
+ MetronomeSDK::Internal::AnyHash
1825
+ )
1826
+ end
1827
+
1828
+ sig do
1829
+ returns(
1830
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::Variants
1831
+ )
1832
+ end
1833
+ attr_accessor :child_access
1834
+
1835
+ # Optional configuration for recurring credit hierarchy access control
1836
+ sig do
1837
+ params(
1838
+ child_access:
1839
+ T.any(
1840
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
1841
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
1842
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
1843
+ )
1844
+ ).returns(T.attached_class)
1845
+ end
1846
+ def self.new(child_access:)
1847
+ end
1848
+
1849
+ sig do
1850
+ override.returns(
1851
+ {
1852
+ child_access:
1853
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::Variants
1854
+ }
1855
+ )
1856
+ end
1857
+ def to_hash
1858
+ end
1859
+
1860
+ module ChildAccess
1861
+ extend MetronomeSDK::Internal::Type::Union
1862
+
1863
+ Variants =
1864
+ T.type_alias do
1865
+ T.any(
1866
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
1867
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
1868
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
1869
+ )
1870
+ end
1871
+
1872
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
1873
+ OrHash =
1874
+ T.type_alias do
1875
+ T.any(
1876
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
1877
+ MetronomeSDK::Internal::AnyHash
1878
+ )
1879
+ end
1880
+
1881
+ sig do
1882
+ returns(
1883
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
1884
+ )
1885
+ end
1886
+ attr_accessor :type
1887
+
1888
+ sig do
1889
+ params(
1890
+ type:
1891
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
1892
+ ).returns(T.attached_class)
1893
+ end
1894
+ def self.new(type:)
1895
+ end
1896
+
1897
+ sig do
1898
+ override.returns(
1899
+ {
1900
+ type:
1901
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
1902
+ }
1903
+ )
1904
+ end
1905
+ def to_hash
1906
+ end
1907
+
1908
+ module Type
1909
+ extend MetronomeSDK::Internal::Type::Enum
1910
+
1911
+ TaggedSymbol =
1912
+ T.type_alias do
1913
+ T.all(
1914
+ Symbol,
1915
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
1916
+ )
1917
+ end
1918
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1919
+
1920
+ ALL =
1921
+ T.let(
1922
+ :ALL,
1923
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
1924
+ )
1925
+
1926
+ sig do
1927
+ override.returns(
1928
+ T::Array[
1929
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
1930
+ ]
1931
+ )
1932
+ end
1933
+ def self.values
1934
+ end
1935
+ end
1936
+ end
1937
+
1938
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
1939
+ OrHash =
1940
+ T.type_alias do
1941
+ T.any(
1942
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
1943
+ MetronomeSDK::Internal::AnyHash
1944
+ )
1945
+ end
1946
+
1947
+ sig do
1948
+ returns(
1949
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
1950
+ )
1951
+ end
1952
+ attr_accessor :type
1953
+
1954
+ sig do
1955
+ params(
1956
+ type:
1957
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
1958
+ ).returns(T.attached_class)
1959
+ end
1960
+ def self.new(type:)
1961
+ end
1962
+
1963
+ sig do
1964
+ override.returns(
1965
+ {
1966
+ type:
1967
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
1968
+ }
1969
+ )
1970
+ end
1971
+ def to_hash
1972
+ end
1973
+
1974
+ module Type
1975
+ extend MetronomeSDK::Internal::Type::Enum
1976
+
1977
+ TaggedSymbol =
1978
+ T.type_alias do
1979
+ T.all(
1980
+ Symbol,
1981
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
1982
+ )
1983
+ end
1984
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1985
+
1986
+ NONE =
1987
+ T.let(
1988
+ :NONE,
1989
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
1990
+ )
1991
+
1992
+ sig do
1993
+ override.returns(
1994
+ T::Array[
1995
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
1996
+ ]
1997
+ )
1998
+ end
1999
+ def self.values
2000
+ end
2001
+ end
2002
+ end
2003
+
2004
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
2005
+ OrHash =
2006
+ T.type_alias do
2007
+ T.any(
2008
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
2009
+ MetronomeSDK::Internal::AnyHash
2010
+ )
2011
+ end
2012
+
2013
+ sig { returns(T::Array[String]) }
2014
+ attr_accessor :contract_ids
2015
+
2016
+ sig do
2017
+ returns(
2018
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
2019
+ )
2020
+ end
2021
+ attr_accessor :type
2022
+
2023
+ sig do
2024
+ params(
2025
+ contract_ids: T::Array[String],
2026
+ type:
2027
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
2028
+ ).returns(T.attached_class)
2029
+ end
2030
+ def self.new(contract_ids:, type:)
2031
+ end
2032
+
2033
+ sig do
2034
+ override.returns(
2035
+ {
2036
+ contract_ids: T::Array[String],
2037
+ type:
2038
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
2039
+ }
2040
+ )
2041
+ end
2042
+ def to_hash
2043
+ end
2044
+
2045
+ module Type
2046
+ extend MetronomeSDK::Internal::Type::Enum
2047
+
2048
+ TaggedSymbol =
2049
+ T.type_alias do
2050
+ T.all(
2051
+ Symbol,
2052
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
2053
+ )
2054
+ end
2055
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2056
+
2057
+ CONTRACT_IDS =
2058
+ T.let(
2059
+ :CONTRACT_IDS,
2060
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
2061
+ )
1465
2062
 
1466
- module Type
1467
- extend MetronomeSDK::Internal::Type::Enum
2063
+ sig do
2064
+ override.returns(
2065
+ T::Array[
2066
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
2067
+ ]
2068
+ )
2069
+ end
2070
+ def self.values
2071
+ end
2072
+ end
2073
+ end
1468
2074
 
1469
- TaggedSymbol =
1470
- T.type_alias do
1471
- T.all(
1472
- Symbol,
1473
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::Type
2075
+ sig do
2076
+ override.returns(
2077
+ T::Array[
2078
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::Variants
2079
+ ]
1474
2080
  )
1475
2081
  end
1476
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1477
-
1478
- CREDIT =
1479
- T.let(
1480
- :CREDIT,
1481
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::Type::TaggedSymbol
1482
- )
1483
-
1484
- sig do
1485
- override.returns(
1486
- T::Array[
1487
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::Type::TaggedSymbol
1488
- ]
1489
- )
1490
- end
1491
- def self.values
2082
+ def self.variants
2083
+ end
1492
2084
  end
1493
2085
  end
1494
2086
 
@@ -2411,6 +3003,8 @@ module MetronomeSDK
2411
3003
  # or credit. A customer's usage needs to meet the condition of at least one of the
2412
3004
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2413
3005
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
3006
+ # Instead, to target usage by product or product tag, pass those values in the
3007
+ # body of `specifiers`.
2414
3008
  sig do
2415
3009
  returns(
2416
3010
  T.nilable(
@@ -2465,6 +3059,8 @@ module MetronomeSDK
2465
3059
  # or credit. A customer's usage needs to meet the condition of at least one of the
2466
3060
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2467
3061
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
3062
+ # Instead, to target usage by product or product tag, pass those values in the
3063
+ # body of `specifiers`.
2468
3064
  specifiers: nil
2469
3065
  )
2470
3066
  end
@@ -3032,7 +3628,7 @@ module MetronomeSDK
3032
3628
  sig { params(ending_before: Time).void }
3033
3629
  attr_writer :ending_before
3034
3630
 
3035
- # Optional configuration for recurring commit/credit hierarchy access control
3631
+ # Optional configuration for recurring credit hierarchy access control
3036
3632
  sig do
3037
3633
  returns(
3038
3634
  T.nilable(
@@ -3156,6 +3752,24 @@ module MetronomeSDK
3156
3752
  end
3157
3753
  attr_writer :specifiers
3158
3754
 
3755
+ # Attach a subscription to the recurring commit/credit.
3756
+ sig do
3757
+ returns(
3758
+ T.nilable(
3759
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig
3760
+ )
3761
+ )
3762
+ end
3763
+ attr_reader :subscription_config
3764
+
3765
+ sig do
3766
+ params(
3767
+ subscription_config:
3768
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig::OrHash
3769
+ ).void
3770
+ end
3771
+ attr_writer :subscription_config
3772
+
3159
3773
  sig do
3160
3774
  params(
3161
3775
  id: String,
@@ -3189,7 +3803,9 @@ module MetronomeSDK
3189
3803
  specifiers:
3190
3804
  T::Array[
3191
3805
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::Specifier::OrHash
3192
- ]
3806
+ ],
3807
+ subscription_config:
3808
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig::OrHash
3193
3809
  ).returns(T.attached_class)
3194
3810
  end
3195
3811
  def self.new(
@@ -3214,7 +3830,7 @@ module MetronomeSDK
3214
3830
  description: nil,
3215
3831
  # Determines when the contract will stop creating recurring commits. Optional
3216
3832
  ending_before: nil,
3217
- # Optional configuration for recurring commit/credit hierarchy access control
3833
+ # Optional configuration for recurring credit hierarchy access control
3218
3834
  hierarchy_configuration: nil,
3219
3835
  # The amount the customer should be billed for the commit. Not required.
3220
3836
  invoice_amount: nil,
@@ -3238,7 +3854,9 @@ module MetronomeSDK
3238
3854
  # List of filters that determine what kind of customer usage draws down a commit
3239
3855
  # or credit. A customer's usage needs to meet the condition of at least one of the
3240
3856
  # specifiers to contribute to a commit's or credit's drawdown.
3241
- specifiers: nil
3857
+ specifiers: nil,
3858
+ # Attach a subscription to the recurring commit/credit.
3859
+ subscription_config: nil
3242
3860
  )
3243
3861
  end
3244
3862
 
@@ -3276,7 +3894,9 @@ module MetronomeSDK
3276
3894
  specifiers:
3277
3895
  T::Array[
3278
3896
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::Specifier
3279
- ]
3897
+ ],
3898
+ subscription_config:
3899
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig
3280
3900
  }
3281
3901
  )
3282
3902
  end
@@ -3502,7 +4122,7 @@ module MetronomeSDK
3502
4122
  end
3503
4123
  attr_accessor :child_access
3504
4124
 
3505
- # Optional configuration for recurring commit/credit hierarchy access control
4125
+ # Optional configuration for recurring credit hierarchy access control
3506
4126
  sig do
3507
4127
  params(
3508
4128
  child_access:
@@ -3957,6 +4577,133 @@ module MetronomeSDK
3957
4577
  def to_hash
3958
4578
  end
3959
4579
  end
4580
+
4581
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
4582
+ OrHash =
4583
+ T.type_alias do
4584
+ T.any(
4585
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig,
4586
+ MetronomeSDK::Internal::AnyHash
4587
+ )
4588
+ end
4589
+
4590
+ sig do
4591
+ returns(
4592
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig::Allocation::TaggedSymbol
4593
+ )
4594
+ end
4595
+ attr_accessor :allocation
4596
+
4597
+ sig do
4598
+ returns(
4599
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig
4600
+ )
4601
+ end
4602
+ attr_reader :apply_seat_increase_config
4603
+
4604
+ sig do
4605
+ params(
4606
+ apply_seat_increase_config:
4607
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash
4608
+ ).void
4609
+ end
4610
+ attr_writer :apply_seat_increase_config
4611
+
4612
+ sig { returns(String) }
4613
+ attr_accessor :subscription_id
4614
+
4615
+ # Attach a subscription to the recurring commit/credit.
4616
+ sig do
4617
+ params(
4618
+ allocation:
4619
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig::Allocation::OrSymbol,
4620
+ apply_seat_increase_config:
4621
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash,
4622
+ subscription_id: String
4623
+ ).returns(T.attached_class)
4624
+ end
4625
+ def self.new(
4626
+ allocation:,
4627
+ apply_seat_increase_config:,
4628
+ subscription_id:
4629
+ )
4630
+ end
4631
+
4632
+ sig do
4633
+ override.returns(
4634
+ {
4635
+ allocation:
4636
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig::Allocation::TaggedSymbol,
4637
+ apply_seat_increase_config:
4638
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig,
4639
+ subscription_id: String
4640
+ }
4641
+ )
4642
+ end
4643
+ def to_hash
4644
+ end
4645
+
4646
+ module Allocation
4647
+ extend MetronomeSDK::Internal::Type::Enum
4648
+
4649
+ TaggedSymbol =
4650
+ T.type_alias do
4651
+ T.all(
4652
+ Symbol,
4653
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig::Allocation
4654
+ )
4655
+ end
4656
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4657
+
4658
+ INDIVIDUAL =
4659
+ T.let(
4660
+ :INDIVIDUAL,
4661
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig::Allocation::TaggedSymbol
4662
+ )
4663
+ POOLED =
4664
+ T.let(
4665
+ :POOLED,
4666
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig::Allocation::TaggedSymbol
4667
+ )
4668
+
4669
+ sig do
4670
+ override.returns(
4671
+ T::Array[
4672
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig::Allocation::TaggedSymbol
4673
+ ]
4674
+ )
4675
+ end
4676
+ def self.values
4677
+ end
4678
+ end
4679
+
4680
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
4681
+ OrHash =
4682
+ T.type_alias do
4683
+ T.any(
4684
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig,
4685
+ MetronomeSDK::Internal::AnyHash
4686
+ )
4687
+ end
4688
+
4689
+ # Indicates whether a mid-period seat increase should be prorated.
4690
+ sig { returns(T::Boolean) }
4691
+ attr_accessor :is_prorated
4692
+
4693
+ sig do
4694
+ params(is_prorated: T::Boolean).returns(T.attached_class)
4695
+ end
4696
+ def self.new(
4697
+ # Indicates whether a mid-period seat increase should be prorated.
4698
+ is_prorated:
4699
+ )
4700
+ end
4701
+
4702
+ sig { override.returns({ is_prorated: T::Boolean }) }
4703
+ def to_hash
4704
+ end
4705
+ end
4706
+ end
3960
4707
  end
3961
4708
 
3962
4709
  class AddRecurringCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -4079,7 +4826,7 @@ module MetronomeSDK
4079
4826
  sig { params(ending_before: Time).void }
4080
4827
  attr_writer :ending_before
4081
4828
 
4082
- # Optional configuration for recurring commit/credit hierarchy access control
4829
+ # Optional configuration for recurring credit hierarchy access control
4083
4830
  sig do
4084
4831
  returns(
4085
4832
  T.nilable(
@@ -4185,6 +4932,24 @@ module MetronomeSDK
4185
4932
  end
4186
4933
  attr_writer :specifiers
4187
4934
 
4935
+ # Attach a subscription to the recurring commit/credit.
4936
+ sig do
4937
+ returns(
4938
+ T.nilable(
4939
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig
4940
+ )
4941
+ )
4942
+ end
4943
+ attr_reader :subscription_config
4944
+
4945
+ sig do
4946
+ params(
4947
+ subscription_config:
4948
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig::OrHash
4949
+ ).void
4950
+ end
4951
+ attr_writer :subscription_config
4952
+
4188
4953
  sig do
4189
4954
  params(
4190
4955
  id: String,
@@ -4216,7 +4981,9 @@ module MetronomeSDK
4216
4981
  specifiers:
4217
4982
  T::Array[
4218
4983
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::Specifier::OrHash
4219
- ]
4984
+ ],
4985
+ subscription_config:
4986
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig::OrHash
4220
4987
  ).returns(T.attached_class)
4221
4988
  end
4222
4989
  def self.new(
@@ -4241,7 +5008,7 @@ module MetronomeSDK
4241
5008
  description: nil,
4242
5009
  # Determines when the contract will stop creating recurring commits. Optional
4243
5010
  ending_before: nil,
4244
- # Optional configuration for recurring commit/credit hierarchy access control
5011
+ # Optional configuration for recurring credit hierarchy access control
4245
5012
  hierarchy_configuration: nil,
4246
5013
  # Displayed on invoices. Will be passed through to the individual commits
4247
5014
  name: nil,
@@ -4263,7 +5030,9 @@ module MetronomeSDK
4263
5030
  # List of filters that determine what kind of customer usage draws down a commit
4264
5031
  # or credit. A customer's usage needs to meet the condition of at least one of the
4265
5032
  # specifiers to contribute to a commit's or credit's drawdown.
4266
- specifiers: nil
5033
+ specifiers: nil,
5034
+ # Attach a subscription to the recurring commit/credit.
5035
+ subscription_config: nil
4267
5036
  )
4268
5037
  end
4269
5038
 
@@ -4299,7 +5068,9 @@ module MetronomeSDK
4299
5068
  specifiers:
4300
5069
  T::Array[
4301
5070
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::Specifier
4302
- ]
5071
+ ],
5072
+ subscription_config:
5073
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig
4303
5074
  }
4304
5075
  )
4305
5076
  end
@@ -4525,7 +5296,7 @@ module MetronomeSDK
4525
5296
  end
4526
5297
  attr_accessor :child_access
4527
5298
 
4528
- # Optional configuration for recurring commit/credit hierarchy access control
5299
+ # Optional configuration for recurring credit hierarchy access control
4529
5300
  sig do
4530
5301
  params(
4531
5302
  child_access:
@@ -4942,6 +5713,133 @@ module MetronomeSDK
4942
5713
  def to_hash
4943
5714
  end
4944
5715
  end
5716
+
5717
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
5718
+ OrHash =
5719
+ T.type_alias do
5720
+ T.any(
5721
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig,
5722
+ MetronomeSDK::Internal::AnyHash
5723
+ )
5724
+ end
5725
+
5726
+ sig do
5727
+ returns(
5728
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig::Allocation::TaggedSymbol
5729
+ )
5730
+ end
5731
+ attr_accessor :allocation
5732
+
5733
+ sig do
5734
+ returns(
5735
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig
5736
+ )
5737
+ end
5738
+ attr_reader :apply_seat_increase_config
5739
+
5740
+ sig do
5741
+ params(
5742
+ apply_seat_increase_config:
5743
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash
5744
+ ).void
5745
+ end
5746
+ attr_writer :apply_seat_increase_config
5747
+
5748
+ sig { returns(String) }
5749
+ attr_accessor :subscription_id
5750
+
5751
+ # Attach a subscription to the recurring commit/credit.
5752
+ sig do
5753
+ params(
5754
+ allocation:
5755
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig::Allocation::OrSymbol,
5756
+ apply_seat_increase_config:
5757
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash,
5758
+ subscription_id: String
5759
+ ).returns(T.attached_class)
5760
+ end
5761
+ def self.new(
5762
+ allocation:,
5763
+ apply_seat_increase_config:,
5764
+ subscription_id:
5765
+ )
5766
+ end
5767
+
5768
+ sig do
5769
+ override.returns(
5770
+ {
5771
+ allocation:
5772
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig::Allocation::TaggedSymbol,
5773
+ apply_seat_increase_config:
5774
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig,
5775
+ subscription_id: String
5776
+ }
5777
+ )
5778
+ end
5779
+ def to_hash
5780
+ end
5781
+
5782
+ module Allocation
5783
+ extend MetronomeSDK::Internal::Type::Enum
5784
+
5785
+ TaggedSymbol =
5786
+ T.type_alias do
5787
+ T.all(
5788
+ Symbol,
5789
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig::Allocation
5790
+ )
5791
+ end
5792
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5793
+
5794
+ INDIVIDUAL =
5795
+ T.let(
5796
+ :INDIVIDUAL,
5797
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig::Allocation::TaggedSymbol
5798
+ )
5799
+ POOLED =
5800
+ T.let(
5801
+ :POOLED,
5802
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig::Allocation::TaggedSymbol
5803
+ )
5804
+
5805
+ sig do
5806
+ override.returns(
5807
+ T::Array[
5808
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig::Allocation::TaggedSymbol
5809
+ ]
5810
+ )
5811
+ end
5812
+ def self.values
5813
+ end
5814
+ end
5815
+
5816
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
5817
+ OrHash =
5818
+ T.type_alias do
5819
+ T.any(
5820
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig,
5821
+ MetronomeSDK::Internal::AnyHash
5822
+ )
5823
+ end
5824
+
5825
+ # Indicates whether a mid-period seat increase should be prorated.
5826
+ sig { returns(T::Boolean) }
5827
+ attr_accessor :is_prorated
5828
+
5829
+ sig do
5830
+ params(is_prorated: T::Boolean).returns(T.attached_class)
5831
+ end
5832
+ def self.new(
5833
+ # Indicates whether a mid-period seat increase should be prorated.
5834
+ is_prorated:
5835
+ )
5836
+ end
5837
+
5838
+ sig { override.returns({ is_prorated: T::Boolean }) }
5839
+ def to_hash
5840
+ end
5841
+ end
5842
+ end
4945
5843
  end
4946
5844
 
4947
5845
  class AddResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel
@@ -6358,6 +7256,24 @@ module MetronomeSDK
6358
7256
  sig { returns(T.nilable(T::Array[String])) }
6359
7257
  attr_accessor :applicable_product_tags
6360
7258
 
7259
+ # Optional configuration for commit hierarchy access control
7260
+ sig do
7261
+ returns(
7262
+ T.nilable(
7263
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration
7264
+ )
7265
+ )
7266
+ end
7267
+ attr_reader :hierarchy_configuration
7268
+
7269
+ sig do
7270
+ params(
7271
+ hierarchy_configuration:
7272
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::OrHash
7273
+ ).void
7274
+ end
7275
+ attr_writer :hierarchy_configuration
7276
+
6361
7277
  sig do
6362
7278
  returns(
6363
7279
  T.nilable(
@@ -6397,6 +7313,8 @@ module MetronomeSDK
6397
7313
  # or credit. A customer's usage needs to meet the condition of at least one of the
6398
7314
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
6399
7315
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
7316
+ # Instead, to target usage by product or product tag, pass those values in the
7317
+ # body of `specifiers`.
6400
7318
  sig do
6401
7319
  returns(
6402
7320
  T.nilable(
@@ -6415,6 +7333,8 @@ module MetronomeSDK
6415
7333
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::AccessSchedule::OrHash,
6416
7334
  applicable_product_ids: T.nilable(T::Array[String]),
6417
7335
  applicable_product_tags: T.nilable(T::Array[String]),
7336
+ hierarchy_configuration:
7337
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::OrHash,
6418
7338
  invoice_schedule:
6419
7339
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::InvoiceSchedule::OrHash,
6420
7340
  name: String,
@@ -6440,6 +7360,8 @@ module MetronomeSDK
6440
7360
  # applicable_product_tags or specifiers are not provided, the commit applies to
6441
7361
  # all products.
6442
7362
  applicable_product_tags: nil,
7363
+ # Optional configuration for commit hierarchy access control
7364
+ hierarchy_configuration: nil,
6443
7365
  invoice_schedule: nil,
6444
7366
  name: nil,
6445
7367
  netsuite_sales_order_id: nil,
@@ -6449,6 +7371,8 @@ module MetronomeSDK
6449
7371
  # or credit. A customer's usage needs to meet the condition of at least one of the
6450
7372
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
6451
7373
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
7374
+ # Instead, to target usage by product or product tag, pass those values in the
7375
+ # body of `specifiers`.
6452
7376
  specifiers: nil
6453
7377
  )
6454
7378
  end
@@ -6461,6 +7385,8 @@ module MetronomeSDK
6461
7385
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::AccessSchedule,
6462
7386
  applicable_product_ids: T.nilable(T::Array[String]),
6463
7387
  applicable_product_tags: T.nilable(T::Array[String]),
7388
+ hierarchy_configuration:
7389
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration,
6464
7390
  invoice_schedule:
6465
7391
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::InvoiceSchedule,
6466
7392
  name: String,
@@ -6721,7 +7647,275 @@ module MetronomeSDK
6721
7647
  }
6722
7648
  )
6723
7649
  end
6724
- def to_hash
7650
+ def to_hash
7651
+ end
7652
+ end
7653
+ end
7654
+
7655
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
7656
+ OrHash =
7657
+ T.type_alias do
7658
+ T.any(
7659
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration,
7660
+ MetronomeSDK::Internal::AnyHash
7661
+ )
7662
+ end
7663
+
7664
+ sig do
7665
+ returns(
7666
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::Variants
7667
+ )
7668
+ end
7669
+ attr_accessor :child_access
7670
+
7671
+ # Optional configuration for commit hierarchy access control
7672
+ sig do
7673
+ params(
7674
+ child_access:
7675
+ T.any(
7676
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
7677
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
7678
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
7679
+ )
7680
+ ).returns(T.attached_class)
7681
+ end
7682
+ def self.new(child_access:)
7683
+ end
7684
+
7685
+ sig do
7686
+ override.returns(
7687
+ {
7688
+ child_access:
7689
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::Variants
7690
+ }
7691
+ )
7692
+ end
7693
+ def to_hash
7694
+ end
7695
+
7696
+ module ChildAccess
7697
+ extend MetronomeSDK::Internal::Type::Union
7698
+
7699
+ Variants =
7700
+ T.type_alias do
7701
+ T.any(
7702
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
7703
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
7704
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
7705
+ )
7706
+ end
7707
+
7708
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
7709
+ OrHash =
7710
+ T.type_alias do
7711
+ T.any(
7712
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
7713
+ MetronomeSDK::Internal::AnyHash
7714
+ )
7715
+ end
7716
+
7717
+ sig do
7718
+ returns(
7719
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
7720
+ )
7721
+ end
7722
+ attr_accessor :type
7723
+
7724
+ sig do
7725
+ params(
7726
+ type:
7727
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
7728
+ ).returns(T.attached_class)
7729
+ end
7730
+ def self.new(type:)
7731
+ end
7732
+
7733
+ sig do
7734
+ override.returns(
7735
+ {
7736
+ type:
7737
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
7738
+ }
7739
+ )
7740
+ end
7741
+ def to_hash
7742
+ end
7743
+
7744
+ module Type
7745
+ extend MetronomeSDK::Internal::Type::Enum
7746
+
7747
+ TaggedSymbol =
7748
+ T.type_alias do
7749
+ T.all(
7750
+ Symbol,
7751
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
7752
+ )
7753
+ end
7754
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
7755
+
7756
+ ALL =
7757
+ T.let(
7758
+ :ALL,
7759
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
7760
+ )
7761
+
7762
+ sig do
7763
+ override.returns(
7764
+ T::Array[
7765
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
7766
+ ]
7767
+ )
7768
+ end
7769
+ def self.values
7770
+ end
7771
+ end
7772
+ end
7773
+
7774
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
7775
+ OrHash =
7776
+ T.type_alias do
7777
+ T.any(
7778
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
7779
+ MetronomeSDK::Internal::AnyHash
7780
+ )
7781
+ end
7782
+
7783
+ sig do
7784
+ returns(
7785
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
7786
+ )
7787
+ end
7788
+ attr_accessor :type
7789
+
7790
+ sig do
7791
+ params(
7792
+ type:
7793
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
7794
+ ).returns(T.attached_class)
7795
+ end
7796
+ def self.new(type:)
7797
+ end
7798
+
7799
+ sig do
7800
+ override.returns(
7801
+ {
7802
+ type:
7803
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
7804
+ }
7805
+ )
7806
+ end
7807
+ def to_hash
7808
+ end
7809
+
7810
+ module Type
7811
+ extend MetronomeSDK::Internal::Type::Enum
7812
+
7813
+ TaggedSymbol =
7814
+ T.type_alias do
7815
+ T.all(
7816
+ Symbol,
7817
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
7818
+ )
7819
+ end
7820
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
7821
+
7822
+ NONE =
7823
+ T.let(
7824
+ :NONE,
7825
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
7826
+ )
7827
+
7828
+ sig do
7829
+ override.returns(
7830
+ T::Array[
7831
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
7832
+ ]
7833
+ )
7834
+ end
7835
+ def self.values
7836
+ end
7837
+ end
7838
+ end
7839
+
7840
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
7841
+ OrHash =
7842
+ T.type_alias do
7843
+ T.any(
7844
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
7845
+ MetronomeSDK::Internal::AnyHash
7846
+ )
7847
+ end
7848
+
7849
+ sig { returns(T::Array[String]) }
7850
+ attr_accessor :contract_ids
7851
+
7852
+ sig do
7853
+ returns(
7854
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
7855
+ )
7856
+ end
7857
+ attr_accessor :type
7858
+
7859
+ sig do
7860
+ params(
7861
+ contract_ids: T::Array[String],
7862
+ type:
7863
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
7864
+ ).returns(T.attached_class)
7865
+ end
7866
+ def self.new(contract_ids:, type:)
7867
+ end
7868
+
7869
+ sig do
7870
+ override.returns(
7871
+ {
7872
+ contract_ids: T::Array[String],
7873
+ type:
7874
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
7875
+ }
7876
+ )
7877
+ end
7878
+ def to_hash
7879
+ end
7880
+
7881
+ module Type
7882
+ extend MetronomeSDK::Internal::Type::Enum
7883
+
7884
+ TaggedSymbol =
7885
+ T.type_alias do
7886
+ T.all(
7887
+ Symbol,
7888
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
7889
+ )
7890
+ end
7891
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
7892
+
7893
+ CONTRACT_IDS =
7894
+ T.let(
7895
+ :CONTRACT_IDS,
7896
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
7897
+ )
7898
+
7899
+ sig do
7900
+ override.returns(
7901
+ T::Array[
7902
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
7903
+ ]
7904
+ )
7905
+ end
7906
+ def self.values
7907
+ end
7908
+ end
7909
+ end
7910
+
7911
+ sig do
7912
+ override.returns(
7913
+ T::Array[
7914
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::Variants
7915
+ ]
7916
+ )
7917
+ end
7918
+ def self.variants
6725
7919
  end
6726
7920
  end
6727
7921
  end
@@ -7094,6 +8288,24 @@ module MetronomeSDK
7094
8288
  end
7095
8289
  attr_writer :access_schedule
7096
8290
 
8291
+ # Optional configuration for credit hierarchy access control
8292
+ sig do
8293
+ returns(
8294
+ T.nilable(
8295
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration
8296
+ )
8297
+ )
8298
+ end
8299
+ attr_reader :hierarchy_configuration
8300
+
8301
+ sig do
8302
+ params(
8303
+ hierarchy_configuration:
8304
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::OrHash
8305
+ ).void
8306
+ end
8307
+ attr_writer :hierarchy_configuration
8308
+
7097
8309
  sig { returns(T.nilable(String)) }
7098
8310
  attr_reader :name
7099
8311
 
@@ -7111,6 +8323,8 @@ module MetronomeSDK
7111
8323
  id: String,
7112
8324
  access_schedule:
7113
8325
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::AccessSchedule::OrHash,
8326
+ hierarchy_configuration:
8327
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::OrHash,
7114
8328
  name: String,
7115
8329
  netsuite_sales_order_id: T.nilable(String),
7116
8330
  rollover_fraction: T.nilable(Float)
@@ -7119,6 +8333,8 @@ module MetronomeSDK
7119
8333
  def self.new(
7120
8334
  id:,
7121
8335
  access_schedule: nil,
8336
+ # Optional configuration for credit hierarchy access control
8337
+ hierarchy_configuration: nil,
7122
8338
  name: nil,
7123
8339
  netsuite_sales_order_id: nil,
7124
8340
  rollover_fraction: nil
@@ -7131,6 +8347,8 @@ module MetronomeSDK
7131
8347
  id: String,
7132
8348
  access_schedule:
7133
8349
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::AccessSchedule,
8350
+ hierarchy_configuration:
8351
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration,
7134
8352
  name: String,
7135
8353
  netsuite_sales_order_id: T.nilable(String),
7136
8354
  rollover_fraction: T.nilable(Float)
@@ -7386,6 +8604,274 @@ module MetronomeSDK
7386
8604
  end
7387
8605
  end
7388
8606
  end
8607
+
8608
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
8609
+ OrHash =
8610
+ T.type_alias do
8611
+ T.any(
8612
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration,
8613
+ MetronomeSDK::Internal::AnyHash
8614
+ )
8615
+ end
8616
+
8617
+ sig do
8618
+ returns(
8619
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::Variants
8620
+ )
8621
+ end
8622
+ attr_accessor :child_access
8623
+
8624
+ # Optional configuration for credit hierarchy access control
8625
+ sig do
8626
+ params(
8627
+ child_access:
8628
+ T.any(
8629
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
8630
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
8631
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
8632
+ )
8633
+ ).returns(T.attached_class)
8634
+ end
8635
+ def self.new(child_access:)
8636
+ end
8637
+
8638
+ sig do
8639
+ override.returns(
8640
+ {
8641
+ child_access:
8642
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::Variants
8643
+ }
8644
+ )
8645
+ end
8646
+ def to_hash
8647
+ end
8648
+
8649
+ module ChildAccess
8650
+ extend MetronomeSDK::Internal::Type::Union
8651
+
8652
+ Variants =
8653
+ T.type_alias do
8654
+ T.any(
8655
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
8656
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
8657
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
8658
+ )
8659
+ end
8660
+
8661
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
8662
+ OrHash =
8663
+ T.type_alias do
8664
+ T.any(
8665
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
8666
+ MetronomeSDK::Internal::AnyHash
8667
+ )
8668
+ end
8669
+
8670
+ sig do
8671
+ returns(
8672
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
8673
+ )
8674
+ end
8675
+ attr_accessor :type
8676
+
8677
+ sig do
8678
+ params(
8679
+ type:
8680
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
8681
+ ).returns(T.attached_class)
8682
+ end
8683
+ def self.new(type:)
8684
+ end
8685
+
8686
+ sig do
8687
+ override.returns(
8688
+ {
8689
+ type:
8690
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
8691
+ }
8692
+ )
8693
+ end
8694
+ def to_hash
8695
+ end
8696
+
8697
+ module Type
8698
+ extend MetronomeSDK::Internal::Type::Enum
8699
+
8700
+ TaggedSymbol =
8701
+ T.type_alias do
8702
+ T.all(
8703
+ Symbol,
8704
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
8705
+ )
8706
+ end
8707
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
8708
+
8709
+ ALL =
8710
+ T.let(
8711
+ :ALL,
8712
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
8713
+ )
8714
+
8715
+ sig do
8716
+ override.returns(
8717
+ T::Array[
8718
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
8719
+ ]
8720
+ )
8721
+ end
8722
+ def self.values
8723
+ end
8724
+ end
8725
+ end
8726
+
8727
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
8728
+ OrHash =
8729
+ T.type_alias do
8730
+ T.any(
8731
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
8732
+ MetronomeSDK::Internal::AnyHash
8733
+ )
8734
+ end
8735
+
8736
+ sig do
8737
+ returns(
8738
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
8739
+ )
8740
+ end
8741
+ attr_accessor :type
8742
+
8743
+ sig do
8744
+ params(
8745
+ type:
8746
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
8747
+ ).returns(T.attached_class)
8748
+ end
8749
+ def self.new(type:)
8750
+ end
8751
+
8752
+ sig do
8753
+ override.returns(
8754
+ {
8755
+ type:
8756
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
8757
+ }
8758
+ )
8759
+ end
8760
+ def to_hash
8761
+ end
8762
+
8763
+ module Type
8764
+ extend MetronomeSDK::Internal::Type::Enum
8765
+
8766
+ TaggedSymbol =
8767
+ T.type_alias do
8768
+ T.all(
8769
+ Symbol,
8770
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
8771
+ )
8772
+ end
8773
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
8774
+
8775
+ NONE =
8776
+ T.let(
8777
+ :NONE,
8778
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
8779
+ )
8780
+
8781
+ sig do
8782
+ override.returns(
8783
+ T::Array[
8784
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
8785
+ ]
8786
+ )
8787
+ end
8788
+ def self.values
8789
+ end
8790
+ end
8791
+ end
8792
+
8793
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
8794
+ OrHash =
8795
+ T.type_alias do
8796
+ T.any(
8797
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
8798
+ MetronomeSDK::Internal::AnyHash
8799
+ )
8800
+ end
8801
+
8802
+ sig { returns(T::Array[String]) }
8803
+ attr_accessor :contract_ids
8804
+
8805
+ sig do
8806
+ returns(
8807
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
8808
+ )
8809
+ end
8810
+ attr_accessor :type
8811
+
8812
+ sig do
8813
+ params(
8814
+ contract_ids: T::Array[String],
8815
+ type:
8816
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
8817
+ ).returns(T.attached_class)
8818
+ end
8819
+ def self.new(contract_ids:, type:)
8820
+ end
8821
+
8822
+ sig do
8823
+ override.returns(
8824
+ {
8825
+ contract_ids: T::Array[String],
8826
+ type:
8827
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
8828
+ }
8829
+ )
8830
+ end
8831
+ def to_hash
8832
+ end
8833
+
8834
+ module Type
8835
+ extend MetronomeSDK::Internal::Type::Enum
8836
+
8837
+ TaggedSymbol =
8838
+ T.type_alias do
8839
+ T.all(
8840
+ Symbol,
8841
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
8842
+ )
8843
+ end
8844
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
8845
+
8846
+ CONTRACT_IDS =
8847
+ T.let(
8848
+ :CONTRACT_IDS,
8849
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
8850
+ )
8851
+
8852
+ sig do
8853
+ override.returns(
8854
+ T::Array[
8855
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
8856
+ ]
8857
+ )
8858
+ end
8859
+ def self.values
8860
+ end
8861
+ end
8862
+ end
8863
+
8864
+ sig do
8865
+ override.returns(
8866
+ T::Array[
8867
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::ChildAccess::Variants
8868
+ ]
8869
+ )
8870
+ end
8871
+ def self.variants
8872
+ end
8873
+ end
8874
+ end
7389
8875
  end
7390
8876
 
7391
8877
  class UpdateDiscount < MetronomeSDK::Internal::Type::BaseModel
@@ -7480,7 +8966,7 @@ module MetronomeSDK
7480
8966
  )
7481
8967
  end
7482
8968
 
7483
- # Defaults to USD if not passed. Only USD is supported at this time.
8969
+ # Defaults to USD (cents) if not passed.
7484
8970
  sig { returns(T.nilable(String)) }
7485
8971
  attr_reader :credit_type_id
7486
8972
 
@@ -7542,7 +9028,7 @@ module MetronomeSDK
7542
9028
  ).returns(T.attached_class)
7543
9029
  end
7544
9030
  def self.new(
7545
- # Defaults to USD if not passed. Only USD is supported at this time.
9031
+ # Defaults to USD (cents) if not passed.
7546
9032
  credit_type_id: nil,
7547
9033
  # Enter the unit price and quantity for the charge or instead only send the
7548
9034
  # amount. If amount is sent, the unit price is assumed to be the amount and
@@ -8019,6 +9505,8 @@ module MetronomeSDK
8019
9505
  # or credit. A customer's usage needs to meet the condition of at least one of the
8020
9506
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
8021
9507
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
9508
+ # Instead, to target usage by product or product tag, pass those values in the
9509
+ # body of `specifiers`.
8022
9510
  sig do
8023
9511
  returns(
8024
9512
  T.nilable(
@@ -8064,6 +9552,8 @@ module MetronomeSDK
8064
9552
  # or credit. A customer's usage needs to meet the condition of at least one of the
8065
9553
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
8066
9554
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
9555
+ # Instead, to target usage by product or product tag, pass those values in the
9556
+ # body of `specifiers`.
8067
9557
  specifiers: nil
8068
9558
  )
8069
9559
  end