metronome-sdk 2.1.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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +39 -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 +18 -12
  6. data/lib/metronome_sdk/internal/util.rb +7 -2
  7. data/lib/metronome_sdk/models/contract_v2.rb +29 -2
  8. data/lib/metronome_sdk/models/subscription.rb +32 -5
  9. data/lib/metronome_sdk/models/v1/alert_create_params.rb +33 -1
  10. data/lib/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rb +10 -1
  11. data/lib/metronome_sdk/models/v1/contract_create_params.rb +136 -20
  12. data/lib/metronome_sdk/models/v1/customer_create_params.rb +94 -2
  13. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_response.rb +111 -0
  14. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +32 -1
  15. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +15 -1
  16. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +15 -1
  17. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +33 -1
  18. data/lib/metronome_sdk/models/v1/customers/invoice.rb +20 -2
  19. data/lib/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rb +8 -1
  20. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rb +10 -1
  21. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_params.rb +1 -0
  22. data/lib/metronome_sdk/models/v1/usage_search_response.rb +6 -3
  23. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +17 -1
  24. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +17 -1
  25. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +285 -22
  26. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +177 -3
  27. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  28. data/lib/metronome_sdk/resources/v1/contracts.rb +6 -2
  29. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +3 -1
  30. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +5 -1
  31. data/lib/metronome_sdk/resources/v1/customers.rb +5 -3
  32. data/lib/metronome_sdk/resources/v1/settings.rb +3 -1
  33. data/lib/metronome_sdk/resources/v2/contracts.rb +10 -2
  34. data/lib/metronome_sdk/version.rb +1 -1
  35. data/lib/metronome_sdk.rb +3 -0
  36. data/manifest.yaml +2 -0
  37. data/rbi/metronome_sdk/internal/transport/base_client.rbi +5 -0
  38. data/rbi/metronome_sdk/internal/transport/pooled_net_requester.rbi +6 -2
  39. data/rbi/metronome_sdk/internal/type/base_model.rbi +8 -4
  40. data/rbi/metronome_sdk/models/contract_v2.rbi +63 -6
  41. data/rbi/metronome_sdk/models/subscription.rbi +55 -9
  42. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +69 -0
  43. data/rbi/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbi +13 -0
  44. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +288 -24
  45. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +204 -0
  46. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbi +281 -0
  47. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +67 -0
  48. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +18 -0
  49. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +18 -0
  50. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +71 -0
  51. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +32 -0
  52. data/rbi/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbi +9 -0
  53. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbi +13 -0
  54. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_params.rbi +5 -0
  55. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +11 -3
  56. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +22 -0
  57. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +22 -0
  58. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +616 -27
  59. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +367 -3
  60. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -0
  61. data/rbi/metronome_sdk/resources/v1/contracts.rbi +9 -0
  62. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +5 -0
  63. data/rbi/metronome_sdk/resources/v1/customers/billing_config.rbi +6 -0
  64. data/rbi/metronome_sdk/resources/v1/customers.rbi +8 -1
  65. data/rbi/metronome_sdk/resources/v1/settings.rbi +4 -0
  66. data/rbi/metronome_sdk/resources/v2/contracts.rbi +12 -0
  67. data/sig/metronome_sdk/internal/transport/base_client.rbs +2 -0
  68. data/sig/metronome_sdk/internal/transport/pooled_net_requester.rbs +4 -1
  69. data/sig/metronome_sdk/models/contract_v2.rbs +31 -6
  70. data/sig/metronome_sdk/models/subscription.rbs +22 -3
  71. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +28 -0
  72. data/sig/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbs +7 -0
  73. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +104 -0
  74. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +83 -0
  75. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbs +119 -0
  76. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +26 -1
  77. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +14 -0
  78. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +14 -0
  79. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +30 -0
  80. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +18 -0
  81. data/sig/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbs +7 -0
  82. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbs +8 -1
  83. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_params.rbs +3 -1
  84. data/sig/metronome_sdk/models/v1/usage_search_response.rbs +3 -1
  85. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +14 -0
  86. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +14 -0
  87. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +232 -3
  88. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +131 -3
  89. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  90. data/sig/metronome_sdk/resources/v1/contracts.rbs +2 -0
  91. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  92. data/sig/metronome_sdk/resources/v1/customers/billing_config.rbs +2 -0
  93. data/sig/metronome_sdk/resources/v1/customers.rbs +2 -1
  94. data/sig/metronome_sdk/resources/v1/settings.rbs +1 -0
  95. data/sig/metronome_sdk/resources/v2/contracts.rbs +4 -0
  96. metadata +5 -2
@@ -4701,9 +4701,8 @@ module MetronomeSDK
4701
4701
  sig { returns(String) }
4702
4702
  attr_accessor :subscription_id
4703
4703
 
4704
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
4705
- # If set to INDIVIDUAL, each seat in the subscription will have its own
4706
- # allocation.
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.
4707
4706
  sig do
4708
4707
  returns(
4709
4708
  T.nilable(
@@ -4735,9 +4734,8 @@ module MetronomeSDK
4735
4734
  apply_seat_increase_config:,
4736
4735
  # ID of the subscription to configure on the recurring commit/credit.
4737
4736
  subscription_id:,
4738
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
4739
- # If set to INDIVIDUAL, each seat in the subscription will have its own
4740
- # allocation.
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.
4741
4739
  allocation: nil
4742
4740
  )
4743
4741
  end
@@ -4781,9 +4779,8 @@ module MetronomeSDK
4781
4779
  end
4782
4780
  end
4783
4781
 
4784
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
4785
- # If set to INDIVIDUAL, each seat in the subscription will have its own
4786
- # allocation.
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.
4787
4784
  module Allocation
4788
4785
  extend MetronomeSDK::Internal::Type::Enum
4789
4786
 
@@ -5452,9 +5449,8 @@ module MetronomeSDK
5452
5449
  sig { returns(String) }
5453
5450
  attr_accessor :subscription_id
5454
5451
 
5455
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
5456
- # If set to INDIVIDUAL, each seat in the subscription will have its own
5457
- # allocation.
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.
5458
5454
  sig do
5459
5455
  returns(
5460
5456
  T.nilable(
@@ -5486,9 +5482,8 @@ module MetronomeSDK
5486
5482
  apply_seat_increase_config:,
5487
5483
  # ID of the subscription to configure on the recurring commit/credit.
5488
5484
  subscription_id:,
5489
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
5490
- # If set to INDIVIDUAL, each seat in the subscription will have its own
5491
- # allocation.
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.
5492
5487
  allocation: nil
5493
5488
  )
5494
5489
  end
@@ -5532,9 +5527,8 @@ module MetronomeSDK
5532
5527
  end
5533
5528
  end
5534
5529
 
5535
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
5536
- # If set to INDIVIDUAL, each seat in the subscription will have its own
5537
- # allocation.
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.
5538
5532
  module Allocation
5539
5533
  extend MetronomeSDK::Internal::Type::Enum
5540
5534
 
@@ -6422,8 +6416,8 @@ module MetronomeSDK
6422
6416
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
6423
6417
  # directly on the subscription. `initial_quantity` must be provided with this
6424
6418
  # option. Compatible with recurring commits/credits that use POOLED allocation.
6425
- # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
6426
- # add user_123) to increment and decrement a subscription quantity, rather than
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
6427
6421
  # directly providing the quantity. You must use a **SEAT_BASED** subscription to
6428
6422
  # use a linked recurring credit with an allocation per seat. `seat_config` must be
6429
6423
  # provided with this option.
@@ -6444,6 +6438,23 @@ module MetronomeSDK
6444
6438
  end
6445
6439
  attr_writer :quantity_management_mode
6446
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
+
6447
6458
  # Inclusive start time for the subscription. If not provided, defaults to contract
6448
6459
  # start date
6449
6460
  sig { returns(T.nilable(Time)) }
@@ -6475,6 +6486,8 @@ module MetronomeSDK
6475
6486
  name: String,
6476
6487
  quantity_management_mode:
6477
6488
  MetronomeSDK::V2::ContractEditParams::AddSubscription::QuantityManagementMode::OrSymbol,
6489
+ seat_config:
6490
+ MetronomeSDK::V2::ContractEditParams::AddSubscription::SeatConfig::OrHash,
6478
6491
  starting_at: Time,
6479
6492
  temporary_id: String
6480
6493
  ).returns(T.attached_class)
@@ -6497,12 +6510,13 @@ module MetronomeSDK
6497
6510
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
6498
6511
  # directly on the subscription. `initial_quantity` must be provided with this
6499
6512
  # option. Compatible with recurring commits/credits that use POOLED allocation.
6500
- # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
6501
- # add user_123) to increment and decrement a subscription quantity, rather than
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
6502
6515
  # directly providing the quantity. You must use a **SEAT_BASED** subscription to
6503
6516
  # use a linked recurring credit with an allocation per seat. `seat_config` must be
6504
6517
  # provided with this option.
6505
6518
  quantity_management_mode: nil,
6519
+ seat_config: nil,
6506
6520
  # Inclusive start time for the subscription. If not provided, defaults to contract
6507
6521
  # start date
6508
6522
  starting_at: nil,
@@ -6528,6 +6542,8 @@ module MetronomeSDK
6528
6542
  name: String,
6529
6543
  quantity_management_mode:
6530
6544
  MetronomeSDK::V2::ContractEditParams::AddSubscription::QuantityManagementMode::OrSymbol,
6545
+ seat_config:
6546
+ MetronomeSDK::V2::ContractEditParams::AddSubscription::SeatConfig,
6531
6547
  starting_at: Time,
6532
6548
  temporary_id: String
6533
6549
  }
@@ -6780,8 +6796,8 @@ module MetronomeSDK
6780
6796
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
6781
6797
  # directly on the subscription. `initial_quantity` must be provided with this
6782
6798
  # option. Compatible with recurring commits/credits that use POOLED allocation.
6783
- # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
6784
- # add user_123) to increment and decrement a subscription quantity, rather than
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
6785
6801
  # directly providing the quantity. You must use a **SEAT_BASED** subscription to
6786
6802
  # use a linked recurring credit with an allocation per seat. `seat_config` must be
6787
6803
  # provided with this option.
@@ -6818,6 +6834,70 @@ module MetronomeSDK
6818
6834
  def self.values
6819
6835
  end
6820
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
6821
6901
  end
6822
6902
 
6823
6903
  class ArchiveCommit < MetronomeSDK::Internal::Type::BaseModel
@@ -6945,6 +7025,12 @@ module MetronomeSDK
6945
7025
  sig { returns(T.nilable(T::Array[String])) }
6946
7026
  attr_accessor :applicable_product_tags
6947
7027
 
7028
+ sig { returns(T.nilable(String)) }
7029
+ attr_reader :description
7030
+
7031
+ sig { params(description: String).void }
7032
+ attr_writer :description
7033
+
6948
7034
  # Optional configuration for commit hierarchy access control
6949
7035
  sig { returns(T.nilable(MetronomeSDK::CommitHierarchyConfiguration)) }
6950
7036
  attr_reader :hierarchy_configuration
@@ -6974,6 +7060,12 @@ module MetronomeSDK
6974
7060
  end
6975
7061
  attr_writer :invoice_schedule
6976
7062
 
7063
+ sig { returns(T.nilable(String)) }
7064
+ attr_reader :name
7065
+
7066
+ sig { params(name: String).void }
7067
+ attr_writer :name
7068
+
6977
7069
  sig { returns(T.nilable(String)) }
6978
7070
  attr_accessor :netsuite_sales_order_id
6979
7071
 
@@ -7016,10 +7108,12 @@ module MetronomeSDK
7016
7108
  MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule::OrHash,
7017
7109
  applicable_product_ids: T.nilable(T::Array[String]),
7018
7110
  applicable_product_tags: T.nilable(T::Array[String]),
7111
+ description: String,
7019
7112
  hierarchy_configuration:
7020
7113
  MetronomeSDK::CommitHierarchyConfiguration::OrHash,
7021
7114
  invoice_schedule:
7022
7115
  MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule::OrHash,
7116
+ name: String,
7023
7117
  netsuite_sales_order_id: T.nilable(String),
7024
7118
  priority: T.nilable(Float),
7025
7119
  product_id: String,
@@ -7039,9 +7133,11 @@ module MetronomeSDK
7039
7133
  # applicable_product_tags or specifiers are not provided, the commit applies to
7040
7134
  # all products.
7041
7135
  applicable_product_tags: nil,
7136
+ description: nil,
7042
7137
  # Optional configuration for commit hierarchy access control
7043
7138
  hierarchy_configuration: nil,
7044
7139
  invoice_schedule: nil,
7140
+ name: nil,
7045
7141
  netsuite_sales_order_id: nil,
7046
7142
  priority: nil,
7047
7143
  product_id: nil,
@@ -7061,10 +7157,12 @@ module MetronomeSDK
7061
7157
  MetronomeSDK::V2::ContractEditParams::UpdateCommit::AccessSchedule,
7062
7158
  applicable_product_ids: T.nilable(T::Array[String]),
7063
7159
  applicable_product_tags: T.nilable(T::Array[String]),
7160
+ description: String,
7064
7161
  hierarchy_configuration:
7065
7162
  MetronomeSDK::CommitHierarchyConfiguration,
7066
7163
  invoice_schedule:
7067
7164
  MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule,
7165
+ name: String,
7068
7166
  netsuite_sales_order_id: T.nilable(String),
7069
7167
  priority: T.nilable(Float),
7070
7168
  product_id: String,
@@ -7658,6 +7756,12 @@ module MetronomeSDK
7658
7756
  sig { returns(T.nilable(T::Array[String])) }
7659
7757
  attr_accessor :applicable_product_tags
7660
7758
 
7759
+ sig { returns(T.nilable(String)) }
7760
+ attr_reader :description
7761
+
7762
+ sig { params(description: String).void }
7763
+ attr_writer :description
7764
+
7661
7765
  # Optional configuration for commit hierarchy access control
7662
7766
  sig { returns(T.nilable(MetronomeSDK::CommitHierarchyConfiguration)) }
7663
7767
  attr_reader :hierarchy_configuration
@@ -7670,6 +7774,12 @@ module MetronomeSDK
7670
7774
  end
7671
7775
  attr_writer :hierarchy_configuration
7672
7776
 
7777
+ sig { returns(T.nilable(String)) }
7778
+ attr_reader :name
7779
+
7780
+ sig { params(name: String).void }
7781
+ attr_writer :name
7782
+
7673
7783
  sig { returns(T.nilable(String)) }
7674
7784
  attr_accessor :netsuite_sales_order_id
7675
7785
 
@@ -7709,8 +7819,10 @@ module MetronomeSDK
7709
7819
  MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule::OrHash,
7710
7820
  applicable_product_ids: T.nilable(T::Array[String]),
7711
7821
  applicable_product_tags: T.nilable(T::Array[String]),
7822
+ description: String,
7712
7823
  hierarchy_configuration:
7713
7824
  MetronomeSDK::CommitHierarchyConfiguration::OrHash,
7825
+ name: String,
7714
7826
  netsuite_sales_order_id: T.nilable(String),
7715
7827
  priority: T.nilable(Float),
7716
7828
  product_id: String,
@@ -7729,8 +7841,10 @@ module MetronomeSDK
7729
7841
  # applicable_product_tags or specifiers are not provided, the commit applies to
7730
7842
  # all products.
7731
7843
  applicable_product_tags: nil,
7844
+ description: nil,
7732
7845
  # Optional configuration for commit hierarchy access control
7733
7846
  hierarchy_configuration: nil,
7847
+ name: nil,
7734
7848
  netsuite_sales_order_id: nil,
7735
7849
  priority: nil,
7736
7850
  product_id: nil,
@@ -7749,8 +7863,10 @@ module MetronomeSDK
7749
7863
  MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule,
7750
7864
  applicable_product_ids: T.nilable(T::Array[String]),
7751
7865
  applicable_product_tags: T.nilable(T::Array[String]),
7866
+ description: String,
7752
7867
  hierarchy_configuration:
7753
7868
  MetronomeSDK::CommitHierarchyConfiguration,
7869
+ name: String,
7754
7870
  netsuite_sales_order_id: T.nilable(String),
7755
7871
  priority: T.nilable(Float),
7756
7872
  product_id: String,
@@ -9011,6 +9127,25 @@ module MetronomeSDK
9011
9127
  sig { returns(T.nilable(Time)) }
9012
9128
  attr_accessor :ending_before
9013
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
+
9014
9149
  # Quantity changes are applied on the effective date based on the order which they
9015
9150
  # are sent. For example, if I scheduled the quantity to be 12 on May 21 and then
9016
9151
  # scheduled a quantity delta change of -1, the result from that day would be 11.
@@ -9035,23 +9170,48 @@ module MetronomeSDK
9035
9170
  end
9036
9171
  attr_writer :quantity_updates
9037
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
+
9038
9190
  sig do
9039
9191
  params(
9040
9192
  subscription_id: String,
9041
9193
  ending_before: T.nilable(Time),
9194
+ quantity_management_mode_update:
9195
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::OrHash,
9042
9196
  quantity_updates:
9043
9197
  T::Array[
9044
9198
  MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityUpdate::OrHash
9045
- ]
9199
+ ],
9200
+ seat_updates:
9201
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::OrHash
9046
9202
  ).returns(T.attached_class)
9047
9203
  end
9048
9204
  def self.new(
9049
9205
  subscription_id:,
9050
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,
9051
9210
  # Quantity changes are applied on the effective date based on the order which they
9052
9211
  # are sent. For example, if I scheduled the quantity to be 12 on May 21 and then
9053
9212
  # scheduled a quantity delta change of -1, the result from that day would be 11.
9054
- quantity_updates: nil
9213
+ quantity_updates: nil,
9214
+ seat_updates: nil
9055
9215
  )
9056
9216
  end
9057
9217
 
@@ -9060,16 +9220,128 @@ module MetronomeSDK
9060
9220
  {
9061
9221
  subscription_id: String,
9062
9222
  ending_before: T.nilable(Time),
9223
+ quantity_management_mode_update:
9224
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate,
9063
9225
  quantity_updates:
9064
9226
  T::Array[
9065
9227
  MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityUpdate
9066
- ]
9228
+ ],
9229
+ seat_updates:
9230
+ MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates
9067
9231
  }
9068
9232
  )
9069
9233
  end
9070
9234
  def to_hash
9071
9235
  end
9072
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
+
9073
9345
  class QuantityUpdate < MetronomeSDK::Internal::Type::BaseModel
9074
9346
  OrHash =
9075
9347
  T.type_alias do
@@ -9126,6 +9398,323 @@ module MetronomeSDK
9126
9398
  def to_hash
9127
9399
  end
9128
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
9129
9718
  end
9130
9719
  end
9131
9720
  end