metronome-sdk 3.4.0 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +84 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/client.rb +15 -1
  5. data/lib/metronome_sdk/internal/transport/base_client.rb +2 -0
  6. data/lib/metronome_sdk/internal/util.rb +22 -7
  7. data/lib/metronome_sdk/models/base_threshold_commit.rb +10 -1
  8. data/lib/metronome_sdk/models/contract_v2.rb +443 -15
  9. data/lib/metronome_sdk/models/credit.rb +74 -4
  10. data/lib/metronome_sdk/models/override.rb +9 -8
  11. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +27 -1
  12. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +28 -2
  13. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +26 -1
  14. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +30 -4
  15. data/lib/metronome_sdk/models/update_base_threshold_commit.rb +11 -1
  16. data/lib/metronome_sdk/models/v1/alert_create_params.rb +1 -0
  17. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +2 -189
  18. data/lib/metronome_sdk/models/v1/contract_create_params.rb +3 -191
  19. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +119 -0
  20. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_response.rb +315 -0
  21. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +31 -1
  22. data/lib/metronome_sdk/models/v1/contracts/product_update_params.rb +31 -1
  23. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +1 -0
  24. data/lib/metronome_sdk/models/v1/customers/invoice.rb +8 -1
  25. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +29 -1
  26. data/lib/metronome_sdk/models/v1/package_create_params.rb +2 -30
  27. data/lib/metronome_sdk/models/v1/package_list_response.rb +28 -9
  28. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +29 -9
  29. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +67 -20
  30. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +496 -15
  31. data/lib/metronome_sdk/resources/v1/contracts/products.rb +6 -2
  32. data/lib/metronome_sdk/resources/v1/contracts.rb +76 -2
  33. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +5 -1
  34. data/lib/metronome_sdk/resources/v1/packages.rb +1 -3
  35. data/lib/metronome_sdk/version.rb +1 -1
  36. data/lib/metronome_sdk.rb +3 -1
  37. data/rbi/metronome_sdk/internal/util.rbi +8 -0
  38. data/rbi/metronome_sdk/models/base_threshold_commit.rbi +24 -5
  39. data/rbi/metronome_sdk/models/contract_v2.rbi +916 -19
  40. data/rbi/metronome_sdk/models/credit.rbi +139 -3
  41. data/rbi/metronome_sdk/models/override.rbi +9 -12
  42. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +54 -3
  43. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +55 -4
  44. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +54 -3
  45. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +58 -9
  46. data/rbi/metronome_sdk/models/update_base_threshold_commit.rbi +22 -4
  47. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +5 -0
  48. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +3 -416
  49. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +5 -418
  50. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +179 -0
  51. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_response.rbi +714 -0
  52. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +74 -0
  53. data/rbi/metronome_sdk/models/v1/contracts/product_update_params.rbi +74 -0
  54. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +5 -0
  55. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +9 -0
  56. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +75 -0
  57. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +3 -76
  58. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +72 -15
  59. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +72 -17
  60. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +133 -28
  61. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1174 -145
  62. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +18 -0
  63. data/rbi/metronome_sdk/resources/v1/contracts.rbi +88 -3
  64. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +7 -0
  65. data/rbi/metronome_sdk/resources/v1/packages.rbi +0 -3
  66. data/sig/metronome_sdk/internal/util.rbs +4 -0
  67. data/sig/metronome_sdk/models/base_threshold_commit.rbs +13 -3
  68. data/sig/metronome_sdk/models/contract_v2.rbs +401 -16
  69. data/sig/metronome_sdk/models/credit.rbs +69 -0
  70. data/sig/metronome_sdk/models/override.rbs +8 -10
  71. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +22 -3
  72. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +23 -4
  73. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +22 -3
  74. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +26 -7
  75. data/sig/metronome_sdk/models/update_base_threshold_commit.rbs +15 -2
  76. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +3 -1
  77. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +3 -147
  78. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +3 -147
  79. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +96 -0
  80. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_response.rbs +299 -0
  81. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +20 -0
  82. data/sig/metronome_sdk/models/v1/contracts/product_update_params.rbs +20 -0
  83. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +3 -1
  84. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +7 -0
  85. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +29 -1
  86. data/sig/metronome_sdk/models/v1/package_create_params.rbs +3 -30
  87. data/sig/metronome_sdk/models/v1/package_list_response.rbs +33 -15
  88. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +33 -15
  89. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +33 -10
  90. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +409 -19
  91. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +2 -0
  92. data/sig/metronome_sdk/resources/v1/contracts.rbs +15 -0
  93. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +2 -0
  94. data/sig/metronome_sdk/resources/v1/packages.rbs +0 -1
  95. metadata +8 -2
@@ -287,11 +287,16 @@ module MetronomeSDK
287
287
  attr_writer :spend_threshold_configuration
288
288
 
289
289
  # List of subscriptions on the contract.
290
- sig { returns(T.nilable(T::Array[MetronomeSDK::Subscription])) }
290
+ sig do
291
+ returns(T.nilable(T::Array[MetronomeSDK::ContractV2::Subscription]))
292
+ end
291
293
  attr_reader :subscriptions
292
294
 
293
295
  sig do
294
- params(subscriptions: T::Array[MetronomeSDK::Subscription::OrHash]).void
296
+ params(
297
+ subscriptions:
298
+ T::Array[MetronomeSDK::ContractV2::Subscription::OrHash]
299
+ ).void
295
300
  end
296
301
  attr_writer :subscriptions
297
302
 
@@ -356,7 +361,8 @@ module MetronomeSDK
356
361
  MetronomeSDK::ContractV2::ScheduledChargesOnUsageInvoices::OrSymbol,
357
362
  spend_threshold_configuration:
358
363
  MetronomeSDK::SpendThresholdConfigurationV2::OrHash,
359
- subscriptions: T::Array[MetronomeSDK::Subscription::OrHash],
364
+ subscriptions:
365
+ T::Array[MetronomeSDK::ContractV2::Subscription::OrHash],
360
366
  total_contract_value: Float,
361
367
  uniqueness_key: String
362
368
  ).returns(T.attached_class)
@@ -470,7 +476,7 @@ module MetronomeSDK
470
476
  MetronomeSDK::ContractV2::ScheduledChargesOnUsageInvoices::TaggedSymbol,
471
477
  spend_threshold_configuration:
472
478
  MetronomeSDK::SpendThresholdConfigurationV2,
473
- subscriptions: T::Array[MetronomeSDK::Subscription],
479
+ subscriptions: T::Array[MetronomeSDK::ContractV2::Subscription],
474
480
  total_contract_value: Float,
475
481
  uniqueness_key: String
476
482
  }
@@ -2345,6 +2351,9 @@ module MetronomeSDK
2345
2351
  sig { returns(String) }
2346
2352
  attr_accessor :id
2347
2353
 
2354
+ sig { returns(Time) }
2355
+ attr_accessor :created_at
2356
+
2348
2357
  sig { returns(Time) }
2349
2358
  attr_accessor :starting_at
2350
2359
 
@@ -2465,6 +2474,7 @@ module MetronomeSDK
2465
2474
  sig do
2466
2475
  params(
2467
2476
  id: String,
2477
+ created_at: Time,
2468
2478
  starting_at: Time,
2469
2479
  applicable_product_tags: T::Array[String],
2470
2480
  ending_before: Time,
@@ -2486,6 +2496,7 @@ module MetronomeSDK
2486
2496
  end
2487
2497
  def self.new(
2488
2498
  id:,
2499
+ created_at:,
2489
2500
  starting_at:,
2490
2501
  applicable_product_tags: nil,
2491
2502
  ending_before: nil,
@@ -2506,6 +2517,7 @@ module MetronomeSDK
2506
2517
  override.returns(
2507
2518
  {
2508
2519
  id: String,
2520
+ created_at: Time,
2509
2521
  starting_at: Time,
2510
2522
  applicable_product_tags: T::Array[String],
2511
2523
  ending_before: Time,
@@ -2592,12 +2604,6 @@ module MetronomeSDK
2592
2604
  sig { params(recurring_commit_ids: T::Array[String]).void }
2593
2605
  attr_writer :recurring_commit_ids
2594
2606
 
2595
- sig { returns(T.nilable(T::Array[String])) }
2596
- attr_reader :recurring_credit_ids
2597
-
2598
- sig { params(recurring_credit_ids: T::Array[String]).void }
2599
- attr_writer :recurring_credit_ids
2600
-
2601
2607
  sig do
2602
2608
  params(
2603
2609
  billing_frequency:
@@ -2607,8 +2613,7 @@ module MetronomeSDK
2607
2613
  pricing_group_values: T::Hash[Symbol, String],
2608
2614
  product_id: String,
2609
2615
  product_tags: T::Array[String],
2610
- recurring_commit_ids: T::Array[String],
2611
- recurring_credit_ids: T::Array[String]
2616
+ recurring_commit_ids: T::Array[String]
2612
2617
  ).returns(T.attached_class)
2613
2618
  end
2614
2619
  def self.new(
@@ -2618,8 +2623,7 @@ module MetronomeSDK
2618
2623
  pricing_group_values: nil,
2619
2624
  product_id: nil,
2620
2625
  product_tags: nil,
2621
- recurring_commit_ids: nil,
2622
- recurring_credit_ids: nil
2626
+ recurring_commit_ids: nil
2623
2627
  )
2624
2628
  end
2625
2629
 
@@ -2633,8 +2637,7 @@ module MetronomeSDK
2633
2637
  pricing_group_values: T::Hash[Symbol, String],
2634
2638
  product_id: String,
2635
2639
  product_tags: T::Array[String],
2636
- recurring_commit_ids: T::Array[String],
2637
- recurring_credit_ids: T::Array[String]
2640
+ recurring_commit_ids: T::Array[String]
2638
2641
  }
2639
2642
  )
2640
2643
  end
@@ -3214,6 +3217,12 @@ module MetronomeSDK
3214
3217
  sig { params(applicable_product_tags: T::Array[String]).void }
3215
3218
  attr_writer :applicable_product_tags
3216
3219
 
3220
+ sig { returns(T.nilable(Time)) }
3221
+ attr_reader :archived_at
3222
+
3223
+ sig { params(archived_at: Time).void }
3224
+ attr_writer :archived_at
3225
+
3217
3226
  # The current balance of the credit or commit. This balance reflects the amount of
3218
3227
  # credit or commit that the customer has access to use at this moment - thus,
3219
3228
  # expired and upcoming credit or commit segments contribute 0 to the balance. The
@@ -3295,7 +3304,8 @@ module MetronomeSDK
3295
3304
  MetronomeSDK::ContractV2::Credit::Ledger::CreditCanceledLedgerEntry::OrHash,
3296
3305
  MetronomeSDK::ContractV2::Credit::Ledger::CreditCreditedLedgerEntry::OrHash,
3297
3306
  MetronomeSDK::ContractV2::Credit::Ledger::CreditManualLedgerEntry::OrHash,
3298
- MetronomeSDK::ContractV2::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::OrHash
3307
+ MetronomeSDK::ContractV2::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::OrHash,
3308
+ MetronomeSDK::ContractV2::Credit::Ledger::CreditRolloverLedgerEntry::OrHash
3299
3309
  )
3300
3310
  ]
3301
3311
  ).void
@@ -3330,6 +3340,19 @@ module MetronomeSDK
3330
3340
  sig { params(recurring_credit_id: String).void }
3331
3341
  attr_writer :recurring_credit_id
3332
3342
 
3343
+ sig do
3344
+ returns(T.nilable(MetronomeSDK::ContractV2::Credit::RolledOverFrom))
3345
+ end
3346
+ attr_reader :rolled_over_from
3347
+
3348
+ sig do
3349
+ params(
3350
+ rolled_over_from:
3351
+ MetronomeSDK::ContractV2::Credit::RolledOverFrom::OrHash
3352
+ ).void
3353
+ end
3354
+ attr_writer :rolled_over_from
3355
+
3333
3356
  # This field's availability is dependent on your client's configuration.
3334
3357
  sig { returns(T.nilable(String)) }
3335
3358
  attr_reader :salesforce_opportunity_id
@@ -3373,6 +3396,7 @@ module MetronomeSDK
3373
3396
  applicable_contract_ids: T::Array[String],
3374
3397
  applicable_product_ids: T::Array[String],
3375
3398
  applicable_product_tags: T::Array[String],
3399
+ archived_at: Time,
3376
3400
  balance: Float,
3377
3401
  contract: MetronomeSDK::ContractV2::Credit::Contract::OrHash,
3378
3402
  created_at: Time,
@@ -3389,13 +3413,16 @@ module MetronomeSDK
3389
3413
  MetronomeSDK::ContractV2::Credit::Ledger::CreditCanceledLedgerEntry::OrHash,
3390
3414
  MetronomeSDK::ContractV2::Credit::Ledger::CreditCreditedLedgerEntry::OrHash,
3391
3415
  MetronomeSDK::ContractV2::Credit::Ledger::CreditManualLedgerEntry::OrHash,
3392
- MetronomeSDK::ContractV2::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::OrHash
3416
+ MetronomeSDK::ContractV2::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry::OrHash,
3417
+ MetronomeSDK::ContractV2::Credit::Ledger::CreditRolloverLedgerEntry::OrHash
3393
3418
  )
3394
3419
  ],
3395
3420
  name: String,
3396
3421
  netsuite_sales_order_id: String,
3397
3422
  priority: Float,
3398
3423
  recurring_credit_id: String,
3424
+ rolled_over_from:
3425
+ MetronomeSDK::ContractV2::Credit::RolledOverFrom::OrHash,
3399
3426
  salesforce_opportunity_id: String,
3400
3427
  specifiers: T::Array[MetronomeSDK::CommitSpecifier::OrHash],
3401
3428
  subscription_config:
@@ -3411,6 +3438,7 @@ module MetronomeSDK
3411
3438
  applicable_contract_ids: nil,
3412
3439
  applicable_product_ids: nil,
3413
3440
  applicable_product_tags: nil,
3441
+ archived_at: nil,
3414
3442
  # The current balance of the credit or commit. This balance reflects the amount of
3415
3443
  # credit or commit that the customer has access to use at this moment - thus,
3416
3444
  # expired and upcoming credit or commit segments contribute 0 to the balance. The
@@ -3442,6 +3470,7 @@ module MetronomeSDK
3442
3470
  priority: nil,
3443
3471
  # The ID of the recurring credit that created this credit
3444
3472
  recurring_credit_id: nil,
3473
+ rolled_over_from: nil,
3445
3474
  # This field's availability is dependent on your client's configuration.
3446
3475
  salesforce_opportunity_id: nil,
3447
3476
  # List of filters that determine what kind of customer usage draws down a commit
@@ -3463,6 +3492,7 @@ module MetronomeSDK
3463
3492
  applicable_contract_ids: T::Array[String],
3464
3493
  applicable_product_ids: T::Array[String],
3465
3494
  applicable_product_tags: T::Array[String],
3495
+ archived_at: Time,
3466
3496
  balance: Float,
3467
3497
  contract: MetronomeSDK::ContractV2::Credit::Contract,
3468
3498
  created_at: Time,
@@ -3476,6 +3506,8 @@ module MetronomeSDK
3476
3506
  netsuite_sales_order_id: String,
3477
3507
  priority: Float,
3478
3508
  recurring_credit_id: String,
3509
+ rolled_over_from:
3510
+ MetronomeSDK::ContractV2::Credit::RolledOverFrom,
3479
3511
  salesforce_opportunity_id: String,
3480
3512
  specifiers: T::Array[MetronomeSDK::CommitSpecifier],
3481
3513
  subscription_config:
@@ -3564,7 +3596,8 @@ module MetronomeSDK
3564
3596
  MetronomeSDK::ContractV2::Credit::Ledger::CreditCanceledLedgerEntry,
3565
3597
  MetronomeSDK::ContractV2::Credit::Ledger::CreditCreditedLedgerEntry,
3566
3598
  MetronomeSDK::ContractV2::Credit::Ledger::CreditManualLedgerEntry,
3567
- MetronomeSDK::ContractV2::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry
3599
+ MetronomeSDK::ContractV2::Credit::Ledger::CreditSeatBasedAdjustmentLedgerEntry,
3600
+ MetronomeSDK::ContractV2::Credit::Ledger::CreditRolloverLedgerEntry
3568
3601
  )
3569
3602
  end
3570
3603
 
@@ -4195,6 +4228,98 @@ module MetronomeSDK
4195
4228
  end
4196
4229
  end
4197
4230
 
4231
+ class CreditRolloverLedgerEntry < MetronomeSDK::Internal::Type::BaseModel
4232
+ OrHash =
4233
+ T.type_alias do
4234
+ T.any(
4235
+ MetronomeSDK::ContractV2::Credit::Ledger::CreditRolloverLedgerEntry,
4236
+ MetronomeSDK::Internal::AnyHash
4237
+ )
4238
+ end
4239
+
4240
+ sig { returns(Float) }
4241
+ attr_accessor :amount
4242
+
4243
+ sig { returns(String) }
4244
+ attr_accessor :new_contract_id
4245
+
4246
+ sig { returns(String) }
4247
+ attr_accessor :segment_id
4248
+
4249
+ sig { returns(Time) }
4250
+ attr_accessor :timestamp
4251
+
4252
+ sig do
4253
+ returns(
4254
+ MetronomeSDK::ContractV2::Credit::Ledger::CreditRolloverLedgerEntry::Type::TaggedSymbol
4255
+ )
4256
+ end
4257
+ attr_accessor :type
4258
+
4259
+ sig do
4260
+ params(
4261
+ amount: Float,
4262
+ new_contract_id: String,
4263
+ segment_id: String,
4264
+ timestamp: Time,
4265
+ type:
4266
+ MetronomeSDK::ContractV2::Credit::Ledger::CreditRolloverLedgerEntry::Type::OrSymbol
4267
+ ).returns(T.attached_class)
4268
+ end
4269
+ def self.new(
4270
+ amount:,
4271
+ new_contract_id:,
4272
+ segment_id:,
4273
+ timestamp:,
4274
+ type:
4275
+ )
4276
+ end
4277
+
4278
+ sig do
4279
+ override.returns(
4280
+ {
4281
+ amount: Float,
4282
+ new_contract_id: String,
4283
+ segment_id: String,
4284
+ timestamp: Time,
4285
+ type:
4286
+ MetronomeSDK::ContractV2::Credit::Ledger::CreditRolloverLedgerEntry::Type::TaggedSymbol
4287
+ }
4288
+ )
4289
+ end
4290
+ def to_hash
4291
+ end
4292
+
4293
+ module Type
4294
+ extend MetronomeSDK::Internal::Type::Enum
4295
+
4296
+ TaggedSymbol =
4297
+ T.type_alias do
4298
+ T.all(
4299
+ Symbol,
4300
+ MetronomeSDK::ContractV2::Credit::Ledger::CreditRolloverLedgerEntry::Type
4301
+ )
4302
+ end
4303
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4304
+
4305
+ CREDIT_ROLLOVER =
4306
+ T.let(
4307
+ :CREDIT_ROLLOVER,
4308
+ MetronomeSDK::ContractV2::Credit::Ledger::CreditRolloverLedgerEntry::Type::TaggedSymbol
4309
+ )
4310
+
4311
+ sig do
4312
+ override.returns(
4313
+ T::Array[
4314
+ MetronomeSDK::ContractV2::Credit::Ledger::CreditRolloverLedgerEntry::Type::TaggedSymbol
4315
+ ]
4316
+ )
4317
+ end
4318
+ def self.values
4319
+ end
4320
+ end
4321
+ end
4322
+
4198
4323
  sig do
4199
4324
  override.returns(
4200
4325
  T::Array[MetronomeSDK::ContractV2::Credit::Ledger::Variants]
@@ -4203,6 +4328,34 @@ module MetronomeSDK
4203
4328
  def self.variants
4204
4329
  end
4205
4330
  end
4331
+
4332
+ class RolledOverFrom < MetronomeSDK::Internal::Type::BaseModel
4333
+ OrHash =
4334
+ T.type_alias do
4335
+ T.any(
4336
+ MetronomeSDK::ContractV2::Credit::RolledOverFrom,
4337
+ MetronomeSDK::Internal::AnyHash
4338
+ )
4339
+ end
4340
+
4341
+ sig { returns(String) }
4342
+ attr_accessor :contract_id
4343
+
4344
+ sig { returns(String) }
4345
+ attr_accessor :credit_id
4346
+
4347
+ sig do
4348
+ params(contract_id: String, credit_id: String).returns(
4349
+ T.attached_class
4350
+ )
4351
+ end
4352
+ def self.new(contract_id:, credit_id:)
4353
+ end
4354
+
4355
+ sig { override.returns({ contract_id: String, credit_id: String }) }
4356
+ def to_hash
4357
+ end
4358
+ end
4206
4359
  end
4207
4360
 
4208
4361
  class CustomerBillingProviderConfiguration < MetronomeSDK::Internal::Type::BaseModel
@@ -6526,6 +6679,750 @@ module MetronomeSDK
6526
6679
  def self.values
6527
6680
  end
6528
6681
  end
6682
+
6683
+ class Subscription < MetronomeSDK::Internal::Type::BaseModel
6684
+ OrHash =
6685
+ T.type_alias do
6686
+ T.any(
6687
+ MetronomeSDK::ContractV2::Subscription,
6688
+ MetronomeSDK::Internal::AnyHash
6689
+ )
6690
+ end
6691
+
6692
+ # Previous, current, and next billing periods for the subscription.
6693
+ sig { returns(MetronomeSDK::ContractV2::Subscription::BillingPeriods) }
6694
+ attr_reader :billing_periods
6695
+
6696
+ sig do
6697
+ params(
6698
+ billing_periods:
6699
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::OrHash
6700
+ ).void
6701
+ end
6702
+ attr_writer :billing_periods
6703
+
6704
+ sig do
6705
+ returns(
6706
+ MetronomeSDK::ContractV2::Subscription::CollectionSchedule::TaggedSymbol
6707
+ )
6708
+ end
6709
+ attr_accessor :collection_schedule
6710
+
6711
+ sig { returns(MetronomeSDK::ContractV2::Subscription::Proration) }
6712
+ attr_reader :proration
6713
+
6714
+ sig do
6715
+ params(
6716
+ proration: MetronomeSDK::ContractV2::Subscription::Proration::OrHash
6717
+ ).void
6718
+ end
6719
+ attr_writer :proration
6720
+
6721
+ # Determines how the subscription's quantity is controlled. Defaults to
6722
+ # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
6723
+ # directly on the subscription. `initial_quantity` must be provided with this
6724
+ # option. Compatible with recurring commits/credits that use POOLED allocation.
6725
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
6726
+ # user_123) to increment and decrement a subscription quantity, rather than
6727
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
6728
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
6729
+ # provided with this option.
6730
+ sig do
6731
+ returns(
6732
+ MetronomeSDK::ContractV2::Subscription::QuantityManagementMode::TaggedSymbol
6733
+ )
6734
+ end
6735
+ attr_accessor :quantity_management_mode
6736
+
6737
+ # List of quantity schedule items for the subscription. Only includes the current
6738
+ # quantity and future quantity changes.
6739
+ sig do
6740
+ returns(
6741
+ T::Array[MetronomeSDK::ContractV2::Subscription::QuantitySchedule]
6742
+ )
6743
+ end
6744
+ attr_accessor :quantity_schedule
6745
+
6746
+ sig { returns(Time) }
6747
+ attr_accessor :starting_at
6748
+
6749
+ sig do
6750
+ returns(MetronomeSDK::ContractV2::Subscription::SubscriptionRate)
6751
+ end
6752
+ attr_reader :subscription_rate
6753
+
6754
+ sig do
6755
+ params(
6756
+ subscription_rate:
6757
+ MetronomeSDK::ContractV2::Subscription::SubscriptionRate::OrHash
6758
+ ).void
6759
+ end
6760
+ attr_writer :subscription_rate
6761
+
6762
+ sig { returns(T.nilable(String)) }
6763
+ attr_reader :id
6764
+
6765
+ sig { params(id: String).void }
6766
+ attr_writer :id
6767
+
6768
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
6769
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
6770
+ attr_reader :custom_fields
6771
+
6772
+ sig { params(custom_fields: T::Hash[Symbol, String]).void }
6773
+ attr_writer :custom_fields
6774
+
6775
+ sig { returns(T.nilable(String)) }
6776
+ attr_reader :description
6777
+
6778
+ sig { params(description: String).void }
6779
+ attr_writer :description
6780
+
6781
+ sig { returns(T.nilable(Time)) }
6782
+ attr_reader :ending_before
6783
+
6784
+ sig { params(ending_before: Time).void }
6785
+ attr_writer :ending_before
6786
+
6787
+ sig { returns(T.nilable(String)) }
6788
+ attr_reader :fiat_credit_type_id
6789
+
6790
+ sig { params(fiat_credit_type_id: String).void }
6791
+ attr_writer :fiat_credit_type_id
6792
+
6793
+ sig { returns(T.nilable(String)) }
6794
+ attr_reader :name
6795
+
6796
+ sig { params(name: String).void }
6797
+ attr_writer :name
6798
+
6799
+ sig do
6800
+ returns(T.nilable(MetronomeSDK::ContractV2::Subscription::SeatConfig))
6801
+ end
6802
+ attr_reader :seat_config
6803
+
6804
+ sig do
6805
+ params(
6806
+ seat_config:
6807
+ MetronomeSDK::ContractV2::Subscription::SeatConfig::OrHash
6808
+ ).void
6809
+ end
6810
+ attr_writer :seat_config
6811
+
6812
+ sig do
6813
+ params(
6814
+ billing_periods:
6815
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::OrHash,
6816
+ collection_schedule:
6817
+ MetronomeSDK::ContractV2::Subscription::CollectionSchedule::OrSymbol,
6818
+ proration:
6819
+ MetronomeSDK::ContractV2::Subscription::Proration::OrHash,
6820
+ quantity_management_mode:
6821
+ MetronomeSDK::ContractV2::Subscription::QuantityManagementMode::OrSymbol,
6822
+ quantity_schedule:
6823
+ T::Array[
6824
+ MetronomeSDK::ContractV2::Subscription::QuantitySchedule::OrHash
6825
+ ],
6826
+ starting_at: Time,
6827
+ subscription_rate:
6828
+ MetronomeSDK::ContractV2::Subscription::SubscriptionRate::OrHash,
6829
+ id: String,
6830
+ custom_fields: T::Hash[Symbol, String],
6831
+ description: String,
6832
+ ending_before: Time,
6833
+ fiat_credit_type_id: String,
6834
+ name: String,
6835
+ seat_config:
6836
+ MetronomeSDK::ContractV2::Subscription::SeatConfig::OrHash
6837
+ ).returns(T.attached_class)
6838
+ end
6839
+ def self.new(
6840
+ # Previous, current, and next billing periods for the subscription.
6841
+ billing_periods:,
6842
+ collection_schedule:,
6843
+ proration:,
6844
+ # Determines how the subscription's quantity is controlled. Defaults to
6845
+ # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
6846
+ # directly on the subscription. `initial_quantity` must be provided with this
6847
+ # option. Compatible with recurring commits/credits that use POOLED allocation.
6848
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
6849
+ # user_123) to increment and decrement a subscription quantity, rather than
6850
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
6851
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
6852
+ # provided with this option.
6853
+ quantity_management_mode:,
6854
+ # List of quantity schedule items for the subscription. Only includes the current
6855
+ # quantity and future quantity changes.
6856
+ quantity_schedule:,
6857
+ starting_at:,
6858
+ subscription_rate:,
6859
+ id: nil,
6860
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
6861
+ custom_fields: nil,
6862
+ description: nil,
6863
+ ending_before: nil,
6864
+ fiat_credit_type_id: nil,
6865
+ name: nil,
6866
+ seat_config: nil
6867
+ )
6868
+ end
6869
+
6870
+ sig do
6871
+ override.returns(
6872
+ {
6873
+ billing_periods:
6874
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods,
6875
+ collection_schedule:
6876
+ MetronomeSDK::ContractV2::Subscription::CollectionSchedule::TaggedSymbol,
6877
+ proration: MetronomeSDK::ContractV2::Subscription::Proration,
6878
+ quantity_management_mode:
6879
+ MetronomeSDK::ContractV2::Subscription::QuantityManagementMode::TaggedSymbol,
6880
+ quantity_schedule:
6881
+ T::Array[
6882
+ MetronomeSDK::ContractV2::Subscription::QuantitySchedule
6883
+ ],
6884
+ starting_at: Time,
6885
+ subscription_rate:
6886
+ MetronomeSDK::ContractV2::Subscription::SubscriptionRate,
6887
+ id: String,
6888
+ custom_fields: T::Hash[Symbol, String],
6889
+ description: String,
6890
+ ending_before: Time,
6891
+ fiat_credit_type_id: String,
6892
+ name: String,
6893
+ seat_config: MetronomeSDK::ContractV2::Subscription::SeatConfig
6894
+ }
6895
+ )
6896
+ end
6897
+ def to_hash
6898
+ end
6899
+
6900
+ class BillingPeriods < MetronomeSDK::Internal::Type::BaseModel
6901
+ OrHash =
6902
+ T.type_alias do
6903
+ T.any(
6904
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods,
6905
+ MetronomeSDK::Internal::AnyHash
6906
+ )
6907
+ end
6908
+
6909
+ sig do
6910
+ returns(
6911
+ T.nilable(
6912
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::Current
6913
+ )
6914
+ )
6915
+ end
6916
+ attr_reader :current
6917
+
6918
+ sig do
6919
+ params(
6920
+ current:
6921
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::Current::OrHash
6922
+ ).void
6923
+ end
6924
+ attr_writer :current
6925
+
6926
+ sig do
6927
+ returns(
6928
+ T.nilable(
6929
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::Next
6930
+ )
6931
+ )
6932
+ end
6933
+ attr_reader :next_
6934
+
6935
+ sig do
6936
+ params(
6937
+ next_:
6938
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::Next::OrHash
6939
+ ).void
6940
+ end
6941
+ attr_writer :next_
6942
+
6943
+ sig do
6944
+ returns(
6945
+ T.nilable(
6946
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::Previous
6947
+ )
6948
+ )
6949
+ end
6950
+ attr_reader :previous
6951
+
6952
+ sig do
6953
+ params(
6954
+ previous:
6955
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::Previous::OrHash
6956
+ ).void
6957
+ end
6958
+ attr_writer :previous
6959
+
6960
+ # Previous, current, and next billing periods for the subscription.
6961
+ sig do
6962
+ params(
6963
+ current:
6964
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::Current::OrHash,
6965
+ next_:
6966
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::Next::OrHash,
6967
+ previous:
6968
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::Previous::OrHash
6969
+ ).returns(T.attached_class)
6970
+ end
6971
+ def self.new(current: nil, next_: nil, previous: nil)
6972
+ end
6973
+
6974
+ sig do
6975
+ override.returns(
6976
+ {
6977
+ current:
6978
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::Current,
6979
+ next_:
6980
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::Next,
6981
+ previous:
6982
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::Previous
6983
+ }
6984
+ )
6985
+ end
6986
+ def to_hash
6987
+ end
6988
+
6989
+ class Current < MetronomeSDK::Internal::Type::BaseModel
6990
+ OrHash =
6991
+ T.type_alias do
6992
+ T.any(
6993
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::Current,
6994
+ MetronomeSDK::Internal::AnyHash
6995
+ )
6996
+ end
6997
+
6998
+ sig { returns(Time) }
6999
+ attr_accessor :ending_before
7000
+
7001
+ sig { returns(Time) }
7002
+ attr_accessor :starting_at
7003
+
7004
+ sig do
7005
+ params(ending_before: Time, starting_at: Time).returns(
7006
+ T.attached_class
7007
+ )
7008
+ end
7009
+ def self.new(ending_before:, starting_at:)
7010
+ end
7011
+
7012
+ sig { override.returns({ ending_before: Time, starting_at: Time }) }
7013
+ def to_hash
7014
+ end
7015
+ end
7016
+
7017
+ class Next < MetronomeSDK::Internal::Type::BaseModel
7018
+ OrHash =
7019
+ T.type_alias do
7020
+ T.any(
7021
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::Next,
7022
+ MetronomeSDK::Internal::AnyHash
7023
+ )
7024
+ end
7025
+
7026
+ sig { returns(Time) }
7027
+ attr_accessor :ending_before
7028
+
7029
+ sig { returns(Time) }
7030
+ attr_accessor :starting_at
7031
+
7032
+ sig do
7033
+ params(ending_before: Time, starting_at: Time).returns(
7034
+ T.attached_class
7035
+ )
7036
+ end
7037
+ def self.new(ending_before:, starting_at:)
7038
+ end
7039
+
7040
+ sig { override.returns({ ending_before: Time, starting_at: Time }) }
7041
+ def to_hash
7042
+ end
7043
+ end
7044
+
7045
+ class Previous < MetronomeSDK::Internal::Type::BaseModel
7046
+ OrHash =
7047
+ T.type_alias do
7048
+ T.any(
7049
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::Previous,
7050
+ MetronomeSDK::Internal::AnyHash
7051
+ )
7052
+ end
7053
+
7054
+ sig { returns(Time) }
7055
+ attr_accessor :ending_before
7056
+
7057
+ sig { returns(Time) }
7058
+ attr_accessor :starting_at
7059
+
7060
+ sig do
7061
+ params(ending_before: Time, starting_at: Time).returns(
7062
+ T.attached_class
7063
+ )
7064
+ end
7065
+ def self.new(ending_before:, starting_at:)
7066
+ end
7067
+
7068
+ sig { override.returns({ ending_before: Time, starting_at: Time }) }
7069
+ def to_hash
7070
+ end
7071
+ end
7072
+ end
7073
+
7074
+ module CollectionSchedule
7075
+ extend MetronomeSDK::Internal::Type::Enum
7076
+
7077
+ TaggedSymbol =
7078
+ T.type_alias do
7079
+ T.all(
7080
+ Symbol,
7081
+ MetronomeSDK::ContractV2::Subscription::CollectionSchedule
7082
+ )
7083
+ end
7084
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
7085
+
7086
+ ADVANCE =
7087
+ T.let(
7088
+ :ADVANCE,
7089
+ MetronomeSDK::ContractV2::Subscription::CollectionSchedule::TaggedSymbol
7090
+ )
7091
+ ARREARS =
7092
+ T.let(
7093
+ :ARREARS,
7094
+ MetronomeSDK::ContractV2::Subscription::CollectionSchedule::TaggedSymbol
7095
+ )
7096
+
7097
+ sig do
7098
+ override.returns(
7099
+ T::Array[
7100
+ MetronomeSDK::ContractV2::Subscription::CollectionSchedule::TaggedSymbol
7101
+ ]
7102
+ )
7103
+ end
7104
+ def self.values
7105
+ end
7106
+ end
7107
+
7108
+ class Proration < MetronomeSDK::Internal::Type::BaseModel
7109
+ OrHash =
7110
+ T.type_alias do
7111
+ T.any(
7112
+ MetronomeSDK::ContractV2::Subscription::Proration,
7113
+ MetronomeSDK::Internal::AnyHash
7114
+ )
7115
+ end
7116
+
7117
+ sig do
7118
+ returns(
7119
+ MetronomeSDK::ContractV2::Subscription::Proration::InvoiceBehavior::TaggedSymbol
7120
+ )
7121
+ end
7122
+ attr_accessor :invoice_behavior
7123
+
7124
+ sig { returns(T::Boolean) }
7125
+ attr_accessor :is_prorated
7126
+
7127
+ sig do
7128
+ params(
7129
+ invoice_behavior:
7130
+ MetronomeSDK::ContractV2::Subscription::Proration::InvoiceBehavior::OrSymbol,
7131
+ is_prorated: T::Boolean
7132
+ ).returns(T.attached_class)
7133
+ end
7134
+ def self.new(invoice_behavior:, is_prorated:)
7135
+ end
7136
+
7137
+ sig do
7138
+ override.returns(
7139
+ {
7140
+ invoice_behavior:
7141
+ MetronomeSDK::ContractV2::Subscription::Proration::InvoiceBehavior::TaggedSymbol,
7142
+ is_prorated: T::Boolean
7143
+ }
7144
+ )
7145
+ end
7146
+ def to_hash
7147
+ end
7148
+
7149
+ module InvoiceBehavior
7150
+ extend MetronomeSDK::Internal::Type::Enum
7151
+
7152
+ TaggedSymbol =
7153
+ T.type_alias do
7154
+ T.all(
7155
+ Symbol,
7156
+ MetronomeSDK::ContractV2::Subscription::Proration::InvoiceBehavior
7157
+ )
7158
+ end
7159
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
7160
+
7161
+ BILL_IMMEDIATELY =
7162
+ T.let(
7163
+ :BILL_IMMEDIATELY,
7164
+ MetronomeSDK::ContractV2::Subscription::Proration::InvoiceBehavior::TaggedSymbol
7165
+ )
7166
+ BILL_ON_NEXT_COLLECTION_DATE =
7167
+ T.let(
7168
+ :BILL_ON_NEXT_COLLECTION_DATE,
7169
+ MetronomeSDK::ContractV2::Subscription::Proration::InvoiceBehavior::TaggedSymbol
7170
+ )
7171
+
7172
+ sig do
7173
+ override.returns(
7174
+ T::Array[
7175
+ MetronomeSDK::ContractV2::Subscription::Proration::InvoiceBehavior::TaggedSymbol
7176
+ ]
7177
+ )
7178
+ end
7179
+ def self.values
7180
+ end
7181
+ end
7182
+ end
7183
+
7184
+ # Determines how the subscription's quantity is controlled. Defaults to
7185
+ # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
7186
+ # directly on the subscription. `initial_quantity` must be provided with this
7187
+ # option. Compatible with recurring commits/credits that use POOLED allocation.
7188
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
7189
+ # user_123) to increment and decrement a subscription quantity, rather than
7190
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
7191
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
7192
+ # provided with this option.
7193
+ module QuantityManagementMode
7194
+ extend MetronomeSDK::Internal::Type::Enum
7195
+
7196
+ TaggedSymbol =
7197
+ T.type_alias do
7198
+ T.all(
7199
+ Symbol,
7200
+ MetronomeSDK::ContractV2::Subscription::QuantityManagementMode
7201
+ )
7202
+ end
7203
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
7204
+
7205
+ SEAT_BASED =
7206
+ T.let(
7207
+ :SEAT_BASED,
7208
+ MetronomeSDK::ContractV2::Subscription::QuantityManagementMode::TaggedSymbol
7209
+ )
7210
+ QUANTITY_ONLY =
7211
+ T.let(
7212
+ :QUANTITY_ONLY,
7213
+ MetronomeSDK::ContractV2::Subscription::QuantityManagementMode::TaggedSymbol
7214
+ )
7215
+
7216
+ sig do
7217
+ override.returns(
7218
+ T::Array[
7219
+ MetronomeSDK::ContractV2::Subscription::QuantityManagementMode::TaggedSymbol
7220
+ ]
7221
+ )
7222
+ end
7223
+ def self.values
7224
+ end
7225
+ end
7226
+
7227
+ class QuantitySchedule < MetronomeSDK::Internal::Type::BaseModel
7228
+ OrHash =
7229
+ T.type_alias do
7230
+ T.any(
7231
+ MetronomeSDK::ContractV2::Subscription::QuantitySchedule,
7232
+ MetronomeSDK::Internal::AnyHash
7233
+ )
7234
+ end
7235
+
7236
+ sig { returns(Float) }
7237
+ attr_accessor :quantity
7238
+
7239
+ sig { returns(Time) }
7240
+ attr_accessor :starting_at
7241
+
7242
+ sig { returns(T.nilable(Time)) }
7243
+ attr_reader :ending_before
7244
+
7245
+ sig { params(ending_before: Time).void }
7246
+ attr_writer :ending_before
7247
+
7248
+ sig do
7249
+ params(
7250
+ quantity: Float,
7251
+ starting_at: Time,
7252
+ ending_before: Time
7253
+ ).returns(T.attached_class)
7254
+ end
7255
+ def self.new(quantity:, starting_at:, ending_before: nil)
7256
+ end
7257
+
7258
+ sig do
7259
+ override.returns(
7260
+ { quantity: Float, starting_at: Time, ending_before: Time }
7261
+ )
7262
+ end
7263
+ def to_hash
7264
+ end
7265
+ end
7266
+
7267
+ class SubscriptionRate < MetronomeSDK::Internal::Type::BaseModel
7268
+ OrHash =
7269
+ T.type_alias do
7270
+ T.any(
7271
+ MetronomeSDK::ContractV2::Subscription::SubscriptionRate,
7272
+ MetronomeSDK::Internal::AnyHash
7273
+ )
7274
+ end
7275
+
7276
+ sig do
7277
+ returns(
7278
+ MetronomeSDK::ContractV2::Subscription::SubscriptionRate::BillingFrequency::TaggedSymbol
7279
+ )
7280
+ end
7281
+ attr_accessor :billing_frequency
7282
+
7283
+ sig do
7284
+ returns(
7285
+ MetronomeSDK::ContractV2::Subscription::SubscriptionRate::Product
7286
+ )
7287
+ end
7288
+ attr_reader :product
7289
+
7290
+ sig do
7291
+ params(
7292
+ product:
7293
+ MetronomeSDK::ContractV2::Subscription::SubscriptionRate::Product::OrHash
7294
+ ).void
7295
+ end
7296
+ attr_writer :product
7297
+
7298
+ sig do
7299
+ params(
7300
+ billing_frequency:
7301
+ MetronomeSDK::ContractV2::Subscription::SubscriptionRate::BillingFrequency::OrSymbol,
7302
+ product:
7303
+ MetronomeSDK::ContractV2::Subscription::SubscriptionRate::Product::OrHash
7304
+ ).returns(T.attached_class)
7305
+ end
7306
+ def self.new(billing_frequency:, product:)
7307
+ end
7308
+
7309
+ sig do
7310
+ override.returns(
7311
+ {
7312
+ billing_frequency:
7313
+ MetronomeSDK::ContractV2::Subscription::SubscriptionRate::BillingFrequency::TaggedSymbol,
7314
+ product:
7315
+ MetronomeSDK::ContractV2::Subscription::SubscriptionRate::Product
7316
+ }
7317
+ )
7318
+ end
7319
+ def to_hash
7320
+ end
7321
+
7322
+ module BillingFrequency
7323
+ extend MetronomeSDK::Internal::Type::Enum
7324
+
7325
+ TaggedSymbol =
7326
+ T.type_alias do
7327
+ T.all(
7328
+ Symbol,
7329
+ MetronomeSDK::ContractV2::Subscription::SubscriptionRate::BillingFrequency
7330
+ )
7331
+ end
7332
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
7333
+
7334
+ MONTHLY =
7335
+ T.let(
7336
+ :MONTHLY,
7337
+ MetronomeSDK::ContractV2::Subscription::SubscriptionRate::BillingFrequency::TaggedSymbol
7338
+ )
7339
+ QUARTERLY =
7340
+ T.let(
7341
+ :QUARTERLY,
7342
+ MetronomeSDK::ContractV2::Subscription::SubscriptionRate::BillingFrequency::TaggedSymbol
7343
+ )
7344
+ ANNUAL =
7345
+ T.let(
7346
+ :ANNUAL,
7347
+ MetronomeSDK::ContractV2::Subscription::SubscriptionRate::BillingFrequency::TaggedSymbol
7348
+ )
7349
+ WEEKLY =
7350
+ T.let(
7351
+ :WEEKLY,
7352
+ MetronomeSDK::ContractV2::Subscription::SubscriptionRate::BillingFrequency::TaggedSymbol
7353
+ )
7354
+
7355
+ sig do
7356
+ override.returns(
7357
+ T::Array[
7358
+ MetronomeSDK::ContractV2::Subscription::SubscriptionRate::BillingFrequency::TaggedSymbol
7359
+ ]
7360
+ )
7361
+ end
7362
+ def self.values
7363
+ end
7364
+ end
7365
+
7366
+ class Product < MetronomeSDK::Internal::Type::BaseModel
7367
+ OrHash =
7368
+ T.type_alias do
7369
+ T.any(
7370
+ MetronomeSDK::ContractV2::Subscription::SubscriptionRate::Product,
7371
+ MetronomeSDK::Internal::AnyHash
7372
+ )
7373
+ end
7374
+
7375
+ sig { returns(String) }
7376
+ attr_accessor :id
7377
+
7378
+ sig { returns(String) }
7379
+ attr_accessor :name
7380
+
7381
+ sig { params(id: String, name: String).returns(T.attached_class) }
7382
+ def self.new(id:, name:)
7383
+ end
7384
+
7385
+ sig { override.returns({ id: String, name: String }) }
7386
+ def to_hash
7387
+ end
7388
+ end
7389
+ end
7390
+
7391
+ class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
7392
+ OrHash =
7393
+ T.type_alias do
7394
+ T.any(
7395
+ MetronomeSDK::ContractV2::Subscription::SeatConfig,
7396
+ MetronomeSDK::Internal::AnyHash
7397
+ )
7398
+ end
7399
+
7400
+ # The property name, sent on usage events, that identifies the seat ID associated
7401
+ # with the usage event. For example, the property name might be seat_id or
7402
+ # user_id. The property must be set as a group key on billable metrics and a
7403
+ # presentation/pricing group key on contract products. This allows linked
7404
+ # recurring credits with an allocation per seat to be consumed by only one seat's
7405
+ # usage.
7406
+ sig { returns(String) }
7407
+ attr_accessor :seat_group_key
7408
+
7409
+ sig { params(seat_group_key: String).returns(T.attached_class) }
7410
+ def self.new(
7411
+ # The property name, sent on usage events, that identifies the seat ID associated
7412
+ # with the usage event. For example, the property name might be seat_id or
7413
+ # user_id. The property must be set as a group key on billable metrics and a
7414
+ # presentation/pricing group key on contract products. This allows linked
7415
+ # recurring credits with an allocation per seat to be consumed by only one seat's
7416
+ # usage.
7417
+ seat_group_key:
7418
+ )
7419
+ end
7420
+
7421
+ sig { override.returns({ seat_group_key: String }) }
7422
+ def to_hash
7423
+ end
7424
+ end
7425
+ end
6529
7426
  end
6530
7427
  end
6531
7428
  end