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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +3 -5
- data/lib/prelude_sdk/client.rb +4 -0
- data/lib/prelude_sdk/internal/type/base_model.rb +5 -5
- data/lib/prelude_sdk/models/intel/kyc_match_params.rb +96 -0
- data/lib/prelude_sdk/models/intel/kyc_match_response.rb +305 -0
- data/lib/prelude_sdk/models/notify_reply_params.rb +60 -0
- data/lib/prelude_sdk/models/notify_reply_response.rb +65 -0
- data/lib/prelude_sdk/models/signals.rb +125 -0
- data/lib/prelude_sdk/models/target.rb +39 -0
- data/lib/prelude_sdk/models/verification/phone/history_list_params.rb +177 -0
- data/lib/prelude_sdk/models/verification/phone/history_list_response.rb +286 -0
- data/lib/prelude_sdk/models/verification/phone/history_retrieve_params.rb +24 -0
- data/lib/prelude_sdk/models/verification/phone/history_retrieve_response.rb +890 -0
- data/lib/prelude_sdk/models/verification/phone/phone_verification_carrier.rb +29 -0
- data/lib/prelude_sdk/models/verification/phone/phone_verification_money.rb +35 -0
- data/lib/prelude_sdk/models/verification/phone/phone_verification_psd2_transaction.rb +29 -0
- data/lib/prelude_sdk/models/verification_check_params.rb +3 -38
- data/lib/prelude_sdk/models/verification_create_params.rb +6 -161
- data/lib/prelude_sdk/models/verification_management/sandbox_add_phone_number_params.rb +37 -0
- data/lib/prelude_sdk/models/verification_management/sandbox_add_phone_number_response.rb +27 -0
- data/lib/prelude_sdk/models/verification_management/sandbox_delete_phone_number_params.rb +22 -0
- data/lib/prelude_sdk/models/verification_management/sandbox_delete_phone_number_response.rb +19 -0
- data/lib/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_params.rb +16 -0
- data/lib/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_response.rb +47 -0
- data/lib/prelude_sdk/models/watch_evaluate_params.rb +68 -0
- data/lib/prelude_sdk/models/watch_evaluate_response.rb +266 -0
- data/lib/prelude_sdk/models/watch_predict_params.rb +6 -160
- data/lib/prelude_sdk/models/watch_send_events_params.rb +3 -38
- data/lib/prelude_sdk/models/watch_send_feedbacks_params.rb +3 -38
- data/lib/prelude_sdk/models.rb +14 -0
- data/lib/prelude_sdk/resources/intel/kyc.rb +62 -0
- data/lib/prelude_sdk/resources/intel.rb +20 -0
- data/lib/prelude_sdk/resources/notify.rb +35 -0
- data/lib/prelude_sdk/resources/verification/phone/history.rb +104 -0
- data/lib/prelude_sdk/resources/verification/phone.rb +21 -0
- data/lib/prelude_sdk/resources/verification.rb +7 -3
- data/lib/prelude_sdk/resources/verification_management/sandbox.rb +99 -0
- data/lib/prelude_sdk/resources/verification_management.rb +5 -0
- data/lib/prelude_sdk/resources/watch.rb +45 -2
- data/lib/prelude_sdk/version.rb +1 -1
- data/lib/prelude_sdk.rb +26 -0
- data/rbi/prelude_sdk/client.rbi +3 -0
- data/rbi/prelude_sdk/models/intel/kyc_match_params.rbi +147 -0
- data/rbi/prelude_sdk/models/intel/kyc_match_response.rbi +736 -0
- data/rbi/prelude_sdk/models/notify_reply_params.rbi +87 -0
- data/rbi/prelude_sdk/models/notify_reply_response.rbi +94 -0
- data/rbi/prelude_sdk/models/signals.rbi +200 -0
- data/rbi/prelude_sdk/models/target.rbi +61 -0
- data/rbi/prelude_sdk/models/verification/phone/history_list_params.rbi +436 -0
- data/rbi/prelude_sdk/models/verification/phone/history_list_response.rbi +661 -0
- data/rbi/prelude_sdk/models/verification/phone/history_retrieve_params.rbi +42 -0
- data/rbi/prelude_sdk/models/verification/phone/history_retrieve_response.rbi +2229 -0
- data/rbi/prelude_sdk/models/verification/phone/phone_verification_carrier.rbi +39 -0
- data/rbi/prelude_sdk/models/verification/phone/phone_verification_money.rbi +46 -0
- data/rbi/prelude_sdk/models/verification/phone/phone_verification_psd2_transaction.rbi +68 -0
- data/rbi/prelude_sdk/models/verification_check_params.rbi +4 -85
- data/rbi/prelude_sdk/models/verification_create_params.rbi +8 -328
- data/rbi/prelude_sdk/models/verification_management/sandbox_add_phone_number_params.rbi +58 -0
- data/rbi/prelude_sdk/models/verification_management/sandbox_add_phone_number_response.rbi +42 -0
- data/rbi/prelude_sdk/models/verification_management/sandbox_delete_phone_number_params.rbi +43 -0
- data/rbi/prelude_sdk/models/verification_management/sandbox_delete_phone_number_response.rbi +32 -0
- data/rbi/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_params.rbi +34 -0
- data/rbi/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_response.rbi +101 -0
- data/rbi/prelude_sdk/models/watch_evaluate_params.rbi +109 -0
- data/rbi/prelude_sdk/models/watch_evaluate_response.rbi +496 -0
- data/rbi/prelude_sdk/models/watch_predict_params.rbi +8 -320
- data/rbi/prelude_sdk/models/watch_send_events_params.rbi +4 -93
- data/rbi/prelude_sdk/models/watch_send_feedbacks_params.rbi +4 -95
- data/rbi/prelude_sdk/models.rbi +14 -0
- data/rbi/prelude_sdk/resources/intel/kyc.rbi +61 -0
- data/rbi/prelude_sdk/resources/intel.rbi +17 -0
- data/rbi/prelude_sdk/resources/notify.rbi +31 -0
- data/rbi/prelude_sdk/resources/verification/phone/history.rbi +112 -0
- data/rbi/prelude_sdk/resources/verification/phone.rbi +18 -0
- data/rbi/prelude_sdk/resources/verification.rbi +6 -3
- data/rbi/prelude_sdk/resources/verification_management/sandbox.rbi +76 -0
- data/rbi/prelude_sdk/resources/verification_management.rbi +4 -0
- data/rbi/prelude_sdk/resources/watch.rbi +49 -2
- data/sig/prelude_sdk/client.rbs +2 -0
- data/sig/prelude_sdk/models/intel/kyc_match_params.rbs +91 -0
- data/sig/prelude_sdk/models/intel/kyc_match_response.rbs +276 -0
- data/sig/prelude_sdk/models/notify_reply_params.rbs +50 -0
- data/sig/prelude_sdk/models/notify_reply_response.rbs +54 -0
- data/sig/prelude_sdk/models/signals.rbs +101 -0
- data/sig/prelude_sdk/models/target.rbs +29 -0
- data/sig/prelude_sdk/models/verification/phone/history_list_params.rbs +187 -0
- data/sig/prelude_sdk/models/verification/phone/history_list_response.rbs +241 -0
- data/sig/prelude_sdk/models/verification/phone/history_retrieve_params.rbs +27 -0
- data/sig/prelude_sdk/models/verification/phone/history_retrieve_response.rbs +873 -0
- data/sig/prelude_sdk/models/verification/phone/phone_verification_carrier.rbs +23 -0
- data/sig/prelude_sdk/models/verification/phone/phone_verification_money.rbs +21 -0
- data/sig/prelude_sdk/models/verification/phone/phone_verification_psd2_transaction.rbs +37 -0
- data/sig/prelude_sdk/models/verification_check_params.rbs +4 -37
- data/sig/prelude_sdk/models/verification_create_params.rbs +9 -142
- data/sig/prelude_sdk/models/verification_management/sandbox_add_phone_number_params.rbs +30 -0
- data/sig/prelude_sdk/models/verification_management/sandbox_add_phone_number_response.rbs +18 -0
- data/sig/prelude_sdk/models/verification_management/sandbox_delete_phone_number_params.rbs +26 -0
- data/sig/prelude_sdk/models/verification_management/sandbox_delete_phone_number_response.rbs +15 -0
- data/sig/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_params.rbs +17 -0
- data/sig/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_response.rbs +45 -0
- data/sig/prelude_sdk/models/watch_evaluate_params.rbs +52 -0
- data/sig/prelude_sdk/models/watch_evaluate_response.rbs +178 -0
- data/sig/prelude_sdk/models/watch_predict_params.rbs +9 -142
- data/sig/prelude_sdk/models/watch_send_events_params.rbs +4 -37
- data/sig/prelude_sdk/models/watch_send_feedbacks_params.rbs +4 -37
- data/sig/prelude_sdk/models.rbs +14 -0
- data/sig/prelude_sdk/resources/intel/kyc.rbs +23 -0
- data/sig/prelude_sdk/resources/intel.rbs +9 -0
- data/sig/prelude_sdk/resources/notify.rbs +9 -0
- data/sig/prelude_sdk/resources/verification/phone/history.rbs +32 -0
- data/sig/prelude_sdk/resources/verification/phone.rbs +11 -0
- data/sig/prelude_sdk/resources/verification.rbs +5 -3
- data/sig/prelude_sdk/resources/verification_management/sandbox.rbs +24 -0
- data/sig/prelude_sdk/resources/verification_management.rbs +2 -0
- data/sig/prelude_sdk/resources/watch.rbs +11 -2
- 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
|