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
@@ -930,6 +930,8 @@ module MetronomeSDK
930
930
  # or credit. A customer's usage needs to meet the condition of at least one of the
931
931
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
932
932
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
933
+ # Instead, to target usage by product or product tag, pass those values in the
934
+ # body of `specifiers`.
933
935
  sig do
934
936
  returns(
935
937
  T.nilable(
@@ -1033,6 +1035,8 @@ module MetronomeSDK
1033
1035
  # or credit. A customer's usage needs to meet the condition of at least one of the
1034
1036
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
1035
1037
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
1038
+ # Instead, to target usage by product or product tag, pass those values in the
1039
+ # body of `specifiers`.
1036
1040
  specifiers: nil,
1037
1041
  # A temporary ID for the commit that can be used to reference the commit for
1038
1042
  # commit specific overrides.
@@ -1494,7 +1498,7 @@ module MetronomeSDK
1494
1498
  )
1495
1499
  end
1496
1500
 
1497
- # Defaults to USD if not passed. Only USD is supported at this time.
1501
+ # Defaults to USD (cents) if not passed.
1498
1502
  sig { returns(T.nilable(String)) }
1499
1503
  attr_reader :credit_type_id
1500
1504
 
@@ -1559,7 +1563,7 @@ module MetronomeSDK
1559
1563
  ).returns(T.attached_class)
1560
1564
  end
1561
1565
  def self.new(
1562
- # Defaults to USD if not passed. Only USD is supported at this time.
1566
+ # Defaults to USD (cents) if not passed.
1563
1567
  credit_type_id: nil,
1564
1568
  # Enter the unit price and quantity for the charge or instead only send the
1565
1569
  # amount. If amount is sent, the unit price is assumed to be the amount and
@@ -2441,6 +2445,8 @@ module MetronomeSDK
2441
2445
  # or credit. A customer's usage needs to meet the condition of at least one of the
2442
2446
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2443
2447
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
2448
+ # Instead, to target usage by product or product tag, pass those values in the
2449
+ # body of `specifiers`.
2444
2450
  sig do
2445
2451
  returns(
2446
2452
  T.nilable(
@@ -2511,6 +2517,8 @@ module MetronomeSDK
2511
2517
  # or credit. A customer's usage needs to meet the condition of at least one of the
2512
2518
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
2513
2519
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
2520
+ # Instead, to target usage by product or product tag, pass those values in the
2521
+ # body of `specifiers`.
2514
2522
  specifiers: nil
2515
2523
  )
2516
2524
  end
@@ -3113,7 +3121,7 @@ module MetronomeSDK
3113
3121
  )
3114
3122
  end
3115
3123
 
3116
- # Defaults to USD if not passed. Only USD is supported at this time.
3124
+ # Defaults to USD (cents) if not passed.
3117
3125
  sig { returns(T.nilable(String)) }
3118
3126
  attr_reader :credit_type_id
3119
3127
 
@@ -3175,7 +3183,7 @@ module MetronomeSDK
3175
3183
  ).returns(T.attached_class)
3176
3184
  end
3177
3185
  def self.new(
3178
- # Defaults to USD if not passed. Only USD is supported at this time.
3186
+ # Defaults to USD (cents) if not passed.
3179
3187
  credit_type_id: nil,
3180
3188
  # Enter the unit price and quantity for the charge or instead only send the
3181
3189
  # amount. If amount is sent, the unit price is assumed to be the amount and
@@ -4369,6 +4377,8 @@ module MetronomeSDK
4369
4377
  # or credit. A customer's usage needs to meet the condition of at least one of the
4370
4378
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
4371
4379
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
4380
+ # Instead, to target usage by product or product tag, pass those values in the
4381
+ # body of `specifiers`.
4372
4382
  sig do
4373
4383
  returns(
4374
4384
  T.nilable(
@@ -4423,6 +4433,8 @@ module MetronomeSDK
4423
4433
  # or credit. A customer's usage needs to meet the condition of at least one of the
4424
4434
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
4425
4435
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
4436
+ # Instead, to target usage by product or product tag, pass those values in the
4437
+ # body of `specifiers`.
4426
4438
  specifiers: nil
4427
4439
  )
4428
4440
  end
@@ -5036,6 +5048,24 @@ module MetronomeSDK
5036
5048
  sig { params(ending_before: Time).void }
5037
5049
  attr_writer :ending_before
5038
5050
 
5051
+ # Optional configuration for recurring credit hierarchy access control
5052
+ sig do
5053
+ returns(
5054
+ T.nilable(
5055
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration
5056
+ )
5057
+ )
5058
+ end
5059
+ attr_reader :hierarchy_configuration
5060
+
5061
+ sig do
5062
+ params(
5063
+ hierarchy_configuration:
5064
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::OrHash
5065
+ ).void
5066
+ end
5067
+ attr_writer :hierarchy_configuration
5068
+
5039
5069
  # The amount the customer should be billed for the commit. Not required.
5040
5070
  sig do
5041
5071
  returns(
@@ -5140,6 +5170,8 @@ module MetronomeSDK
5140
5170
  # or credit. A customer's usage needs to meet the condition of at least one of the
5141
5171
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
5142
5172
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
5173
+ # Instead, to target usage by product or product tag, pass those values in the
5174
+ # body of `specifiers`.
5143
5175
  sig do
5144
5176
  returns(
5145
5177
  T.nilable(
@@ -5161,6 +5193,24 @@ module MetronomeSDK
5161
5193
  end
5162
5194
  attr_writer :specifiers
5163
5195
 
5196
+ # Attach a subscription to the recurring commit/credit.
5197
+ sig do
5198
+ returns(
5199
+ T.nilable(
5200
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig
5201
+ )
5202
+ )
5203
+ end
5204
+ attr_reader :subscription_config
5205
+
5206
+ sig do
5207
+ params(
5208
+ subscription_config:
5209
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::OrHash
5210
+ ).void
5211
+ end
5212
+ attr_writer :subscription_config
5213
+
5164
5214
  # A temporary ID that can be used to reference the recurring commit for commit
5165
5215
  # specific overrides.
5166
5216
  sig { returns(T.nilable(String)) }
@@ -5182,6 +5232,8 @@ module MetronomeSDK
5182
5232
  applicable_product_tags: T::Array[String],
5183
5233
  description: String,
5184
5234
  ending_before: Time,
5235
+ hierarchy_configuration:
5236
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::OrHash,
5185
5237
  invoice_amount:
5186
5238
  MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount::OrHash,
5187
5239
  name: String,
@@ -5197,6 +5249,8 @@ module MetronomeSDK
5197
5249
  T::Array[
5198
5250
  MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Specifier::OrHash
5199
5251
  ],
5252
+ subscription_config:
5253
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::OrHash,
5200
5254
  temporary_id: String
5201
5255
  ).returns(T.attached_class)
5202
5256
  end
@@ -5220,6 +5274,8 @@ module MetronomeSDK
5220
5274
  description: nil,
5221
5275
  # Determines when the contract will stop creating recurring commits. optional
5222
5276
  ending_before: nil,
5277
+ # Optional configuration for recurring credit hierarchy access control
5278
+ hierarchy_configuration: nil,
5223
5279
  # The amount the customer should be billed for the commit. Not required.
5224
5280
  invoice_amount: nil,
5225
5281
  # displayed on invoices. will be passed through to the individual commits
@@ -5245,7 +5301,11 @@ module MetronomeSDK
5245
5301
  # or credit. A customer's usage needs to meet the condition of at least one of the
5246
5302
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
5247
5303
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
5304
+ # Instead, to target usage by product or product tag, pass those values in the
5305
+ # body of `specifiers`.
5248
5306
  specifiers: nil,
5307
+ # Attach a subscription to the recurring commit/credit.
5308
+ subscription_config: nil,
5249
5309
  # A temporary ID that can be used to reference the recurring commit for commit
5250
5310
  # specific overrides.
5251
5311
  temporary_id: nil
@@ -5266,6 +5326,8 @@ module MetronomeSDK
5266
5326
  applicable_product_tags: T::Array[String],
5267
5327
  description: String,
5268
5328
  ending_before: Time,
5329
+ hierarchy_configuration:
5330
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration,
5269
5331
  invoice_amount:
5270
5332
  MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount,
5271
5333
  name: String,
@@ -5281,6 +5343,8 @@ module MetronomeSDK
5281
5343
  T::Array[
5282
5344
  MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Specifier
5283
5345
  ],
5346
+ subscription_config:
5347
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig,
5284
5348
  temporary_id: String
5285
5349
  }
5286
5350
  )
@@ -5421,180 +5485,456 @@ module MetronomeSDK
5421
5485
  end
5422
5486
  end
5423
5487
 
5424
- class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
5488
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
5425
5489
  OrHash =
5426
5490
  T.type_alias do
5427
5491
  T.any(
5428
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount,
5492
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration,
5429
5493
  MetronomeSDK::Internal::AnyHash
5430
5494
  )
5431
5495
  end
5432
5496
 
5433
- sig { returns(String) }
5434
- attr_accessor :credit_type_id
5435
-
5436
- sig { returns(Float) }
5437
- attr_accessor :quantity
5438
-
5439
- sig { returns(Float) }
5440
- attr_accessor :unit_price
5497
+ sig do
5498
+ returns(
5499
+ T.any(
5500
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5501
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5502
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
5503
+ )
5504
+ )
5505
+ end
5506
+ attr_accessor :child_access
5441
5507
 
5442
- # The amount the customer should be billed for the commit. Not required.
5508
+ # Optional configuration for recurring credit hierarchy access control
5443
5509
  sig do
5444
5510
  params(
5445
- credit_type_id: String,
5446
- quantity: Float,
5447
- unit_price: Float
5511
+ child_access:
5512
+ T.any(
5513
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
5514
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
5515
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
5516
+ )
5448
5517
  ).returns(T.attached_class)
5449
5518
  end
5450
- def self.new(credit_type_id:, quantity:, unit_price:)
5519
+ def self.new(child_access:)
5451
5520
  end
5452
5521
 
5453
5522
  sig do
5454
5523
  override.returns(
5455
- { credit_type_id: String, quantity: Float, unit_price: Float }
5524
+ {
5525
+ child_access:
5526
+ T.any(
5527
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5528
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5529
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
5530
+ )
5531
+ }
5456
5532
  )
5457
5533
  end
5458
5534
  def to_hash
5459
5535
  end
5460
- end
5461
5536
 
5462
- # Determines whether the first and last commit will be prorated. If not provided,
5463
- # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
5464
- module Proration
5465
- extend MetronomeSDK::Internal::Type::Enum
5537
+ module ChildAccess
5538
+ extend MetronomeSDK::Internal::Type::Union
5466
5539
 
5467
- TaggedSymbol =
5468
- T.type_alias do
5469
- T.all(
5470
- Symbol,
5471
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration
5472
- )
5473
- end
5474
- OrSymbol = T.type_alias { T.any(Symbol, String) }
5540
+ Variants =
5541
+ T.type_alias do
5542
+ T.any(
5543
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5544
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5545
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
5546
+ )
5547
+ end
5475
5548
 
5476
- NONE =
5477
- T.let(
5478
- :NONE,
5479
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration::TaggedSymbol
5480
- )
5481
- FIRST =
5482
- T.let(
5483
- :FIRST,
5484
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration::TaggedSymbol
5485
- )
5486
- LAST =
5487
- T.let(
5488
- :LAST,
5489
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration::TaggedSymbol
5490
- )
5491
- FIRST_AND_LAST =
5492
- T.let(
5493
- :FIRST_AND_LAST,
5494
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration::TaggedSymbol
5495
- )
5549
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
5550
+ OrHash =
5551
+ T.type_alias do
5552
+ T.any(
5553
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
5554
+ MetronomeSDK::Internal::AnyHash
5555
+ )
5556
+ end
5496
5557
 
5497
- sig do
5498
- override.returns(
5499
- T::Array[
5500
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration::TaggedSymbol
5501
- ]
5502
- )
5503
- end
5504
- def self.values
5505
- end
5506
- end
5558
+ sig do
5559
+ returns(
5560
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
5561
+ )
5562
+ end
5563
+ attr_accessor :type
5507
5564
 
5508
- # Whether the created commits will use the commit rate or list rate
5509
- module RateType
5510
- extend MetronomeSDK::Internal::Type::Enum
5565
+ sig do
5566
+ params(
5567
+ type:
5568
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
5569
+ ).returns(T.attached_class)
5570
+ end
5571
+ def self.new(type:)
5572
+ end
5511
5573
 
5512
- TaggedSymbol =
5513
- T.type_alias do
5514
- T.all(
5515
- Symbol,
5516
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RateType
5517
- )
5518
- end
5519
- OrSymbol = T.type_alias { T.any(Symbol, String) }
5574
+ sig do
5575
+ override.returns(
5576
+ {
5577
+ type:
5578
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
5579
+ }
5580
+ )
5581
+ end
5582
+ def to_hash
5583
+ end
5520
5584
 
5521
- COMMIT_RATE =
5522
- T.let(
5523
- :COMMIT_RATE,
5524
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RateType::TaggedSymbol
5525
- )
5526
- LIST_RATE =
5527
- T.let(
5528
- :LIST_RATE,
5529
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RateType::TaggedSymbol
5530
- )
5585
+ module Type
5586
+ extend MetronomeSDK::Internal::Type::Enum
5531
5587
 
5532
- sig do
5533
- override.returns(
5534
- T::Array[
5535
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RateType::TaggedSymbol
5536
- ]
5537
- )
5538
- end
5539
- def self.values
5540
- end
5541
- end
5588
+ TaggedSymbol =
5589
+ T.type_alias do
5590
+ T.all(
5591
+ Symbol,
5592
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
5593
+ )
5594
+ end
5595
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5542
5596
 
5543
- # The frequency at which the recurring commits will be created. If not provided: -
5544
- # The commits will be created on the usage invoice frequency. If provided: - The
5545
- # period defined in the duration will correspond to this frequency. - Commits will
5546
- # be created aligned with the recurring commit's starting_at rather than the usage
5547
- # invoice dates.
5548
- module RecurrenceFrequency
5549
- extend MetronomeSDK::Internal::Type::Enum
5597
+ ALL =
5598
+ T.let(
5599
+ :ALL,
5600
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
5601
+ )
5550
5602
 
5551
- TaggedSymbol =
5552
- T.type_alias do
5553
- T.all(
5554
- Symbol,
5555
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency
5556
- )
5603
+ sig do
5604
+ override.returns(
5605
+ T::Array[
5606
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
5607
+ ]
5608
+ )
5609
+ end
5610
+ def self.values
5611
+ end
5612
+ end
5557
5613
  end
5558
- OrSymbol = T.type_alias { T.any(Symbol, String) }
5559
5614
 
5560
- MONTHLY =
5561
- T.let(
5562
- :MONTHLY,
5563
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
5564
- )
5565
- QUARTERLY =
5566
- T.let(
5567
- :QUARTERLY,
5568
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
5569
- )
5570
- ANNUAL =
5571
- T.let(
5572
- :ANNUAL,
5573
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
5574
- )
5575
- WEEKLY =
5576
- T.let(
5577
- :WEEKLY,
5578
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
5579
- )
5615
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
5616
+ OrHash =
5617
+ T.type_alias do
5618
+ T.any(
5619
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
5620
+ MetronomeSDK::Internal::AnyHash
5621
+ )
5622
+ end
5580
5623
 
5581
- sig do
5582
- override.returns(
5583
- T::Array[
5584
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
5585
- ]
5586
- )
5587
- end
5588
- def self.values
5589
- end
5590
- end
5624
+ sig do
5625
+ returns(
5626
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
5627
+ )
5628
+ end
5629
+ attr_accessor :type
5591
5630
 
5592
- class Specifier < MetronomeSDK::Internal::Type::BaseModel
5593
- OrHash =
5594
- T.type_alias do
5595
- T.any(
5596
- MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Specifier,
5597
- MetronomeSDK::Internal::AnyHash
5631
+ sig do
5632
+ params(
5633
+ type:
5634
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
5635
+ ).returns(T.attached_class)
5636
+ end
5637
+ def self.new(type:)
5638
+ end
5639
+
5640
+ sig do
5641
+ override.returns(
5642
+ {
5643
+ type:
5644
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
5645
+ }
5646
+ )
5647
+ end
5648
+ def to_hash
5649
+ end
5650
+
5651
+ module Type
5652
+ extend MetronomeSDK::Internal::Type::Enum
5653
+
5654
+ TaggedSymbol =
5655
+ T.type_alias do
5656
+ T.all(
5657
+ Symbol,
5658
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
5659
+ )
5660
+ end
5661
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5662
+
5663
+ NONE =
5664
+ T.let(
5665
+ :NONE,
5666
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
5667
+ )
5668
+
5669
+ sig do
5670
+ override.returns(
5671
+ T::Array[
5672
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
5673
+ ]
5674
+ )
5675
+ end
5676
+ def self.values
5677
+ end
5678
+ end
5679
+ end
5680
+
5681
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
5682
+ OrHash =
5683
+ T.type_alias do
5684
+ T.any(
5685
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
5686
+ MetronomeSDK::Internal::AnyHash
5687
+ )
5688
+ end
5689
+
5690
+ sig { returns(T::Array[String]) }
5691
+ attr_accessor :contract_ids
5692
+
5693
+ sig do
5694
+ returns(
5695
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
5696
+ )
5697
+ end
5698
+ attr_accessor :type
5699
+
5700
+ sig do
5701
+ params(
5702
+ contract_ids: T::Array[String],
5703
+ type:
5704
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
5705
+ ).returns(T.attached_class)
5706
+ end
5707
+ def self.new(contract_ids:, type:)
5708
+ end
5709
+
5710
+ sig do
5711
+ override.returns(
5712
+ {
5713
+ contract_ids: T::Array[String],
5714
+ type:
5715
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
5716
+ }
5717
+ )
5718
+ end
5719
+ def to_hash
5720
+ end
5721
+
5722
+ module Type
5723
+ extend MetronomeSDK::Internal::Type::Enum
5724
+
5725
+ TaggedSymbol =
5726
+ T.type_alias do
5727
+ T.all(
5728
+ Symbol,
5729
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
5730
+ )
5731
+ end
5732
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5733
+
5734
+ CONTRACT_IDS =
5735
+ T.let(
5736
+ :CONTRACT_IDS,
5737
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
5738
+ )
5739
+
5740
+ sig do
5741
+ override.returns(
5742
+ T::Array[
5743
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
5744
+ ]
5745
+ )
5746
+ end
5747
+ def self.values
5748
+ end
5749
+ end
5750
+ end
5751
+
5752
+ sig do
5753
+ override.returns(
5754
+ T::Array[
5755
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::HierarchyConfiguration::ChildAccess::Variants
5756
+ ]
5757
+ )
5758
+ end
5759
+ def self.variants
5760
+ end
5761
+ end
5762
+ end
5763
+
5764
+ class InvoiceAmount < MetronomeSDK::Internal::Type::BaseModel
5765
+ OrHash =
5766
+ T.type_alias do
5767
+ T.any(
5768
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::InvoiceAmount,
5769
+ MetronomeSDK::Internal::AnyHash
5770
+ )
5771
+ end
5772
+
5773
+ sig { returns(String) }
5774
+ attr_accessor :credit_type_id
5775
+
5776
+ sig { returns(Float) }
5777
+ attr_accessor :quantity
5778
+
5779
+ sig { returns(Float) }
5780
+ attr_accessor :unit_price
5781
+
5782
+ # The amount the customer should be billed for the commit. Not required.
5783
+ sig do
5784
+ params(
5785
+ credit_type_id: String,
5786
+ quantity: Float,
5787
+ unit_price: Float
5788
+ ).returns(T.attached_class)
5789
+ end
5790
+ def self.new(credit_type_id:, quantity:, unit_price:)
5791
+ end
5792
+
5793
+ sig do
5794
+ override.returns(
5795
+ { credit_type_id: String, quantity: Float, unit_price: Float }
5796
+ )
5797
+ end
5798
+ def to_hash
5799
+ end
5800
+ end
5801
+
5802
+ # Determines whether the first and last commit will be prorated. If not provided,
5803
+ # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
5804
+ module Proration
5805
+ extend MetronomeSDK::Internal::Type::Enum
5806
+
5807
+ TaggedSymbol =
5808
+ T.type_alias do
5809
+ T.all(
5810
+ Symbol,
5811
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration
5812
+ )
5813
+ end
5814
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5815
+
5816
+ NONE =
5817
+ T.let(
5818
+ :NONE,
5819
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration::TaggedSymbol
5820
+ )
5821
+ FIRST =
5822
+ T.let(
5823
+ :FIRST,
5824
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration::TaggedSymbol
5825
+ )
5826
+ LAST =
5827
+ T.let(
5828
+ :LAST,
5829
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration::TaggedSymbol
5830
+ )
5831
+ FIRST_AND_LAST =
5832
+ T.let(
5833
+ :FIRST_AND_LAST,
5834
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration::TaggedSymbol
5835
+ )
5836
+
5837
+ sig do
5838
+ override.returns(
5839
+ T::Array[
5840
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Proration::TaggedSymbol
5841
+ ]
5842
+ )
5843
+ end
5844
+ def self.values
5845
+ end
5846
+ end
5847
+
5848
+ # Whether the created commits will use the commit rate or list rate
5849
+ module RateType
5850
+ extend MetronomeSDK::Internal::Type::Enum
5851
+
5852
+ TaggedSymbol =
5853
+ T.type_alias do
5854
+ T.all(
5855
+ Symbol,
5856
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RateType
5857
+ )
5858
+ end
5859
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5860
+
5861
+ COMMIT_RATE =
5862
+ T.let(
5863
+ :COMMIT_RATE,
5864
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RateType::TaggedSymbol
5865
+ )
5866
+ LIST_RATE =
5867
+ T.let(
5868
+ :LIST_RATE,
5869
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RateType::TaggedSymbol
5870
+ )
5871
+
5872
+ sig do
5873
+ override.returns(
5874
+ T::Array[
5875
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RateType::TaggedSymbol
5876
+ ]
5877
+ )
5878
+ end
5879
+ def self.values
5880
+ end
5881
+ end
5882
+
5883
+ # The frequency at which the recurring commits will be created. If not provided: -
5884
+ # The commits will be created on the usage invoice frequency. If provided: - The
5885
+ # period defined in the duration will correspond to this frequency. - Commits will
5886
+ # be created aligned with the recurring commit's starting_at rather than the usage
5887
+ # invoice dates.
5888
+ module RecurrenceFrequency
5889
+ extend MetronomeSDK::Internal::Type::Enum
5890
+
5891
+ TaggedSymbol =
5892
+ T.type_alias do
5893
+ T.all(
5894
+ Symbol,
5895
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency
5896
+ )
5897
+ end
5898
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5899
+
5900
+ MONTHLY =
5901
+ T.let(
5902
+ :MONTHLY,
5903
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
5904
+ )
5905
+ QUARTERLY =
5906
+ T.let(
5907
+ :QUARTERLY,
5908
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
5909
+ )
5910
+ ANNUAL =
5911
+ T.let(
5912
+ :ANNUAL,
5913
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
5914
+ )
5915
+ WEEKLY =
5916
+ T.let(
5917
+ :WEEKLY,
5918
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
5919
+ )
5920
+
5921
+ sig do
5922
+ override.returns(
5923
+ T::Array[
5924
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::RecurrenceFrequency::TaggedSymbol
5925
+ ]
5926
+ )
5927
+ end
5928
+ def self.values
5929
+ end
5930
+ end
5931
+
5932
+ class Specifier < MetronomeSDK::Internal::Type::BaseModel
5933
+ OrHash =
5934
+ T.type_alias do
5935
+ T.any(
5936
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::Specifier,
5937
+ MetronomeSDK::Internal::AnyHash
5598
5938
  )
5599
5939
  end
5600
5940
 
@@ -5659,6 +5999,141 @@ module MetronomeSDK
5659
5999
  def to_hash
5660
6000
  end
5661
6001
  end
6002
+
6003
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
6004
+ OrHash =
6005
+ T.type_alias do
6006
+ T.any(
6007
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig,
6008
+ MetronomeSDK::Internal::AnyHash
6009
+ )
6010
+ end
6011
+
6012
+ sig do
6013
+ returns(
6014
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig
6015
+ )
6016
+ end
6017
+ attr_reader :apply_seat_increase_config
6018
+
6019
+ sig do
6020
+ params(
6021
+ apply_seat_increase_config:
6022
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash
6023
+ ).void
6024
+ end
6025
+ attr_writer :apply_seat_increase_config
6026
+
6027
+ # ID of the subscription to configure on the recurring commit/credit.
6028
+ sig { returns(String) }
6029
+ attr_accessor :subscription_id
6030
+
6031
+ # If set to POOLED, allocation added per seat is pooled across the account.
6032
+ sig do
6033
+ returns(
6034
+ T.nilable(
6035
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation::OrSymbol
6036
+ )
6037
+ )
6038
+ end
6039
+ attr_reader :allocation
6040
+
6041
+ sig do
6042
+ params(
6043
+ allocation:
6044
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation::OrSymbol
6045
+ ).void
6046
+ end
6047
+ attr_writer :allocation
6048
+
6049
+ # Attach a subscription to the recurring commit/credit.
6050
+ sig do
6051
+ params(
6052
+ apply_seat_increase_config:
6053
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash,
6054
+ subscription_id: String,
6055
+ allocation:
6056
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation::OrSymbol
6057
+ ).returns(T.attached_class)
6058
+ end
6059
+ def self.new(
6060
+ apply_seat_increase_config:,
6061
+ # ID of the subscription to configure on the recurring commit/credit.
6062
+ subscription_id:,
6063
+ # If set to POOLED, allocation added per seat is pooled across the account.
6064
+ allocation: nil
6065
+ )
6066
+ end
6067
+
6068
+ sig do
6069
+ override.returns(
6070
+ {
6071
+ apply_seat_increase_config:
6072
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig,
6073
+ subscription_id: String,
6074
+ allocation:
6075
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation::OrSymbol
6076
+ }
6077
+ )
6078
+ end
6079
+ def to_hash
6080
+ end
6081
+
6082
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
6083
+ OrHash =
6084
+ T.type_alias do
6085
+ T.any(
6086
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig,
6087
+ MetronomeSDK::Internal::AnyHash
6088
+ )
6089
+ end
6090
+
6091
+ # Indicates whether a mid-period seat increase should be prorated.
6092
+ sig { returns(T::Boolean) }
6093
+ attr_accessor :is_prorated
6094
+
6095
+ sig { params(is_prorated: T::Boolean).returns(T.attached_class) }
6096
+ def self.new(
6097
+ # Indicates whether a mid-period seat increase should be prorated.
6098
+ is_prorated:
6099
+ )
6100
+ end
6101
+
6102
+ sig { override.returns({ is_prorated: T::Boolean }) }
6103
+ def to_hash
6104
+ end
6105
+ end
6106
+
6107
+ # If set to POOLED, allocation added per seat is pooled across the account.
6108
+ module Allocation
6109
+ extend MetronomeSDK::Internal::Type::Enum
6110
+
6111
+ TaggedSymbol =
6112
+ T.type_alias do
6113
+ T.all(
6114
+ Symbol,
6115
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation
6116
+ )
6117
+ end
6118
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6119
+
6120
+ POOLED =
6121
+ T.let(
6122
+ :POOLED,
6123
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation::TaggedSymbol
6124
+ )
6125
+
6126
+ sig do
6127
+ override.returns(
6128
+ T::Array[
6129
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation::TaggedSymbol
6130
+ ]
6131
+ )
6132
+ end
6133
+ def self.values
6134
+ end
6135
+ end
6136
+ end
5662
6137
  end
5663
6138
 
5664
6139
  class AddRecurringCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -5740,8 +6215,26 @@ module MetronomeSDK
5740
6215
  sig { returns(T.nilable(Time)) }
5741
6216
  attr_reader :ending_before
5742
6217
 
5743
- sig { params(ending_before: Time).void }
5744
- attr_writer :ending_before
6218
+ sig { params(ending_before: Time).void }
6219
+ attr_writer :ending_before
6220
+
6221
+ # Optional configuration for recurring credit hierarchy access control
6222
+ sig do
6223
+ returns(
6224
+ T.nilable(
6225
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration
6226
+ )
6227
+ )
6228
+ end
6229
+ attr_reader :hierarchy_configuration
6230
+
6231
+ sig do
6232
+ params(
6233
+ hierarchy_configuration:
6234
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::OrHash
6235
+ ).void
6236
+ end
6237
+ attr_writer :hierarchy_configuration
5745
6238
 
5746
6239
  # displayed on invoices. will be passed through to the individual commits
5747
6240
  sig { returns(T.nilable(String)) }
@@ -5829,6 +6322,8 @@ module MetronomeSDK
5829
6322
  # or credit. A customer's usage needs to meet the condition of at least one of the
5830
6323
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
5831
6324
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
6325
+ # Instead, to target usage by product or product tag, pass those values in the
6326
+ # body of `specifiers`.
5832
6327
  sig do
5833
6328
  returns(
5834
6329
  T.nilable(
@@ -5850,6 +6345,24 @@ module MetronomeSDK
5850
6345
  end
5851
6346
  attr_writer :specifiers
5852
6347
 
6348
+ # Attach a subscription to the recurring commit/credit.
6349
+ sig do
6350
+ returns(
6351
+ T.nilable(
6352
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig
6353
+ )
6354
+ )
6355
+ end
6356
+ attr_reader :subscription_config
6357
+
6358
+ sig do
6359
+ params(
6360
+ subscription_config:
6361
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::OrHash
6362
+ ).void
6363
+ end
6364
+ attr_writer :subscription_config
6365
+
5853
6366
  # A temporary ID that can be used to reference the recurring commit for commit
5854
6367
  # specific overrides.
5855
6368
  sig { returns(T.nilable(String)) }
@@ -5871,6 +6384,8 @@ module MetronomeSDK
5871
6384
  applicable_product_tags: T::Array[String],
5872
6385
  description: String,
5873
6386
  ending_before: Time,
6387
+ hierarchy_configuration:
6388
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::OrHash,
5874
6389
  name: String,
5875
6390
  netsuite_sales_order_id: String,
5876
6391
  proration:
@@ -5884,6 +6399,8 @@ module MetronomeSDK
5884
6399
  T::Array[
5885
6400
  MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::Specifier::OrHash
5886
6401
  ],
6402
+ subscription_config:
6403
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::OrHash,
5887
6404
  temporary_id: String
5888
6405
  ).returns(T.attached_class)
5889
6406
  end
@@ -5907,6 +6424,8 @@ module MetronomeSDK
5907
6424
  description: nil,
5908
6425
  # Determines when the contract will stop creating recurring commits. optional
5909
6426
  ending_before: nil,
6427
+ # Optional configuration for recurring credit hierarchy access control
6428
+ hierarchy_configuration: nil,
5910
6429
  # displayed on invoices. will be passed through to the individual commits
5911
6430
  name: nil,
5912
6431
  # Will be passed down to the individual commits
@@ -5930,7 +6449,11 @@ module MetronomeSDK
5930
6449
  # or credit. A customer's usage needs to meet the condition of at least one of the
5931
6450
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
5932
6451
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
6452
+ # Instead, to target usage by product or product tag, pass those values in the
6453
+ # body of `specifiers`.
5933
6454
  specifiers: nil,
6455
+ # Attach a subscription to the recurring commit/credit.
6456
+ subscription_config: nil,
5934
6457
  # A temporary ID that can be used to reference the recurring commit for commit
5935
6458
  # specific overrides.
5936
6459
  temporary_id: nil
@@ -5951,6 +6474,8 @@ module MetronomeSDK
5951
6474
  applicable_product_tags: T::Array[String],
5952
6475
  description: String,
5953
6476
  ending_before: Time,
6477
+ hierarchy_configuration:
6478
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration,
5954
6479
  name: String,
5955
6480
  netsuite_sales_order_id: String,
5956
6481
  proration:
@@ -5964,6 +6489,8 @@ module MetronomeSDK
5964
6489
  T::Array[
5965
6490
  MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::Specifier
5966
6491
  ],
6492
+ subscription_config:
6493
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig,
5967
6494
  temporary_id: String
5968
6495
  }
5969
6496
  )
@@ -6011,95 +6538,371 @@ module MetronomeSDK
6011
6538
  )
6012
6539
  end
6013
6540
 
6014
- sig do
6015
- override.returns(
6016
- { credit_type_id: String, unit_price: Float, quantity: Float }
6017
- )
6018
- end
6019
- def to_hash
6020
- end
6021
- end
6541
+ sig do
6542
+ override.returns(
6543
+ { credit_type_id: String, unit_price: Float, quantity: Float }
6544
+ )
6545
+ end
6546
+ def to_hash
6547
+ end
6548
+ end
6549
+
6550
+ class CommitDuration < MetronomeSDK::Internal::Type::BaseModel
6551
+ OrHash =
6552
+ T.type_alias do
6553
+ T.any(
6554
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration,
6555
+ MetronomeSDK::Internal::AnyHash
6556
+ )
6557
+ end
6558
+
6559
+ sig { returns(Float) }
6560
+ attr_accessor :value
6561
+
6562
+ sig do
6563
+ returns(
6564
+ T.nilable(
6565
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit::OrSymbol
6566
+ )
6567
+ )
6568
+ end
6569
+ attr_reader :unit
6570
+
6571
+ sig do
6572
+ params(
6573
+ unit:
6574
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit::OrSymbol
6575
+ ).void
6576
+ end
6577
+ attr_writer :unit
6578
+
6579
+ # Defines the length of the access schedule for each created commit/credit. The
6580
+ # value represents the number of units. Unit defaults to "PERIODS", where the
6581
+ # length of a period is determined by the recurrence_frequency.
6582
+ sig do
6583
+ params(
6584
+ value: Float,
6585
+ unit:
6586
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit::OrSymbol
6587
+ ).returns(T.attached_class)
6588
+ end
6589
+ def self.new(value:, unit: nil)
6590
+ end
6591
+
6592
+ sig do
6593
+ override.returns(
6594
+ {
6595
+ value: Float,
6596
+ unit:
6597
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit::OrSymbol
6598
+ }
6599
+ )
6600
+ end
6601
+ def to_hash
6602
+ end
6603
+
6604
+ module Unit
6605
+ extend MetronomeSDK::Internal::Type::Enum
6606
+
6607
+ TaggedSymbol =
6608
+ T.type_alias do
6609
+ T.all(
6610
+ Symbol,
6611
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit
6612
+ )
6613
+ end
6614
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6615
+
6616
+ PERIODS =
6617
+ T.let(
6618
+ :PERIODS,
6619
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit::TaggedSymbol
6620
+ )
6621
+
6622
+ sig do
6623
+ override.returns(
6624
+ T::Array[
6625
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit::TaggedSymbol
6626
+ ]
6627
+ )
6628
+ end
6629
+ def self.values
6630
+ end
6631
+ end
6632
+ end
6633
+
6634
+ class HierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
6635
+ OrHash =
6636
+ T.type_alias do
6637
+ T.any(
6638
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration,
6639
+ MetronomeSDK::Internal::AnyHash
6640
+ )
6641
+ end
6642
+
6643
+ sig do
6644
+ returns(
6645
+ T.any(
6646
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6647
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6648
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
6649
+ )
6650
+ )
6651
+ end
6652
+ attr_accessor :child_access
6653
+
6654
+ # Optional configuration for recurring credit hierarchy access control
6655
+ sig do
6656
+ params(
6657
+ child_access:
6658
+ T.any(
6659
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::OrHash,
6660
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::OrHash,
6661
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::OrHash
6662
+ )
6663
+ ).returns(T.attached_class)
6664
+ end
6665
+ def self.new(child_access:)
6666
+ end
6667
+
6668
+ sig do
6669
+ override.returns(
6670
+ {
6671
+ child_access:
6672
+ T.any(
6673
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6674
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6675
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
6676
+ )
6677
+ }
6678
+ )
6679
+ end
6680
+ def to_hash
6681
+ end
6682
+
6683
+ module ChildAccess
6684
+ extend MetronomeSDK::Internal::Type::Union
6685
+
6686
+ Variants =
6687
+ T.type_alias do
6688
+ T.any(
6689
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6690
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6691
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs
6692
+ )
6693
+ end
6694
+
6695
+ class CommitHierarchyChildAccessAll < MetronomeSDK::Internal::Type::BaseModel
6696
+ OrHash =
6697
+ T.type_alias do
6698
+ T.any(
6699
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll,
6700
+ MetronomeSDK::Internal::AnyHash
6701
+ )
6702
+ end
6703
+
6704
+ sig do
6705
+ returns(
6706
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
6707
+ )
6708
+ end
6709
+ attr_accessor :type
6710
+
6711
+ sig do
6712
+ params(
6713
+ type:
6714
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
6715
+ ).returns(T.attached_class)
6716
+ end
6717
+ def self.new(type:)
6718
+ end
6719
+
6720
+ sig do
6721
+ override.returns(
6722
+ {
6723
+ type:
6724
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::OrSymbol
6725
+ }
6726
+ )
6727
+ end
6728
+ def to_hash
6729
+ end
6730
+
6731
+ module Type
6732
+ extend MetronomeSDK::Internal::Type::Enum
6733
+
6734
+ TaggedSymbol =
6735
+ T.type_alias do
6736
+ T.all(
6737
+ Symbol,
6738
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type
6739
+ )
6740
+ end
6741
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6742
+
6743
+ ALL =
6744
+ T.let(
6745
+ :ALL,
6746
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
6747
+ )
6748
+
6749
+ sig do
6750
+ override.returns(
6751
+ T::Array[
6752
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessAll::Type::TaggedSymbol
6753
+ ]
6754
+ )
6755
+ end
6756
+ def self.values
6757
+ end
6758
+ end
6759
+ end
6760
+
6761
+ class CommitHierarchyChildAccessNone < MetronomeSDK::Internal::Type::BaseModel
6762
+ OrHash =
6763
+ T.type_alias do
6764
+ T.any(
6765
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone,
6766
+ MetronomeSDK::Internal::AnyHash
6767
+ )
6768
+ end
6769
+
6770
+ sig do
6771
+ returns(
6772
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
6773
+ )
6774
+ end
6775
+ attr_accessor :type
6776
+
6777
+ sig do
6778
+ params(
6779
+ type:
6780
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
6781
+ ).returns(T.attached_class)
6782
+ end
6783
+ def self.new(type:)
6784
+ end
6785
+
6786
+ sig do
6787
+ override.returns(
6788
+ {
6789
+ type:
6790
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::OrSymbol
6791
+ }
6792
+ )
6793
+ end
6794
+ def to_hash
6795
+ end
6796
+
6797
+ module Type
6798
+ extend MetronomeSDK::Internal::Type::Enum
6022
6799
 
6023
- class CommitDuration < MetronomeSDK::Internal::Type::BaseModel
6024
- OrHash =
6025
- T.type_alias do
6026
- T.any(
6027
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration,
6028
- MetronomeSDK::Internal::AnyHash
6029
- )
6030
- end
6800
+ TaggedSymbol =
6801
+ T.type_alias do
6802
+ T.all(
6803
+ Symbol,
6804
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type
6805
+ )
6806
+ end
6807
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6031
6808
 
6032
- sig { returns(Float) }
6033
- attr_accessor :value
6809
+ NONE =
6810
+ T.let(
6811
+ :NONE,
6812
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
6813
+ )
6034
6814
 
6035
- sig do
6036
- returns(
6037
- T.nilable(
6038
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit::OrSymbol
6039
- )
6040
- )
6041
- end
6042
- attr_reader :unit
6815
+ sig do
6816
+ override.returns(
6817
+ T::Array[
6818
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessNone::Type::TaggedSymbol
6819
+ ]
6820
+ )
6821
+ end
6822
+ def self.values
6823
+ end
6824
+ end
6825
+ end
6043
6826
 
6044
- sig do
6045
- params(
6046
- unit:
6047
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit::OrSymbol
6048
- ).void
6049
- end
6050
- attr_writer :unit
6827
+ class CommitHierarchyChildAccessContractIDs < MetronomeSDK::Internal::Type::BaseModel
6828
+ OrHash =
6829
+ T.type_alias do
6830
+ T.any(
6831
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs,
6832
+ MetronomeSDK::Internal::AnyHash
6833
+ )
6834
+ end
6051
6835
 
6052
- # Defines the length of the access schedule for each created commit/credit. The
6053
- # value represents the number of units. Unit defaults to "PERIODS", where the
6054
- # length of a period is determined by the recurrence_frequency.
6055
- sig do
6056
- params(
6057
- value: Float,
6058
- unit:
6059
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit::OrSymbol
6060
- ).returns(T.attached_class)
6061
- end
6062
- def self.new(value:, unit: nil)
6063
- end
6836
+ sig { returns(T::Array[String]) }
6837
+ attr_accessor :contract_ids
6064
6838
 
6065
- sig do
6066
- override.returns(
6067
- {
6068
- value: Float,
6069
- unit:
6070
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit::OrSymbol
6071
- }
6072
- )
6073
- end
6074
- def to_hash
6075
- end
6839
+ sig do
6840
+ returns(
6841
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
6842
+ )
6843
+ end
6844
+ attr_accessor :type
6076
6845
 
6077
- module Unit
6078
- extend MetronomeSDK::Internal::Type::Enum
6846
+ sig do
6847
+ params(
6848
+ contract_ids: T::Array[String],
6849
+ type:
6850
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
6851
+ ).returns(T.attached_class)
6852
+ end
6853
+ def self.new(contract_ids:, type:)
6854
+ end
6079
6855
 
6080
- TaggedSymbol =
6081
- T.type_alias do
6082
- T.all(
6083
- Symbol,
6084
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit
6856
+ sig do
6857
+ override.returns(
6858
+ {
6859
+ contract_ids: T::Array[String],
6860
+ type:
6861
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::OrSymbol
6862
+ }
6085
6863
  )
6086
6864
  end
6087
- OrSymbol = T.type_alias { T.any(Symbol, String) }
6865
+ def to_hash
6866
+ end
6088
6867
 
6089
- PERIODS =
6090
- T.let(
6091
- :PERIODS,
6092
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit::TaggedSymbol
6093
- )
6868
+ module Type
6869
+ extend MetronomeSDK::Internal::Type::Enum
6870
+
6871
+ TaggedSymbol =
6872
+ T.type_alias do
6873
+ T.all(
6874
+ Symbol,
6875
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type
6876
+ )
6877
+ end
6878
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6879
+
6880
+ CONTRACT_IDS =
6881
+ T.let(
6882
+ :CONTRACT_IDS,
6883
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
6884
+ )
6885
+
6886
+ sig do
6887
+ override.returns(
6888
+ T::Array[
6889
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::CommitHierarchyChildAccessContractIDs::Type::TaggedSymbol
6890
+ ]
6891
+ )
6892
+ end
6893
+ def self.values
6894
+ end
6895
+ end
6896
+ end
6094
6897
 
6095
6898
  sig do
6096
6899
  override.returns(
6097
6900
  T::Array[
6098
- MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::CommitDuration::Unit::TaggedSymbol
6901
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::HierarchyConfiguration::ChildAccess::Variants
6099
6902
  ]
6100
6903
  )
6101
6904
  end
6102
- def self.values
6905
+ def self.variants
6103
6906
  end
6104
6907
  end
6105
6908
  end
@@ -6304,6 +7107,141 @@ module MetronomeSDK
6304
7107
  def to_hash
6305
7108
  end
6306
7109
  end
7110
+
7111
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
7112
+ OrHash =
7113
+ T.type_alias do
7114
+ T.any(
7115
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig,
7116
+ MetronomeSDK::Internal::AnyHash
7117
+ )
7118
+ end
7119
+
7120
+ sig do
7121
+ returns(
7122
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig
7123
+ )
7124
+ end
7125
+ attr_reader :apply_seat_increase_config
7126
+
7127
+ sig do
7128
+ params(
7129
+ apply_seat_increase_config:
7130
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash
7131
+ ).void
7132
+ end
7133
+ attr_writer :apply_seat_increase_config
7134
+
7135
+ # ID of the subscription to configure on the recurring commit/credit.
7136
+ sig { returns(String) }
7137
+ attr_accessor :subscription_id
7138
+
7139
+ # If set to POOLED, allocation added per seat is pooled across the account.
7140
+ sig do
7141
+ returns(
7142
+ T.nilable(
7143
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation::OrSymbol
7144
+ )
7145
+ )
7146
+ end
7147
+ attr_reader :allocation
7148
+
7149
+ sig do
7150
+ params(
7151
+ allocation:
7152
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation::OrSymbol
7153
+ ).void
7154
+ end
7155
+ attr_writer :allocation
7156
+
7157
+ # Attach a subscription to the recurring commit/credit.
7158
+ sig do
7159
+ params(
7160
+ apply_seat_increase_config:
7161
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash,
7162
+ subscription_id: String,
7163
+ allocation:
7164
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation::OrSymbol
7165
+ ).returns(T.attached_class)
7166
+ end
7167
+ def self.new(
7168
+ apply_seat_increase_config:,
7169
+ # ID of the subscription to configure on the recurring commit/credit.
7170
+ subscription_id:,
7171
+ # If set to POOLED, allocation added per seat is pooled across the account.
7172
+ allocation: nil
7173
+ )
7174
+ end
7175
+
7176
+ sig do
7177
+ override.returns(
7178
+ {
7179
+ apply_seat_increase_config:
7180
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig,
7181
+ subscription_id: String,
7182
+ allocation:
7183
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation::OrSymbol
7184
+ }
7185
+ )
7186
+ end
7187
+ def to_hash
7188
+ end
7189
+
7190
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
7191
+ OrHash =
7192
+ T.type_alias do
7193
+ T.any(
7194
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig,
7195
+ MetronomeSDK::Internal::AnyHash
7196
+ )
7197
+ end
7198
+
7199
+ # Indicates whether a mid-period seat increase should be prorated.
7200
+ sig { returns(T::Boolean) }
7201
+ attr_accessor :is_prorated
7202
+
7203
+ sig { params(is_prorated: T::Boolean).returns(T.attached_class) }
7204
+ def self.new(
7205
+ # Indicates whether a mid-period seat increase should be prorated.
7206
+ is_prorated:
7207
+ )
7208
+ end
7209
+
7210
+ sig { override.returns({ is_prorated: T::Boolean }) }
7211
+ def to_hash
7212
+ end
7213
+ end
7214
+
7215
+ # If set to POOLED, allocation added per seat is pooled across the account.
7216
+ module Allocation
7217
+ extend MetronomeSDK::Internal::Type::Enum
7218
+
7219
+ TaggedSymbol =
7220
+ T.type_alias do
7221
+ T.all(
7222
+ Symbol,
7223
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation
7224
+ )
7225
+ end
7226
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
7227
+
7228
+ POOLED =
7229
+ T.let(
7230
+ :POOLED,
7231
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation::TaggedSymbol
7232
+ )
7233
+
7234
+ sig do
7235
+ override.returns(
7236
+ T::Array[
7237
+ MetronomeSDK::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation::TaggedSymbol
7238
+ ]
7239
+ )
7240
+ end
7241
+ def self.values
7242
+ end
7243
+ end
7244
+ end
6307
7245
  end
6308
7246
 
6309
7247
  class AddResellerRoyalty < MetronomeSDK::Internal::Type::BaseModel
@@ -6674,7 +7612,7 @@ module MetronomeSDK
6674
7612
  )
6675
7613
  end
6676
7614
 
6677
- # Defaults to USD if not passed. Only USD is supported at this time.
7615
+ # Defaults to USD (cents) if not passed.
6678
7616
  sig { returns(T.nilable(String)) }
6679
7617
  attr_reader :credit_type_id
6680
7618
 
@@ -6736,7 +7674,7 @@ module MetronomeSDK
6736
7674
  ).returns(T.attached_class)
6737
7675
  end
6738
7676
  def self.new(
6739
- # Defaults to USD if not passed. Only USD is supported at this time.
7677
+ # Defaults to USD (cents) if not passed.
6740
7678
  credit_type_id: nil,
6741
7679
  # Enter the unit price and quantity for the charge or instead only send the
6742
7680
  # amount. If amount is sent, the unit price is assumed to be the amount and
@@ -7621,6 +8559,14 @@ module MetronomeSDK
7621
8559
  sig { params(starting_at: Time).void }
7622
8560
  attr_writer :starting_at
7623
8561
 
8562
+ # A temporary ID used to reference the subscription in recurring commit/credit
8563
+ # subscription configs created within the same payload.
8564
+ sig { returns(T.nilable(String)) }
8565
+ attr_reader :temporary_id
8566
+
8567
+ sig { params(temporary_id: String).void }
8568
+ attr_writer :temporary_id
8569
+
7624
8570
  sig do
7625
8571
  params(
7626
8572
  collection_schedule:
@@ -7634,7 +8580,8 @@ module MetronomeSDK
7634
8580
  description: String,
7635
8581
  ending_before: Time,
7636
8582
  name: String,
7637
- starting_at: Time
8583
+ starting_at: Time,
8584
+ temporary_id: String
7638
8585
  ).returns(T.attached_class)
7639
8586
  end
7640
8587
  def self.new(
@@ -7650,7 +8597,10 @@ module MetronomeSDK
7650
8597
  name: nil,
7651
8598
  # Inclusive start time for the subscription. If not provided, defaults to contract
7652
8599
  # start date
7653
- starting_at: nil
8600
+ starting_at: nil,
8601
+ # A temporary ID used to reference the subscription in recurring commit/credit
8602
+ # subscription configs created within the same payload.
8603
+ temporary_id: nil
7654
8604
  )
7655
8605
  end
7656
8606
 
@@ -7668,7 +8618,8 @@ module MetronomeSDK
7668
8618
  description: String,
7669
8619
  ending_before: Time,
7670
8620
  name: String,
7671
- starting_at: Time
8621
+ starting_at: Time,
8622
+ temporary_id: String
7672
8623
  }
7673
8624
  )
7674
8625
  end
@@ -7718,10 +8669,11 @@ module MetronomeSDK
7718
8669
  )
7719
8670
  end
7720
8671
 
7721
- # Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
7722
- # is selected, the quantity increase will be billed on the scheduled date. If
7723
- # BILL_ON_NEXT_COLLECTION_DATE is selected, the quantity increase will be billed
7724
- # for in-arrears at the end of the period.
8672
+ # Indicates how mid-period quantity adjustments are invoiced.
8673
+ # **BILL_IMMEDIATELY**: Only available when collection schedule is `ADVANCE`. The
8674
+ # quantity increase will be billed immediately on the scheduled date.
8675
+ # **BILL_ON_NEXT_COLLECTION_DATE**: The quantity increase will be billed for
8676
+ # in-arrears at the end of the period.
7725
8677
  sig do
7726
8678
  returns(
7727
8679
  T.nilable(
@@ -7754,10 +8706,11 @@ module MetronomeSDK
7754
8706
  ).returns(T.attached_class)
7755
8707
  end
7756
8708
  def self.new(
7757
- # Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
7758
- # is selected, the quantity increase will be billed on the scheduled date. If
7759
- # BILL_ON_NEXT_COLLECTION_DATE is selected, the quantity increase will be billed
7760
- # for in-arrears at the end of the period.
8709
+ # Indicates how mid-period quantity adjustments are invoiced.
8710
+ # **BILL_IMMEDIATELY**: Only available when collection schedule is `ADVANCE`. The
8711
+ # quantity increase will be billed immediately on the scheduled date.
8712
+ # **BILL_ON_NEXT_COLLECTION_DATE**: The quantity increase will be billed for
8713
+ # in-arrears at the end of the period.
7761
8714
  invoice_behavior: nil,
7762
8715
  # Indicates if the partial period will be prorated or charged a full amount.
7763
8716
  is_prorated: nil
@@ -7776,10 +8729,11 @@ module MetronomeSDK
7776
8729
  def to_hash
7777
8730
  end
7778
8731
 
7779
- # Indicates how mid-period quantity adjustments are invoiced. If BILL_IMMEDIATELY
7780
- # is selected, the quantity increase will be billed on the scheduled date. If
7781
- # BILL_ON_NEXT_COLLECTION_DATE is selected, the quantity increase will be billed
7782
- # for in-arrears at the end of the period.
8732
+ # Indicates how mid-period quantity adjustments are invoiced.
8733
+ # **BILL_IMMEDIATELY**: Only available when collection schedule is `ADVANCE`. The
8734
+ # quantity increase will be billed immediately on the scheduled date.
8735
+ # **BILL_ON_NEXT_COLLECTION_DATE**: The quantity increase will be billed for
8736
+ # in-arrears at the end of the period.
7783
8737
  module InvoiceBehavior
7784
8738
  extend MetronomeSDK::Internal::Type::Enum
7785
8739
 
@@ -9715,6 +10669,8 @@ module MetronomeSDK
9715
10669
  # or credit. A customer's usage needs to meet the condition of at least one of the
9716
10670
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
9717
10671
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
10672
+ # Instead, to target usage by product or product tag, pass those values in the
10673
+ # body of `specifiers`.
9718
10674
  sig do
9719
10675
  returns(
9720
10676
  T.nilable(
@@ -9760,6 +10716,8 @@ module MetronomeSDK
9760
10716
  # or credit. A customer's usage needs to meet the condition of at least one of the
9761
10717
  # specifiers to contribute to a commit's or credit's drawdown. This field cannot
9762
10718
  # be used together with `applicable_product_ids` or `applicable_product_tags`.
10719
+ # Instead, to target usage by product or product tag, pass those values in the
10720
+ # body of `specifiers`.
9763
10721
  specifiers: nil
9764
10722
  )
9765
10723
  end