metronome-sdk 2.0.0 → 2.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 (151) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +75 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +7 -1
  5. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +38 -26
  6. data/lib/metronome_sdk/internal/util.rb +7 -2
  7. data/lib/metronome_sdk/models/contract.rb +1 -0
  8. data/lib/metronome_sdk/models/contract_v2.rb +69 -23
  9. data/lib/metronome_sdk/models/hierarchy_configuration.rb +45 -21
  10. data/lib/metronome_sdk/models/subscription.rb +38 -1
  11. data/lib/metronome_sdk/models/v1/alert_create_params.rb +33 -1
  12. data/lib/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rb +10 -1
  13. data/lib/metronome_sdk/models/v1/contract_create_params.rb +195 -29
  14. data/lib/metronome_sdk/models/v1/contract_list_balances_params.rb +9 -1
  15. data/lib/metronome_sdk/models/v1/customer_create_params.rb +105 -3
  16. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +14 -10
  17. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rb +1 -0
  18. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb +1 -0
  19. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_response.rb +111 -0
  20. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +32 -1
  21. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +21 -2
  22. data/lib/metronome_sdk/models/v1/customers/billing_config_delete_params.rb +1 -0
  23. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rb +1 -0
  24. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +21 -2
  25. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +1 -1
  26. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +34 -1
  27. data/lib/metronome_sdk/models/v1/customers/invoice.rb +144 -4
  28. data/lib/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rb +8 -1
  29. data/lib/metronome_sdk/models/v1/payment.rb +7 -1
  30. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rb +74 -0
  31. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rb +12 -0
  32. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_params.rb +74 -0
  33. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_response.rb +31 -0
  34. data/lib/metronome_sdk/models/v1/settings/billing_provider_list_params.rb +26 -0
  35. data/lib/metronome_sdk/models/v1/settings/billing_provider_list_response.rb +105 -0
  36. data/lib/metronome_sdk/models/v1/usage_search_response.rb +6 -3
  37. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +17 -1
  38. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +17 -1
  39. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +300 -10
  40. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +177 -3
  41. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  42. data/lib/metronome_sdk/resources/v1/contracts.rb +10 -4
  43. data/lib/metronome_sdk/resources/v1/credit_grants.rb +10 -5
  44. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +3 -1
  45. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +12 -5
  46. data/lib/metronome_sdk/resources/v1/customers/commits.rb +2 -1
  47. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +2 -1
  48. data/lib/metronome_sdk/resources/v1/customers/plans.rb +8 -4
  49. data/lib/metronome_sdk/resources/v1/customers.rb +12 -8
  50. data/lib/metronome_sdk/resources/v1/plans.rb +8 -4
  51. data/lib/metronome_sdk/resources/v1/settings/billing_providers.rb +75 -0
  52. data/lib/metronome_sdk/resources/v1/settings.rb +57 -0
  53. data/lib/metronome_sdk/resources/v1.rb +4 -0
  54. data/lib/metronome_sdk/resources/v2/contracts.rb +10 -2
  55. data/lib/metronome_sdk/version.rb +1 -1
  56. data/lib/metronome_sdk.rb +11 -0
  57. data/manifest.yaml +2 -0
  58. data/rbi/metronome_sdk/internal/transport/base_client.rbi +5 -0
  59. data/rbi/metronome_sdk/internal/transport/pooled_net_requester.rbi +6 -2
  60. data/rbi/metronome_sdk/internal/type/base_model.rbi +8 -4
  61. data/rbi/metronome_sdk/models/contract.rbi +5 -0
  62. data/rbi/metronome_sdk/models/contract_v2.rbi +122 -33
  63. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +63 -27
  64. data/rbi/metronome_sdk/models/subscription.rbi +64 -3
  65. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +69 -0
  66. data/rbi/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbi +13 -0
  67. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +360 -33
  68. data/rbi/metronome_sdk/models/v1/contract_list_balances_params.rbi +11 -0
  69. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +215 -0
  70. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +18 -11
  71. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbi +5 -0
  72. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbi +5 -0
  73. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbi +281 -0
  74. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +67 -0
  75. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +29 -0
  76. data/rbi/metronome_sdk/models/v1/customers/billing_config_delete_params.rbi +5 -0
  77. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rbi +5 -0
  78. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +24 -0
  79. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +2 -2
  80. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +76 -0
  81. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +268 -0
  82. data/rbi/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbi +9 -0
  83. data/rbi/metronome_sdk/models/v1/payment.rbi +11 -3
  84. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbi +128 -0
  85. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rbi +25 -0
  86. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_params.rbi +162 -0
  87. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_response.rbi +75 -0
  88. data/rbi/metronome_sdk/models/v1/settings/billing_provider_list_params.rbi +50 -0
  89. data/rbi/metronome_sdk/models/v1/settings/billing_provider_list_response.rbi +245 -0
  90. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +11 -3
  91. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +22 -0
  92. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +22 -0
  93. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +630 -9
  94. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +367 -3
  95. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -0
  96. data/rbi/metronome_sdk/resources/v1/contracts.rbi +13 -1
  97. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +10 -5
  98. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +5 -0
  99. data/rbi/metronome_sdk/resources/v1/customers/billing_config.rbi +14 -4
  100. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +3 -2
  101. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +2 -1
  102. data/rbi/metronome_sdk/resources/v1/customers/plans.rbi +8 -4
  103. data/rbi/metronome_sdk/resources/v1/customers.rbi +19 -9
  104. data/rbi/metronome_sdk/resources/v1/plans.rbi +8 -4
  105. data/rbi/metronome_sdk/resources/v1/settings/billing_providers.rbi +63 -0
  106. data/rbi/metronome_sdk/resources/v1/settings.rbi +51 -0
  107. data/rbi/metronome_sdk/resources/v1.rbi +3 -0
  108. data/rbi/metronome_sdk/resources/v2/contracts.rbi +12 -0
  109. data/sig/metronome_sdk/internal/transport/base_client.rbs +2 -0
  110. data/sig/metronome_sdk/internal/transport/pooled_net_requester.rbs +4 -1
  111. data/sig/metronome_sdk/models/contract.rbs +2 -0
  112. data/sig/metronome_sdk/models/contract_v2.rbs +33 -6
  113. data/sig/metronome_sdk/models/subscription.rbs +22 -3
  114. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +28 -0
  115. data/sig/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbs +7 -0
  116. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +104 -0
  117. data/sig/metronome_sdk/models/v1/contract_list_balances_params.rbs +7 -0
  118. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +85 -0
  119. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbs +2 -0
  120. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbs +2 -0
  121. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbs +119 -0
  122. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +26 -1
  123. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +16 -0
  124. data/sig/metronome_sdk/models/v1/customers/billing_config_delete_params.rbs +2 -0
  125. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rbs +2 -0
  126. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +14 -0
  127. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +32 -0
  128. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +130 -0
  129. data/sig/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbs +7 -0
  130. data/sig/metronome_sdk/models/v1/payment.rbs +10 -3
  131. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbs +61 -0
  132. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rbs +13 -0
  133. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_params.rbs +66 -0
  134. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_response.rbs +34 -0
  135. data/sig/metronome_sdk/models/v1/settings/billing_provider_list_params.rbs +28 -0
  136. data/sig/metronome_sdk/models/v1/settings/billing_provider_list_response.rbs +102 -0
  137. data/sig/metronome_sdk/models/v1/usage_search_response.rbs +3 -1
  138. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +14 -0
  139. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +14 -0
  140. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +234 -3
  141. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +131 -3
  142. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  143. data/sig/metronome_sdk/resources/v1/contracts.rbs +3 -0
  144. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  145. data/sig/metronome_sdk/resources/v1/customers/billing_config.rbs +2 -0
  146. data/sig/metronome_sdk/resources/v1/customers.rbs +2 -1
  147. data/sig/metronome_sdk/resources/v1/settings/billing_providers.rbs +23 -0
  148. data/sig/metronome_sdk/resources/v1/settings.rbs +20 -0
  149. data/sig/metronome_sdk/resources/v1.rbs +2 -0
  150. data/sig/metronome_sdk/resources/v2/contracts.rbs +4 -0
  151. metadata +29 -2
@@ -981,6 +981,11 @@ module MetronomeSDK
981
981
  :gcp_marketplace,
982
982
  MetronomeSDK::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration::BillingProvider::TaggedSymbol
983
983
  )
984
+ METRONOME =
985
+ T.let(
986
+ :metronome,
987
+ MetronomeSDK::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::BillingProviderConfiguration::BillingProvider::TaggedSymbol
988
+ )
984
989
 
985
990
  sig do
986
991
  override.returns(
@@ -4696,7 +4701,8 @@ module MetronomeSDK
4696
4701
  sig { returns(String) }
4697
4702
  attr_accessor :subscription_id
4698
4703
 
4699
- # If set to POOLED, allocation added per seat is pooled across the account.
4704
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
4705
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
4700
4706
  sig do
4701
4707
  returns(
4702
4708
  T.nilable(
@@ -4728,7 +4734,8 @@ module MetronomeSDK
4728
4734
  apply_seat_increase_config:,
4729
4735
  # ID of the subscription to configure on the recurring commit/credit.
4730
4736
  subscription_id:,
4731
- # If set to POOLED, allocation added per seat is pooled across the account.
4737
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
4738
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
4732
4739
  allocation: nil
4733
4740
  )
4734
4741
  end
@@ -4772,7 +4779,8 @@ module MetronomeSDK
4772
4779
  end
4773
4780
  end
4774
4781
 
4775
- # If set to POOLED, allocation added per seat is pooled across the account.
4782
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
4783
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
4776
4784
  module Allocation
4777
4785
  extend MetronomeSDK::Internal::Type::Enum
4778
4786
 
@@ -5441,7 +5449,8 @@ module MetronomeSDK
5441
5449
  sig { returns(String) }
5442
5450
  attr_accessor :subscription_id
5443
5451
 
5444
- # If set to POOLED, allocation added per seat is pooled across the account.
5452
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
5453
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
5445
5454
  sig do
5446
5455
  returns(
5447
5456
  T.nilable(
@@ -5473,7 +5482,8 @@ module MetronomeSDK
5473
5482
  apply_seat_increase_config:,
5474
5483
  # ID of the subscription to configure on the recurring commit/credit.
5475
5484
  subscription_id:,
5476
- # If set to POOLED, allocation added per seat is pooled across the account.
5485
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
5486
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
5477
5487
  allocation: nil
5478
5488
  )
5479
5489
  end
@@ -5517,7 +5527,8 @@ module MetronomeSDK
5517
5527
  end
5518
5528
  end
5519
5529
 
5520
- # If set to POOLED, allocation added per seat is pooled across the account.
5530
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
5531
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
5521
5532
  module Allocation
5522
5533
  extend MetronomeSDK::Internal::Type::Enum
5523
5534
 
@@ -6405,6 +6416,11 @@ module MetronomeSDK
6405
6416
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
6406
6417
  # directly on the subscription. `initial_quantity` must be provided with this
6407
6418
  # option. Compatible with recurring commits/credits that use POOLED allocation.
6419
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
6420
+ # user_123) to increment and decrement a subscription quantity, rather than
6421
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
6422
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
6423
+ # provided with this option.
6408
6424
  sig do
6409
6425
  returns(
6410
6426
  T.nilable(
@@ -6422,6 +6438,23 @@ module MetronomeSDK
6422
6438
  end
6423
6439
  attr_writer :quantity_management_mode
6424
6440
 
6441
+ sig do
6442
+ returns(
6443
+ T.nilable(
6444
+ MetronomeSDK::V2::ContractEditParams::AddSubscription::SeatConfig
6445
+ )
6446
+ )
6447
+ end
6448
+ attr_reader :seat_config
6449
+
6450
+ sig do
6451
+ params(
6452
+ seat_config:
6453
+ MetronomeSDK::V2::ContractEditParams::AddSubscription::SeatConfig::OrHash
6454
+ ).void
6455
+ end
6456
+ attr_writer :seat_config
6457
+
6425
6458
  # Inclusive start time for the subscription. If not provided, defaults to contract
6426
6459
  # start date
6427
6460
  sig { returns(T.nilable(Time)) }
@@ -6453,6 +6486,8 @@ module MetronomeSDK
6453
6486
  name: String,
6454
6487
  quantity_management_mode:
6455
6488
  MetronomeSDK::V2::ContractEditParams::AddSubscription::QuantityManagementMode::OrSymbol,
6489
+ seat_config:
6490
+ MetronomeSDK::V2::ContractEditParams::AddSubscription::SeatConfig::OrHash,
6456
6491
  starting_at: Time,
6457
6492
  temporary_id: String
6458
6493
  ).returns(T.attached_class)
@@ -6475,7 +6510,13 @@ module MetronomeSDK
6475
6510
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
6476
6511
  # directly on the subscription. `initial_quantity` must be provided with this
6477
6512
  # option. Compatible with recurring commits/credits that use POOLED allocation.
6513
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
6514
+ # user_123) to increment and decrement a subscription quantity, rather than
6515
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
6516
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
6517
+ # provided with this option.
6478
6518
  quantity_management_mode: nil,
6519
+ seat_config: nil,
6479
6520
  # Inclusive start time for the subscription. If not provided, defaults to contract
6480
6521
  # start date
6481
6522
  starting_at: nil,
@@ -6501,6 +6542,8 @@ module MetronomeSDK
6501
6542
  name: String,
6502
6543
  quantity_management_mode:
6503
6544
  MetronomeSDK::V2::ContractEditParams::AddSubscription::QuantityManagementMode::OrSymbol,
6545
+ seat_config:
6546
+ MetronomeSDK::V2::ContractEditParams::AddSubscription::SeatConfig,
6504
6547
  starting_at: Time,
6505
6548
  temporary_id: String
6506
6549
  }
@@ -6753,6 +6796,11 @@ module MetronomeSDK
6753
6796
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
6754
6797
  # directly on the subscription. `initial_quantity` must be provided with this
6755
6798
  # option. Compatible with recurring commits/credits that use POOLED allocation.
6799
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
6800
+ # user_123) to increment and decrement a subscription quantity, rather than
6801
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
6802
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
6803
+ # provided with this option.
6756
6804
  module QuantityManagementMode
6757
6805
  extend MetronomeSDK::Internal::Type::Enum
6758
6806
 
@@ -6786,6 +6834,70 @@ module MetronomeSDK
6786
6834
  def self.values
6787
6835
  end
6788
6836
  end
6837
+
6838
+ class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
6839
+ OrHash =
6840
+ T.type_alias do
6841
+ T.any(
6842
+ MetronomeSDK::V2::ContractEditParams::AddSubscription::SeatConfig,
6843
+ MetronomeSDK::Internal::AnyHash
6844
+ )
6845
+ end
6846
+
6847
+ # The initial assigned seats on this subscription.
6848
+ sig { returns(T::Array[String]) }
6849
+ attr_accessor :initial_seat_ids
6850
+
6851
+ # The property name, sent on usage events, that identifies the seat ID associated
6852
+ # with the usage event. For example, the property name might be seat_id or
6853
+ # user_id. The property must be set as a group key on billable metrics and a
6854
+ # presentation/pricing group key on contract products. This allows linked
6855
+ # recurring credits with an allocation per seat to be consumed by only one seat's
6856
+ # usage.
6857
+ sig { returns(String) }
6858
+ attr_accessor :seat_group_key
6859
+
6860
+ # The initial amount of unassigned seats on this subscription.
6861
+ sig { returns(T.nilable(Float)) }
6862
+ attr_reader :initial_unassigned_seats
6863
+
6864
+ sig { params(initial_unassigned_seats: Float).void }
6865
+ attr_writer :initial_unassigned_seats
6866
+
6867
+ sig do
6868
+ params(
6869
+ initial_seat_ids: T::Array[String],
6870
+ seat_group_key: String,
6871
+ initial_unassigned_seats: Float
6872
+ ).returns(T.attached_class)
6873
+ end
6874
+ def self.new(
6875
+ # The initial assigned seats on this subscription.
6876
+ initial_seat_ids:,
6877
+ # The property name, sent on usage events, that identifies the seat ID associated
6878
+ # with the usage event. For example, the property name might be seat_id or
6879
+ # user_id. The property must be set as a group key on billable metrics and a
6880
+ # presentation/pricing group key on contract products. This allows linked
6881
+ # recurring credits with an allocation per seat to be consumed by only one seat's
6882
+ # usage.
6883
+ seat_group_key:,
6884
+ # The initial amount of unassigned seats on this subscription.
6885
+ initial_unassigned_seats: nil
6886
+ )
6887
+ end
6888
+
6889
+ sig do
6890
+ override.returns(
6891
+ {
6892
+ initial_seat_ids: T::Array[String],
6893
+ seat_group_key: String,
6894
+ initial_unassigned_seats: Float
6895
+ }
6896
+ )
6897
+ end
6898
+ def to_hash
6899
+ end
6900
+ end
6789
6901
  end
6790
6902
 
6791
6903
  class ArchiveCommit < MetronomeSDK::Internal::Type::BaseModel
@@ -6913,6 +7025,12 @@ module MetronomeSDK
6913
7025
  sig { returns(T.nilable(T::Array[String])) }
6914
7026
  attr_accessor :applicable_product_tags
6915
7027
 
7028
+ sig { returns(T.nilable(String)) }
7029
+ attr_reader :description
7030
+
7031
+ sig { params(description: String).void }
7032
+ attr_writer :description
7033
+
6916
7034
  # Optional configuration for commit hierarchy access control
6917
7035
  sig { returns(T.nilable(MetronomeSDK::CommitHierarchyConfiguration)) }
6918
7036
  attr_reader :hierarchy_configuration
@@ -6942,6 +7060,12 @@ module MetronomeSDK
6942
7060
  end
6943
7061
  attr_writer :invoice_schedule
6944
7062
 
7063
+ sig { returns(T.nilable(String)) }
7064
+ attr_reader :name
7065
+
7066
+ sig { params(name: String).void }
7067
+ attr_writer :name
7068
+
6945
7069
  sig { returns(T.nilable(String)) }
6946
7070
  attr_accessor :netsuite_sales_order_id
6947
7071
 
@@ -6984,10 +7108,12 @@ module MetronomeSDK
6984
7108
  MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::OrHash,
6985
7109
  applicable_product_ids: T.nilable(T::Array[String]),
6986
7110
  applicable_product_tags: T.nilable(T::Array[String]),
7111
+ description: String,
6987
7112
  hierarchy_configuration:
6988
7113
  MetronomeSDK::CommitHierarchyConfiguration::OrHash,
6989
7114
  invoice_schedule:
6990
7115
  MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::OrHash,
7116
+ name: String,
6991
7117
  netsuite_sales_order_id: T.nilable(String),
6992
7118
  priority: T.nilable(Float),
6993
7119
  product_id: String,
@@ -7007,9 +7133,11 @@ module MetronomeSDK
7007
7133
  # applicable_product_tags or specifiers are not provided, the commit applies to
7008
7134
  # all products.
7009
7135
  applicable_product_tags: nil,
7136
+ description: nil,
7010
7137
  # Optional configuration for commit hierarchy access control
7011
7138
  hierarchy_configuration: nil,
7012
7139
  invoice_schedule: nil,
7140
+ name: nil,
7013
7141
  netsuite_sales_order_id: nil,
7014
7142
  priority: nil,
7015
7143
  product_id: nil,
@@ -7029,10 +7157,12 @@ module MetronomeSDK
7029
7157
  MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule,
7030
7158
  applicable_product_ids: T.nilable(T::Array[String]),
7031
7159
  applicable_product_tags: T.nilable(T::Array[String]),
7160
+ description: String,
7032
7161
  hierarchy_configuration:
7033
7162
  MetronomeSDK::CommitHierarchyConfiguration,
7034
7163
  invoice_schedule:
7035
7164
  MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule,
7165
+ name: String,
7036
7166
  netsuite_sales_order_id: T.nilable(String),
7037
7167
  priority: T.nilable(Float),
7038
7168
  product_id: String,
@@ -7626,6 +7756,12 @@ module MetronomeSDK
7626
7756
  sig { returns(T.nilable(T::Array[String])) }
7627
7757
  attr_accessor :applicable_product_tags
7628
7758
 
7759
+ sig { returns(T.nilable(String)) }
7760
+ attr_reader :description
7761
+
7762
+ sig { params(description: String).void }
7763
+ attr_writer :description
7764
+
7629
7765
  # Optional configuration for commit hierarchy access control
7630
7766
  sig { returns(T.nilable(MetronomeSDK::CommitHierarchyConfiguration)) }
7631
7767
  attr_reader :hierarchy_configuration
@@ -7638,6 +7774,12 @@ module MetronomeSDK
7638
7774
  end
7639
7775
  attr_writer :hierarchy_configuration
7640
7776
 
7777
+ sig { returns(T.nilable(String)) }
7778
+ attr_reader :name
7779
+
7780
+ sig { params(name: String).void }
7781
+ attr_writer :name
7782
+
7641
7783
  sig { returns(T.nilable(String)) }
7642
7784
  attr_accessor :netsuite_sales_order_id
7643
7785
 
@@ -7677,8 +7819,10 @@ module MetronomeSDK
7677
7819
  MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::OrHash,
7678
7820
  applicable_product_ids: T.nilable(T::Array[String]),
7679
7821
  applicable_product_tags: T.nilable(T::Array[String]),
7822
+ description: String,
7680
7823
  hierarchy_configuration:
7681
7824
  MetronomeSDK::CommitHierarchyConfiguration::OrHash,
7825
+ name: String,
7682
7826
  netsuite_sales_order_id: T.nilable(String),
7683
7827
  priority: T.nilable(Float),
7684
7828
  product_id: String,
@@ -7697,8 +7841,10 @@ module MetronomeSDK
7697
7841
  # applicable_product_tags or specifiers are not provided, the commit applies to
7698
7842
  # all products.
7699
7843
  applicable_product_tags: nil,
7844
+ description: nil,
7700
7845
  # Optional configuration for commit hierarchy access control
7701
7846
  hierarchy_configuration: nil,
7847
+ name: nil,
7702
7848
  netsuite_sales_order_id: nil,
7703
7849
  priority: nil,
7704
7850
  product_id: nil,
@@ -7717,8 +7863,10 @@ module MetronomeSDK
7717
7863
  MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule,
7718
7864
  applicable_product_ids: T.nilable(T::Array[String]),
7719
7865
  applicable_product_tags: T.nilable(T::Array[String]),
7866
+ description: String,
7720
7867
  hierarchy_configuration:
7721
7868
  MetronomeSDK::CommitHierarchyConfiguration,
7869
+ name: String,
7722
7870
  netsuite_sales_order_id: T.nilable(String),
7723
7871
  priority: T.nilable(Float),
7724
7872
  product_id: String,
@@ -8979,6 +9127,25 @@ module MetronomeSDK
8979
9127
  sig { returns(T.nilable(Time)) }
8980
9128
  attr_accessor :ending_before
8981
9129
 
9130
+ # Update the subscription's quantity management mode from QUANTITY_ONLY to
9131
+ # SEAT_BASED with the provided seat_group_key.
9132
+ sig do
9133
+ returns(
9134
+ T.nilable(
9135
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate
9136
+ )
9137
+ )
9138
+ end
9139
+ attr_reader :quantity_management_mode_update
9140
+
9141
+ sig do
9142
+ params(
9143
+ quantity_management_mode_update:
9144
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::OrHash
9145
+ ).void
9146
+ end
9147
+ attr_writer :quantity_management_mode_update
9148
+
8982
9149
  # Quantity changes are applied on the effective date based on the order which they
8983
9150
  # are sent. For example, if I scheduled the quantity to be 12 on May 21 and then
8984
9151
  # scheduled a quantity delta change of -1, the result from that day would be 11.
@@ -9003,23 +9170,48 @@ module MetronomeSDK
9003
9170
  end
9004
9171
  attr_writer :quantity_updates
9005
9172
 
9173
+ sig do
9174
+ returns(
9175
+ T.nilable(
9176
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates
9177
+ )
9178
+ )
9179
+ end
9180
+ attr_reader :seat_updates
9181
+
9182
+ sig do
9183
+ params(
9184
+ seat_updates:
9185
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::OrHash
9186
+ ).void
9187
+ end
9188
+ attr_writer :seat_updates
9189
+
9006
9190
  sig do
9007
9191
  params(
9008
9192
  subscription_id: String,
9009
9193
  ending_before: T.nilable(Time),
9194
+ quantity_management_mode_update:
9195
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::OrHash,
9010
9196
  quantity_updates:
9011
9197
  T::Array[
9012
9198
  MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityUpdate::OrHash
9013
- ]
9199
+ ],
9200
+ seat_updates:
9201
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::OrHash
9014
9202
  ).returns(T.attached_class)
9015
9203
  end
9016
9204
  def self.new(
9017
9205
  subscription_id:,
9018
9206
  ending_before: nil,
9207
+ # Update the subscription's quantity management mode from QUANTITY_ONLY to
9208
+ # SEAT_BASED with the provided seat_group_key.
9209
+ quantity_management_mode_update: nil,
9019
9210
  # Quantity changes are applied on the effective date based on the order which they
9020
9211
  # are sent. For example, if I scheduled the quantity to be 12 on May 21 and then
9021
9212
  # scheduled a quantity delta change of -1, the result from that day would be 11.
9022
- quantity_updates: nil
9213
+ quantity_updates: nil,
9214
+ seat_updates: nil
9023
9215
  )
9024
9216
  end
9025
9217
 
@@ -9028,16 +9220,128 @@ module MetronomeSDK
9028
9220
  {
9029
9221
  subscription_id: String,
9030
9222
  ending_before: T.nilable(Time),
9223
+ quantity_management_mode_update:
9224
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate,
9031
9225
  quantity_updates:
9032
9226
  T::Array[
9033
9227
  MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityUpdate
9034
- ]
9228
+ ],
9229
+ seat_updates:
9230
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates
9035
9231
  }
9036
9232
  )
9037
9233
  end
9038
9234
  def to_hash
9039
9235
  end
9040
9236
 
9237
+ class QuantityManagementModeUpdate < MetronomeSDK::Internal::Type::BaseModel
9238
+ OrHash =
9239
+ T.type_alias do
9240
+ T.any(
9241
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate,
9242
+ MetronomeSDK::Internal::AnyHash
9243
+ )
9244
+ end
9245
+
9246
+ sig do
9247
+ returns(
9248
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::QuantityManagementMode::OrSymbol
9249
+ )
9250
+ end
9251
+ attr_accessor :quantity_management_mode
9252
+
9253
+ sig do
9254
+ returns(
9255
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::SeatConfig
9256
+ )
9257
+ end
9258
+ attr_reader :seat_config
9259
+
9260
+ sig do
9261
+ params(
9262
+ seat_config:
9263
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::SeatConfig::OrHash
9264
+ ).void
9265
+ end
9266
+ attr_writer :seat_config
9267
+
9268
+ # Update the subscription's quantity management mode from QUANTITY_ONLY to
9269
+ # SEAT_BASED with the provided seat_group_key.
9270
+ sig do
9271
+ params(
9272
+ quantity_management_mode:
9273
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::QuantityManagementMode::OrSymbol,
9274
+ seat_config:
9275
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::SeatConfig::OrHash
9276
+ ).returns(T.attached_class)
9277
+ end
9278
+ def self.new(quantity_management_mode:, seat_config:)
9279
+ end
9280
+
9281
+ sig do
9282
+ override.returns(
9283
+ {
9284
+ quantity_management_mode:
9285
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::QuantityManagementMode::OrSymbol,
9286
+ seat_config:
9287
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::SeatConfig
9288
+ }
9289
+ )
9290
+ end
9291
+ def to_hash
9292
+ end
9293
+
9294
+ module QuantityManagementMode
9295
+ extend MetronomeSDK::Internal::Type::Enum
9296
+
9297
+ TaggedSymbol =
9298
+ T.type_alias do
9299
+ T.all(
9300
+ Symbol,
9301
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::QuantityManagementMode
9302
+ )
9303
+ end
9304
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
9305
+
9306
+ SEAT_BASED =
9307
+ T.let(
9308
+ :SEAT_BASED,
9309
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::QuantityManagementMode::TaggedSymbol
9310
+ )
9311
+
9312
+ sig do
9313
+ override.returns(
9314
+ T::Array[
9315
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::QuantityManagementMode::TaggedSymbol
9316
+ ]
9317
+ )
9318
+ end
9319
+ def self.values
9320
+ end
9321
+ end
9322
+
9323
+ class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
9324
+ OrHash =
9325
+ T.type_alias do
9326
+ T.any(
9327
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::SeatConfig,
9328
+ MetronomeSDK::Internal::AnyHash
9329
+ )
9330
+ end
9331
+
9332
+ sig { returns(String) }
9333
+ attr_accessor :seat_group_key
9334
+
9335
+ sig { params(seat_group_key: String).returns(T.attached_class) }
9336
+ def self.new(seat_group_key:)
9337
+ end
9338
+
9339
+ sig { override.returns({ seat_group_key: String }) }
9340
+ def to_hash
9341
+ end
9342
+ end
9343
+ end
9344
+
9041
9345
  class QuantityUpdate < MetronomeSDK::Internal::Type::BaseModel
9042
9346
  OrHash =
9043
9347
  T.type_alias do
@@ -9094,6 +9398,323 @@ module MetronomeSDK
9094
9398
  def to_hash
9095
9399
  end
9096
9400
  end
9401
+
9402
+ class SeatUpdates < MetronomeSDK::Internal::Type::BaseModel
9403
+ OrHash =
9404
+ T.type_alias do
9405
+ T.any(
9406
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates,
9407
+ MetronomeSDK::Internal::AnyHash
9408
+ )
9409
+ end
9410
+
9411
+ # Adds seat IDs to the subscription. If there are unassigned seats, the new seat
9412
+ # IDs will fill these unassigned seats and not increase the total subscription
9413
+ # quantity. Otherwise, if there are more new seat IDs than unassigned seats, the
9414
+ # total subscription quantity will increase.
9415
+ sig do
9416
+ returns(
9417
+ T.nilable(
9418
+ T::Array[
9419
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddSeatID
9420
+ ]
9421
+ )
9422
+ )
9423
+ end
9424
+ attr_reader :add_seat_ids
9425
+
9426
+ sig do
9427
+ params(
9428
+ add_seat_ids:
9429
+ T::Array[
9430
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddSeatID::OrHash
9431
+ ]
9432
+ ).void
9433
+ end
9434
+ attr_writer :add_seat_ids
9435
+
9436
+ # Adds unassigned seats to the subscription. This will increase the total
9437
+ # subscription quantity.
9438
+ sig do
9439
+ returns(
9440
+ T.nilable(
9441
+ T::Array[
9442
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddUnassignedSeat
9443
+ ]
9444
+ )
9445
+ )
9446
+ end
9447
+ attr_reader :add_unassigned_seats
9448
+
9449
+ sig do
9450
+ params(
9451
+ add_unassigned_seats:
9452
+ T::Array[
9453
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddUnassignedSeat::OrHash
9454
+ ]
9455
+ ).void
9456
+ end
9457
+ attr_writer :add_unassigned_seats
9458
+
9459
+ # Removes seat IDs from the subscription, if possible. If a seat ID is removed,
9460
+ # the total subscription quantity will decrease. Otherwise, if the seat ID is not
9461
+ # found on the subscription, this is a no-op.
9462
+ sig do
9463
+ returns(
9464
+ T.nilable(
9465
+ T::Array[
9466
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveSeatID
9467
+ ]
9468
+ )
9469
+ )
9470
+ end
9471
+ attr_reader :remove_seat_ids
9472
+
9473
+ sig do
9474
+ params(
9475
+ remove_seat_ids:
9476
+ T::Array[
9477
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveSeatID::OrHash
9478
+ ]
9479
+ ).void
9480
+ end
9481
+ attr_writer :remove_seat_ids
9482
+
9483
+ # Removes unassigned seats from the subscription. This will decrease the total
9484
+ # subscription quantity if there are are unassigned seats.
9485
+ sig do
9486
+ returns(
9487
+ T.nilable(
9488
+ T::Array[
9489
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveUnassignedSeat
9490
+ ]
9491
+ )
9492
+ )
9493
+ end
9494
+ attr_reader :remove_unassigned_seats
9495
+
9496
+ sig do
9497
+ params(
9498
+ remove_unassigned_seats:
9499
+ T::Array[
9500
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveUnassignedSeat::OrHash
9501
+ ]
9502
+ ).void
9503
+ end
9504
+ attr_writer :remove_unassigned_seats
9505
+
9506
+ sig do
9507
+ params(
9508
+ add_seat_ids:
9509
+ T::Array[
9510
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddSeatID::OrHash
9511
+ ],
9512
+ add_unassigned_seats:
9513
+ T::Array[
9514
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddUnassignedSeat::OrHash
9515
+ ],
9516
+ remove_seat_ids:
9517
+ T::Array[
9518
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveSeatID::OrHash
9519
+ ],
9520
+ remove_unassigned_seats:
9521
+ T::Array[
9522
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveUnassignedSeat::OrHash
9523
+ ]
9524
+ ).returns(T.attached_class)
9525
+ end
9526
+ def self.new(
9527
+ # Adds seat IDs to the subscription. If there are unassigned seats, the new seat
9528
+ # IDs will fill these unassigned seats and not increase the total subscription
9529
+ # quantity. Otherwise, if there are more new seat IDs than unassigned seats, the
9530
+ # total subscription quantity will increase.
9531
+ add_seat_ids: nil,
9532
+ # Adds unassigned seats to the subscription. This will increase the total
9533
+ # subscription quantity.
9534
+ add_unassigned_seats: nil,
9535
+ # Removes seat IDs from the subscription, if possible. If a seat ID is removed,
9536
+ # the total subscription quantity will decrease. Otherwise, if the seat ID is not
9537
+ # found on the subscription, this is a no-op.
9538
+ remove_seat_ids: nil,
9539
+ # Removes unassigned seats from the subscription. This will decrease the total
9540
+ # subscription quantity if there are are unassigned seats.
9541
+ remove_unassigned_seats: nil
9542
+ )
9543
+ end
9544
+
9545
+ sig do
9546
+ override.returns(
9547
+ {
9548
+ add_seat_ids:
9549
+ T::Array[
9550
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddSeatID
9551
+ ],
9552
+ add_unassigned_seats:
9553
+ T::Array[
9554
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddUnassignedSeat
9555
+ ],
9556
+ remove_seat_ids:
9557
+ T::Array[
9558
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveSeatID
9559
+ ],
9560
+ remove_unassigned_seats:
9561
+ T::Array[
9562
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveUnassignedSeat
9563
+ ]
9564
+ }
9565
+ )
9566
+ end
9567
+ def to_hash
9568
+ end
9569
+
9570
+ class AddSeatID < MetronomeSDK::Internal::Type::BaseModel
9571
+ OrHash =
9572
+ T.type_alias do
9573
+ T.any(
9574
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddSeatID,
9575
+ MetronomeSDK::Internal::AnyHash
9576
+ )
9577
+ end
9578
+
9579
+ sig { returns(T::Array[String]) }
9580
+ attr_accessor :seat_ids
9581
+
9582
+ # Assigned seats will be added/removed starting at this date.
9583
+ sig { returns(Time) }
9584
+ attr_accessor :starting_at
9585
+
9586
+ sig do
9587
+ params(seat_ids: T::Array[String], starting_at: Time).returns(
9588
+ T.attached_class
9589
+ )
9590
+ end
9591
+ def self.new(
9592
+ seat_ids:,
9593
+ # Assigned seats will be added/removed starting at this date.
9594
+ starting_at:
9595
+ )
9596
+ end
9597
+
9598
+ sig do
9599
+ override.returns(
9600
+ { seat_ids: T::Array[String], starting_at: Time }
9601
+ )
9602
+ end
9603
+ def to_hash
9604
+ end
9605
+ end
9606
+
9607
+ class AddUnassignedSeat < MetronomeSDK::Internal::Type::BaseModel
9608
+ OrHash =
9609
+ T.type_alias do
9610
+ T.any(
9611
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddUnassignedSeat,
9612
+ MetronomeSDK::Internal::AnyHash
9613
+ )
9614
+ end
9615
+
9616
+ # The number of unassigned seats on the subscription will increase/decrease by
9617
+ # this delta. Must be greater than 0.
9618
+ sig { returns(Float) }
9619
+ attr_accessor :quantity
9620
+
9621
+ # Unassigned seats will be updated starting at this date.
9622
+ sig { returns(Time) }
9623
+ attr_accessor :starting_at
9624
+
9625
+ sig do
9626
+ params(quantity: Float, starting_at: Time).returns(
9627
+ T.attached_class
9628
+ )
9629
+ end
9630
+ def self.new(
9631
+ # The number of unassigned seats on the subscription will increase/decrease by
9632
+ # this delta. Must be greater than 0.
9633
+ quantity:,
9634
+ # Unassigned seats will be updated starting at this date.
9635
+ starting_at:
9636
+ )
9637
+ end
9638
+
9639
+ sig { override.returns({ quantity: Float, starting_at: Time }) }
9640
+ def to_hash
9641
+ end
9642
+ end
9643
+
9644
+ class RemoveSeatID < MetronomeSDK::Internal::Type::BaseModel
9645
+ OrHash =
9646
+ T.type_alias do
9647
+ T.any(
9648
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveSeatID,
9649
+ MetronomeSDK::Internal::AnyHash
9650
+ )
9651
+ end
9652
+
9653
+ sig { returns(T::Array[String]) }
9654
+ attr_accessor :seat_ids
9655
+
9656
+ # Assigned seats will be added/removed starting at this date.
9657
+ sig { returns(Time) }
9658
+ attr_accessor :starting_at
9659
+
9660
+ sig do
9661
+ params(seat_ids: T::Array[String], starting_at: Time).returns(
9662
+ T.attached_class
9663
+ )
9664
+ end
9665
+ def self.new(
9666
+ seat_ids:,
9667
+ # Assigned seats will be added/removed starting at this date.
9668
+ starting_at:
9669
+ )
9670
+ end
9671
+
9672
+ sig do
9673
+ override.returns(
9674
+ { seat_ids: T::Array[String], starting_at: Time }
9675
+ )
9676
+ end
9677
+ def to_hash
9678
+ end
9679
+ end
9680
+
9681
+ class RemoveUnassignedSeat < MetronomeSDK::Internal::Type::BaseModel
9682
+ OrHash =
9683
+ T.type_alias do
9684
+ T.any(
9685
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveUnassignedSeat,
9686
+ MetronomeSDK::Internal::AnyHash
9687
+ )
9688
+ end
9689
+
9690
+ # The number of unassigned seats on the subscription will increase/decrease by
9691
+ # this delta. Must be greater than 0.
9692
+ sig { returns(Float) }
9693
+ attr_accessor :quantity
9694
+
9695
+ # Unassigned seats will be updated starting at this date.
9696
+ sig { returns(Time) }
9697
+ attr_accessor :starting_at
9698
+
9699
+ sig do
9700
+ params(quantity: Float, starting_at: Time).returns(
9701
+ T.attached_class
9702
+ )
9703
+ end
9704
+ def self.new(
9705
+ # The number of unassigned seats on the subscription will increase/decrease by
9706
+ # this delta. Must be greater than 0.
9707
+ quantity:,
9708
+ # Unassigned seats will be updated starting at this date.
9709
+ starting_at:
9710
+ )
9711
+ end
9712
+
9713
+ sig { override.returns({ quantity: Float, starting_at: Time }) }
9714
+ def to_hash
9715
+ end
9716
+ end
9717
+ end
9097
9718
  end
9098
9719
  end
9099
9720
  end