verisec 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4695 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Generated by script/generate from spec/openapi.json. Do not edit by hand.
4
+
5
+ module VeriSec
6
+ # The API's answer types, one class per schema (see {VeriSec::VeriSecObject}
7
+ # for how to read them). Nested objects are wrapped in their own type.
8
+ module Types
9
+ # The full result of Face Analyze: everything the check found. See the fields listed in the operation.
10
+ #
11
+ # Returned by {VeriSec::Resources::Face#analyze}.
12
+ #
13
+ # An open result: the engine's full answer, with no fixed fields. Read it as a Hash (`result["faces"]`,
14
+ # `result.dig(…)`, `result.keys`, `result.to_h`); fields it has also read as methods.
15
+ class FaceAnalyze < VeriSecObject
16
+ FIELDS = {}.freeze
17
+ end
18
+
19
+ # The answer of Face Detect.
20
+ #
21
+ # Returned by {VeriSec::Resources::Face#detect}.
22
+ #
23
+ # @!attribute [r] code
24
+ # @return [Numeric, nil]
25
+ # @!attribute [r] msg
26
+ # @return [String, nil]
27
+ # @!attribute [r] faceCount
28
+ # @return [Numeric, nil]
29
+ # @!attribute [r] faces
30
+ # @return [Array<VeriSec::Types::FaceDetectFace>, nil]
31
+ # @!attribute [r] elapsedTime
32
+ # @return [Numeric, nil]
33
+ # @!attribute [r] metadata
34
+ # @return [VeriSec::Types::FaceDetectMetadata, nil]
35
+ class FaceDetect < VeriSecObject
36
+ FIELDS = {
37
+ "code" => nil,
38
+ "msg" => nil,
39
+ "faceCount" => nil,
40
+ "faces" => "FaceDetectFace",
41
+ "elapsedTime" => nil,
42
+ "metadata" => "FaceDetectMetadata"
43
+ }.freeze
44
+ end
45
+
46
+ # FaceDetectFace.
47
+ #
48
+ # @!attribute [r] roi
49
+ # @return [Array<Numeric>, nil]
50
+ # @!attribute [r] rotationAngle
51
+ # @return [Numeric, nil]
52
+ # @!attribute [r] landmarks
53
+ # @return [Array<Array<Numeric>>, nil]
54
+ class FaceDetectFace < VeriSecObject
55
+ FIELDS = {
56
+ "roi" => nil,
57
+ "rotationAngle" => nil,
58
+ "landmarks" => nil
59
+ }.freeze
60
+ end
61
+
62
+ # FaceDetectMetadata.
63
+ #
64
+ # @!attribute [r] serverTime
65
+ # @return [String, nil]
66
+ # @!attribute [r] ctx
67
+ # @return [VeriSec::Types::FaceDetectMetadataCtx, nil]
68
+ class FaceDetectMetadata < VeriSecObject
69
+ FIELDS = {
70
+ "serverTime" => nil,
71
+ "ctx" => "FaceDetectMetadataCtx"
72
+ }.freeze
73
+ end
74
+
75
+ # FaceDetectMetadataCtx.
76
+ #
77
+ # @!attribute [r] userIp
78
+ # @return [String, nil]
79
+ class FaceDetectMetadataCtx < VeriSecObject
80
+ FIELDS = {
81
+ "userIp" => nil
82
+ }.freeze
83
+ end
84
+
85
+ # The answer of Face Count.
86
+ #
87
+ # Returned by {VeriSec::Resources::Face#count}.
88
+ #
89
+ # @!attribute [r] code
90
+ # @return [Numeric, nil]
91
+ # @!attribute [r] msg
92
+ # @return [String, nil]
93
+ # @!attribute [r] faceCount
94
+ # @return [Numeric, nil]
95
+ # @!attribute [r] ok
96
+ # @return [Boolean, nil]
97
+ # @!attribute [r] rule
98
+ # @return [String, nil]
99
+ # @!attribute [r] faces
100
+ # @return [Array<VeriSec::Types::FaceCountFace>, nil]
101
+ # @!attribute [r] elapsedTime
102
+ # @return [Numeric, nil]
103
+ # @!attribute [r] metadata
104
+ # @return [VeriSec::Types::FaceCountMetadata, nil]
105
+ class FaceCount < VeriSecObject
106
+ FIELDS = {
107
+ "code" => nil,
108
+ "msg" => nil,
109
+ "faceCount" => nil,
110
+ "ok" => nil,
111
+ "rule" => nil,
112
+ "faces" => "FaceCountFace",
113
+ "elapsedTime" => nil,
114
+ "metadata" => "FaceCountMetadata"
115
+ }.freeze
116
+ end
117
+
118
+ # FaceCountFace.
119
+ #
120
+ # @!attribute [r] roi
121
+ # @return [Array<Numeric>, nil]
122
+ class FaceCountFace < VeriSecObject
123
+ FIELDS = {
124
+ "roi" => nil
125
+ }.freeze
126
+ end
127
+
128
+ # FaceCountMetadata.
129
+ #
130
+ # @!attribute [r] serverTime
131
+ # @return [String, nil]
132
+ # @!attribute [r] ctx
133
+ # @return [VeriSec::Types::FaceCountMetadataCtx, nil]
134
+ class FaceCountMetadata < VeriSecObject
135
+ FIELDS = {
136
+ "serverTime" => nil,
137
+ "ctx" => "FaceCountMetadataCtx"
138
+ }.freeze
139
+ end
140
+
141
+ # FaceCountMetadataCtx.
142
+ #
143
+ # @!attribute [r] userIp
144
+ # @return [String, nil]
145
+ class FaceCountMetadataCtx < VeriSecObject
146
+ FIELDS = {
147
+ "userIp" => nil
148
+ }.freeze
149
+ end
150
+
151
+ # The answer of Face Attributes.
152
+ #
153
+ # Returned by {VeriSec::Resources::Face#attributes}.
154
+ #
155
+ # @!attribute [r] code
156
+ # @return [Numeric, nil]
157
+ # @!attribute [r] msg
158
+ # @return [String, nil]
159
+ # @!attribute [r] faces
160
+ # @return [Array<VeriSec::Types::FaceAttributesFace>, nil]
161
+ # @!attribute [r] elapsedTime
162
+ # @return [Numeric, nil]
163
+ # @!attribute [r] metadata
164
+ # @return [VeriSec::Types::FaceAttributesMetadata, nil]
165
+ class FaceAttributes < VeriSecObject
166
+ FIELDS = {
167
+ "code" => nil,
168
+ "msg" => nil,
169
+ "faces" => "FaceAttributesFace",
170
+ "elapsedTime" => nil,
171
+ "metadata" => "FaceAttributesMetadata"
172
+ }.freeze
173
+ end
174
+
175
+ # FaceAttributesFace.
176
+ #
177
+ # @!attribute [r] roi
178
+ # @return [Array<Numeric>, nil]
179
+ # @!attribute [r] attributes
180
+ # @return [Array<VeriSec::Types::FaceAttributesFaceAttribute>, nil]
181
+ class FaceAttributesFace < VeriSecObject
182
+ FIELDS = {
183
+ "roi" => nil,
184
+ "attributes" => "FaceAttributesFaceAttribute"
185
+ }.freeze
186
+ end
187
+
188
+ # FaceAttributesFaceAttribute.
189
+ #
190
+ # @!attribute [r] name
191
+ # @return [String, nil]
192
+ # @!attribute [r] value
193
+ # @return [Object, nil]
194
+ # @!attribute [r] confidence
195
+ # @return [Numeric, nil]
196
+ class FaceAttributesFaceAttribute < VeriSecObject
197
+ FIELDS = {
198
+ "name" => nil,
199
+ "value" => nil,
200
+ "confidence" => nil
201
+ }.freeze
202
+ end
203
+
204
+ # FaceAttributesMetadata.
205
+ #
206
+ # @!attribute [r] serverTime
207
+ # @return [String, nil]
208
+ # @!attribute [r] ctx
209
+ # @return [VeriSec::Types::FaceAttributesMetadataCtx, nil]
210
+ class FaceAttributesMetadata < VeriSecObject
211
+ FIELDS = {
212
+ "serverTime" => nil,
213
+ "ctx" => "FaceAttributesMetadataCtx"
214
+ }.freeze
215
+ end
216
+
217
+ # FaceAttributesMetadataCtx.
218
+ #
219
+ # @!attribute [r] userIp
220
+ # @return [String, nil]
221
+ class FaceAttributesMetadataCtx < VeriSecObject
222
+ FIELDS = {
223
+ "userIp" => nil
224
+ }.freeze
225
+ end
226
+
227
+ # The answer of Mask & Glasses (PPE).
228
+ #
229
+ # Returned by {VeriSec::Resources::Face#ppe}.
230
+ #
231
+ # @!attribute [r] code
232
+ # @return [Numeric, nil]
233
+ # @!attribute [r] msg
234
+ # @return [String, nil]
235
+ # @!attribute [r] faces
236
+ # @return [Array<VeriSec::Types::FacePpeFace>, nil]
237
+ # @!attribute [r] elapsedTime
238
+ # @return [Numeric, nil]
239
+ # @!attribute [r] metadata
240
+ # @return [VeriSec::Types::FacePpeMetadata, nil]
241
+ class FacePpe < VeriSecObject
242
+ FIELDS = {
243
+ "code" => nil,
244
+ "msg" => nil,
245
+ "faces" => "FacePpeFace",
246
+ "elapsedTime" => nil,
247
+ "metadata" => "FacePpeMetadata"
248
+ }.freeze
249
+ end
250
+
251
+ # FacePpeFace.
252
+ #
253
+ # @!attribute [r] roi
254
+ # @return [Array<Numeric>, nil]
255
+ # @!attribute [r] MedicalMask
256
+ # @return [String, nil]
257
+ # @!attribute [r] Glasses
258
+ # @return [String, nil]
259
+ # @!attribute [r] HeadCovering
260
+ # @return [String, nil]
261
+ # @!attribute [r] Headphones
262
+ # @return [String, nil]
263
+ class FacePpeFace < VeriSecObject
264
+ FIELDS = {
265
+ "roi" => nil,
266
+ "MedicalMask" => nil,
267
+ "Glasses" => nil,
268
+ "HeadCovering" => nil,
269
+ "Headphones" => nil
270
+ }.freeze
271
+ end
272
+
273
+ # FacePpeMetadata.
274
+ #
275
+ # @!attribute [r] serverTime
276
+ # @return [String, nil]
277
+ # @!attribute [r] ctx
278
+ # @return [VeriSec::Types::FacePpeMetadataCtx, nil]
279
+ class FacePpeMetadata < VeriSecObject
280
+ FIELDS = {
281
+ "serverTime" => nil,
282
+ "ctx" => "FacePpeMetadataCtx"
283
+ }.freeze
284
+ end
285
+
286
+ # FacePpeMetadataCtx.
287
+ #
288
+ # @!attribute [r] userIp
289
+ # @return [String, nil]
290
+ class FacePpeMetadataCtx < VeriSecObject
291
+ FIELDS = {
292
+ "userIp" => nil
293
+ }.freeze
294
+ end
295
+
296
+ # The answer of Emotion.
297
+ #
298
+ # Returned by {VeriSec::Resources::Face#emotion}.
299
+ #
300
+ # @!attribute [r] code
301
+ # @return [Numeric, nil]
302
+ # @!attribute [r] msg
303
+ # @return [String, nil]
304
+ # @!attribute [r] faces
305
+ # @return [Array<VeriSec::Types::FaceEmotionFace>, nil]
306
+ # @!attribute [r] elapsedTime
307
+ # @return [Numeric, nil]
308
+ # @!attribute [r] metadata
309
+ # @return [VeriSec::Types::FaceEmotionMetadata, nil]
310
+ class FaceEmotion < VeriSecObject
311
+ FIELDS = {
312
+ "code" => nil,
313
+ "msg" => nil,
314
+ "faces" => "FaceEmotionFace",
315
+ "elapsedTime" => nil,
316
+ "metadata" => "FaceEmotionMetadata"
317
+ }.freeze
318
+ end
319
+
320
+ # FaceEmotionFace.
321
+ #
322
+ # @!attribute [r] roi
323
+ # @return [Array<Numeric>, nil]
324
+ # @!attribute [r] emotion
325
+ # @return [String, nil]
326
+ # @!attribute [r] confidence
327
+ # @return [Numeric, nil]
328
+ class FaceEmotionFace < VeriSecObject
329
+ FIELDS = {
330
+ "roi" => nil,
331
+ "emotion" => nil,
332
+ "confidence" => nil
333
+ }.freeze
334
+ end
335
+
336
+ # FaceEmotionMetadata.
337
+ #
338
+ # @!attribute [r] serverTime
339
+ # @return [String, nil]
340
+ # @!attribute [r] ctx
341
+ # @return [VeriSec::Types::FaceEmotionMetadataCtx, nil]
342
+ class FaceEmotionMetadata < VeriSecObject
343
+ FIELDS = {
344
+ "serverTime" => nil,
345
+ "ctx" => "FaceEmotionMetadataCtx"
346
+ }.freeze
347
+ end
348
+
349
+ # FaceEmotionMetadataCtx.
350
+ #
351
+ # @!attribute [r] userIp
352
+ # @return [String, nil]
353
+ class FaceEmotionMetadataCtx < VeriSecObject
354
+ FIELDS = {
355
+ "userIp" => nil
356
+ }.freeze
357
+ end
358
+
359
+ # The answer of Smart Crop.
360
+ #
361
+ # Returned by {VeriSec::Resources::Face#crop}.
362
+ #
363
+ # @!attribute [r] code
364
+ # @return [Numeric, nil]
365
+ # @!attribute [r] msg
366
+ # @return [String, nil]
367
+ # @!attribute [r] crops
368
+ # @return [Array<VeriSec::Types::FaceCropCrop>, nil]
369
+ # @!attribute [r] elapsedTime
370
+ # @return [Numeric, nil]
371
+ # @!attribute [r] metadata
372
+ # @return [VeriSec::Types::FaceCropMetadata, nil]
373
+ class FaceCrop < VeriSecObject
374
+ FIELDS = {
375
+ "code" => nil,
376
+ "msg" => nil,
377
+ "crops" => "FaceCropCrop",
378
+ "elapsedTime" => nil,
379
+ "metadata" => "FaceCropMetadata"
380
+ }.freeze
381
+ end
382
+
383
+ # FaceCropCrop.
384
+ #
385
+ # @!attribute [r] roi
386
+ # @return [Array<Numeric>, nil]
387
+ # @!attribute [r] rotationAngle
388
+ # @return [Numeric, nil]
389
+ # @!attribute [r] crop
390
+ # @return [String, nil]
391
+ class FaceCropCrop < VeriSecObject
392
+ FIELDS = {
393
+ "roi" => nil,
394
+ "rotationAngle" => nil,
395
+ "crop" => nil
396
+ }.freeze
397
+ end
398
+
399
+ # FaceCropMetadata.
400
+ #
401
+ # @!attribute [r] serverTime
402
+ # @return [String, nil]
403
+ # @!attribute [r] ctx
404
+ # @return [VeriSec::Types::FaceCropMetadataCtx, nil]
405
+ class FaceCropMetadata < VeriSecObject
406
+ FIELDS = {
407
+ "serverTime" => nil,
408
+ "ctx" => "FaceCropMetadataCtx"
409
+ }.freeze
410
+ end
411
+
412
+ # FaceCropMetadataCtx.
413
+ #
414
+ # @!attribute [r] userIp
415
+ # @return [String, nil]
416
+ class FaceCropMetadataCtx < VeriSecObject
417
+ FIELDS = {
418
+ "userIp" => nil
419
+ }.freeze
420
+ end
421
+
422
+ # The answer of Face Redact.
423
+ #
424
+ # Returned by {VeriSec::Resources::Face#redact}.
425
+ #
426
+ # @!attribute [r] code
427
+ # @return [Numeric, nil]
428
+ # @!attribute [r] msg
429
+ # @return [String, nil]
430
+ # @!attribute [r] faceCount
431
+ # @return [Numeric, nil]
432
+ # @!attribute [r] image
433
+ # @return [String, nil]
434
+ # @!attribute [r] boxes
435
+ # @return [Array<Array<Numeric>>, nil]
436
+ # @!attribute [r] elapsedTime
437
+ # @return [Numeric, nil]
438
+ # @!attribute [r] metadata
439
+ # @return [VeriSec::Types::FaceRedactMetadata, nil]
440
+ class FaceRedact < VeriSecObject
441
+ FIELDS = {
442
+ "code" => nil,
443
+ "msg" => nil,
444
+ "faceCount" => nil,
445
+ "image" => nil,
446
+ "boxes" => nil,
447
+ "elapsedTime" => nil,
448
+ "metadata" => "FaceRedactMetadata"
449
+ }.freeze
450
+ end
451
+
452
+ # FaceRedactMetadata.
453
+ #
454
+ # @!attribute [r] serverTime
455
+ # @return [String, nil]
456
+ # @!attribute [r] ctx
457
+ # @return [VeriSec::Types::FaceRedactMetadataCtx, nil]
458
+ class FaceRedactMetadata < VeriSecObject
459
+ FIELDS = {
460
+ "serverTime" => nil,
461
+ "ctx" => "FaceRedactMetadataCtx"
462
+ }.freeze
463
+ end
464
+
465
+ # FaceRedactMetadataCtx.
466
+ #
467
+ # @!attribute [r] userIp
468
+ # @return [String, nil]
469
+ class FaceRedactMetadataCtx < VeriSecObject
470
+ FIELDS = {
471
+ "userIp" => nil
472
+ }.freeze
473
+ end
474
+
475
+ # The full result of Face Match: everything the check found. See the fields listed in the operation.
476
+ #
477
+ # Returned by {VeriSec::Resources::Face#match}.
478
+ #
479
+ # An open result: the engine's full answer, with no fixed fields. Read it as a Hash (`result["faces"]`,
480
+ # `result.dig(…)`, `result.keys`, `result.to_h`); fields it has also read as methods.
481
+ class FaceMatch < VeriSecObject
482
+ FIELDS = {}.freeze
483
+ end
484
+
485
+ # The answer of Face Verify (1:1).
486
+ #
487
+ # Returned by {VeriSec::Resources::Face#verify}.
488
+ #
489
+ # @!attribute [r] code
490
+ # @return [Numeric, nil]
491
+ # @!attribute [r] msg
492
+ # @return [String, nil]
493
+ # @!attribute [r] similarity
494
+ # @return [Numeric, nil]
495
+ # @!attribute [r] score
496
+ # @return [Numeric, nil]
497
+ # @!attribute [r] match
498
+ # @return [Boolean, nil]
499
+ # @!attribute [r] threshold
500
+ # @return [Numeric, nil]
501
+ # @!attribute [r] compared
502
+ # @return [Array<VeriSec::Types::FaceVerifyCompared>, nil]
503
+ # @!attribute [r] elapsedTime
504
+ # @return [Numeric, nil]
505
+ # @!attribute [r] metadata
506
+ # @return [VeriSec::Types::FaceVerifyMetadata, nil]
507
+ class FaceVerify < VeriSecObject
508
+ FIELDS = {
509
+ "code" => nil,
510
+ "msg" => nil,
511
+ "similarity" => nil,
512
+ "score" => nil,
513
+ "match" => nil,
514
+ "threshold" => nil,
515
+ "compared" => "FaceVerifyCompared",
516
+ "elapsedTime" => nil,
517
+ "metadata" => "FaceVerifyMetadata"
518
+ }.freeze
519
+ end
520
+
521
+ # FaceVerifyCompared.
522
+ #
523
+ # @!attribute [r] image
524
+ # @return [String, nil]
525
+ # @!attribute [r] roi
526
+ # @return [Array<Numeric>, nil]
527
+ class FaceVerifyCompared < VeriSecObject
528
+ FIELDS = {
529
+ "image" => nil,
530
+ "roi" => nil
531
+ }.freeze
532
+ end
533
+
534
+ # FaceVerifyMetadata.
535
+ #
536
+ # @!attribute [r] serverTime
537
+ # @return [String, nil]
538
+ # @!attribute [r] ctx
539
+ # @return [VeriSec::Types::FaceVerifyMetadataCtx, nil]
540
+ class FaceVerifyMetadata < VeriSecObject
541
+ FIELDS = {
542
+ "serverTime" => nil,
543
+ "ctx" => "FaceVerifyMetadataCtx"
544
+ }.freeze
545
+ end
546
+
547
+ # FaceVerifyMetadataCtx.
548
+ #
549
+ # @!attribute [r] userIp
550
+ # @return [String, nil]
551
+ class FaceVerifyMetadataCtx < VeriSecObject
552
+ FIELDS = {
553
+ "userIp" => nil
554
+ }.freeze
555
+ end
556
+
557
+ # The answer of Similarity Score.
558
+ #
559
+ # Returned by {VeriSec::Resources::Face#similarity}.
560
+ #
561
+ # @!attribute [r] code
562
+ # @return [Numeric, nil]
563
+ # @!attribute [r] msg
564
+ # @return [String, nil]
565
+ # @!attribute [r] similarity
566
+ # @return [Numeric, nil]
567
+ # @!attribute [r] score
568
+ # @return [Numeric, nil]
569
+ # @!attribute [r] compared
570
+ # @return [Array<VeriSec::Types::FaceSimilarityCompared>, nil]
571
+ # @!attribute [r] elapsedTime
572
+ # @return [Numeric, nil]
573
+ # @!attribute [r] metadata
574
+ # @return [VeriSec::Types::FaceSimilarityMetadata, nil]
575
+ class FaceSimilarity < VeriSecObject
576
+ FIELDS = {
577
+ "code" => nil,
578
+ "msg" => nil,
579
+ "similarity" => nil,
580
+ "score" => nil,
581
+ "compared" => "FaceSimilarityCompared",
582
+ "elapsedTime" => nil,
583
+ "metadata" => "FaceSimilarityMetadata"
584
+ }.freeze
585
+ end
586
+
587
+ # FaceSimilarityCompared.
588
+ #
589
+ # @!attribute [r] image
590
+ # @return [String, nil]
591
+ # @!attribute [r] roi
592
+ # @return [Array<Numeric>, nil]
593
+ class FaceSimilarityCompared < VeriSecObject
594
+ FIELDS = {
595
+ "image" => nil,
596
+ "roi" => nil
597
+ }.freeze
598
+ end
599
+
600
+ # FaceSimilarityMetadata.
601
+ #
602
+ # @!attribute [r] serverTime
603
+ # @return [String, nil]
604
+ # @!attribute [r] ctx
605
+ # @return [VeriSec::Types::FaceSimilarityMetadataCtx, nil]
606
+ class FaceSimilarityMetadata < VeriSecObject
607
+ FIELDS = {
608
+ "serverTime" => nil,
609
+ "ctx" => "FaceSimilarityMetadataCtx"
610
+ }.freeze
611
+ end
612
+
613
+ # FaceSimilarityMetadataCtx.
614
+ #
615
+ # @!attribute [r] userIp
616
+ # @return [String, nil]
617
+ class FaceSimilarityMetadataCtx < VeriSecObject
618
+ FIELDS = {
619
+ "userIp" => nil
620
+ }.freeze
621
+ end
622
+
623
+ # The answer of Face Search (1:N).
624
+ #
625
+ # Returned by {VeriSec::Resources::Face#search}.
626
+ #
627
+ # @!attribute [r] code
628
+ # @return [Numeric, nil]
629
+ # @!attribute [r] msg
630
+ # @return [String, nil]
631
+ # @!attribute [r] matches
632
+ # @return [Array<VeriSec::Types::FaceSearchMatch>, nil]
633
+ # @!attribute [r] best
634
+ # @return [VeriSec::Types::FaceSearchBest, nil]
635
+ # @!attribute [r] elapsedTime
636
+ # @return [Numeric, nil]
637
+ # @!attribute [r] metadata
638
+ # @return [VeriSec::Types::FaceSearchMetadata, nil]
639
+ class FaceSearch < VeriSecObject
640
+ FIELDS = {
641
+ "code" => nil,
642
+ "msg" => nil,
643
+ "matches" => "FaceSearchMatch",
644
+ "best" => "FaceSearchBest",
645
+ "elapsedTime" => nil,
646
+ "metadata" => "FaceSearchMetadata"
647
+ }.freeze
648
+ end
649
+
650
+ # FaceSearchMatch.
651
+ #
652
+ # @!attribute [r] id
653
+ # @return [String, nil]
654
+ # @!attribute [r] similarity
655
+ # @return [Numeric, nil]
656
+ # @!attribute [r] rank
657
+ # @return [Numeric, nil]
658
+ class FaceSearchMatch < VeriSecObject
659
+ FIELDS = {
660
+ "id" => nil,
661
+ "similarity" => nil,
662
+ "rank" => nil
663
+ }.freeze
664
+ end
665
+
666
+ # FaceSearchBest.
667
+ #
668
+ # @!attribute [r] id
669
+ # @return [String, nil]
670
+ # @!attribute [r] similarity
671
+ # @return [Numeric, nil]
672
+ class FaceSearchBest < VeriSecObject
673
+ FIELDS = {
674
+ "id" => nil,
675
+ "similarity" => nil
676
+ }.freeze
677
+ end
678
+
679
+ # FaceSearchMetadata.
680
+ #
681
+ # @!attribute [r] serverTime
682
+ # @return [String, nil]
683
+ # @!attribute [r] ctx
684
+ # @return [VeriSec::Types::FaceSearchMetadataCtx, nil]
685
+ class FaceSearchMetadata < VeriSecObject
686
+ FIELDS = {
687
+ "serverTime" => nil,
688
+ "ctx" => "FaceSearchMetadataCtx"
689
+ }.freeze
690
+ end
691
+
692
+ # FaceSearchMetadataCtx.
693
+ #
694
+ # @!attribute [r] userIp
695
+ # @return [String, nil]
696
+ class FaceSearchMetadataCtx < VeriSecObject
697
+ FIELDS = {
698
+ "userIp" => nil
699
+ }.freeze
700
+ end
701
+
702
+ # The answer of Duplicate Check.
703
+ #
704
+ # Returned by {VeriSec::Resources::Face#dedupe}.
705
+ #
706
+ # @!attribute [r] code
707
+ # @return [Numeric, nil]
708
+ # @!attribute [r] msg
709
+ # @return [String, nil]
710
+ # @!attribute [r] duplicate
711
+ # @return [Boolean, nil]
712
+ # @!attribute [r] matchedId
713
+ # @return [String, nil]
714
+ # @!attribute [r] similarity
715
+ # @return [Numeric, nil]
716
+ # @!attribute [r] elapsedTime
717
+ # @return [Numeric, nil]
718
+ # @!attribute [r] metadata
719
+ # @return [VeriSec::Types::FaceDedupeMetadata, nil]
720
+ class FaceDedupe < VeriSecObject
721
+ FIELDS = {
722
+ "code" => nil,
723
+ "msg" => nil,
724
+ "duplicate" => nil,
725
+ "matchedId" => nil,
726
+ "similarity" => nil,
727
+ "elapsedTime" => nil,
728
+ "metadata" => "FaceDedupeMetadata"
729
+ }.freeze
730
+ end
731
+
732
+ # FaceDedupeMetadata.
733
+ #
734
+ # @!attribute [r] serverTime
735
+ # @return [String, nil]
736
+ # @!attribute [r] ctx
737
+ # @return [VeriSec::Types::FaceDedupeMetadataCtx, nil]
738
+ class FaceDedupeMetadata < VeriSecObject
739
+ FIELDS = {
740
+ "serverTime" => nil,
741
+ "ctx" => "FaceDedupeMetadataCtx"
742
+ }.freeze
743
+ end
744
+
745
+ # FaceDedupeMetadataCtx.
746
+ #
747
+ # @!attribute [r] userIp
748
+ # @return [String, nil]
749
+ class FaceDedupeMetadataCtx < VeriSecObject
750
+ FIELDS = {
751
+ "userIp" => nil
752
+ }.freeze
753
+ end
754
+
755
+ # The answer of Watchlist Screening.
756
+ #
757
+ # Returned by {VeriSec::Resources::Face#watchlist}.
758
+ #
759
+ # @!attribute [r] code
760
+ # @return [Numeric, nil]
761
+ # @!attribute [r] msg
762
+ # @return [String, nil]
763
+ # @!attribute [r] hit
764
+ # @return [Boolean, nil]
765
+ # @!attribute [r] entry
766
+ # @return [VeriSec::Types::FaceWatchlistEntry, nil]
767
+ # @!attribute [r] elapsedTime
768
+ # @return [Numeric, nil]
769
+ # @!attribute [r] metadata
770
+ # @return [VeriSec::Types::FaceWatchlistMetadata, nil]
771
+ class FaceWatchlist < VeriSecObject
772
+ FIELDS = {
773
+ "code" => nil,
774
+ "msg" => nil,
775
+ "hit" => nil,
776
+ "entry" => "FaceWatchlistEntry",
777
+ "elapsedTime" => nil,
778
+ "metadata" => "FaceWatchlistMetadata"
779
+ }.freeze
780
+ end
781
+
782
+ # FaceWatchlistEntry.
783
+ #
784
+ # @!attribute [r] id
785
+ # @return [String, nil]
786
+ # @!attribute [r] label
787
+ # @return [String, nil]
788
+ # @!attribute [r] similarity
789
+ # @return [Numeric, nil]
790
+ class FaceWatchlistEntry < VeriSecObject
791
+ FIELDS = {
792
+ "id" => nil,
793
+ "label" => nil,
794
+ "similarity" => nil
795
+ }.freeze
796
+ end
797
+
798
+ # FaceWatchlistMetadata.
799
+ #
800
+ # @!attribute [r] serverTime
801
+ # @return [String, nil]
802
+ # @!attribute [r] ctx
803
+ # @return [VeriSec::Types::FaceWatchlistMetadataCtx, nil]
804
+ class FaceWatchlistMetadata < VeriSecObject
805
+ FIELDS = {
806
+ "serverTime" => nil,
807
+ "ctx" => "FaceWatchlistMetadataCtx"
808
+ }.freeze
809
+ end
810
+
811
+ # FaceWatchlistMetadataCtx.
812
+ #
813
+ # @!attribute [r] userIp
814
+ # @return [String, nil]
815
+ class FaceWatchlistMetadataCtx < VeriSecObject
816
+ FIELDS = {
817
+ "userIp" => nil
818
+ }.freeze
819
+ end
820
+
821
+ # The answer of Face Cluster.
822
+ #
823
+ # Returned by {VeriSec::Resources::Face#cluster}.
824
+ #
825
+ # @!attribute [r] code
826
+ # @return [Numeric, nil]
827
+ # @!attribute [r] msg
828
+ # @return [String, nil]
829
+ # @!attribute [r] clusters
830
+ # @return [Array<Array<String>>, nil]
831
+ # @!attribute [r] pairs
832
+ # @return [Array<VeriSec::Types::FaceClusterPair>, nil]
833
+ # @!attribute [r] elapsedTime
834
+ # @return [Numeric, nil]
835
+ # @!attribute [r] metadata
836
+ # @return [VeriSec::Types::FaceClusterMetadata, nil]
837
+ class FaceCluster < VeriSecObject
838
+ FIELDS = {
839
+ "code" => nil,
840
+ "msg" => nil,
841
+ "clusters" => nil,
842
+ "pairs" => "FaceClusterPair",
843
+ "elapsedTime" => nil,
844
+ "metadata" => "FaceClusterMetadata"
845
+ }.freeze
846
+ end
847
+
848
+ # FaceClusterPair.
849
+ #
850
+ # @!attribute [r] a
851
+ # @return [String, nil]
852
+ # @!attribute [r] b
853
+ # @return [String, nil]
854
+ # @!attribute [r] similarity
855
+ # @return [Numeric, nil]
856
+ class FaceClusterPair < VeriSecObject
857
+ FIELDS = {
858
+ "a" => nil,
859
+ "b" => nil,
860
+ "similarity" => nil
861
+ }.freeze
862
+ end
863
+
864
+ # FaceClusterMetadata.
865
+ #
866
+ # @!attribute [r] serverTime
867
+ # @return [String, nil]
868
+ # @!attribute [r] ctx
869
+ # @return [VeriSec::Types::FaceClusterMetadataCtx, nil]
870
+ class FaceClusterMetadata < VeriSecObject
871
+ FIELDS = {
872
+ "serverTime" => nil,
873
+ "ctx" => "FaceClusterMetadataCtx"
874
+ }.freeze
875
+ end
876
+
877
+ # FaceClusterMetadataCtx.
878
+ #
879
+ # @!attribute [r] userIp
880
+ # @return [String, nil]
881
+ class FaceClusterMetadataCtx < VeriSecObject
882
+ FIELDS = {
883
+ "userIp" => nil
884
+ }.freeze
885
+ end
886
+
887
+ # The full result of Age Estimation: everything the check found. See the fields listed in the operation.
888
+ #
889
+ # Returned by {VeriSec::Resources::Face#age}.
890
+ #
891
+ # An open result: the engine's full answer, with no fixed fields. Read it as a Hash (`result["faces"]`,
892
+ # `result.dig(…)`, `result.keys`, `result.to_h`); fields it has also read as methods.
893
+ class FaceAge < VeriSecObject
894
+ FIELDS = {}.freeze
895
+ end
896
+
897
+ # The answer of Age Check.
898
+ #
899
+ # Returned by {VeriSec::Resources::Age#verify}.
900
+ #
901
+ # @!attribute [r] code
902
+ # @return [Numeric, nil]
903
+ # @!attribute [r] msg
904
+ # @return [String, nil]
905
+ # @!attribute [r] age
906
+ # @return [Array<Numeric>, nil]
907
+ # @!attribute [r] allowed
908
+ # @return [Boolean, nil]
909
+ # @!attribute [r] minAge
910
+ # @return [Numeric, nil]
911
+ # @!attribute [r] basis
912
+ # @return [String, nil]
913
+ # @!attribute [r] elapsedTime
914
+ # @return [Numeric, nil]
915
+ # @!attribute [r] metadata
916
+ # @return [VeriSec::Types::AgeVerifyMetadata, nil]
917
+ class AgeVerify < VeriSecObject
918
+ FIELDS = {
919
+ "code" => nil,
920
+ "msg" => nil,
921
+ "age" => nil,
922
+ "allowed" => nil,
923
+ "minAge" => nil,
924
+ "basis" => nil,
925
+ "elapsedTime" => nil,
926
+ "metadata" => "AgeVerifyMetadata"
927
+ }.freeze
928
+ end
929
+
930
+ # AgeVerifyMetadata.
931
+ #
932
+ # @!attribute [r] serverTime
933
+ # @return [String, nil]
934
+ # @!attribute [r] ctx
935
+ # @return [VeriSec::Types::AgeVerifyMetadataCtx, nil]
936
+ class AgeVerifyMetadata < VeriSecObject
937
+ FIELDS = {
938
+ "serverTime" => nil,
939
+ "ctx" => "AgeVerifyMetadataCtx"
940
+ }.freeze
941
+ end
942
+
943
+ # AgeVerifyMetadataCtx.
944
+ #
945
+ # @!attribute [r] userIp
946
+ # @return [String, nil]
947
+ class AgeVerifyMetadataCtx < VeriSecObject
948
+ FIELDS = {
949
+ "userIp" => nil
950
+ }.freeze
951
+ end
952
+
953
+ # The answer of Age Check + Liveness.
954
+ #
955
+ # Returned by {VeriSec::Resources::Age#verify_live}.
956
+ #
957
+ # @!attribute [r] code
958
+ # @return [Numeric, nil]
959
+ # @!attribute [r] msg
960
+ # @return [String, nil]
961
+ # @!attribute [r] age
962
+ # @return [Array<Numeric>, nil]
963
+ # @!attribute [r] allowed
964
+ # @return [Boolean, nil]
965
+ # @!attribute [r] live
966
+ # @return [Boolean, nil]
967
+ # @!attribute [r] basis
968
+ # @return [String, nil]
969
+ # @!attribute [r] elapsedTime
970
+ # @return [Numeric, nil]
971
+ # @!attribute [r] metadata
972
+ # @return [VeriSec::Types::AgeVerifyLiveMetadata, nil]
973
+ class AgeVerifyLive < VeriSecObject
974
+ FIELDS = {
975
+ "code" => nil,
976
+ "msg" => nil,
977
+ "age" => nil,
978
+ "allowed" => nil,
979
+ "live" => nil,
980
+ "basis" => nil,
981
+ "elapsedTime" => nil,
982
+ "metadata" => "AgeVerifyLiveMetadata"
983
+ }.freeze
984
+ end
985
+
986
+ # AgeVerifyLiveMetadata.
987
+ #
988
+ # @!attribute [r] serverTime
989
+ # @return [String, nil]
990
+ # @!attribute [r] ctx
991
+ # @return [VeriSec::Types::AgeVerifyLiveMetadataCtx, nil]
992
+ class AgeVerifyLiveMetadata < VeriSecObject
993
+ FIELDS = {
994
+ "serverTime" => nil,
995
+ "ctx" => "AgeVerifyLiveMetadataCtx"
996
+ }.freeze
997
+ end
998
+
999
+ # AgeVerifyLiveMetadataCtx.
1000
+ #
1001
+ # @!attribute [r] userIp
1002
+ # @return [String, nil]
1003
+ class AgeVerifyLiveMetadataCtx < VeriSecObject
1004
+ FIELDS = {
1005
+ "userIp" => nil
1006
+ }.freeze
1007
+ end
1008
+
1009
+ # The full result of Photo Quality: everything the check found. See the fields listed in the operation.
1010
+ #
1011
+ # Returned by {VeriSec::Resources::Face#quality}.
1012
+ #
1013
+ # An open result: the engine's full answer, with no fixed fields. Read it as a Hash (`result["faces"]`,
1014
+ # `result.dig(…)`, `result.keys`, `result.to_h`); fields it has also read as methods.
1015
+ class FaceQuality < VeriSecObject
1016
+ FIELDS = {}.freeze
1017
+ end
1018
+
1019
+ # The answer of Photo Compliance.
1020
+ #
1021
+ # Returned by {VeriSec::Resources::Photo#compliance}.
1022
+ #
1023
+ # @!attribute [r] code
1024
+ # @return [Numeric, nil]
1025
+ # @!attribute [r] msg
1026
+ # @return [String, nil]
1027
+ # @!attribute [r] compliant
1028
+ # @return [Boolean, nil]
1029
+ # @!attribute [r] nonCompliant
1030
+ # @return [Array<Object>, nil]
1031
+ # @!attribute [r] checks
1032
+ # @return [Array<VeriSec::Types::PhotoComplianceCheck>, nil]
1033
+ # @!attribute [r] standard
1034
+ # @return [String, nil]
1035
+ # @!attribute [r] elapsedTime
1036
+ # @return [Numeric, nil]
1037
+ # @!attribute [r] metadata
1038
+ # @return [VeriSec::Types::PhotoComplianceMetadata, nil]
1039
+ class PhotoCompliance < VeriSecObject
1040
+ FIELDS = {
1041
+ "code" => nil,
1042
+ "msg" => nil,
1043
+ "compliant" => nil,
1044
+ "nonCompliant" => nil,
1045
+ "checks" => "PhotoComplianceCheck",
1046
+ "standard" => nil,
1047
+ "elapsedTime" => nil,
1048
+ "metadata" => "PhotoComplianceMetadata"
1049
+ }.freeze
1050
+ end
1051
+
1052
+ # PhotoComplianceCheck.
1053
+ #
1054
+ # @!attribute [r] groupId
1055
+ # @return [Numeric, nil]
1056
+ # @!attribute [r] name
1057
+ # @return [String, nil]
1058
+ # @!attribute [r] range
1059
+ # @return [Array<Numeric>, nil]
1060
+ # @!attribute [r] status
1061
+ # @return [Numeric, nil]
1062
+ # @!attribute [r] value
1063
+ # @return [Numeric, nil]
1064
+ class PhotoComplianceCheck < VeriSecObject
1065
+ FIELDS = {
1066
+ "groupId" => nil,
1067
+ "name" => nil,
1068
+ "range" => nil,
1069
+ "status" => nil,
1070
+ "value" => nil
1071
+ }.freeze
1072
+ end
1073
+
1074
+ # PhotoComplianceMetadata.
1075
+ #
1076
+ # @!attribute [r] serverTime
1077
+ # @return [String, nil]
1078
+ # @!attribute [r] ctx
1079
+ # @return [VeriSec::Types::PhotoComplianceMetadataCtx, nil]
1080
+ class PhotoComplianceMetadata < VeriSecObject
1081
+ FIELDS = {
1082
+ "serverTime" => nil,
1083
+ "ctx" => "PhotoComplianceMetadataCtx"
1084
+ }.freeze
1085
+ end
1086
+
1087
+ # PhotoComplianceMetadataCtx.
1088
+ #
1089
+ # @!attribute [r] userIp
1090
+ # @return [String, nil]
1091
+ class PhotoComplianceMetadataCtx < VeriSecObject
1092
+ FIELDS = {
1093
+ "userIp" => nil
1094
+ }.freeze
1095
+ end
1096
+
1097
+ # The answer of Photo Policy.
1098
+ #
1099
+ # Returned by {VeriSec::Resources::Photo#policy}.
1100
+ #
1101
+ # @!attribute [r] code
1102
+ # @return [Numeric, nil]
1103
+ # @!attribute [r] msg
1104
+ # @return [String, nil]
1105
+ # @!attribute [r] pass
1106
+ # @return [Boolean, nil]
1107
+ # @!attribute [r] failed
1108
+ # @return [Array<Object>, nil]
1109
+ # @!attribute [r] checks
1110
+ # @return [Array<VeriSec::Types::PhotoPolicyCheck>, nil]
1111
+ # @!attribute [r] elapsedTime
1112
+ # @return [Numeric, nil]
1113
+ # @!attribute [r] metadata
1114
+ # @return [VeriSec::Types::PhotoPolicyMetadata, nil]
1115
+ class PhotoPolicy < VeriSecObject
1116
+ FIELDS = {
1117
+ "code" => nil,
1118
+ "msg" => nil,
1119
+ "pass" => nil,
1120
+ "failed" => nil,
1121
+ "checks" => "PhotoPolicyCheck",
1122
+ "elapsedTime" => nil,
1123
+ "metadata" => "PhotoPolicyMetadata"
1124
+ }.freeze
1125
+ end
1126
+
1127
+ # PhotoPolicyCheck.
1128
+ #
1129
+ # @!attribute [r] name
1130
+ # @return [String, nil]
1131
+ # @!attribute [r] range
1132
+ # @return [Array<Numeric>, nil]
1133
+ # @!attribute [r] value
1134
+ # @return [Numeric, nil]
1135
+ # @!attribute [r] status
1136
+ # @return [Numeric, nil]
1137
+ class PhotoPolicyCheck < VeriSecObject
1138
+ FIELDS = {
1139
+ "name" => nil,
1140
+ "range" => nil,
1141
+ "value" => nil,
1142
+ "status" => nil
1143
+ }.freeze
1144
+ end
1145
+
1146
+ # PhotoPolicyMetadata.
1147
+ #
1148
+ # @!attribute [r] serverTime
1149
+ # @return [String, nil]
1150
+ # @!attribute [r] ctx
1151
+ # @return [VeriSec::Types::PhotoPolicyMetadataCtx, nil]
1152
+ class PhotoPolicyMetadata < VeriSecObject
1153
+ FIELDS = {
1154
+ "serverTime" => nil,
1155
+ "ctx" => "PhotoPolicyMetadataCtx"
1156
+ }.freeze
1157
+ end
1158
+
1159
+ # PhotoPolicyMetadataCtx.
1160
+ #
1161
+ # @!attribute [r] userIp
1162
+ # @return [String, nil]
1163
+ class PhotoPolicyMetadataCtx < VeriSecObject
1164
+ FIELDS = {
1165
+ "userIp" => nil
1166
+ }.freeze
1167
+ end
1168
+
1169
+ # The answer of Quality Gate.
1170
+ #
1171
+ # Returned by {VeriSec::Resources::Photo#gate}.
1172
+ #
1173
+ # @!attribute [r] code
1174
+ # @return [Numeric, nil]
1175
+ # @!attribute [r] msg
1176
+ # @return [String, nil]
1177
+ # @!attribute [r] ok
1178
+ # @return [Boolean, nil]
1179
+ # @!attribute [r] failed
1180
+ # @return [Array<Object>, nil]
1181
+ # @!attribute [r] elapsedTime
1182
+ # @return [Numeric, nil]
1183
+ # @!attribute [r] metadata
1184
+ # @return [VeriSec::Types::PhotoGateMetadata, nil]
1185
+ class PhotoGate < VeriSecObject
1186
+ FIELDS = {
1187
+ "code" => nil,
1188
+ "msg" => nil,
1189
+ "ok" => nil,
1190
+ "failed" => nil,
1191
+ "elapsedTime" => nil,
1192
+ "metadata" => "PhotoGateMetadata"
1193
+ }.freeze
1194
+ end
1195
+
1196
+ # PhotoGateMetadata.
1197
+ #
1198
+ # @!attribute [r] serverTime
1199
+ # @return [String, nil]
1200
+ # @!attribute [r] ctx
1201
+ # @return [VeriSec::Types::PhotoGateMetadataCtx, nil]
1202
+ class PhotoGateMetadata < VeriSecObject
1203
+ FIELDS = {
1204
+ "serverTime" => nil,
1205
+ "ctx" => "PhotoGateMetadataCtx"
1206
+ }.freeze
1207
+ end
1208
+
1209
+ # PhotoGateMetadataCtx.
1210
+ #
1211
+ # @!attribute [r] userIp
1212
+ # @return [String, nil]
1213
+ class PhotoGateMetadataCtx < VeriSecObject
1214
+ FIELDS = {
1215
+ "userIp" => nil
1216
+ }.freeze
1217
+ end
1218
+
1219
+ # The answer of Photo Auto-fix.
1220
+ #
1221
+ # Returned by {VeriSec::Resources::Photo#autofix}.
1222
+ #
1223
+ # @!attribute [r] code
1224
+ # @return [Numeric, nil]
1225
+ # @!attribute [r] msg
1226
+ # @return [String, nil]
1227
+ # @!attribute [r] image
1228
+ # @return [String, nil]
1229
+ # @!attribute [r] aspect
1230
+ # @return [String, nil]
1231
+ # @!attribute [r] elapsedTime
1232
+ # @return [Numeric, nil]
1233
+ # @!attribute [r] metadata
1234
+ # @return [VeriSec::Types::PhotoAutofixMetadata, nil]
1235
+ class PhotoAutofix < VeriSecObject
1236
+ FIELDS = {
1237
+ "code" => nil,
1238
+ "msg" => nil,
1239
+ "image" => nil,
1240
+ "aspect" => nil,
1241
+ "elapsedTime" => nil,
1242
+ "metadata" => "PhotoAutofixMetadata"
1243
+ }.freeze
1244
+ end
1245
+
1246
+ # PhotoAutofixMetadata.
1247
+ #
1248
+ # @!attribute [r] serverTime
1249
+ # @return [String, nil]
1250
+ # @!attribute [r] ctx
1251
+ # @return [VeriSec::Types::PhotoAutofixMetadataCtx, nil]
1252
+ class PhotoAutofixMetadata < VeriSecObject
1253
+ FIELDS = {
1254
+ "serverTime" => nil,
1255
+ "ctx" => "PhotoAutofixMetadataCtx"
1256
+ }.freeze
1257
+ end
1258
+
1259
+ # PhotoAutofixMetadataCtx.
1260
+ #
1261
+ # @!attribute [r] userIp
1262
+ # @return [String, nil]
1263
+ class PhotoAutofixMetadataCtx < VeriSecObject
1264
+ FIELDS = {
1265
+ "userIp" => nil
1266
+ }.freeze
1267
+ end
1268
+
1269
+ # The answer of Best Frame.
1270
+ #
1271
+ # Returned by {VeriSec::Resources::Photo#best_frame}.
1272
+ #
1273
+ # @!attribute [r] code
1274
+ # @return [Numeric, nil]
1275
+ # @!attribute [r] msg
1276
+ # @return [String, nil]
1277
+ # @!attribute [r] bestIndex
1278
+ # @return [Numeric, nil]
1279
+ # @!attribute [r] ranking
1280
+ # @return [Array<VeriSec::Types::PhotoBestFrameRanking>, nil]
1281
+ # @!attribute [r] elapsedTime
1282
+ # @return [Numeric, nil]
1283
+ # @!attribute [r] metadata
1284
+ # @return [VeriSec::Types::PhotoBestFrameMetadata, nil]
1285
+ class PhotoBestFrame < VeriSecObject
1286
+ FIELDS = {
1287
+ "code" => nil,
1288
+ "msg" => nil,
1289
+ "bestIndex" => nil,
1290
+ "ranking" => "PhotoBestFrameRanking",
1291
+ "elapsedTime" => nil,
1292
+ "metadata" => "PhotoBestFrameMetadata"
1293
+ }.freeze
1294
+ end
1295
+
1296
+ # PhotoBestFrameRanking.
1297
+ #
1298
+ # @!attribute [r] index
1299
+ # @return [Numeric, nil]
1300
+ # @!attribute [r] compliant
1301
+ # @return [Boolean, nil]
1302
+ # @!attribute [r] failedCount
1303
+ # @return [Object, nil]
1304
+ class PhotoBestFrameRanking < VeriSecObject
1305
+ FIELDS = {
1306
+ "index" => nil,
1307
+ "compliant" => nil,
1308
+ "failedCount" => nil
1309
+ }.freeze
1310
+ end
1311
+
1312
+ # PhotoBestFrameMetadata.
1313
+ #
1314
+ # @!attribute [r] serverTime
1315
+ # @return [String, nil]
1316
+ # @!attribute [r] ctx
1317
+ # @return [VeriSec::Types::PhotoBestFrameMetadataCtx, nil]
1318
+ class PhotoBestFrameMetadata < VeriSecObject
1319
+ FIELDS = {
1320
+ "serverTime" => nil,
1321
+ "ctx" => "PhotoBestFrameMetadataCtx"
1322
+ }.freeze
1323
+ end
1324
+
1325
+ # PhotoBestFrameMetadataCtx.
1326
+ #
1327
+ # @!attribute [r] userIp
1328
+ # @return [String, nil]
1329
+ class PhotoBestFrameMetadataCtx < VeriSecObject
1330
+ FIELDS = {
1331
+ "userIp" => nil
1332
+ }.freeze
1333
+ end
1334
+
1335
+ # The full result of Liveness: everything the check found. See the fields listed in the operation.
1336
+ #
1337
+ # Returned by {VeriSec::Resources::Liveness#check}.
1338
+ #
1339
+ # An open result: the engine's full answer, with no fixed fields. Read it as a Hash (`result["faces"]`,
1340
+ # `result.dig(…)`, `result.keys`, `result.to_h`); fields it has also read as methods.
1341
+ class LivenessCheck < VeriSecObject
1342
+ FIELDS = {}.freeze
1343
+ end
1344
+
1345
+ # The answer of Anti-spoof Reason.
1346
+ #
1347
+ # Returned by {VeriSec::Resources::Liveness#antispoof}.
1348
+ #
1349
+ # @!attribute [r] code
1350
+ # @return [Numeric, nil]
1351
+ # @!attribute [r] live
1352
+ # @return [Boolean, nil]
1353
+ # @!attribute [r] reason
1354
+ # @return [String, nil]
1355
+ # @!attribute [r] reasonCode
1356
+ # @return [Numeric, nil]
1357
+ # @!attribute [r] category
1358
+ # @return [String, nil]
1359
+ # @!attribute [r] elapsedTime
1360
+ # @return [Numeric, nil]
1361
+ # @!attribute [r] metadata
1362
+ # @return [VeriSec::Types::LivenessAntispoofMetadata, nil]
1363
+ class LivenessAntispoof < VeriSecObject
1364
+ FIELDS = {
1365
+ "code" => nil,
1366
+ "live" => nil,
1367
+ "reason" => nil,
1368
+ "reasonCode" => nil,
1369
+ "category" => nil,
1370
+ "elapsedTime" => nil,
1371
+ "metadata" => "LivenessAntispoofMetadata"
1372
+ }.freeze
1373
+ end
1374
+
1375
+ # LivenessAntispoofMetadata.
1376
+ #
1377
+ # @!attribute [r] elapsedTime
1378
+ # @return [Numeric, nil]
1379
+ # @!attribute [r] serverTime
1380
+ # @return [String, nil]
1381
+ # @!attribute [r] ctx
1382
+ # @return [VeriSec::Types::LivenessAntispoofMetadataCtx, nil]
1383
+ class LivenessAntispoofMetadata < VeriSecObject
1384
+ FIELDS = {
1385
+ "elapsedTime" => nil,
1386
+ "serverTime" => nil,
1387
+ "ctx" => "LivenessAntispoofMetadataCtx"
1388
+ }.freeze
1389
+ end
1390
+
1391
+ # LivenessAntispoofMetadataCtx.
1392
+ #
1393
+ # @!attribute [r] userIp
1394
+ # @return [String, nil]
1395
+ class LivenessAntispoofMetadataCtx < VeriSecObject
1396
+ FIELDS = {
1397
+ "userIp" => nil
1398
+ }.freeze
1399
+ end
1400
+
1401
+ # The answer of Liveness Gate.
1402
+ #
1403
+ # Returned by {VeriSec::Resources::Liveness#gate}.
1404
+ #
1405
+ # @!attribute [r] code
1406
+ # @return [Numeric, nil]
1407
+ # @!attribute [r] pass
1408
+ # @return [Boolean, nil]
1409
+ # @!attribute [r] status
1410
+ # @return [Numeric, nil]
1411
+ # @!attribute [r] elapsedTime
1412
+ # @return [Numeric, nil]
1413
+ # @!attribute [r] metadata
1414
+ # @return [VeriSec::Types::LivenessGateMetadata, nil]
1415
+ class LivenessGate < VeriSecObject
1416
+ FIELDS = {
1417
+ "code" => nil,
1418
+ "pass" => nil,
1419
+ "status" => nil,
1420
+ "elapsedTime" => nil,
1421
+ "metadata" => "LivenessGateMetadata"
1422
+ }.freeze
1423
+ end
1424
+
1425
+ # LivenessGateMetadata.
1426
+ #
1427
+ # @!attribute [r] elapsedTime
1428
+ # @return [Numeric, nil]
1429
+ # @!attribute [r] serverTime
1430
+ # @return [String, nil]
1431
+ # @!attribute [r] ctx
1432
+ # @return [VeriSec::Types::LivenessGateMetadataCtx, nil]
1433
+ class LivenessGateMetadata < VeriSecObject
1434
+ FIELDS = {
1435
+ "elapsedTime" => nil,
1436
+ "serverTime" => nil,
1437
+ "ctx" => "LivenessGateMetadataCtx"
1438
+ }.freeze
1439
+ end
1440
+
1441
+ # LivenessGateMetadataCtx.
1442
+ #
1443
+ # @!attribute [r] userIp
1444
+ # @return [String, nil]
1445
+ class LivenessGateMetadataCtx < VeriSecObject
1446
+ FIELDS = {
1447
+ "userIp" => nil
1448
+ }.freeze
1449
+ end
1450
+
1451
+ # The answer of Identity Verification.
1452
+ #
1453
+ # Returned by {VeriSec::Resources::Identity#verify}.
1454
+ #
1455
+ # @!attribute [r] code
1456
+ # @return [Numeric, nil]
1457
+ # @!attribute [r] msg
1458
+ # @return [String, nil]
1459
+ # @!attribute [r] verified
1460
+ # @return [Boolean, nil]
1461
+ # @!attribute [r] live
1462
+ # @return [Boolean, nil]
1463
+ # @!attribute [r] qualityOk
1464
+ # @return [Boolean, nil]
1465
+ # @!attribute [r] similarity
1466
+ # @return [Numeric, nil]
1467
+ # @!attribute [r] steps
1468
+ # @return [VeriSec::Types::IdentityVerifySteps, nil]
1469
+ # @!attribute [r] elapsedTime
1470
+ # @return [Numeric, nil]
1471
+ # @!attribute [r] metadata
1472
+ # @return [VeriSec::Types::IdentityVerifyMetadata, nil]
1473
+ class IdentityVerify < VeriSecObject
1474
+ FIELDS = {
1475
+ "code" => nil,
1476
+ "msg" => nil,
1477
+ "verified" => nil,
1478
+ "live" => nil,
1479
+ "qualityOk" => nil,
1480
+ "similarity" => nil,
1481
+ "steps" => "IdentityVerifySteps",
1482
+ "elapsedTime" => nil,
1483
+ "metadata" => "IdentityVerifyMetadata"
1484
+ }.freeze
1485
+ end
1486
+
1487
+ # IdentityVerifySteps.
1488
+ #
1489
+ # @!attribute [r] liveness
1490
+ # @return [VeriSec::Types::IdentityVerifyStepsLiveness, nil]
1491
+ # @!attribute [r] quality
1492
+ # @return [VeriSec::Types::IdentityVerifyStepsQuality, nil]
1493
+ # @!attribute [r] match
1494
+ # @return [VeriSec::Types::IdentityVerifyStepsMatch, nil]
1495
+ class IdentityVerifySteps < VeriSecObject
1496
+ FIELDS = {
1497
+ "liveness" => "IdentityVerifyStepsLiveness",
1498
+ "quality" => "IdentityVerifyStepsQuality",
1499
+ "match" => "IdentityVerifyStepsMatch"
1500
+ }.freeze
1501
+ end
1502
+
1503
+ # IdentityVerifyStepsLiveness.
1504
+ #
1505
+ # @!attribute [r] live
1506
+ # @return [Boolean, nil]
1507
+ # @!attribute [r] status
1508
+ # @return [Numeric, nil]
1509
+ # @!attribute [r] reasonCode
1510
+ # @return [Numeric, nil]
1511
+ class IdentityVerifyStepsLiveness < VeriSecObject
1512
+ FIELDS = {
1513
+ "live" => nil,
1514
+ "status" => nil,
1515
+ "reasonCode" => nil
1516
+ }.freeze
1517
+ end
1518
+
1519
+ # IdentityVerifyStepsQuality.
1520
+ #
1521
+ # @!attribute [r] ok
1522
+ # @return [Boolean, nil]
1523
+ # @!attribute [r] failed
1524
+ # @return [Array<String>, nil]
1525
+ # @!attribute [r] checked
1526
+ # @return [Array<String>, nil]
1527
+ class IdentityVerifyStepsQuality < VeriSecObject
1528
+ FIELDS = {
1529
+ "ok" => nil,
1530
+ "failed" => nil,
1531
+ "checked" => nil
1532
+ }.freeze
1533
+ end
1534
+
1535
+ # IdentityVerifyStepsMatch.
1536
+ #
1537
+ # @!attribute [r] similarity
1538
+ # @return [Numeric, nil]
1539
+ # @!attribute [r] score
1540
+ # @return [Numeric, nil]
1541
+ # @!attribute [r] match
1542
+ # @return [Boolean, nil]
1543
+ # @!attribute [r] threshold
1544
+ # @return [Numeric, nil]
1545
+ class IdentityVerifyStepsMatch < VeriSecObject
1546
+ FIELDS = {
1547
+ "similarity" => nil,
1548
+ "score" => nil,
1549
+ "match" => nil,
1550
+ "threshold" => nil
1551
+ }.freeze
1552
+ end
1553
+
1554
+ # IdentityVerifyMetadata.
1555
+ #
1556
+ # @!attribute [r] serverTime
1557
+ # @return [String, nil]
1558
+ # @!attribute [r] ctx
1559
+ # @return [VeriSec::Types::IdentityVerifyMetadataCtx, nil]
1560
+ class IdentityVerifyMetadata < VeriSecObject
1561
+ FIELDS = {
1562
+ "serverTime" => nil,
1563
+ "ctx" => "IdentityVerifyMetadataCtx"
1564
+ }.freeze
1565
+ end
1566
+
1567
+ # IdentityVerifyMetadataCtx.
1568
+ #
1569
+ # @!attribute [r] userIp
1570
+ # @return [String, nil]
1571
+ class IdentityVerifyMetadataCtx < VeriSecObject
1572
+ FIELDS = {
1573
+ "userIp" => nil
1574
+ }.freeze
1575
+ end
1576
+
1577
+ # The answer of Face Login.
1578
+ #
1579
+ # Returned by {VeriSec::Resources::FaceLogin#authenticate}.
1580
+ #
1581
+ # @!attribute [r] code
1582
+ # @return [Numeric, nil]
1583
+ # @!attribute [r] msg
1584
+ # @return [String, nil]
1585
+ # @!attribute [r] authenticated
1586
+ # @return [Boolean, nil]
1587
+ # @!attribute [r] userId
1588
+ # @return [Object, nil]
1589
+ # @!attribute [r] similarity
1590
+ # @return [Numeric, nil]
1591
+ # @!attribute [r] live
1592
+ # @return [Boolean, nil]
1593
+ # @!attribute [r] elapsedTime
1594
+ # @return [Numeric, nil]
1595
+ # @!attribute [r] metadata
1596
+ # @return [VeriSec::Types::FaceLoginAuthenticateMetadata, nil]
1597
+ class FaceLoginAuthenticate < VeriSecObject
1598
+ FIELDS = {
1599
+ "code" => nil,
1600
+ "msg" => nil,
1601
+ "authenticated" => nil,
1602
+ "userId" => nil,
1603
+ "similarity" => nil,
1604
+ "live" => nil,
1605
+ "elapsedTime" => nil,
1606
+ "metadata" => "FaceLoginAuthenticateMetadata"
1607
+ }.freeze
1608
+ end
1609
+
1610
+ # FaceLoginAuthenticateMetadata.
1611
+ #
1612
+ # @!attribute [r] serverTime
1613
+ # @return [String, nil]
1614
+ # @!attribute [r] ctx
1615
+ # @return [VeriSec::Types::FaceLoginAuthenticateMetadataCtx, nil]
1616
+ class FaceLoginAuthenticateMetadata < VeriSecObject
1617
+ FIELDS = {
1618
+ "serverTime" => nil,
1619
+ "ctx" => "FaceLoginAuthenticateMetadataCtx"
1620
+ }.freeze
1621
+ end
1622
+
1623
+ # FaceLoginAuthenticateMetadataCtx.
1624
+ #
1625
+ # @!attribute [r] userIp
1626
+ # @return [String, nil]
1627
+ class FaceLoginAuthenticateMetadataCtx < VeriSecObject
1628
+ FIELDS = {
1629
+ "userIp" => nil
1630
+ }.freeze
1631
+ end
1632
+
1633
+ # The answer of Sign-up Fraud Check.
1634
+ #
1635
+ # Returned by {VeriSec::Resources::Fraud#signup_check}.
1636
+ #
1637
+ # @!attribute [r] code
1638
+ # @return [Numeric, nil]
1639
+ # @!attribute [r] msg
1640
+ # @return [String, nil]
1641
+ # @!attribute [r] allow
1642
+ # @return [Boolean, nil]
1643
+ # @!attribute [r] reason
1644
+ # @return [String, nil]
1645
+ # @!attribute [r] matchedId
1646
+ # @return [String, nil]
1647
+ # @!attribute [r] live
1648
+ # @return [Boolean, nil]
1649
+ # @!attribute [r] elapsedTime
1650
+ # @return [Numeric, nil]
1651
+ # @!attribute [r] metadata
1652
+ # @return [VeriSec::Types::FraudSignupCheckMetadata, nil]
1653
+ class FraudSignupCheck < VeriSecObject
1654
+ FIELDS = {
1655
+ "code" => nil,
1656
+ "msg" => nil,
1657
+ "allow" => nil,
1658
+ "reason" => nil,
1659
+ "matchedId" => nil,
1660
+ "live" => nil,
1661
+ "elapsedTime" => nil,
1662
+ "metadata" => "FraudSignupCheckMetadata"
1663
+ }.freeze
1664
+ end
1665
+
1666
+ # FraudSignupCheckMetadata.
1667
+ #
1668
+ # @!attribute [r] serverTime
1669
+ # @return [String, nil]
1670
+ # @!attribute [r] ctx
1671
+ # @return [VeriSec::Types::FraudSignupCheckMetadataCtx, nil]
1672
+ class FraudSignupCheckMetadata < VeriSecObject
1673
+ FIELDS = {
1674
+ "serverTime" => nil,
1675
+ "ctx" => "FraudSignupCheckMetadataCtx"
1676
+ }.freeze
1677
+ end
1678
+
1679
+ # FraudSignupCheckMetadataCtx.
1680
+ #
1681
+ # @!attribute [r] userIp
1682
+ # @return [String, nil]
1683
+ class FraudSignupCheckMetadataCtx < VeriSecObject
1684
+ FIELDS = {
1685
+ "userIp" => nil
1686
+ }.freeze
1687
+ end
1688
+
1689
+ # The answer of Proctoring Check.
1690
+ #
1691
+ # Returned by {VeriSec::Resources::Proctor#check}.
1692
+ #
1693
+ # @!attribute [r] code
1694
+ # @return [Numeric, nil]
1695
+ # @!attribute [r] msg
1696
+ # @return [String, nil]
1697
+ # @!attribute [r] ok
1698
+ # @return [Boolean, nil]
1699
+ # @!attribute [r] live
1700
+ # @return [Boolean, nil]
1701
+ # @!attribute [r] faceCount
1702
+ # @return [Numeric, nil]
1703
+ # @!attribute [r] offGaze
1704
+ # @return [Numeric, nil]
1705
+ # @!attribute [r] lookingAway
1706
+ # @return [Boolean, nil]
1707
+ # @!attribute [r] maskWorn
1708
+ # @return [Boolean, nil]
1709
+ # @!attribute [r] elapsedTime
1710
+ # @return [Numeric, nil]
1711
+ # @!attribute [r] metadata
1712
+ # @return [VeriSec::Types::ProctorCheckMetadata, nil]
1713
+ class ProctorCheck < VeriSecObject
1714
+ FIELDS = {
1715
+ "code" => nil,
1716
+ "msg" => nil,
1717
+ "ok" => nil,
1718
+ "live" => nil,
1719
+ "faceCount" => nil,
1720
+ "offGaze" => nil,
1721
+ "lookingAway" => nil,
1722
+ "maskWorn" => nil,
1723
+ "elapsedTime" => nil,
1724
+ "metadata" => "ProctorCheckMetadata"
1725
+ }.freeze
1726
+ end
1727
+
1728
+ # ProctorCheckMetadata.
1729
+ #
1730
+ # @!attribute [r] serverTime
1731
+ # @return [String, nil]
1732
+ # @!attribute [r] ctx
1733
+ # @return [VeriSec::Types::ProctorCheckMetadataCtx, nil]
1734
+ class ProctorCheckMetadata < VeriSecObject
1735
+ FIELDS = {
1736
+ "serverTime" => nil,
1737
+ "ctx" => "ProctorCheckMetadataCtx"
1738
+ }.freeze
1739
+ end
1740
+
1741
+ # ProctorCheckMetadataCtx.
1742
+ #
1743
+ # @!attribute [r] userIp
1744
+ # @return [String, nil]
1745
+ class ProctorCheckMetadataCtx < VeriSecObject
1746
+ FIELDS = {
1747
+ "userIp" => nil
1748
+ }.freeze
1749
+ end
1750
+
1751
+ # The answer of Age-gated Checkout.
1752
+ #
1753
+ # Returned by {VeriSec::Resources::AgeGate#checkout}.
1754
+ #
1755
+ # @!attribute [r] code
1756
+ # @return [Numeric, nil]
1757
+ # @!attribute [r] msg
1758
+ # @return [String, nil]
1759
+ # @!attribute [r] allowed
1760
+ # @return [Boolean, nil]
1761
+ # @!attribute [r] age
1762
+ # @return [Array<Numeric>, nil]
1763
+ # @!attribute [r] live
1764
+ # @return [Boolean, nil]
1765
+ # @!attribute [r] elapsedTime
1766
+ # @return [Numeric, nil]
1767
+ # @!attribute [r] metadata
1768
+ # @return [VeriSec::Types::AgeGateCheckoutMetadata, nil]
1769
+ class AgeGateCheckout < VeriSecObject
1770
+ FIELDS = {
1771
+ "code" => nil,
1772
+ "msg" => nil,
1773
+ "allowed" => nil,
1774
+ "age" => nil,
1775
+ "live" => nil,
1776
+ "elapsedTime" => nil,
1777
+ "metadata" => "AgeGateCheckoutMetadata"
1778
+ }.freeze
1779
+ end
1780
+
1781
+ # AgeGateCheckoutMetadata.
1782
+ #
1783
+ # @!attribute [r] serverTime
1784
+ # @return [String, nil]
1785
+ # @!attribute [r] ctx
1786
+ # @return [VeriSec::Types::AgeGateCheckoutMetadataCtx, nil]
1787
+ class AgeGateCheckoutMetadata < VeriSecObject
1788
+ FIELDS = {
1789
+ "serverTime" => nil,
1790
+ "ctx" => "AgeGateCheckoutMetadataCtx"
1791
+ }.freeze
1792
+ end
1793
+
1794
+ # AgeGateCheckoutMetadataCtx.
1795
+ #
1796
+ # @!attribute [r] userIp
1797
+ # @return [String, nil]
1798
+ class AgeGateCheckoutMetadataCtx < VeriSecObject
1799
+ FIELDS = {
1800
+ "userIp" => nil
1801
+ }.freeze
1802
+ end
1803
+
1804
+ # The answer of Photo Kiosk.
1805
+ #
1806
+ # Returned by {VeriSec::Resources::Kiosk#photo}.
1807
+ #
1808
+ # @!attribute [r] code
1809
+ # @return [Numeric, nil]
1810
+ # @!attribute [r] msg
1811
+ # @return [String, nil]
1812
+ # @!attribute [r] compliant
1813
+ # @return [Boolean, nil]
1814
+ # @!attribute [r] nonCompliant
1815
+ # @return [Array<Object>, nil]
1816
+ # @!attribute [r] fixedImage
1817
+ # @return [String, nil]
1818
+ # @!attribute [r] printReady
1819
+ # @return [Boolean, nil]
1820
+ # @!attribute [r] elapsedTime
1821
+ # @return [Numeric, nil]
1822
+ # @!attribute [r] metadata
1823
+ # @return [VeriSec::Types::KioskPhotoMetadata, nil]
1824
+ class KioskPhoto < VeriSecObject
1825
+ FIELDS = {
1826
+ "code" => nil,
1827
+ "msg" => nil,
1828
+ "compliant" => nil,
1829
+ "nonCompliant" => nil,
1830
+ "fixedImage" => nil,
1831
+ "printReady" => nil,
1832
+ "elapsedTime" => nil,
1833
+ "metadata" => "KioskPhotoMetadata"
1834
+ }.freeze
1835
+ end
1836
+
1837
+ # KioskPhotoMetadata.
1838
+ #
1839
+ # @!attribute [r] serverTime
1840
+ # @return [String, nil]
1841
+ # @!attribute [r] ctx
1842
+ # @return [VeriSec::Types::KioskPhotoMetadataCtx, nil]
1843
+ class KioskPhotoMetadata < VeriSecObject
1844
+ FIELDS = {
1845
+ "serverTime" => nil,
1846
+ "ctx" => "KioskPhotoMetadataCtx"
1847
+ }.freeze
1848
+ end
1849
+
1850
+ # KioskPhotoMetadataCtx.
1851
+ #
1852
+ # @!attribute [r] userIp
1853
+ # @return [String, nil]
1854
+ class KioskPhotoMetadataCtx < VeriSecObject
1855
+ FIELDS = {
1856
+ "userIp" => nil
1857
+ }.freeze
1858
+ end
1859
+
1860
+ # The full result of Document Read: everything the check found. See the fields listed in the operation.
1861
+ #
1862
+ # Returned by {VeriSec::Resources::Documents#read}.
1863
+ #
1864
+ # An open result: the engine's full answer, with no fixed fields. Read it as a Hash (`result["faces"]`,
1865
+ # `result.dig(…)`, `result.keys`, `result.to_h`); fields it has also read as methods.
1866
+ class DocumentRead < VeriSecObject
1867
+ FIELDS = {}.freeze
1868
+ end
1869
+
1870
+ # The answer of Document Classify.
1871
+ #
1872
+ # Returned by {VeriSec::Resources::Documents#classify}.
1873
+ #
1874
+ # @!attribute [r] document_name
1875
+ # @return [String, nil]
1876
+ # @!attribute [r] doc_type
1877
+ # @return [String, nil]
1878
+ # @!attribute [r] category
1879
+ # @return [String, nil]
1880
+ # @!attribute [r] country
1881
+ # @return [String, nil]
1882
+ # @!attribute [r] country_name
1883
+ # @return [String, nil]
1884
+ # @!attribute [r] state
1885
+ # @return [Object, nil]
1886
+ # @!attribute [r] year
1887
+ # @return [String, nil]
1888
+ # @!attribute [r] size
1889
+ # @return [String, nil]
1890
+ # @!attribute [r] has_mrz
1891
+ # @return [Boolean, nil]
1892
+ # @!attribute [r] has_chip
1893
+ # @return [Boolean, nil]
1894
+ # @!attribute [r] deprecated
1895
+ # @return [Boolean, nil]
1896
+ # @!attribute [r] confidence
1897
+ # @return [Numeric, nil]
1898
+ class DocumentClassify < VeriSecObject
1899
+ FIELDS = {
1900
+ "document_name" => nil,
1901
+ "doc_type" => nil,
1902
+ "category" => nil,
1903
+ "country" => nil,
1904
+ "country_name" => nil,
1905
+ "state" => nil,
1906
+ "year" => nil,
1907
+ "size" => nil,
1908
+ "has_mrz" => nil,
1909
+ "has_chip" => nil,
1910
+ "deprecated" => nil,
1911
+ "confidence" => nil
1912
+ }.freeze
1913
+ end
1914
+
1915
+ # The answer of Document MRZ.
1916
+ #
1917
+ # Returned by {VeriSec::Resources::Documents#mrz}.
1918
+ #
1919
+ # @!attribute [r] lines
1920
+ # @return [Array<String>, nil]
1921
+ # @!attribute [r] format
1922
+ # @return [String, nil]
1923
+ # @!attribute [r] valid
1924
+ # @return [Boolean, nil]
1925
+ # @!attribute [r] expired
1926
+ # @return [Boolean, nil]
1927
+ # @!attribute [r] problems
1928
+ # @return [Array<VeriSec::Types::DocumentMrzProblem>, nil]
1929
+ # @!attribute [r] check_digits
1930
+ # @return [VeriSec::Types::DocumentMrzCheckDigits, nil]
1931
+ # @!attribute [r] print_quality
1932
+ # @return [VeriSec::Types::DocumentMrzPrintQuality, nil]
1933
+ # @!attribute [r] parsed
1934
+ # @return [VeriSec::Types::DocumentMrzParsed, nil]
1935
+ class DocumentMrz < VeriSecObject
1936
+ FIELDS = {
1937
+ "lines" => nil,
1938
+ "format" => nil,
1939
+ "valid" => nil,
1940
+ "expired" => nil,
1941
+ "problems" => "DocumentMrzProblem",
1942
+ "check_digits" => "DocumentMrzCheckDigits",
1943
+ "print_quality" => "DocumentMrzPrintQuality",
1944
+ "parsed" => "DocumentMrzParsed"
1945
+ }.freeze
1946
+ end
1947
+
1948
+ # DocumentMrzProblem.
1949
+ #
1950
+ # @!attribute [r] field
1951
+ # @return [String, nil]
1952
+ # @!attribute [r] issue
1953
+ # @return [String, nil]
1954
+ class DocumentMrzProblem < VeriSecObject
1955
+ FIELDS = {
1956
+ "field" => nil,
1957
+ "issue" => nil
1958
+ }.freeze
1959
+ end
1960
+
1961
+ # DocumentMrzCheckDigits.
1962
+ #
1963
+ # @!attribute [r] doc_number
1964
+ # @return [VeriSec::Types::DocumentMrzCheckDigitsDocNumber, nil]
1965
+ # @!attribute [r] birth_date
1966
+ # @return [VeriSec::Types::DocumentMrzCheckDigitsBirthDate, nil]
1967
+ # @!attribute [r] expiry
1968
+ # @return [VeriSec::Types::DocumentMrzCheckDigitsExpiry, nil]
1969
+ # @!attribute [r] personal_number
1970
+ # @return [VeriSec::Types::DocumentMrzCheckDigitsPersonalNumber, nil]
1971
+ # @!attribute [r] composite
1972
+ # @return [VeriSec::Types::DocumentMrzCheckDigitsComposite, nil]
1973
+ class DocumentMrzCheckDigits < VeriSecObject
1974
+ FIELDS = {
1975
+ "doc_number" => "DocumentMrzCheckDigitsDocNumber",
1976
+ "birth_date" => "DocumentMrzCheckDigitsBirthDate",
1977
+ "expiry" => "DocumentMrzCheckDigitsExpiry",
1978
+ "personal_number" => "DocumentMrzCheckDigitsPersonalNumber",
1979
+ "composite" => "DocumentMrzCheckDigitsComposite"
1980
+ }.freeze
1981
+ end
1982
+
1983
+ # DocumentMrzCheckDigitsDocNumber.
1984
+ #
1985
+ # @!attribute [r] digit
1986
+ # @return [String, nil]
1987
+ # @!attribute [r] ok
1988
+ # @return [Boolean, nil]
1989
+ class DocumentMrzCheckDigitsDocNumber < VeriSecObject
1990
+ FIELDS = {
1991
+ "digit" => nil,
1992
+ "ok" => nil
1993
+ }.freeze
1994
+ end
1995
+
1996
+ # DocumentMrzCheckDigitsBirthDate.
1997
+ #
1998
+ # @!attribute [r] digit
1999
+ # @return [String, nil]
2000
+ # @!attribute [r] ok
2001
+ # @return [Boolean, nil]
2002
+ class DocumentMrzCheckDigitsBirthDate < VeriSecObject
2003
+ FIELDS = {
2004
+ "digit" => nil,
2005
+ "ok" => nil
2006
+ }.freeze
2007
+ end
2008
+
2009
+ # DocumentMrzCheckDigitsExpiry.
2010
+ #
2011
+ # @!attribute [r] digit
2012
+ # @return [String, nil]
2013
+ # @!attribute [r] ok
2014
+ # @return [Boolean, nil]
2015
+ class DocumentMrzCheckDigitsExpiry < VeriSecObject
2016
+ FIELDS = {
2017
+ "digit" => nil,
2018
+ "ok" => nil
2019
+ }.freeze
2020
+ end
2021
+
2022
+ # DocumentMrzCheckDigitsPersonalNumber.
2023
+ #
2024
+ # @!attribute [r] digit
2025
+ # @return [String, nil]
2026
+ # @!attribute [r] ok
2027
+ # @return [Boolean, nil]
2028
+ class DocumentMrzCheckDigitsPersonalNumber < VeriSecObject
2029
+ FIELDS = {
2030
+ "digit" => nil,
2031
+ "ok" => nil
2032
+ }.freeze
2033
+ end
2034
+
2035
+ # DocumentMrzCheckDigitsComposite.
2036
+ #
2037
+ # @!attribute [r] digit
2038
+ # @return [String, nil]
2039
+ # @!attribute [r] ok
2040
+ # @return [Boolean, nil]
2041
+ class DocumentMrzCheckDigitsComposite < VeriSecObject
2042
+ FIELDS = {
2043
+ "digit" => nil,
2044
+ "ok" => nil
2045
+ }.freeze
2046
+ end
2047
+
2048
+ # DocumentMrzPrintQuality.
2049
+ #
2050
+ # @!attribute [r] check_sums
2051
+ # @return [String, nil]
2052
+ # @!attribute [r] contrast
2053
+ # @return [String, nil]
2054
+ # @!attribute [r] doc_format
2055
+ # @return [String, nil]
2056
+ # @!attribute [r] mrz_format
2057
+ # @return [String, nil]
2058
+ # @!attribute [r] print_position
2059
+ # @return [String, nil]
2060
+ # @!attribute [r] stains
2061
+ # @return [String, nil]
2062
+ # @!attribute [r] symbols
2063
+ # @return [String, nil]
2064
+ class DocumentMrzPrintQuality < VeriSecObject
2065
+ FIELDS = {
2066
+ "check_sums" => nil,
2067
+ "contrast" => nil,
2068
+ "doc_format" => nil,
2069
+ "mrz_format" => nil,
2070
+ "print_position" => nil,
2071
+ "stains" => nil,
2072
+ "symbols" => nil
2073
+ }.freeze
2074
+ end
2075
+
2076
+ # DocumentMrzParsed.
2077
+ #
2078
+ # @!attribute [r] RemainderTerm
2079
+ # @return [String, nil]
2080
+ # @!attribute [r] Surname
2081
+ # @return [String, nil]
2082
+ # @!attribute [r] Sex
2083
+ # @return [String, nil]
2084
+ #
2085
+ # Read with `[]`: `Surname And Given Names`, `Date of Birth`, `Given Names`, `Date of Expiry`, `Document
2086
+ # Class Code`, `Issuing State Name`, `Final Checkdigit`, `Optional Data CheckDigit`, `Optional Data`,
2087
+ # `Issuing State Code`, `Document Number`, `Document Number Checkdigit`, `Nationality Code`, `Date of
2088
+ # Birth Checkdigit`, `Date of Expiry Checkdigit`, `Personal Number`, `MRZ Type`.
2089
+ class DocumentMrzParsed < VeriSecObject
2090
+ FIELDS = {
2091
+ "Surname And Given Names" => nil,
2092
+ "RemainderTerm" => nil,
2093
+ "Date of Birth" => nil,
2094
+ "Given Names" => nil,
2095
+ "Surname" => nil,
2096
+ "Date of Expiry" => nil,
2097
+ "Document Class Code" => nil,
2098
+ "Issuing State Name" => nil,
2099
+ "Final Checkdigit" => nil,
2100
+ "Optional Data CheckDigit" => nil,
2101
+ "Optional Data" => nil,
2102
+ "Issuing State Code" => nil,
2103
+ "Document Number" => nil,
2104
+ "Document Number Checkdigit" => nil,
2105
+ "Nationality Code" => nil,
2106
+ "Date of Birth Checkdigit" => nil,
2107
+ "Sex" => nil,
2108
+ "Date of Expiry Checkdigit" => nil,
2109
+ "Personal Number" => nil,
2110
+ "MRZ Type" => nil
2111
+ }.freeze
2112
+ end
2113
+
2114
+ # The answer of Document Portrait.
2115
+ #
2116
+ # Returned by {VeriSec::Resources::Documents#portrait}.
2117
+ #
2118
+ # @!attribute [r] portrait_ref
2119
+ # @return [String, nil]
2120
+ # @!attribute [r] face_detected
2121
+ # @return [Boolean, nil]
2122
+ # @!attribute [r] faces_on_document
2123
+ # @return [Numeric, nil]
2124
+ # @!attribute [r] face_confidence
2125
+ # @return [Numeric, nil]
2126
+ # @!attribute [r] portrait
2127
+ # @return [String, nil]
2128
+ class DocumentPortrait < VeriSecObject
2129
+ FIELDS = {
2130
+ "portrait_ref" => nil,
2131
+ "face_detected" => nil,
2132
+ "faces_on_document" => nil,
2133
+ "face_confidence" => nil,
2134
+ "portrait" => nil
2135
+ }.freeze
2136
+ end
2137
+
2138
+ # The answer of Document Authenticity.
2139
+ #
2140
+ # Returned by {VeriSec::Resources::Documents#authenticity}.
2141
+ #
2142
+ # @!attribute [r] overall
2143
+ # @return [String, nil]
2144
+ # @!attribute [r] failed
2145
+ # @return [Array<String>, nil]
2146
+ # @!attribute [r] summary
2147
+ # @return [VeriSec::Types::DocumentAuthenticitySummary, nil]
2148
+ # @!attribute [r] checks
2149
+ # @return [Array<VeriSec::Types::DocumentAuthenticityCheck>, nil]
2150
+ # @!attribute [r] image_quality
2151
+ # @return [VeriSec::Types::DocumentAuthenticityImageQuality, nil]
2152
+ class DocumentAuthenticity < VeriSecObject
2153
+ FIELDS = {
2154
+ "overall" => nil,
2155
+ "failed" => nil,
2156
+ "summary" => "DocumentAuthenticitySummary",
2157
+ "checks" => "DocumentAuthenticityCheck",
2158
+ "image_quality" => "DocumentAuthenticityImageQuality"
2159
+ }.freeze
2160
+ end
2161
+
2162
+ # DocumentAuthenticitySummary.
2163
+ #
2164
+ # @!attribute [r] pass
2165
+ # @return [Numeric, nil]
2166
+ # @!attribute [r] fail
2167
+ # @return [Numeric, nil]
2168
+ # @!attribute [r] not_checked
2169
+ # @return [Numeric, nil]
2170
+ class DocumentAuthenticitySummary < VeriSecObject
2171
+ FIELDS = {
2172
+ "pass" => nil,
2173
+ "fail" => nil,
2174
+ "not_checked" => nil
2175
+ }.freeze
2176
+ end
2177
+
2178
+ # DocumentAuthenticityCheck.
2179
+ #
2180
+ # @!attribute [r] name
2181
+ # @return [String, nil]
2182
+ # @!attribute [r] status
2183
+ # @return [String, nil]
2184
+ class DocumentAuthenticityCheck < VeriSecObject
2185
+ FIELDS = {
2186
+ "name" => nil,
2187
+ "status" => nil
2188
+ }.freeze
2189
+ end
2190
+
2191
+ # DocumentAuthenticityImageQuality.
2192
+ #
2193
+ # @!attribute [r] focus
2194
+ # @return [String, nil]
2195
+ # @!attribute [r] glare
2196
+ # @return [String, nil]
2197
+ # @!attribute [r] portrait
2198
+ # @return [String, nil]
2199
+ # @!attribute [r] bounds
2200
+ # @return [String, nil]
2201
+ # @!attribute [r] perspective
2202
+ # @return [String, nil]
2203
+ # @!attribute [r] resolution
2204
+ # @return [String, nil]
2205
+ class DocumentAuthenticityImageQuality < VeriSecObject
2206
+ FIELDS = {
2207
+ "focus" => nil,
2208
+ "glare" => nil,
2209
+ "portrait" => nil,
2210
+ "bounds" => nil,
2211
+ "perspective" => nil,
2212
+ "resolution" => nil
2213
+ }.freeze
2214
+ end
2215
+
2216
+ # The answer of Document Fields.
2217
+ #
2218
+ # Returned by {VeriSec::Resources::Documents#fields}.
2219
+ #
2220
+ # @!attribute [r] date_format
2221
+ # @return [String, nil]
2222
+ # @!attribute [r] count
2223
+ # @return [Numeric, nil]
2224
+ # @!attribute [r] summary
2225
+ # @return [VeriSec::Types::DocumentFieldsSummary, nil]
2226
+ # @!attribute [r] fields
2227
+ # @return [Array<VeriSec::Types::DocumentFieldsField>, nil]
2228
+ class DocumentFields < VeriSecObject
2229
+ FIELDS = {
2230
+ "date_format" => nil,
2231
+ "count" => nil,
2232
+ "summary" => "DocumentFieldsSummary",
2233
+ "fields" => "DocumentFieldsField"
2234
+ }.freeze
2235
+ end
2236
+
2237
+ # DocumentFieldsSummary.
2238
+ #
2239
+ # @!attribute [r] pass
2240
+ # @return [Numeric, nil]
2241
+ # @!attribute [r] fail
2242
+ # @return [Numeric, nil]
2243
+ # @!attribute [r] not_checked
2244
+ # @return [Numeric, nil]
2245
+ # @!attribute [r] sources_disagree
2246
+ # @return [Numeric, nil]
2247
+ class DocumentFieldsSummary < VeriSecObject
2248
+ FIELDS = {
2249
+ "pass" => nil,
2250
+ "fail" => nil,
2251
+ "not_checked" => nil,
2252
+ "sources_disagree" => nil
2253
+ }.freeze
2254
+ end
2255
+
2256
+ # DocumentFieldsField.
2257
+ #
2258
+ # @!attribute [r] type
2259
+ # @return [Numeric, nil]
2260
+ # @!attribute [r] label
2261
+ # @return [String, nil]
2262
+ # @!attribute [r] status
2263
+ # @return [String, nil]
2264
+ # @!attribute [r] sources
2265
+ # @return [Array<String>, nil]
2266
+ # @!attribute [r] sources_agree
2267
+ # @return [String, nil]
2268
+ # @!attribute [r] value_masked
2269
+ # @return [String, nil]
2270
+ class DocumentFieldsField < VeriSecObject
2271
+ FIELDS = {
2272
+ "type" => nil,
2273
+ "label" => nil,
2274
+ "status" => nil,
2275
+ "sources" => nil,
2276
+ "sources_agree" => nil,
2277
+ "value_masked" => nil
2278
+ }.freeze
2279
+ end
2280
+
2281
+ # The full result of Proof of Address: everything the check found. See the fields listed in the operation.
2282
+ #
2283
+ # Returned by {VeriSec::Resources::ProofOfAddress#analyze}.
2284
+ #
2285
+ # An open result: the engine's full answer, with no fixed fields. Read it as a Hash (`result["faces"]`,
2286
+ # `result.dig(…)`, `result.keys`, `result.to_h`); fields it has also read as methods.
2287
+ class ProofOfAddressAnalyze < VeriSecObject
2288
+ FIELDS = {}.freeze
2289
+ end
2290
+
2291
+ # The full result of MRZ Read: everything the check found. See the fields listed in the operation.
2292
+ #
2293
+ # Returned by {VeriSec::Resources::Mrz#read}.
2294
+ #
2295
+ # An open result: the engine's full answer, with no fixed fields. Read it as a Hash (`result["faces"]`,
2296
+ # `result.dig(…)`, `result.keys`, `result.to_h`); fields it has also read as methods.
2297
+ class MrzRead < VeriSecObject
2298
+ FIELDS = {}.freeze
2299
+ end
2300
+
2301
+ # The answer of MRZ Recognize.
2302
+ #
2303
+ # Returned by {VeriSec::Resources::Mrz#recognize}.
2304
+ #
2305
+ # @!attribute [r] lines
2306
+ # @return [Array<String>, nil]
2307
+ # @!attribute [r] warped_box
2308
+ # @return [Array<Numeric>, nil]
2309
+ # @!attribute [r] confidence
2310
+ # @return [Array<Numeric>, nil]
2311
+ class MrzRecognize < VeriSecObject
2312
+ FIELDS = {
2313
+ "lines" => nil,
2314
+ "warped_box" => nil,
2315
+ "confidence" => nil
2316
+ }.freeze
2317
+ end
2318
+
2319
+ # The answer of MRZ Parse.
2320
+ #
2321
+ # Returned by {VeriSec::Resources::Mrz#parse}.
2322
+ #
2323
+ # @!attribute [r] format
2324
+ # @return [String, nil]
2325
+ # @!attribute [r] valid
2326
+ # @return [Boolean, nil]
2327
+ # @!attribute [r] expired
2328
+ # @return [Boolean, nil]
2329
+ # @!attribute [r] problems
2330
+ # @return [Array<Object>, nil]
2331
+ # @!attribute [r] parsed
2332
+ # @return [VeriSec::Types::MrzParseParsed, nil]
2333
+ class MrzParse < VeriSecObject
2334
+ FIELDS = {
2335
+ "format" => nil,
2336
+ "valid" => nil,
2337
+ "expired" => nil,
2338
+ "problems" => nil,
2339
+ "parsed" => "MrzParseParsed"
2340
+ }.freeze
2341
+ end
2342
+
2343
+ # MrzParseParsed.
2344
+ #
2345
+ # @!attribute [r] doc
2346
+ # @return [String, nil]
2347
+ # @!attribute [r] country
2348
+ # @return [String, nil]
2349
+ # @!attribute [r] surname
2350
+ # @return [String, nil]
2351
+ # @!attribute [r] given_name
2352
+ # @return [String, nil]
2353
+ # @!attribute [r] doc_number
2354
+ # @return [String, nil]
2355
+ # @!attribute [r] nationality
2356
+ # @return [String, nil]
2357
+ # @!attribute [r] birth_date
2358
+ # @return [String, nil]
2359
+ # @!attribute [r] sex
2360
+ # @return [String, nil]
2361
+ # @!attribute [r] expiry
2362
+ # @return [String, nil]
2363
+ # @!attribute [r] personal_number
2364
+ # @return [String, nil]
2365
+ # @!attribute [r] check_digits
2366
+ # @return [VeriSec::Types::MrzParseParsedCheckDigits, nil]
2367
+ class MrzParseParsed < VeriSecObject
2368
+ FIELDS = {
2369
+ "doc" => nil,
2370
+ "country" => nil,
2371
+ "surname" => nil,
2372
+ "given_name" => nil,
2373
+ "doc_number" => nil,
2374
+ "nationality" => nil,
2375
+ "birth_date" => nil,
2376
+ "sex" => nil,
2377
+ "expiry" => nil,
2378
+ "personal_number" => nil,
2379
+ "check_digits" => "MrzParseParsedCheckDigits"
2380
+ }.freeze
2381
+ end
2382
+
2383
+ # MrzParseParsedCheckDigits.
2384
+ #
2385
+ # @!attribute [r] doc_number
2386
+ # @return [VeriSec::Types::MrzParseParsedCheckDigitsDocNumber, nil]
2387
+ # @!attribute [r] birth_date
2388
+ # @return [VeriSec::Types::MrzParseParsedCheckDigitsBirthDate, nil]
2389
+ # @!attribute [r] expiry
2390
+ # @return [VeriSec::Types::MrzParseParsedCheckDigitsExpiry, nil]
2391
+ # @!attribute [r] personal_number
2392
+ # @return [VeriSec::Types::MrzParseParsedCheckDigitsPersonalNumber, nil]
2393
+ # @!attribute [r] composite
2394
+ # @return [VeriSec::Types::MrzParseParsedCheckDigitsComposite, nil]
2395
+ class MrzParseParsedCheckDigits < VeriSecObject
2396
+ FIELDS = {
2397
+ "doc_number" => "MrzParseParsedCheckDigitsDocNumber",
2398
+ "birth_date" => "MrzParseParsedCheckDigitsBirthDate",
2399
+ "expiry" => "MrzParseParsedCheckDigitsExpiry",
2400
+ "personal_number" => "MrzParseParsedCheckDigitsPersonalNumber",
2401
+ "composite" => "MrzParseParsedCheckDigitsComposite"
2402
+ }.freeze
2403
+ end
2404
+
2405
+ # MrzParseParsedCheckDigitsDocNumber.
2406
+ #
2407
+ # @!attribute [r] digit
2408
+ # @return [String, nil]
2409
+ # @!attribute [r] ok
2410
+ # @return [Boolean, nil]
2411
+ class MrzParseParsedCheckDigitsDocNumber < VeriSecObject
2412
+ FIELDS = {
2413
+ "digit" => nil,
2414
+ "ok" => nil
2415
+ }.freeze
2416
+ end
2417
+
2418
+ # MrzParseParsedCheckDigitsBirthDate.
2419
+ #
2420
+ # @!attribute [r] digit
2421
+ # @return [String, nil]
2422
+ # @!attribute [r] ok
2423
+ # @return [Boolean, nil]
2424
+ class MrzParseParsedCheckDigitsBirthDate < VeriSecObject
2425
+ FIELDS = {
2426
+ "digit" => nil,
2427
+ "ok" => nil
2428
+ }.freeze
2429
+ end
2430
+
2431
+ # MrzParseParsedCheckDigitsExpiry.
2432
+ #
2433
+ # @!attribute [r] digit
2434
+ # @return [String, nil]
2435
+ # @!attribute [r] ok
2436
+ # @return [Boolean, nil]
2437
+ class MrzParseParsedCheckDigitsExpiry < VeriSecObject
2438
+ FIELDS = {
2439
+ "digit" => nil,
2440
+ "ok" => nil
2441
+ }.freeze
2442
+ end
2443
+
2444
+ # MrzParseParsedCheckDigitsPersonalNumber.
2445
+ #
2446
+ # @!attribute [r] digit
2447
+ # @return [String, nil]
2448
+ # @!attribute [r] ok
2449
+ # @return [Boolean, nil]
2450
+ class MrzParseParsedCheckDigitsPersonalNumber < VeriSecObject
2451
+ FIELDS = {
2452
+ "digit" => nil,
2453
+ "ok" => nil
2454
+ }.freeze
2455
+ end
2456
+
2457
+ # MrzParseParsedCheckDigitsComposite.
2458
+ #
2459
+ # @!attribute [r] digit
2460
+ # @return [String, nil]
2461
+ # @!attribute [r] ok
2462
+ # @return [Boolean, nil]
2463
+ class MrzParseParsedCheckDigitsComposite < VeriSecObject
2464
+ FIELDS = {
2465
+ "digit" => nil,
2466
+ "ok" => nil
2467
+ }.freeze
2468
+ end
2469
+
2470
+ # The answer of Email Risk.
2471
+ #
2472
+ # Returned by {VeriSec::Resources::Email#verify}.
2473
+ #
2474
+ # @!attribute [r] email
2475
+ # @return [String, nil]
2476
+ # @!attribute [r] domain
2477
+ # @return [String, nil]
2478
+ # @!attribute [r] syntax_ok
2479
+ # @return [Boolean, nil]
2480
+ # @!attribute [r] suggestion
2481
+ # @return [Object, nil]
2482
+ # @!attribute [r] disposable
2483
+ # @return [Boolean, nil]
2484
+ # @!attribute [r] free_provider
2485
+ # @return [Boolean, nil]
2486
+ # @!attribute [r] mail_server
2487
+ # @return [VeriSec::Types::EmailVerifyMailServer, nil]
2488
+ # @!attribute [r] mailbox
2489
+ # @return [String, nil]
2490
+ # @!attribute [r] deliverable
2491
+ # @return [String, nil]
2492
+ # @!attribute [r] risk
2493
+ # @return [VeriSec::Types::EmailVerifyRisk, nil]
2494
+ class EmailVerify < VeriSecObject
2495
+ FIELDS = {
2496
+ "email" => nil,
2497
+ "domain" => nil,
2498
+ "syntax_ok" => nil,
2499
+ "suggestion" => nil,
2500
+ "disposable" => nil,
2501
+ "free_provider" => nil,
2502
+ "mail_server" => "EmailVerifyMailServer",
2503
+ "mailbox" => nil,
2504
+ "deliverable" => nil,
2505
+ "risk" => "EmailVerifyRisk"
2506
+ }.freeze
2507
+ end
2508
+
2509
+ # EmailVerifyMailServer.
2510
+ #
2511
+ # @!attribute [r] found
2512
+ # @return [Boolean, nil]
2513
+ # @!attribute [r] hosts
2514
+ # @return [Array<String>, nil]
2515
+ class EmailVerifyMailServer < VeriSecObject
2516
+ FIELDS = {
2517
+ "found" => nil,
2518
+ "hosts" => nil
2519
+ }.freeze
2520
+ end
2521
+
2522
+ # EmailVerifyRisk.
2523
+ #
2524
+ # @!attribute [r] level
2525
+ # @return [String, nil]
2526
+ # @!attribute [r] reasons
2527
+ # @return [Array<Object>, nil]
2528
+ class EmailVerifyRisk < VeriSecObject
2529
+ FIELDS = {
2530
+ "level" => nil,
2531
+ "reasons" => nil
2532
+ }.freeze
2533
+ end
2534
+
2535
+ # The answer of Email Accounts.
2536
+ #
2537
+ # Returned by {VeriSec::Resources::Email#footprint}.
2538
+ #
2539
+ # @!attribute [r] email
2540
+ # @return [String, nil]
2541
+ # @!attribute [r] count
2542
+ # @return [Numeric, nil]
2543
+ # @!attribute [r] accounts
2544
+ # @return [Array<VeriSec::Types::EmailFootprintAccount>, nil]
2545
+ class EmailFootprint < VeriSecObject
2546
+ FIELDS = {
2547
+ "email" => nil,
2548
+ "count" => nil,
2549
+ "accounts" => "EmailFootprintAccount"
2550
+ }.freeze
2551
+ end
2552
+
2553
+ # EmailFootprintAccount.
2554
+ #
2555
+ # @!attribute [r] site
2556
+ # @return [String, nil]
2557
+ # @!attribute [r] domain
2558
+ # @return [String, nil]
2559
+ # @!attribute [r] recovery_email_hint
2560
+ # @return [Object, nil]
2561
+ # @!attribute [r] phone_hint
2562
+ # @return [Object, nil]
2563
+ class EmailFootprintAccount < VeriSecObject
2564
+ FIELDS = {
2565
+ "site" => nil,
2566
+ "domain" => nil,
2567
+ "recovery_email_hint" => nil,
2568
+ "phone_hint" => nil
2569
+ }.freeze
2570
+ end
2571
+
2572
+ # The answer of Username Search.
2573
+ #
2574
+ # Returned by {VeriSec::Resources::Osint#username}.
2575
+ #
2576
+ # @!attribute [r] username
2577
+ # @return [String, nil]
2578
+ # @!attribute [r] found
2579
+ # @return [Numeric, nil]
2580
+ # @!attribute [r] common
2581
+ # @return [Boolean, nil]
2582
+ # @!attribute [r] profiles
2583
+ # @return [Array<VeriSec::Types::OsintUsernameProfile>, nil]
2584
+ # @!attribute [r] left_out
2585
+ # @return [Numeric, nil]
2586
+ class OsintUsername < VeriSecObject
2587
+ FIELDS = {
2588
+ "username" => nil,
2589
+ "found" => nil,
2590
+ "common" => nil,
2591
+ "profiles" => "OsintUsernameProfile",
2592
+ "left_out" => nil
2593
+ }.freeze
2594
+ end
2595
+
2596
+ # OsintUsernameProfile.
2597
+ #
2598
+ # @!attribute [r] site
2599
+ # @return [String, nil]
2600
+ # @!attribute [r] url
2601
+ # @return [String, nil]
2602
+ class OsintUsernameProfile < VeriSecObject
2603
+ FIELDS = {
2604
+ "site" => nil,
2605
+ "url" => nil
2606
+ }.freeze
2607
+ end
2608
+
2609
+ # The answer of Phone Intelligence.
2610
+ #
2611
+ # Returned by {VeriSec::Resources::Phone#lookup}.
2612
+ #
2613
+ # @!attribute [r] phone
2614
+ # @return [String, nil]
2615
+ # @!attribute [r] valid
2616
+ # @return [Boolean, nil]
2617
+ # @!attribute [r] format
2618
+ # @return [VeriSec::Types::PhoneLookupFormat, nil]
2619
+ # @!attribute [r] country
2620
+ # @return [VeriSec::Types::PhoneLookupCountry, nil]
2621
+ # @!attribute [r] location
2622
+ # @return [Object, nil]
2623
+ # @!attribute [r] line
2624
+ # @return [VeriSec::Types::PhoneLookupLine, nil]
2625
+ # @!attribute [r] status
2626
+ # @return [String, nil]
2627
+ # @!attribute [r] sms_pumping
2628
+ # @return [VeriSec::Types::PhoneLookupSmsPumping, nil]
2629
+ # @!attribute [r] sim_swap
2630
+ # @return [VeriSec::Types::PhoneLookupSimSwap, nil]
2631
+ # @!attribute [r] call_forwarding
2632
+ # @return [VeriSec::Types::PhoneLookupCallForwarding, nil]
2633
+ # @!attribute [r] caller
2634
+ # @return [VeriSec::Types::PhoneLookupCaller, nil]
2635
+ # @!attribute [r] risk
2636
+ # @return [VeriSec::Types::PhoneLookupRisk, nil]
2637
+ class PhoneLookup < VeriSecObject
2638
+ FIELDS = {
2639
+ "phone" => nil,
2640
+ "valid" => nil,
2641
+ "format" => "PhoneLookupFormat",
2642
+ "country" => "PhoneLookupCountry",
2643
+ "location" => nil,
2644
+ "line" => "PhoneLookupLine",
2645
+ "status" => nil,
2646
+ "sms_pumping" => "PhoneLookupSmsPumping",
2647
+ "sim_swap" => "PhoneLookupSimSwap",
2648
+ "call_forwarding" => "PhoneLookupCallForwarding",
2649
+ "caller" => "PhoneLookupCaller",
2650
+ "risk" => "PhoneLookupRisk"
2651
+ }.freeze
2652
+ end
2653
+
2654
+ # PhoneLookupFormat.
2655
+ #
2656
+ # @!attribute [r] e164
2657
+ # @return [String, nil]
2658
+ # @!attribute [r] national
2659
+ # @return [String, nil]
2660
+ # @!attribute [r] international
2661
+ # @return [String, nil]
2662
+ class PhoneLookupFormat < VeriSecObject
2663
+ FIELDS = {
2664
+ "e164" => nil,
2665
+ "national" => nil,
2666
+ "international" => nil
2667
+ }.freeze
2668
+ end
2669
+
2670
+ # PhoneLookupCountry.
2671
+ #
2672
+ # @!attribute [r] code
2673
+ # @return [String, nil]
2674
+ # @!attribute [r] name
2675
+ # @return [String, nil]
2676
+ # @!attribute [r] calling_code
2677
+ # @return [String, nil]
2678
+ class PhoneLookupCountry < VeriSecObject
2679
+ FIELDS = {
2680
+ "code" => nil,
2681
+ "name" => nil,
2682
+ "calling_code" => nil
2683
+ }.freeze
2684
+ end
2685
+
2686
+ # PhoneLookupLine.
2687
+ #
2688
+ # @!attribute [r] type
2689
+ # @return [String, nil]
2690
+ # @!attribute [r] carrier
2691
+ # @return [String, nil]
2692
+ # @!attribute [r] mcc
2693
+ # @return [String, nil]
2694
+ # @!attribute [r] mnc
2695
+ # @return [String, nil]
2696
+ class PhoneLookupLine < VeriSecObject
2697
+ FIELDS = {
2698
+ "type" => nil,
2699
+ "carrier" => nil,
2700
+ "mcc" => nil,
2701
+ "mnc" => nil
2702
+ }.freeze
2703
+ end
2704
+
2705
+ # PhoneLookupSmsPumping.
2706
+ #
2707
+ # @!attribute [r] score
2708
+ # @return [Numeric, nil]
2709
+ # @!attribute [r] carrier_risk
2710
+ # @return [String, nil]
2711
+ # @!attribute [r] blocked
2712
+ # @return [Boolean, nil]
2713
+ # @!attribute [r] blocked_on
2714
+ # @return [Object, nil]
2715
+ # @!attribute [r] blocked_last_3_months
2716
+ # @return [Boolean, nil]
2717
+ class PhoneLookupSmsPumping < VeriSecObject
2718
+ FIELDS = {
2719
+ "score" => nil,
2720
+ "carrier_risk" => nil,
2721
+ "blocked" => nil,
2722
+ "blocked_on" => nil,
2723
+ "blocked_last_3_months" => nil
2724
+ }.freeze
2725
+ end
2726
+
2727
+ # PhoneLookupSimSwap.
2728
+ #
2729
+ # @!attribute [r] available
2730
+ # @return [Boolean, nil]
2731
+ # @!attribute [r] reason
2732
+ # @return [String, nil]
2733
+ class PhoneLookupSimSwap < VeriSecObject
2734
+ FIELDS = {
2735
+ "available" => nil,
2736
+ "reason" => nil
2737
+ }.freeze
2738
+ end
2739
+
2740
+ # PhoneLookupCallForwarding.
2741
+ #
2742
+ # @!attribute [r] available
2743
+ # @return [Boolean, nil]
2744
+ # @!attribute [r] reason
2745
+ # @return [String, nil]
2746
+ class PhoneLookupCallForwarding < VeriSecObject
2747
+ FIELDS = {
2748
+ "available" => nil,
2749
+ "reason" => nil
2750
+ }.freeze
2751
+ end
2752
+
2753
+ # PhoneLookupCaller.
2754
+ #
2755
+ # @!attribute [r] available
2756
+ # @return [Boolean, nil]
2757
+ # @!attribute [r] reason
2758
+ # @return [String, nil]
2759
+ class PhoneLookupCaller < VeriSecObject
2760
+ FIELDS = {
2761
+ "available" => nil,
2762
+ "reason" => nil
2763
+ }.freeze
2764
+ end
2765
+
2766
+ # PhoneLookupRisk.
2767
+ #
2768
+ # @!attribute [r] level
2769
+ # @return [String, nil]
2770
+ # @!attribute [r] reasons
2771
+ # @return [Array<Object>, nil]
2772
+ class PhoneLookupRisk < VeriSecObject
2773
+ FIELDS = {
2774
+ "level" => nil,
2775
+ "reasons" => nil
2776
+ }.freeze
2777
+ end
2778
+
2779
+ # The answer of Send Phone Code.
2780
+ #
2781
+ # Returned by {VeriSec::Resources::PhoneOtp#send}.
2782
+ #
2783
+ # @!attribute [r] status
2784
+ # @return [String, nil]
2785
+ # @!attribute [r] to
2786
+ # @return [String, nil]
2787
+ # @!attribute [r] channel
2788
+ # @return [String, nil]
2789
+ class PhoneOtpSend < VeriSecObject
2790
+ FIELDS = {
2791
+ "status" => nil,
2792
+ "to" => nil,
2793
+ "channel" => nil
2794
+ }.freeze
2795
+ end
2796
+
2797
+ # The answer of Check Phone Code.
2798
+ #
2799
+ # Returned by {VeriSec::Resources::PhoneOtp#check}.
2800
+ #
2801
+ # @!attribute [r] status
2802
+ # @return [String, nil]
2803
+ # @!attribute [r] valid
2804
+ # @return [Boolean, nil]
2805
+ class PhoneOtpCheck < VeriSecObject
2806
+ FIELDS = {
2807
+ "status" => nil,
2808
+ "valid" => nil
2809
+ }.freeze
2810
+ end
2811
+
2812
+ # The full result of IP Risk: everything the check found. See the fields listed in the operation.
2813
+ #
2814
+ # Returned by {VeriSec::Resources::Screening#ip}.
2815
+ #
2816
+ # An open result: the engine's full answer, with no fixed fields. Read it as a Hash (`result["faces"]`,
2817
+ # `result.dig(…)`, `result.keys`, `result.to_h`); fields it has also read as methods.
2818
+ class ScreeningIp < VeriSecObject
2819
+ FIELDS = {}.freeze
2820
+ end
2821
+
2822
+ # The answer of IP Anonymity.
2823
+ #
2824
+ # Returned by {VeriSec::Resources::Ip#analyze}.
2825
+ #
2826
+ # @!attribute [r] ip
2827
+ # @return [String, nil]
2828
+ # @!attribute [r] version
2829
+ # @return [Numeric, nil]
2830
+ # @!attribute [r] private
2831
+ # @return [Boolean, nil]
2832
+ # @!attribute [r] location
2833
+ # @return [VeriSec::Types::IpAnalyzeLocation, nil]
2834
+ # @!attribute [r] network
2835
+ # @return [VeriSec::Types::IpAnalyzeNetwork, nil]
2836
+ # @!attribute [r] anonymity
2837
+ # @return [VeriSec::Types::IpAnalyzeAnonymity, nil]
2838
+ # @!attribute [r] lists_updated
2839
+ # @return [String, nil]
2840
+ class IpAnalyze < VeriSecObject
2841
+ FIELDS = {
2842
+ "ip" => nil,
2843
+ "version" => nil,
2844
+ "private" => nil,
2845
+ "location" => "IpAnalyzeLocation",
2846
+ "network" => "IpAnalyzeNetwork",
2847
+ "anonymity" => "IpAnalyzeAnonymity",
2848
+ "lists_updated" => nil
2849
+ }.freeze
2850
+ end
2851
+
2852
+ # IpAnalyzeLocation.
2853
+ #
2854
+ # @!attribute [r] continent
2855
+ # @return [String, nil]
2856
+ # @!attribute [r] country_code
2857
+ # @return [String, nil]
2858
+ # @!attribute [r] country
2859
+ # @return [String, nil]
2860
+ # @!attribute [r] region
2861
+ # @return [String, nil]
2862
+ # @!attribute [r] city
2863
+ # @return [String, nil]
2864
+ # @!attribute [r] coordinates
2865
+ # @return [VeriSec::Types::IpAnalyzeLocationCoordinates, nil]
2866
+ # @!attribute [r] timezones
2867
+ # @return [Array<String>, nil]
2868
+ class IpAnalyzeLocation < VeriSecObject
2869
+ FIELDS = {
2870
+ "continent" => nil,
2871
+ "country_code" => nil,
2872
+ "country" => nil,
2873
+ "region" => nil,
2874
+ "city" => nil,
2875
+ "coordinates" => "IpAnalyzeLocationCoordinates",
2876
+ "timezones" => nil
2877
+ }.freeze
2878
+ end
2879
+
2880
+ # IpAnalyzeLocationCoordinates.
2881
+ #
2882
+ # @!attribute [r] lat
2883
+ # @return [Numeric, nil]
2884
+ # @!attribute [r] lon
2885
+ # @return [Numeric, nil]
2886
+ class IpAnalyzeLocationCoordinates < VeriSecObject
2887
+ FIELDS = {
2888
+ "lat" => nil,
2889
+ "lon" => nil
2890
+ }.freeze
2891
+ end
2892
+
2893
+ # IpAnalyzeNetwork.
2894
+ #
2895
+ # @!attribute [r] asn
2896
+ # @return [Numeric, nil]
2897
+ # @!attribute [r] organization
2898
+ # @return [String, nil]
2899
+ # @!attribute [r] connection_type
2900
+ # @return [String, nil]
2901
+ class IpAnalyzeNetwork < VeriSecObject
2902
+ FIELDS = {
2903
+ "asn" => nil,
2904
+ "organization" => nil,
2905
+ "connection_type" => nil
2906
+ }.freeze
2907
+ end
2908
+
2909
+ # IpAnalyzeAnonymity.
2910
+ #
2911
+ # @!attribute [r] tor
2912
+ # @return [Boolean, nil]
2913
+ # @!attribute [r] vpn
2914
+ # @return [Boolean, nil]
2915
+ # @!attribute [r] datacenter
2916
+ # @return [Boolean, nil]
2917
+ # @!attribute [r] cloud_provider
2918
+ # @return [Object, nil]
2919
+ # @!attribute [r] private_relay
2920
+ # @return [Boolean, nil]
2921
+ # @!attribute [r] relay_region
2922
+ # @return [Object, nil]
2923
+ # @!attribute [r] blocklisted
2924
+ # @return [Boolean, nil]
2925
+ class IpAnalyzeAnonymity < VeriSecObject
2926
+ FIELDS = {
2927
+ "tor" => nil,
2928
+ "vpn" => nil,
2929
+ "datacenter" => nil,
2930
+ "cloud_provider" => nil,
2931
+ "private_relay" => nil,
2932
+ "relay_region" => nil,
2933
+ "blocklisted" => nil
2934
+ }.freeze
2935
+ end
2936
+
2937
+ # The full result of Sanctions & PEP Screening: everything the check found. See the fields listed in the
2938
+ # operation.
2939
+ #
2940
+ # Returned by {VeriSec::Resources::Screening#sanctions}.
2941
+ #
2942
+ # An open result: the engine's full answer, with no fixed fields. Read it as a Hash (`result["faces"]`,
2943
+ # `result.dig(…)`, `result.keys`, `result.to_h`); fields it has also read as methods.
2944
+ class ScreeningSanctions < VeriSecObject
2945
+ FIELDS = {}.freeze
2946
+ end
2947
+
2948
+ # The answer of Adverse Media.
2949
+ #
2950
+ # Returned by {VeriSec::Resources::Osint#web}.
2951
+ #
2952
+ # @!attribute [r] query
2953
+ # @return [String, nil]
2954
+ # @!attribute [r] mode
2955
+ # @return [String, nil]
2956
+ # @!attribute [r] complete
2957
+ # @return [Boolean, nil]
2958
+ # @!attribute [r] count
2959
+ # @return [Numeric, nil]
2960
+ # @!attribute [r] results
2961
+ # @return [Array<VeriSec::Types::OsintWebResult>, nil]
2962
+ # @!attribute [r] left_out
2963
+ # @return [VeriSec::Types::OsintWebLeftOut, nil]
2964
+ class OsintWeb < VeriSecObject
2965
+ FIELDS = {
2966
+ "query" => nil,
2967
+ "mode" => nil,
2968
+ "complete" => nil,
2969
+ "count" => nil,
2970
+ "results" => "OsintWebResult",
2971
+ "left_out" => "OsintWebLeftOut"
2972
+ }.freeze
2973
+ end
2974
+
2975
+ # OsintWebResult.
2976
+ #
2977
+ # @!attribute [r] title
2978
+ # @return [String, nil]
2979
+ # @!attribute [r] site
2980
+ # @return [String, nil]
2981
+ # @!attribute [r] url
2982
+ # @return [String, nil]
2983
+ # @!attribute [r] date
2984
+ # @return [String, nil]
2985
+ # @!attribute [r] topics
2986
+ # @return [Array<String>, nil]
2987
+ # @!attribute [r] snippet
2988
+ # @return [String, nil]
2989
+ class OsintWebResult < VeriSecObject
2990
+ FIELDS = {
2991
+ "title" => nil,
2992
+ "site" => nil,
2993
+ "url" => nil,
2994
+ "date" => nil,
2995
+ "topics" => nil,
2996
+ "snippet" => nil
2997
+ }.freeze
2998
+ end
2999
+
3000
+ # OsintWebLeftOut.
3001
+ #
3002
+ # @!attribute [r] not_about_this_name
3003
+ # @return [Numeric, nil]
3004
+ # @!attribute [r] not_adverse
3005
+ # @return [Numeric, nil]
3006
+ # @!attribute [r] list_entries
3007
+ # @return [Numeric, nil]
3008
+ class OsintWebLeftOut < VeriSecObject
3009
+ FIELDS = {
3010
+ "not_about_this_name" => nil,
3011
+ "not_adverse" => nil,
3012
+ "list_entries" => nil
3013
+ }.freeze
3014
+ end
3015
+
3016
+ # The answer of Wallet Screening.
3017
+ #
3018
+ # Returned by {VeriSec::Resources::Screening#crypto}.
3019
+ #
3020
+ # @!attribute [r] checked
3021
+ # @return [Numeric, nil]
3022
+ # @!attribute [r] counts
3023
+ # @return [VeriSec::Types::ScreeningCryptoCounts, nil]
3024
+ # @!attribute [r] results
3025
+ # @return [Array<VeriSec::Types::ScreeningCryptoResult>, nil]
3026
+ class ScreeningCrypto < VeriSecObject
3027
+ FIELDS = {
3028
+ "checked" => nil,
3029
+ "counts" => "ScreeningCryptoCounts",
3030
+ "results" => "ScreeningCryptoResult"
3031
+ }.freeze
3032
+ end
3033
+
3034
+ # ScreeningCryptoCounts.
3035
+ #
3036
+ # @!attribute [r] high
3037
+ # @return [Numeric, nil]
3038
+ # @!attribute [r] medium
3039
+ # @return [Numeric, nil]
3040
+ # @!attribute [r] low
3041
+ # @return [Numeric, nil]
3042
+ # @!attribute [r] no_record
3043
+ # @return [Numeric, nil]
3044
+ # @!attribute [r] unreadable
3045
+ # @return [Numeric, nil]
3046
+ # @!attribute [r] invalid_address
3047
+ # @return [Numeric, nil]
3048
+ # @!attribute [r] unrecognised
3049
+ # @return [Numeric, nil]
3050
+ # @!attribute [r] disputed_listing
3051
+ # @return [Numeric, nil]
3052
+ class ScreeningCryptoCounts < VeriSecObject
3053
+ FIELDS = {
3054
+ "high" => nil,
3055
+ "medium" => nil,
3056
+ "low" => nil,
3057
+ "no_record" => nil,
3058
+ "unreadable" => nil,
3059
+ "invalid_address" => nil,
3060
+ "unrecognised" => nil,
3061
+ "disputed_listing" => nil
3062
+ }.freeze
3063
+ end
3064
+
3065
+ # ScreeningCryptoResult.
3066
+ #
3067
+ # @!attribute [r] address
3068
+ # @return [String, nil]
3069
+ # @!attribute [r] network
3070
+ # @return [Object, nil]
3071
+ # @!attribute [r] valid_format
3072
+ # @return [Object, nil]
3073
+ # @!attribute [r] checksum_ok
3074
+ # @return [Object, nil]
3075
+ # @!attribute [r] format_note
3076
+ # @return [String, nil]
3077
+ # @!attribute [r] verdict
3078
+ # @return [String, nil]
3079
+ # @!attribute [r] risk
3080
+ # @return [String, nil]
3081
+ # @!attribute [r] summary
3082
+ # @return [Object, nil]
3083
+ # @!attribute [r] flags
3084
+ # @return [Array<Object>, nil]
3085
+ # @!attribute [r] listings
3086
+ # @return [Array<VeriSec::Types::ScreeningCryptoResultListing>, nil]
3087
+ # @!attribute [r] disputed_by
3088
+ # @return [Array<Object>, nil]
3089
+ # @!attribute [r] schemes
3090
+ # @return [Array<Object>, nil]
3091
+ # @!attribute [r] labels
3092
+ # @return [Array<VeriSec::Types::ScreeningCryptoResultLabel>, nil]
3093
+ class ScreeningCryptoResult < VeriSecObject
3094
+ FIELDS = {
3095
+ "address" => nil,
3096
+ "network" => nil,
3097
+ "valid_format" => nil,
3098
+ "checksum_ok" => nil,
3099
+ "format_note" => nil,
3100
+ "verdict" => nil,
3101
+ "risk" => nil,
3102
+ "summary" => nil,
3103
+ "flags" => nil,
3104
+ "listings" => "ScreeningCryptoResultListing",
3105
+ "disputed_by" => nil,
3106
+ "schemes" => nil,
3107
+ "labels" => "ScreeningCryptoResultLabel"
3108
+ }.freeze
3109
+ end
3110
+
3111
+ # ScreeningCryptoResultListing.
3112
+ #
3113
+ # @!attribute [r] network
3114
+ # @return [String, nil]
3115
+ # @!attribute [r] categories
3116
+ # @return [Array<String>, nil]
3117
+ # @!attribute [r] risk_class
3118
+ # @return [String, nil]
3119
+ # @!attribute [r] subcategory
3120
+ # @return [Object, nil]
3121
+ # @!attribute [r] victim_contract
3122
+ # @return [Boolean, nil]
3123
+ class ScreeningCryptoResultListing < VeriSecObject
3124
+ FIELDS = {
3125
+ "network" => nil,
3126
+ "categories" => nil,
3127
+ "risk_class" => nil,
3128
+ "subcategory" => nil,
3129
+ "victim_contract" => nil
3130
+ }.freeze
3131
+ end
3132
+
3133
+ # ScreeningCryptoResultLabel.
3134
+ #
3135
+ # @!attribute [r] network
3136
+ # @return [String, nil]
3137
+ # @!attribute [r] label
3138
+ # @return [String, nil]
3139
+ class ScreeningCryptoResultLabel < VeriSecObject
3140
+ FIELDS = {
3141
+ "network" => nil,
3142
+ "label" => nil
3143
+ }.freeze
3144
+ end
3145
+
3146
+ # The full result of Contact Dossier: everything the check found. See the fields listed in the operation.
3147
+ #
3148
+ # Returned by {VeriSec::Resources::Contact#dossier}.
3149
+ #
3150
+ # An open result: the engine's full answer, with no fixed fields. Read it as a Hash (`result["faces"]`,
3151
+ # `result.dig(…)`, `result.keys`, `result.to_h`); fields it has also read as methods.
3152
+ class ContactDossier < VeriSecObject
3153
+ FIELDS = {}.freeze
3154
+ end
3155
+
3156
+ # The whole cheque: the MICR read, what the face says, the bank, country and currency.
3157
+ #
3158
+ # Returned by {VeriSec::Resources::Cheques#read}.
3159
+ #
3160
+ # @!attribute [r] id
3161
+ # @return [String] Scan id, `chq_` followed by 12 characters.
3162
+ # @!attribute [r] object
3163
+ # @return [String] Always `cheque_read`.
3164
+ # @!attribute [r] created_at
3165
+ # @return [String] When it was created (ISO 8601, UTC).
3166
+ # @!attribute [r] source
3167
+ # @return [String] Where the call came from, as shown in the console's logs. One of "api", "sdk",
3168
+ # "playground".
3169
+ # @!attribute [r] env
3170
+ # @return [String] The environment the read is recorded in: the credential's. One of "live", "test".
3171
+ # @!attribute [r] processing_ms
3172
+ # @return [Integer] The MICR engine's time alone, in milliseconds; `timing` has the rest.
3173
+ # @!attribute [r] image
3174
+ # @return [VeriSec::Types::ChequeDeepReadImage]
3175
+ # @!attribute [r] status
3176
+ # @return [String] `partial`: read, but something a caller relies on is missing or failed a check
3177
+ # (`issue_code` says what). `unreadable`: nothing to read. One of "read", "partial", "unreadable".
3178
+ # @!attribute [r] micr
3179
+ # @return [VeriSec::Types::ChequeResponse] The MICR engine's own read (authoritative for the code line).
3180
+ # @!attribute [r] vision
3181
+ # @return [VeriSec::Types::VisionResult, nil] What the vision reader read. Absent when it found nothing
3182
+ # or could not be reached.
3183
+ # @!attribute [r] bank
3184
+ # @return [VeriSec::Types::BankMatch, nil] A bank read on a document, matched in the directory.
3185
+ # @!attribute [r] currency
3186
+ # @return [VeriSec::Types::ResolvedCurrency, nil] A full currency record (ISO 4217 + CLDR).
3187
+ # @!attribute [r] country
3188
+ # @return [VeriSec::Types::CountryInfo, nil] From the bank directory, else the face, else a national
3189
+ # MICR layout.
3190
+ # @!attribute [r] reader_error
3191
+ # @return [String, nil] Set when the vision reader could not be reached; the MICR part still stands.
3192
+ # @!attribute [r] text_boxes
3193
+ # @return [VeriSec::Types::TextBoxes, nil] Every text box on the image, for drawing only (no text).
3194
+ # @!attribute [r] cheques
3195
+ # @return [Array<VeriSec::Types::DeepCheque>, nil] Only when the photo holds more than one cheque. The
3196
+ # fields above are cheque 1.
3197
+ # @!attribute [r] timing
3198
+ # @return [VeriSec::Types::ChequeDeepReadTiming, nil] Where the time went, in milliseconds.
3199
+ # @!attribute [r] image_quality
3200
+ # @return [VeriSec::Types::ChequeDeepReadImageQuality, nil] Photo quality from the check before the
3201
+ # read. It never blocks the read, only warns.
3202
+ class ChequeDeepRead < VeriSecObject
3203
+ FIELDS = {
3204
+ "id" => nil,
3205
+ "object" => nil,
3206
+ "created_at" => nil,
3207
+ "source" => nil,
3208
+ "env" => nil,
3209
+ "processing_ms" => nil,
3210
+ "image" => "ChequeDeepReadImage",
3211
+ "status" => nil,
3212
+ "micr" => "ChequeResponse",
3213
+ "vision" => "VisionResult",
3214
+ "bank" => "BankMatch",
3215
+ "currency" => "ResolvedCurrency",
3216
+ "country" => "CountryInfo",
3217
+ "reader_error" => nil,
3218
+ "text_boxes" => "TextBoxes",
3219
+ "cheques" => "DeepCheque",
3220
+ "timing" => "ChequeDeepReadTiming",
3221
+ "image_quality" => "ChequeDeepReadImageQuality"
3222
+ }.freeze
3223
+ end
3224
+
3225
+ # ChequeDeepReadImage.
3226
+ #
3227
+ # @!attribute [r] width
3228
+ # @return [Integer]
3229
+ # @!attribute [r] height
3230
+ # @return [Integer]
3231
+ # @!attribute [r] url
3232
+ # @return [String] The stored photo, relative to the API base.
3233
+ class ChequeDeepReadImage < VeriSecObject
3234
+ FIELDS = {
3235
+ "width" => nil,
3236
+ "height" => nil,
3237
+ "url" => nil
3238
+ }.freeze
3239
+ end
3240
+
3241
+ # A cheque's MICR read (the MICR service's wire format).
3242
+ #
3243
+ # Returned by {VeriSec::Resources::Cheques#micr}.
3244
+ #
3245
+ # @!attribute [r] id
3246
+ # @return [String] Scan id, `chq_` followed by 12 characters.
3247
+ # @!attribute [r] object
3248
+ # @return [String] Always `cheque`.
3249
+ # @!attribute [r] created_at
3250
+ # @return [String] When it was created (ISO 8601, UTC).
3251
+ # @!attribute [r] source
3252
+ # @return [String] Where the call came from, as shown in the console's logs. One of "api", "sdk",
3253
+ # "playground".
3254
+ # @!attribute [r] env
3255
+ # @return [String] The environment the read is recorded in: the credential's. One of "live", "test".
3256
+ # @!attribute [r] processing_ms
3257
+ # @return [Integer] How long the engine took, in milliseconds.
3258
+ # @!attribute [r] status
3259
+ # @return [String] `partial`: read, but something a caller relies on is missing or failed a check
3260
+ # (`issue_code` says what). `unreadable`: nothing to read. One of "read", "partial", "unreadable".
3261
+ # @!attribute [r] issue_code
3262
+ # @return [String, nil] Why a read is `partial` or `unreadable`: `no_micr_line`,
3263
+ # `routing_checksum_failed`, `routing_prefix_invalid`, `layout_unrecognised`, `weak_characters`,
3264
+ # `no_card`, `number_unreadable`, `luhn_failed`, `low_confidence`.
3265
+ # @!attribute [r] issue
3266
+ # @return [String, nil] The same reason in plain words, safe to show a person.
3267
+ # @!attribute [r] image
3268
+ # @return [VeriSec::Types::ChequeResponseImage]
3269
+ # @!attribute [r] zones_detected
3270
+ # @return [Integer] How many MICR lines were found.
3271
+ # @!attribute [r] zones
3272
+ # @return [Array<VeriSec::Types::MicrZone>] Every MICR line found, strongest first.
3273
+ # @!attribute [r] micr
3274
+ # @return [VeriSec::Types::MicrZone, nil] The primary (strongest) line. Absent when unreadable.
3275
+ # @!attribute [r] quality
3276
+ # @return [VeriSec::Types::ChequeResponseQuality] Capture-quality signals.
3277
+ # @!attribute [r] country
3278
+ # @return [VeriSec::Types::CountryInfo, nil] Only when a national MICR layout proves the country.
3279
+ # @!attribute [r] read_on
3280
+ # @return [VeriSec::Types::ChequeResponseReadOn, nil] Present when only a resized copy named fields;
3281
+ # boxes are mapped back to the original.
3282
+ class ChequeResponse < VeriSecObject
3283
+ FIELDS = {
3284
+ "id" => nil,
3285
+ "object" => nil,
3286
+ "created_at" => nil,
3287
+ "source" => nil,
3288
+ "env" => nil,
3289
+ "processing_ms" => nil,
3290
+ "status" => nil,
3291
+ "issue_code" => nil,
3292
+ "issue" => nil,
3293
+ "image" => "ChequeResponseImage",
3294
+ "zones_detected" => nil,
3295
+ "zones" => "MicrZone",
3296
+ "micr" => "MicrZone",
3297
+ "quality" => "ChequeResponseQuality",
3298
+ "country" => "CountryInfo",
3299
+ "read_on" => "ChequeResponseReadOn"
3300
+ }.freeze
3301
+ end
3302
+
3303
+ # ChequeResponseImage.
3304
+ #
3305
+ # @!attribute [r] width
3306
+ # @return [Integer]
3307
+ # @!attribute [r] height
3308
+ # @return [Integer]
3309
+ # @!attribute [r] url
3310
+ # @return [String] The stored photo, relative to the API base.
3311
+ class ChequeResponseImage < VeriSecObject
3312
+ FIELDS = {
3313
+ "width" => nil,
3314
+ "height" => nil,
3315
+ "url" => nil
3316
+ }.freeze
3317
+ end
3318
+
3319
+ # One MICR line, exactly as the engine returns it, plus values derived from its text.
3320
+ #
3321
+ # @!attribute [r] index
3322
+ # @return [Integer] Position among the lines found, strongest first.
3323
+ # @!attribute [r] text
3324
+ # @return [String] As read, with the control symbols as letters (E-13B A-D, CMC-7 F-J).
3325
+ # @!attribute [r] description
3326
+ # @return [String] The engine's label for the line, for example `E-13B`.
3327
+ # @!attribute [r] confidences
3328
+ # @return [Array<Numeric>] Every confidence the engine returned: zone-level values, then one per
3329
+ # character.
3330
+ # @!attribute [r] klass
3331
+ # @return [Integer, nil] The engine's class for the line.
3332
+ # @!attribute [r] skew
3333
+ # @return [Numeric] Skew of the line, in degrees.
3334
+ # @!attribute [r] warpedBox
3335
+ # @return [Array<Numeric>, nil] The engine's own box, verbatim (its spelling).
3336
+ # @!attribute [r] font
3337
+ # @return [String] MICR font. One of "E-13B", "CMC-7".
3338
+ # @!attribute [r] printed
3339
+ # @return [String] The line with the printed E-13B glyphs (⑆ ⑇ ⑈ ⑉), CMC-7 symbols as bars.
3340
+ # @!attribute [r] confidence
3341
+ # @return [Numeric] Summary confidence for the line, 0 to 100.
3342
+ # @!attribute [r] char_confidences
3343
+ # @return [Array<Numeric>] One confidence (0 to 100) per character of `text`.
3344
+ # @!attribute [r] min_char_confidence
3345
+ # @return [Numeric, nil] The weakest character's confidence.
3346
+ # @!attribute [r] box
3347
+ # @return [Array<Numeric>] Four corners x1,y1 … x4,y4, rounded, in image pixels.
3348
+ # @!attribute [r] segments
3349
+ # @return [Array<String>] The groups the control symbols delimit.
3350
+ # @!attribute [r] fields
3351
+ # @return [Array<VeriSec::Types::MicrField>, nil] Fields named as the reader names them; empty when no
3352
+ # template fits.
3353
+ # @!attribute [r] field_list
3354
+ # @return [Array<VeriSec::Types::MicrNamedValue>, nil] Every field the font can carry, empty where this
3355
+ # line did not yield it.
3356
+ # @!attribute [r] template
3357
+ # @return [String, nil] Which fixed template named the line. One of "us_business", "us_personal",
3358
+ # "br_cmc7", "fr_cmc7".
3359
+ # @!attribute [r] standard
3360
+ # @return [VeriSec::Types::MicrStandardLayout, nil] An official national layout (whole-line match only).
3361
+ # @!attribute [r] routing
3362
+ # @return [VeriSec::Types::RoutingProof, nil] The ABA proof behind a US routing number.
3363
+ class MicrZone < VeriSecObject
3364
+ FIELDS = {
3365
+ "index" => nil,
3366
+ "text" => nil,
3367
+ "description" => nil,
3368
+ "confidences" => nil,
3369
+ "klass" => nil,
3370
+ "skew" => nil,
3371
+ "warpedBox" => nil,
3372
+ "font" => nil,
3373
+ "printed" => nil,
3374
+ "confidence" => nil,
3375
+ "char_confidences" => nil,
3376
+ "min_char_confidence" => nil,
3377
+ "box" => nil,
3378
+ "segments" => nil,
3379
+ "fields" => "MicrField",
3380
+ "field_list" => "MicrNamedValue",
3381
+ "template" => nil,
3382
+ "standard" => "MicrStandardLayout",
3383
+ "routing" => "RoutingProof"
3384
+ }.freeze
3385
+ end
3386
+
3387
+ # One named MICR field in the reader format: a single key (the field name, for example `Routing`) and its
3388
+ # value.
3389
+ class MicrField < VeriSecObject
3390
+ FIELDS = {}.freeze
3391
+ end
3392
+
3393
+ # MicrNamedValue.
3394
+ #
3395
+ # @!attribute [r] name
3396
+ # @return [String] Field name, for example `Routing`.
3397
+ # @!attribute [r] value
3398
+ # @return [String] The value; empty when this line does not carry the field.
3399
+ # @!attribute [r] parts
3400
+ # @return [Array<VeriSec::Types::MicrNamedValuePart>, nil] Sub-fields, when the field has them.
3401
+ class MicrNamedValue < VeriSecObject
3402
+ FIELDS = {
3403
+ "name" => nil,
3404
+ "value" => nil,
3405
+ "parts" => "MicrNamedValuePart"
3406
+ }.freeze
3407
+ end
3408
+
3409
+ # MicrNamedValuePart.
3410
+ #
3411
+ # @!attribute [r] name
3412
+ # @return [String]
3413
+ # @!attribute [r] value
3414
+ # @return [String]
3415
+ class MicrNamedValuePart < VeriSecObject
3416
+ FIELDS = {
3417
+ "name" => nil,
3418
+ "value" => nil
3419
+ }.freeze
3420
+ end
3421
+
3422
+ # An official national layout (whole-line match only).
3423
+ #
3424
+ # @!attribute [r] id
3425
+ # @return [String] The standard, for example `ca_cpa_006` or `in_cts_2010`.
3426
+ # @!attribute [r] name
3427
+ # @return [String] The standard's name, for example `Canada (Payments Canada Standard 006)`.
3428
+ # @!attribute [r] country
3429
+ # @return [String] ISO 3166-1 alpha-2.
3430
+ # @!attribute [r] fields
3431
+ # @return [Array<VeriSec::Types::MicrNamedValue>] The fields this line yielded.
3432
+ # @!attribute [r] field_list
3433
+ # @return [Array<VeriSec::Types::MicrNamedValue>, nil] Every field of the standard, empty where the line
3434
+ # did not yield it.
3435
+ class MicrStandardLayout < VeriSecObject
3436
+ FIELDS = {
3437
+ "id" => nil,
3438
+ "name" => nil,
3439
+ "country" => nil,
3440
+ "fields" => "MicrNamedValue",
3441
+ "field_list" => "MicrNamedValue"
3442
+ }.freeze
3443
+ end
3444
+
3445
+ # The ABA proof behind a US routing number.
3446
+ #
3447
+ # @!attribute [r] valid
3448
+ # @return [Boolean] True only when the checksum and the prefix both hold.
3449
+ # @!attribute [r] checksum_pass
3450
+ # @return [Boolean] The ABA check digit holds.
3451
+ # @!attribute [r] check_digit
3452
+ # @return [Integer, nil] The ninth digit as read. Absent when the number is not nine digits.
3453
+ # @!attribute [r] expected_check_digit
3454
+ # @return [Integer, nil] The digit the first eight imply. An audit value, not a correction.
3455
+ # @!attribute [r] prefix_valid
3456
+ # @return [Boolean] The first two digits are an assigned Federal Reserve routing symbol.
3457
+ # @!attribute [r] institution_type
3458
+ # @return [String, nil] Institution type from the routing number's prefix. One of "bank", "thrift",
3459
+ # "electronic", "government", "travellers_cheque".
3460
+ # @!attribute [r] federal_reserve_district
3461
+ # @return [String, nil] The Federal Reserve district, when valid.
3462
+ # @!attribute [r] reason
3463
+ # @return [String, nil] Why it is not valid. One of "not_nine_digits", "check_digit_mismatch",
3464
+ # "prefix_not_assigned".
3465
+ class RoutingProof < VeriSecObject
3466
+ FIELDS = {
3467
+ "valid" => nil,
3468
+ "checksum_pass" => nil,
3469
+ "check_digit" => nil,
3470
+ "expected_check_digit" => nil,
3471
+ "prefix_valid" => nil,
3472
+ "institution_type" => nil,
3473
+ "federal_reserve_district" => nil,
3474
+ "reason" => nil
3475
+ }.freeze
3476
+ end
3477
+
3478
+ # Capture-quality signals.
3479
+ #
3480
+ # @!attribute [r] rotation
3481
+ # @return [Numeric] Page rotation, degrees.
3482
+ # @!attribute [r] skew
3483
+ # @return [Numeric, nil] Primary line skew, degrees.
3484
+ # @!attribute [r] min_char_confidence
3485
+ # @return [Numeric, nil] Weakest character.
3486
+ class ChequeResponseQuality < VeriSecObject
3487
+ FIELDS = {
3488
+ "rotation" => nil,
3489
+ "skew" => nil,
3490
+ "min_char_confidence" => nil
3491
+ }.freeze
3492
+ end
3493
+
3494
+ # The cheque's country and where it came from.
3495
+ #
3496
+ # @!attribute [r] code
3497
+ # @return [String] ISO 3166-1 alpha-2, upper case.
3498
+ # @!attribute [r] name
3499
+ # @return [String] Country name.
3500
+ # @!attribute [r] flag
3501
+ # @return [String] Flag emoji.
3502
+ # @!attribute [r] source
3503
+ # @return [String] Where the country came from. One of "bank_directory", "cheque_face", "micr_line".
3504
+ class CountryInfo < VeriSecObject
3505
+ FIELDS = {
3506
+ "code" => nil,
3507
+ "name" => nil,
3508
+ "flag" => nil,
3509
+ "source" => nil
3510
+ }.freeze
3511
+ end
3512
+
3513
+ # Present when only a resized copy named fields; boxes are mapped back to the original.
3514
+ #
3515
+ # @!attribute [r] image
3516
+ # @return [String]
3517
+ # @!attribute [r] scale
3518
+ # @return [Numeric]
3519
+ # @!attribute [r] width
3520
+ # @return [Integer]
3521
+ # @!attribute [r] height
3522
+ # @return [Integer]
3523
+ class ChequeResponseReadOn < VeriSecObject
3524
+ FIELDS = {
3525
+ "image" => nil,
3526
+ "scale" => nil,
3527
+ "width" => nil,
3528
+ "height" => nil
3529
+ }.freeze
3530
+ end
3531
+
3532
+ # What is written on the cheque's face. The engine may add keys; they are kept.
3533
+ #
3534
+ # @!attribute [r] fields
3535
+ # @return [Array<VeriSec::Types::VisionField>, nil] Every field read, with its box.
3536
+ # @!attribute [r] amount
3537
+ # @return [VeriSec::Types::VisionResultAmount, nil]
3538
+ # @!attribute [r] currency
3539
+ # @return [VeriSec::Types::VisionResultCurrency, nil]
3540
+ # @!attribute [r] date
3541
+ # @return [VeriSec::Types::VisionResultDate, nil]
3542
+ # @!attribute [r] payee
3543
+ # @return [String, nil] Who the cheque is paid to.
3544
+ # @!attribute [r] drawer
3545
+ # @return [VeriSec::Types::VisionResultDrawer, nil] The account holder printed on the cheque.
3546
+ # @!attribute [r] bank
3547
+ # @return [VeriSec::Types::VisionResultBank, nil]
3548
+ # @!attribute [r] cheque_number_printed
3549
+ # @return [String, nil]
3550
+ # @!attribute [r] account_number_printed
3551
+ # @return [String, nil]
3552
+ # @!attribute [r] memo
3553
+ # @return [String, nil]
3554
+ # @!attribute [r] pay_wording
3555
+ # @return [String, nil] The printed pay line.
3556
+ # @!attribute [r] crossing
3557
+ # @return [VeriSec::Types::VisionResultCrossing, nil]
3558
+ # @!attribute [r] signature
3559
+ # @return [VeriSec::Types::VisionResultSignature, nil]
3560
+ # @!attribute [r] cheque_type
3561
+ # @return [String, nil]
3562
+ # @!attribute [r] language
3563
+ # @return [String, nil] ISO 639-1 language of the face.
3564
+ # @!attribute [r] region_guess
3565
+ # @return [String, nil] Country the face suggests, ISO 3166-1 alpha-2.
3566
+ class VisionResult < VeriSecObject
3567
+ FIELDS = {
3568
+ "fields" => "VisionField",
3569
+ "amount" => "VisionResultAmount",
3570
+ "currency" => "VisionResultCurrency",
3571
+ "date" => "VisionResultDate",
3572
+ "payee" => nil,
3573
+ "drawer" => "VisionResultDrawer",
3574
+ "bank" => "VisionResultBank",
3575
+ "cheque_number_printed" => nil,
3576
+ "account_number_printed" => nil,
3577
+ "memo" => nil,
3578
+ "pay_wording" => nil,
3579
+ "crossing" => "VisionResultCrossing",
3580
+ "signature" => "VisionResultSignature",
3581
+ "cheque_type" => nil,
3582
+ "language" => nil,
3583
+ "region_guess" => nil
3584
+ }.freeze
3585
+ end
3586
+
3587
+ # One field the vision reader returned.
3588
+ #
3589
+ # @!attribute [r] source_id
3590
+ # @return [Integer, nil] Index of the text box this field kept.
3591
+ # @!attribute [r] type
3592
+ # @return [String] Field type: `payee`, `courtesy_amount`, `legal_amount`, `date`, `drawer`,
3593
+ # `bank_name`, `memo`, `cheque_number`, `signature`.
3594
+ # @!attribute [r] value
3595
+ # @return [String, nil] The value, corrected.
3596
+ # @!attribute [r] confidence
3597
+ # @return [Numeric, nil] Confidence, 0 to 1.
3598
+ # @!attribute [r] verified
3599
+ # @return [Boolean, nil] Checked against the detector's text.
3600
+ # @!attribute [r] box
3601
+ # @return [Array<Array<Numeric>>, nil] The polygon (4 points) the field kept.
3602
+ # @!attribute [r] detector_text
3603
+ # @return [String, nil] What the text detector read there.
3604
+ class VisionField < VeriSecObject
3605
+ FIELDS = {
3606
+ "source_id" => nil,
3607
+ "type" => nil,
3608
+ "value" => nil,
3609
+ "confidence" => nil,
3610
+ "verified" => nil,
3611
+ "box" => nil,
3612
+ "detector_text" => nil
3613
+ }.freeze
3614
+ end
3615
+
3616
+ # VisionResultAmount.
3617
+ #
3618
+ # @!attribute [r] figures
3619
+ # @return [String, nil] The amount box, as written.
3620
+ # @!attribute [r] words
3621
+ # @return [String, nil] The amount in words, as written.
3622
+ # @!attribute [r] numeric
3623
+ # @return [Numeric, nil]
3624
+ # @!attribute [r] fraction
3625
+ # @return [String, nil]
3626
+ # @!attribute [r] agreement
3627
+ # @return [Boolean, nil] Words and figures say the same amount.
3628
+ class VisionResultAmount < VeriSecObject
3629
+ FIELDS = {
3630
+ "figures" => nil,
3631
+ "words" => nil,
3632
+ "numeric" => nil,
3633
+ "fraction" => nil,
3634
+ "agreement" => nil
3635
+ }.freeze
3636
+ end
3637
+
3638
+ # VisionResultCurrency.
3639
+ #
3640
+ # @!attribute [r] code
3641
+ # @return [String, nil]
3642
+ # @!attribute [r] symbol
3643
+ # @return [String, nil]
3644
+ # @!attribute [r] source
3645
+ # @return [String, nil]
3646
+ class VisionResultCurrency < VeriSecObject
3647
+ FIELDS = {
3648
+ "code" => nil,
3649
+ "symbol" => nil,
3650
+ "source" => nil
3651
+ }.freeze
3652
+ end
3653
+
3654
+ # VisionResultDate.
3655
+ #
3656
+ # @!attribute [r] raw
3657
+ # @return [String, nil]
3658
+ # @!attribute [r] iso
3659
+ # @return [String, nil]
3660
+ # @!attribute [r] format
3661
+ # @return [String, nil]
3662
+ # @!attribute [r] ambiguous
3663
+ # @return [Boolean, nil]
3664
+ # @!attribute [r] post_dated
3665
+ # @return [Boolean, nil]
3666
+ class VisionResultDate < VeriSecObject
3667
+ FIELDS = {
3668
+ "raw" => nil,
3669
+ "iso" => nil,
3670
+ "format" => nil,
3671
+ "ambiguous" => nil,
3672
+ "post_dated" => nil
3673
+ }.freeze
3674
+ end
3675
+
3676
+ # The account holder printed on the cheque.
3677
+ #
3678
+ # @!attribute [r] name
3679
+ # @return [String, nil]
3680
+ # @!attribute [r] address
3681
+ # @return [String, nil]
3682
+ class VisionResultDrawer < VeriSecObject
3683
+ FIELDS = {
3684
+ "name" => nil,
3685
+ "address" => nil
3686
+ }.freeze
3687
+ end
3688
+
3689
+ # VisionResultBank.
3690
+ #
3691
+ # @!attribute [r] name
3692
+ # @return [String, nil]
3693
+ # @!attribute [r] country
3694
+ # @return [String, nil]
3695
+ # @!attribute [r] branch
3696
+ # @return [String, nil]
3697
+ # @!attribute [r] address
3698
+ # @return [String, nil]
3699
+ class VisionResultBank < VeriSecObject
3700
+ FIELDS = {
3701
+ "name" => nil,
3702
+ "country" => nil,
3703
+ "branch" => nil,
3704
+ "address" => nil
3705
+ }.freeze
3706
+ end
3707
+
3708
+ # VisionResultCrossing.
3709
+ #
3710
+ # @!attribute [r] present
3711
+ # @return [Boolean, nil]
3712
+ # @!attribute [r] type
3713
+ # @return [String, nil]
3714
+ # @!attribute [r] text
3715
+ # @return [String, nil]
3716
+ class VisionResultCrossing < VeriSecObject
3717
+ FIELDS = {
3718
+ "present" => nil,
3719
+ "type" => nil,
3720
+ "text" => nil
3721
+ }.freeze
3722
+ end
3723
+
3724
+ # VisionResultSignature.
3725
+ #
3726
+ # @!attribute [r] present
3727
+ # @return [Boolean, nil]
3728
+ # @!attribute [r] count
3729
+ # @return [Integer, nil]
3730
+ class VisionResultSignature < VeriSecObject
3731
+ FIELDS = {
3732
+ "present" => nil,
3733
+ "count" => nil
3734
+ }.freeze
3735
+ end
3736
+
3737
+ # A bank read on a document, matched in the directory.
3738
+ #
3739
+ # @!attribute [r] read
3740
+ # @return [VeriSec::Types::BankMatchRead] What the document says.
3741
+ # @!attribute [r] resolved
3742
+ # @return [VeriSec::Types::BankResolved, nil] The bank matched in the directory. Absent when none
3743
+ # matched.
3744
+ # @!attribute [r] match_confidence
3745
+ # @return [Numeric] How strong the match is, 0 to 1.
3746
+ # @!attribute [r] name_match
3747
+ # @return [Numeric, nil] How surely the two names name the same bank, 0 to 1.
3748
+ # @!attribute [r] alternatives
3749
+ # @return [Array<VeriSec::Types::BankResolved>] Other close banks, best first.
3750
+ class BankMatch < VeriSecObject
3751
+ FIELDS = {
3752
+ "read" => "BankMatchRead",
3753
+ "resolved" => "BankResolved",
3754
+ "match_confidence" => nil,
3755
+ "name_match" => nil,
3756
+ "alternatives" => "BankResolved"
3757
+ }.freeze
3758
+ end
3759
+
3760
+ # What the document says.
3761
+ #
3762
+ # @!attribute [r] name
3763
+ # @return [String, nil]
3764
+ # @!attribute [r] country
3765
+ # @return [String, nil]
3766
+ # @!attribute [r] branch
3767
+ # @return [String, nil]
3768
+ # @!attribute [r] address
3769
+ # @return [String, nil]
3770
+ class BankMatchRead < VeriSecObject
3771
+ FIELDS = {
3772
+ "name" => nil,
3773
+ "country" => nil,
3774
+ "branch" => nil,
3775
+ "address" => nil
3776
+ }.freeze
3777
+ end
3778
+
3779
+ # A bank from VeriSec's directory of about 75,000 banks.
3780
+ #
3781
+ # @!attribute [r] profile_id
3782
+ # @return [String] The bank's directory id.
3783
+ # @!attribute [r] name
3784
+ # @return [String] The bank's name.
3785
+ # @!attribute [r] country
3786
+ # @return [String, nil]
3787
+ # @!attribute [r] country_code
3788
+ # @return [String, nil] ISO 3166-1 alpha-2.
3789
+ # @!attribute [r] city
3790
+ # @return [String, nil]
3791
+ # @!attribute [r] address
3792
+ # @return [String, nil]
3793
+ # @!attribute [r] bic
3794
+ # @return [String, nil]
3795
+ # @!attribute [r] routing
3796
+ # @return [String, nil]
3797
+ # @!attribute [r] parent
3798
+ # @return [String, nil]
3799
+ # @!attribute [r] status
3800
+ # @return [String, nil] Only when the record states it plainly. One of "active", "dissolved", nil.
3801
+ # @!attribute [r] logo_url
3802
+ # @return [String, nil] The bank's logo, relative to the API base.
3803
+ # @!attribute [r] flag_url
3804
+ # @return [String, nil] The country's flag (SVG), relative to the API base.
3805
+ class BankResolved < VeriSecObject
3806
+ FIELDS = {
3807
+ "profile_id" => nil,
3808
+ "name" => nil,
3809
+ "country" => nil,
3810
+ "country_code" => nil,
3811
+ "city" => nil,
3812
+ "address" => nil,
3813
+ "bic" => nil,
3814
+ "routing" => nil,
3815
+ "parent" => nil,
3816
+ "status" => nil,
3817
+ "logo_url" => nil,
3818
+ "flag_url" => nil
3819
+ }.freeze
3820
+ end
3821
+
3822
+ # A full currency record (ISO 4217 + CLDR).
3823
+ #
3824
+ # @!attribute [r] code
3825
+ # @return [String, nil]
3826
+ # @!attribute [r] numeric_code
3827
+ # @return [String, nil]
3828
+ # @!attribute [r] name
3829
+ # @return [String, nil]
3830
+ # @!attribute [r] symbol
3831
+ # @return [String, nil]
3832
+ # @!attribute [r] local_symbol
3833
+ # @return [String, nil]
3834
+ # @!attribute [r] minor_units
3835
+ # @return [String, nil]
3836
+ # @!attribute [r] english_name_cldr
3837
+ # @return [String, nil]
3838
+ # @!attribute [r] usd_per_unit
3839
+ # @return [Numeric, String, nil]
3840
+ # @!attribute [r] units_per_usd
3841
+ # @return [Numeric, String, nil]
3842
+ # @!attribute [r] wikidata_id
3843
+ # @return [String, nil]
3844
+ class ResolvedCurrency < VeriSecObject
3845
+ FIELDS = {
3846
+ "code" => nil,
3847
+ "numeric_code" => nil,
3848
+ "name" => nil,
3849
+ "symbol" => nil,
3850
+ "local_symbol" => nil,
3851
+ "minor_units" => nil,
3852
+ "english_name_cldr" => nil,
3853
+ "usd_per_unit" => nil,
3854
+ "units_per_usd" => nil,
3855
+ "wikidata_id" => nil
3856
+ }.freeze
3857
+ end
3858
+
3859
+ # Every text box on the image, for drawing only (no text).
3860
+ #
3861
+ # @!attribute [r] width
3862
+ # @return [Integer] Image width in pixels.
3863
+ # @!attribute [r] height
3864
+ # @return [Integer] Image height in pixels.
3865
+ # @!attribute [r] boxes
3866
+ # @return [Array<VeriSec::Types::TextBoxesBox>] Every text region found.
3867
+ class TextBoxes < VeriSecObject
3868
+ FIELDS = {
3869
+ "width" => nil,
3870
+ "height" => nil,
3871
+ "boxes" => "TextBoxesBox"
3872
+ }.freeze
3873
+ end
3874
+
3875
+ # TextBoxesBox.
3876
+ #
3877
+ # @!attribute [r] box
3878
+ # @return [Array<Numeric>] Four corners x1,y1 … x4,y4, in image pixels.
3879
+ # @!attribute [r] score
3880
+ # @return [Numeric] Detection score, 0 to 1.
3881
+ class TextBoxesBox < VeriSecObject
3882
+ FIELDS = {
3883
+ "box" => nil,
3884
+ "score" => nil
3885
+ }.freeze
3886
+ end
3887
+
3888
+ # One cheque of a photo that holds several.
3889
+ #
3890
+ # @!attribute [r] index
3891
+ # @return [Integer] 1-based, from the top (left to right when side by side).
3892
+ # @!attribute [r] micr
3893
+ # @return [VeriSec::Types::DeepChequeMicr]
3894
+ # @!attribute [r] vision
3895
+ # @return [VeriSec::Types::VisionResult, nil] What is written on the cheque's face. The engine may add
3896
+ # keys; they are kept.
3897
+ # @!attribute [r] bank
3898
+ # @return [VeriSec::Types::BankMatch, nil] A bank read on a document, matched in the directory.
3899
+ # @!attribute [r] country
3900
+ # @return [VeriSec::Types::CountryInfo, nil] The cheque's country and where it came from.
3901
+ # @!attribute [r] currency
3902
+ # @return [VeriSec::Types::ResolvedCurrency, nil] A full currency record (ISO 4217 + CLDR).
3903
+ # @!attribute [r] reader_error
3904
+ # @return [String, nil]
3905
+ class DeepCheque < VeriSecObject
3906
+ FIELDS = {
3907
+ "index" => nil,
3908
+ "micr" => "DeepChequeMicr",
3909
+ "vision" => "VisionResult",
3910
+ "bank" => "BankMatch",
3911
+ "country" => "CountryInfo",
3912
+ "currency" => "ResolvedCurrency",
3913
+ "reader_error" => nil
3914
+ }.freeze
3915
+ end
3916
+
3917
+ # DeepChequeMicr.
3918
+ #
3919
+ # @!attribute [r] status
3920
+ # @return [String] `partial`: read, but something a caller relies on is missing or failed a check
3921
+ # (`issue_code` says what). `unreadable`: nothing to read. One of "read", "partial", "unreadable".
3922
+ # @!attribute [r] issue_code
3923
+ # @return [String, nil] Why a read is `partial` or `unreadable`: `no_micr_line`,
3924
+ # `routing_checksum_failed`, `routing_prefix_invalid`, `layout_unrecognised`, `weak_characters`,
3925
+ # `no_card`, `number_unreadable`, `luhn_failed`, `low_confidence`.
3926
+ # @!attribute [r] issue
3927
+ # @return [String, nil]
3928
+ # @!attribute [r] zones_detected
3929
+ # @return [Integer, nil]
3930
+ # @!attribute [r] zones
3931
+ # @return [Array<VeriSec::Types::MicrZone>, nil]
3932
+ # @!attribute [r] micr
3933
+ # @return [VeriSec::Types::MicrZone, nil] One MICR line, exactly as the engine returns it, plus values
3934
+ # derived from its text.
3935
+ # @!attribute [r] country
3936
+ # @return [VeriSec::Types::CountryInfo, nil] The cheque's country and where it came from.
3937
+ # @!attribute [r] quality
3938
+ # @return [VeriSec::Types::DeepChequeMicrQuality, nil]
3939
+ class DeepChequeMicr < VeriSecObject
3940
+ FIELDS = {
3941
+ "status" => nil,
3942
+ "issue_code" => nil,
3943
+ "issue" => nil,
3944
+ "zones_detected" => nil,
3945
+ "zones" => "MicrZone",
3946
+ "micr" => "MicrZone",
3947
+ "country" => "CountryInfo",
3948
+ "quality" => "DeepChequeMicrQuality"
3949
+ }.freeze
3950
+ end
3951
+
3952
+ # DeepChequeMicrQuality.
3953
+ #
3954
+ # @!attribute [r] rotation
3955
+ # @return [Numeric, nil]
3956
+ # @!attribute [r] skew
3957
+ # @return [Numeric, nil]
3958
+ # @!attribute [r] min_char_confidence
3959
+ # @return [Numeric, nil]
3960
+ class DeepChequeMicrQuality < VeriSecObject
3961
+ FIELDS = {
3962
+ "rotation" => nil,
3963
+ "skew" => nil,
3964
+ "min_char_confidence" => nil
3965
+ }.freeze
3966
+ end
3967
+
3968
+ # Where the time went, in milliseconds.
3969
+ #
3970
+ # @!attribute [r] micr_ms
3971
+ # @return [Integer, nil]
3972
+ # @!attribute [r] model_ms
3973
+ # @return [Integer, nil]
3974
+ # @!attribute [r] boxes_ms
3975
+ # @return [Integer, nil]
3976
+ # @!attribute [r] total_ms
3977
+ # @return [Integer, nil]
3978
+ class ChequeDeepReadTiming < VeriSecObject
3979
+ FIELDS = {
3980
+ "micr_ms" => nil,
3981
+ "model_ms" => nil,
3982
+ "boxes_ms" => nil,
3983
+ "total_ms" => nil
3984
+ }.freeze
3985
+ end
3986
+
3987
+ # Photo quality from the check before the read. It never blocks the read, only warns.
3988
+ #
3989
+ # @!attribute [r] status
3990
+ # @return [String] One of "ok", "document_not_found", "too_far", "blurry", "glare", "unreadable".
3991
+ # @!attribute [r] normalised
3992
+ # @return [Boolean, nil]
3993
+ # @!attribute [r] ms
3994
+ # @return [Integer, nil]
3995
+ class ChequeDeepReadImageQuality < VeriSecObject
3996
+ FIELDS = {
3997
+ "status" => nil,
3998
+ "normalised" => nil,
3999
+ "ms" => nil
4000
+ }.freeze
4001
+ end
4002
+
4003
+ # Just the MICR line and its named fields.
4004
+ #
4005
+ # Returned by {VeriSec::Resources::Cheques#micr_line}.
4006
+ #
4007
+ # @!attribute [r] object
4008
+ # @return [String] Always `micr_line`.
4009
+ # @!attribute [r] status
4010
+ # @return [String] `partial`: read, but something a caller relies on is missing or failed a check
4011
+ # (`issue_code` says what). `unreadable`: nothing to read. One of "read", "partial", "unreadable".
4012
+ # @!attribute [r] issue_code
4013
+ # @return [String, nil] Why a read is `partial` or `unreadable`: `no_micr_line`,
4014
+ # `routing_checksum_failed`, `routing_prefix_invalid`, `layout_unrecognised`, `weak_characters`,
4015
+ # `no_card`, `number_unreadable`, `luhn_failed`, `low_confidence`.
4016
+ # @!attribute [r] issue
4017
+ # @return [String, nil] Plain-words reason, when not `read`.
4018
+ # @!attribute [r] lines_found
4019
+ # @return [Integer] How many MICR lines the photo has.
4020
+ # @!attribute [r] processing_ms
4021
+ # @return [Integer] How long the engine took, in milliseconds.
4022
+ # @!attribute [r] line
4023
+ # @return [VeriSec::Types::MicrLineLine, nil] The strongest line.
4024
+ # @!attribute [r] fields
4025
+ # @return [Array<VeriSec::Types::MicrNamedValue>, nil] Each field by name; an empty value means this
4026
+ # line does not carry it.
4027
+ # @!attribute [r] template
4028
+ # @return [String, nil] Which fixed template named the line. One of "us_business", "us_personal",
4029
+ # "br_cmc7", "fr_cmc7".
4030
+ # @!attribute [r] standard
4031
+ # @return [VeriSec::Types::MicrStandardLayout, nil] An official national layout (whole-line match only).
4032
+ # @!attribute [r] routing
4033
+ # @return [VeriSec::Types::RoutingProof, nil] The ABA proof behind a US routing number.
4034
+ class MicrLine < VeriSecObject
4035
+ FIELDS = {
4036
+ "object" => nil,
4037
+ "status" => nil,
4038
+ "issue_code" => nil,
4039
+ "issue" => nil,
4040
+ "lines_found" => nil,
4041
+ "processing_ms" => nil,
4042
+ "line" => "MicrLineLine",
4043
+ "fields" => "MicrNamedValue",
4044
+ "template" => nil,
4045
+ "standard" => "MicrStandardLayout",
4046
+ "routing" => "RoutingProof"
4047
+ }.freeze
4048
+ end
4049
+
4050
+ # The strongest line.
4051
+ #
4052
+ # @!attribute [r] text
4053
+ # @return [String]
4054
+ # @!attribute [r] printed
4055
+ # @return [String]
4056
+ # @!attribute [r] font
4057
+ # @return [String] One of "E-13B", "CMC-7".
4058
+ # @!attribute [r] confidence
4059
+ # @return [Numeric]
4060
+ # @!attribute [r] min_char_confidence
4061
+ # @return [Numeric, nil]
4062
+ # @!attribute [r] box
4063
+ # @return [Array<Numeric>] Four corners x1,y1 … x4,y4, in image pixels.
4064
+ class MicrLineLine < VeriSecObject
4065
+ FIELDS = {
4066
+ "text" => nil,
4067
+ "printed" => nil,
4068
+ "font" => nil,
4069
+ "confidence" => nil,
4070
+ "min_char_confidence" => nil,
4071
+ "box" => nil
4072
+ }.freeze
4073
+ end
4074
+
4075
+ # The amount on a cheque. Fields the face does not show are absent.
4076
+ #
4077
+ # Returned by {VeriSec::Resources::Cheques#amount}.
4078
+ #
4079
+ # @!attribute [r] object
4080
+ # @return [String] Always `cheque_amount`.
4081
+ # @!attribute [r] figures
4082
+ # @return [String, nil] The amount box, as written.
4083
+ # @!attribute [r] words
4084
+ # @return [String, nil] The amount in words, as written.
4085
+ # @!attribute [r] numeric
4086
+ # @return [Numeric, nil] The amount as a number.
4087
+ # @!attribute [r] agreement
4088
+ # @return [Boolean, nil] Words and figures say the same amount.
4089
+ # @!attribute [r] currency
4090
+ # @return [VeriSec::Types::ChequeAmountCurrency, nil]
4091
+ # @!attribute [r] processing_ms
4092
+ # @return [Integer] How long the engine took, in milliseconds.
4093
+ class ChequeAmount < VeriSecObject
4094
+ FIELDS = {
4095
+ "object" => nil,
4096
+ "figures" => nil,
4097
+ "words" => nil,
4098
+ "numeric" => nil,
4099
+ "agreement" => nil,
4100
+ "currency" => "ChequeAmountCurrency",
4101
+ "processing_ms" => nil
4102
+ }.freeze
4103
+ end
4104
+
4105
+ # ChequeAmountCurrency.
4106
+ #
4107
+ # @!attribute [r] code
4108
+ # @return [String] ISO 4217.
4109
+ # @!attribute [r] name
4110
+ # @return [String, nil]
4111
+ # @!attribute [r] symbol
4112
+ # @return [String, nil]
4113
+ class ChequeAmountCurrency < VeriSecObject
4114
+ FIELDS = {
4115
+ "code" => nil,
4116
+ "name" => nil,
4117
+ "symbol" => nil
4118
+ }.freeze
4119
+ end
4120
+
4121
+ # The date on a cheque. Your own rules decide when a cheque is stale.
4122
+ #
4123
+ # Returned by {VeriSec::Resources::Cheques#date}.
4124
+ #
4125
+ # @!attribute [r] object
4126
+ # @return [String] Always `cheque_date`.
4127
+ # @!attribute [r] raw
4128
+ # @return [String, nil] The date as written.
4129
+ # @!attribute [r] iso
4130
+ # @return [String, nil] The same date as YYYY-MM-DD.
4131
+ # @!attribute [r] age_days
4132
+ # @return [Integer, nil] Days since the date; negative when it is in the future.
4133
+ # @!attribute [r] post_dated
4134
+ # @return [Boolean, nil] True when the date is in the future.
4135
+ # @!attribute [r] processing_ms
4136
+ # @return [Integer] How long the engine took, in milliseconds.
4137
+ class ChequeDate < VeriSecObject
4138
+ FIELDS = {
4139
+ "object" => nil,
4140
+ "raw" => nil,
4141
+ "iso" => nil,
4142
+ "age_days" => nil,
4143
+ "post_dated" => nil,
4144
+ "processing_ms" => nil
4145
+ }.freeze
4146
+ end
4147
+
4148
+ # Who a cheque pays and who pays it. A name not on the cheque is left out, never guessed.
4149
+ #
4150
+ # Returned by {VeriSec::Resources::Cheques#parties}.
4151
+ #
4152
+ # @!attribute [r] object
4153
+ # @return [String] Always `cheque_parties`.
4154
+ # @!attribute [r] payee
4155
+ # @return [String, nil] The name the cheque is paid to.
4156
+ # @!attribute [r] drawer
4157
+ # @return [String, nil] The account holder printed on the cheque.
4158
+ # @!attribute [r] processing_ms
4159
+ # @return [Integer] How long the engine took, in milliseconds.
4160
+ class ChequeParties < VeriSecObject
4161
+ FIELDS = {
4162
+ "object" => nil,
4163
+ "payee" => nil,
4164
+ "drawer" => nil,
4165
+ "processing_ms" => nil
4166
+ }.freeze
4167
+ end
4168
+
4169
+ # The bank printed on a cheque, matched in the directory.
4170
+ #
4171
+ # Returned by {VeriSec::Resources::Cheques#bank}.
4172
+ #
4173
+ # @!attribute [r] object
4174
+ # @return [String] Always `cheque_bank`.
4175
+ # @!attribute [r] read
4176
+ # @return [VeriSec::Types::ChequeBankRead, nil] The bank as printed on the cheque.
4177
+ # @!attribute [r] bank
4178
+ # @return [VeriSec::Types::BankResolved, nil] The matched bank. Absent when no bank matched.
4179
+ # @!attribute [r] match_confidence
4180
+ # @return [Numeric, nil] How strong the match is, 0 to 1.
4181
+ # @!attribute [r] country
4182
+ # @return [VeriSec::Types::ChequeBankCountry, nil]
4183
+ # @!attribute [r] processing_ms
4184
+ # @return [Integer] How long the engine took, in milliseconds.
4185
+ class ChequeBank < VeriSecObject
4186
+ FIELDS = {
4187
+ "object" => nil,
4188
+ "read" => "ChequeBankRead",
4189
+ "bank" => "BankResolved",
4190
+ "match_confidence" => nil,
4191
+ "country" => "ChequeBankCountry",
4192
+ "processing_ms" => nil
4193
+ }.freeze
4194
+ end
4195
+
4196
+ # The bank as printed on the cheque.
4197
+ #
4198
+ # @!attribute [r] name
4199
+ # @return [String, nil]
4200
+ # @!attribute [r] branch
4201
+ # @return [String, nil]
4202
+ # @!attribute [r] address
4203
+ # @return [String, nil]
4204
+ # @!attribute [r] country
4205
+ # @return [String, nil]
4206
+ class ChequeBankRead < VeriSecObject
4207
+ FIELDS = {
4208
+ "name" => nil,
4209
+ "branch" => nil,
4210
+ "address" => nil,
4211
+ "country" => nil
4212
+ }.freeze
4213
+ end
4214
+
4215
+ # ChequeBankCountry.
4216
+ #
4217
+ # @!attribute [r] code
4218
+ # @return [String]
4219
+ # @!attribute [r] name
4220
+ # @return [String]
4221
+ # @!attribute [r] flag
4222
+ # @return [String, nil]
4223
+ # @!attribute [r] flag_url
4224
+ # @return [String, nil]
4225
+ class ChequeBankCountry < VeriSecObject
4226
+ FIELDS = {
4227
+ "code" => nil,
4228
+ "name" => nil,
4229
+ "flag" => nil,
4230
+ "flag_url" => nil
4231
+ }.freeze
4232
+ end
4233
+
4234
+ # A bank looked up in the directory.
4235
+ #
4236
+ # Returned by {VeriSec::Resources::Banks#lookup}.
4237
+ #
4238
+ # @!attribute [r] object
4239
+ # @return [String] Always `bank_lookup`.
4240
+ # @!attribute [r] query
4241
+ # @return [VeriSec::Types::BankLookupQuery] The query as received.
4242
+ # @!attribute [r] bank
4243
+ # @return [VeriSec::Types::BankResolved, nil] The best match. Absent when nothing matched.
4244
+ # @!attribute [r] name_match
4245
+ # @return [Numeric, nil] How surely your name and the bank's name are the same bank, 0 to 1.
4246
+ # @!attribute [r] verified
4247
+ # @return [Boolean] True when the match is sure: name match 0.80 or more, or an exact BIC.
4248
+ # @!attribute [r] alternatives
4249
+ # @return [Array<VeriSec::Types::BankResolved>] Other close banks, best first.
4250
+ class BankLookup < VeriSecObject
4251
+ FIELDS = {
4252
+ "object" => nil,
4253
+ "query" => "BankLookupQuery",
4254
+ "bank" => "BankResolved",
4255
+ "name_match" => nil,
4256
+ "verified" => nil,
4257
+ "alternatives" => "BankResolved"
4258
+ }.freeze
4259
+ end
4260
+
4261
+ # The query as received.
4262
+ #
4263
+ # @!attribute [r] name
4264
+ # @return [String, nil]
4265
+ # @!attribute [r] country
4266
+ # @return [String, nil]
4267
+ # @!attribute [r] bic
4268
+ # @return [String, nil]
4269
+ class BankLookupQuery < VeriSecObject
4270
+ FIELDS = {
4271
+ "name" => nil,
4272
+ "country" => nil,
4273
+ "bic" => nil
4274
+ }.freeze
4275
+ end
4276
+
4277
+ # A card read (the Card service's wire format). Stored copies (lists, retrieve) never contain the full
4278
+ # number.
4279
+ #
4280
+ # Returned by {VeriSec::Resources::Cards#read}.
4281
+ #
4282
+ # @!attribute [r] id
4283
+ # @return [String] Scan id, `crd_` followed by 12 characters.
4284
+ # @!attribute [r] object
4285
+ # @return [String] Always `card`.
4286
+ # @!attribute [r] created_at
4287
+ # @return [String] When it was created (ISO 8601, UTC).
4288
+ # @!attribute [r] source
4289
+ # @return [String] Where the call came from, as shown in the console's logs. One of "api", "sdk",
4290
+ # "playground".
4291
+ # @!attribute [r] env
4292
+ # @return [String] The environment the read is recorded in: the credential's. One of "live", "test".
4293
+ # @!attribute [r] processing_ms
4294
+ # @return [Integer] How long the engine took, in milliseconds.
4295
+ # @!attribute [r] status
4296
+ # @return [String] `partial`: read, but something a caller relies on is missing or failed a check
4297
+ # (`issue_code` says what). `unreadable`: nothing to read. One of "read", "partial", "unreadable".
4298
+ # @!attribute [r] issue_code
4299
+ # @return [String, nil] Why a read is `partial` or `unreadable`: `no_micr_line`,
4300
+ # `routing_checksum_failed`, `routing_prefix_invalid`, `layout_unrecognised`, `weak_characters`,
4301
+ # `no_card`, `number_unreadable`, `luhn_failed`, `low_confidence`.
4302
+ # @!attribute [r] issue
4303
+ # @return [String, nil] Plain-words reason, when not `read`.
4304
+ # @!attribute [r] image
4305
+ # @return [VeriSec::Types::CardResponseImage] Dimensions only: card photos are never stored.
4306
+ # @!attribute [r] cards_detected
4307
+ # @return [Integer]
4308
+ # @!attribute [r] cards
4309
+ # @return [Array<VeriSec::Types::CardRead>] Every card found, strongest first.
4310
+ # @!attribute [r] card
4311
+ # @return [VeriSec::Types::CardRead, nil] The primary card, without its `bin` and `bank` (they sit
4312
+ # alongside). Absent when unreadable.
4313
+ # @!attribute [r] bin
4314
+ # @return [VeriSec::Types::BinRecord, nil] Who issued a card. Fields that are unknown are absent.
4315
+ # @!attribute [r] bank
4316
+ # @return [VeriSec::Types::BankMatch, nil] A bank read on a document, matched in the directory.
4317
+ class CardResponse < VeriSecObject
4318
+ FIELDS = {
4319
+ "id" => nil,
4320
+ "object" => nil,
4321
+ "created_at" => nil,
4322
+ "source" => nil,
4323
+ "env" => nil,
4324
+ "processing_ms" => nil,
4325
+ "status" => nil,
4326
+ "issue_code" => nil,
4327
+ "issue" => nil,
4328
+ "image" => "CardResponseImage",
4329
+ "cards_detected" => nil,
4330
+ "cards" => "CardRead",
4331
+ "card" => "CardRead",
4332
+ "bin" => "BinRecord",
4333
+ "bank" => "BankMatch"
4334
+ }.freeze
4335
+ end
4336
+
4337
+ # Dimensions only: card photos are never stored.
4338
+ #
4339
+ # @!attribute [r] width
4340
+ # @return [Integer]
4341
+ # @!attribute [r] height
4342
+ # @return [Integer]
4343
+ class CardResponseImage < VeriSecObject
4344
+ FIELDS = {
4345
+ "width" => nil,
4346
+ "height" => nil
4347
+ }.freeze
4348
+ end
4349
+
4350
+ # One payment card in a photo.
4351
+ #
4352
+ # @!attribute [r] index
4353
+ # @return [Integer]
4354
+ # @!attribute [r] description
4355
+ # @return [String, nil] The engine's label, for example `Card #1`.
4356
+ # @!attribute [r] fields
4357
+ # @return [Array<VeriSec::Types::CardField>, nil] Every field the engine read, verbatim.
4358
+ # @!attribute [r] confidence
4359
+ # @return [Numeric] Summary confidence for the card, 0 to 100.
4360
+ # @!attribute [r] warpedBox
4361
+ # @return [Array<Numeric>, nil] The engine's own box, verbatim.
4362
+ # @!attribute [r] box
4363
+ # @return [Array<Numeric>] Four corners x1,y1 … x4,y4, in image pixels.
4364
+ # @!attribute [r] number
4365
+ # @return [String, nil] The full number: in the read response only, never in stored copies.
4366
+ # @!attribute [r] first6
4367
+ # @return [String, nil]
4368
+ # @!attribute [r] last4
4369
+ # @return [String, nil]
4370
+ # @!attribute [r] length
4371
+ # @return [Integer] Digits in the number; 0 when it could not be read.
4372
+ # @!attribute [r] fingerprint
4373
+ # @return [String, nil] Keyed hash of the number, `cf_` + 24 hex: stable across scans, safe to store.
4374
+ # @!attribute [r] luhn_valid
4375
+ # @return [Boolean]
4376
+ # @!attribute [r] scheme_valid
4377
+ # @return [Boolean] Luhn and a length that fits the network.
4378
+ # @!attribute [r] scheme_checks
4379
+ # @return [VeriSec::Types::CardReadSchemeChecks]
4380
+ # @!attribute [r] network_from_prefix
4381
+ # @return [String, nil]
4382
+ # @!attribute [r] expired
4383
+ # @return [Boolean, nil]
4384
+ # @!attribute [r] expires_in_days
4385
+ # @return [Integer, nil] Negative once expired.
4386
+ # @!attribute [r] expiry_status
4387
+ # @return [String] `expiring_soon`: 60 days or less left. One of "valid", "expiring_soon", "expired",
4388
+ # "unknown".
4389
+ # @!attribute [r] bin
4390
+ # @return [VeriSec::Types::BinRecord, nil] Who issued a card. Fields that are unknown are absent.
4391
+ # @!attribute [r] bank
4392
+ # @return [VeriSec::Types::BankMatch, nil] A bank read on a document, matched in the directory.
4393
+ # @!attribute [r] number_valid
4394
+ # @return [Boolean, nil] The engine's own card-level pass flag.
4395
+ class CardRead < VeriSecObject
4396
+ FIELDS = {
4397
+ "index" => nil,
4398
+ "description" => nil,
4399
+ "fields" => "CardField",
4400
+ "confidence" => nil,
4401
+ "warpedBox" => nil,
4402
+ "box" => nil,
4403
+ "number" => nil,
4404
+ "first6" => nil,
4405
+ "last4" => nil,
4406
+ "length" => nil,
4407
+ "fingerprint" => nil,
4408
+ "luhn_valid" => nil,
4409
+ "scheme_valid" => nil,
4410
+ "scheme_checks" => "CardReadSchemeChecks",
4411
+ "network_from_prefix" => nil,
4412
+ "expired" => nil,
4413
+ "expires_in_days" => nil,
4414
+ "expiry_status" => nil,
4415
+ "bin" => "BinRecord",
4416
+ "bank" => "BankMatch",
4417
+ "number_valid" => nil
4418
+ }.freeze
4419
+ end
4420
+
4421
+ # One field as the engine emitted it. The engine may attach other keys (for example `valid` on the number,
4422
+ # `box`); they are kept.
4423
+ #
4424
+ # @!attribute [r] name
4425
+ # @return [String] Field name: `number`, `valid_thru`, `holder_name`…
4426
+ # @!attribute [r] value
4427
+ # @return [String, nil]
4428
+ # @!attribute [r] confidence
4429
+ # @return [Numeric, nil] 0 to 100.
4430
+ class CardField < VeriSecObject
4431
+ FIELDS = {
4432
+ "name" => nil,
4433
+ "value" => nil,
4434
+ "confidence" => nil
4435
+ }.freeze
4436
+ end
4437
+
4438
+ # CardReadSchemeChecks.
4439
+ #
4440
+ # @!attribute [r] luhn
4441
+ # @return [Boolean]
4442
+ # @!attribute [r] length
4443
+ # @return [Boolean]
4444
+ # @!attribute [r] iin_known
4445
+ # @return [Boolean] The BIN is in the tables.
4446
+ class CardReadSchemeChecks < VeriSecObject
4447
+ FIELDS = {
4448
+ "luhn" => nil,
4449
+ "length" => nil,
4450
+ "iin_known" => nil
4451
+ }.freeze
4452
+ end
4453
+
4454
+ # Who issued a card. Fields that are unknown are absent.
4455
+ #
4456
+ # Returned by {VeriSec::Resources::Bin#lookup}.
4457
+ #
4458
+ # @!attribute [r] bin
4459
+ # @return [String] The first 6 to 8 digits.
4460
+ # @!attribute [r] network
4461
+ # @return [String, nil] Visa, Mastercard, American Express, Discover…
4462
+ # @!attribute [r] type
4463
+ # @return [String, nil] Debit, Credit…
4464
+ # @!attribute [r] level
4465
+ # @return [String, nil] Classic, Gold, World…
4466
+ # @!attribute [r] issuer
4467
+ # @return [String, nil] The issuing bank's name.
4468
+ # @!attribute [r] country
4469
+ # @return [String, nil] Issuing country, ISO 3166-1 alpha-2.
4470
+ # @!attribute [r] country_name
4471
+ # @return [String, nil]
4472
+ # @!attribute [r] country_code3
4473
+ # @return [String, nil]
4474
+ # @!attribute [r] flag
4475
+ # @return [String, nil] Flag emoji.
4476
+ # @!attribute [r] flag_url
4477
+ # @return [String, nil] The country's flag (SVG), relative to the API base.
4478
+ # @!attribute [r] bank
4479
+ # @return [VeriSec::Types::BankMatch, nil] The issuer in the bank directory, with logo. Returned by GET
4480
+ # /v2/bin/{digits}.
4481
+ # @!attribute [r] currency
4482
+ # @return [String, nil] ISO 4217.
4483
+ # @!attribute [r] currency_name
4484
+ # @return [String, nil]
4485
+ # @!attribute [r] funding
4486
+ # @return [String, nil] One of "credit", "debit", "prepaid", "charge", "unknown".
4487
+ # @!attribute [r] is_prepaid
4488
+ # @return [Boolean, nil]
4489
+ # @!attribute [r] is_commercial
4490
+ # @return [Boolean, nil]
4491
+ # @!attribute [r] is_reloadable
4492
+ # @return [Boolean, nil]
4493
+ # @!attribute [r] category
4494
+ # @return [String, nil] One of "consumer", "commercial".
4495
+ # @!attribute [r] issuer_country
4496
+ # @return [String, nil]
4497
+ # @!attribute [r] phone
4498
+ # @return [String, nil] Issuer contact, when known.
4499
+ # @!attribute [r] url
4500
+ # @return [String, nil] Issuer website, when known.
4501
+ # @!attribute [r] source
4502
+ # @return [String, nil] Which tier answered.
4503
+ class BinRecord < VeriSecObject
4504
+ FIELDS = {
4505
+ "bin" => nil,
4506
+ "network" => nil,
4507
+ "type" => nil,
4508
+ "level" => nil,
4509
+ "issuer" => nil,
4510
+ "country" => nil,
4511
+ "country_name" => nil,
4512
+ "country_code3" => nil,
4513
+ "flag" => nil,
4514
+ "flag_url" => nil,
4515
+ "bank" => "BankMatch",
4516
+ "currency" => nil,
4517
+ "currency_name" => nil,
4518
+ "funding" => nil,
4519
+ "is_prepaid" => nil,
4520
+ "is_commercial" => nil,
4521
+ "is_reloadable" => nil,
4522
+ "category" => nil,
4523
+ "issuer_country" => nil,
4524
+ "phone" => nil,
4525
+ "url" => nil,
4526
+ "source" => nil
4527
+ }.freeze
4528
+ end
4529
+
4530
+ # The card number from a photo.
4531
+ #
4532
+ # Returned by {VeriSec::Resources::Cards#number}.
4533
+ #
4534
+ # @!attribute [r] object
4535
+ # @return [String] Always `card_number`.
4536
+ # @!attribute [r] status
4537
+ # @return [String] `partial`: read, but something a caller relies on is missing or failed a check
4538
+ # (`issue_code` says what). `unreadable`: nothing to read. One of "read", "partial", "unreadable".
4539
+ # @!attribute [r] issue_code
4540
+ # @return [String, nil] Why a read is `partial` or `unreadable`: `no_micr_line`,
4541
+ # `routing_checksum_failed`, `routing_prefix_invalid`, `layout_unrecognised`, `weak_characters`,
4542
+ # `no_card`, `number_unreadable`, `luhn_failed`, `low_confidence`.
4543
+ # @!attribute [r] issue
4544
+ # @return [String, nil]
4545
+ # @!attribute [r] processing_ms
4546
+ # @return [Integer] How long the engine took, in milliseconds.
4547
+ # @!attribute [r] number
4548
+ # @return [String, nil] The full number: in this response only, never stored.
4549
+ # @!attribute [r] first6
4550
+ # @return [String, nil]
4551
+ # @!attribute [r] last4
4552
+ # @return [String, nil]
4553
+ # @!attribute [r] length
4554
+ # @return [Integer, nil]
4555
+ # @!attribute [r] network
4556
+ # @return [String, nil]
4557
+ # @!attribute [r] luhn_valid
4558
+ # @return [Boolean, nil]
4559
+ # @!attribute [r] scheme_valid
4560
+ # @return [Boolean, nil]
4561
+ # @!attribute [r] confidence
4562
+ # @return [Numeric, nil] 0 to 100.
4563
+ class CardNumber < VeriSecObject
4564
+ FIELDS = {
4565
+ "object" => nil,
4566
+ "status" => nil,
4567
+ "issue_code" => nil,
4568
+ "issue" => nil,
4569
+ "processing_ms" => nil,
4570
+ "number" => nil,
4571
+ "first6" => nil,
4572
+ "last4" => nil,
4573
+ "length" => nil,
4574
+ "network" => nil,
4575
+ "luhn_valid" => nil,
4576
+ "scheme_valid" => nil,
4577
+ "confidence" => nil
4578
+ }.freeze
4579
+ end
4580
+
4581
+ # The expiry date from a card photo.
4582
+ #
4583
+ # Returned by {VeriSec::Resources::Cards#expiry}.
4584
+ #
4585
+ # @!attribute [r] object
4586
+ # @return [String] Always `card_expiry`.
4587
+ # @!attribute [r] status
4588
+ # @return [String] `partial`: read, but something a caller relies on is missing or failed a check
4589
+ # (`issue_code` says what). `unreadable`: nothing to read. One of "read", "partial", "unreadable".
4590
+ # @!attribute [r] issue_code
4591
+ # @return [String, nil] Why a read is `partial` or `unreadable`: `no_micr_line`,
4592
+ # `routing_checksum_failed`, `routing_prefix_invalid`, `layout_unrecognised`, `weak_characters`,
4593
+ # `no_card`, `number_unreadable`, `luhn_failed`, `low_confidence`.
4594
+ # @!attribute [r] issue
4595
+ # @return [String, nil]
4596
+ # @!attribute [r] valid_thru
4597
+ # @return [String, nil] MM/YY as printed.
4598
+ # @!attribute [r] valid_from
4599
+ # @return [String, nil] MM/YY, when printed.
4600
+ # @!attribute [r] expired
4601
+ # @return [Boolean, nil]
4602
+ # @!attribute [r] expires_in_days
4603
+ # @return [Integer, nil] Negative once expired.
4604
+ # @!attribute [r] expiry_status
4605
+ # @return [String, nil] `expiring_soon`: 60 days or less left. One of "valid", "expiring_soon",
4606
+ # "expired", "unknown".
4607
+ # @!attribute [r] confidence
4608
+ # @return [Numeric, nil] 0 to 100.
4609
+ # @!attribute [r] processing_ms
4610
+ # @return [Integer] How long the engine took, in milliseconds.
4611
+ class CardExpiry < VeriSecObject
4612
+ FIELDS = {
4613
+ "object" => nil,
4614
+ "status" => nil,
4615
+ "issue_code" => nil,
4616
+ "issue" => nil,
4617
+ "valid_thru" => nil,
4618
+ "valid_from" => nil,
4619
+ "expired" => nil,
4620
+ "expires_in_days" => nil,
4621
+ "expiry_status" => nil,
4622
+ "confidence" => nil,
4623
+ "processing_ms" => nil
4624
+ }.freeze
4625
+ end
4626
+
4627
+ # Checks on a typed card number. Only the first six and last four digits come back.
4628
+ #
4629
+ # Returned by {VeriSec::Resources::Cards#check}.
4630
+ #
4631
+ # @!attribute [r] object
4632
+ # @return [String] Always `card_check`.
4633
+ # @!attribute [r] first6
4634
+ # @return [String]
4635
+ # @!attribute [r] last4
4636
+ # @return [String]
4637
+ # @!attribute [r] length
4638
+ # @return [Integer]
4639
+ # @!attribute [r] network
4640
+ # @return [String, nil]
4641
+ # @!attribute [r] luhn_valid
4642
+ # @return [Boolean]
4643
+ # @!attribute [r] length_valid
4644
+ # @return [Boolean] The length fits the network.
4645
+ # @!attribute [r] scheme_valid
4646
+ # @return [Boolean] Luhn and length both hold.
4647
+ # @!attribute [r] expired
4648
+ # @return [Boolean, nil] When an expiry was sent.
4649
+ # @!attribute [r] expires_in_days
4650
+ # @return [Integer, nil] When an expiry was sent.
4651
+ # @!attribute [r] expiry_status
4652
+ # @return [String, nil] `expiring_soon`: 60 days or less left. One of "valid", "expiring_soon",
4653
+ # "expired", "unknown".
4654
+ # @!attribute [r] bin
4655
+ # @return [VeriSec::Types::BinRecord, nil] Who issued a card. Fields that are unknown are absent.
4656
+ class CardCheck < VeriSecObject
4657
+ FIELDS = {
4658
+ "object" => nil,
4659
+ "first6" => nil,
4660
+ "last4" => nil,
4661
+ "length" => nil,
4662
+ "network" => nil,
4663
+ "luhn_valid" => nil,
4664
+ "length_valid" => nil,
4665
+ "scheme_valid" => nil,
4666
+ "expired" => nil,
4667
+ "expires_in_days" => nil,
4668
+ "expiry_status" => nil,
4669
+ "bin" => "BinRecord"
4670
+ }.freeze
4671
+ end
4672
+
4673
+ # CardFingerprint.
4674
+ #
4675
+ # Returned by {VeriSec::Resources::Cards#fingerprint}.
4676
+ #
4677
+ # @!attribute [r] object
4678
+ # @return [String] Always `card_fingerprint`.
4679
+ # @!attribute [r] fingerprint
4680
+ # @return [String] `cf_` + 24 hex. The same card always gives the same value; it cannot be turned back
4681
+ # into the number.
4682
+ # @!attribute [r] first6
4683
+ # @return [String]
4684
+ # @!attribute [r] last4
4685
+ # @return [String]
4686
+ class CardFingerprint < VeriSecObject
4687
+ FIELDS = {
4688
+ "object" => nil,
4689
+ "fingerprint" => nil,
4690
+ "first6" => nil,
4691
+ "last4" => nil
4692
+ }.freeze
4693
+ end
4694
+ end
4695
+ end