prelude-sdk 0.7.0 → 0.9.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 (124) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +3 -5
  4. data/lib/prelude_sdk/client.rb +4 -0
  5. data/lib/prelude_sdk/internal/type/base_model.rb +5 -5
  6. data/lib/prelude_sdk/models/intel/kyc_match_params.rb +96 -0
  7. data/lib/prelude_sdk/models/intel/kyc_match_response.rb +305 -0
  8. data/lib/prelude_sdk/models/notify_reply_params.rb +60 -0
  9. data/lib/prelude_sdk/models/notify_reply_response.rb +65 -0
  10. data/lib/prelude_sdk/models/signals.rb +125 -0
  11. data/lib/prelude_sdk/models/target.rb +39 -0
  12. data/lib/prelude_sdk/models/verification/phone/history_list_params.rb +177 -0
  13. data/lib/prelude_sdk/models/verification/phone/history_list_response.rb +286 -0
  14. data/lib/prelude_sdk/models/verification/phone/history_retrieve_params.rb +24 -0
  15. data/lib/prelude_sdk/models/verification/phone/history_retrieve_response.rb +910 -0
  16. data/lib/prelude_sdk/models/verification/phone/phone_verification_carrier.rb +29 -0
  17. data/lib/prelude_sdk/models/verification/phone/phone_verification_money.rb +35 -0
  18. data/lib/prelude_sdk/models/verification/phone/phone_verification_psd2_transaction.rb +29 -0
  19. data/lib/prelude_sdk/models/verification_check_params.rb +3 -38
  20. data/lib/prelude_sdk/models/verification_create_params.rb +6 -161
  21. data/lib/prelude_sdk/models/verification_create_response.rb +59 -33
  22. data/lib/prelude_sdk/models/verification_management/sandbox_add_phone_number_params.rb +37 -0
  23. data/lib/prelude_sdk/models/verification_management/sandbox_add_phone_number_response.rb +27 -0
  24. data/lib/prelude_sdk/models/verification_management/sandbox_delete_phone_number_params.rb +22 -0
  25. data/lib/prelude_sdk/models/verification_management/sandbox_delete_phone_number_response.rb +19 -0
  26. data/lib/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_params.rb +16 -0
  27. data/lib/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_response.rb +47 -0
  28. data/lib/prelude_sdk/models/watch_evaluate_params.rb +68 -0
  29. data/lib/prelude_sdk/models/watch_evaluate_response.rb +318 -0
  30. data/lib/prelude_sdk/models/watch_predict_params.rb +6 -160
  31. data/lib/prelude_sdk/models/watch_predict_response.rb +53 -30
  32. data/lib/prelude_sdk/models/watch_send_events_params.rb +3 -38
  33. data/lib/prelude_sdk/models/watch_send_feedbacks_params.rb +3 -38
  34. data/lib/prelude_sdk/models.rb +14 -0
  35. data/lib/prelude_sdk/resources/intel/kyc.rb +62 -0
  36. data/lib/prelude_sdk/resources/intel.rb +20 -0
  37. data/lib/prelude_sdk/resources/notify.rb +35 -0
  38. data/lib/prelude_sdk/resources/verification/phone/history.rb +104 -0
  39. data/lib/prelude_sdk/resources/verification/phone.rb +21 -0
  40. data/lib/prelude_sdk/resources/verification.rb +7 -3
  41. data/lib/prelude_sdk/resources/verification_management/sandbox.rb +99 -0
  42. data/lib/prelude_sdk/resources/verification_management.rb +5 -0
  43. data/lib/prelude_sdk/resources/watch.rb +45 -2
  44. data/lib/prelude_sdk/version.rb +1 -1
  45. data/lib/prelude_sdk.rb +26 -0
  46. data/rbi/prelude_sdk/client.rbi +3 -0
  47. data/rbi/prelude_sdk/models/intel/kyc_match_params.rbi +147 -0
  48. data/rbi/prelude_sdk/models/intel/kyc_match_response.rbi +736 -0
  49. data/rbi/prelude_sdk/models/notify_reply_params.rbi +87 -0
  50. data/rbi/prelude_sdk/models/notify_reply_response.rbi +94 -0
  51. data/rbi/prelude_sdk/models/signals.rbi +200 -0
  52. data/rbi/prelude_sdk/models/target.rbi +61 -0
  53. data/rbi/prelude_sdk/models/verification/phone/history_list_params.rbi +436 -0
  54. data/rbi/prelude_sdk/models/verification/phone/history_list_response.rbi +661 -0
  55. data/rbi/prelude_sdk/models/verification/phone/history_retrieve_params.rbi +42 -0
  56. data/rbi/prelude_sdk/models/verification/phone/history_retrieve_response.rbi +2290 -0
  57. data/rbi/prelude_sdk/models/verification/phone/phone_verification_carrier.rbi +39 -0
  58. data/rbi/prelude_sdk/models/verification/phone/phone_verification_money.rbi +46 -0
  59. data/rbi/prelude_sdk/models/verification/phone/phone_verification_psd2_transaction.rbi +68 -0
  60. data/rbi/prelude_sdk/models/verification_check_params.rbi +4 -85
  61. data/rbi/prelude_sdk/models/verification_create_params.rbi +8 -328
  62. data/rbi/prelude_sdk/models/verification_create_response.rbi +143 -65
  63. data/rbi/prelude_sdk/models/verification_management/sandbox_add_phone_number_params.rbi +58 -0
  64. data/rbi/prelude_sdk/models/verification_management/sandbox_add_phone_number_response.rbi +42 -0
  65. data/rbi/prelude_sdk/models/verification_management/sandbox_delete_phone_number_params.rbi +43 -0
  66. data/rbi/prelude_sdk/models/verification_management/sandbox_delete_phone_number_response.rbi +32 -0
  67. data/rbi/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_params.rbi +34 -0
  68. data/rbi/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_response.rbi +101 -0
  69. data/rbi/prelude_sdk/models/watch_evaluate_params.rbi +109 -0
  70. data/rbi/prelude_sdk/models/watch_evaluate_response.rbi +596 -0
  71. data/rbi/prelude_sdk/models/watch_predict_params.rbi +8 -320
  72. data/rbi/prelude_sdk/models/watch_predict_response.rbi +135 -62
  73. data/rbi/prelude_sdk/models/watch_send_events_params.rbi +4 -93
  74. data/rbi/prelude_sdk/models/watch_send_feedbacks_params.rbi +4 -95
  75. data/rbi/prelude_sdk/models.rbi +14 -0
  76. data/rbi/prelude_sdk/resources/intel/kyc.rbi +61 -0
  77. data/rbi/prelude_sdk/resources/intel.rbi +17 -0
  78. data/rbi/prelude_sdk/resources/notify.rbi +31 -0
  79. data/rbi/prelude_sdk/resources/verification/phone/history.rbi +112 -0
  80. data/rbi/prelude_sdk/resources/verification/phone.rbi +18 -0
  81. data/rbi/prelude_sdk/resources/verification.rbi +6 -3
  82. data/rbi/prelude_sdk/resources/verification_management/sandbox.rbi +76 -0
  83. data/rbi/prelude_sdk/resources/verification_management.rbi +4 -0
  84. data/rbi/prelude_sdk/resources/watch.rbi +49 -2
  85. data/sig/prelude_sdk/client.rbs +2 -0
  86. data/sig/prelude_sdk/models/intel/kyc_match_params.rbs +91 -0
  87. data/sig/prelude_sdk/models/intel/kyc_match_response.rbs +276 -0
  88. data/sig/prelude_sdk/models/notify_reply_params.rbs +50 -0
  89. data/sig/prelude_sdk/models/notify_reply_response.rbs +54 -0
  90. data/sig/prelude_sdk/models/signals.rbs +101 -0
  91. data/sig/prelude_sdk/models/target.rbs +29 -0
  92. data/sig/prelude_sdk/models/verification/phone/history_list_params.rbs +187 -0
  93. data/sig/prelude_sdk/models/verification/phone/history_list_response.rbs +241 -0
  94. data/sig/prelude_sdk/models/verification/phone/history_retrieve_params.rbs +27 -0
  95. data/sig/prelude_sdk/models/verification/phone/history_retrieve_response.rbs +887 -0
  96. data/sig/prelude_sdk/models/verification/phone/phone_verification_carrier.rbs +23 -0
  97. data/sig/prelude_sdk/models/verification/phone/phone_verification_money.rbs +21 -0
  98. data/sig/prelude_sdk/models/verification/phone/phone_verification_psd2_transaction.rbs +37 -0
  99. data/sig/prelude_sdk/models/verification_check_params.rbs +4 -37
  100. data/sig/prelude_sdk/models/verification_create_params.rbs +9 -142
  101. data/sig/prelude_sdk/models/verification_create_response.rbs +32 -14
  102. data/sig/prelude_sdk/models/verification_management/sandbox_add_phone_number_params.rbs +30 -0
  103. data/sig/prelude_sdk/models/verification_management/sandbox_add_phone_number_response.rbs +18 -0
  104. data/sig/prelude_sdk/models/verification_management/sandbox_delete_phone_number_params.rbs +26 -0
  105. data/sig/prelude_sdk/models/verification_management/sandbox_delete_phone_number_response.rbs +15 -0
  106. data/sig/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_params.rbs +17 -0
  107. data/sig/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_response.rbs +45 -0
  108. data/sig/prelude_sdk/models/watch_evaluate_params.rbs +52 -0
  109. data/sig/prelude_sdk/models/watch_evaluate_response.rbs +202 -0
  110. data/sig/prelude_sdk/models/watch_predict_params.rbs +9 -142
  111. data/sig/prelude_sdk/models/watch_predict_response.rbs +32 -14
  112. data/sig/prelude_sdk/models/watch_send_events_params.rbs +4 -37
  113. data/sig/prelude_sdk/models/watch_send_feedbacks_params.rbs +4 -37
  114. data/sig/prelude_sdk/models.rbs +14 -0
  115. data/sig/prelude_sdk/resources/intel/kyc.rbs +23 -0
  116. data/sig/prelude_sdk/resources/intel.rbs +9 -0
  117. data/sig/prelude_sdk/resources/notify.rbs +9 -0
  118. data/sig/prelude_sdk/resources/verification/phone/history.rbs +32 -0
  119. data/sig/prelude_sdk/resources/verification/phone.rbs +11 -0
  120. data/sig/prelude_sdk/resources/verification.rbs +5 -3
  121. data/sig/prelude_sdk/resources/verification_management/sandbox.rbs +24 -0
  122. data/sig/prelude_sdk/resources/verification_management.rbs +2 -0
  123. data/sig/prelude_sdk/resources/watch.rbs +11 -2
  124. metadata +80 -2
@@ -28,29 +28,43 @@ module PreludeSDK
28
28
  # when prediction is "suspicious" and the anti-fraud system detected specific risk
29
29
  # signals.
30
30
  #
31
- # - `account_risk_profile` - The target matches a risk profile derived from the
32
- # outcomes reported on your own account, rather than from a signal shared across
33
- # accounts.
34
- # - `behavioral_pattern` - The phone number past behavior during verification
35
- # flows exhibits suspicious patterns.
36
- # - `device_attribute` - The device exhibits characteristics associated with
37
- # suspicious activity patterns.
38
- # - `fraud_database` - The phone number has been flagged as suspicious in one or
39
- # more of our fraud databases.
40
- # - `location_discrepancy` - The phone number prefix and IP address discrepancy
41
- # indicates potential fraud.
42
- # - `network_fingerprint` - The network connection exhibits characteristics
43
- # associated with suspicious activity patterns.
44
- # - `poor_conversion_history` - The phone number has a history of poorly
45
- # converting to a verified phone number.
46
- # - `prefix_concentration` - The phone number is part of a range known to be
47
- # associated with suspicious activity patterns.
48
- # - `suspected_request_tampering` - The SDK signature is invalid and the request
49
- # is considered to be tampered with.
50
- # - `suspicious_ip_address` - The IP address is deemed to be associated with
51
- # suspicious activity patterns.
52
- # - `temporary_phone_number` - The phone number is known to be a temporary or
53
- # disposable number.
31
+ # - `account_risk_profile` - The request matches a risk profile derived from the
32
+ # outcomes reported on your own account.
33
+ # - `automation_signature` - The request appears to come from an automated client
34
+ # rather than a person.
35
+ # - `carrier_not_permitted` - The destination carrier is one this account does not
36
+ # accept traffic for.
37
+ # - `client_fingerprint_mismatch` - The client does not appear to be the platform
38
+ # it identifies itself as.
39
+ # - `custom_policy` - A rule configured for your account matched this request.
40
+ # - `device_emulator` - The request appears to come from an emulator rather than a
41
+ # physical device.
42
+ # - `device_not_permitted` - The device platform is one your account blocks.
43
+ # - `device_reuse` - One device is driving verifications for an unusual number of
44
+ # phone numbers.
45
+ # - `expired_signals` - The SDK signals were collected too long before the request
46
+ # to still attest to it.
47
+ # - `fraud_database` - The phone number is flagged in one or more of the fraud
48
+ # databases Prelude consults.
49
+ # - `invalid_signature` - The SDK signature did not verify, so the request cannot
50
+ # be attributed to the device it claims to come from.
51
+ # - `ip_concentration` - The request shares its origin with an unusual volume of
52
+ # other verifications.
53
+ # - `ip_reputation` - The originating IP address is not trusted.
54
+ # - `location_mismatch` - The network location and the phone number's country are
55
+ # inconsistent.
56
+ # - `missing_signals` - The verification expected Prelude SDK signals and none
57
+ # arrived.
58
+ # - `number_range_abuse` - The phone number belongs to a range currently
59
+ # associated with abuse.
60
+ # - `poor_conversion_history` - Traffic resembling this request rarely completes a
61
+ # verification.
62
+ # - `proxy_network` - The request did not arrive over the subscriber's own access
63
+ # network.
64
+ # - `repeated_attempts` - The phone number exceeded the allowed number of
65
+ # verification attempts in a short period.
66
+ # - `temporary_phone_number` - The phone number belongs to a disposable or
67
+ # short-lived numbering service.
54
68
  #
55
69
  # @return [Array<Symbol, PreludeSDK::Models::WatchPredictResponse::RiskFactor>, nil]
56
70
  optional :risk_factors,
@@ -85,15 +99,24 @@ module PreludeSDK
85
99
  extend PreludeSDK::Internal::Type::Enum
86
100
 
87
101
  ACCOUNT_RISK_PROFILE = :account_risk_profile
88
- BEHAVIORAL_PATTERN = :behavioral_pattern
89
- DEVICE_ATTRIBUTE = :device_attribute
102
+ AUTOMATION_SIGNATURE = :automation_signature
103
+ CARRIER_NOT_PERMITTED = :carrier_not_permitted
104
+ CLIENT_FINGERPRINT_MISMATCH = :client_fingerprint_mismatch
105
+ CUSTOM_POLICY = :custom_policy
106
+ DEVICE_EMULATOR = :device_emulator
107
+ DEVICE_NOT_PERMITTED = :device_not_permitted
108
+ DEVICE_REUSE = :device_reuse
109
+ EXPIRED_SIGNALS = :expired_signals
90
110
  FRAUD_DATABASE = :fraud_database
91
- LOCATION_DISCREPANCY = :location_discrepancy
92
- NETWORK_FINGERPRINT = :network_fingerprint
111
+ INVALID_SIGNATURE = :invalid_signature
112
+ IP_CONCENTRATION = :ip_concentration
113
+ IP_REPUTATION = :ip_reputation
114
+ LOCATION_MISMATCH = :location_mismatch
115
+ MISSING_SIGNALS = :missing_signals
116
+ NUMBER_RANGE_ABUSE = :number_range_abuse
93
117
  POOR_CONVERSION_HISTORY = :poor_conversion_history
94
- PREFIX_CONCENTRATION = :prefix_concentration
95
- SUSPECTED_REQUEST_TAMPERING = :suspected_request_tampering
96
- SUSPICIOUS_IP_ADDRESS = :suspicious_ip_address
118
+ PROXY_NETWORK = :proxy_network
119
+ REPEATED_ATTEMPTS = :repeated_attempts
97
120
  TEMPORARY_PHONE_NUMBER = :temporary_phone_number
98
121
 
99
122
  # @!method self.values
@@ -46,8 +46,8 @@ module PreludeSDK
46
46
  # @!attribute target
47
47
  # The event target. Only supports phone numbers for now.
48
48
  #
49
- # @return [PreludeSDK::Models::WatchSendEventsParams::Event::Target]
50
- required :target, -> { PreludeSDK::WatchSendEventsParams::Event::Target }
49
+ # @return [PreludeSDK::Models::Target]
50
+ required :target, -> { PreludeSDK::Target }
51
51
 
52
52
  # @!method initialize(confidence:, label:, target:)
53
53
  # Some parameter documentations has been truncated, see
@@ -57,7 +57,7 @@ module PreludeSDK
57
57
  #
58
58
  # @param label [String] A label to describe what the event refers to.
59
59
  #
60
- # @param target [PreludeSDK::Models::WatchSendEventsParams::Event::Target] The event target. Only supports phone numbers for now.
60
+ # @param target [PreludeSDK::Models::Target] The event target. Only supports phone numbers for now.
61
61
 
62
62
  # How much this event tells us to trust the end-user's legitimacy — not how
63
63
  # certain you are that the event occurred. In increasing order of trust:
@@ -82,41 +82,6 @@ module PreludeSDK
82
82
  # @!method self.values
83
83
  # @return [Array<Symbol>]
84
84
  end
85
-
86
- # @see PreludeSDK::Models::WatchSendEventsParams::Event#target
87
- class Target < PreludeSDK::Internal::Type::BaseModel
88
- # @!attribute type
89
- # The type of the target. Either "phone_number" or "email_address".
90
- #
91
- # @return [Symbol, PreludeSDK::Models::WatchSendEventsParams::Event::Target::Type]
92
- required :type, enum: -> { PreludeSDK::WatchSendEventsParams::Event::Target::Type }
93
-
94
- # @!attribute value
95
- # An E.164 formatted phone number or an email address.
96
- #
97
- # @return [String]
98
- required :value, String
99
-
100
- # @!method initialize(type:, value:)
101
- # The event target. Only supports phone numbers for now.
102
- #
103
- # @param type [Symbol, PreludeSDK::Models::WatchSendEventsParams::Event::Target::Type] The type of the target. Either "phone_number" or "email_address".
104
- #
105
- # @param value [String] An E.164 formatted phone number or an email address.
106
-
107
- # The type of the target. Either "phone_number" or "email_address".
108
- #
109
- # @see PreludeSDK::Models::WatchSendEventsParams::Event::Target#type
110
- module Type
111
- extend PreludeSDK::Internal::Type::Enum
112
-
113
- PHONE_NUMBER = :phone_number
114
- EMAIL_ADDRESS = :email_address
115
-
116
- # @!method self.values
117
- # @return [Array<Symbol>]
118
- end
119
- end
120
85
  end
121
86
  end
122
87
  end
@@ -27,8 +27,8 @@ module PreludeSDK
27
27
  # @!attribute target
28
28
  # The feedback target. Only supports phone numbers for now.
29
29
  #
30
- # @return [PreludeSDK::Models::WatchSendFeedbacksParams::Feedback::Target]
31
- required :target, -> { PreludeSDK::WatchSendFeedbacksParams::Feedback::Target }
30
+ # @return [PreludeSDK::Models::Target]
31
+ required :target, -> { PreludeSDK::Target }
32
32
 
33
33
  # @!attribute type
34
34
  # The type of feedback.
@@ -43,47 +43,12 @@ module PreludeSDK
43
43
  optional :metadata, -> { PreludeSDK::WatchSendFeedbacksParams::Feedback::Metadata }
44
44
 
45
45
  # @!method initialize(target:, type:, metadata: nil)
46
- # @param target [PreludeSDK::Models::WatchSendFeedbacksParams::Feedback::Target] The feedback target. Only supports phone numbers for now.
46
+ # @param target [PreludeSDK::Models::Target] The feedback target. Only supports phone numbers for now.
47
47
  #
48
48
  # @param type [Symbol, PreludeSDK::Models::WatchSendFeedbacksParams::Feedback::Type] The type of feedback.
49
49
  #
50
50
  # @param metadata [PreludeSDK::Models::WatchSendFeedbacksParams::Feedback::Metadata] The metadata for this feedback.
51
51
 
52
- # @see PreludeSDK::Models::WatchSendFeedbacksParams::Feedback#target
53
- class Target < PreludeSDK::Internal::Type::BaseModel
54
- # @!attribute type
55
- # The type of the target. Either "phone_number" or "email_address".
56
- #
57
- # @return [Symbol, PreludeSDK::Models::WatchSendFeedbacksParams::Feedback::Target::Type]
58
- required :type, enum: -> { PreludeSDK::WatchSendFeedbacksParams::Feedback::Target::Type }
59
-
60
- # @!attribute value
61
- # An E.164 formatted phone number or an email address.
62
- #
63
- # @return [String]
64
- required :value, String
65
-
66
- # @!method initialize(type:, value:)
67
- # The feedback target. Only supports phone numbers for now.
68
- #
69
- # @param type [Symbol, PreludeSDK::Models::WatchSendFeedbacksParams::Feedback::Target::Type] The type of the target. Either "phone_number" or "email_address".
70
- #
71
- # @param value [String] An E.164 formatted phone number or an email address.
72
-
73
- # The type of the target. Either "phone_number" or "email_address".
74
- #
75
- # @see PreludeSDK::Models::WatchSendFeedbacksParams::Feedback::Target#type
76
- module Type
77
- extend PreludeSDK::Internal::Type::Enum
78
-
79
- PHONE_NUMBER = :phone_number
80
- EMAIL_ADDRESS = :email_address
81
-
82
- # @!method self.values
83
- # @return [Array<Symbol>]
84
- end
85
- end
86
-
87
52
  # The type of feedback.
88
53
  #
89
54
  # @see PreludeSDK::Models::WatchSendFeedbacksParams::Feedback#type
@@ -39,6 +39,8 @@ module PreludeSDK
39
39
  mod.define_sorbet_constant!(const) { T.type_alias { mod.to_sorbet_type } }
40
40
  end
41
41
 
42
+ Intel = PreludeSDK::Models::Intel
43
+
42
44
  LookupLookupParams = PreludeSDK::Models::LookupLookupParams
43
45
 
44
46
  NotifyGetSubscriptionConfigParams = PreludeSDK::Models::NotifyGetSubscriptionConfigParams
@@ -52,16 +54,26 @@ module PreludeSDK
52
54
 
53
55
  NotifyListSubscriptionPhoneNumbersParams = PreludeSDK::Models::NotifyListSubscriptionPhoneNumbersParams
54
56
 
57
+ NotifyReplyParams = PreludeSDK::Models::NotifyReplyParams
58
+
55
59
  NotifySendBatchParams = PreludeSDK::Models::NotifySendBatchParams
56
60
 
57
61
  NotifySendParams = PreludeSDK::Models::NotifySendParams
58
62
 
63
+ Signals = PreludeSDK::Models::Signals
64
+
65
+ Target = PreludeSDK::Models::Target
66
+
59
67
  TransactionalSendParams = PreludeSDK::Models::TransactionalSendParams
60
68
 
69
+ Verification = PreludeSDK::Models::Verification
70
+
61
71
  VerificationCheckParams = PreludeSDK::Models::VerificationCheckParams
62
72
 
63
73
  VerificationCreateParams = PreludeSDK::Models::VerificationCreateParams
64
74
 
75
+ VerificationManagement = PreludeSDK::Models::VerificationManagement
76
+
65
77
  VerificationManagementDeletePhoneNumberParams =
66
78
  PreludeSDK::Models::VerificationManagementDeletePhoneNumberParams
67
79
 
@@ -76,6 +88,8 @@ module PreludeSDK
76
88
  VerificationManagementSubmitSenderIDParams =
77
89
  PreludeSDK::Models::VerificationManagementSubmitSenderIDParams
78
90
 
91
+ WatchEvaluateParams = PreludeSDK::Models::WatchEvaluateParams
92
+
79
93
  WatchPredictParams = PreludeSDK::Models::WatchPredictParams
80
94
 
81
95
  WatchSendEventsParams = PreludeSDK::Models::WatchSendEventsParams
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PreludeSDK
4
+ module Resources
5
+ class Intel
6
+ # Retrieve detailed information about a phone number including carrier data, line
7
+ # type, and portability status.
8
+ class KYC
9
+ # Verify identity attributes against the subscriber record held by the end-user's
10
+ # mobile operator. Send a phone number along with the attributes to check; Prelude
11
+ # resolves the operator internally and returns a per-attribute match. Currently
12
+ # available for France only (Orange, SFR, Bouygues) and must be enabled for your
13
+ # account.
14
+ #
15
+ # @overload match(phone, address: nil, birthdate: nil, country: nil, email: nil, family_name: nil, given_name: nil, locality: nil, postal_code: nil, region: nil, request_options: {})
16
+ #
17
+ # @param phone [String] An E.164 formatted phone number whose subscriber identity to match against.
18
+ #
19
+ # @param address [String] The street address.
20
+ #
21
+ # @param birthdate [Date] The date of birth in ISO 8601 (`YYYY-MM-DD`) format. Compared exactly.
22
+ #
23
+ # @param country [String] The ISO 3166-1 alpha-2 country code. Compared exactly.
24
+ #
25
+ # @param email [String] The email address.
26
+ #
27
+ # @param family_name [String] The end-user's family (last) name.
28
+ #
29
+ # @param given_name [String] The end-user's given (first) name.
30
+ #
31
+ # @param locality [String] The locality (city).
32
+ #
33
+ # @param postal_code [String] The postal code. Compared exactly.
34
+ #
35
+ # @param region [String] The region, state, or province.
36
+ #
37
+ # @param request_options [PreludeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
38
+ #
39
+ # @return [PreludeSDK::Models::Intel::KYCMatchResponse]
40
+ #
41
+ # @see PreludeSDK::Models::Intel::KYCMatchParams
42
+ def match(phone, params = {})
43
+ parsed, options = PreludeSDK::Intel::KYCMatchParams.dump_request(params)
44
+ @client.request(
45
+ method: :post,
46
+ path: ["v2/intel/kyc/match/%1$s", phone],
47
+ body: parsed,
48
+ model: PreludeSDK::Models::Intel::KYCMatchResponse,
49
+ options: options
50
+ )
51
+ end
52
+
53
+ # @api private
54
+ #
55
+ # @param client [PreludeSDK::Client]
56
+ def initialize(client:)
57
+ @client = client
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PreludeSDK
4
+ module Resources
5
+ class Intel
6
+ # Retrieve detailed information about a phone number including carrier data, line
7
+ # type, and portability status.
8
+ # @return [PreludeSDK::Resources::Intel::KYC]
9
+ attr_reader :kyc
10
+
11
+ # @api private
12
+ #
13
+ # @param client [PreludeSDK::Client]
14
+ def initialize(client:)
15
+ @client = client
16
+ @kyc = PreludeSDK::Resources::Intel::KYC.new(client: client)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -163,6 +163,41 @@ module PreludeSDK
163
163
  )
164
164
  end
165
165
 
166
+ # Some parameter documentations has been truncated, see
167
+ # {PreludeSDK::Models::NotifyReplyParams} for more details.
168
+ #
169
+ # Send a free-form text reply to an inbound WhatsApp message within the 24-hour
170
+ # conversation window. See
171
+ # [WhatsApp 2-Way Messaging](/notify/v2/documentation/whatsapp) for details.
172
+ #
173
+ # @overload reply(reply_to:, text:, to:, callback_url: nil, correlation_id: nil, request_options: {})
174
+ #
175
+ # @param reply_to [String] The inbound message ID (prefixed with `im_`) to reply to. This ID is provided in
176
+ #
177
+ # @param text [String] The reply message body sent as a free-form WhatsApp text.
178
+ #
179
+ # @param to [String] The recipient's phone number in E.164 format. Must match the phone number that s
180
+ #
181
+ # @param callback_url [String] The URL where webhooks will be sent for delivery events of this reply.
182
+ #
183
+ # @param correlation_id [String] A user-defined identifier to correlate this reply with your internal systems. It
184
+ #
185
+ # @param request_options [PreludeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
186
+ #
187
+ # @return [PreludeSDK::Models::NotifyReplyResponse]
188
+ #
189
+ # @see PreludeSDK::Models::NotifyReplyParams
190
+ def reply(params)
191
+ parsed, options = PreludeSDK::NotifyReplyParams.dump_request(params)
192
+ @client.request(
193
+ method: :post,
194
+ path: "v2/notify/reply",
195
+ body: parsed,
196
+ model: PreludeSDK::Models::NotifyReplyResponse,
197
+ options: options
198
+ )
199
+ end
200
+
166
201
  # Some parameter documentations has been truncated, see
167
202
  # {PreludeSDK::Models::NotifySendParams} for more details.
168
203
  #
@@ -0,0 +1,104 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PreludeSDK
4
+ module Resources
5
+ class Verification
6
+ class Phone
7
+ # Verify phone numbers.
8
+ class History
9
+ # Retrieve everything Prelude recorded for one phone verification: its outcome and
10
+ # the device, network and anti-fraud context it was created in, the chronological
11
+ # timeline of every message attempt and code check, and the anti-fraud signals you
12
+ # forwarded.
13
+ #
14
+ # The identifier is the `id` returned by
15
+ # [Create or retry a verification](/verify/v2/api-reference/create-or-retry-a-verification)
16
+ # or the `verification_id` of the verification webhooks. Both `lifecycle` and
17
+ # `signals` are optional: a verification can resolve with its top-level fields
18
+ # alone.
19
+ #
20
+ # @overload retrieve(id, request_options: {})
21
+ #
22
+ # @param id [String] The verification identifier.
23
+ #
24
+ # @param request_options [PreludeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
25
+ #
26
+ # @return [PreludeSDK::Models::Verification::Phone::HistoryRetrieveResponse]
27
+ #
28
+ # @see PreludeSDK::Models::Verification::Phone::HistoryRetrieveParams
29
+ def retrieve(id, params = {})
30
+ @client.request(
31
+ method: :get,
32
+ path: ["v2/verification/phone/history/%1$s", id],
33
+ model: PreludeSDK::Models::Verification::Phone::HistoryRetrieveResponse,
34
+ options: params[:request_options]
35
+ )
36
+ end
37
+
38
+ # Some parameter documentations has been truncated, see
39
+ # {PreludeSDK::Models::Verification::Phone::HistoryListParams} for more details.
40
+ #
41
+ # List your phone verifications, most recent first, one entry per verification
42
+ # with its outcome, channels, attempts and cost. Every filter is optional and they
43
+ # combine with AND.
44
+ #
45
+ # Use it to find every verification a phone number went through from your support
46
+ # tooling, then
47
+ # [Get a phone verification](/verify/v2/api-reference/history/get-a-phone-verification)
48
+ # for the full timeline of one of them. A cursor is bound to the filters that
49
+ # produced it: pass `next_cursor` back with the exact same query parameters.
50
+ #
51
+ # @overload list(channels: nil, cursor: nil, device_platform: nil, from: nil, limit: nil, max_attempts: nil, min_attempts: nil, phone_number: nil, region: nil, status: nil, template_id: nil, to: nil, request_options: {})
52
+ #
53
+ # @param channels [Array<Symbol, PreludeSDK::Models::Verification::Phone::HistoryListParams::Channel>] Only verifications that could use one of these channels. Repeat the parameter fo
54
+ #
55
+ # @param cursor [String] Pagination cursor from the previous response.
56
+ #
57
+ # @param device_platform [Symbol, PreludeSDK::Models::Verification::Phone::HistoryListParams::DevicePlatform] Only verifications created from this device platform.
58
+ #
59
+ # @param from [Time] Only verifications created at or after this RFC 3339 timestamp. Goes with `to`,
60
+ #
61
+ # @param limit [Integer] Maximum number of verifications to return per page.
62
+ #
63
+ # @param max_attempts [Integer] Only verifications that sent at most this many messages. `0` keeps the verificat
64
+ #
65
+ # @param min_attempts [Integer] Only verifications that sent at least this many messages.
66
+ #
67
+ # @param phone_number [String] Only verifications targeting this E.164 phone number. The leading `+` may be omi
68
+ #
69
+ # @param region [String] Only verifications of phone numbers from this region, as an ISO 3166-1 alpha-2 c
70
+ #
71
+ # @param status [Symbol, PreludeSDK::Models::Verification::Phone::HistoryListParams::Status] Only verifications in this status. `pending_check` cannot be filtered on.
72
+ #
73
+ # @param template_id [String] Only verifications sent with this template, as returned in `template_id` by [Get
74
+ #
75
+ # @param to [Time] Only verifications created at or before this RFC 3339 timestamp. Goes with `from
76
+ #
77
+ # @param request_options [PreludeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
78
+ #
79
+ # @return [PreludeSDK::Models::Verification::Phone::HistoryListResponse]
80
+ #
81
+ # @see PreludeSDK::Models::Verification::Phone::HistoryListParams
82
+ def list(params = {})
83
+ parsed, options = PreludeSDK::Verification::Phone::HistoryListParams.dump_request(params)
84
+ query = PreludeSDK::Internal::Util.encode_query_params(parsed)
85
+ @client.request(
86
+ method: :get,
87
+ path: "v2/verification/phone/history",
88
+ query: query,
89
+ model: PreludeSDK::Models::Verification::Phone::HistoryListResponse,
90
+ options: options
91
+ )
92
+ end
93
+
94
+ # @api private
95
+ #
96
+ # @param client [PreludeSDK::Client]
97
+ def initialize(client:)
98
+ @client = client
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PreludeSDK
4
+ module Resources
5
+ class Verification
6
+ class Phone
7
+ # Verify phone numbers.
8
+ # @return [PreludeSDK::Resources::Verification::Phone::History]
9
+ attr_reader :history
10
+
11
+ # @api private
12
+ #
13
+ # @param client [PreludeSDK::Client]
14
+ def initialize(client:)
15
+ @client = client
16
+ @history = PreludeSDK::Resources::Verification::Phone::History.new(client: client)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -4,6 +4,9 @@ module PreludeSDK
4
4
  module Resources
5
5
  # Verify phone numbers.
6
6
  class Verification
7
+ # @return [PreludeSDK::Resources::Verification::Phone]
8
+ attr_reader :phone
9
+
7
10
  # Some parameter documentations has been truncated, see
8
11
  # {PreludeSDK::Models::VerificationCreateParams} for more details.
9
12
  #
@@ -13,7 +16,7 @@ module PreludeSDK
13
16
  #
14
17
  # @overload create(target:, dispatch_id: nil, metadata: nil, options: nil, signals: nil, request_options: {})
15
18
  #
16
- # @param target [PreludeSDK::Models::VerificationCreateParams::Target] The verification target. Either a phone number or an email address. To use the e
19
+ # @param target [PreludeSDK::Models::Target] The verification target. Either a phone number or an email address. To use the e
17
20
  #
18
21
  # @param dispatch_id [String] The identifier of the dispatch that came from the front-end SDK.
19
22
  #
@@ -21,7 +24,7 @@ module PreludeSDK
21
24
  #
22
25
  # @param options [PreludeSDK::Models::VerificationCreateParams::Options] Verification options
23
26
  #
24
- # @param signals [PreludeSDK::Models::VerificationCreateParams::Signals] The signals used for anti-fraud. For more details, refer to [Signals](/verify/v2
27
+ # @param signals [PreludeSDK::Models::Signals] The signals used for anti-fraud. For more details, refer to [Signals](/verify/v2
25
28
  #
26
29
  # @param request_options [PreludeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
27
30
  #
@@ -48,7 +51,7 @@ module PreludeSDK
48
51
  #
49
52
  # @param code [String] The OTP code to validate.
50
53
  #
51
- # @param target [PreludeSDK::Models::VerificationCheckParams::Target] The verification target. Either a phone number or an email address. To use the e
54
+ # @param target [PreludeSDK::Models::Target] The verification target. Either a phone number or an email address. To use the e
52
55
  #
53
56
  # @param psd2 [PreludeSDK::Models::VerificationCheckParams::Psd2] Required when checking a code issued under the `prelude:psd2` template. The subm
54
57
  #
@@ -73,6 +76,7 @@ module PreludeSDK
73
76
  # @param client [PreludeSDK::Client]
74
77
  def initialize(client:)
75
78
  @client = client
79
+ @phone = PreludeSDK::Resources::Verification::Phone.new(client: client)
76
80
  end
77
81
  end
78
82
  end
@@ -0,0 +1,99 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PreludeSDK
4
+ module Resources
5
+ class VerificationManagement
6
+ # Verify phone numbers.
7
+ class Sandbox
8
+ # Some parameter documentations has been truncated, see
9
+ # {PreludeSDK::Models::VerificationManagement::SandboxAddPhoneNumberParams} for
10
+ # more details.
11
+ #
12
+ # Register a phone number as a sandbox number and associate it with a fixed
13
+ # attempt code. Subsequent verification attempts against this number will not
14
+ # trigger a real SMS/call and will validate against the configured attempt code.
15
+ #
16
+ # This operation is idempotent - re-adding the same phone number will overwrite
17
+ # the existing attempt code.
18
+ #
19
+ # In order to get access to this endpoint, contact our support team.
20
+ #
21
+ # @overload add_phone_number(attempt_code:, phone_number:, request_options: {})
22
+ #
23
+ # @param attempt_code [String] The fixed attempt code that will validate verification attempts for this phone n
24
+ #
25
+ # @param phone_number [String] An E.164 formatted phone number to add to the sandbox list.
26
+ #
27
+ # @param request_options [PreludeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
28
+ #
29
+ # @return [PreludeSDK::Models::VerificationManagement::SandboxAddPhoneNumberResponse]
30
+ #
31
+ # @see PreludeSDK::Models::VerificationManagement::SandboxAddPhoneNumberParams
32
+ def add_phone_number(params)
33
+ parsed, options = PreludeSDK::VerificationManagement::SandboxAddPhoneNumberParams.dump_request(params)
34
+ @client.request(
35
+ method: :put,
36
+ path: "v2/verification/management/phone-numbers/sandbox",
37
+ body: parsed,
38
+ model: PreludeSDK::Models::VerificationManagement::SandboxAddPhoneNumberResponse,
39
+ options: options
40
+ )
41
+ end
42
+
43
+ # Remove a phone number from the sandbox list.
44
+ #
45
+ # This operation is idempotent - deleting a phone number that is not in the
46
+ # sandbox list will succeed without making any changes.
47
+ #
48
+ # In order to get access to this endpoint, contact our support team.
49
+ #
50
+ # @overload delete_phone_number(phone_number, request_options: {})
51
+ #
52
+ # @param phone_number [String] The E.164 formatted phone number to remove from the sandbox list.
53
+ #
54
+ # @param request_options [PreludeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
55
+ #
56
+ # @return [PreludeSDK::Models::VerificationManagement::SandboxDeletePhoneNumberResponse]
57
+ #
58
+ # @see PreludeSDK::Models::VerificationManagement::SandboxDeletePhoneNumberParams
59
+ def delete_phone_number(phone_number, params = {})
60
+ @client.request(
61
+ method: :delete,
62
+ path: ["v2/verification/management/phone-numbers/sandbox/%1$s", phone_number],
63
+ model: PreludeSDK::Models::VerificationManagement::SandboxDeletePhoneNumberResponse,
64
+ options: params[:request_options]
65
+ )
66
+ end
67
+
68
+ # Retrieve the list of sandbox phone numbers for the account. Sandbox numbers are
69
+ # test numbers that bypass the real verification flow and return a fixed attempt
70
+ # code.
71
+ #
72
+ # In order to get access to this endpoint, contact our support team.
73
+ #
74
+ # @overload list_phone_numbers(request_options: {})
75
+ #
76
+ # @param request_options [PreludeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
77
+ #
78
+ # @return [PreludeSDK::Models::VerificationManagement::SandboxListPhoneNumbersResponse]
79
+ #
80
+ # @see PreludeSDK::Models::VerificationManagement::SandboxListPhoneNumbersParams
81
+ def list_phone_numbers(params = {})
82
+ @client.request(
83
+ method: :get,
84
+ path: "v2/verification/management/phone-numbers/sandbox",
85
+ model: PreludeSDK::Models::VerificationManagement::SandboxListPhoneNumbersResponse,
86
+ options: params[:request_options]
87
+ )
88
+ end
89
+
90
+ # @api private
91
+ #
92
+ # @param client [PreludeSDK::Client]
93
+ def initialize(client:)
94
+ @client = client
95
+ end
96
+ end
97
+ end
98
+ end
99
+ end