metronome-sdk 2.1.0 → 3.0.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 (148) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +65 -0
  3. data/README.md +10 -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/commit.rb +69 -1
  8. data/lib/metronome_sdk/models/contract_v2.rb +45 -2
  9. data/lib/metronome_sdk/models/credit.rb +69 -1
  10. data/lib/metronome_sdk/models/rate.rb +1 -11
  11. data/lib/metronome_sdk/models/subscription.rb +32 -5
  12. data/lib/metronome_sdk/models/v1/alert_create_params.rb +33 -1
  13. data/lib/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rb +10 -1
  14. data/lib/metronome_sdk/models/v1/contract_create_params.rb +136 -20
  15. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +1 -11
  16. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +1 -11
  17. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +1 -11
  18. data/lib/metronome_sdk/models/v1/custom_field_add_key_params.rb +4 -0
  19. data/lib/metronome_sdk/models/v1/custom_field_delete_values_params.rb +4 -0
  20. data/lib/metronome_sdk/models/v1/custom_field_list_keys_params.rb +4 -0
  21. data/lib/metronome_sdk/models/v1/custom_field_list_keys_response.rb +4 -0
  22. data/lib/metronome_sdk/models/v1/custom_field_remove_key_params.rb +4 -0
  23. data/lib/metronome_sdk/models/v1/custom_field_set_values_params.rb +4 -0
  24. data/lib/metronome_sdk/models/v1/customer_create_params.rb +94 -2
  25. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_response.rb +111 -0
  26. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +32 -1
  27. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +15 -1
  28. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +15 -1
  29. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +33 -1
  30. data/lib/metronome_sdk/models/v1/customers/invoice.rb +71 -3
  31. data/lib/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rb +8 -1
  32. data/lib/metronome_sdk/models/v1/payment.rb +40 -1
  33. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rb +10 -1
  34. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_params.rb +1 -0
  35. data/lib/metronome_sdk/models/v1/usage_search_response.rb +6 -3
  36. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +17 -1
  37. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +17 -1
  38. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +285 -22
  39. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +177 -3
  40. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  41. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +1 -3
  42. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +1 -1
  43. data/lib/metronome_sdk/resources/v1/contracts.rb +6 -2
  44. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +3 -1
  45. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +8 -4
  46. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +7 -7
  47. data/lib/metronome_sdk/resources/v1/customers/plans.rb +5 -5
  48. data/lib/metronome_sdk/resources/v1/customers.rb +12 -10
  49. data/lib/metronome_sdk/resources/v1/plans.rb +2 -2
  50. data/lib/metronome_sdk/resources/v1/settings.rb +3 -1
  51. data/lib/metronome_sdk/resources/v1/usage.rb +7 -7
  52. data/lib/metronome_sdk/resources/v2/contracts.rb +10 -2
  53. data/lib/metronome_sdk/version.rb +1 -1
  54. data/lib/metronome_sdk.rb +3 -0
  55. data/manifest.yaml +2 -0
  56. data/rbi/metronome_sdk/internal/transport/base_client.rbi +5 -0
  57. data/rbi/metronome_sdk/internal/transport/pooled_net_requester.rbi +6 -2
  58. data/rbi/metronome_sdk/internal/type/base_model.rbi +8 -4
  59. data/rbi/metronome_sdk/models/commit.rbi +171 -0
  60. data/rbi/metronome_sdk/models/contract_v2.rbi +85 -6
  61. data/rbi/metronome_sdk/models/credit.rbi +171 -0
  62. data/rbi/metronome_sdk/models/rate.rbi +3 -18
  63. data/rbi/metronome_sdk/models/subscription.rbi +55 -9
  64. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +69 -0
  65. data/rbi/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbi +13 -0
  66. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +288 -24
  67. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +3 -18
  68. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +0 -15
  69. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +3 -18
  70. data/rbi/metronome_sdk/models/v1/custom_field_add_key_params.rbi +20 -0
  71. data/rbi/metronome_sdk/models/v1/custom_field_delete_values_params.rbi +20 -0
  72. data/rbi/metronome_sdk/models/v1/custom_field_list_keys_params.rbi +20 -0
  73. data/rbi/metronome_sdk/models/v1/custom_field_list_keys_response.rbi +20 -0
  74. data/rbi/metronome_sdk/models/v1/custom_field_remove_key_params.rbi +20 -0
  75. data/rbi/metronome_sdk/models/v1/custom_field_set_values_params.rbi +20 -0
  76. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +204 -0
  77. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbi +281 -0
  78. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +67 -0
  79. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +18 -0
  80. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +18 -0
  81. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +71 -0
  82. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +121 -0
  83. data/rbi/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbi +9 -0
  84. data/rbi/metronome_sdk/models/v1/payment.rbi +79 -0
  85. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbi +13 -0
  86. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_params.rbi +5 -0
  87. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +11 -3
  88. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +22 -0
  89. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +22 -0
  90. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +616 -27
  91. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +367 -3
  92. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -0
  93. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +0 -5
  94. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards.rbi +1 -1
  95. data/rbi/metronome_sdk/resources/v1/contracts.rbi +9 -0
  96. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +5 -0
  97. data/rbi/metronome_sdk/resources/v1/customers/billing_config.rbi +9 -3
  98. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +7 -7
  99. data/rbi/metronome_sdk/resources/v1/customers/plans.rbi +5 -5
  100. data/rbi/metronome_sdk/resources/v1/customers.rbi +15 -8
  101. data/rbi/metronome_sdk/resources/v1/plans.rbi +2 -2
  102. data/rbi/metronome_sdk/resources/v1/settings.rbi +4 -0
  103. data/rbi/metronome_sdk/resources/v1/usage.rbi +7 -7
  104. data/rbi/metronome_sdk/resources/v2/contracts.rbi +12 -0
  105. data/sig/metronome_sdk/internal/transport/base_client.rbs +2 -0
  106. data/sig/metronome_sdk/internal/transport/pooled_net_requester.rbs +4 -1
  107. data/sig/metronome_sdk/models/commit.rbs +74 -0
  108. data/sig/metronome_sdk/models/contract_v2.rbs +45 -6
  109. data/sig/metronome_sdk/models/credit.rbs +74 -0
  110. data/sig/metronome_sdk/models/rate.rbs +3 -10
  111. data/sig/metronome_sdk/models/subscription.rbs +22 -3
  112. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +28 -0
  113. data/sig/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbs +7 -0
  114. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +104 -0
  115. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +3 -10
  116. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +1 -8
  117. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +3 -10
  118. data/sig/metronome_sdk/models/v1/custom_field_add_key_params.rbs +8 -0
  119. data/sig/metronome_sdk/models/v1/custom_field_delete_values_params.rbs +8 -0
  120. data/sig/metronome_sdk/models/v1/custom_field_list_keys_params.rbs +8 -0
  121. data/sig/metronome_sdk/models/v1/custom_field_list_keys_response.rbs +8 -0
  122. data/sig/metronome_sdk/models/v1/custom_field_remove_key_params.rbs +8 -0
  123. data/sig/metronome_sdk/models/v1/custom_field_set_values_params.rbs +8 -0
  124. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +83 -0
  125. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbs +119 -0
  126. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +26 -1
  127. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +14 -0
  128. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +14 -0
  129. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +30 -0
  130. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +64 -0
  131. data/sig/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbs +7 -0
  132. data/sig/metronome_sdk/models/v1/payment.rbs +45 -0
  133. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbs +8 -1
  134. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_params.rbs +3 -1
  135. data/sig/metronome_sdk/models/v1/usage_search_response.rbs +3 -1
  136. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +14 -0
  137. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +14 -0
  138. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +232 -3
  139. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +131 -3
  140. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  141. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +0 -1
  142. data/sig/metronome_sdk/resources/v1/contracts.rbs +2 -0
  143. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  144. data/sig/metronome_sdk/resources/v1/customers/billing_config.rbs +2 -0
  145. data/sig/metronome_sdk/resources/v1/customers.rbs +2 -1
  146. data/sig/metronome_sdk/resources/v1/settings.rbs +1 -0
  147. data/sig/metronome_sdk/resources/v2/contracts.rbs +4 -0
  148. metadata +19 -2
@@ -97,6 +97,13 @@ module MetronomeSDK
97
97
  # @return [String, nil]
98
98
  optional :plan_id, String
99
99
 
100
+ # @!attribute seat_filter
101
+ # Required for `low_remaining_seat_balance_reached` notifications. The alert is
102
+ # scoped to this seat group key-value pair.
103
+ #
104
+ # @return [MetronomeSDK::Models::V1::AlertCreateParams::SeatFilter, nil]
105
+ optional :seat_filter, -> { MetronomeSDK::V1::AlertCreateParams::SeatFilter }
106
+
100
107
  # @!attribute uniqueness_key
101
108
  # Prevents the creation of duplicates. If a request to create a record is made
102
109
  # with a previously used uniqueness key, a new record will not be created and the
@@ -105,7 +112,7 @@ module MetronomeSDK
105
112
  # @return [String, nil]
106
113
  optional :uniqueness_key, String
107
114
 
108
- # @!method initialize(alert_type:, name:, threshold:, billable_metric_id: nil, credit_grant_type_filters: nil, credit_type_id: nil, custom_field_filters: nil, customer_id: nil, evaluate_on_create: nil, group_values: nil, invoice_types_filter: nil, plan_id: nil, uniqueness_key: nil, request_options: {})
115
+ # @!method initialize(alert_type:, name:, threshold:, billable_metric_id: nil, credit_grant_type_filters: nil, credit_type_id: nil, custom_field_filters: nil, customer_id: nil, evaluate_on_create: nil, group_values: nil, invoice_types_filter: nil, plan_id: nil, seat_filter: nil, uniqueness_key: nil, request_options: {})
109
116
  # Some parameter documentations has been truncated, see
110
117
  # {MetronomeSDK::Models::V1::AlertCreateParams} for more details.
111
118
  #
@@ -133,6 +140,8 @@ module MetronomeSDK
133
140
  #
134
141
  # @param plan_id [String] If provided, will create this threshold notification for this specific plan. To
135
142
  #
143
+ # @param seat_filter [MetronomeSDK::Models::V1::AlertCreateParams::SeatFilter] Required for `low_remaining_seat_balance_reached` notifications. The alert is sc
144
+ #
136
145
  # @param uniqueness_key [String] Prevents the creation of duplicates. If a request to create a record is made wit
137
146
  #
138
147
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
@@ -157,6 +166,7 @@ module MetronomeSDK
157
166
  LOW_REMAINING_CONTRACT_CREDIT_AND_COMMIT_BALANCE_REACHED =
158
167
  :low_remaining_contract_credit_and_commit_balance_reached
159
168
  INVOICE_TOTAL_REACHED = :invoice_total_reached
169
+ LOW_REMAINING_SEAT_BALANCE_REACHED = :low_remaining_seat_balance_reached
160
170
 
161
171
  # @!method self.values
162
172
  # @return [Array<Symbol>]
@@ -211,6 +221,28 @@ module MetronomeSDK
211
221
  # @param key [String]
212
222
  # @param value [String]
213
223
  end
224
+
225
+ class SeatFilter < MetronomeSDK::Internal::Type::BaseModel
226
+ # @!attribute seat_group_key
227
+ # The seat group key (e.g., "seat_id", "user_id")
228
+ #
229
+ # @return [String]
230
+ required :seat_group_key, String
231
+
232
+ # @!attribute seat_group_value
233
+ # Optional seat identifier the alert is scoped to.
234
+ #
235
+ # @return [String, nil]
236
+ optional :seat_group_value, String
237
+
238
+ # @!method initialize(seat_group_key:, seat_group_value: nil)
239
+ # Required for `low_remaining_seat_balance_reached` notifications. The alert is
240
+ # scoped to this seat group key-value pair.
241
+ #
242
+ # @param seat_group_key [String] The seat group key (e.g., "seat_id", "user_id")
243
+ #
244
+ # @param seat_group_value [String] Optional seat identifier the alert is scoped to.
245
+ end
214
246
  end
215
247
  end
216
248
  end
@@ -44,6 +44,13 @@ module MetronomeSDK
44
44
  # @return [String, nil]
45
45
  optional :contract_id, String
46
46
 
47
+ # @!attribute per_group_amounts
48
+ # If using individually configured commits/credits attached to seat managed
49
+ # subscriptions, the amount to add for each seat. Must sum to total amount.
50
+ #
51
+ # @return [Hash{Symbol=>Float}, nil]
52
+ optional :per_group_amounts, MetronomeSDK::Internal::Type::HashOf[Float]
53
+
47
54
  # @!attribute timestamp
48
55
  # RFC 3339 timestamp indicating when the manual adjustment takes place. If not
49
56
  # provided, it will default to the start of the segment.
@@ -51,7 +58,7 @@ module MetronomeSDK
51
58
  # @return [Time, nil]
52
59
  optional :timestamp, Time
53
60
 
54
- # @!method initialize(id:, amount:, customer_id:, reason:, segment_id:, contract_id: nil, timestamp: nil, request_options: {})
61
+ # @!method initialize(id:, amount:, customer_id:, reason:, segment_id:, contract_id: nil, per_group_amounts: nil, timestamp: nil, request_options: {})
55
62
  # Some parameter documentations has been truncated, see
56
63
  # {MetronomeSDK::Models::V1::ContractAddManualBalanceEntryParams} for more
57
64
  # details.
@@ -68,6 +75,8 @@ module MetronomeSDK
68
75
  #
69
76
  # @param contract_id [String] ID of the contract to update. Leave blank to update a customer level balance.
70
77
  #
78
+ # @param per_group_amounts [Hash{Symbol=>Float}] If using individually configured commits/credits attached to seat managed subscr
79
+ #
71
80
  # @param timestamp [Time] RFC 3339 timestamp indicating when the manual adjustment takes place. If not pro
72
81
  #
73
82
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
@@ -145,6 +145,14 @@ module MetronomeSDK
145
145
  optional :reseller_royalties,
146
146
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::ContractCreateParams::ResellerRoyalty] }
147
147
 
148
+ # @!attribute revenue_system_configuration
149
+ # The revenue system configuration associated with a contract. Provide either an
150
+ # ID or the provider and delivery method.
151
+ #
152
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::RevenueSystemConfiguration, nil]
153
+ optional :revenue_system_configuration,
154
+ -> { MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration }
155
+
148
156
  # @!attribute salesforce_opportunity_id
149
157
  # This field's availability is dependent on your client's configuration.
150
158
  #
@@ -211,7 +219,7 @@ module MetronomeSDK
211
219
  # @return [MetronomeSDK::Models::V1::ContractCreateParams::UsageStatementSchedule, nil]
212
220
  optional :usage_statement_schedule, -> { MetronomeSDK::V1::ContractCreateParams::UsageStatementSchedule }
213
221
 
214
- # @!method initialize(customer_id:, starting_at:, billing_provider_configuration: nil, commits: nil, credits: nil, custom_fields: nil, discounts: nil, ending_before: nil, hierarchy_configuration: nil, multiplier_override_prioritization: nil, name: nil, net_payment_terms_days: nil, netsuite_sales_order_id: nil, overrides: nil, prepaid_balance_threshold_configuration: nil, priority: nil, professional_services: nil, rate_card_alias: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, reseller_royalties: nil, salesforce_opportunity_id: nil, scheduled_charges: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, subscriptions: nil, total_contract_value: nil, transition: nil, uniqueness_key: nil, usage_filter: nil, usage_statement_schedule: nil, request_options: {})
222
+ # @!method initialize(customer_id:, starting_at:, billing_provider_configuration: nil, commits: nil, credits: nil, custom_fields: nil, discounts: nil, ending_before: nil, hierarchy_configuration: nil, multiplier_override_prioritization: nil, name: nil, net_payment_terms_days: nil, netsuite_sales_order_id: nil, overrides: nil, prepaid_balance_threshold_configuration: nil, priority: nil, professional_services: nil, rate_card_alias: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, reseller_royalties: nil, revenue_system_configuration: nil, salesforce_opportunity_id: nil, scheduled_charges: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, subscriptions: nil, total_contract_value: nil, transition: nil, uniqueness_key: nil, usage_filter: nil, usage_statement_schedule: nil, request_options: {})
215
223
  # Some parameter documentations has been truncated, see
216
224
  # {MetronomeSDK::Models::V1::ContractCreateParams} for more details.
217
225
  #
@@ -259,6 +267,8 @@ module MetronomeSDK
259
267
  #
260
268
  # @param reseller_royalties [Array<MetronomeSDK::Models::V1::ContractCreateParams::ResellerRoyalty>] This field's availability is dependent on your client's configuration.
261
269
  #
270
+ # @param revenue_system_configuration [MetronomeSDK::Models::V1::ContractCreateParams::RevenueSystemConfiguration] The revenue system configuration associated with a contract. Provide either an I
271
+ #
262
272
  # @param salesforce_opportunity_id [String] This field's availability is dependent on your client's configuration.
263
273
  #
264
274
  # @param scheduled_charges [Array<MetronomeSDK::Models::V1::ContractCreateParams::ScheduledCharge>]
@@ -2247,9 +2257,8 @@ module MetronomeSDK
2247
2257
  required :subscription_id, String
2248
2258
 
2249
2259
  # @!attribute allocation
2250
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2251
- # If set to INDIVIDUAL, each seat in the subscription will have its own
2252
- # allocation.
2260
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
2261
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
2253
2262
  #
2254
2263
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation, nil]
2255
2264
  optional :allocation,
@@ -2266,7 +2275,7 @@ module MetronomeSDK
2266
2275
  #
2267
2276
  # @param subscription_id [String] ID of the subscription to configure on the recurring commit/credit.
2268
2277
  #
2269
- # @param allocation [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2278
+ # @param allocation [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account. If set
2270
2279
 
2271
2280
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig#apply_seat_increase_config
2272
2281
  class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
@@ -2280,9 +2289,8 @@ module MetronomeSDK
2280
2289
  # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
2281
2290
  end
2282
2291
 
2283
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2284
- # If set to INDIVIDUAL, each seat in the subscription will have its own
2285
- # allocation.
2292
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
2293
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
2286
2294
  #
2287
2295
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig#allocation
2288
2296
  module Allocation
@@ -2596,9 +2604,8 @@ module MetronomeSDK
2596
2604
  required :subscription_id, String
2597
2605
 
2598
2606
  # @!attribute allocation
2599
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2600
- # If set to INDIVIDUAL, each seat in the subscription will have its own
2601
- # allocation.
2607
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
2608
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
2602
2609
  #
2603
2610
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation, nil]
2604
2611
  optional :allocation,
@@ -2615,7 +2622,7 @@ module MetronomeSDK
2615
2622
  #
2616
2623
  # @param subscription_id [String] ID of the subscription to configure on the recurring commit/credit.
2617
2624
  #
2618
- # @param allocation [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2625
+ # @param allocation [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account. If set
2619
2626
 
2620
2627
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig#apply_seat_increase_config
2621
2628
  class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
@@ -2629,9 +2636,8 @@ module MetronomeSDK
2629
2636
  # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
2630
2637
  end
2631
2638
 
2632
- # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
2633
- # If set to INDIVIDUAL, each seat in the subscription will have its own
2634
- # allocation.
2639
+ # If set to POOLED, allocation added per seat is pooled across the account. If set
2640
+ # to INDIVIDUAL, each seat in the subscription will have its own allocation.
2635
2641
  #
2636
2642
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig#allocation
2637
2643
  module Allocation
@@ -2775,6 +2781,72 @@ module MetronomeSDK
2775
2781
  end
2776
2782
  end
2777
2783
 
2784
+ class RevenueSystemConfiguration < MetronomeSDK::Internal::Type::BaseModel
2785
+ # @!attribute delivery_method
2786
+ # How revenue recognition records should be delivered to the revenue system. Do
2787
+ # not specify if using revenue_system_configuration_id.
2788
+ #
2789
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RevenueSystemConfiguration::DeliveryMethod, nil]
2790
+ optional :delivery_method,
2791
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration::DeliveryMethod }
2792
+
2793
+ # @!attribute provider
2794
+ # The system that is providing services for revenue recognition. Do not specify if
2795
+ # using revenue_system_configuration_id.
2796
+ #
2797
+ # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RevenueSystemConfiguration::Provider, nil]
2798
+ optional :provider,
2799
+ enum: -> { MetronomeSDK::V1::ContractCreateParams::RevenueSystemConfiguration::Provider }
2800
+
2801
+ # @!attribute revenue_system_configuration_id
2802
+ # The Metronome ID of the revenue system configuration. Use when a customer has
2803
+ # multiple configurations with the same provider and delivery method. Otherwise,
2804
+ # specify the provider and delivery_method.
2805
+ #
2806
+ # @return [String, nil]
2807
+ optional :revenue_system_configuration_id, String
2808
+
2809
+ # @!method initialize(delivery_method: nil, provider: nil, revenue_system_configuration_id: nil)
2810
+ # Some parameter documentations has been truncated, see
2811
+ # {MetronomeSDK::Models::V1::ContractCreateParams::RevenueSystemConfiguration} for
2812
+ # more details.
2813
+ #
2814
+ # The revenue system configuration associated with a contract. Provide either an
2815
+ # ID or the provider and delivery method.
2816
+ #
2817
+ # @param delivery_method [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RevenueSystemConfiguration::DeliveryMethod] How revenue recognition records should be delivered to the revenue system. Do no
2818
+ #
2819
+ # @param provider [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RevenueSystemConfiguration::Provider] The system that is providing services for revenue recognition. Do not specify if
2820
+ #
2821
+ # @param revenue_system_configuration_id [String] The Metronome ID of the revenue system configuration. Use when a customer has mu
2822
+
2823
+ # How revenue recognition records should be delivered to the revenue system. Do
2824
+ # not specify if using revenue_system_configuration_id.
2825
+ #
2826
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RevenueSystemConfiguration#delivery_method
2827
+ module DeliveryMethod
2828
+ extend MetronomeSDK::Internal::Type::Enum
2829
+
2830
+ DIRECT_TO_BILLING_PROVIDER = :direct_to_billing_provider
2831
+
2832
+ # @!method self.values
2833
+ # @return [Array<Symbol>]
2834
+ end
2835
+
2836
+ # The system that is providing services for revenue recognition. Do not specify if
2837
+ # using revenue_system_configuration_id.
2838
+ #
2839
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::RevenueSystemConfiguration#provider
2840
+ module Provider
2841
+ extend MetronomeSDK::Internal::Type::Enum
2842
+
2843
+ NETSUITE = :netsuite
2844
+
2845
+ # @!method self.values
2846
+ # @return [Array<Symbol>]
2847
+ end
2848
+ end
2849
+
2778
2850
  class ScheduledCharge < MetronomeSDK::Internal::Type::BaseModel
2779
2851
  # @!attribute product_id
2780
2852
  #
@@ -3074,8 +3146,8 @@ module MetronomeSDK
3074
3146
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
3075
3147
  # directly on the subscription. `initial_quantity` must be provided with this
3076
3148
  # option. Compatible with recurring commits/credits that use POOLED allocation.
3077
- # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
3078
- # add user_123) to increment and decrement a subscription quantity, rather than
3149
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
3150
+ # user_123) to increment and decrement a subscription quantity, rather than
3079
3151
  # directly providing the quantity. You must use a **SEAT_BASED** subscription to
3080
3152
  # use a linked recurring credit with an allocation per seat. `seat_config` must be
3081
3153
  # provided with this option.
@@ -3084,6 +3156,11 @@ module MetronomeSDK
3084
3156
  optional :quantity_management_mode,
3085
3157
  enum: -> { MetronomeSDK::V1::ContractCreateParams::Subscription::QuantityManagementMode }
3086
3158
 
3159
+ # @!attribute seat_config
3160
+ #
3161
+ # @return [MetronomeSDK::Models::V1::ContractCreateParams::Subscription::SeatConfig, nil]
3162
+ optional :seat_config, -> { MetronomeSDK::V1::ContractCreateParams::Subscription::SeatConfig }
3163
+
3087
3164
  # @!attribute starting_at
3088
3165
  # Inclusive start time for the subscription. If not provided, defaults to contract
3089
3166
  # start date
@@ -3098,7 +3175,7 @@ module MetronomeSDK
3098
3175
  # @return [String, nil]
3099
3176
  optional :temporary_id, String
3100
3177
 
3101
- # @!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)
3178
+ # @!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)
3102
3179
  # Some parameter documentations has been truncated, see
3103
3180
  # {MetronomeSDK::Models::V1::ContractCreateParams::Subscription} for more details.
3104
3181
  #
@@ -3120,6 +3197,8 @@ module MetronomeSDK
3120
3197
  #
3121
3198
  # @param quantity_management_mode [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::QuantityManagementMode] Determines how the subscription's quantity is controlled. Defaults to QUANTITY_O
3122
3199
  #
3200
+ # @param seat_config [MetronomeSDK::Models::V1::ContractCreateParams::Subscription::SeatConfig]
3201
+ #
3123
3202
  # @param starting_at [Time] Inclusive start time for the subscription. If not provided, defaults to contract
3124
3203
  #
3125
3204
  # @param temporary_id [String] A temporary ID used to reference the subscription in recurring commit/credit sub
@@ -3227,8 +3306,8 @@ module MetronomeSDK
3227
3306
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
3228
3307
  # directly on the subscription. `initial_quantity` must be provided with this
3229
3308
  # option. Compatible with recurring commits/credits that use POOLED allocation.
3230
- # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
3231
- # add user_123) to increment and decrement a subscription quantity, rather than
3309
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
3310
+ # user_123) to increment and decrement a subscription quantity, rather than
3232
3311
  # directly providing the quantity. You must use a **SEAT_BASED** subscription to
3233
3312
  # use a linked recurring credit with an allocation per seat. `seat_config` must be
3234
3313
  # provided with this option.
@@ -3243,6 +3322,43 @@ module MetronomeSDK
3243
3322
  # @!method self.values
3244
3323
  # @return [Array<Symbol>]
3245
3324
  end
3325
+
3326
+ # @see MetronomeSDK::Models::V1::ContractCreateParams::Subscription#seat_config
3327
+ class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
3328
+ # @!attribute initial_seat_ids
3329
+ # The initial assigned seats on this subscription.
3330
+ #
3331
+ # @return [Array<String>]
3332
+ required :initial_seat_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
3333
+
3334
+ # @!attribute seat_group_key
3335
+ # The property name, sent on usage events, that identifies the seat ID associated
3336
+ # with the usage event. For example, the property name might be seat_id or
3337
+ # user_id. The property must be set as a group key on billable metrics and a
3338
+ # presentation/pricing group key on contract products. This allows linked
3339
+ # recurring credits with an allocation per seat to be consumed by only one seat's
3340
+ # usage.
3341
+ #
3342
+ # @return [String]
3343
+ required :seat_group_key, String
3344
+
3345
+ # @!attribute initial_unassigned_seats
3346
+ # The initial amount of unassigned seats on this subscription.
3347
+ #
3348
+ # @return [Float, nil]
3349
+ optional :initial_unassigned_seats, Float
3350
+
3351
+ # @!method initialize(initial_seat_ids:, seat_group_key:, initial_unassigned_seats: nil)
3352
+ # Some parameter documentations has been truncated, see
3353
+ # {MetronomeSDK::Models::V1::ContractCreateParams::Subscription::SeatConfig} for
3354
+ # more details.
3355
+ #
3356
+ # @param initial_seat_ids [Array<String>] The initial assigned seats on this subscription.
3357
+ #
3358
+ # @param seat_group_key [String] The property name, sent on usage events, that identifies the seat ID associated
3359
+ #
3360
+ # @param initial_unassigned_seats [Float] The initial amount of unassigned seats on this subscription.
3361
+ end
3246
3362
  end
3247
3363
 
3248
3364
  class Transition < MetronomeSDK::Internal::Type::BaseModel
@@ -120,15 +120,7 @@ module MetronomeSDK
120
120
  # @return [Array<MetronomeSDK::Models::Tier>, nil]
121
121
  optional :tiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Tier] }
122
122
 
123
- # @!attribute use_list_prices
124
- # Only set for PERCENTAGE rate_type. Defaults to false. If true, rate is computed
125
- # using list prices rather than the standard rates for this product on the
126
- # contract.
127
- #
128
- # @return [Boolean, nil]
129
- optional :use_list_prices, MetronomeSDK::Internal::Type::Boolean
130
-
131
- # @!method initialize(entitled:, product_id:, rate_type:, starting_at:, billing_frequency: nil, commit_rate: nil, credit_type_id: nil, custom_rate: nil, ending_before: nil, is_prorated: nil, price: nil, pricing_group_values: nil, quantity: nil, tiers: nil, use_list_prices: nil)
123
+ # @!method initialize(entitled:, product_id:, rate_type:, starting_at:, billing_frequency: nil, commit_rate: nil, credit_type_id: nil, custom_rate: nil, ending_before: nil, is_prorated: nil, price: nil, pricing_group_values: nil, quantity: nil, tiers: nil)
132
124
  # Some parameter documentations has been truncated, see
133
125
  # {MetronomeSDK::Models::V1::Contracts::RateCards::RateAddManyParams::Rate} for
134
126
  # more details.
@@ -160,8 +152,6 @@ module MetronomeSDK
160
152
  # @param quantity [Float] Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
161
153
  #
162
154
  # @param tiers [Array<MetronomeSDK::Models::Tier>] Only set for TIERED rate_type.
163
- #
164
- # @param use_list_prices [Boolean] Only set for PERCENTAGE rate_type. Defaults to false. If true, rate is computed
165
155
 
166
156
  # @see MetronomeSDK::Models::V1::Contracts::RateCards::RateAddManyParams::Rate#rate_type
167
157
  module RateType
@@ -108,15 +108,7 @@ module MetronomeSDK
108
108
  # @return [Array<MetronomeSDK::Models::Tier>, nil]
109
109
  optional :tiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Tier] }
110
110
 
111
- # @!attribute use_list_prices
112
- # Only set for PERCENTAGE rate_type. Defaults to false. If true, rate is computed
113
- # using list prices rather than the standard rates for this product on the
114
- # contract.
115
- #
116
- # @return [Boolean, nil]
117
- optional :use_list_prices, MetronomeSDK::Internal::Type::Boolean
118
-
119
- # @!method initialize(entitled:, product_id:, rate_card_id:, rate_type:, starting_at:, billing_frequency: nil, commit_rate: nil, credit_type_id: nil, custom_rate: nil, ending_before: nil, is_prorated: nil, price: nil, pricing_group_values: nil, quantity: nil, tiers: nil, use_list_prices: nil, request_options: {})
111
+ # @!method initialize(entitled:, product_id:, rate_card_id:, rate_type:, starting_at:, billing_frequency: nil, commit_rate: nil, credit_type_id: nil, custom_rate: nil, ending_before: nil, is_prorated: nil, price: nil, pricing_group_values: nil, quantity: nil, tiers: nil, request_options: {})
120
112
  # Some parameter documentations has been truncated, see
121
113
  # {MetronomeSDK::Models::V1::Contracts::RateCards::RateAddParams} for more
122
114
  # details.
@@ -151,8 +143,6 @@ module MetronomeSDK
151
143
  #
152
144
  # @param tiers [Array<MetronomeSDK::Models::Tier>] Only set for TIERED rate_type.
153
145
  #
154
- # @param use_list_prices [Boolean] Only set for PERCENTAGE rate_type. Defaults to false. If true, rate is computed
155
- #
156
146
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
157
147
 
158
148
  module RateType
@@ -75,15 +75,7 @@ module MetronomeSDK
75
75
  # @return [Array<MetronomeSDK::Models::Tier>, nil]
76
76
  optional :tiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Tier] }
77
77
 
78
- # @!attribute use_list_prices
79
- # Only set for PERCENTAGE rate_type. Defaults to false. If true, rate is computed
80
- # using list prices rather than the standard rates for this product on the
81
- # contract.
82
- #
83
- # @return [Boolean, nil]
84
- optional :use_list_prices, MetronomeSDK::Internal::Type::Boolean
85
-
86
- # @!method initialize(rate_type:, commit_rate: nil, credit_type: nil, custom_rate: nil, is_prorated: nil, price: nil, pricing_group_values: nil, quantity: nil, tiers: nil, use_list_prices: nil)
78
+ # @!method initialize(rate_type:, commit_rate: nil, credit_type: nil, custom_rate: nil, is_prorated: nil, price: nil, pricing_group_values: nil, quantity: nil, tiers: nil)
87
79
  # Some parameter documentations has been truncated, see
88
80
  # {MetronomeSDK::Models::V1::Contracts::RateCards::RateAddResponse::Data} for more
89
81
  # details.
@@ -105,8 +97,6 @@ module MetronomeSDK
105
97
  # @param quantity [Float] Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
106
98
  #
107
99
  # @param tiers [Array<MetronomeSDK::Models::Tier>] Only set for TIERED rate_type.
108
- #
109
- # @param use_list_prices [Boolean] Only set for PERCENTAGE rate_type. Defaults to false. If true, rate is computed
110
100
 
111
101
  # @see MetronomeSDK::Models::V1::Contracts::RateCards::RateAddResponse::Data#rate_type
112
102
  module RateType
@@ -50,6 +50,10 @@ module MetronomeSDK
50
50
  RATE_CARD = :rate_card
51
51
  SCHEDULED_CHARGE = :scheduled_charge
52
52
  SUBSCRIPTION = :subscription
53
+ PACKAGE_COMMIT = :package_commit
54
+ PACKAGE_CREDIT = :package_credit
55
+ PACKAGE_SUBSCRIPTION = :package_subscription
56
+ PACKAGE_SCHEDULED_CHARGE = :package_scheduled_charge
53
57
 
54
58
  # @!method self.values
55
59
  # @return [Array<Symbol>]
@@ -50,6 +50,10 @@ module MetronomeSDK
50
50
  RATE_CARD = :rate_card
51
51
  SCHEDULED_CHARGE = :scheduled_charge
52
52
  SUBSCRIPTION = :subscription
53
+ PACKAGE_COMMIT = :package_commit
54
+ PACKAGE_CREDIT = :package_credit
55
+ PACKAGE_SUBSCRIPTION = :package_subscription
56
+ PACKAGE_SCHEDULED_CHARGE = :package_scheduled_charge
53
57
 
54
58
  # @!method self.values
55
59
  # @return [Array<Symbol>]
@@ -49,6 +49,10 @@ module MetronomeSDK
49
49
  RATE_CARD = :rate_card
50
50
  SCHEDULED_CHARGE = :scheduled_charge
51
51
  SUBSCRIPTION = :subscription
52
+ PACKAGE_COMMIT = :package_commit
53
+ PACKAGE_CREDIT = :package_credit
54
+ PACKAGE_SUBSCRIPTION = :package_subscription
55
+ PACKAGE_SCHEDULED_CHARGE = :package_scheduled_charge
52
56
 
53
57
  # @!method self.values
54
58
  # @return [Array<Symbol>]
@@ -47,6 +47,10 @@ module MetronomeSDK
47
47
  RATE_CARD = :rate_card
48
48
  SCHEDULED_CHARGE = :scheduled_charge
49
49
  SUBSCRIPTION = :subscription
50
+ PACKAGE_COMMIT = :package_commit
51
+ PACKAGE_CREDIT = :package_credit
52
+ PACKAGE_SUBSCRIPTION = :package_subscription
53
+ PACKAGE_SCHEDULED_CHARGE = :package_scheduled_charge
50
54
 
51
55
  # @!method self.values
52
56
  # @return [Array<Symbol>]
@@ -44,6 +44,10 @@ module MetronomeSDK
44
44
  RATE_CARD = :rate_card
45
45
  SCHEDULED_CHARGE = :scheduled_charge
46
46
  SUBSCRIPTION = :subscription
47
+ PACKAGE_COMMIT = :package_commit
48
+ PACKAGE_CREDIT = :package_credit
49
+ PACKAGE_SUBSCRIPTION = :package_subscription
50
+ PACKAGE_SCHEDULED_CHARGE = :package_scheduled_charge
47
51
 
48
52
  # @!method self.values
49
53
  # @return [Array<Symbol>]
@@ -54,6 +54,10 @@ module MetronomeSDK
54
54
  RATE_CARD = :rate_card
55
55
  SCHEDULED_CHARGE = :scheduled_charge
56
56
  SUBSCRIPTION = :subscription
57
+ PACKAGE_COMMIT = :package_commit
58
+ PACKAGE_CREDIT = :package_credit
59
+ PACKAGE_SUBSCRIPTION = :package_subscription
60
+ PACKAGE_SCHEDULED_CHARGE = :package_scheduled_charge
57
61
 
58
62
  # @!method self.values
59
63
  # @return [Array<Symbol>]