metronome-sdk 0.1.0.pre.alpha.4 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/cursor_page.rb +1 -1
  5. data/lib/metronome_sdk/internal/transport/base_client.rb +1 -1
  6. data/lib/metronome_sdk/models/commit.rb +81 -8
  7. data/lib/metronome_sdk/models/contract_without_amendments.rb +368 -2
  8. data/lib/metronome_sdk/models/credit.rb +67 -6
  9. data/lib/metronome_sdk/models/v1/alert_create_params.rb +9 -11
  10. data/lib/metronome_sdk/models/v1/contract_create_params.rb +399 -12
  11. data/lib/metronome_sdk/models/v1/contract_list_balances_params.rb +9 -1
  12. data/lib/metronome_sdk/models/v1/customers/commit_list_params.rb +9 -1
  13. data/lib/metronome_sdk/models/v1/customers/credit_list_params.rb +9 -1
  14. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +29 -1
  15. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  16. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +2 -0
  17. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +2 -0
  18. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +417 -18
  19. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +776 -12
  20. data/lib/metronome_sdk/models/v2/contract_list_response.rb +529 -22
  21. data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +529 -22
  22. data/lib/metronome_sdk/resources/v1/alerts.rb +2 -2
  23. data/lib/metronome_sdk/resources/v1/contracts.rb +3 -1
  24. data/lib/metronome_sdk/resources/v1/customers/commits.rb +3 -1
  25. data/lib/metronome_sdk/resources/v1/customers/credits.rb +3 -1
  26. data/lib/metronome_sdk/version.rb +1 -1
  27. data/rbi/metronome_sdk/internal/transport/base_client.rbi +1 -1
  28. data/rbi/metronome_sdk/models/commit.rbi +173 -15
  29. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +888 -6
  30. data/rbi/metronome_sdk/models/credit.rbi +141 -12
  31. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +16 -18
  32. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1160 -226
  33. data/rbi/metronome_sdk/models/v1/contract_list_balances_params.rbi +11 -0
  34. data/rbi/metronome_sdk/models/v1/customers/commit_list_params.rbi +11 -0
  35. data/rbi/metronome_sdk/models/v1/customers/credit_list_params.rbi +11 -0
  36. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +60 -0
  37. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  38. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +4 -0
  39. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +4 -0
  40. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +1192 -234
  41. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +2155 -87
  42. data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +1260 -47
  43. data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +1260 -47
  44. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -5
  45. data/rbi/metronome_sdk/resources/v1/contracts.rbi +3 -0
  46. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +3 -0
  47. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +3 -0
  48. data/rbi/metronome_sdk/resources/v2/contracts.rbi +4 -0
  49. data/sig/metronome_sdk/internal/transport/base_client.rbs +1 -1
  50. data/sig/metronome_sdk/models/commit.rbs +93 -15
  51. data/sig/metronome_sdk/models/contract_without_amendments.rbs +366 -6
  52. data/sig/metronome_sdk/models/credit.rbs +73 -9
  53. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +9 -9
  54. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +376 -3
  55. data/sig/metronome_sdk/models/v1/contract_list_balances_params.rbs +7 -0
  56. data/sig/metronome_sdk/models/v1/customers/commit_list_params.rbs +7 -0
  57. data/sig/metronome_sdk/models/v1/customers/credit_list_params.rbs +7 -0
  58. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +21 -0
  59. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  60. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +376 -3
  61. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +858 -6
  62. data/sig/metronome_sdk/models/v2/contract_list_response.rbs +558 -30
  63. data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +558 -30
  64. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -1
  65. data/sig/metronome_sdk/resources/v1/contracts.rbs +1 -0
  66. data/sig/metronome_sdk/resources/v1/customers/commits.rbs +1 -0
  67. data/sig/metronome_sdk/resources/v1/customers/credits.rbs +1 -0
  68. metadata +4 -4
@@ -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,
@@ -1492,6 +1816,274 @@ module MetronomeSDK
1492
1816
  end
1493
1817
  end
1494
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
+ )
2062
+
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
2074
+
2075
+ sig do
2076
+ override.returns(
2077
+ T::Array[
2078
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCredit::HierarchyConfiguration::ChildAccess::Variants
2079
+ ]
2080
+ )
2081
+ end
2082
+ def self.variants
2083
+ end
2084
+ end
2085
+ end
2086
+
1495
2087
  class Specifier < MetronomeSDK::Internal::Type::BaseModel
1496
2088
  OrHash =
1497
2089
  T.type_alias do
@@ -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,6 +3628,24 @@ module MetronomeSDK
3032
3628
  sig { params(ending_before: Time).void }
3033
3629
  attr_writer :ending_before
3034
3630
 
3631
+ # Optional configuration for recurring credit hierarchy access control
3632
+ sig do
3633
+ returns(
3634
+ T.nilable(
3635
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration
3636
+ )
3637
+ )
3638
+ end
3639
+ attr_reader :hierarchy_configuration
3640
+
3641
+ sig do
3642
+ params(
3643
+ hierarchy_configuration:
3644
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::OrHash
3645
+ ).void
3646
+ end
3647
+ attr_writer :hierarchy_configuration
3648
+
3035
3649
  # The amount the customer should be billed for the commit. Not required.
3036
3650
  sig do
3037
3651
  returns(
@@ -3066,7 +3680,6 @@ module MetronomeSDK
3066
3680
 
3067
3681
  # Determines whether the first and last commit will be prorated. If not provided,
3068
3682
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
3069
- # subscription_config:
3070
3683
  sig do
3071
3684
  returns(
3072
3685
  T.nilable(
@@ -3139,6 +3752,24 @@ module MetronomeSDK
3139
3752
  end
3140
3753
  attr_writer :specifiers
3141
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
+
3142
3773
  sig do
3143
3774
  params(
3144
3775
  id: String,
@@ -3158,6 +3789,8 @@ module MetronomeSDK
3158
3789
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::Contract::OrHash,
3159
3790
  description: String,
3160
3791
  ending_before: Time,
3792
+ hierarchy_configuration:
3793
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::OrHash,
3161
3794
  invoice_amount:
3162
3795
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::InvoiceAmount::OrHash,
3163
3796
  name: String,
@@ -3170,7 +3803,9 @@ module MetronomeSDK
3170
3803
  specifiers:
3171
3804
  T::Array[
3172
3805
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::Specifier::OrHash
3173
- ]
3806
+ ],
3807
+ subscription_config:
3808
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig::OrHash
3174
3809
  ).returns(T.attached_class)
3175
3810
  end
3176
3811
  def self.new(
@@ -3195,6 +3830,8 @@ module MetronomeSDK
3195
3830
  description: nil,
3196
3831
  # Determines when the contract will stop creating recurring commits. Optional
3197
3832
  ending_before: nil,
3833
+ # Optional configuration for recurring credit hierarchy access control
3834
+ hierarchy_configuration: nil,
3198
3835
  # The amount the customer should be billed for the commit. Not required.
3199
3836
  invoice_amount: nil,
3200
3837
  # Displayed on invoices. Will be passed through to the individual commits
@@ -3203,7 +3840,6 @@ module MetronomeSDK
3203
3840
  netsuite_sales_order_id: nil,
3204
3841
  # Determines whether the first and last commit will be prorated. If not provided,
3205
3842
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
3206
- # subscription_config:
3207
3843
  proration: nil,
3208
3844
  # The frequency at which the recurring commits will be created. If not provided: -
3209
3845
  # The commits will be created on the usage invoice frequency. If provided: - The
@@ -3218,7 +3854,9 @@ module MetronomeSDK
3218
3854
  # List of filters that determine what kind of customer usage draws down a commit
3219
3855
  # or credit. A customer's usage needs to meet the condition of at least one of the
3220
3856
  # specifiers to contribute to a commit's or credit's drawdown.
3221
- specifiers: nil
3857
+ specifiers: nil,
3858
+ # Attach a subscription to the recurring commit/credit.
3859
+ subscription_config: nil
3222
3860
  )
3223
3861
  end
3224
3862
 
@@ -3242,6 +3880,8 @@ module MetronomeSDK
3242
3880
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::Contract,
3243
3881
  description: String,
3244
3882
  ending_before: Time,
3883
+ hierarchy_configuration:
3884
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration,
3245
3885
  invoice_amount:
3246
3886
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::InvoiceAmount,
3247
3887
  name: String,
@@ -3254,7 +3894,9 @@ module MetronomeSDK
3254
3894
  specifiers:
3255
3895
  T::Array[
3256
3896
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::Specifier
3257
- ]
3897
+ ],
3898
+ subscription_config:
3899
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::SubscriptionConfig
3258
3900
  }
3259
3901
  )
3260
3902
  end
@@ -3455,12 +4097,280 @@ module MetronomeSDK
3455
4097
  sig { returns(String) }
3456
4098
  attr_accessor :id
3457
4099
 
3458
- sig { params(id: String).returns(T.attached_class) }
3459
- def self.new(id:)
3460
- end
4100
+ sig { params(id: String).returns(T.attached_class) }
4101
+ def self.new(id:)
4102
+ end
4103
+
4104
+ sig { override.returns({ id: String }) }
4105
+ def to_hash
4106
+ end
4107
+ end
4108
+
4109
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
4110
+ OrHash =
4111
+ T.type_alias do
4112
+ T.any(
4113
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration,
4114
+ MetronomeSDK::Internal::AnyHash
4115
+ )
4116
+ end
4117
+
4118
+ sig do
4119
+ returns(
4120
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::Variants
4121
+ )
4122
+ end
4123
+ attr_accessor :child_access
4124
+
4125
+ # Optional configuration for recurring credit hierarchy access control
4126
+ sig do
4127
+ params(
4128
+ child_access:
4129
+ T.any(
4130
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
4131
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
4132
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
4133
+ )
4134
+ ).returns(T.attached_class)
4135
+ end
4136
+ def self.new(child_access:)
4137
+ end
4138
+
4139
+ sig do
4140
+ override.returns(
4141
+ {
4142
+ child_access:
4143
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::Variants
4144
+ }
4145
+ )
4146
+ end
4147
+ def to_hash
4148
+ end
4149
+
4150
+ module ChildAccess
4151
+ extend MetronomeSDK::Internal::Type::Union
4152
+
4153
+ Variants =
4154
+ T.type_alias do
4155
+ T.any(
4156
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
4157
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
4158
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
4159
+ )
4160
+ end
4161
+
4162
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
4163
+ OrHash =
4164
+ T.type_alias do
4165
+ T.any(
4166
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
4167
+ MetronomeSDK::Internal::AnyHash
4168
+ )
4169
+ end
4170
+
4171
+ sig do
4172
+ returns(
4173
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
4174
+ )
4175
+ end
4176
+ attr_accessor :type
4177
+
4178
+ sig do
4179
+ params(
4180
+ type:
4181
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
4182
+ ).returns(T.attached_class)
4183
+ end
4184
+ def self.new(type:)
4185
+ end
4186
+
4187
+ sig do
4188
+ override.returns(
4189
+ {
4190
+ type:
4191
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
4192
+ }
4193
+ )
4194
+ end
4195
+ def to_hash
4196
+ end
4197
+
4198
+ module Type
4199
+ extend MetronomeSDK::Internal::Type::Enum
4200
+
4201
+ TaggedSymbol =
4202
+ T.type_alias do
4203
+ T.all(
4204
+ Symbol,
4205
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
4206
+ )
4207
+ end
4208
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4209
+
4210
+ ALL =
4211
+ T.let(
4212
+ :ALL,
4213
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
4214
+ )
4215
+
4216
+ sig do
4217
+ override.returns(
4218
+ T::Array[
4219
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
4220
+ ]
4221
+ )
4222
+ end
4223
+ def self.values
4224
+ end
4225
+ end
4226
+ end
4227
+
4228
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
4229
+ OrHash =
4230
+ T.type_alias do
4231
+ T.any(
4232
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
4233
+ MetronomeSDK::Internal::AnyHash
4234
+ )
4235
+ end
4236
+
4237
+ sig do
4238
+ returns(
4239
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
4240
+ )
4241
+ end
4242
+ attr_accessor :type
4243
+
4244
+ sig do
4245
+ params(
4246
+ type:
4247
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
4248
+ ).returns(T.attached_class)
4249
+ end
4250
+ def self.new(type:)
4251
+ end
4252
+
4253
+ sig do
4254
+ override.returns(
4255
+ {
4256
+ type:
4257
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
4258
+ }
4259
+ )
4260
+ end
4261
+ def to_hash
4262
+ end
4263
+
4264
+ module Type
4265
+ extend MetronomeSDK::Internal::Type::Enum
4266
+
4267
+ TaggedSymbol =
4268
+ T.type_alias do
4269
+ T.all(
4270
+ Symbol,
4271
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
4272
+ )
4273
+ end
4274
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4275
+
4276
+ NONE =
4277
+ T.let(
4278
+ :NONE,
4279
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
4280
+ )
4281
+
4282
+ sig do
4283
+ override.returns(
4284
+ T::Array[
4285
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
4286
+ ]
4287
+ )
4288
+ end
4289
+ def self.values
4290
+ end
4291
+ end
4292
+ end
4293
+
4294
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
4295
+ OrHash =
4296
+ T.type_alias do
4297
+ T.any(
4298
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
4299
+ MetronomeSDK::Internal::AnyHash
4300
+ )
4301
+ end
4302
+
4303
+ sig { returns(T::Array[String]) }
4304
+ attr_accessor :contract_ids
4305
+
4306
+ sig do
4307
+ returns(
4308
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
4309
+ )
4310
+ end
4311
+ attr_accessor :type
4312
+
4313
+ sig do
4314
+ params(
4315
+ contract_ids: T::Array[String],
4316
+ type:
4317
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
4318
+ ).returns(T.attached_class)
4319
+ end
4320
+ def self.new(contract_ids:, type:)
4321
+ end
4322
+
4323
+ sig do
4324
+ override.returns(
4325
+ {
4326
+ contract_ids: T::Array[String],
4327
+ type:
4328
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
4329
+ }
4330
+ )
4331
+ end
4332
+ def to_hash
4333
+ end
4334
+
4335
+ module Type
4336
+ extend MetronomeSDK::Internal::Type::Enum
4337
+
4338
+ TaggedSymbol =
4339
+ T.type_alias do
4340
+ T.all(
4341
+ Symbol,
4342
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
4343
+ )
4344
+ end
4345
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4346
+
4347
+ CONTRACT_IDS =
4348
+ T.let(
4349
+ :CONTRACT_IDS,
4350
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
4351
+ )
4352
+
4353
+ sig do
4354
+ override.returns(
4355
+ T::Array[
4356
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
4357
+ ]
4358
+ )
4359
+ end
4360
+ def self.values
4361
+ end
4362
+ end
4363
+ end
3461
4364
 
3462
- sig { override.returns({ id: String }) }
3463
- def to_hash
4365
+ sig do
4366
+ override.returns(
4367
+ T::Array[
4368
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCommit::HierarchyConfiguration::ChildAccess::Variants
4369
+ ]
4370
+ )
4371
+ end
4372
+ def self.variants
4373
+ end
3464
4374
  end
3465
4375
  end
3466
4376
 
@@ -3504,7 +4414,6 @@ module MetronomeSDK
3504
4414
 
3505
4415
  # Determines whether the first and last commit will be prorated. If not provided,
3506
4416
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
3507
- # subscription_config:
3508
4417
  module Proration
3509
4418
  extend MetronomeSDK::Internal::Type::Enum
3510
4419
 
@@ -3668,6 +4577,133 @@ module MetronomeSDK
3668
4577
  def to_hash
3669
4578
  end
3670
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
3671
4707
  end
3672
4708
 
3673
4709
  class AddRecurringCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -3790,6 +4826,24 @@ module MetronomeSDK
3790
4826
  sig { params(ending_before: Time).void }
3791
4827
  attr_writer :ending_before
3792
4828
 
4829
+ # Optional configuration for recurring credit hierarchy access control
4830
+ sig do
4831
+ returns(
4832
+ T.nilable(
4833
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration
4834
+ )
4835
+ )
4836
+ end
4837
+ attr_reader :hierarchy_configuration
4838
+
4839
+ sig do
4840
+ params(
4841
+ hierarchy_configuration:
4842
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::OrHash
4843
+ ).void
4844
+ end
4845
+ attr_writer :hierarchy_configuration
4846
+
3793
4847
  # Displayed on invoices. Will be passed through to the individual commits
3794
4848
  sig { returns(T.nilable(String)) }
3795
4849
  attr_reader :name
@@ -3806,7 +4860,6 @@ module MetronomeSDK
3806
4860
 
3807
4861
  # Determines whether the first and last commit will be prorated. If not provided,
3808
4862
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
3809
- # subscription_config:
3810
4863
  sig do
3811
4864
  returns(
3812
4865
  T.nilable(
@@ -3879,6 +4932,24 @@ module MetronomeSDK
3879
4932
  end
3880
4933
  attr_writer :specifiers
3881
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
+
3882
4953
  sig do
3883
4954
  params(
3884
4955
  id: String,
@@ -3898,6 +4969,8 @@ module MetronomeSDK
3898
4969
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::Contract::OrHash,
3899
4970
  description: String,
3900
4971
  ending_before: Time,
4972
+ hierarchy_configuration:
4973
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::OrHash,
3901
4974
  name: String,
3902
4975
  netsuite_sales_order_id: String,
3903
4976
  proration:
@@ -3908,7 +4981,9 @@ module MetronomeSDK
3908
4981
  specifiers:
3909
4982
  T::Array[
3910
4983
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::Specifier::OrHash
3911
- ]
4984
+ ],
4985
+ subscription_config:
4986
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig::OrHash
3912
4987
  ).returns(T.attached_class)
3913
4988
  end
3914
4989
  def self.new(
@@ -3933,13 +5008,14 @@ module MetronomeSDK
3933
5008
  description: nil,
3934
5009
  # Determines when the contract will stop creating recurring commits. Optional
3935
5010
  ending_before: nil,
5011
+ # Optional configuration for recurring credit hierarchy access control
5012
+ hierarchy_configuration: nil,
3936
5013
  # Displayed on invoices. Will be passed through to the individual commits
3937
5014
  name: nil,
3938
5015
  # Will be passed down to the individual commits
3939
5016
  netsuite_sales_order_id: nil,
3940
5017
  # Determines whether the first and last commit will be prorated. If not provided,
3941
5018
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
3942
- # subscription_config:
3943
5019
  proration: nil,
3944
5020
  # The frequency at which the recurring commits will be created. If not provided: -
3945
5021
  # The commits will be created on the usage invoice frequency. If provided: - The
@@ -3954,7 +5030,9 @@ module MetronomeSDK
3954
5030
  # List of filters that determine what kind of customer usage draws down a commit
3955
5031
  # or credit. A customer's usage needs to meet the condition of at least one of the
3956
5032
  # specifiers to contribute to a commit's or credit's drawdown.
3957
- specifiers: nil
5033
+ specifiers: nil,
5034
+ # Attach a subscription to the recurring commit/credit.
5035
+ subscription_config: nil
3958
5036
  )
3959
5037
  end
3960
5038
 
@@ -3978,6 +5056,8 @@ module MetronomeSDK
3978
5056
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::Contract,
3979
5057
  description: String,
3980
5058
  ending_before: Time,
5059
+ hierarchy_configuration:
5060
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration,
3981
5061
  name: String,
3982
5062
  netsuite_sales_order_id: String,
3983
5063
  proration:
@@ -3988,7 +5068,9 @@ module MetronomeSDK
3988
5068
  specifiers:
3989
5069
  T::Array[
3990
5070
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::Specifier
3991
- ]
5071
+ ],
5072
+ subscription_config:
5073
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::SubscriptionConfig
3992
5074
  }
3993
5075
  )
3994
5076
  end
@@ -4177,30 +5259,297 @@ module MetronomeSDK
4177
5259
  end
4178
5260
  end
4179
5261
 
4180
- class Contract < MetronomeSDK::Internal::Type::BaseModel
4181
- OrHash =
4182
- T.type_alias do
4183
- T.any(
4184
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::Contract,
4185
- MetronomeSDK::Internal::AnyHash
4186
- )
4187
- end
5262
+ class Contract < MetronomeSDK::Internal::Type::BaseModel
5263
+ OrHash =
5264
+ T.type_alias do
5265
+ T.any(
5266
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::Contract,
5267
+ MetronomeSDK::Internal::AnyHash
5268
+ )
5269
+ end
5270
+
5271
+ sig { returns(String) }
5272
+ attr_accessor :id
5273
+
5274
+ sig { params(id: String).returns(T.attached_class) }
5275
+ def self.new(id:)
5276
+ end
5277
+
5278
+ sig { override.returns({ id: String }) }
5279
+ def to_hash
5280
+ end
5281
+ end
5282
+
5283
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
5284
+ OrHash =
5285
+ T.type_alias do
5286
+ T.any(
5287
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration,
5288
+ MetronomeSDK::Internal::AnyHash
5289
+ )
5290
+ end
5291
+
5292
+ sig do
5293
+ returns(
5294
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::Variants
5295
+ )
5296
+ end
5297
+ attr_accessor :child_access
5298
+
5299
+ # Optional configuration for recurring credit hierarchy access control
5300
+ sig do
5301
+ params(
5302
+ child_access:
5303
+ T.any(
5304
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
5305
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
5306
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
5307
+ )
5308
+ ).returns(T.attached_class)
5309
+ end
5310
+ def self.new(child_access:)
5311
+ end
5312
+
5313
+ sig do
5314
+ override.returns(
5315
+ {
5316
+ child_access:
5317
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::Variants
5318
+ }
5319
+ )
5320
+ end
5321
+ def to_hash
5322
+ end
5323
+
5324
+ module ChildAccess
5325
+ extend MetronomeSDK::Internal::Type::Union
5326
+
5327
+ Variants =
5328
+ T.type_alias do
5329
+ T.any(
5330
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5331
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5332
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
5333
+ )
5334
+ end
5335
+
5336
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
5337
+ OrHash =
5338
+ T.type_alias do
5339
+ T.any(
5340
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5341
+ MetronomeSDK::Internal::AnyHash
5342
+ )
5343
+ end
5344
+
5345
+ sig do
5346
+ returns(
5347
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
5348
+ )
5349
+ end
5350
+ attr_accessor :type
5351
+
5352
+ sig do
5353
+ params(
5354
+ type:
5355
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
5356
+ ).returns(T.attached_class)
5357
+ end
5358
+ def self.new(type:)
5359
+ end
5360
+
5361
+ sig do
5362
+ override.returns(
5363
+ {
5364
+ type:
5365
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
5366
+ }
5367
+ )
5368
+ end
5369
+ def to_hash
5370
+ end
5371
+
5372
+ module Type
5373
+ extend MetronomeSDK::Internal::Type::Enum
5374
+
5375
+ TaggedSymbol =
5376
+ T.type_alias do
5377
+ T.all(
5378
+ Symbol,
5379
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
5380
+ )
5381
+ end
5382
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5383
+
5384
+ ALL =
5385
+ T.let(
5386
+ :ALL,
5387
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
5388
+ )
5389
+
5390
+ sig do
5391
+ override.returns(
5392
+ T::Array[
5393
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
5394
+ ]
5395
+ )
5396
+ end
5397
+ def self.values
5398
+ end
5399
+ end
5400
+ end
5401
+
5402
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
5403
+ OrHash =
5404
+ T.type_alias do
5405
+ T.any(
5406
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5407
+ MetronomeSDK::Internal::AnyHash
5408
+ )
5409
+ end
5410
+
5411
+ sig do
5412
+ returns(
5413
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
5414
+ )
5415
+ end
5416
+ attr_accessor :type
5417
+
5418
+ sig do
5419
+ params(
5420
+ type:
5421
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
5422
+ ).returns(T.attached_class)
5423
+ end
5424
+ def self.new(type:)
5425
+ end
5426
+
5427
+ sig do
5428
+ override.returns(
5429
+ {
5430
+ type:
5431
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
5432
+ }
5433
+ )
5434
+ end
5435
+ def to_hash
5436
+ end
5437
+
5438
+ module Type
5439
+ extend MetronomeSDK::Internal::Type::Enum
5440
+
5441
+ TaggedSymbol =
5442
+ T.type_alias do
5443
+ T.all(
5444
+ Symbol,
5445
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
5446
+ )
5447
+ end
5448
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5449
+
5450
+ NONE =
5451
+ T.let(
5452
+ :NONE,
5453
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
5454
+ )
5455
+
5456
+ sig do
5457
+ override.returns(
5458
+ T::Array[
5459
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
5460
+ ]
5461
+ )
5462
+ end
5463
+ def self.values
5464
+ end
5465
+ end
5466
+ end
5467
+
5468
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
5469
+ OrHash =
5470
+ T.type_alias do
5471
+ T.any(
5472
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
5473
+ MetronomeSDK::Internal::AnyHash
5474
+ )
5475
+ end
5476
+
5477
+ sig { returns(T::Array[String]) }
5478
+ attr_accessor :contract_ids
5479
+
5480
+ sig do
5481
+ returns(
5482
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
5483
+ )
5484
+ end
5485
+ attr_accessor :type
5486
+
5487
+ sig do
5488
+ params(
5489
+ contract_ids: T::Array[String],
5490
+ type:
5491
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
5492
+ ).returns(T.attached_class)
5493
+ end
5494
+ def self.new(contract_ids:, type:)
5495
+ end
5496
+
5497
+ sig do
5498
+ override.returns(
5499
+ {
5500
+ contract_ids: T::Array[String],
5501
+ type:
5502
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
5503
+ }
5504
+ )
5505
+ end
5506
+ def to_hash
5507
+ end
4188
5508
 
4189
- sig { returns(String) }
4190
- attr_accessor :id
5509
+ module Type
5510
+ extend MetronomeSDK::Internal::Type::Enum
5511
+
5512
+ TaggedSymbol =
5513
+ T.type_alias do
5514
+ T.all(
5515
+ Symbol,
5516
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
5517
+ )
5518
+ end
5519
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5520
+
5521
+ CONTRACT_IDS =
5522
+ T.let(
5523
+ :CONTRACT_IDS,
5524
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
5525
+ )
4191
5526
 
4192
- sig { params(id: String).returns(T.attached_class) }
4193
- def self.new(id:)
4194
- end
5527
+ sig do
5528
+ override.returns(
5529
+ T::Array[
5530
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
5531
+ ]
5532
+ )
5533
+ end
5534
+ def self.values
5535
+ end
5536
+ end
5537
+ end
4195
5538
 
4196
- sig { override.returns({ id: String }) }
4197
- def to_hash
5539
+ sig do
5540
+ override.returns(
5541
+ T::Array[
5542
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddRecurringCredit::HierarchyConfiguration::ChildAccess::Variants
5543
+ ]
5544
+ )
5545
+ end
5546
+ def self.variants
5547
+ end
4198
5548
  end
4199
5549
  end
4200
5550
 
4201
5551
  # Determines whether the first and last commit will be prorated. If not provided,
4202
5552
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
4203
- # subscription_config:
4204
5553
  module Proration
4205
5554
  extend MetronomeSDK::Internal::Type::Enum
4206
5555
 
@@ -4364,6 +5713,133 @@ module MetronomeSDK
4364
5713
  def to_hash
4365
5714
  end
4366
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
4367
5843
  end
4368
5844
 
4369
5845
  class AddResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel
@@ -5780,6 +7256,24 @@ module MetronomeSDK
5780
7256
  sig { returns(T.nilable(T::Array[String])) }
5781
7257
  attr_accessor :applicable_product_tags
5782
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
+
5783
7277
  sig do
5784
7278
  returns(
5785
7279
  T.nilable(
@@ -5819,6 +7313,8 @@ module MetronomeSDK
5819
7313
  # or credit. A customer's usage needs to meet the condition of at least one of the
5820
7314
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
5821
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`.
5822
7318
  sig do
5823
7319
  returns(
5824
7320
  T.nilable(
@@ -5837,6 +7333,8 @@ module MetronomeSDK
5837
7333
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::AccessSchedule::OrHash,
5838
7334
  applicable_product_ids: T.nilable(T::Array[String]),
5839
7335
  applicable_product_tags: T.nilable(T::Array[String]),
7336
+ hierarchy_configuration:
7337
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::OrHash,
5840
7338
  invoice_schedule:
5841
7339
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::InvoiceSchedule::OrHash,
5842
7340
  name: String,
@@ -5862,6 +7360,8 @@ module MetronomeSDK
5862
7360
  # applicable_product_tags or specifiers are not provided, the commit applies to
5863
7361
  # all products.
5864
7362
  applicable_product_tags: nil,
7363
+ # Optional configuration for commit hierarchy access control
7364
+ hierarchy_configuration: nil,
5865
7365
  invoice_schedule: nil,
5866
7366
  name: nil,
5867
7367
  netsuite_sales_order_id: nil,
@@ -5871,6 +7371,8 @@ module MetronomeSDK
5871
7371
  # or credit. A customer's usage needs to meet the condition of at least one of the
5872
7372
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
5873
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`.
5874
7376
  specifiers: nil
5875
7377
  )
5876
7378
  end
@@ -5883,6 +7385,8 @@ module MetronomeSDK
5883
7385
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::AccessSchedule,
5884
7386
  applicable_product_ids: T.nilable(T::Array[String]),
5885
7387
  applicable_product_tags: T.nilable(T::Array[String]),
7388
+ hierarchy_configuration:
7389
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration,
5886
7390
  invoice_schedule:
5887
7391
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::InvoiceSchedule,
5888
7392
  name: String,
@@ -6071,79 +7575,347 @@ module MetronomeSDK
6071
7575
  )
6072
7576
  end
6073
7577
 
6074
- sig { returns(String) }
6075
- attr_accessor :id
7578
+ sig { returns(String) }
7579
+ attr_accessor :id
7580
+
7581
+ sig { params(id: String).returns(T.attached_class) }
7582
+ def self.new(id:)
7583
+ end
7584
+
7585
+ sig { override.returns({ id: String }) }
7586
+ def to_hash
7587
+ end
7588
+ end
7589
+
7590
+ class UpdateScheduleItem < MetronomeSDK::Internal::Type::BaseModel
7591
+ OrHash =
7592
+ T.type_alias do
7593
+ T.any(
7594
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::AccessSchedule::UpdateScheduleItem,
7595
+ MetronomeSDK::Internal::AnyHash
7596
+ )
7597
+ end
7598
+
7599
+ sig { returns(String) }
7600
+ attr_accessor :id
7601
+
7602
+ sig { returns(T.nilable(Float)) }
7603
+ attr_reader :amount
7604
+
7605
+ sig { params(amount: Float).void }
7606
+ attr_writer :amount
7607
+
7608
+ # RFC 3339 timestamp (exclusive)
7609
+ sig { returns(T.nilable(Time)) }
7610
+ attr_reader :ending_before
7611
+
7612
+ sig { params(ending_before: Time).void }
7613
+ attr_writer :ending_before
7614
+
7615
+ # RFC 3339 timestamp (inclusive)
7616
+ sig { returns(T.nilable(Time)) }
7617
+ attr_reader :starting_at
7618
+
7619
+ sig { params(starting_at: Time).void }
7620
+ attr_writer :starting_at
7621
+
7622
+ sig do
7623
+ params(
7624
+ id: String,
7625
+ amount: Float,
7626
+ ending_before: Time,
7627
+ starting_at: Time
7628
+ ).returns(T.attached_class)
7629
+ end
7630
+ def self.new(
7631
+ id:,
7632
+ amount: nil,
7633
+ # RFC 3339 timestamp (exclusive)
7634
+ ending_before: nil,
7635
+ # RFC 3339 timestamp (inclusive)
7636
+ starting_at: nil
7637
+ )
7638
+ end
7639
+
7640
+ sig do
7641
+ override.returns(
7642
+ {
7643
+ id: String,
7644
+ amount: Float,
7645
+ ending_before: Time,
7646
+ starting_at: Time
7647
+ }
7648
+ )
7649
+ end
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
+ )
6076
7761
 
6077
- sig { params(id: String).returns(T.attached_class) }
6078
- def self.new(id:)
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
6079
7772
  end
6080
7773
 
6081
- sig { override.returns({ id: String }) }
6082
- def to_hash
6083
- end
6084
- end
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
6085
7782
 
6086
- class UpdateScheduleItem < MetronomeSDK::Internal::Type::BaseModel
6087
- OrHash =
6088
- T.type_alias do
6089
- T.any(
6090
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::AccessSchedule::UpdateScheduleItem,
6091
- MetronomeSDK::Internal::AnyHash
7783
+ sig do
7784
+ returns(
7785
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
6092
7786
  )
6093
7787
  end
7788
+ attr_accessor :type
6094
7789
 
6095
- sig { returns(String) }
6096
- attr_accessor :id
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
6097
7798
 
6098
- sig { returns(T.nilable(Float)) }
6099
- attr_reader :amount
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
6100
7809
 
6101
- sig { params(amount: Float).void }
6102
- attr_writer :amount
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
+ )
6103
7827
 
6104
- # RFC 3339 timestamp (exclusive)
6105
- sig { returns(T.nilable(Time)) }
6106
- attr_reader :ending_before
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
6107
7839
 
6108
- sig { params(ending_before: Time).void }
6109
- attr_writer :ending_before
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
6110
7848
 
6111
- # RFC 3339 timestamp (inclusive)
6112
- sig { returns(T.nilable(Time)) }
6113
- attr_reader :starting_at
7849
+ sig { returns(T::Array[String]) }
7850
+ attr_accessor :contract_ids
6114
7851
 
6115
- sig { params(starting_at: Time).void }
6116
- attr_writer :starting_at
7852
+ sig do
7853
+ returns(
7854
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
7855
+ )
7856
+ end
7857
+ attr_accessor :type
6117
7858
 
6118
- sig do
6119
- params(
6120
- id: String,
6121
- amount: Float,
6122
- ending_before: Time,
6123
- starting_at: Time
6124
- ).returns(T.attached_class)
6125
- end
6126
- def self.new(
6127
- id:,
6128
- amount: nil,
6129
- # RFC 3339 timestamp (exclusive)
6130
- ending_before: nil,
6131
- # RFC 3339 timestamp (inclusive)
6132
- starting_at: nil
6133
- )
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
6134
7909
  end
6135
7910
 
6136
7911
  sig do
6137
7912
  override.returns(
6138
- {
6139
- id: String,
6140
- amount: Float,
6141
- ending_before: Time,
6142
- starting_at: Time
6143
- }
7913
+ T::Array[
7914
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCommit::HierarchyConfiguration::ChildAccess::Variants
7915
+ ]
6144
7916
  )
6145
7917
  end
6146
- def to_hash
7918
+ def self.variants
6147
7919
  end
6148
7920
  end
6149
7921
  end
@@ -6516,6 +8288,24 @@ module MetronomeSDK
6516
8288
  end
6517
8289
  attr_writer :access_schedule
6518
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
+
6519
8309
  sig { returns(T.nilable(String)) }
6520
8310
  attr_reader :name
6521
8311
 
@@ -6533,6 +8323,8 @@ module MetronomeSDK
6533
8323
  id: String,
6534
8324
  access_schedule:
6535
8325
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::AccessSchedule::OrHash,
8326
+ hierarchy_configuration:
8327
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration::OrHash,
6536
8328
  name: String,
6537
8329
  netsuite_sales_order_id: T.nilable(String),
6538
8330
  rollover_fraction: T.nilable(Float)
@@ -6541,6 +8333,8 @@ module MetronomeSDK
6541
8333
  def self.new(
6542
8334
  id:,
6543
8335
  access_schedule: nil,
8336
+ # Optional configuration for credit hierarchy access control
8337
+ hierarchy_configuration: nil,
6544
8338
  name: nil,
6545
8339
  netsuite_sales_order_id: nil,
6546
8340
  rollover_fraction: nil
@@ -6553,6 +8347,8 @@ module MetronomeSDK
6553
8347
  id: String,
6554
8348
  access_schedule:
6555
8349
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::AccessSchedule,
8350
+ hierarchy_configuration:
8351
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateCredit::HierarchyConfiguration,
6556
8352
  name: String,
6557
8353
  netsuite_sales_order_id: T.nilable(String),
6558
8354
  rollover_fraction: T.nilable(Float)
@@ -6808,6 +8604,274 @@ module MetronomeSDK
6808
8604
  end
6809
8605
  end
6810
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
6811
8875
  end
6812
8876
 
6813
8877
  class UpdateDiscount < MetronomeSDK::Internal::Type::BaseModel
@@ -6902,7 +8966,7 @@ module MetronomeSDK
6902
8966
  )
6903
8967
  end
6904
8968
 
6905
- # Defaults to USD if not passed. Only USD is supported at this time.
8969
+ # Defaults to USD (cents) if not passed.
6906
8970
  sig { returns(T.nilable(String)) }
6907
8971
  attr_reader :credit_type_id
6908
8972
 
@@ -6964,7 +9028,7 @@ module MetronomeSDK
6964
9028
  ).returns(T.attached_class)
6965
9029
  end
6966
9030
  def self.new(
6967
- # Defaults to USD if not passed. Only USD is supported at this time.
9031
+ # Defaults to USD (cents) if not passed.
6968
9032
  credit_type_id: nil,
6969
9033
  # Enter the unit price and quantity for the charge or instead only send the
6970
9034
  # amount. If amount is sent, the unit price is assumed to be the amount and
@@ -7441,6 +9505,8 @@ module MetronomeSDK
7441
9505
  # or credit. A customer's usage needs to meet the condition of at least one of the
7442
9506
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
7443
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`.
7444
9510
  sig do
7445
9511
  returns(
7446
9512
  T.nilable(
@@ -7486,6 +9552,8 @@ module MetronomeSDK
7486
9552
  # or credit. A customer's usage needs to meet the condition of at least one of the
7487
9553
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
7488
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`.
7489
9557
  specifiers: nil
7490
9558
  )
7491
9559
  end