prelude-sdk 0.1.0.pre.alpha.3 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +45 -0
  3. data/README.md +29 -1
  4. data/lib/prelude_sdk/client.rb +4 -0
  5. data/lib/prelude_sdk/errors.rb +25 -11
  6. data/lib/prelude_sdk/file_part.rb +10 -7
  7. data/lib/prelude_sdk/internal/transport/base_client.rb +18 -8
  8. data/lib/prelude_sdk/internal/transport/pooled_net_requester.rb +40 -33
  9. data/lib/prelude_sdk/internal/type/base_page.rb +1 -1
  10. data/lib/prelude_sdk/internal/type/file_input.rb +7 -4
  11. data/lib/prelude_sdk/internal/util.rb +8 -7
  12. data/lib/prelude_sdk/models/transactional_send_params.rb +37 -1
  13. data/lib/prelude_sdk/models/verification_create_params.rb +45 -5
  14. data/lib/prelude_sdk/models/verification_create_response.rb +26 -0
  15. data/lib/prelude_sdk/models/verification_management_delete_phone_number_params.rb +32 -0
  16. data/lib/prelude_sdk/models/verification_management_delete_phone_number_response.rb +17 -0
  17. data/lib/prelude_sdk/models/verification_management_list_phone_numbers_params.rb +24 -0
  18. data/lib/prelude_sdk/models/verification_management_list_phone_numbers_response.rb +37 -0
  19. data/lib/prelude_sdk/models/verification_management_list_sender_ids_params.rb +14 -0
  20. data/lib/prelude_sdk/models/verification_management_list_sender_ids_response.rb +65 -0
  21. data/lib/prelude_sdk/models/verification_management_set_phone_number_params.rb +32 -0
  22. data/lib/prelude_sdk/models/verification_management_set_phone_number_response.rb +17 -0
  23. data/lib/prelude_sdk/models/verification_management_submit_sender_id_params.rb +22 -0
  24. data/lib/prelude_sdk/models/verification_management_submit_sender_id_response.rb +59 -0
  25. data/lib/prelude_sdk/models/watch_predict_params.rb +11 -1
  26. data/lib/prelude_sdk/models/watch_send_feedbacks_params.rb +11 -1
  27. data/lib/prelude_sdk/models.rb +14 -0
  28. data/lib/prelude_sdk/resources/transactional.rb +7 -2
  29. data/lib/prelude_sdk/resources/verification_management.rb +140 -0
  30. data/lib/prelude_sdk/version.rb +1 -1
  31. data/lib/prelude_sdk.rb +12 -0
  32. data/manifest.yaml +1 -0
  33. data/rbi/prelude_sdk/client.rbi +3 -0
  34. data/rbi/prelude_sdk/errors.rbi +29 -2
  35. data/rbi/prelude_sdk/file_part.rbi +1 -1
  36. data/rbi/prelude_sdk/internal/transport/base_client.rbi +9 -5
  37. data/rbi/prelude_sdk/internal/transport/pooled_net_requester.rbi +6 -2
  38. data/rbi/prelude_sdk/internal/type/base_model.rbi +8 -4
  39. data/rbi/prelude_sdk/internal/type/base_page.rbi +1 -1
  40. data/rbi/prelude_sdk/internal/util.rbi +1 -1
  41. data/rbi/prelude_sdk/models/transactional_send_params.rbi +85 -0
  42. data/rbi/prelude_sdk/models/verification_create_params.rbi +97 -5
  43. data/rbi/prelude_sdk/models/verification_create_response.rbi +39 -0
  44. data/rbi/prelude_sdk/models/verification_management_delete_phone_number_params.rbi +77 -0
  45. data/rbi/prelude_sdk/models/verification_management_delete_phone_number_response.rbi +30 -0
  46. data/rbi/prelude_sdk/models/verification_management_list_phone_numbers_params.rbi +64 -0
  47. data/rbi/prelude_sdk/models/verification_management_list_phone_numbers_response.rbi +87 -0
  48. data/rbi/prelude_sdk/models/verification_management_list_sender_ids_params.rbi +30 -0
  49. data/rbi/prelude_sdk/models/verification_management_list_sender_ids_response.rbi +175 -0
  50. data/rbi/prelude_sdk/models/verification_management_set_phone_number_params.rbi +77 -0
  51. data/rbi/prelude_sdk/models/verification_management_set_phone_number_response.rbi +30 -0
  52. data/rbi/prelude_sdk/models/verification_management_submit_sender_id_params.rbi +43 -0
  53. data/rbi/prelude_sdk/models/verification_management_submit_sender_id_response.rbi +117 -0
  54. data/rbi/prelude_sdk/models/watch_predict_params.rbi +15 -0
  55. data/rbi/prelude_sdk/models/watch_send_feedbacks_params.rbi +15 -0
  56. data/rbi/prelude_sdk/models.rbi +15 -0
  57. data/rbi/prelude_sdk/resources/transactional.rbi +14 -1
  58. data/rbi/prelude_sdk/resources/verification_management.rbi +112 -0
  59. data/sig/prelude_sdk/client.rbs +2 -0
  60. data/sig/prelude_sdk/errors.rbs +7 -0
  61. data/sig/prelude_sdk/file_part.rbs +1 -1
  62. data/sig/prelude_sdk/internal/transport/base_client.rbs +2 -0
  63. data/sig/prelude_sdk/internal/transport/pooled_net_requester.rbs +4 -1
  64. data/sig/prelude_sdk/models/transactional_send_params.rbs +21 -0
  65. data/sig/prelude_sdk/models/verification_create_params.rbs +29 -1
  66. data/sig/prelude_sdk/models/verification_management_delete_phone_number_params.rbs +34 -0
  67. data/sig/prelude_sdk/models/verification_management_delete_phone_number_response.rbs +14 -0
  68. data/sig/prelude_sdk/models/verification_management_list_phone_numbers_params.rbs +26 -0
  69. data/sig/prelude_sdk/models/verification_management_list_phone_numbers_response.rbs +32 -0
  70. data/sig/prelude_sdk/models/verification_management_list_sender_ids_params.rbs +15 -0
  71. data/sig/prelude_sdk/models/verification_management_list_sender_ids_response.rbs +64 -0
  72. data/sig/prelude_sdk/models/verification_management_set_phone_number_params.rbs +34 -0
  73. data/sig/prelude_sdk/models/verification_management_set_phone_number_response.rbs +14 -0
  74. data/sig/prelude_sdk/models/verification_management_submit_sender_id_params.rbs +23 -0
  75. data/sig/prelude_sdk/models/verification_management_submit_sender_id_response.rbs +44 -0
  76. data/sig/prelude_sdk/models/watch_predict_params.rbs +7 -0
  77. data/sig/prelude_sdk/models/watch_send_feedbacks_params.rbs +7 -0
  78. data/sig/prelude_sdk/models.rbs +10 -0
  79. data/sig/prelude_sdk/resources/transactional.rbs +1 -0
  80. data/sig/prelude_sdk/resources/verification_management.rbs +33 -0
  81. metadata +37 -4
@@ -0,0 +1,175 @@
1
+ # typed: strong
2
+
3
+ module PreludeSDK
4
+ module Models
5
+ class VerificationManagementListSenderIDsResponse < PreludeSDK::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ PreludeSDK::Models::VerificationManagementListSenderIDsResponse,
10
+ PreludeSDK::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig do
15
+ returns(
16
+ T.nilable(
17
+ T::Array[
18
+ PreludeSDK::Models::VerificationManagementListSenderIDsResponse::SenderID
19
+ ]
20
+ )
21
+ )
22
+ end
23
+ attr_reader :sender_ids
24
+
25
+ sig do
26
+ params(
27
+ sender_ids:
28
+ T::Array[
29
+ PreludeSDK::Models::VerificationManagementListSenderIDsResponse::SenderID::OrHash
30
+ ]
31
+ ).void
32
+ end
33
+ attr_writer :sender_ids
34
+
35
+ # A list of Sender ID.
36
+ sig do
37
+ params(
38
+ sender_ids:
39
+ T::Array[
40
+ PreludeSDK::Models::VerificationManagementListSenderIDsResponse::SenderID::OrHash
41
+ ]
42
+ ).returns(T.attached_class)
43
+ end
44
+ def self.new(sender_ids: nil)
45
+ end
46
+
47
+ sig do
48
+ override.returns(
49
+ {
50
+ sender_ids:
51
+ T::Array[
52
+ PreludeSDK::Models::VerificationManagementListSenderIDsResponse::SenderID
53
+ ]
54
+ }
55
+ )
56
+ end
57
+ def to_hash
58
+ end
59
+
60
+ class SenderID < PreludeSDK::Internal::Type::BaseModel
61
+ OrHash =
62
+ T.type_alias do
63
+ T.any(
64
+ PreludeSDK::Models::VerificationManagementListSenderIDsResponse::SenderID,
65
+ PreludeSDK::Internal::AnyHash
66
+ )
67
+ end
68
+
69
+ # Value that will be presented as Sender ID
70
+ sig { returns(T.nilable(String)) }
71
+ attr_reader :sender_id
72
+
73
+ sig { params(sender_id: String).void }
74
+ attr_writer :sender_id
75
+
76
+ # It indicates the status of the Sender ID. Possible values are:
77
+ #
78
+ # - `approved` - The Sender ID is approved.
79
+ # - `pending` - The Sender ID is pending.
80
+ # - `rejected` - The Sender ID is rejected.
81
+ sig do
82
+ returns(
83
+ T.nilable(
84
+ PreludeSDK::Models::VerificationManagementListSenderIDsResponse::SenderID::Status::TaggedSymbol
85
+ )
86
+ )
87
+ end
88
+ attr_reader :status
89
+
90
+ sig do
91
+ params(
92
+ status:
93
+ PreludeSDK::Models::VerificationManagementListSenderIDsResponse::SenderID::Status::OrSymbol
94
+ ).void
95
+ end
96
+ attr_writer :status
97
+
98
+ sig do
99
+ params(
100
+ sender_id: String,
101
+ status:
102
+ PreludeSDK::Models::VerificationManagementListSenderIDsResponse::SenderID::Status::OrSymbol
103
+ ).returns(T.attached_class)
104
+ end
105
+ def self.new(
106
+ # Value that will be presented as Sender ID
107
+ sender_id: nil,
108
+ # It indicates the status of the Sender ID. Possible values are:
109
+ #
110
+ # - `approved` - The Sender ID is approved.
111
+ # - `pending` - The Sender ID is pending.
112
+ # - `rejected` - The Sender ID is rejected.
113
+ status: nil
114
+ )
115
+ end
116
+
117
+ sig do
118
+ override.returns(
119
+ {
120
+ sender_id: String,
121
+ status:
122
+ PreludeSDK::Models::VerificationManagementListSenderIDsResponse::SenderID::Status::TaggedSymbol
123
+ }
124
+ )
125
+ end
126
+ def to_hash
127
+ end
128
+
129
+ # It indicates the status of the Sender ID. Possible values are:
130
+ #
131
+ # - `approved` - The Sender ID is approved.
132
+ # - `pending` - The Sender ID is pending.
133
+ # - `rejected` - The Sender ID is rejected.
134
+ module Status
135
+ extend PreludeSDK::Internal::Type::Enum
136
+
137
+ TaggedSymbol =
138
+ T.type_alias do
139
+ T.all(
140
+ Symbol,
141
+ PreludeSDK::Models::VerificationManagementListSenderIDsResponse::SenderID::Status
142
+ )
143
+ end
144
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
145
+
146
+ APPROVED =
147
+ T.let(
148
+ :approved,
149
+ PreludeSDK::Models::VerificationManagementListSenderIDsResponse::SenderID::Status::TaggedSymbol
150
+ )
151
+ PENDING =
152
+ T.let(
153
+ :pending,
154
+ PreludeSDK::Models::VerificationManagementListSenderIDsResponse::SenderID::Status::TaggedSymbol
155
+ )
156
+ REJECTED =
157
+ T.let(
158
+ :rejected,
159
+ PreludeSDK::Models::VerificationManagementListSenderIDsResponse::SenderID::Status::TaggedSymbol
160
+ )
161
+
162
+ sig do
163
+ override.returns(
164
+ T::Array[
165
+ PreludeSDK::Models::VerificationManagementListSenderIDsResponse::SenderID::Status::TaggedSymbol
166
+ ]
167
+ )
168
+ end
169
+ def self.values
170
+ end
171
+ end
172
+ end
173
+ end
174
+ end
175
+ end
@@ -0,0 +1,77 @@
1
+ # typed: strong
2
+
3
+ module PreludeSDK
4
+ module Models
5
+ class VerificationManagementSetPhoneNumberParams < PreludeSDK::Internal::Type::BaseModel
6
+ extend PreludeSDK::Internal::Type::RequestParameters::Converter
7
+ include PreludeSDK::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ PreludeSDK::VerificationManagementSetPhoneNumberParams,
13
+ PreludeSDK::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # An E.164 formatted phone number to add to the list.
18
+ sig { returns(String) }
19
+ attr_accessor :phone_number
20
+
21
+ sig do
22
+ params(
23
+ phone_number: String,
24
+ request_options: PreludeSDK::RequestOptions::OrHash
25
+ ).returns(T.attached_class)
26
+ end
27
+ def self.new(
28
+ # An E.164 formatted phone number to add to the list.
29
+ phone_number:,
30
+ request_options: {}
31
+ )
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ { phone_number: String, request_options: PreludeSDK::RequestOptions }
37
+ )
38
+ end
39
+ def to_hash
40
+ end
41
+
42
+ module Action
43
+ extend PreludeSDK::Internal::Type::Enum
44
+
45
+ TaggedSymbol =
46
+ T.type_alias do
47
+ T.all(
48
+ Symbol,
49
+ PreludeSDK::VerificationManagementSetPhoneNumberParams::Action
50
+ )
51
+ end
52
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
53
+
54
+ ALLOW =
55
+ T.let(
56
+ :allow,
57
+ PreludeSDK::VerificationManagementSetPhoneNumberParams::Action::TaggedSymbol
58
+ )
59
+ BLOCK =
60
+ T.let(
61
+ :block,
62
+ PreludeSDK::VerificationManagementSetPhoneNumberParams::Action::TaggedSymbol
63
+ )
64
+
65
+ sig do
66
+ override.returns(
67
+ T::Array[
68
+ PreludeSDK::VerificationManagementSetPhoneNumberParams::Action::TaggedSymbol
69
+ ]
70
+ )
71
+ end
72
+ def self.values
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,30 @@
1
+ # typed: strong
2
+
3
+ module PreludeSDK
4
+ module Models
5
+ class VerificationManagementSetPhoneNumberResponse < PreludeSDK::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ PreludeSDK::Models::VerificationManagementSetPhoneNumberResponse,
10
+ PreludeSDK::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The E.164 formatted phone number that was added to the list.
15
+ sig { returns(String) }
16
+ attr_accessor :phone_number
17
+
18
+ sig { params(phone_number: String).returns(T.attached_class) }
19
+ def self.new(
20
+ # The E.164 formatted phone number that was added to the list.
21
+ phone_number:
22
+ )
23
+ end
24
+
25
+ sig { override.returns({ phone_number: String }) }
26
+ def to_hash
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,43 @@
1
+ # typed: strong
2
+
3
+ module PreludeSDK
4
+ module Models
5
+ class VerificationManagementSubmitSenderIDParams < PreludeSDK::Internal::Type::BaseModel
6
+ extend PreludeSDK::Internal::Type::RequestParameters::Converter
7
+ include PreludeSDK::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ PreludeSDK::VerificationManagementSubmitSenderIDParams,
13
+ PreludeSDK::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The sender ID to add.
18
+ sig { returns(String) }
19
+ attr_accessor :sender_id
20
+
21
+ sig do
22
+ params(
23
+ sender_id: String,
24
+ request_options: PreludeSDK::RequestOptions::OrHash
25
+ ).returns(T.attached_class)
26
+ end
27
+ def self.new(
28
+ # The sender ID to add.
29
+ sender_id:,
30
+ request_options: {}
31
+ )
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ { sender_id: String, request_options: PreludeSDK::RequestOptions }
37
+ )
38
+ end
39
+ def to_hash
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,117 @@
1
+ # typed: strong
2
+
3
+ module PreludeSDK
4
+ module Models
5
+ class VerificationManagementSubmitSenderIDResponse < PreludeSDK::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ PreludeSDK::Models::VerificationManagementSubmitSenderIDResponse,
10
+ PreludeSDK::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The sender ID that was added.
15
+ sig { returns(String) }
16
+ attr_accessor :sender_id
17
+
18
+ # It indicates the status of the sender ID. Possible values are:
19
+ #
20
+ # - `approved` - The sender ID is approved.
21
+ # - `pending` - The sender ID is pending.
22
+ # - `rejected` - The sender ID is rejected.
23
+ sig do
24
+ returns(
25
+ PreludeSDK::Models::VerificationManagementSubmitSenderIDResponse::Status::TaggedSymbol
26
+ )
27
+ end
28
+ attr_accessor :status
29
+
30
+ # The reason why the sender ID was rejected.
31
+ sig { returns(T.nilable(String)) }
32
+ attr_reader :reason
33
+
34
+ sig { params(reason: String).void }
35
+ attr_writer :reason
36
+
37
+ sig do
38
+ params(
39
+ sender_id: String,
40
+ status:
41
+ PreludeSDK::Models::VerificationManagementSubmitSenderIDResponse::Status::OrSymbol,
42
+ reason: String
43
+ ).returns(T.attached_class)
44
+ end
45
+ def self.new(
46
+ # The sender ID that was added.
47
+ sender_id:,
48
+ # It indicates the status of the sender ID. Possible values are:
49
+ #
50
+ # - `approved` - The sender ID is approved.
51
+ # - `pending` - The sender ID is pending.
52
+ # - `rejected` - The sender ID is rejected.
53
+ status:,
54
+ # The reason why the sender ID was rejected.
55
+ reason: nil
56
+ )
57
+ end
58
+
59
+ sig do
60
+ override.returns(
61
+ {
62
+ sender_id: String,
63
+ status:
64
+ PreludeSDK::Models::VerificationManagementSubmitSenderIDResponse::Status::TaggedSymbol,
65
+ reason: String
66
+ }
67
+ )
68
+ end
69
+ def to_hash
70
+ end
71
+
72
+ # It indicates the status of the sender ID. Possible values are:
73
+ #
74
+ # - `approved` - The sender ID is approved.
75
+ # - `pending` - The sender ID is pending.
76
+ # - `rejected` - The sender ID is rejected.
77
+ module Status
78
+ extend PreludeSDK::Internal::Type::Enum
79
+
80
+ TaggedSymbol =
81
+ T.type_alias do
82
+ T.all(
83
+ Symbol,
84
+ PreludeSDK::Models::VerificationManagementSubmitSenderIDResponse::Status
85
+ )
86
+ end
87
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
88
+
89
+ APPROVED =
90
+ T.let(
91
+ :approved,
92
+ PreludeSDK::Models::VerificationManagementSubmitSenderIDResponse::Status::TaggedSymbol
93
+ )
94
+ PENDING =
95
+ T.let(
96
+ :pending,
97
+ PreludeSDK::Models::VerificationManagementSubmitSenderIDResponse::Status::TaggedSymbol
98
+ )
99
+ REJECTED =
100
+ T.let(
101
+ :rejected,
102
+ PreludeSDK::Models::VerificationManagementSubmitSenderIDResponse::Status::TaggedSymbol
103
+ )
104
+
105
+ sig do
106
+ override.returns(
107
+ T::Array[
108
+ PreludeSDK::Models::VerificationManagementSubmitSenderIDResponse::Status::TaggedSymbol
109
+ ]
110
+ )
111
+ end
112
+ def self.values
113
+ end
114
+ end
115
+ end
116
+ end
117
+ end
@@ -255,6 +255,15 @@ module PreludeSDK
255
255
  sig { params(is_trusted_user: T::Boolean).void }
256
256
  attr_writer :is_trusted_user
257
257
 
258
+ # The JA4 fingerprint observed for the connection. Prelude will infer it
259
+ # automatically when requests go through our client SDK (which uses Prelude's
260
+ # edge), but you can also provide it explicitly if you terminate TLS yourself.
261
+ sig { returns(T.nilable(String)) }
262
+ attr_reader :ja4_fingerprint
263
+
264
+ sig { params(ja4_fingerprint: String).void }
265
+ attr_writer :ja4_fingerprint
266
+
258
267
  # The version of the user's device operating system.
259
268
  sig { returns(T.nilable(String)) }
260
269
  attr_reader :os_version
@@ -282,6 +291,7 @@ module PreludeSDK
282
291
  PreludeSDK::WatchPredictParams::Signals::DevicePlatform::OrSymbol,
283
292
  ip: String,
284
293
  is_trusted_user: T::Boolean,
294
+ ja4_fingerprint: String,
285
295
  os_version: String,
286
296
  user_agent: String
287
297
  ).returns(T.attached_class)
@@ -302,6 +312,10 @@ module PreludeSDK
302
312
  # genuine. Contact us to discuss your use case. For more details, refer to
303
313
  # [Signals](/verify/v2/documentation/prevent-fraud#signals).
304
314
  is_trusted_user: nil,
315
+ # The JA4 fingerprint observed for the connection. Prelude will infer it
316
+ # automatically when requests go through our client SDK (which uses Prelude's
317
+ # edge), but you can also provide it explicitly if you terminate TLS yourself.
318
+ ja4_fingerprint: nil,
305
319
  # The version of the user's device operating system.
306
320
  os_version: nil,
307
321
  # The user agent of the user's device. If the individual fields (os_version,
@@ -321,6 +335,7 @@ module PreludeSDK
321
335
  PreludeSDK::WatchPredictParams::Signals::DevicePlatform::OrSymbol,
322
336
  ip: String,
323
337
  is_trusted_user: T::Boolean,
338
+ ja4_fingerprint: String,
324
339
  os_version: String,
325
340
  user_agent: String
326
341
  }
@@ -372,6 +372,15 @@ module PreludeSDK
372
372
  sig { params(is_trusted_user: T::Boolean).void }
373
373
  attr_writer :is_trusted_user
374
374
 
375
+ # The JA4 fingerprint observed for the connection. Prelude will infer it
376
+ # automatically when requests go through our client SDK (which uses Prelude's
377
+ # edge), but you can also provide it explicitly if you terminate TLS yourself.
378
+ sig { returns(T.nilable(String)) }
379
+ attr_reader :ja4_fingerprint
380
+
381
+ sig { params(ja4_fingerprint: String).void }
382
+ attr_writer :ja4_fingerprint
383
+
375
384
  # The version of the user's device operating system.
376
385
  sig { returns(T.nilable(String)) }
377
386
  attr_reader :os_version
@@ -399,6 +408,7 @@ module PreludeSDK
399
408
  PreludeSDK::WatchSendFeedbacksParams::Feedback::Signals::DevicePlatform::OrSymbol,
400
409
  ip: String,
401
410
  is_trusted_user: T::Boolean,
411
+ ja4_fingerprint: String,
402
412
  os_version: String,
403
413
  user_agent: String
404
414
  ).returns(T.attached_class)
@@ -419,6 +429,10 @@ module PreludeSDK
419
429
  # genuine. Contact us to discuss your use case. For more details, refer to
420
430
  # [Signals](/verify/v2/documentation/prevent-fraud#signals).
421
431
  is_trusted_user: nil,
432
+ # The JA4 fingerprint observed for the connection. Prelude will infer it
433
+ # automatically when requests go through our client SDK (which uses Prelude's
434
+ # edge), but you can also provide it explicitly if you terminate TLS yourself.
435
+ ja4_fingerprint: nil,
422
436
  # The version of the user's device operating system.
423
437
  os_version: nil,
424
438
  # The user agent of the user's device. If the individual fields (os_version,
@@ -438,6 +452,7 @@ module PreludeSDK
438
452
  PreludeSDK::WatchSendFeedbacksParams::Feedback::Signals::DevicePlatform::OrSymbol,
439
453
  ip: String,
440
454
  is_trusted_user: T::Boolean,
455
+ ja4_fingerprint: String,
441
456
  os_version: String,
442
457
  user_agent: String
443
458
  }
@@ -9,6 +9,21 @@ module PreludeSDK
9
9
 
10
10
  VerificationCreateParams = PreludeSDK::Models::VerificationCreateParams
11
11
 
12
+ VerificationManagementDeletePhoneNumberParams =
13
+ PreludeSDK::Models::VerificationManagementDeletePhoneNumberParams
14
+
15
+ VerificationManagementListPhoneNumbersParams =
16
+ PreludeSDK::Models::VerificationManagementListPhoneNumbersParams
17
+
18
+ VerificationManagementListSenderIDsParams =
19
+ PreludeSDK::Models::VerificationManagementListSenderIDsParams
20
+
21
+ VerificationManagementSetPhoneNumberParams =
22
+ PreludeSDK::Models::VerificationManagementSetPhoneNumberParams
23
+
24
+ VerificationManagementSubmitSenderIDParams =
25
+ PreludeSDK::Models::VerificationManagementSubmitSenderIDParams
26
+
12
27
  WatchPredictParams = PreludeSDK::Models::WatchPredictParams
13
28
 
14
29
  WatchSendEventsParams = PreludeSDK::Models::WatchSendEventsParams
@@ -3,7 +3,8 @@
3
3
  module PreludeSDK
4
4
  module Resources
5
5
  class Transactional
6
- # Send a transactional message to your user.
6
+ # Legacy route maintained for backward compatibility. Migrate to `/v2/notify`
7
+ # instead.
7
8
  sig do
8
9
  params(
9
10
  template_id: String,
@@ -13,6 +14,8 @@ module PreludeSDK
13
14
  expires_at: String,
14
15
  from: String,
15
16
  locale: String,
17
+ preferred_channel:
18
+ PreludeSDK::TransactionalSendParams::PreferredChannel::OrSymbol,
16
19
  variables: T::Hash[Symbol, String],
17
20
  request_options: PreludeSDK::RequestOptions::OrHash
18
21
  ).returns(PreludeSDK::Models::TransactionalSendResponse)
@@ -37,6 +40,16 @@ module PreludeSDK
37
40
  # code of the phone number. If the language specified doesn't exist, the default
38
41
  # set on the template will be used.
39
42
  locale: nil,
43
+ # The preferred delivery channel for the message. When specified, the system will
44
+ # prioritize sending via the requested channel if the template is configured for
45
+ # it.
46
+ #
47
+ # If not specified and the template is configured for WhatsApp, the message will
48
+ # be sent via WhatsApp first, with automatic fallback to SMS if WhatsApp delivery
49
+ # is unavailable.
50
+ #
51
+ # Supported channels: `sms`, `rcs`, `whatsapp`.
52
+ preferred_channel: nil,
40
53
  # The variables to be replaced in the template.
41
54
  variables: nil,
42
55
  request_options: {}
@@ -0,0 +1,112 @@
1
+ # typed: strong
2
+
3
+ module PreludeSDK
4
+ module Resources
5
+ class VerificationManagement
6
+ # Remove a phone number from the allow or block list.
7
+ #
8
+ # This operation is idempotent - re-deleting the same phone number will not result
9
+ # in errors. If the phone number does not exist in the specified list, the
10
+ # operation will succeed without making any changes.
11
+ #
12
+ # In order to get access to this endpoint, contact our support team.
13
+ sig do
14
+ params(
15
+ action:
16
+ PreludeSDK::VerificationManagementDeletePhoneNumberParams::Action::OrSymbol,
17
+ phone_number: String,
18
+ request_options: PreludeSDK::RequestOptions::OrHash
19
+ ).returns(
20
+ PreludeSDK::Models::VerificationManagementDeletePhoneNumberResponse
21
+ )
22
+ end
23
+ def delete_phone_number(
24
+ # The action type - either "allow" or "block"
25
+ action,
26
+ # An E.164 formatted phone number to remove from the list.
27
+ phone_number:,
28
+ request_options: {}
29
+ )
30
+ end
31
+
32
+ # Retrieve the list of phone numbers in the allow or block list.
33
+ #
34
+ # In order to get access to this endpoint, contact our support team.
35
+ sig do
36
+ params(
37
+ action:
38
+ PreludeSDK::VerificationManagementListPhoneNumbersParams::Action::OrSymbol,
39
+ request_options: PreludeSDK::RequestOptions::OrHash
40
+ ).returns(
41
+ PreludeSDK::Models::VerificationManagementListPhoneNumbersResponse
42
+ )
43
+ end
44
+ def list_phone_numbers(
45
+ # The action type - either "allow" or "block"
46
+ action,
47
+ request_options: {}
48
+ )
49
+ end
50
+
51
+ # Retrieve sender IDs list.
52
+ #
53
+ # In order to get access to this endpoint, contact our support team.
54
+ sig do
55
+ params(request_options: PreludeSDK::RequestOptions::OrHash).returns(
56
+ PreludeSDK::Models::VerificationManagementListSenderIDsResponse
57
+ )
58
+ end
59
+ def list_sender_ids(request_options: {})
60
+ end
61
+
62
+ # Add a phone number to the allow or block list.
63
+ #
64
+ # This operation is idempotent - re-adding the same phone number will not result
65
+ # in duplicate entries or errors. If the phone number already exists in the
66
+ # specified list, the operation will succeed without making any changes.
67
+ #
68
+ # In order to get access to this endpoint, contact our support team.
69
+ sig do
70
+ params(
71
+ action:
72
+ PreludeSDK::VerificationManagementSetPhoneNumberParams::Action::OrSymbol,
73
+ phone_number: String,
74
+ request_options: PreludeSDK::RequestOptions::OrHash
75
+ ).returns(
76
+ PreludeSDK::Models::VerificationManagementSetPhoneNumberResponse
77
+ )
78
+ end
79
+ def set_phone_number(
80
+ # The action type - either "allow" or "block"
81
+ action,
82
+ # An E.164 formatted phone number to add to the list.
83
+ phone_number:,
84
+ request_options: {}
85
+ )
86
+ end
87
+
88
+ # This endpoint allows you to submit a new sender ID for verification purposes.
89
+ #
90
+ # In order to get access to this endpoint, contact our support team.
91
+ sig do
92
+ params(
93
+ sender_id: String,
94
+ request_options: PreludeSDK::RequestOptions::OrHash
95
+ ).returns(
96
+ PreludeSDK::Models::VerificationManagementSubmitSenderIDResponse
97
+ )
98
+ end
99
+ def submit_sender_id(
100
+ # The sender ID to add.
101
+ sender_id:,
102
+ request_options: {}
103
+ )
104
+ end
105
+
106
+ # @api private
107
+ sig { params(client: PreludeSDK::Client).returns(T.attached_class) }
108
+ def self.new(client:)
109
+ end
110
+ end
111
+ end
112
+ end