metronome-sdk 3.7.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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +38 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +4 -1
  5. data/lib/metronome_sdk/models/commit.rb +10 -1
  6. data/lib/metronome_sdk/models/contract_v2.rb +290 -7
  7. data/lib/metronome_sdk/models/contract_without_amendments.rb +178 -4
  8. data/lib/metronome_sdk/models/credit.rb +10 -1
  9. data/lib/metronome_sdk/models/override.rb +7 -1
  10. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +10 -2
  11. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +3 -1
  12. data/lib/metronome_sdk/models/subscription.rb +90 -2
  13. data/lib/metronome_sdk/models/v1/alert_create_params.rb +127 -1
  14. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +17 -4
  15. data/lib/metronome_sdk/models/v1/contract_create_params.rb +290 -10
  16. data/lib/metronome_sdk/models/v1/contract_create_response.rb +178 -4
  17. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rb +88 -0
  18. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rb +62 -0
  19. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +10 -1
  20. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +127 -1
  21. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +130 -3
  22. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +10 -1
  23. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  24. data/lib/metronome_sdk/models/v1/package_create_params.rb +279 -10
  25. data/lib/metronome_sdk/models/v1/package_list_response.rb +264 -7
  26. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +264 -7
  27. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +515 -9
  28. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +456 -8
  29. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +456 -8
  30. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  31. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +4 -0
  32. data/lib/metronome_sdk/resources/v1/contracts.rb +68 -1
  33. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +4 -2
  34. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +3 -1
  35. data/lib/metronome_sdk/resources/v1/dashboards.rb +7 -2
  36. data/lib/metronome_sdk/version.rb +1 -1
  37. data/lib/metronome_sdk.rb +2 -0
  38. data/rbi/metronome_sdk/models/commit.rbi +13 -0
  39. data/rbi/metronome_sdk/models/contract_v2.rbi +715 -3
  40. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +463 -0
  41. data/rbi/metronome_sdk/models/credit.rbi +13 -0
  42. data/rbi/metronome_sdk/models/override.rbi +9 -0
  43. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +11 -1
  44. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +4 -0
  45. data/rbi/metronome_sdk/models/subscription.rbi +212 -3
  46. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +373 -0
  47. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +27 -6
  48. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +719 -9
  49. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +463 -0
  50. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbi +112 -0
  51. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbi +119 -0
  52. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +13 -0
  53. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +360 -0
  54. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +379 -2
  55. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +13 -0
  56. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  57. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +706 -9
  58. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +693 -3
  59. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +693 -3
  60. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +1333 -40
  61. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +1204 -67
  62. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1204 -67
  63. data/rbi/metronome_sdk/resources/v1/alerts.rbi +8 -0
  64. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +4 -0
  65. data/rbi/metronome_sdk/resources/v1/contracts.rbi +70 -0
  66. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +8 -1
  67. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +4 -0
  68. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +7 -2
  69. data/sig/metronome_sdk/models/commit.rbs +7 -0
  70. data/sig/metronome_sdk/models/contract_v2.rbs +278 -5
  71. data/sig/metronome_sdk/models/contract_without_amendments.rbs +169 -2
  72. data/sig/metronome_sdk/models/credit.rbs +7 -0
  73. data/sig/metronome_sdk/models/override.rbs +7 -0
  74. data/sig/metronome_sdk/models/subscription.rbs +88 -3
  75. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +144 -0
  76. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +7 -0
  77. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +278 -5
  78. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +167 -2
  79. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbs +63 -0
  80. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbs +59 -0
  81. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +7 -0
  82. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +141 -0
  83. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +150 -0
  84. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +8 -1
  85. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  86. data/sig/metronome_sdk/models/v1/package_create_params.rbs +271 -5
  87. data/sig/metronome_sdk/models/v1/package_list_response.rbs +265 -5
  88. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +263 -5
  89. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +468 -5
  90. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +428 -5
  91. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +427 -5
  92. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  93. data/sig/metronome_sdk/resources/v1/contracts.rbs +13 -0
  94. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  95. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -0
  96. metadata +8 -2
@@ -0,0 +1,119 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ module V1
6
+ class ContractGetSubscriptionSeatsHistoryResponse < MetronomeSDK::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ MetronomeSDK::Models::V1::ContractGetSubscriptionSeatsHistoryResponse,
11
+ MetronomeSDK::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig do
16
+ returns(
17
+ T::Array[
18
+ MetronomeSDK::Models::V1::ContractGetSubscriptionSeatsHistoryResponse::Data
19
+ ]
20
+ )
21
+ end
22
+ attr_accessor :data
23
+
24
+ # Cursor for the next page of results
25
+ sig { returns(T.nilable(String)) }
26
+ attr_accessor :next_page
27
+
28
+ sig do
29
+ params(
30
+ data:
31
+ T::Array[
32
+ MetronomeSDK::Models::V1::ContractGetSubscriptionSeatsHistoryResponse::Data::OrHash
33
+ ],
34
+ next_page: T.nilable(String)
35
+ ).returns(T.attached_class)
36
+ end
37
+ def self.new(
38
+ data:,
39
+ # Cursor for the next page of results
40
+ next_page:
41
+ )
42
+ end
43
+
44
+ sig do
45
+ override.returns(
46
+ {
47
+ data:
48
+ T::Array[
49
+ MetronomeSDK::Models::V1::ContractGetSubscriptionSeatsHistoryResponse::Data
50
+ ],
51
+ next_page: T.nilable(String)
52
+ }
53
+ )
54
+ end
55
+ def to_hash
56
+ end
57
+
58
+ class Data < MetronomeSDK::Internal::Type::BaseModel
59
+ OrHash =
60
+ T.type_alias do
61
+ T.any(
62
+ MetronomeSDK::Models::V1::ContractGetSubscriptionSeatsHistoryResponse::Data,
63
+ MetronomeSDK::Internal::AnyHash
64
+ )
65
+ end
66
+
67
+ # Array of seat IDs that are assigned in this period
68
+ sig { returns(T::Array[String]) }
69
+ attr_accessor :assigned_seat_ids
70
+
71
+ # The end time of this seat schedule period (null if ongoing)
72
+ sig { returns(T.nilable(Time)) }
73
+ attr_accessor :ending_before
74
+
75
+ # The start time of this seat schedule period
76
+ sig { returns(Time) }
77
+ attr_accessor :starting_at
78
+
79
+ # Total number of assigned and unassigned seats in this period
80
+ sig { returns(Integer) }
81
+ attr_accessor :total_quantity
82
+
83
+ sig do
84
+ params(
85
+ assigned_seat_ids: T::Array[String],
86
+ ending_before: T.nilable(Time),
87
+ starting_at: Time,
88
+ total_quantity: Integer
89
+ ).returns(T.attached_class)
90
+ end
91
+ def self.new(
92
+ # Array of seat IDs that are assigned in this period
93
+ assigned_seat_ids:,
94
+ # The end time of this seat schedule period (null if ongoing)
95
+ ending_before:,
96
+ # The start time of this seat schedule period
97
+ starting_at:,
98
+ # Total number of assigned and unassigned seats in this period
99
+ total_quantity:
100
+ )
101
+ end
102
+
103
+ sig do
104
+ override.returns(
105
+ {
106
+ assigned_seat_ids: T::Array[String],
107
+ ending_before: T.nilable(Time),
108
+ starting_at: Time,
109
+ total_quantity: Integer
110
+ }
111
+ )
112
+ end
113
+ def to_hash
114
+ end
115
+ end
116
+ end
117
+ end
118
+ end
119
+ end
@@ -81,6 +81,14 @@ module MetronomeSDK
81
81
  sig { params(seat_ids: T::Array[String]).void }
82
82
  attr_writer :seat_ids
83
83
 
84
+ # When true, any seat_ids not found in contract subscriptions will be silently
85
+ # omitted from the response instead of returning a 400 error.
86
+ sig { returns(T.nilable(T::Boolean)) }
87
+ attr_reader :skip_missing_seat_ids
88
+
89
+ sig { params(skip_missing_seat_ids: T::Boolean).void }
90
+ attr_writer :skip_missing_seat_ids
91
+
84
92
  # Include only commits or credits with access effective on or after this date
85
93
  # (cannot be used with covering_date).
86
94
  sig { returns(T.nilable(Time)) }
@@ -109,6 +117,7 @@ module MetronomeSDK
109
117
  include_ledgers: T::Boolean,
110
118
  limit: Integer,
111
119
  seat_ids: T::Array[String],
120
+ skip_missing_seat_ids: T::Boolean,
112
121
  starting_at: Time,
113
122
  subscription_ids: T::Array[String],
114
123
  request_options: MetronomeSDK::RequestOptions::OrHash
@@ -142,6 +151,9 @@ module MetronomeSDK
142
151
  limit: nil,
143
152
  # Optional filter to only include specific seats.
144
153
  seat_ids: nil,
154
+ # When true, any seat_ids not found in contract subscriptions will be silently
155
+ # omitted from the response instead of returning a 400 error.
156
+ skip_missing_seat_ids: nil,
145
157
  # Include only commits or credits with access effective on or after this date
146
158
  # (cannot be used with covering_date).
147
159
  starting_at: nil,
@@ -165,6 +177,7 @@ module MetronomeSDK
165
177
  include_ledgers: T::Boolean,
166
178
  limit: Integer,
167
179
  seat_ids: T::Array[String],
180
+ skip_missing_seat_ids: T::Boolean,
168
181
  starting_at: Time,
169
182
  subscription_ids: T::Array[String],
170
183
  request_options: MetronomeSDK::RequestOptions
@@ -24,6 +24,29 @@ module MetronomeSDK
24
24
  sig { returns(String) }
25
25
  attr_accessor :customer_id
26
26
 
27
+ # Can be used with only `low_remaining_contract_credit_and_commit_balance_reached`
28
+ # notifications. Used to filter the alert by the custom field key-value pair.
29
+ sig do
30
+ returns(
31
+ T.nilable(
32
+ T::Array[
33
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier
34
+ ]
35
+ )
36
+ )
37
+ end
38
+ attr_reader :alert_specifiers
39
+
40
+ sig do
41
+ params(
42
+ alert_specifiers:
43
+ T::Array[
44
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::OrHash
45
+ ]
46
+ ).void
47
+ end
48
+ attr_writer :alert_specifiers
49
+
27
50
  # Only present for `spend_threshold_reached` notifications. Retrieve the
28
51
  # notification for a specific group key-value pair.
29
52
  sig do
@@ -89,6 +112,10 @@ module MetronomeSDK
89
112
  params(
90
113
  alert_id: String,
91
114
  customer_id: String,
115
+ alert_specifiers:
116
+ T::Array[
117
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::OrHash
118
+ ],
92
119
  group_values:
93
120
  T::Array[
94
121
  MetronomeSDK::V1::Customers::AlertRetrieveParams::GroupValue::OrHash
@@ -105,6 +132,9 @@ module MetronomeSDK
105
132
  alert_id:,
106
133
  # The Metronome ID of the customer
107
134
  customer_id:,
135
+ # Can be used with only `low_remaining_contract_credit_and_commit_balance_reached`
136
+ # notifications. Used to filter the alert by the custom field key-value pair.
137
+ alert_specifiers: nil,
108
138
  # Only present for `spend_threshold_reached` notifications. Retrieve the
109
139
  # notification for a specific group key-value pair.
110
140
  group_values: nil,
@@ -123,6 +153,10 @@ module MetronomeSDK
123
153
  {
124
154
  alert_id: String,
125
155
  customer_id: String,
156
+ alert_specifiers:
157
+ T::Array[
158
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier
159
+ ],
126
160
  group_values:
127
161
  T::Array[
128
162
  MetronomeSDK::V1::Customers::AlertRetrieveParams::GroupValue
@@ -138,6 +172,332 @@ module MetronomeSDK
138
172
  def to_hash
139
173
  end
140
174
 
175
+ class AlertSpecifier < MetronomeSDK::Internal::Type::BaseModel
176
+ OrHash =
177
+ T.type_alias do
178
+ T.any(
179
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier,
180
+ MetronomeSDK::Internal::AnyHash
181
+ )
182
+ end
183
+
184
+ # A list of custom field filters for notification types that support advanced
185
+ # filtering
186
+ sig do
187
+ returns(
188
+ T::Array[
189
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::CustomFieldFilter
190
+ ]
191
+ )
192
+ end
193
+ attr_accessor :custom_field_filters
194
+
195
+ # If provided, the specifier will not apply to balances that matches the inclusion
196
+ # criteria and any of the excluding values.
197
+ sig do
198
+ returns(
199
+ T.nilable(
200
+ T::Array[
201
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude
202
+ ]
203
+ )
204
+ )
205
+ end
206
+ attr_reader :exclude
207
+
208
+ sig do
209
+ params(
210
+ exclude:
211
+ T::Array[
212
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::OrHash
213
+ ]
214
+ ).void
215
+ end
216
+ attr_writer :exclude
217
+
218
+ sig do
219
+ params(
220
+ custom_field_filters:
221
+ T::Array[
222
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::CustomFieldFilter::OrHash
223
+ ],
224
+ exclude:
225
+ T::Array[
226
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::OrHash
227
+ ]
228
+ ).returns(T.attached_class)
229
+ end
230
+ def self.new(
231
+ # A list of custom field filters for notification types that support advanced
232
+ # filtering
233
+ custom_field_filters:,
234
+ # If provided, the specifier will not apply to balances that matches the inclusion
235
+ # criteria and any of the excluding values.
236
+ exclude: nil
237
+ )
238
+ end
239
+
240
+ sig do
241
+ override.returns(
242
+ {
243
+ custom_field_filters:
244
+ T::Array[
245
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::CustomFieldFilter
246
+ ],
247
+ exclude:
248
+ T::Array[
249
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude
250
+ ]
251
+ }
252
+ )
253
+ end
254
+ def to_hash
255
+ end
256
+
257
+ class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
258
+ OrHash =
259
+ T.type_alias do
260
+ T.any(
261
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::CustomFieldFilter,
262
+ MetronomeSDK::Internal::AnyHash
263
+ )
264
+ end
265
+
266
+ sig do
267
+ returns(
268
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::CustomFieldFilter::Entity::OrSymbol
269
+ )
270
+ end
271
+ attr_accessor :entity
272
+
273
+ sig { returns(String) }
274
+ attr_accessor :key
275
+
276
+ sig { returns(String) }
277
+ attr_accessor :value
278
+
279
+ sig do
280
+ params(
281
+ entity:
282
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::CustomFieldFilter::Entity::OrSymbol,
283
+ key: String,
284
+ value: String
285
+ ).returns(T.attached_class)
286
+ end
287
+ def self.new(entity:, key:, value:)
288
+ end
289
+
290
+ sig do
291
+ override.returns(
292
+ {
293
+ entity:
294
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::CustomFieldFilter::Entity::OrSymbol,
295
+ key: String,
296
+ value: String
297
+ }
298
+ )
299
+ end
300
+ def to_hash
301
+ end
302
+
303
+ module Entity
304
+ extend MetronomeSDK::Internal::Type::Enum
305
+
306
+ TaggedSymbol =
307
+ T.type_alias do
308
+ T.all(
309
+ Symbol,
310
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::CustomFieldFilter::Entity
311
+ )
312
+ end
313
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
314
+
315
+ CONTRACT =
316
+ T.let(
317
+ :Contract,
318
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::CustomFieldFilter::Entity::TaggedSymbol
319
+ )
320
+ COMMIT =
321
+ T.let(
322
+ :Commit,
323
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::CustomFieldFilter::Entity::TaggedSymbol
324
+ )
325
+ CONTRACT_CREDIT =
326
+ T.let(
327
+ :ContractCredit,
328
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::CustomFieldFilter::Entity::TaggedSymbol
329
+ )
330
+ CONTRACT_CREDIT_OR_COMMIT =
331
+ T.let(
332
+ :ContractCreditOrCommit,
333
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::CustomFieldFilter::Entity::TaggedSymbol
334
+ )
335
+
336
+ sig do
337
+ override.returns(
338
+ T::Array[
339
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::CustomFieldFilter::Entity::TaggedSymbol
340
+ ]
341
+ )
342
+ end
343
+ def self.values
344
+ end
345
+ end
346
+ end
347
+
348
+ class Exclude < MetronomeSDK::Internal::Type::BaseModel
349
+ OrHash =
350
+ T.type_alias do
351
+ T.any(
352
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude,
353
+ MetronomeSDK::Internal::AnyHash
354
+ )
355
+ end
356
+
357
+ # A list of custom field filters for notification types that support advanced
358
+ # filtering
359
+ sig do
360
+ returns(
361
+ T.nilable(
362
+ T::Array[
363
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::CustomFieldFilter
364
+ ]
365
+ )
366
+ )
367
+ end
368
+ attr_reader :custom_field_filters
369
+
370
+ sig do
371
+ params(
372
+ custom_field_filters:
373
+ T::Array[
374
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::CustomFieldFilter::OrHash
375
+ ]
376
+ ).void
377
+ end
378
+ attr_writer :custom_field_filters
379
+
380
+ sig do
381
+ params(
382
+ custom_field_filters:
383
+ T::Array[
384
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::CustomFieldFilter::OrHash
385
+ ]
386
+ ).returns(T.attached_class)
387
+ end
388
+ def self.new(
389
+ # A list of custom field filters for notification types that support advanced
390
+ # filtering
391
+ custom_field_filters: nil
392
+ )
393
+ end
394
+
395
+ sig do
396
+ override.returns(
397
+ {
398
+ custom_field_filters:
399
+ T::Array[
400
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::CustomFieldFilter
401
+ ]
402
+ }
403
+ )
404
+ end
405
+ def to_hash
406
+ end
407
+
408
+ class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
409
+ OrHash =
410
+ T.type_alias do
411
+ T.any(
412
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::CustomFieldFilter,
413
+ MetronomeSDK::Internal::AnyHash
414
+ )
415
+ end
416
+
417
+ sig do
418
+ returns(
419
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::CustomFieldFilter::Entity::OrSymbol
420
+ )
421
+ end
422
+ attr_accessor :entity
423
+
424
+ sig { returns(String) }
425
+ attr_accessor :key
426
+
427
+ sig { returns(String) }
428
+ attr_accessor :value
429
+
430
+ sig do
431
+ params(
432
+ entity:
433
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::CustomFieldFilter::Entity::OrSymbol,
434
+ key: String,
435
+ value: String
436
+ ).returns(T.attached_class)
437
+ end
438
+ def self.new(entity:, key:, value:)
439
+ end
440
+
441
+ sig do
442
+ override.returns(
443
+ {
444
+ entity:
445
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::CustomFieldFilter::Entity::OrSymbol,
446
+ key: String,
447
+ value: String
448
+ }
449
+ )
450
+ end
451
+ def to_hash
452
+ end
453
+
454
+ module Entity
455
+ extend MetronomeSDK::Internal::Type::Enum
456
+
457
+ TaggedSymbol =
458
+ T.type_alias do
459
+ T.all(
460
+ Symbol,
461
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::CustomFieldFilter::Entity
462
+ )
463
+ end
464
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
465
+
466
+ CONTRACT =
467
+ T.let(
468
+ :Contract,
469
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
470
+ )
471
+ COMMIT =
472
+ T.let(
473
+ :Commit,
474
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
475
+ )
476
+ CONTRACT_CREDIT =
477
+ T.let(
478
+ :ContractCredit,
479
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
480
+ )
481
+ CONTRACT_CREDIT_OR_COMMIT =
482
+ T.let(
483
+ :ContractCreditOrCommit,
484
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
485
+ )
486
+
487
+ sig do
488
+ override.returns(
489
+ T::Array[
490
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::AlertSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
491
+ ]
492
+ )
493
+ end
494
+ def self.values
495
+ end
496
+ end
497
+ end
498
+ end
499
+ end
500
+
141
501
  class GroupValue < MetronomeSDK::Internal::Type::BaseModel
142
502
  OrHash =
143
503
  T.type_alias do