metronome-sdk 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +75 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +7 -1
  5. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +38 -26
  6. data/lib/metronome_sdk/internal/util.rb +7 -2
  7. data/lib/metronome_sdk/models/contract.rb +1 -0
  8. data/lib/metronome_sdk/models/contract_v2.rb +69 -23
  9. data/lib/metronome_sdk/models/hierarchy_configuration.rb +45 -21
  10. data/lib/metronome_sdk/models/subscription.rb +38 -1
  11. data/lib/metronome_sdk/models/v1/alert_create_params.rb +33 -1
  12. data/lib/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rb +10 -1
  13. data/lib/metronome_sdk/models/v1/contract_create_params.rb +195 -29
  14. data/lib/metronome_sdk/models/v1/contract_list_balances_params.rb +9 -1
  15. data/lib/metronome_sdk/models/v1/customer_create_params.rb +105 -3
  16. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +14 -10
  17. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rb +1 -0
  18. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb +1 -0
  19. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_response.rb +111 -0
  20. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +32 -1
  21. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +21 -2
  22. data/lib/metronome_sdk/models/v1/customers/billing_config_delete_params.rb +1 -0
  23. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rb +1 -0
  24. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +21 -2
  25. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +1 -1
  26. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +34 -1
  27. data/lib/metronome_sdk/models/v1/customers/invoice.rb +144 -4
  28. data/lib/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rb +8 -1
  29. data/lib/metronome_sdk/models/v1/payment.rb +7 -1
  30. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rb +74 -0
  31. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rb +12 -0
  32. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_params.rb +74 -0
  33. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_response.rb +31 -0
  34. data/lib/metronome_sdk/models/v1/settings/billing_provider_list_params.rb +26 -0
  35. data/lib/metronome_sdk/models/v1/settings/billing_provider_list_response.rb +105 -0
  36. data/lib/metronome_sdk/models/v1/usage_search_response.rb +6 -3
  37. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +17 -1
  38. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +17 -1
  39. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +300 -10
  40. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +177 -3
  41. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  42. data/lib/metronome_sdk/resources/v1/contracts.rb +10 -4
  43. data/lib/metronome_sdk/resources/v1/credit_grants.rb +10 -5
  44. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +3 -1
  45. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +12 -5
  46. data/lib/metronome_sdk/resources/v1/customers/commits.rb +2 -1
  47. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +2 -1
  48. data/lib/metronome_sdk/resources/v1/customers/plans.rb +8 -4
  49. data/lib/metronome_sdk/resources/v1/customers.rb +12 -8
  50. data/lib/metronome_sdk/resources/v1/plans.rb +8 -4
  51. data/lib/metronome_sdk/resources/v1/settings/billing_providers.rb +75 -0
  52. data/lib/metronome_sdk/resources/v1/settings.rb +57 -0
  53. data/lib/metronome_sdk/resources/v1.rb +4 -0
  54. data/lib/metronome_sdk/resources/v2/contracts.rb +10 -2
  55. data/lib/metronome_sdk/version.rb +1 -1
  56. data/lib/metronome_sdk.rb +11 -0
  57. data/manifest.yaml +2 -0
  58. data/rbi/metronome_sdk/internal/transport/base_client.rbi +5 -0
  59. data/rbi/metronome_sdk/internal/transport/pooled_net_requester.rbi +6 -2
  60. data/rbi/metronome_sdk/internal/type/base_model.rbi +8 -4
  61. data/rbi/metronome_sdk/models/contract.rbi +5 -0
  62. data/rbi/metronome_sdk/models/contract_v2.rbi +122 -33
  63. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +63 -27
  64. data/rbi/metronome_sdk/models/subscription.rbi +64 -3
  65. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +69 -0
  66. data/rbi/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbi +13 -0
  67. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +360 -33
  68. data/rbi/metronome_sdk/models/v1/contract_list_balances_params.rbi +11 -0
  69. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +215 -0
  70. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +18 -11
  71. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbi +5 -0
  72. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbi +5 -0
  73. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbi +281 -0
  74. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +67 -0
  75. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +29 -0
  76. data/rbi/metronome_sdk/models/v1/customers/billing_config_delete_params.rbi +5 -0
  77. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rbi +5 -0
  78. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +24 -0
  79. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +2 -2
  80. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +76 -0
  81. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +268 -0
  82. data/rbi/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbi +9 -0
  83. data/rbi/metronome_sdk/models/v1/payment.rbi +11 -3
  84. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbi +128 -0
  85. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rbi +25 -0
  86. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_params.rbi +162 -0
  87. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_response.rbi +75 -0
  88. data/rbi/metronome_sdk/models/v1/settings/billing_provider_list_params.rbi +50 -0
  89. data/rbi/metronome_sdk/models/v1/settings/billing_provider_list_response.rbi +245 -0
  90. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +11 -3
  91. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +22 -0
  92. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +22 -0
  93. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +630 -9
  94. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +367 -3
  95. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -0
  96. data/rbi/metronome_sdk/resources/v1/contracts.rbi +13 -1
  97. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +10 -5
  98. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +5 -0
  99. data/rbi/metronome_sdk/resources/v1/customers/billing_config.rbi +14 -4
  100. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +3 -2
  101. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +2 -1
  102. data/rbi/metronome_sdk/resources/v1/customers/plans.rbi +8 -4
  103. data/rbi/metronome_sdk/resources/v1/customers.rbi +19 -9
  104. data/rbi/metronome_sdk/resources/v1/plans.rbi +8 -4
  105. data/rbi/metronome_sdk/resources/v1/settings/billing_providers.rbi +63 -0
  106. data/rbi/metronome_sdk/resources/v1/settings.rbi +51 -0
  107. data/rbi/metronome_sdk/resources/v1.rbi +3 -0
  108. data/rbi/metronome_sdk/resources/v2/contracts.rbi +12 -0
  109. data/sig/metronome_sdk/internal/transport/base_client.rbs +2 -0
  110. data/sig/metronome_sdk/internal/transport/pooled_net_requester.rbs +4 -1
  111. data/sig/metronome_sdk/models/contract.rbs +2 -0
  112. data/sig/metronome_sdk/models/contract_v2.rbs +33 -6
  113. data/sig/metronome_sdk/models/subscription.rbs +22 -3
  114. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +28 -0
  115. data/sig/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbs +7 -0
  116. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +104 -0
  117. data/sig/metronome_sdk/models/v1/contract_list_balances_params.rbs +7 -0
  118. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +85 -0
  119. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbs +2 -0
  120. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbs +2 -0
  121. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbs +119 -0
  122. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +26 -1
  123. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +16 -0
  124. data/sig/metronome_sdk/models/v1/customers/billing_config_delete_params.rbs +2 -0
  125. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rbs +2 -0
  126. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +14 -0
  127. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +32 -0
  128. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +130 -0
  129. data/sig/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbs +7 -0
  130. data/sig/metronome_sdk/models/v1/payment.rbs +10 -3
  131. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbs +61 -0
  132. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rbs +13 -0
  133. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_params.rbs +66 -0
  134. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_response.rbs +34 -0
  135. data/sig/metronome_sdk/models/v1/settings/billing_provider_list_params.rbs +28 -0
  136. data/sig/metronome_sdk/models/v1/settings/billing_provider_list_response.rbs +102 -0
  137. data/sig/metronome_sdk/models/v1/usage_search_response.rbs +3 -1
  138. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +14 -0
  139. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +14 -0
  140. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +234 -3
  141. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +131 -3
  142. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  143. data/sig/metronome_sdk/resources/v1/contracts.rbs +3 -0
  144. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  145. data/sig/metronome_sdk/resources/v1/customers/billing_config.rbs +2 -0
  146. data/sig/metronome_sdk/resources/v1/customers.rbs +2 -1
  147. data/sig/metronome_sdk/resources/v1/settings/billing_providers.rbs +23 -0
  148. data/sig/metronome_sdk/resources/v1/settings.rbs +20 -0
  149. data/sig/metronome_sdk/resources/v1.rbs +2 -0
  150. data/sig/metronome_sdk/resources/v2/contracts.rbs +4 -0
  151. metadata +29 -2
@@ -24,6 +24,11 @@ module MetronomeSDK
24
24
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
25
25
  # directly on the subscription. `initial_quantity` must be provided with this
26
26
  # option. Compatible with recurring commits/credits that use POOLED allocation.
27
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
28
+ # user_123) to increment and decrement a subscription quantity, rather than
29
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
30
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
31
+ # provided with this option.
27
32
  #
28
33
  # @return [Symbol, MetronomeSDK::Models::Subscription::QuantityManagementMode]
29
34
  required :quantity_management_mode, enum: -> { MetronomeSDK::Subscription::QuantityManagementMode }
@@ -77,7 +82,12 @@ module MetronomeSDK
77
82
  # @return [String, nil]
78
83
  optional :name, String
79
84
 
80
- # @!method initialize(billing_periods:, collection_schedule:, proration:, quantity_management_mode:, quantity_schedule:, starting_at:, subscription_rate:, id: nil, custom_fields: nil, description: nil, ending_before: nil, fiat_credit_type_id: nil, name: nil)
85
+ # @!attribute seat_config
86
+ #
87
+ # @return [MetronomeSDK::Models::Subscription::SeatConfig, nil]
88
+ optional :seat_config, -> { MetronomeSDK::Subscription::SeatConfig }
89
+
90
+ # @!method initialize(billing_periods:, collection_schedule:, proration:, quantity_management_mode:, quantity_schedule:, starting_at:, subscription_rate:, id: nil, custom_fields: nil, description: nil, ending_before: nil, fiat_credit_type_id: nil, name: nil, seat_config: nil)
81
91
  # Some parameter documentations has been truncated, see
82
92
  # {MetronomeSDK::Models::Subscription} for more details.
83
93
  #
@@ -106,6 +116,8 @@ module MetronomeSDK
106
116
  # @param fiat_credit_type_id [String]
107
117
  #
108
118
  # @param name [String]
119
+ #
120
+ # @param seat_config [MetronomeSDK::Models::Subscription::SeatConfig]
109
121
 
110
122
  # @see MetronomeSDK::Models::Subscription#billing_periods
111
123
  class BillingPeriods < MetronomeSDK::Internal::Type::BaseModel
@@ -226,6 +238,11 @@ module MetronomeSDK
226
238
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
227
239
  # directly on the subscription. `initial_quantity` must be provided with this
228
240
  # option. Compatible with recurring commits/credits that use POOLED allocation.
241
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
242
+ # user_123) to increment and decrement a subscription quantity, rather than
243
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
244
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
245
+ # provided with this option.
229
246
  #
230
247
  # @see MetronomeSDK::Models::Subscription#quantity_management_mode
231
248
  module QuantityManagementMode
@@ -306,6 +323,26 @@ module MetronomeSDK
306
323
  # @param name [String]
307
324
  end
308
325
  end
326
+
327
+ # @see MetronomeSDK::Models::Subscription#seat_config
328
+ class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
329
+ # @!attribute seat_group_key
330
+ # The property name, sent on usage events, that identifies the seat ID associated
331
+ # with the usage event. For example, the property name might be seat_id or
332
+ # user_id. The property must be set as a group key on billable metrics and a
333
+ # presentation/pricing group key on contract products. This allows linked
334
+ # recurring credits with an allocation per seat to be consumed by only one seat's
335
+ # usage.
336
+ #
337
+ # @return [String]
338
+ required :seat_group_key, String
339
+
340
+ # @!method initialize(seat_group_key:)
341
+ # Some parameter documentations has been truncated, see
342
+ # {MetronomeSDK::Models::Subscription::SeatConfig} for more details.
343
+ #
344
+ # @param seat_group_key [String] The property name, sent on usage events, that identifies the seat ID associated
345
+ end
309
346
  end
310
347
  end
311
348
  end
@@ -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>]
@@ -1358,16 +1368,25 @@ module MetronomeSDK
1358
1368
  -> { MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::ParentBehavior }
1359
1369
 
1360
1370
  # @!attribute payer
1361
- # Indicates whether the parent should pay for the child's invoice charges
1371
+ # Account hierarchy M3 - Indicates which customer should pay for the child's
1372
+ # invoice charges
1373
+ #
1374
+ # **SELF**: The child pays for its own invoice charges
1375
+ #
1376
+ # **PARENT**: The parent pays for the child's invoice charges
1362
1377
  #
1363
1378
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration::Payer, nil]
1364
1379
  optional :payer, enum: -> { MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::Payer }
1365
1380
 
1366
1381
  # @!attribute usage_statement_behavior
1367
- # Indicates the behavior of the child's invoice statements on the parent's
1368
- # invoices **CONSOLIDATE**: Child's invoice statements will be added to parent's
1369
- # consolidated invoices **SEPARATE**: Child's invoice statements will appear not
1370
- # appear on parent's consolidated invoices
1382
+ # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
1383
+ # on the parent's invoices.
1384
+ #
1385
+ # **CONSOLIDATE**: Child's invoice statements will be added to parent's
1386
+ # consolidated invoices
1387
+ #
1388
+ # **SEPARATE**: Child's invoice statements will appear not appear on parent's
1389
+ # consolidated invoices
1371
1390
  #
1372
1391
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration::UsageStatementBehavior, nil]
1373
1392
  optional :usage_statement_behavior,
@@ -1382,9 +1401,9 @@ module MetronomeSDK
1382
1401
  #
1383
1402
  # @param parent_behavior [MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration::ParentBehavior]
1384
1403
  #
1385
- # @param payer [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration::Payer] Indicates whether the parent should pay for the child's invoice charges
1404
+ # @param payer [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration::Payer] Account hierarchy M3 - Indicates which customer should pay for the child's invoi
1386
1405
  #
1387
- # @param usage_statement_behavior [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration::UsageStatementBehavior] Indicates the behavior of the child's invoice statements on the parent's invoice
1406
+ # @param usage_statement_behavior [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration::UsageStatementBehavior] Account hierarchy M3 - Indicates the behavior of the child's invoice statements
1388
1407
 
1389
1408
  # @see MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration#parent
1390
1409
  class Parent < MetronomeSDK::Internal::Type::BaseModel
@@ -1406,10 +1425,13 @@ module MetronomeSDK
1406
1425
  # @see MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration#parent_behavior
1407
1426
  class ParentBehavior < MetronomeSDK::Internal::Type::BaseModel
1408
1427
  # @!attribute invoice_consolidation_type
1409
- # Indicates the desired behavior of consolidated invoices generated by the parent
1410
- # in a customer hierarchy **CONCATENATE**: Statements on the invoices of child
1411
- # customers will be appended to the consolidated invoice **NONE**: Do not generate
1412
- # consolidated invoices
1428
+ # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
1429
+ # generated by the parent in a customer hierarchy
1430
+ #
1431
+ # **CONCATENATE**: Statements on the invoices of child customers will be appended
1432
+ # to the consolidated invoice
1433
+ #
1434
+ # **NONE**: Do not generate consolidated invoices
1413
1435
  #
1414
1436
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration::ParentBehavior::InvoiceConsolidationType, nil]
1415
1437
  optional :invoice_consolidation_type,
@@ -1420,12 +1442,15 @@ module MetronomeSDK
1420
1442
  # {MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration::ParentBehavior}
1421
1443
  # for more details.
1422
1444
  #
1423
- # @param invoice_consolidation_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration::ParentBehavior::InvoiceConsolidationType] Indicates the desired behavior of consolidated invoices generated by the parent
1445
+ # @param invoice_consolidation_type [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration::ParentBehavior::InvoiceConsolidationType] Account hierarchy M3 - Indicates the desired behavior of consolidated invoices g
1424
1446
 
1425
- # Indicates the desired behavior of consolidated invoices generated by the parent
1426
- # in a customer hierarchy **CONCATENATE**: Statements on the invoices of child
1427
- # customers will be appended to the consolidated invoice **NONE**: Do not generate
1428
- # consolidated invoices
1447
+ # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
1448
+ # generated by the parent in a customer hierarchy
1449
+ #
1450
+ # **CONCATENATE**: Statements on the invoices of child customers will be appended
1451
+ # to the consolidated invoice
1452
+ #
1453
+ # **NONE**: Do not generate consolidated invoices
1429
1454
  #
1430
1455
  # @see MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration::ParentBehavior#invoice_consolidation_type
1431
1456
  module InvoiceConsolidationType
@@ -1439,7 +1464,12 @@ module MetronomeSDK
1439
1464
  end
1440
1465
  end
1441
1466
 
1442
- # Indicates whether the parent should pay for the child's invoice charges
1467
+ # Account hierarchy M3 - Indicates which customer should pay for the child's
1468
+ # invoice charges
1469
+ #
1470
+ # **SELF**: The child pays for its own invoice charges
1471
+ #
1472
+ # **PARENT**: The parent pays for the child's invoice charges
1443
1473
  #
1444
1474
  # @see MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration#payer
1445
1475
  module Payer
@@ -1452,10 +1482,14 @@ module MetronomeSDK
1452
1482
  # @return [Array<Symbol>]
1453
1483
  end
1454
1484
 
1455
- # Indicates the behavior of the child's invoice statements on the parent's
1456
- # invoices **CONSOLIDATE**: Child's invoice statements will be added to parent's
1457
- # consolidated invoices **SEPARATE**: Child's invoice statements will appear not
1458
- # appear on parent's consolidated invoices
1485
+ # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
1486
+ # on the parent's invoices.
1487
+ #
1488
+ # **CONSOLIDATE**: Child's invoice statements will be added to parent's
1489
+ # consolidated invoices
1490
+ #
1491
+ # **SEPARATE**: Child's invoice statements will appear not appear on parent's
1492
+ # consolidated invoices
1459
1493
  #
1460
1494
  # @see MetronomeSDK::Models::V1::ContractCreateParams::HierarchyConfiguration#usage_statement_behavior
1461
1495
  module UsageStatementBehavior
@@ -2223,20 +2257,25 @@ module MetronomeSDK
2223
2257
  required :subscription_id, String
2224
2258
 
2225
2259
  # @!attribute allocation
2226
- # If set to POOLED, allocation added per seat is pooled across the account.
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.
2227
2262
  #
2228
2263
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation, nil]
2229
2264
  optional :allocation,
2230
2265
  enum: -> { MetronomeSDK::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation }
2231
2266
 
2232
2267
  # @!method initialize(apply_seat_increase_config:, subscription_id:, allocation: nil)
2268
+ # Some parameter documentations has been truncated, see
2269
+ # {MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig}
2270
+ # for more details.
2271
+ #
2233
2272
  # Attach a subscription to the recurring commit/credit.
2234
2273
  #
2235
2274
  # @param apply_seat_increase_config [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::ApplySeatIncreaseConfig]
2236
2275
  #
2237
2276
  # @param subscription_id [String] ID of the subscription to configure on the recurring commit/credit.
2238
2277
  #
2239
- # @param allocation [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account.
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
2240
2279
 
2241
2280
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig#apply_seat_increase_config
2242
2281
  class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
@@ -2250,7 +2289,8 @@ module MetronomeSDK
2250
2289
  # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
2251
2290
  end
2252
2291
 
2253
- # If set to POOLED, allocation added per seat is pooled across the account.
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.
2254
2294
  #
2255
2295
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::SubscriptionConfig#allocation
2256
2296
  module Allocation
@@ -2564,20 +2604,25 @@ module MetronomeSDK
2564
2604
  required :subscription_id, String
2565
2605
 
2566
2606
  # @!attribute allocation
2567
- # If set to POOLED, allocation added per seat is pooled across the account.
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.
2568
2609
  #
2569
2610
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation, nil]
2570
2611
  optional :allocation,
2571
2612
  enum: -> { MetronomeSDK::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation }
2572
2613
 
2573
2614
  # @!method initialize(apply_seat_increase_config:, subscription_id:, allocation: nil)
2615
+ # Some parameter documentations has been truncated, see
2616
+ # {MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig}
2617
+ # for more details.
2618
+ #
2574
2619
  # Attach a subscription to the recurring commit/credit.
2575
2620
  #
2576
2621
  # @param apply_seat_increase_config [MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::ApplySeatIncreaseConfig]
2577
2622
  #
2578
2623
  # @param subscription_id [String] ID of the subscription to configure on the recurring commit/credit.
2579
2624
  #
2580
- # @param allocation [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig::Allocation] If set to POOLED, allocation added per seat is pooled across the account.
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
2581
2626
 
2582
2627
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig#apply_seat_increase_config
2583
2628
  class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
@@ -2591,7 +2636,8 @@ module MetronomeSDK
2591
2636
  # @param is_prorated [Boolean] Indicates whether a mid-period seat increase should be prorated.
2592
2637
  end
2593
2638
 
2594
- # If set to POOLED, allocation added per seat is pooled across the account.
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.
2595
2641
  #
2596
2642
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::SubscriptionConfig#allocation
2597
2643
  module Allocation
@@ -2735,6 +2781,72 @@ module MetronomeSDK
2735
2781
  end
2736
2782
  end
2737
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
+
2738
2850
  class ScheduledCharge < MetronomeSDK::Internal::Type::BaseModel
2739
2851
  # @!attribute product_id
2740
2852
  #
@@ -3034,11 +3146,21 @@ module MetronomeSDK
3034
3146
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
3035
3147
  # directly on the subscription. `initial_quantity` must be provided with this
3036
3148
  # option. Compatible with recurring commits/credits that use POOLED allocation.
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
3151
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
3152
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
3153
+ # provided with this option.
3037
3154
  #
3038
3155
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::QuantityManagementMode, nil]
3039
3156
  optional :quantity_management_mode,
3040
3157
  enum: -> { MetronomeSDK::V1::ContractCreateParams::Subscription::QuantityManagementMode }
3041
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
+
3042
3164
  # @!attribute starting_at
3043
3165
  # Inclusive start time for the subscription. If not provided, defaults to contract
3044
3166
  # start date
@@ -3053,7 +3175,7 @@ module MetronomeSDK
3053
3175
  # @return [String, nil]
3054
3176
  optional :temporary_id, String
3055
3177
 
3056
- # @!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)
3057
3179
  # Some parameter documentations has been truncated, see
3058
3180
  # {MetronomeSDK::Models::V1::ContractCreateParams::Subscription} for more details.
3059
3181
  #
@@ -3075,6 +3197,8 @@ module MetronomeSDK
3075
3197
  #
3076
3198
  # @param quantity_management_mode [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::Subscription::QuantityManagementMode] Determines how the subscription's quantity is controlled. Defaults to QUANTITY_O
3077
3199
  #
3200
+ # @param seat_config [MetronomeSDK::Models::V1::ContractCreateParams::Subscription::SeatConfig]
3201
+ #
3078
3202
  # @param starting_at [Time] Inclusive start time for the subscription. If not provided, defaults to contract
3079
3203
  #
3080
3204
  # @param temporary_id [String] A temporary ID used to reference the subscription in recurring commit/credit sub
@@ -3182,6 +3306,11 @@ module MetronomeSDK
3182
3306
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
3183
3307
  # directly on the subscription. `initial_quantity` must be provided with this
3184
3308
  # option. Compatible with recurring commits/credits that use POOLED allocation.
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
3311
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
3312
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
3313
+ # provided with this option.
3185
3314
  #
3186
3315
  # @see MetronomeSDK::Models::V1::ContractCreateParams::Subscription#quantity_management_mode
3187
3316
  module QuantityManagementMode
@@ -3193,6 +3322,43 @@ module MetronomeSDK
3193
3322
  # @!method self.values
3194
3323
  # @return [Array<Symbol>]
3195
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
3196
3362
  end
3197
3363
 
3198
3364
  class Transition < MetronomeSDK::Internal::Type::BaseModel
@@ -30,6 +30,12 @@ module MetronomeSDK
30
30
  # @return [Time, nil]
31
31
  optional :effective_before, Time
32
32
 
33
+ # @!attribute exclude_zero_balances
34
+ # Exclude balances with zero amounts from the response.
35
+ #
36
+ # @return [Boolean, nil]
37
+ optional :exclude_zero_balances, MetronomeSDK::Internal::Type::Boolean
38
+
33
39
  # @!attribute include_archived
34
40
  # Include archived credits and credits from archived contracts.
35
41
  #
@@ -74,7 +80,7 @@ module MetronomeSDK
74
80
  # @return [Time, nil]
75
81
  optional :starting_at, Time
76
82
 
77
- # @!method initialize(customer_id:, id: nil, covering_date: nil, effective_before: nil, include_archived: nil, include_balance: nil, include_contract_balances: nil, include_ledgers: nil, limit: nil, next_page: nil, starting_at: nil, request_options: {})
83
+ # @!method initialize(customer_id:, id: nil, covering_date: nil, effective_before: nil, exclude_zero_balances: nil, include_archived: nil, include_balance: nil, include_contract_balances: nil, include_ledgers: nil, limit: nil, next_page: nil, starting_at: nil, request_options: {})
78
84
  # Some parameter documentations has been truncated, see
79
85
  # {MetronomeSDK::Models::V1::ContractListBalancesParams} for more details.
80
86
  #
@@ -86,6 +92,8 @@ module MetronomeSDK
86
92
  #
87
93
  # @param effective_before [Time] Include only balances that have any access before the provided date (exclusive)
88
94
  #
95
+ # @param exclude_zero_balances [Boolean] Exclude balances with zero amounts from the response.
96
+ #
89
97
  # @param include_archived [Boolean] Include archived credits and credits from archived contracts.
90
98
  #
91
99
  # @param include_balance [Boolean] Include the balance of credits and commits in the response. Setting this flag ma