metronome-sdk 3.6.0 → 3.8.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 (141) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +54 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +4 -1
  5. data/lib/metronome_sdk/internal/type/enum.rb +0 -25
  6. data/lib/metronome_sdk/models/commit.rb +36 -1
  7. data/lib/metronome_sdk/models/contract.rb +140 -1
  8. data/lib/metronome_sdk/models/contract_v2.rb +457 -8
  9. data/lib/metronome_sdk/models/contract_without_amendments.rb +320 -5
  10. data/lib/metronome_sdk/models/credit.rb +10 -1
  11. data/lib/metronome_sdk/models/override.rb +7 -1
  12. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +113 -2
  13. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +105 -2
  14. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +33 -1
  15. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +33 -1
  16. data/lib/metronome_sdk/models/subscription.rb +90 -2
  17. data/lib/metronome_sdk/models/v1/alert_create_params.rb +127 -1
  18. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +46 -5
  19. data/lib/metronome_sdk/models/v1/contract_create_params.rb +436 -12
  20. data/lib/metronome_sdk/models/v1/contract_create_response.rb +1308 -3
  21. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rb +88 -0
  22. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rb +62 -0
  23. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +10 -1
  24. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +127 -1
  25. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +130 -3
  26. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +10 -1
  27. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  28. data/lib/metronome_sdk/models/v1/package_create_params.rb +394 -11
  29. data/lib/metronome_sdk/models/v1/package_list_response.rb +374 -8
  30. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +378 -8
  31. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +817 -13
  32. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +4310 -3
  33. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +600 -10
  34. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  35. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +4 -0
  36. data/lib/metronome_sdk/resources/v1/contracts.rb +71 -2
  37. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +4 -2
  38. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +3 -1
  39. data/lib/metronome_sdk/resources/v1/dashboards.rb +7 -2
  40. data/lib/metronome_sdk/resources/v1/packages.rb +6 -5
  41. data/lib/metronome_sdk/resources/v1.rb +0 -4
  42. data/lib/metronome_sdk/resources/v2/contracts.rb +5 -1
  43. data/lib/metronome_sdk/version.rb +1 -1
  44. data/lib/metronome_sdk.rb +2 -8
  45. data/rbi/metronome_sdk/models/commit.rbi +61 -0
  46. data/rbi/metronome_sdk/models/contract.rbi +354 -0
  47. data/rbi/metronome_sdk/models/contract_v2.rbi +1132 -11
  48. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +831 -0
  49. data/rbi/metronome_sdk/models/credit.rbi +13 -0
  50. data/rbi/metronome_sdk/models/override.rbi +9 -0
  51. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +299 -6
  52. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +287 -6
  53. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +78 -3
  54. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -3
  55. data/rbi/metronome_sdk/models/subscription.rbi +212 -3
  56. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +373 -0
  57. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +81 -6
  58. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1095 -17
  59. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +2911 -4
  60. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbi +112 -0
  61. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbi +119 -0
  62. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +13 -0
  63. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +360 -0
  64. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +379 -2
  65. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +13 -0
  66. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  67. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +1049 -42
  68. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +1051 -54
  69. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +1051 -54
  70. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +2130 -114
  71. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +9749 -4
  72. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1567 -82
  73. data/rbi/metronome_sdk/resources/v1/alerts.rbi +8 -0
  74. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +4 -0
  75. data/rbi/metronome_sdk/resources/v1/contracts.rbi +77 -0
  76. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +8 -1
  77. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +4 -0
  78. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +7 -2
  79. data/rbi/metronome_sdk/resources/v1/packages.rbi +8 -4
  80. data/rbi/metronome_sdk/resources/v1.rbi +0 -3
  81. data/rbi/metronome_sdk/resources/v2/contracts.rbi +10 -0
  82. data/sig/metronome_sdk/models/commit.rbs +26 -0
  83. data/sig/metronome_sdk/models/contract.rbs +151 -0
  84. data/sig/metronome_sdk/models/contract_v2.rbs +448 -5
  85. data/sig/metronome_sdk/models/contract_without_amendments.rbs +320 -2
  86. data/sig/metronome_sdk/models/credit.rbs +7 -0
  87. data/sig/metronome_sdk/models/override.rbs +7 -0
  88. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +116 -6
  89. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +116 -6
  90. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +31 -3
  91. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +31 -3
  92. data/sig/metronome_sdk/models/subscription.rbs +88 -3
  93. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +144 -0
  94. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +26 -0
  95. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +412 -5
  96. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +1210 -4
  97. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbs +63 -0
  98. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbs +59 -0
  99. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +7 -0
  100. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +141 -0
  101. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +150 -0
  102. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +8 -1
  103. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  104. data/sig/metronome_sdk/models/v1/package_create_params.rbs +386 -5
  105. data/sig/metronome_sdk/models/v1/package_list_response.rbs +380 -5
  106. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +378 -5
  107. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +751 -14
  108. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +4215 -4
  109. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +569 -14
  110. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  111. data/sig/metronome_sdk/resources/v1/contracts.rbs +14 -0
  112. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  113. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -0
  114. data/sig/metronome_sdk/resources/v1/packages.rbs +1 -0
  115. data/sig/metronome_sdk/resources/v1.rbs +0 -2
  116. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  117. metadata +8 -26
  118. data/lib/metronome_sdk/models/v1/payment.rb +0 -196
  119. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +0 -28
  120. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +0 -18
  121. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +0 -28
  122. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +0 -18
  123. data/lib/metronome_sdk/models/v1/payment_list_params.rb +0 -53
  124. data/lib/metronome_sdk/models/v1/payment_status.rb +0 -19
  125. data/lib/metronome_sdk/resources/v1/payments.rb +0 -102
  126. data/rbi/metronome_sdk/models/v1/payment.rbi +0 -403
  127. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +0 -48
  128. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +0 -35
  129. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +0 -48
  130. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +0 -35
  131. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +0 -91
  132. data/rbi/metronome_sdk/models/v1/payment_status.rbi +0 -33
  133. data/rbi/metronome_sdk/resources/v1/payments.rbi +0 -72
  134. data/sig/metronome_sdk/models/v1/payment.rbs +0 -243
  135. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +0 -30
  136. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +0 -15
  137. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +0 -30
  138. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +0 -15
  139. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +0 -56
  140. data/sig/metronome_sdk/models/v1/payment_status.rbs +0 -19
  141. data/sig/metronome_sdk/resources/v1/payments.rbs +0 -30
@@ -67,6 +67,14 @@ module MetronomeSDK
67
67
  sig { params(contract: MetronomeSDK::Credit::Contract::OrHash).void }
68
68
  attr_writer :contract
69
69
 
70
+ # The actor who created this credit. Omitted for system-generated credits such as
71
+ # recurring credits.
72
+ sig { returns(T.nilable(String)) }
73
+ attr_reader :created_by
74
+
75
+ sig { params(created_by: String).void }
76
+ attr_writer :created_by
77
+
70
78
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
71
79
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
72
80
  attr_reader :custom_fields
@@ -214,6 +222,7 @@ module MetronomeSDK
214
222
  applicable_product_tags: T::Array[String],
215
223
  balance: Float,
216
224
  contract: MetronomeSDK::Credit::Contract::OrHash,
225
+ created_by: String,
217
226
  custom_fields: T::Hash[Symbol, String],
218
227
  description: String,
219
228
  hierarchy_configuration:
@@ -262,6 +271,9 @@ module MetronomeSDK
262
271
  # included in the balance, including future-dated manual ledger entries.
263
272
  balance: nil,
264
273
  contract: nil,
274
+ # The actor who created this credit. Omitted for system-generated credits such as
275
+ # recurring credits.
276
+ created_by: nil,
265
277
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
266
278
  custom_fields: nil,
267
279
  description: nil,
@@ -310,6 +322,7 @@ module MetronomeSDK
310
322
  applicable_product_tags: T::Array[String],
311
323
  balance: Float,
312
324
  contract: MetronomeSDK::Credit::Contract,
325
+ created_by: String,
313
326
  custom_fields: T::Hash[Symbol, String],
314
327
  description: String,
315
328
  hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
@@ -252,6 +252,12 @@ module MetronomeSDK
252
252
  )
253
253
  end
254
254
 
255
+ sig { returns(T.nilable(T::Array[String])) }
256
+ attr_reader :any_commit_or_credit_ids
257
+
258
+ sig { params(any_commit_or_credit_ids: T::Array[String]).void }
259
+ attr_writer :any_commit_or_credit_ids
260
+
255
261
  sig do
256
262
  returns(
257
263
  T.nilable(
@@ -311,6 +317,7 @@ module MetronomeSDK
311
317
 
312
318
  sig do
313
319
  params(
320
+ any_commit_or_credit_ids: T::Array[String],
314
321
  billing_frequency:
315
322
  MetronomeSDK::Override::OverrideSpecifier::BillingFrequency::OrSymbol,
316
323
  commit_ids: T::Array[String],
@@ -322,6 +329,7 @@ module MetronomeSDK
322
329
  ).returns(T.attached_class)
323
330
  end
324
331
  def self.new(
332
+ any_commit_or_credit_ids: nil,
325
333
  billing_frequency: nil,
326
334
  commit_ids: nil,
327
335
  presentation_group_values: nil,
@@ -335,6 +343,7 @@ module MetronomeSDK
335
343
  sig do
336
344
  override.returns(
337
345
  {
346
+ any_commit_or_credit_ids: T::Array[String],
338
347
  billing_frequency:
339
348
  MetronomeSDK::Override::OverrideSpecifier::BillingFrequency::TaggedSymbol,
340
349
  commit_ids: T::Array[String],
@@ -74,6 +74,29 @@ module MetronomeSDK
74
74
  end
75
75
  attr_writer :discount_configuration
76
76
 
77
+ # Determines which balances are excluded from remaining balance calculation for
78
+ # threshold billing.
79
+ sig do
80
+ returns(
81
+ T.nilable(
82
+ T::Array[
83
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier
84
+ ]
85
+ )
86
+ )
87
+ end
88
+ attr_reader :threshold_balance_specifiers
89
+
90
+ sig do
91
+ params(
92
+ threshold_balance_specifiers:
93
+ T::Array[
94
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::OrHash
95
+ ]
96
+ ).void
97
+ end
98
+ attr_writer :threshold_balance_specifiers
99
+
77
100
  sig do
78
101
  params(
79
102
  commit:
@@ -84,7 +107,11 @@ module MetronomeSDK
84
107
  threshold_amount: Float,
85
108
  custom_credit_type_id: String,
86
109
  discount_configuration:
87
- MetronomeSDK::PrepaidBalanceThresholdConfiguration::DiscountConfiguration::OrHash
110
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::DiscountConfiguration::OrHash,
111
+ threshold_balance_specifiers:
112
+ T::Array[
113
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::OrHash
114
+ ]
88
115
  ).returns(T.attached_class)
89
116
  end
90
117
  def self.new(
@@ -102,7 +129,10 @@ module MetronomeSDK
102
129
  # If provided, the threshold, recharge-to amount, and the resulting threshold
103
130
  # commit amount will be in terms of this credit type instead of the fiat currency.
104
131
  custom_credit_type_id: nil,
105
- discount_configuration: nil
132
+ discount_configuration: nil,
133
+ # Determines which balances are excluded from remaining balance calculation for
134
+ # threshold billing.
135
+ threshold_balance_specifiers: nil
106
136
  )
107
137
  end
108
138
 
@@ -116,7 +146,11 @@ module MetronomeSDK
116
146
  threshold_amount: Float,
117
147
  custom_credit_type_id: String,
118
148
  discount_configuration:
119
- MetronomeSDK::PrepaidBalanceThresholdConfiguration::DiscountConfiguration
149
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::DiscountConfiguration,
150
+ threshold_balance_specifiers:
151
+ T::Array[
152
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier
153
+ ]
120
154
  }
121
155
  )
122
156
  end
@@ -216,18 +250,277 @@ module MetronomeSDK
216
250
  sig { returns(Float) }
217
251
  attr_accessor :payment_fraction
218
252
 
219
- sig { params(payment_fraction: Float).returns(T.attached_class) }
253
+ # If provided, the discount stops applying once the spend tracker has accumulated
254
+ # this much spend in the billing period.
255
+ sig do
256
+ returns(
257
+ T.nilable(
258
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::DiscountConfiguration::Cap
259
+ )
260
+ )
261
+ end
262
+ attr_reader :cap
263
+
264
+ sig do
265
+ params(
266
+ cap:
267
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::DiscountConfiguration::Cap::OrHash
268
+ ).void
269
+ end
270
+ attr_writer :cap
271
+
272
+ sig do
273
+ params(
274
+ payment_fraction: Float,
275
+ cap:
276
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::DiscountConfiguration::Cap::OrHash
277
+ ).returns(T.attached_class)
278
+ end
220
279
  def self.new(
221
280
  # The fraction of the original amount that the customer pays after applying the
222
281
  # discount. For example, 0.85 means the customer pays 85% of the original amount
223
282
  # (a 15% discount).
224
- payment_fraction:
283
+ payment_fraction:,
284
+ # If provided, the discount stops applying once the spend tracker has accumulated
285
+ # this much spend in the billing period.
286
+ cap: nil
225
287
  )
226
288
  end
227
289
 
228
- sig { override.returns({ payment_fraction: Float }) }
290
+ sig do
291
+ override.returns(
292
+ {
293
+ payment_fraction: Float,
294
+ cap:
295
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::DiscountConfiguration::Cap
296
+ }
297
+ )
298
+ end
229
299
  def to_hash
230
300
  end
301
+
302
+ class Cap < MetronomeSDK::Internal::Type::BaseModel
303
+ OrHash =
304
+ T.type_alias do
305
+ T.any(
306
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::DiscountConfiguration::Cap,
307
+ MetronomeSDK::Internal::AnyHash
308
+ )
309
+ end
310
+
311
+ # Accumulated spend ceiling above which the discount stops applying.
312
+ sig { returns(Float) }
313
+ attr_accessor :amount
314
+
315
+ # Alias of the spend tracker this cap is measured against.
316
+ sig { returns(String) }
317
+ attr_accessor :spend_tracker_alias
318
+
319
+ # If provided, the discount stops applying once the spend tracker has accumulated
320
+ # this much spend in the billing period.
321
+ sig do
322
+ params(amount: Float, spend_tracker_alias: String).returns(
323
+ T.attached_class
324
+ )
325
+ end
326
+ def self.new(
327
+ # Accumulated spend ceiling above which the discount stops applying.
328
+ amount:,
329
+ # Alias of the spend tracker this cap is measured against.
330
+ spend_tracker_alias:
331
+ )
332
+ end
333
+
334
+ sig do
335
+ override.returns({ amount: Float, spend_tracker_alias: String })
336
+ end
337
+ def to_hash
338
+ end
339
+ end
340
+ end
341
+
342
+ class ThresholdBalanceSpecifier < MetronomeSDK::Internal::Type::BaseModel
343
+ OrHash =
344
+ T.type_alias do
345
+ T.any(
346
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier,
347
+ MetronomeSDK::Internal::AnyHash
348
+ )
349
+ end
350
+
351
+ # If any of the exclude specifier is met, the balance is not considered when
352
+ # evaluating threshold billing
353
+ sig do
354
+ returns(
355
+ T::Array[
356
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude
357
+ ]
358
+ )
359
+ end
360
+ attr_accessor :exclude
361
+
362
+ sig do
363
+ params(
364
+ exclude:
365
+ T::Array[
366
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::OrHash
367
+ ]
368
+ ).returns(T.attached_class)
369
+ end
370
+ def self.new(
371
+ # If any of the exclude specifier is met, the balance is not considered when
372
+ # evaluating threshold billing
373
+ exclude:
374
+ )
375
+ end
376
+
377
+ sig do
378
+ override.returns(
379
+ {
380
+ exclude:
381
+ T::Array[
382
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude
383
+ ]
384
+ }
385
+ )
386
+ end
387
+ def to_hash
388
+ end
389
+
390
+ class Exclude < MetronomeSDK::Internal::Type::BaseModel
391
+ OrHash =
392
+ T.type_alias do
393
+ T.any(
394
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude,
395
+ MetronomeSDK::Internal::AnyHash
396
+ )
397
+ end
398
+
399
+ # If provided, balances with all the custom fields will not be considered when
400
+ # evaluating threshold billing
401
+ sig do
402
+ returns(
403
+ T::Array[
404
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter
405
+ ]
406
+ )
407
+ end
408
+ attr_accessor :custom_field_filters
409
+
410
+ sig do
411
+ params(
412
+ custom_field_filters:
413
+ T::Array[
414
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::OrHash
415
+ ]
416
+ ).returns(T.attached_class)
417
+ end
418
+ def self.new(
419
+ # If provided, balances with all the custom fields will not be considered when
420
+ # evaluating threshold billing
421
+ custom_field_filters:
422
+ )
423
+ end
424
+
425
+ sig do
426
+ override.returns(
427
+ {
428
+ custom_field_filters:
429
+ T::Array[
430
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter
431
+ ]
432
+ }
433
+ )
434
+ end
435
+ def to_hash
436
+ end
437
+
438
+ class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
439
+ OrHash =
440
+ T.type_alias do
441
+ T.any(
442
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter,
443
+ MetronomeSDK::Internal::AnyHash
444
+ )
445
+ end
446
+
447
+ sig do
448
+ returns(
449
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::OrSymbol
450
+ )
451
+ end
452
+ attr_accessor :entity
453
+
454
+ sig { returns(String) }
455
+ attr_accessor :key
456
+
457
+ sig { returns(String) }
458
+ attr_accessor :value
459
+
460
+ sig do
461
+ params(
462
+ entity:
463
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::OrSymbol,
464
+ key: String,
465
+ value: String
466
+ ).returns(T.attached_class)
467
+ end
468
+ def self.new(entity:, key:, value:)
469
+ end
470
+
471
+ sig do
472
+ override.returns(
473
+ {
474
+ entity:
475
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::OrSymbol,
476
+ key: String,
477
+ value: String
478
+ }
479
+ )
480
+ end
481
+ def to_hash
482
+ end
483
+
484
+ module Entity
485
+ extend MetronomeSDK::Internal::Type::Enum
486
+
487
+ TaggedSymbol =
488
+ T.type_alias do
489
+ T.all(
490
+ Symbol,
491
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity
492
+ )
493
+ end
494
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
495
+
496
+ COMMIT =
497
+ T.let(
498
+ :Commit,
499
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
500
+ )
501
+ CONTRACT_CREDIT =
502
+ T.let(
503
+ :ContractCredit,
504
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
505
+ )
506
+ CONTRACT_CREDIT_OR_COMMIT =
507
+ T.let(
508
+ :ContractCreditOrCommit,
509
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
510
+ )
511
+
512
+ sig do
513
+ override.returns(
514
+ T::Array[
515
+ MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
516
+ ]
517
+ )
518
+ end
519
+ def self.values
520
+ end
521
+ end
522
+ end
523
+ end
231
524
  end
232
525
  end
233
526
  end