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
@@ -228,7 +228,7 @@ module MetronomeSDK
228
228
  # finalized invoice. You can void the invoice beforehand and then remove the
229
229
  # access schedule segment.
230
230
  #
231
- # @overload edit_commit(commit_id:, customer_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, hierarchy_configuration: nil, invoice_contract_id: nil, invoice_schedule: nil, priority: nil, product_id: nil, rate_type: nil, specifiers: nil, request_options: {})
231
+ # @overload edit_commit(commit_id:, customer_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, hierarchy_configuration: nil, invoice_contract_id: nil, invoice_schedule: nil, name: nil, priority: nil, product_id: nil, rate_type: nil, specifiers: nil, request_options: {})
232
232
  #
233
233
  # @param commit_id [String] ID of the commit to edit
234
234
  #
@@ -240,12 +240,16 @@ module MetronomeSDK
240
240
  #
241
241
  # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If applicable*product_ids, applicable_product*
242
242
  #
243
+ # @param description [String] Updated description for the commit
244
+ #
243
245
  # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for commit hierarchy access control
244
246
  #
245
247
  # @param invoice_contract_id [String] ID of contract to use for invoicing
246
248
  #
247
249
  # @param invoice_schedule [MetronomeSDK::Models::V2::ContractEditCommitParams::InvoiceSchedule]
248
250
  #
251
+ # @param name [String] Updated name for the commit
252
+ #
249
253
  # @param priority [Float, nil] If multiple commits are applicable, the one with the lower priority will apply f
250
254
  #
251
255
  # @param product_id [String]
@@ -290,7 +294,7 @@ module MetronomeSDK
290
294
  # invoice. You can void the invoice beforehand and then remove the access
291
295
  # schedule segment.
292
296
  #
293
- # @overload edit_credit(credit_id:, customer_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, hierarchy_configuration: nil, priority: nil, product_id: nil, rate_type: nil, specifiers: nil, request_options: {})
297
+ # @overload edit_credit(credit_id:, customer_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, hierarchy_configuration: nil, name: nil, priority: nil, product_id: nil, rate_type: nil, specifiers: nil, request_options: {})
294
298
  #
295
299
  # @param credit_id [String] ID of the credit to edit
296
300
  #
@@ -302,8 +306,12 @@ module MetronomeSDK
302
306
  #
303
307
  # @param applicable_product_tags [Array<String>, nil] Which tags the credit applies to. If both applicable*product_ids and applicable*
304
308
  #
309
+ # @param description [String] Updated description for the credit
310
+ #
305
311
  # @param hierarchy_configuration [MetronomeSDK::Models::CommitHierarchyConfiguration] Optional configuration for credit hierarchy access control
306
312
  #
313
+ # @param name [String] Updated name for the credit
314
+ #
307
315
  # @param priority [Float, nil] If multiple commits are applicable, the one with the lower priority will apply f
308
316
  #
309
317
  # @param product_id [String]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MetronomeSDK
4
- VERSION = "2.1.0"
4
+ VERSION = "3.0.0"
5
5
  end
data/lib/metronome_sdk.rb CHANGED
@@ -3,12 +3,14 @@
3
3
  # Standard libraries.
4
4
  # rubocop:disable Lint/RedundantRequireStatement
5
5
  require "English"
6
+ require "base64"
6
7
  require "cgi"
7
8
  require "date"
8
9
  require "erb"
9
10
  require "etc"
10
11
  require "json"
11
12
  require "net/http"
13
+ require "openssl"
12
14
  require "pathname"
13
15
  require "rbconfig"
14
16
  require "securerandom"
@@ -235,6 +237,7 @@ require_relative "metronome_sdk/models/v1/customers/plan_list_price_adjustments_
235
237
  require_relative "metronome_sdk/models/v1/customers/plan_list_price_adjustments_response"
236
238
  require_relative "metronome_sdk/models/v1/customers/plan_list_response"
237
239
  require_relative "metronome_sdk/models/v1/customer_set_billing_configurations_params"
240
+ require_relative "metronome_sdk/models/v1/customer_set_billing_configurations_response"
238
241
  require_relative "metronome_sdk/models/v1/customer_set_ingest_aliases_params"
239
242
  require_relative "metronome_sdk/models/v1/customer_set_name_params"
240
243
  require_relative "metronome_sdk/models/v1/customer_set_name_response"
data/manifest.yaml CHANGED
@@ -1,11 +1,13 @@
1
1
  dependencies:
2
2
  - English
3
+ - base64
3
4
  - cgi
4
5
  - date
5
6
  - erb
6
7
  - etc
7
8
  - json
8
9
  - net/http
10
+ - openssl
9
11
  - pathname
10
12
  - rbconfig
11
13
  - securerandom
@@ -180,6 +180,11 @@ module MetronomeSDK
180
180
  private def auth_headers
181
181
  end
182
182
 
183
+ # @api private
184
+ sig { returns(String) }
185
+ private def user_agent
186
+ end
187
+
183
188
  # @api private
184
189
  sig { returns(String) }
185
190
  private def generate_idempotency_key
@@ -26,8 +26,12 @@ module MetronomeSDK
26
26
 
27
27
  class << self
28
28
  # @api private
29
- sig { params(url: URI::Generic).returns(Net::HTTP) }
30
- def connect(url)
29
+ sig do
30
+ params(cert_store: OpenSSL::X509::Store, url: URI::Generic).returns(
31
+ Net::HTTP
32
+ )
33
+ end
34
+ def connect(cert_store:, url:)
31
35
  end
32
36
 
33
37
  # @api private
@@ -31,7 +31,7 @@ module MetronomeSDK
31
31
  #
32
32
  # Assumes superclass fields are totally defined before fields are accessed /
33
33
  # defined on subclasses.
34
- sig { params(child: T.self_type).void }
34
+ sig { params(child: MetronomeSDK::Internal::Type::BaseModel).void }
35
35
  def inherited(child)
36
36
  end
37
37
 
@@ -282,9 +282,13 @@ module MetronomeSDK
282
282
 
283
283
  # Create a new instance of a model.
284
284
  sig do
285
- params(data: T.any(T::Hash[Symbol, T.anything], T.self_type)).returns(
286
- T.attached_class
287
- )
285
+ params(
286
+ data:
287
+ T.any(
288
+ T::Hash[Symbol, T.anything],
289
+ MetronomeSDK::Internal::Type::BaseModel
290
+ )
291
+ ).returns(T.attached_class)
288
292
  end
289
293
  def self.new(data = {})
290
294
  end
@@ -195,6 +195,14 @@ module MetronomeSDK
195
195
  sig { params(rate_type: MetronomeSDK::Commit::RateType::OrSymbol).void }
196
196
  attr_writer :rate_type
197
197
 
198
+ # The ID of the recurring commit that this commit was generated from, if
199
+ # applicable.
200
+ sig { returns(T.nilable(String)) }
201
+ attr_reader :recurring_commit_id
202
+
203
+ sig { params(recurring_commit_id: String).void }
204
+ attr_writer :recurring_commit_id
205
+
198
206
  sig { returns(T.nilable(MetronomeSDK::Commit::RolledOverFrom)) }
199
207
  attr_reader :rolled_over_from
200
208
 
@@ -229,6 +237,18 @@ module MetronomeSDK
229
237
  end
230
238
  attr_writer :specifiers
231
239
 
240
+ # The subscription configuration for this commit, if it was generated from a
241
+ # recurring commit with a subscription attached.
242
+ sig { returns(T.nilable(MetronomeSDK::Commit::SubscriptionConfig)) }
243
+ attr_reader :subscription_config
244
+
245
+ sig do
246
+ params(
247
+ subscription_config: MetronomeSDK::Commit::SubscriptionConfig::OrHash
248
+ ).void
249
+ end
250
+ attr_writer :subscription_config
251
+
232
252
  # Prevents the creation of duplicates. If a request to create a commit or credit
233
253
  # is made with a uniqueness key that was previously used to create a commit or
234
254
  # credit, a new record will not be created and the request will fail with a 409
@@ -282,10 +302,12 @@ module MetronomeSDK
282
302
  netsuite_sales_order_id: String,
283
303
  priority: Float,
284
304
  rate_type: MetronomeSDK::Commit::RateType::OrSymbol,
305
+ recurring_commit_id: String,
285
306
  rolled_over_from: MetronomeSDK::Commit::RolledOverFrom::OrHash,
286
307
  rollover_fraction: Float,
287
308
  salesforce_opportunity_id: String,
288
309
  specifiers: T::Array[MetronomeSDK::CommitSpecifier::OrHash],
310
+ subscription_config: MetronomeSDK::Commit::SubscriptionConfig::OrHash,
289
311
  uniqueness_key: String
290
312
  ).returns(T.attached_class)
291
313
  end
@@ -339,6 +361,9 @@ module MetronomeSDK
339
361
  # will apply first.
340
362
  priority: nil,
341
363
  rate_type: nil,
364
+ # The ID of the recurring commit that this commit was generated from, if
365
+ # applicable.
366
+ recurring_commit_id: nil,
342
367
  rolled_over_from: nil,
343
368
  rollover_fraction: nil,
344
369
  # This field's availability is dependent on your client's configuration.
@@ -347,6 +372,9 @@ module MetronomeSDK
347
372
  # or credit. A customer's usage needs to meet the condition of at least one of the
348
373
  # specifiers to contribute to a commit's or credit's drawdown.
349
374
  specifiers: nil,
375
+ # The subscription configuration for this commit, if it was generated from a
376
+ # recurring commit with a subscription attached.
377
+ subscription_config: nil,
350
378
  # Prevents the creation of duplicates. If a request to create a commit or credit
351
379
  # is made with a uniqueness key that was previously used to create a commit or
352
380
  # credit, a new record will not be created and the request will fail with a 409
@@ -380,10 +408,12 @@ module MetronomeSDK
380
408
  netsuite_sales_order_id: String,
381
409
  priority: Float,
382
410
  rate_type: MetronomeSDK::Commit::RateType::TaggedSymbol,
411
+ recurring_commit_id: String,
383
412
  rolled_over_from: MetronomeSDK::Commit::RolledOverFrom,
384
413
  rollover_fraction: Float,
385
414
  salesforce_opportunity_id: String,
386
415
  specifiers: T::Array[MetronomeSDK::CommitSpecifier],
416
+ subscription_config: MetronomeSDK::Commit::SubscriptionConfig,
387
417
  uniqueness_key: String
388
418
  }
389
419
  )
@@ -1793,6 +1823,147 @@ module MetronomeSDK
1793
1823
  def to_hash
1794
1824
  end
1795
1825
  end
1826
+
1827
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
1828
+ OrHash =
1829
+ T.type_alias do
1830
+ T.any(
1831
+ MetronomeSDK::Commit::SubscriptionConfig,
1832
+ MetronomeSDK::Internal::AnyHash
1833
+ )
1834
+ end
1835
+
1836
+ sig do
1837
+ returns(
1838
+ T.nilable(
1839
+ MetronomeSDK::Commit::SubscriptionConfig::Allocation::TaggedSymbol
1840
+ )
1841
+ )
1842
+ end
1843
+ attr_reader :allocation
1844
+
1845
+ sig do
1846
+ params(
1847
+ allocation:
1848
+ MetronomeSDK::Commit::SubscriptionConfig::Allocation::OrSymbol
1849
+ ).void
1850
+ end
1851
+ attr_writer :allocation
1852
+
1853
+ sig do
1854
+ returns(
1855
+ T.nilable(
1856
+ MetronomeSDK::Commit::SubscriptionConfig::ApplySeatIncreaseConfig
1857
+ )
1858
+ )
1859
+ end
1860
+ attr_reader :apply_seat_increase_config
1861
+
1862
+ sig do
1863
+ params(
1864
+ apply_seat_increase_config:
1865
+ MetronomeSDK::Commit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash
1866
+ ).void
1867
+ end
1868
+ attr_writer :apply_seat_increase_config
1869
+
1870
+ sig { returns(T.nilable(String)) }
1871
+ attr_reader :subscription_id
1872
+
1873
+ sig { params(subscription_id: String).void }
1874
+ attr_writer :subscription_id
1875
+
1876
+ # The subscription configuration for this commit, if it was generated from a
1877
+ # recurring commit with a subscription attached.
1878
+ sig do
1879
+ params(
1880
+ allocation:
1881
+ MetronomeSDK::Commit::SubscriptionConfig::Allocation::OrSymbol,
1882
+ apply_seat_increase_config:
1883
+ MetronomeSDK::Commit::SubscriptionConfig::ApplySeatIncreaseConfig::OrHash,
1884
+ subscription_id: String
1885
+ ).returns(T.attached_class)
1886
+ end
1887
+ def self.new(
1888
+ allocation: nil,
1889
+ apply_seat_increase_config: nil,
1890
+ subscription_id: nil
1891
+ )
1892
+ end
1893
+
1894
+ sig do
1895
+ override.returns(
1896
+ {
1897
+ allocation:
1898
+ MetronomeSDK::Commit::SubscriptionConfig::Allocation::TaggedSymbol,
1899
+ apply_seat_increase_config:
1900
+ MetronomeSDK::Commit::SubscriptionConfig::ApplySeatIncreaseConfig,
1901
+ subscription_id: String
1902
+ }
1903
+ )
1904
+ end
1905
+ def to_hash
1906
+ end
1907
+
1908
+ module Allocation
1909
+ extend MetronomeSDK::Internal::Type::Enum
1910
+
1911
+ TaggedSymbol =
1912
+ T.type_alias do
1913
+ T.all(
1914
+ Symbol,
1915
+ MetronomeSDK::Commit::SubscriptionConfig::Allocation
1916
+ )
1917
+ end
1918
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1919
+
1920
+ INDIVIDUAL =
1921
+ T.let(
1922
+ :INDIVIDUAL,
1923
+ MetronomeSDK::Commit::SubscriptionConfig::Allocation::TaggedSymbol
1924
+ )
1925
+ POOLED =
1926
+ T.let(
1927
+ :POOLED,
1928
+ MetronomeSDK::Commit::SubscriptionConfig::Allocation::TaggedSymbol
1929
+ )
1930
+
1931
+ sig do
1932
+ override.returns(
1933
+ T::Array[
1934
+ MetronomeSDK::Commit::SubscriptionConfig::Allocation::TaggedSymbol
1935
+ ]
1936
+ )
1937
+ end
1938
+ def self.values
1939
+ end
1940
+ end
1941
+
1942
+ class ApplySeatIncreaseConfig < MetronomeSDK::Internal::Type::BaseModel
1943
+ OrHash =
1944
+ T.type_alias do
1945
+ T.any(
1946
+ MetronomeSDK::Commit::SubscriptionConfig::ApplySeatIncreaseConfig,
1947
+ MetronomeSDK::Internal::AnyHash
1948
+ )
1949
+ end
1950
+
1951
+ # Indicates whether a mid-period seat increase should be prorated.
1952
+ sig { returns(T::Boolean) }
1953
+ attr_accessor :is_prorated
1954
+
1955
+ sig { params(is_prorated: T::Boolean).returns(T.attached_class) }
1956
+ def self.new(
1957
+ # Indicates whether a mid-period seat increase should be prorated.
1958
+ is_prorated:
1959
+ )
1960
+ end
1961
+
1962
+ sig { override.returns({ is_prorated: T::Boolean }) }
1963
+ def to_hash
1964
+ end
1965
+ end
1966
+ end
1796
1967
  end
1797
1968
  end
1798
1969
  end
@@ -691,6 +691,13 @@ module MetronomeSDK
691
691
  end
692
692
  attr_writer :rate_type
693
693
 
694
+ # The ID of the recurring commit that created this commit
695
+ sig { returns(T.nilable(String)) }
696
+ attr_reader :recurring_commit_id
697
+
698
+ sig { params(recurring_commit_id: String).void }
699
+ attr_writer :recurring_commit_id
700
+
694
701
  sig do
695
702
  returns(T.nilable(MetronomeSDK::ContractV2::Commit::RolledOverFrom))
696
703
  end
@@ -730,6 +737,20 @@ module MetronomeSDK
730
737
  end
731
738
  attr_writer :specifiers
732
739
 
740
+ # Attach a subscription to the recurring commit/credit.
741
+ sig do
742
+ returns(T.nilable(MetronomeSDK::RecurringCommitSubscriptionConfig))
743
+ end
744
+ attr_reader :subscription_config
745
+
746
+ sig do
747
+ params(
748
+ subscription_config:
749
+ MetronomeSDK::RecurringCommitSubscriptionConfig::OrHash
750
+ ).void
751
+ end
752
+ attr_writer :subscription_config
753
+
733
754
  sig do
734
755
  params(
735
756
  id: String,
@@ -773,11 +794,14 @@ module MetronomeSDK
773
794
  netsuite_sales_order_id: String,
774
795
  priority: Float,
775
796
  rate_type: MetronomeSDK::ContractV2::Commit::RateType::OrSymbol,
797
+ recurring_commit_id: String,
776
798
  rolled_over_from:
777
799
  MetronomeSDK::ContractV2::Commit::RolledOverFrom::OrHash,
778
800
  rollover_fraction: Float,
779
801
  salesforce_opportunity_id: String,
780
- specifiers: T::Array[MetronomeSDK::CommitSpecifier::OrHash]
802
+ specifiers: T::Array[MetronomeSDK::CommitSpecifier::OrHash],
803
+ subscription_config:
804
+ MetronomeSDK::RecurringCommitSubscriptionConfig::OrHash
781
805
  ).returns(T.attached_class)
782
806
  end
783
807
  def self.new(
@@ -826,6 +850,8 @@ module MetronomeSDK
826
850
  # will apply first.
827
851
  priority: nil,
828
852
  rate_type: nil,
853
+ # The ID of the recurring commit that created this commit
854
+ recurring_commit_id: nil,
829
855
  rolled_over_from: nil,
830
856
  rollover_fraction: nil,
831
857
  # This field's availability is dependent on your client's configuration.
@@ -833,7 +859,9 @@ module MetronomeSDK
833
859
  # List of filters that determine what kind of customer usage draws down a commit
834
860
  # or credit. A customer's usage needs to meet the condition of at least one of the
835
861
  # specifiers to contribute to a commit's or credit's drawdown.
836
- specifiers: nil
862
+ specifiers: nil,
863
+ # Attach a subscription to the recurring commit/credit.
864
+ subscription_config: nil
837
865
  )
838
866
  end
839
867
 
@@ -865,11 +893,14 @@ module MetronomeSDK
865
893
  priority: Float,
866
894
  rate_type:
867
895
  MetronomeSDK::ContractV2::Commit::RateType::TaggedSymbol,
896
+ recurring_commit_id: String,
868
897
  rolled_over_from:
869
898
  MetronomeSDK::ContractV2::Commit::RolledOverFrom,
870
899
  rollover_fraction: Float,
871
900
  salesforce_opportunity_id: String,
872
- specifiers: T::Array[MetronomeSDK::CommitSpecifier]
901
+ specifiers: T::Array[MetronomeSDK::CommitSpecifier],
902
+ subscription_config:
903
+ MetronomeSDK::RecurringCommitSubscriptionConfig
873
904
  }
874
905
  )
875
906
  end
@@ -3202,6 +3233,16 @@ module MetronomeSDK
3202
3233
  end
3203
3234
  attr_writer :contract
3204
3235
 
3236
+ # Timestamp of when the credit was created.
3237
+ #
3238
+ # - Recurring credits: latter of credit service period date and parent credit
3239
+ # start date
3240
+ sig { returns(T.nilable(Time)) }
3241
+ attr_reader :created_at
3242
+
3243
+ sig { params(created_at: Time).void }
3244
+ attr_writer :created_at
3245
+
3205
3246
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
3206
3247
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
3207
3248
  attr_reader :custom_fields
@@ -3277,6 +3318,13 @@ module MetronomeSDK
3277
3318
  sig { params(priority: Float).void }
3278
3319
  attr_writer :priority
3279
3320
 
3321
+ # The ID of the recurring credit that created this credit
3322
+ sig { returns(T.nilable(String)) }
3323
+ attr_reader :recurring_credit_id
3324
+
3325
+ sig { params(recurring_credit_id: String).void }
3326
+ attr_writer :recurring_credit_id
3327
+
3280
3328
  # This field's availability is dependent on your client's configuration.
3281
3329
  sig { returns(T.nilable(String)) }
3282
3330
  attr_reader :salesforce_opportunity_id
@@ -3297,6 +3345,20 @@ module MetronomeSDK
3297
3345
  end
3298
3346
  attr_writer :specifiers
3299
3347
 
3348
+ # Attach a subscription to the recurring commit/credit.
3349
+ sig do
3350
+ returns(T.nilable(MetronomeSDK::RecurringCommitSubscriptionConfig))
3351
+ end
3352
+ attr_reader :subscription_config
3353
+
3354
+ sig do
3355
+ params(
3356
+ subscription_config:
3357
+ MetronomeSDK::RecurringCommitSubscriptionConfig::OrHash
3358
+ ).void
3359
+ end
3360
+ attr_writer :subscription_config
3361
+
3300
3362
  sig do
3301
3363
  params(
3302
3364
  id: String,
@@ -3308,6 +3370,7 @@ module MetronomeSDK
3308
3370
  applicable_product_tags: T::Array[String],
3309
3371
  balance: Float,
3310
3372
  contract: MetronomeSDK::ContractV2::Credit::Contract::OrHash,
3373
+ created_at: Time,
3311
3374
  custom_fields: T::Hash[Symbol, String],
3312
3375
  description: String,
3313
3376
  hierarchy_configuration:
@@ -3327,8 +3390,11 @@ module MetronomeSDK
3327
3390
  name: String,
3328
3391
  netsuite_sales_order_id: String,
3329
3392
  priority: Float,
3393
+ recurring_credit_id: String,
3330
3394
  salesforce_opportunity_id: String,
3331
- specifiers: T::Array[MetronomeSDK::CommitSpecifier::OrHash]
3395
+ specifiers: T::Array[MetronomeSDK::CommitSpecifier::OrHash],
3396
+ subscription_config:
3397
+ MetronomeSDK::RecurringCommitSubscriptionConfig::OrHash
3332
3398
  ).returns(T.attached_class)
3333
3399
  end
3334
3400
  def self.new(
@@ -3350,6 +3416,11 @@ module MetronomeSDK
3350
3416
  # included in the balance, including future-dated manual ledger entries.
3351
3417
  balance: nil,
3352
3418
  contract: nil,
3419
+ # Timestamp of when the credit was created.
3420
+ #
3421
+ # - Recurring credits: latter of credit service period date and parent credit
3422
+ # start date
3423
+ created_at: nil,
3353
3424
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
3354
3425
  custom_fields: nil,
3355
3426
  description: nil,
@@ -3364,12 +3435,16 @@ module MetronomeSDK
3364
3435
  # If multiple credits or commits are applicable, the one with the lower priority
3365
3436
  # will apply first.
3366
3437
  priority: nil,
3438
+ # The ID of the recurring credit that created this credit
3439
+ recurring_credit_id: nil,
3367
3440
  # This field's availability is dependent on your client's configuration.
3368
3441
  salesforce_opportunity_id: nil,
3369
3442
  # List of filters that determine what kind of customer usage draws down a commit
3370
3443
  # or credit. A customer's usage needs to meet the condition of at least one of the
3371
3444
  # specifiers to contribute to a commit's or credit's drawdown.
3372
- specifiers: nil
3445
+ specifiers: nil,
3446
+ # Attach a subscription to the recurring commit/credit.
3447
+ subscription_config: nil
3373
3448
  )
3374
3449
  end
3375
3450
 
@@ -3385,6 +3460,7 @@ module MetronomeSDK
3385
3460
  applicable_product_tags: T::Array[String],
3386
3461
  balance: Float,
3387
3462
  contract: MetronomeSDK::ContractV2::Credit::Contract,
3463
+ created_at: Time,
3388
3464
  custom_fields: T::Hash[Symbol, String],
3389
3465
  description: String,
3390
3466
  hierarchy_configuration:
@@ -3394,8 +3470,11 @@ module MetronomeSDK
3394
3470
  name: String,
3395
3471
  netsuite_sales_order_id: String,
3396
3472
  priority: Float,
3473
+ recurring_credit_id: String,
3397
3474
  salesforce_opportunity_id: String,
3398
- specifiers: T::Array[MetronomeSDK::CommitSpecifier]
3475
+ specifiers: T::Array[MetronomeSDK::CommitSpecifier],
3476
+ subscription_config:
3477
+ MetronomeSDK::RecurringCommitSubscriptionConfig
3399
3478
  }
3400
3479
  )
3401
3480
  end