prelude-sdk 0.7.0 → 0.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 (118) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +3 -5
  4. data/lib/prelude_sdk/client.rb +4 -0
  5. data/lib/prelude_sdk/internal/type/base_model.rb +5 -5
  6. data/lib/prelude_sdk/models/intel/kyc_match_params.rb +96 -0
  7. data/lib/prelude_sdk/models/intel/kyc_match_response.rb +305 -0
  8. data/lib/prelude_sdk/models/notify_reply_params.rb +60 -0
  9. data/lib/prelude_sdk/models/notify_reply_response.rb +65 -0
  10. data/lib/prelude_sdk/models/signals.rb +125 -0
  11. data/lib/prelude_sdk/models/target.rb +39 -0
  12. data/lib/prelude_sdk/models/verification/phone/history_list_params.rb +177 -0
  13. data/lib/prelude_sdk/models/verification/phone/history_list_response.rb +286 -0
  14. data/lib/prelude_sdk/models/verification/phone/history_retrieve_params.rb +24 -0
  15. data/lib/prelude_sdk/models/verification/phone/history_retrieve_response.rb +890 -0
  16. data/lib/prelude_sdk/models/verification/phone/phone_verification_carrier.rb +29 -0
  17. data/lib/prelude_sdk/models/verification/phone/phone_verification_money.rb +35 -0
  18. data/lib/prelude_sdk/models/verification/phone/phone_verification_psd2_transaction.rb +29 -0
  19. data/lib/prelude_sdk/models/verification_check_params.rb +3 -38
  20. data/lib/prelude_sdk/models/verification_create_params.rb +6 -161
  21. data/lib/prelude_sdk/models/verification_management/sandbox_add_phone_number_params.rb +37 -0
  22. data/lib/prelude_sdk/models/verification_management/sandbox_add_phone_number_response.rb +27 -0
  23. data/lib/prelude_sdk/models/verification_management/sandbox_delete_phone_number_params.rb +22 -0
  24. data/lib/prelude_sdk/models/verification_management/sandbox_delete_phone_number_response.rb +19 -0
  25. data/lib/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_params.rb +16 -0
  26. data/lib/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_response.rb +47 -0
  27. data/lib/prelude_sdk/models/watch_evaluate_params.rb +68 -0
  28. data/lib/prelude_sdk/models/watch_evaluate_response.rb +266 -0
  29. data/lib/prelude_sdk/models/watch_predict_params.rb +6 -160
  30. data/lib/prelude_sdk/models/watch_send_events_params.rb +3 -38
  31. data/lib/prelude_sdk/models/watch_send_feedbacks_params.rb +3 -38
  32. data/lib/prelude_sdk/models.rb +14 -0
  33. data/lib/prelude_sdk/resources/intel/kyc.rb +62 -0
  34. data/lib/prelude_sdk/resources/intel.rb +20 -0
  35. data/lib/prelude_sdk/resources/notify.rb +35 -0
  36. data/lib/prelude_sdk/resources/verification/phone/history.rb +104 -0
  37. data/lib/prelude_sdk/resources/verification/phone.rb +21 -0
  38. data/lib/prelude_sdk/resources/verification.rb +7 -3
  39. data/lib/prelude_sdk/resources/verification_management/sandbox.rb +99 -0
  40. data/lib/prelude_sdk/resources/verification_management.rb +5 -0
  41. data/lib/prelude_sdk/resources/watch.rb +45 -2
  42. data/lib/prelude_sdk/version.rb +1 -1
  43. data/lib/prelude_sdk.rb +26 -0
  44. data/rbi/prelude_sdk/client.rbi +3 -0
  45. data/rbi/prelude_sdk/models/intel/kyc_match_params.rbi +147 -0
  46. data/rbi/prelude_sdk/models/intel/kyc_match_response.rbi +736 -0
  47. data/rbi/prelude_sdk/models/notify_reply_params.rbi +87 -0
  48. data/rbi/prelude_sdk/models/notify_reply_response.rbi +94 -0
  49. data/rbi/prelude_sdk/models/signals.rbi +200 -0
  50. data/rbi/prelude_sdk/models/target.rbi +61 -0
  51. data/rbi/prelude_sdk/models/verification/phone/history_list_params.rbi +436 -0
  52. data/rbi/prelude_sdk/models/verification/phone/history_list_response.rbi +661 -0
  53. data/rbi/prelude_sdk/models/verification/phone/history_retrieve_params.rbi +42 -0
  54. data/rbi/prelude_sdk/models/verification/phone/history_retrieve_response.rbi +2229 -0
  55. data/rbi/prelude_sdk/models/verification/phone/phone_verification_carrier.rbi +39 -0
  56. data/rbi/prelude_sdk/models/verification/phone/phone_verification_money.rbi +46 -0
  57. data/rbi/prelude_sdk/models/verification/phone/phone_verification_psd2_transaction.rbi +68 -0
  58. data/rbi/prelude_sdk/models/verification_check_params.rbi +4 -85
  59. data/rbi/prelude_sdk/models/verification_create_params.rbi +8 -328
  60. data/rbi/prelude_sdk/models/verification_management/sandbox_add_phone_number_params.rbi +58 -0
  61. data/rbi/prelude_sdk/models/verification_management/sandbox_add_phone_number_response.rbi +42 -0
  62. data/rbi/prelude_sdk/models/verification_management/sandbox_delete_phone_number_params.rbi +43 -0
  63. data/rbi/prelude_sdk/models/verification_management/sandbox_delete_phone_number_response.rbi +32 -0
  64. data/rbi/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_params.rbi +34 -0
  65. data/rbi/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_response.rbi +101 -0
  66. data/rbi/prelude_sdk/models/watch_evaluate_params.rbi +109 -0
  67. data/rbi/prelude_sdk/models/watch_evaluate_response.rbi +496 -0
  68. data/rbi/prelude_sdk/models/watch_predict_params.rbi +8 -320
  69. data/rbi/prelude_sdk/models/watch_send_events_params.rbi +4 -93
  70. data/rbi/prelude_sdk/models/watch_send_feedbacks_params.rbi +4 -95
  71. data/rbi/prelude_sdk/models.rbi +14 -0
  72. data/rbi/prelude_sdk/resources/intel/kyc.rbi +61 -0
  73. data/rbi/prelude_sdk/resources/intel.rbi +17 -0
  74. data/rbi/prelude_sdk/resources/notify.rbi +31 -0
  75. data/rbi/prelude_sdk/resources/verification/phone/history.rbi +112 -0
  76. data/rbi/prelude_sdk/resources/verification/phone.rbi +18 -0
  77. data/rbi/prelude_sdk/resources/verification.rbi +6 -3
  78. data/rbi/prelude_sdk/resources/verification_management/sandbox.rbi +76 -0
  79. data/rbi/prelude_sdk/resources/verification_management.rbi +4 -0
  80. data/rbi/prelude_sdk/resources/watch.rbi +49 -2
  81. data/sig/prelude_sdk/client.rbs +2 -0
  82. data/sig/prelude_sdk/models/intel/kyc_match_params.rbs +91 -0
  83. data/sig/prelude_sdk/models/intel/kyc_match_response.rbs +276 -0
  84. data/sig/prelude_sdk/models/notify_reply_params.rbs +50 -0
  85. data/sig/prelude_sdk/models/notify_reply_response.rbs +54 -0
  86. data/sig/prelude_sdk/models/signals.rbs +101 -0
  87. data/sig/prelude_sdk/models/target.rbs +29 -0
  88. data/sig/prelude_sdk/models/verification/phone/history_list_params.rbs +187 -0
  89. data/sig/prelude_sdk/models/verification/phone/history_list_response.rbs +241 -0
  90. data/sig/prelude_sdk/models/verification/phone/history_retrieve_params.rbs +27 -0
  91. data/sig/prelude_sdk/models/verification/phone/history_retrieve_response.rbs +873 -0
  92. data/sig/prelude_sdk/models/verification/phone/phone_verification_carrier.rbs +23 -0
  93. data/sig/prelude_sdk/models/verification/phone/phone_verification_money.rbs +21 -0
  94. data/sig/prelude_sdk/models/verification/phone/phone_verification_psd2_transaction.rbs +37 -0
  95. data/sig/prelude_sdk/models/verification_check_params.rbs +4 -37
  96. data/sig/prelude_sdk/models/verification_create_params.rbs +9 -142
  97. data/sig/prelude_sdk/models/verification_management/sandbox_add_phone_number_params.rbs +30 -0
  98. data/sig/prelude_sdk/models/verification_management/sandbox_add_phone_number_response.rbs +18 -0
  99. data/sig/prelude_sdk/models/verification_management/sandbox_delete_phone_number_params.rbs +26 -0
  100. data/sig/prelude_sdk/models/verification_management/sandbox_delete_phone_number_response.rbs +15 -0
  101. data/sig/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_params.rbs +17 -0
  102. data/sig/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_response.rbs +45 -0
  103. data/sig/prelude_sdk/models/watch_evaluate_params.rbs +52 -0
  104. data/sig/prelude_sdk/models/watch_evaluate_response.rbs +178 -0
  105. data/sig/prelude_sdk/models/watch_predict_params.rbs +9 -142
  106. data/sig/prelude_sdk/models/watch_send_events_params.rbs +4 -37
  107. data/sig/prelude_sdk/models/watch_send_feedbacks_params.rbs +4 -37
  108. data/sig/prelude_sdk/models.rbs +14 -0
  109. data/sig/prelude_sdk/resources/intel/kyc.rbs +23 -0
  110. data/sig/prelude_sdk/resources/intel.rbs +9 -0
  111. data/sig/prelude_sdk/resources/notify.rbs +9 -0
  112. data/sig/prelude_sdk/resources/verification/phone/history.rbs +32 -0
  113. data/sig/prelude_sdk/resources/verification/phone.rbs +11 -0
  114. data/sig/prelude_sdk/resources/verification.rbs +5 -3
  115. data/sig/prelude_sdk/resources/verification_management/sandbox.rbs +24 -0
  116. data/sig/prelude_sdk/resources/verification_management.rbs +2 -0
  117. data/sig/prelude_sdk/resources/watch.rbs +11 -2
  118. metadata +79 -1
@@ -0,0 +1,496 @@
1
+ # typed: strong
2
+
3
+ module PreludeSDK
4
+ module Models
5
+ class WatchEvaluateResponse < PreludeSDK::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ PreludeSDK::Models::WatchEvaluateResponse,
10
+ PreludeSDK::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The evaluation identifier.
15
+ sig { returns(String) }
16
+ attr_accessor :id
17
+
18
+ # What the evaluation suggests you do, being the most severe action across the
19
+ # recipes that ran. Advisory: enforcement is yours.
20
+ #
21
+ # - `ALLOW` - Let the request through.
22
+ # - `BLOCK` - Refuse the request.
23
+ # - `CHALLENGE` - Let the request through behind an additional check.
24
+ sig do
25
+ returns(PreludeSDK::Models::WatchEvaluateResponse::Action::TaggedSymbol)
26
+ end
27
+ attr_accessor :action
28
+
29
+ # One result per recipe that ran. A recipe the flow names but that is not in
30
+ # service is absent rather than reported as having passed.
31
+ sig do
32
+ returns(T::Array[PreludeSDK::Models::WatchEvaluateResponse::Recipe])
33
+ end
34
+ attr_accessor :recipes
35
+
36
+ # The evaluation-level verdict, being the most severe verdict across the recipes
37
+ # that ran.
38
+ #
39
+ # - `PASS` - No recipe flagged.
40
+ # - `FLAG` - At least one recipe flagged.
41
+ sig do
42
+ returns(
43
+ PreludeSDK::Models::WatchEvaluateResponse::Verdict::TaggedSymbol
44
+ )
45
+ end
46
+ attr_accessor :verdict
47
+
48
+ sig do
49
+ params(
50
+ id: String,
51
+ action: PreludeSDK::Models::WatchEvaluateResponse::Action::OrSymbol,
52
+ recipes:
53
+ T::Array[PreludeSDK::Models::WatchEvaluateResponse::Recipe::OrHash],
54
+ verdict: PreludeSDK::Models::WatchEvaluateResponse::Verdict::OrSymbol
55
+ ).returns(T.attached_class)
56
+ end
57
+ def self.new(
58
+ # The evaluation identifier.
59
+ id:,
60
+ # What the evaluation suggests you do, being the most severe action across the
61
+ # recipes that ran. Advisory: enforcement is yours.
62
+ #
63
+ # - `ALLOW` - Let the request through.
64
+ # - `BLOCK` - Refuse the request.
65
+ # - `CHALLENGE` - Let the request through behind an additional check.
66
+ action:,
67
+ # One result per recipe that ran. A recipe the flow names but that is not in
68
+ # service is absent rather than reported as having passed.
69
+ recipes:,
70
+ # The evaluation-level verdict, being the most severe verdict across the recipes
71
+ # that ran.
72
+ #
73
+ # - `PASS` - No recipe flagged.
74
+ # - `FLAG` - At least one recipe flagged.
75
+ verdict:
76
+ )
77
+ end
78
+
79
+ sig do
80
+ override.returns(
81
+ {
82
+ id: String,
83
+ action:
84
+ PreludeSDK::Models::WatchEvaluateResponse::Action::TaggedSymbol,
85
+ recipes:
86
+ T::Array[PreludeSDK::Models::WatchEvaluateResponse::Recipe],
87
+ verdict:
88
+ PreludeSDK::Models::WatchEvaluateResponse::Verdict::TaggedSymbol
89
+ }
90
+ )
91
+ end
92
+ def to_hash
93
+ end
94
+
95
+ # What the evaluation suggests you do, being the most severe action across the
96
+ # recipes that ran. Advisory: enforcement is yours.
97
+ #
98
+ # - `ALLOW` - Let the request through.
99
+ # - `BLOCK` - Refuse the request.
100
+ # - `CHALLENGE` - Let the request through behind an additional check.
101
+ module Action
102
+ extend PreludeSDK::Internal::Type::Enum
103
+
104
+ TaggedSymbol =
105
+ T.type_alias do
106
+ T.all(Symbol, PreludeSDK::Models::WatchEvaluateResponse::Action)
107
+ end
108
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
109
+
110
+ ALLOW =
111
+ T.let(
112
+ :ALLOW,
113
+ PreludeSDK::Models::WatchEvaluateResponse::Action::TaggedSymbol
114
+ )
115
+ BLOCK =
116
+ T.let(
117
+ :BLOCK,
118
+ PreludeSDK::Models::WatchEvaluateResponse::Action::TaggedSymbol
119
+ )
120
+ CHALLENGE =
121
+ T.let(
122
+ :CHALLENGE,
123
+ PreludeSDK::Models::WatchEvaluateResponse::Action::TaggedSymbol
124
+ )
125
+
126
+ sig do
127
+ override.returns(
128
+ T::Array[
129
+ PreludeSDK::Models::WatchEvaluateResponse::Action::TaggedSymbol
130
+ ]
131
+ )
132
+ end
133
+ def self.values
134
+ end
135
+ end
136
+
137
+ class Recipe < PreludeSDK::Internal::Type::BaseModel
138
+ OrHash =
139
+ T.type_alias do
140
+ T.any(
141
+ PreludeSDK::Models::WatchEvaluateResponse::Recipe,
142
+ PreludeSDK::Internal::AnyHash
143
+ )
144
+ end
145
+
146
+ # At least one rule could not be evaluated, so the score rests on less than the
147
+ # whole recipe. The score is still returned — a partial verdict is more useful
148
+ # than none — but it is labeled rather than passed off as whole.
149
+ sig { returns(T::Boolean) }
150
+ attr_accessor :partial_evidence
151
+
152
+ # The recipe that produced this result.
153
+ sig { returns(String) }
154
+ attr_accessor :recipe_id
155
+
156
+ # One result per rule in the recipe, in membership order. Every rule runs — a
157
+ # score is only meaningful when complete, so there is no short-circuit on the
158
+ # first trigger.
159
+ sig do
160
+ returns(
161
+ T::Array[PreludeSDK::Models::WatchEvaluateResponse::Recipe::Rule]
162
+ )
163
+ end
164
+ attr_accessor :rules
165
+
166
+ # The sum of the weights of the rules that triggered, clamped to the range -100
167
+ # to 100. Two scores at a bound are not comparable.
168
+ sig { returns(Integer) }
169
+ attr_accessor :score
170
+
171
+ # The score at or above which this recipe flags.
172
+ sig { returns(Integer) }
173
+ attr_accessor :threshold
174
+
175
+ # This recipe's own verdict. Normally the score against the threshold, unless a
176
+ # preempting rule fired — see `determined_by`.
177
+ sig do
178
+ returns(
179
+ PreludeSDK::Models::WatchEvaluateResponse::Recipe::Verdict::TaggedSymbol
180
+ )
181
+ end
182
+ attr_accessor :verdict
183
+
184
+ # The preempting rule that set `verdict`, present only when a rule rather than the
185
+ # score decided it. Without it a recipe can report a score under its threshold and
186
+ # still flag, with nothing in the payload accounting for the difference.
187
+ sig { returns(T.nilable(String)) }
188
+ attr_reader :determined_by
189
+
190
+ sig { params(determined_by: String).void }
191
+ attr_writer :determined_by
192
+
193
+ sig do
194
+ params(
195
+ partial_evidence: T::Boolean,
196
+ recipe_id: String,
197
+ rules:
198
+ T::Array[
199
+ PreludeSDK::Models::WatchEvaluateResponse::Recipe::Rule::OrHash
200
+ ],
201
+ score: Integer,
202
+ threshold: Integer,
203
+ verdict:
204
+ PreludeSDK::Models::WatchEvaluateResponse::Recipe::Verdict::OrSymbol,
205
+ determined_by: String
206
+ ).returns(T.attached_class)
207
+ end
208
+ def self.new(
209
+ # At least one rule could not be evaluated, so the score rests on less than the
210
+ # whole recipe. The score is still returned — a partial verdict is more useful
211
+ # than none — but it is labeled rather than passed off as whole.
212
+ partial_evidence:,
213
+ # The recipe that produced this result.
214
+ recipe_id:,
215
+ # One result per rule in the recipe, in membership order. Every rule runs — a
216
+ # score is only meaningful when complete, so there is no short-circuit on the
217
+ # first trigger.
218
+ rules:,
219
+ # The sum of the weights of the rules that triggered, clamped to the range -100
220
+ # to 100. Two scores at a bound are not comparable.
221
+ score:,
222
+ # The score at or above which this recipe flags.
223
+ threshold:,
224
+ # This recipe's own verdict. Normally the score against the threshold, unless a
225
+ # preempting rule fired — see `determined_by`.
226
+ verdict:,
227
+ # The preempting rule that set `verdict`, present only when a rule rather than the
228
+ # score decided it. Without it a recipe can report a score under its threshold and
229
+ # still flag, with nothing in the payload accounting for the difference.
230
+ determined_by: nil
231
+ )
232
+ end
233
+
234
+ sig do
235
+ override.returns(
236
+ {
237
+ partial_evidence: T::Boolean,
238
+ recipe_id: String,
239
+ rules:
240
+ T::Array[
241
+ PreludeSDK::Models::WatchEvaluateResponse::Recipe::Rule
242
+ ],
243
+ score: Integer,
244
+ threshold: Integer,
245
+ verdict:
246
+ PreludeSDK::Models::WatchEvaluateResponse::Recipe::Verdict::TaggedSymbol,
247
+ determined_by: String
248
+ }
249
+ )
250
+ end
251
+ def to_hash
252
+ end
253
+
254
+ class Rule < PreludeSDK::Internal::Type::BaseModel
255
+ OrHash =
256
+ T.type_alias do
257
+ T.any(
258
+ PreludeSDK::Models::WatchEvaluateResponse::Recipe::Rule,
259
+ PreludeSDK::Internal::AnyHash
260
+ )
261
+ end
262
+
263
+ # What the rule concluded.
264
+ #
265
+ # - `TRIGGERED` - The condition held; `weight` was added to the score.
266
+ # - `NOT_TRIGGERED` - The condition did not hold.
267
+ # - `NOT_EVALUATED` - The rule could not run, because something it reads never
268
+ # arrived. This is not a quieter `NOT_TRIGGERED`: it contributed nothing either
269
+ # way, and it is why `partial_evidence` is set on the recipe.
270
+ sig do
271
+ returns(
272
+ PreludeSDK::Models::WatchEvaluateResponse::Recipe::Rule::Outcome::TaggedSymbol
273
+ )
274
+ end
275
+ attr_accessor :outcome
276
+
277
+ # The rule that produced this result. Present whatever the rule's visibility, so a
278
+ # rule you cannot see the condition of is still one you can reweight, switch off,
279
+ # or ask us about.
280
+ sig { returns(String) }
281
+ attr_accessor :rule_id
282
+
283
+ # What this rule contributes to the recipe's score when it triggers.
284
+ sig { returns(Integer) }
285
+ attr_accessor :weight
286
+
287
+ # Why the rule could not run, set only when `outcome` is `NOT_EVALUATED`.
288
+ #
289
+ # A rule you authored names the signal or attribute it waited on, since you wrote
290
+ # the expression that reads it. A Prelude-managed rule reports `missing_data` and
291
+ # nothing more: the signal it waited on is part of a condition that is not
292
+ # disclosed.
293
+ sig { returns(T.nilable(String)) }
294
+ attr_reader :blocked_by
295
+
296
+ sig { params(blocked_by: String).void }
297
+ attr_writer :blocked_by
298
+
299
+ # The rule's name, present for a rule you authored and omitted for a
300
+ # Prelude-managed one. A managed rule's name describes what it looks for, which is
301
+ # as much of the condition as the expression is.
302
+ sig { returns(T.nilable(String)) }
303
+ attr_reader :name
304
+
305
+ sig { params(name: String).void }
306
+ attr_writer :name
307
+
308
+ # The rule could not run for a reason on our side rather than anything about your
309
+ # request. `outcome` is `NOT_EVALUATED` and the failure is ours to fix.
310
+ sig { returns(T.nilable(T::Boolean)) }
311
+ attr_reader :unavailable
312
+
313
+ sig { params(unavailable: T::Boolean).void }
314
+ attr_writer :unavailable
315
+
316
+ sig do
317
+ params(
318
+ outcome:
319
+ PreludeSDK::Models::WatchEvaluateResponse::Recipe::Rule::Outcome::OrSymbol,
320
+ rule_id: String,
321
+ weight: Integer,
322
+ blocked_by: String,
323
+ name: String,
324
+ unavailable: T::Boolean
325
+ ).returns(T.attached_class)
326
+ end
327
+ def self.new(
328
+ # What the rule concluded.
329
+ #
330
+ # - `TRIGGERED` - The condition held; `weight` was added to the score.
331
+ # - `NOT_TRIGGERED` - The condition did not hold.
332
+ # - `NOT_EVALUATED` - The rule could not run, because something it reads never
333
+ # arrived. This is not a quieter `NOT_TRIGGERED`: it contributed nothing either
334
+ # way, and it is why `partial_evidence` is set on the recipe.
335
+ outcome:,
336
+ # The rule that produced this result. Present whatever the rule's visibility, so a
337
+ # rule you cannot see the condition of is still one you can reweight, switch off,
338
+ # or ask us about.
339
+ rule_id:,
340
+ # What this rule contributes to the recipe's score when it triggers.
341
+ weight:,
342
+ # Why the rule could not run, set only when `outcome` is `NOT_EVALUATED`.
343
+ #
344
+ # A rule you authored names the signal or attribute it waited on, since you wrote
345
+ # the expression that reads it. A Prelude-managed rule reports `missing_data` and
346
+ # nothing more: the signal it waited on is part of a condition that is not
347
+ # disclosed.
348
+ blocked_by: nil,
349
+ # The rule's name, present for a rule you authored and omitted for a
350
+ # Prelude-managed one. A managed rule's name describes what it looks for, which is
351
+ # as much of the condition as the expression is.
352
+ name: nil,
353
+ # The rule could not run for a reason on our side rather than anything about your
354
+ # request. `outcome` is `NOT_EVALUATED` and the failure is ours to fix.
355
+ unavailable: nil
356
+ )
357
+ end
358
+
359
+ sig do
360
+ override.returns(
361
+ {
362
+ outcome:
363
+ PreludeSDK::Models::WatchEvaluateResponse::Recipe::Rule::Outcome::TaggedSymbol,
364
+ rule_id: String,
365
+ weight: Integer,
366
+ blocked_by: String,
367
+ name: String,
368
+ unavailable: T::Boolean
369
+ }
370
+ )
371
+ end
372
+ def to_hash
373
+ end
374
+
375
+ # What the rule concluded.
376
+ #
377
+ # - `TRIGGERED` - The condition held; `weight` was added to the score.
378
+ # - `NOT_TRIGGERED` - The condition did not hold.
379
+ # - `NOT_EVALUATED` - The rule could not run, because something it reads never
380
+ # arrived. This is not a quieter `NOT_TRIGGERED`: it contributed nothing either
381
+ # way, and it is why `partial_evidence` is set on the recipe.
382
+ module Outcome
383
+ extend PreludeSDK::Internal::Type::Enum
384
+
385
+ TaggedSymbol =
386
+ T.type_alias do
387
+ T.all(
388
+ Symbol,
389
+ PreludeSDK::Models::WatchEvaluateResponse::Recipe::Rule::Outcome
390
+ )
391
+ end
392
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
393
+
394
+ TRIGGERED =
395
+ T.let(
396
+ :TRIGGERED,
397
+ PreludeSDK::Models::WatchEvaluateResponse::Recipe::Rule::Outcome::TaggedSymbol
398
+ )
399
+ NOT_TRIGGERED =
400
+ T.let(
401
+ :NOT_TRIGGERED,
402
+ PreludeSDK::Models::WatchEvaluateResponse::Recipe::Rule::Outcome::TaggedSymbol
403
+ )
404
+ NOT_EVALUATED =
405
+ T.let(
406
+ :NOT_EVALUATED,
407
+ PreludeSDK::Models::WatchEvaluateResponse::Recipe::Rule::Outcome::TaggedSymbol
408
+ )
409
+
410
+ sig do
411
+ override.returns(
412
+ T::Array[
413
+ PreludeSDK::Models::WatchEvaluateResponse::Recipe::Rule::Outcome::TaggedSymbol
414
+ ]
415
+ )
416
+ end
417
+ def self.values
418
+ end
419
+ end
420
+ end
421
+
422
+ # This recipe's own verdict. Normally the score against the threshold, unless a
423
+ # preempting rule fired — see `determined_by`.
424
+ module Verdict
425
+ extend PreludeSDK::Internal::Type::Enum
426
+
427
+ TaggedSymbol =
428
+ T.type_alias do
429
+ T.all(
430
+ Symbol,
431
+ PreludeSDK::Models::WatchEvaluateResponse::Recipe::Verdict
432
+ )
433
+ end
434
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
435
+
436
+ PASS =
437
+ T.let(
438
+ :PASS,
439
+ PreludeSDK::Models::WatchEvaluateResponse::Recipe::Verdict::TaggedSymbol
440
+ )
441
+ FLAG =
442
+ T.let(
443
+ :FLAG,
444
+ PreludeSDK::Models::WatchEvaluateResponse::Recipe::Verdict::TaggedSymbol
445
+ )
446
+
447
+ sig do
448
+ override.returns(
449
+ T::Array[
450
+ PreludeSDK::Models::WatchEvaluateResponse::Recipe::Verdict::TaggedSymbol
451
+ ]
452
+ )
453
+ end
454
+ def self.values
455
+ end
456
+ end
457
+ end
458
+
459
+ # The evaluation-level verdict, being the most severe verdict across the recipes
460
+ # that ran.
461
+ #
462
+ # - `PASS` - No recipe flagged.
463
+ # - `FLAG` - At least one recipe flagged.
464
+ module Verdict
465
+ extend PreludeSDK::Internal::Type::Enum
466
+
467
+ TaggedSymbol =
468
+ T.type_alias do
469
+ T.all(Symbol, PreludeSDK::Models::WatchEvaluateResponse::Verdict)
470
+ end
471
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
472
+
473
+ PASS =
474
+ T.let(
475
+ :PASS,
476
+ PreludeSDK::Models::WatchEvaluateResponse::Verdict::TaggedSymbol
477
+ )
478
+ FLAG =
479
+ T.let(
480
+ :FLAG,
481
+ PreludeSDK::Models::WatchEvaluateResponse::Verdict::TaggedSymbol
482
+ )
483
+
484
+ sig do
485
+ override.returns(
486
+ T::Array[
487
+ PreludeSDK::Models::WatchEvaluateResponse::Verdict::TaggedSymbol
488
+ ]
489
+ )
490
+ end
491
+ def self.values
492
+ end
493
+ end
494
+ end
495
+ end
496
+ end