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
@@ -2133,9 +2133,8 @@ module MetronomeSDK
2133
2133
  required :subscription_id, String
2134
2134
 
2135
2135
  # @!attribute allocation
2136
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2137
- # If set to INDIVIDUAL, each seat in the subscription will have its own
2138
- # allocation.
2136
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
2137
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
2139
2138
  #
2140
2139
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation, nil]
2141
2140
  optional :allocation,
@@ -2152,7 +2151,7 @@ module MetronomeSDK
2152
2151
  #
2153
2152
  # @param subscription_id [String] ID of the subscription to configure on the recurring commit/credit.
2154
2153
  #
2155
- # @param allocation [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2154
+ # @param allocation [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account. If set
2156
2155
 
2157
2156
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig#apply_seat_increase_config
2158
2157
  class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
@@ -2166,9 +2165,8 @@ module MetronomeSDK
2166
2165
  # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
2167
2166
  end
2168
2167
 
2169
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2170
- # If set to INDIVIDUAL, each seat in the subscription will have its own
2171
- # allocation.
2168
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
2169
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
2172
2170
  #
2173
2171
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCommit::SubscriptionConfig#allocation
2174
2172
  module Allocation
@@ -2485,9 +2483,8 @@ module MetronomeSDK
2485
2483
  required :subscription_id, String
2486
2484
 
2487
2485
  # @!attribute allocation
2488
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2489
- # If set to INDIVIDUAL, each seat in the subscription will have its own
2490
- # allocation.
2486
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
2487
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
2491
2488
  #
2492
2489
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation, nil]
2493
2490
  optional :allocation,
@@ -2504,7 +2501,7 @@ module MetronomeSDK
2504
2501
  #
2505
2502
  # @param subscription_id [String] ID of the subscription to configure on the recurring commit/credit.
2506
2503
  #
2507
- # @param allocation [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2504
+ # @param allocation [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account. If set
2508
2505
 
2509
2506
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig#apply_seat_increase_config
2510
2507
  class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
@@ -2518,9 +2515,8 @@ module MetronomeSDK
2518
2515
  # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
2519
2516
  end
2520
2517
 
2521
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2522
- # If set to INDIVIDUAL, each seat in the subscription will have its own
2523
- # allocation.
2518
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
2519
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
2524
2520
  #
2525
2521
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddRecurringCredit::SubscriptionConfig#allocation
2526
2522
  module Allocation
@@ -2952,8 +2948,8 @@ module MetronomeSDK
2952
2948
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
2953
2949
  # directly on the subscription. `initial_quantity` must be provided with this
2954
2950
  # option. Compatible with recurring commits/credits that use POOLED allocation.
2955
- # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
2956
- # add user_123) to increment and decrement a subscription quantity, rather than
2951
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
2952
+ # user_123) to increment and decrement a subscription quantity, rather than
2957
2953
  # directly providing the quantity. You must use a **SEAT_BASED** subscription to
2958
2954
  # use a linked recurring credit with an allocation per seat. `seat_config` must be
2959
2955
  # provided with this option.
@@ -2962,6 +2958,11 @@ module MetronomeSDK
2962
2958
  optional :quantity_management_mode,
2963
2959
  enum: -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::QuantityManagementMode }
2964
2960
 
2961
+ # @!attribute seat_config
2962
+ #
2963
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SeatConfig, nil]
2964
+ optional :seat_config, -> { MetronomeSDK::V2::ContractEditParams::AddSubscription::SeatConfig }
2965
+
2965
2966
  # @!attribute starting_at
2966
2967
  # Inclusive start time for the subscription. If not provided, defaults to contract
2967
2968
  # start date
@@ -2976,7 +2977,7 @@ module MetronomeSDK
2976
2977
  # @return [String, nil]
2977
2978
  optional :temporary_id, String
2978
2979
 
2979
- # @!method initialize(collection_schedule:, proration:, subscription_rate:, custom_fields: nil, description: nil, ending_before: nil, initial_quantity: nil, name: nil, quantity_management_mode: nil, starting_at: nil, temporary_id: nil)
2980
+ # @!method initialize(collection_schedule:, proration:, subscription_rate:, custom_fields: nil, description: nil, ending_before: nil, initial_quantity: nil, name: nil, quantity_management_mode: nil, seat_config: nil, starting_at: nil, temporary_id: nil)
2980
2981
  # Some parameter documentations has been truncated, see
2981
2982
  # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription} for more
2982
2983
  # details.
@@ -2999,6 +3000,8 @@ module MetronomeSDK
2999
3000
  #
3000
3001
  # @param quantity_management_mode [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::QuantityManagementMode] Determines how the subscription's quantity is controlled. Defaults to QUANTITY_O
3001
3002
  #
3003
+ # @param seat_config [MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SeatConfig]
3004
+ #
3002
3005
  # @param starting_at [Time] Inclusive start time for the subscription. If not provided, defaults to contract
3003
3006
  #
3004
3007
  # @param temporary_id [String] A temporary ID used to reference the subscription in recurring commit/credit sub
@@ -3106,8 +3109,8 @@ module MetronomeSDK
3106
3109
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
3107
3110
  # directly on the subscription. `initial_quantity` must be provided with this
3108
3111
  # option. Compatible with recurring commits/credits that use POOLED allocation.
3109
- # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
3110
- # add user_123) to increment and decrement a subscription quantity, rather than
3112
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
3113
+ # user_123) to increment and decrement a subscription quantity, rather than
3111
3114
  # directly providing the quantity. You must use a **SEAT_BASED** subscription to
3112
3115
  # use a linked recurring credit with an allocation per seat. `seat_config` must be
3113
3116
  # provided with this option.
@@ -3122,6 +3125,43 @@ module MetronomeSDK
3122
3125
  # @!method self.values
3123
3126
  # @return [Array<Symbol>]
3124
3127
  end
3128
+
3129
+ # @see MetronomeSDK::Models::V2::ContractEditParams::AddSubscription#seat_config
3130
+ class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
3131
+ # @!attribute initial_seat_ids
3132
+ # The initial assigned seats on this subscription.
3133
+ #
3134
+ # @return [Array<String>]
3135
+ required :initial_seat_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
3136
+
3137
+ # @!attribute seat_group_key
3138
+ # The property name, sent on usage events, that identifies the seat ID associated
3139
+ # with the usage event. For example, the property name might be seat_id or
3140
+ # user_id. The property must be set as a group key on billable metrics and a
3141
+ # presentation/pricing group key on contract products. This allows linked
3142
+ # recurring credits with an allocation per seat to be consumed by only one seat's
3143
+ # usage.
3144
+ #
3145
+ # @return [String]
3146
+ required :seat_group_key, String
3147
+
3148
+ # @!attribute initial_unassigned_seats
3149
+ # The initial amount of unassigned seats on this subscription.
3150
+ #
3151
+ # @return [Float, nil]
3152
+ optional :initial_unassigned_seats, Float
3153
+
3154
+ # @!method initialize(initial_seat_ids:, seat_group_key:, initial_unassigned_seats: nil)
3155
+ # Some parameter documentations has been truncated, see
3156
+ # {MetronomeSDK::Models::V2::ContractEditParams::AddSubscription::SeatConfig} for
3157
+ # more details.
3158
+ #
3159
+ # @param initial_seat_ids [Array<String>] The initial assigned seats on this subscription.
3160
+ #
3161
+ # @param seat_group_key [String] The property name, sent on usage events, that identifies the seat ID associated
3162
+ #
3163
+ # @param initial_unassigned_seats [Float] The initial amount of unassigned seats on this subscription.
3164
+ end
3125
3165
  end
3126
3166
 
3127
3167
  class ArchiveCommit < MetronomeSDK::Internal::Type::BaseModel
@@ -3191,6 +3231,11 @@ module MetronomeSDK
3191
3231
  # @return [Array<String>, nil]
3192
3232
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
3193
3233
 
3234
+ # @!attribute description
3235
+ #
3236
+ # @return [String, nil]
3237
+ optional :description, String
3238
+
3194
3239
  # @!attribute hierarchy_configuration
3195
3240
  # Optional configuration for commit hierarchy access control
3196
3241
  #
@@ -3202,6 +3247,11 @@ module MetronomeSDK
3202
3247
  # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule, nil]
3203
3248
  optional :invoice_schedule, -> { MetronomeSDK::V2::ContractEditParams::UpdateCommit::InvoiceSchedule }
3204
3249
 
3250
+ # @!attribute name
3251
+ #
3252
+ # @return [String, nil]
3253
+ optional :name, String
3254
+
3205
3255
  # @!attribute netsuite_sales_order_id
3206
3256
  #
3207
3257
  # @return [String, nil]
@@ -3230,7 +3280,7 @@ module MetronomeSDK
3230
3280
  # @return [Float, nil]
3231
3281
  optional :rollover_fraction, Float, nil?: true
3232
3282
 
3233
- # @!method initialize(commit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, hierarchy_configuration: nil, invoice_schedule: nil, netsuite_sales_order_id: nil, priority: nil, product_id: nil, rate_type: nil, rollover_fraction: nil)
3283
+ # @!method initialize(commit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, hierarchy_configuration: nil, invoice_schedule: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, product_id: nil, rate_type: nil, rollover_fraction: nil)
3234
3284
  # Some parameter documentations has been truncated, see
3235
3285
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit} for more details.
3236
3286
  #
@@ -3242,10 +3292,14 @@ module MetronomeSDK
3242
3292
  #
3243
3293
  # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If applicable*product_ids, applicable_product*
3244
3294
  #
3295
+ # @param description [String]
3296
+ #
3245
3297
  # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for commit hierarchy access control
3246
3298
  #
3247
3299
  # @param invoice_schedule [MetronomeSDK::Models::V2::ContractEditParams::UpdateCommit::InvoiceSchedule]
3248
3300
  #
3301
+ # @param name [String]
3302
+ #
3249
3303
  # @param netsuite_sales_order_id [String, nil]
3250
3304
  #
3251
3305
  # @param priority [Float, nil]
@@ -3483,12 +3537,22 @@ module MetronomeSDK
3483
3537
  # @return [Array<String>, nil]
3484
3538
  optional :applicable_product_tags, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
3485
3539
 
3540
+ # @!attribute description
3541
+ #
3542
+ # @return [String, nil]
3543
+ optional :description, String
3544
+
3486
3545
  # @!attribute hierarchy_configuration
3487
3546
  # Optional configuration for commit hierarchy access control
3488
3547
  #
3489
3548
  # @return [MetronomeSDK::Models::CommitHierarchyConfiguration, nil]
3490
3549
  optional :hierarchy_configuration, -> { MetronomeSDK::CommitHierarchyConfiguration }
3491
3550
 
3551
+ # @!attribute name
3552
+ #
3553
+ # @return [String, nil]
3554
+ optional :name, String
3555
+
3492
3556
  # @!attribute netsuite_sales_order_id
3493
3557
  #
3494
3558
  # @return [String, nil]
@@ -3512,7 +3576,7 @@ module MetronomeSDK
3512
3576
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::RateType, nil]
3513
3577
  optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::UpdateCredit::RateType }
3514
3578
 
3515
- # @!method initialize(credit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, hierarchy_configuration: nil, netsuite_sales_order_id: nil, priority: nil, product_id: nil, rate_type: nil)
3579
+ # @!method initialize(credit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, product_id: nil, rate_type: nil)
3516
3580
  # Some parameter documentations has been truncated, see
3517
3581
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit} for more details.
3518
3582
  #
@@ -3524,8 +3588,12 @@ module MetronomeSDK
3524
3588
  #
3525
3589
  # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If applicable*product_ids, applicable_product*
3526
3590
  #
3591
+ # @param description [String]
3592
+ #
3527
3593
  # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for commit hierarchy access control
3528
3594
  #
3595
+ # @param name [String]
3596
+ #
3529
3597
  # @param netsuite_sales_order_id [String, nil]
3530
3598
  #
3531
3599
  # @param priority [Float, nil]
@@ -4069,6 +4137,14 @@ module MetronomeSDK
4069
4137
  # @return [Time, nil]
4070
4138
  optional :ending_before, Time, nil?: true
4071
4139
 
4140
+ # @!attribute quantity_management_mode_update
4141
+ # Update the subscription's quantity management mode from QUANTITY_ONLY to
4142
+ # SEAT_BASED with the provided seat_group_key.
4143
+ #
4144
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate, nil]
4145
+ optional :quantity_management_mode_update,
4146
+ -> { MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate }
4147
+
4072
4148
  # @!attribute quantity_updates
4073
4149
  # Quantity changes are applied on the effective date based on the order which they
4074
4150
  # are sent. For example, if I scheduled the quantity to be 12 on May 21 and then
@@ -4078,7 +4154,12 @@ module MetronomeSDK
4078
4154
  optional :quantity_updates,
4079
4155
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityUpdate] }
4080
4156
 
4081
- # @!method initialize(subscription_id:, ending_before: nil, quantity_updates: nil)
4157
+ # @!attribute seat_updates
4158
+ #
4159
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates, nil]
4160
+ optional :seat_updates, -> { MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates }
4161
+
4162
+ # @!method initialize(subscription_id:, ending_before: nil, quantity_management_mode_update: nil, quantity_updates: nil, seat_updates: nil)
4082
4163
  # Some parameter documentations has been truncated, see
4083
4164
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription} for more
4084
4165
  # details.
@@ -4087,7 +4168,54 @@ module MetronomeSDK
4087
4168
  #
4088
4169
  # @param ending_before [Time, nil]
4089
4170
  #
4171
+ # @param quantity_management_mode_update [MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate] Update the subscription's quantity management mode from QUANTITY_ONLY to SEAT_BA
4172
+ #
4090
4173
  # @param quantity_updates [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityUpdate>] Quantity changes are applied on the effective date based on the order which they
4174
+ #
4175
+ # @param seat_updates [MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates]
4176
+
4177
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription#quantity_management_mode_update
4178
+ class QuantityManagementModeUpdate < MetronomeSDK::Internal::Type::BaseModel
4179
+ # @!attribute quantity_management_mode
4180
+ #
4181
+ # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::QuantityManagementMode]
4182
+ required :quantity_management_mode,
4183
+ enum: -> { MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::QuantityManagementMode }
4184
+
4185
+ # @!attribute seat_config
4186
+ #
4187
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::SeatConfig]
4188
+ required :seat_config,
4189
+ -> { MetronomeSDK::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::SeatConfig }
4190
+
4191
+ # @!method initialize(quantity_management_mode:, seat_config:)
4192
+ # Update the subscription's quantity management mode from QUANTITY_ONLY to
4193
+ # SEAT_BASED with the provided seat_group_key.
4194
+ #
4195
+ # @param quantity_management_mode [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::QuantityManagementMode]
4196
+ # @param seat_config [MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate::SeatConfig]
4197
+
4198
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate#quantity_management_mode
4199
+ module QuantityManagementMode
4200
+ extend MetronomeSDK::Internal::Type::Enum
4201
+
4202
+ SEAT_BASED = :SEAT_BASED
4203
+
4204
+ # @!method self.values
4205
+ # @return [Array<Symbol>]
4206
+ end
4207
+
4208
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::QuantityManagementModeUpdate#seat_config
4209
+ class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
4210
+ # @!attribute seat_group_key
4211
+ #
4212
+ # @return [String]
4213
+ required :seat_group_key, String
4214
+
4215
+ # @!method initialize(seat_group_key:)
4216
+ # @param seat_group_key [String]
4217
+ end
4218
+ end
4091
4219
 
4092
4220
  class QuantityUpdate < MetronomeSDK::Internal::Type::BaseModel
4093
4221
  # @!attribute starting_at
@@ -4121,6 +4249,141 @@ module MetronomeSDK
4121
4249
  #
4122
4250
  # @param quantity_delta [Float] The delta to add to the subscription's quantity. Must be provided if quantity is
4123
4251
  end
4252
+
4253
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription#seat_updates
4254
+ class SeatUpdates < MetronomeSDK::Internal::Type::BaseModel
4255
+ # @!attribute add_seat_ids
4256
+ # Adds seat IDs to the subscription. If there are unassigned seats, the new seat
4257
+ # IDs will fill these unassigned seats and not increase the total subscription
4258
+ # quantity. Otherwise, if there are more new seat IDs than unassigned seats, the
4259
+ # total subscription quantity will increase.
4260
+ #
4261
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddSeatID>, nil]
4262
+ optional :add_seat_ids,
4263
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddSeatID] }
4264
+
4265
+ # @!attribute add_unassigned_seats
4266
+ # Adds unassigned seats to the subscription. This will increase the total
4267
+ # subscription quantity.
4268
+ #
4269
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddUnassignedSeat>, nil]
4270
+ optional :add_unassigned_seats,
4271
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddUnassignedSeat] }
4272
+
4273
+ # @!attribute remove_seat_ids
4274
+ # Removes seat IDs from the subscription, if possible. If a seat ID is removed,
4275
+ # the total subscription quantity will decrease. Otherwise, if the seat ID is not
4276
+ # found on the subscription, this is a no-op.
4277
+ #
4278
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveSeatID>, nil]
4279
+ optional :remove_seat_ids,
4280
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveSeatID] }
4281
+
4282
+ # @!attribute remove_unassigned_seats
4283
+ # Removes unassigned seats from the subscription. This will decrease the total
4284
+ # subscription quantity if there are are unassigned seats.
4285
+ #
4286
+ # @return [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveUnassignedSeat>, nil]
4287
+ optional :remove_unassigned_seats,
4288
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveUnassignedSeat] }
4289
+
4290
+ # @!method initialize(add_seat_ids: nil, add_unassigned_seats: nil, remove_seat_ids: nil, remove_unassigned_seats: nil)
4291
+ # Some parameter documentations has been truncated, see
4292
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates}
4293
+ # for more details.
4294
+ #
4295
+ # @param add_seat_ids [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddSeatID>] Adds seat IDs to the subscription. If there are unassigned seats, the new seat
4296
+ #
4297
+ # @param add_unassigned_seats [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddUnassignedSeat>] Adds unassigned seats to the subscription. This will increase the total subscrip
4298
+ #
4299
+ # @param remove_seat_ids [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveSeatID>] Removes seat IDs from the subscription, if possible. If a seat ID is removed, t
4300
+ #
4301
+ # @param remove_unassigned_seats [Array<MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveUnassignedSeat>] Removes unassigned seats from the subscription. This will decrease the total sub
4302
+
4303
+ class AddSeatID < MetronomeSDK::Internal::Type::BaseModel
4304
+ # @!attribute seat_ids
4305
+ #
4306
+ # @return [Array<String>]
4307
+ required :seat_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
4308
+
4309
+ # @!attribute starting_at
4310
+ # Assigned seats will be added/removed starting at this date.
4311
+ #
4312
+ # @return [Time]
4313
+ required :starting_at, Time
4314
+
4315
+ # @!method initialize(seat_ids:, starting_at:)
4316
+ # @param seat_ids [Array<String>]
4317
+ #
4318
+ # @param starting_at [Time] Assigned seats will be added/removed starting at this date.
4319
+ end
4320
+
4321
+ class AddUnassignedSeat < MetronomeSDK::Internal::Type::BaseModel
4322
+ # @!attribute quantity
4323
+ # The number of unassigned seats on the subscription will increase/decrease by
4324
+ # this delta. Must be greater than 0.
4325
+ #
4326
+ # @return [Float]
4327
+ required :quantity, Float
4328
+
4329
+ # @!attribute starting_at
4330
+ # Unassigned seats will be updated starting at this date.
4331
+ #
4332
+ # @return [Time]
4333
+ required :starting_at, Time
4334
+
4335
+ # @!method initialize(quantity:, starting_at:)
4336
+ # Some parameter documentations has been truncated, see
4337
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates::AddUnassignedSeat}
4338
+ # for more details.
4339
+ #
4340
+ # @param quantity [Float] The number of unassigned seats on the subscription will increase/decrease by thi
4341
+ #
4342
+ # @param starting_at [Time] Unassigned seats will be updated starting at this date.
4343
+ end
4344
+
4345
+ class RemoveSeatID < MetronomeSDK::Internal::Type::BaseModel
4346
+ # @!attribute seat_ids
4347
+ #
4348
+ # @return [Array<String>]
4349
+ required :seat_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
4350
+
4351
+ # @!attribute starting_at
4352
+ # Assigned seats will be added/removed starting at this date.
4353
+ #
4354
+ # @return [Time]
4355
+ required :starting_at, Time
4356
+
4357
+ # @!method initialize(seat_ids:, starting_at:)
4358
+ # @param seat_ids [Array<String>]
4359
+ #
4360
+ # @param starting_at [Time] Assigned seats will be added/removed starting at this date.
4361
+ end
4362
+
4363
+ class RemoveUnassignedSeat < MetronomeSDK::Internal::Type::BaseModel
4364
+ # @!attribute quantity
4365
+ # The number of unassigned seats on the subscription will increase/decrease by
4366
+ # this delta. Must be greater than 0.
4367
+ #
4368
+ # @return [Float]
4369
+ required :quantity, Float
4370
+
4371
+ # @!attribute starting_at
4372
+ # Unassigned seats will be updated starting at this date.
4373
+ #
4374
+ # @return [Time]
4375
+ required :starting_at, Time
4376
+
4377
+ # @!method initialize(quantity:, starting_at:)
4378
+ # Some parameter documentations has been truncated, see
4379
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSubscription::SeatUpdates::RemoveUnassignedSeat}
4380
+ # for more details.
4381
+ #
4382
+ # @param quantity [Float] The number of unassigned seats on the subscription will increase/decrease by thi
4383
+ #
4384
+ # @param starting_at [Time] Unassigned seats will be updated starting at this date.
4385
+ end
4386
+ end
4124
4387
  end
4125
4388
  end
4126
4389
  end