noresponse 2.0.17

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 (231) hide show
  1. checksums.yaml +7 -0
  2. data/lib/crystalline/enum.rbi +17 -0
  3. data/lib/crystalline/metadata_fields.rb +263 -0
  4. data/lib/crystalline/module.rb +186 -0
  5. data/lib/crystalline/types.rb +168 -0
  6. data/lib/crystalline/utils.rb +67 -0
  7. data/lib/crystalline.rb +11 -0
  8. data/lib/no_response/assessments.rb +1252 -0
  9. data/lib/no_response/auth.rb +263 -0
  10. data/lib/no_response/issued_credential.rb +21 -0
  11. data/lib/no_response/keys.rb +318 -0
  12. data/lib/no_response/late_results.rb +301 -0
  13. data/lib/no_response/models/callbacks.rb +10 -0
  14. data/lib/no_response/models/errors/apistatuserror.rb +41 -0
  15. data/lib/no_response/models/errors/apistatuserror.rbi +30 -0
  16. data/lib/no_response/models/errors/authenticationerror.rb +108 -0
  17. data/lib/no_response/models/errors/authenticationerror.rbi +56 -0
  18. data/lib/no_response/models/errors/badrequesterror.rb +108 -0
  19. data/lib/no_response/models/errors/badrequesterror.rbi +56 -0
  20. data/lib/no_response/models/errors/conflicterror.rb +108 -0
  21. data/lib/no_response/models/errors/conflicterror.rbi +56 -0
  22. data/lib/no_response/models/errors/notfounderror.rb +108 -0
  23. data/lib/no_response/models/errors/notfounderror.rbi +56 -0
  24. data/lib/no_response/models/errors/permissiondeniederror.rb +108 -0
  25. data/lib/no_response/models/errors/permissiondeniederror.rbi +56 -0
  26. data/lib/no_response/models/errors/ratelimiterror.rb +108 -0
  27. data/lib/no_response/models/errors/ratelimiterror.rbi +56 -0
  28. data/lib/no_response/models/errors.rb +16 -0
  29. data/lib/no_response/models/operations/createassessment_request.rb +36 -0
  30. data/lib/no_response/models/operations/createassessment_request.rbi +20 -0
  31. data/lib/no_response/models/operations/createassessment_response.rb +32 -0
  32. data/lib/no_response/models/operations/createassessment_response.rbi +20 -0
  33. data/lib/no_response/models/operations/getassessment_request.rb +41 -0
  34. data/lib/no_response/models/operations/getassessment_request.rbi +20 -0
  35. data/lib/no_response/models/operations/getassessment_response.rb +32 -0
  36. data/lib/no_response/models/operations/getassessment_response.rbi +20 -0
  37. data/lib/no_response/models/operations/queryaccountassessments_response.rb +44 -0
  38. data/lib/no_response/models/operations/queryaccountassessments_response.rbi +20 -0
  39. data/lib/no_response/models/operations/recordassessmentoutcome_request.rb +52 -0
  40. data/lib/no_response/models/operations/recordassessmentoutcome_request.rbi +26 -0
  41. data/lib/no_response/models/operations/recordassessmentoutcome_response.rb +32 -0
  42. data/lib/no_response/models/operations/recordassessmentoutcome_response.rbi +20 -0
  43. data/lib/no_response/models/operations/rotateapikey_response.rb +32 -0
  44. data/lib/no_response/models/operations/rotateapikey_response.rbi +20 -0
  45. data/lib/no_response/models/operations.rb +17 -0
  46. data/lib/no_response/models/shared/alternate_name.rb +23 -0
  47. data/lib/no_response/models/shared/alternate_name.rbi +9 -0
  48. data/lib/no_response/models/shared/alternate_name_union.rb +23 -0
  49. data/lib/no_response/models/shared/alternate_name_union.rbi +9 -0
  50. data/lib/no_response/models/shared/assessment.rb +235 -0
  51. data/lib/no_response/models/shared/assessment.rbi +116 -0
  52. data/lib/no_response/models/shared/assessmentlist.rb +78 -0
  53. data/lib/no_response/models/shared/assessmentlist.rbi +38 -0
  54. data/lib/no_response/models/shared/assessmentoutcome.rb +61 -0
  55. data/lib/no_response/models/shared/assessmentoutcome.rbi +32 -0
  56. data/lib/no_response/models/shared/assessmentoutcomerequest.rb +71 -0
  57. data/lib/no_response/models/shared/assessmentoutcomerequest.rbi +32 -0
  58. data/lib/no_response/models/shared/assessmentquery.rb +70 -0
  59. data/lib/no_response/models/shared/assessmentquery.rbi +32 -0
  60. data/lib/no_response/models/shared/assessmentrequest.rb +125 -0
  61. data/lib/no_response/models/shared/assessmentrequest.rbi +62 -0
  62. data/lib/no_response/models/shared/assessmentrequestclientcontext.rb +125 -0
  63. data/lib/no_response/models/shared/assessmentrequestclientcontext.rbi +62 -0
  64. data/lib/no_response/models/shared/assessmentrequestidentifiers.rb +74 -0
  65. data/lib/no_response/models/shared/assessmentrequestidentifiers.rbi +38 -0
  66. data/lib/no_response/models/shared/assessmentrequestissuedcredential.rb +33 -0
  67. data/lib/no_response/models/shared/assessmentrequestissuedcredential.rbi +14 -0
  68. data/lib/no_response/models/shared/assessmentrequestpolicycontext.rb +46 -0
  69. data/lib/no_response/models/shared/assessmentrequestpolicycontext.rbi +20 -0
  70. data/lib/no_response/models/shared/assessmenttiming.rb +41 -0
  71. data/lib/no_response/models/shared/assessmenttiming.rbi +20 -0
  72. data/lib/no_response/models/shared/assurancelevel.rb +18 -0
  73. data/lib/no_response/models/shared/assurancelevel.rbi +9 -0
  74. data/lib/no_response/models/shared/authcontext.rb +285 -0
  75. data/lib/no_response/models/shared/authcontext.rbi +152 -0
  76. data/lib/no_response/models/shared/authcontextmfa.rb +55 -0
  77. data/lib/no_response/models/shared/authcontextmfa.rbi +26 -0
  78. data/lib/no_response/models/shared/authenticationerrorcode.rb +18 -0
  79. data/lib/no_response/models/shared/authenticationerrorcode.rbi +9 -0
  80. data/lib/no_response/models/shared/badrequesterrorcode.rb +20 -0
  81. data/lib/no_response/models/shared/badrequesterrorcode.rbi +9 -0
  82. data/lib/no_response/models/shared/band.rb +21 -0
  83. data/lib/no_response/models/shared/band.rbi +9 -0
  84. data/lib/no_response/models/shared/breach.rb +108 -0
  85. data/lib/no_response/models/shared/breach.rbi +56 -0
  86. data/lib/no_response/models/shared/breachexposed.rb +28 -0
  87. data/lib/no_response/models/shared/breachexposed.rbi +9 -0
  88. data/lib/no_response/models/shared/breachkind.rb +24 -0
  89. data/lib/no_response/models/shared/breachkind.rbi +9 -0
  90. data/lib/no_response/models/shared/breachselector.rb +20 -0
  91. data/lib/no_response/models/shared/breachselector.rbi +9 -0
  92. data/lib/no_response/models/shared/breachsummary.rb +109 -0
  93. data/lib/no_response/models/shared/breachsummary.rbi +56 -0
  94. data/lib/no_response/models/shared/confidence.rb +21 -0
  95. data/lib/no_response/models/shared/confidence.rbi +9 -0
  96. data/lib/no_response/models/shared/conflicterrorcode.rb +19 -0
  97. data/lib/no_response/models/shared/conflicterrorcode.rbi +9 -0
  98. data/lib/no_response/models/shared/consistency.rb +85 -0
  99. data/lib/no_response/models/shared/consistency.rbi +32 -0
  100. data/lib/no_response/models/shared/consistencyvalue.rb +21 -0
  101. data/lib/no_response/models/shared/consistencyvalue.rbi +9 -0
  102. data/lib/no_response/models/shared/country.rb +20 -0
  103. data/lib/no_response/models/shared/country.rbi +9 -0
  104. data/lib/no_response/models/shared/email.rb +23 -0
  105. data/lib/no_response/models/shared/email.rbi +9 -0
  106. data/lib/no_response/models/shared/email_union.rb +23 -0
  107. data/lib/no_response/models/shared/email_union.rbi +9 -0
  108. data/lib/no_response/models/shared/failurereason.rb +24 -0
  109. data/lib/no_response/models/shared/failurereason.rbi +9 -0
  110. data/lib/no_response/models/shared/flow.rb +18 -0
  111. data/lib/no_response/models/shared/flow.rbi +9 -0
  112. data/lib/no_response/models/shared/freshness.rb +20 -0
  113. data/lib/no_response/models/shared/freshness.rbi +9 -0
  114. data/lib/no_response/models/shared/hookpoint.rb +19 -0
  115. data/lib/no_response/models/shared/hookpoint.rbi +9 -0
  116. data/lib/no_response/models/shared/identifierkind.rb +21 -0
  117. data/lib/no_response/models/shared/identifierkind.rbi +9 -0
  118. data/lib/no_response/models/shared/incompletereason.rb +23 -0
  119. data/lib/no_response/models/shared/incompletereason.rbi +9 -0
  120. data/lib/no_response/models/shared/incompletesource.rb +53 -0
  121. data/lib/no_response/models/shared/incompletesource.rbi +20 -0
  122. data/lib/no_response/models/shared/ipsummary.rb +61 -0
  123. data/lib/no_response/models/shared/ipsummary.rbi +26 -0
  124. data/lib/no_response/models/shared/ipsummarytype.rb +24 -0
  125. data/lib/no_response/models/shared/ipsummarytype.rbi +9 -0
  126. data/lib/no_response/models/shared/keyrotation.rb +79 -0
  127. data/lib/no_response/models/shared/keyrotation.rbi +44 -0
  128. data/lib/no_response/models/shared/keyrotationrequest.rb +33 -0
  129. data/lib/no_response/models/shared/keyrotationrequest.rbi +14 -0
  130. data/lib/no_response/models/shared/lane.rb +21 -0
  131. data/lib/no_response/models/shared/lane.rbi +9 -0
  132. data/lib/no_response/models/shared/linetype.rb +22 -0
  133. data/lib/no_response/models/shared/linetype.rbi +9 -0
  134. data/lib/no_response/models/shared/location.rb +23 -0
  135. data/lib/no_response/models/shared/location.rbi +9 -0
  136. data/lib/no_response/models/shared/location_union.rb +23 -0
  137. data/lib/no_response/models/shared/location_union.rbi +9 -0
  138. data/lib/no_response/models/shared/name_candidate.rb +23 -0
  139. data/lib/no_response/models/shared/name_candidate.rbi +9 -0
  140. data/lib/no_response/models/shared/name_candidate_union.rb +23 -0
  141. data/lib/no_response/models/shared/name_candidate_union.rbi +9 -0
  142. data/lib/no_response/models/shared/notfounderrorcode.rb +18 -0
  143. data/lib/no_response/models/shared/notfounderrorcode.rbi +9 -0
  144. data/lib/no_response/models/shared/outcome.rb +23 -0
  145. data/lib/no_response/models/shared/outcome.rbi +9 -0
  146. data/lib/no_response/models/shared/permissiondeniederrorcode.rb +18 -0
  147. data/lib/no_response/models/shared/permissiondeniederrorcode.rbi +9 -0
  148. data/lib/no_response/models/shared/phoneenrichment.rb +32 -0
  149. data/lib/no_response/models/shared/phoneenrichment.rbi +14 -0
  150. data/lib/no_response/models/shared/phoneenrichmentfields.rb +451 -0
  151. data/lib/no_response/models/shared/phoneenrichmentfields.rbi +212 -0
  152. data/lib/no_response/models/shared/platform.rb +18 -0
  153. data/lib/no_response/models/shared/platform.rbi +9 -0
  154. data/lib/no_response/models/shared/probleminvalidparam.rb +48 -0
  155. data/lib/no_response/models/shared/probleminvalidparam.rbi +26 -0
  156. data/lib/no_response/models/shared/ratelimiterrorcode.rb +18 -0
  157. data/lib/no_response/models/shared/ratelimiterrorcode.rbi +9 -0
  158. data/lib/no_response/models/shared/reasoncode.rb +52 -0
  159. data/lib/no_response/models/shared/reasoncode.rbi +9 -0
  160. data/lib/no_response/models/shared/reasonidentifier.rb +23 -0
  161. data/lib/no_response/models/shared/reasonidentifier.rbi +9 -0
  162. data/lib/no_response/models/shared/recommendation.rb +20 -0
  163. data/lib/no_response/models/shared/recommendation.rbi +9 -0
  164. data/lib/no_response/models/shared/responsemode.rb +16 -0
  165. data/lib/no_response/models/shared/responsemode.rbi +9 -0
  166. data/lib/no_response/models/shared/risk.rb +171 -0
  167. data/lib/no_response/models/shared/risk.rbi +80 -0
  168. data/lib/no_response/models/shared/riskconfidence.rb +20 -0
  169. data/lib/no_response/models/shared/riskconfidence.rbi +9 -0
  170. data/lib/no_response/models/shared/riskcoverage.rb +49 -0
  171. data/lib/no_response/models/shared/riskcoverage.rbi +26 -0
  172. data/lib/no_response/models/shared/riskdetails.rb +55 -0
  173. data/lib/no_response/models/shared/riskdetails.rbi +26 -0
  174. data/lib/no_response/models/shared/riskdetailsbreachname.rb +40 -0
  175. data/lib/no_response/models/shared/riskdetailsbreachname.rbi +20 -0
  176. data/lib/no_response/models/shared/riskdetailsphonename.rb +40 -0
  177. data/lib/no_response/models/shared/riskdetailsphonename.rbi +20 -0
  178. data/lib/no_response/models/shared/riskreason.rb +67 -0
  179. data/lib/no_response/models/shared/riskreason.rbi +26 -0
  180. data/lib/no_response/models/shared/risksummary.rb +73 -0
  181. data/lib/no_response/models/shared/risksummary.rbi +38 -0
  182. data/lib/no_response/models/shared/risksummaryemail.rb +55 -0
  183. data/lib/no_response/models/shared/risksummaryemail.rbi +26 -0
  184. data/lib/no_response/models/shared/risksummaryphone.rb +69 -0
  185. data/lib/no_response/models/shared/risksummaryphone.rbi +32 -0
  186. data/lib/no_response/models/shared/risksummaryusername.rb +41 -0
  187. data/lib/no_response/models/shared/risksummaryusername.rbi +20 -0
  188. data/lib/no_response/models/shared/scope.rb +21 -0
  189. data/lib/no_response/models/shared/scope.rbi +9 -0
  190. data/lib/no_response/models/shared/security.rb +32 -0
  191. data/lib/no_response/models/shared/security.rbi +14 -0
  192. data/lib/no_response/models/shared/signal.rb +149 -0
  193. data/lib/no_response/models/shared/signal.rbi +68 -0
  194. data/lib/no_response/models/shared/signaloutcome.rb +22 -0
  195. data/lib/no_response/models/shared/signaloutcome.rbi +9 -0
  196. data/lib/no_response/models/shared/social_profile.rb +23 -0
  197. data/lib/no_response/models/shared/social_profile.rbi +9 -0
  198. data/lib/no_response/models/shared/social_profile_union.rb +23 -0
  199. data/lib/no_response/models/shared/social_profile_union.rbi +9 -0
  200. data/lib/no_response/models/shared/status.rb +20 -0
  201. data/lib/no_response/models/shared/status.rbi +9 -0
  202. data/lib/no_response/models/shared/timezone.rb +23 -0
  203. data/lib/no_response/models/shared/timezone.rbi +9 -0
  204. data/lib/no_response/models/shared/timezone_union.rb +23 -0
  205. data/lib/no_response/models/shared/timezone_union.rbi +9 -0
  206. data/lib/no_response/models/shared/transport.rb +17 -0
  207. data/lib/no_response/models/shared/transport.rbi +9 -0
  208. data/lib/no_response/models/shared/website.rb +23 -0
  209. data/lib/no_response/models/shared/website.rbi +9 -0
  210. data/lib/no_response/models/shared/website_union.rb +23 -0
  211. data/lib/no_response/models/shared/website_union.rbi +9 -0
  212. data/lib/no_response/models/shared.rb +92 -0
  213. data/lib/no_response/noresponseclient.rb +110 -0
  214. data/lib/no_response/sdk_hooks/hooks.rb +97 -0
  215. data/lib/no_response/sdk_hooks/idempotency_key_hook.rb +25 -0
  216. data/lib/no_response/sdk_hooks/registration.rb +43 -0
  217. data/lib/no_response/sdk_hooks/types.rb +178 -0
  218. data/lib/no_response/sdkconfiguration.rb +107 -0
  219. data/lib/no_response/sdkconfiguration.rbi +83 -0
  220. data/lib/no_response/utils/forms.rb +230 -0
  221. data/lib/no_response/utils/headers.rb +80 -0
  222. data/lib/no_response/utils/query_params.rb +165 -0
  223. data/lib/no_response/utils/request_bodies.rb +77 -0
  224. data/lib/no_response/utils/retries.rb +137 -0
  225. data/lib/no_response/utils/security.rb +156 -0
  226. data/lib/no_response/utils/url.rb +122 -0
  227. data/lib/no_response/utils/utils.rb +243 -0
  228. data/lib/no_response/wait.rb +66 -0
  229. data/lib/no_response/webhooks.rb +177 -0
  230. data/lib/noresponse.rb +25 -0
  231. metadata +501 -0
@@ -0,0 +1,20 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::AssessmentRequestPolicyContext
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::AssessmentRequestPolicyContext
9
+ def flow
10
+ end
11
+
12
+ def flow=(str_)
13
+ end
14
+
15
+ def region
16
+ end
17
+
18
+ def region=(str_)
19
+ end
20
+ end
@@ -0,0 +1,41 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+
8
+ class AssessmentTiming
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+
12
+ # The budget the server applied to the synchronous answer.
13
+ field(
14
+ :deadline_ms,
15
+ ::Integer,
16
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("deadline_ms"), required: true}}
17
+ )
18
+ # Server time from HTTP ingress to this revision of the assessment.
19
+ field(
20
+ :elapsed_ms,
21
+ ::Integer,
22
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("elapsed_ms"), required: true}}
23
+ )
24
+
25
+ sig { params(deadline_ms: ::Integer, elapsed_ms: ::Integer).void }
26
+ def initialize(deadline_ms:, elapsed_ms:)
27
+ @deadline_ms = deadline_ms
28
+ @elapsed_ms = elapsed_ms
29
+ end
30
+
31
+ sig { params(other: T.untyped).returns(T::Boolean) }
32
+ def ==(other)
33
+ return false unless other.is_a?(self.class)
34
+ return false unless @deadline_ms == other.deadline_ms
35
+ return false unless @elapsed_ms == other.elapsed_ms
36
+ true
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,20 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::AssessmentTiming
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::AssessmentTiming
9
+ def deadline_ms
10
+ end
11
+
12
+ def deadline_ms=(str_)
13
+ end
14
+
15
+ def elapsed_ms
16
+ end
17
+
18
+ def elapsed_ms=(str_)
19
+ end
20
+ end
@@ -0,0 +1,18 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+ # AssuranceLevel - Provider or OIDC assurance level, when the customer has mapped one.
8
+ class AssuranceLevel < T::Enum
9
+ enums do
10
+ UNKNOWN = new("unknown")
11
+ LOW = new("low")
12
+ MEDIUM = new("medium")
13
+ HIGH = new("high")
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,9 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::AssuranceLevel
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::AssuranceLevel
9
+ end
@@ -0,0 +1,285 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+ # Normalised claims from a session your backend has already verified with WorkOS, Clerk, Auth0 or any OIDC provider. Pass the output of the SDK's auth adapters, not a raw token.
8
+ class AuthContext
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+
12
+ # Lowercase provider slug. WorkOS, Clerk and Auth0 have first-class adapters; every other provider uses a customer-specific OIDC slug. Provider brand is metadata; it does not change risk by itself.
13
+ field(
14
+ :provider,
15
+ ::String,
16
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("provider"), required: true}}
17
+ )
18
+ # The verified token issuer, normally the provider's HTTPS issuer URL.
19
+ field(
20
+ :issuer,
21
+ ::String,
22
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("issuer"), required: true}}
23
+ )
24
+ # The verified stable subject identifier (`sub`), opaque to NoResponse. Required, except from a provider hook at pre_registration, where no user exists yet.
25
+ field(
26
+ :subject,
27
+ ::String,
28
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("subject"), required: true}}
29
+ )
30
+ # Whether the customer completed signature, issuer, audience and expiry validation before calling NoResponse. False contexts are accepted only as weak hints.
31
+ field(
32
+ :verified,
33
+ Crystalline::Boolean.new,
34
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("verified"), required: true}}
35
+ )
36
+ # The verified audience/resource identifier used by the customer's API. Use audiences when the provider emits multiple values.
37
+ field(
38
+ :audience,
39
+ Crystalline::Nilable.new(::String),
40
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("audience")}}
41
+ )
42
+ # All verified audience/resource identifiers from an OAuth or OIDC token. The first value may also be copied to audience for simple integrations.
43
+ field(
44
+ :audiences,
45
+ Crystalline::Nilable.new(Crystalline::Array.new(::String)),
46
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("audiences")}}
47
+ )
48
+ # The verified session identifier (`sid` or provider equivalent).
49
+ field(
50
+ :session_id,
51
+ Crystalline::Nilable.new(::String),
52
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("session_id")}}
53
+ )
54
+ # The active organization or workspace identifier, when the provider issued one.
55
+ field(
56
+ :organization_id,
57
+ Crystalline::Nilable.new(::String),
58
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("organization_id")}}
59
+ )
60
+ # The provider tenant identifier, when distinct from organization_id.
61
+ field(
62
+ :tenant_id,
63
+ Crystalline::Nilable.new(::String),
64
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("tenant_id")}}
65
+ )
66
+ # The verified token identifier (`jti`), used for replay and rotation correlation.
67
+ field(
68
+ :token_id,
69
+ Crystalline::Nilable.new(::String),
70
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("token_id")}}
71
+ )
72
+ # Verified token issue time (`iat`).
73
+ field(
74
+ :issued_at,
75
+ Crystalline::Nilable.new(::String),
76
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("issued_at")}}
77
+ )
78
+ # Verified token expiry (`exp`).
79
+ field(
80
+ :expires_at,
81
+ Crystalline::Nilable.new(::String),
82
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("expires_at")}}
83
+ )
84
+ # Creation time of the provider session from the verified backend session record (for example Clerk Session.createdAt or WorkOS Session.created_at). This is separate from token issuance and auth_time.
85
+ field(
86
+ :session_created_at,
87
+ Crystalline::Nilable.new(::String),
88
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("session_created_at")}}
89
+ )
90
+ # Verified end-user authentication time (`auth_time`), when present.
91
+ field(
92
+ :auth_time,
93
+ Crystalline::Nilable.new(::String),
94
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("auth_time")}}
95
+ )
96
+ # Account creation time from the customer's verified provider record, when available.
97
+ field(
98
+ :account_created_at,
99
+ Crystalline::Nilable.new(::String),
100
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("account_created_at")}}
101
+ )
102
+ # Whether the customer's provider asserts that the email identifier was verified.
103
+ field(
104
+ :email_verified,
105
+ Crystalline::Nilable.new(Crystalline::Boolean.new),
106
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("email_verified")}}
107
+ )
108
+ # Whether the customer's provider asserts that the phone identifier was verified.
109
+ field(
110
+ :phone_verified,
111
+ Crystalline::Nilable.new(Crystalline::Boolean.new),
112
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("phone_verified")}}
113
+ )
114
+ # Provider or OIDC assurance level, when the customer has mapped one.
115
+ field(
116
+ :assurance_level,
117
+ Crystalline::Nilable.new(Models::Shared::AssuranceLevel),
118
+ {
119
+ 'format_json': {
120
+ 'letter_case': ::NoResponse::Utils.field_name("assurance_level"),
121
+ 'decoder': ::NoResponse::Utils.enum_from_string(Models::Shared::AssuranceLevel, true)
122
+ }
123
+ }
124
+ )
125
+ # Whether the verified session is acting on behalf of another subject.
126
+ field(
127
+ :impersonated,
128
+ Crystalline::Nilable.new(Crystalline::Boolean.new),
129
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("impersonated")}}
130
+ )
131
+ # Where this context was derived. Backend is the trusted integration path; browser values are treated as weak hints. provider_hook is a hosted provider hook (an Auth0 or WorkOS Action) calling at hook_point; it needs hook_point and verified false, and its authentication facts are not scored.
132
+ field(
133
+ :transport,
134
+ Crystalline::Nilable.new(Models::Shared::Transport),
135
+ {
136
+ 'format_json': {
137
+ 'letter_case': ::NoResponse::Utils.field_name("transport"),
138
+ 'decoder': ::NoResponse::Utils.enum_from_string(Models::Shared::Transport, true)
139
+ }
140
+ }
141
+ )
142
+ # The provider event a provider_hook context was sent for. pre_registration runs before the user exists, so subject and the request's account_id may be absent there. Sent only with transport provider_hook.
143
+ field(
144
+ :hook_point,
145
+ Crystalline::Nilable.new(Models::Shared::HookPoint),
146
+ {
147
+ 'format_json': {
148
+ 'letter_case': ::NoResponse::Utils.field_name("hook_point"),
149
+ 'decoder': ::NoResponse::Utils.enum_from_string(Models::Shared::HookPoint, true)
150
+ }
151
+ }
152
+ )
153
+ # Normalized multi-factor evidence from a verified provider session.
154
+ field(
155
+ :mfa,
156
+ Crystalline::Nilable.new(Models::Shared::AuthContextMfa),
157
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("mfa")}}
158
+ )
159
+ # Bounded role slugs from the verified provider; roles do not change risk by themselves.
160
+ field(
161
+ :roles,
162
+ Crystalline::Nilable.new(Crystalline::Array.new(::String)),
163
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("roles")}}
164
+ )
165
+ # Bounded scopes from the verified access token; scopes do not change risk by themselves.
166
+ field(
167
+ :scopes,
168
+ Crystalline::Nilable.new(Crystalline::Array.new(::String)),
169
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("scopes")}}
170
+ )
171
+
172
+ sig {
173
+ params(
174
+ provider: ::String,
175
+ issuer: ::String,
176
+ subject: ::String,
177
+ verified: T::Boolean,
178
+ audience: T.nilable(::String),
179
+ audiences: T.nilable(T::Array[::String]),
180
+ session_id: T.nilable(::String),
181
+ organization_id: T.nilable(::String),
182
+ tenant_id: T.nilable(::String),
183
+ token_id: T.nilable(::String),
184
+ issued_at: T.nilable(::String),
185
+ expires_at: T.nilable(::String),
186
+ session_created_at: T.nilable(::String),
187
+ auth_time: T.nilable(::String),
188
+ account_created_at: T.nilable(::String),
189
+ email_verified: T.nilable(T::Boolean),
190
+ phone_verified: T.nilable(T::Boolean),
191
+ assurance_level: T.nilable(Models::Shared::AssuranceLevel),
192
+ impersonated: T.nilable(T::Boolean),
193
+ transport: T.nilable(Models::Shared::Transport),
194
+ hook_point: T.nilable(Models::Shared::HookPoint),
195
+ mfa: T.nilable(Models::Shared::AuthContextMfa),
196
+ roles: T.nilable(T::Array[::String]),
197
+ scopes: T.nilable(T::Array[::String])
198
+ )
199
+ .void
200
+ }
201
+ def initialize(
202
+ provider:,
203
+ issuer:,
204
+ subject:,
205
+ verified:,
206
+ audience: nil,
207
+ audiences: nil,
208
+ session_id: nil,
209
+ organization_id: nil,
210
+ tenant_id: nil,
211
+ token_id: nil,
212
+ issued_at: nil,
213
+ expires_at: nil,
214
+ session_created_at: nil,
215
+ auth_time: nil,
216
+ account_created_at: nil,
217
+ email_verified: nil,
218
+ phone_verified: nil,
219
+ assurance_level: nil,
220
+ impersonated: nil,
221
+ transport: nil,
222
+ hook_point: nil,
223
+ mfa: nil,
224
+ roles: nil,
225
+ scopes: nil
226
+ )
227
+ @provider = provider
228
+ @issuer = issuer
229
+ @subject = subject
230
+ @verified = verified
231
+ @audience = audience
232
+ @audiences = audiences
233
+ @session_id = session_id
234
+ @organization_id = organization_id
235
+ @tenant_id = tenant_id
236
+ @token_id = token_id
237
+ @issued_at = issued_at
238
+ @expires_at = expires_at
239
+ @session_created_at = session_created_at
240
+ @auth_time = auth_time
241
+ @account_created_at = account_created_at
242
+ @email_verified = email_verified
243
+ @phone_verified = phone_verified
244
+ @assurance_level = assurance_level
245
+ @impersonated = impersonated
246
+ @transport = transport
247
+ @hook_point = hook_point
248
+ @mfa = mfa
249
+ @roles = roles
250
+ @scopes = scopes
251
+ end
252
+
253
+ sig { params(other: T.untyped).returns(T::Boolean) }
254
+ def ==(other)
255
+ return false unless other.is_a?(self.class)
256
+ return false unless @provider == other.provider
257
+ return false unless @issuer == other.issuer
258
+ return false unless @subject == other.subject
259
+ return false unless @verified == other.verified
260
+ return false unless @audience == other.audience
261
+ return false unless @audiences == other.audiences
262
+ return false unless @session_id == other.session_id
263
+ return false unless @organization_id == other.organization_id
264
+ return false unless @tenant_id == other.tenant_id
265
+ return false unless @token_id == other.token_id
266
+ return false unless @issued_at == other.issued_at
267
+ return false unless @expires_at == other.expires_at
268
+ return false unless @session_created_at == other.session_created_at
269
+ return false unless @auth_time == other.auth_time
270
+ return false unless @account_created_at == other.account_created_at
271
+ return false unless @email_verified == other.email_verified
272
+ return false unless @phone_verified == other.phone_verified
273
+ return false unless @assurance_level == other.assurance_level
274
+ return false unless @impersonated == other.impersonated
275
+ return false unless @transport == other.transport
276
+ return false unless @hook_point == other.hook_point
277
+ return false unless @mfa == other.mfa
278
+ return false unless @roles == other.roles
279
+ return false unless @scopes == other.scopes
280
+ true
281
+ end
282
+ end
283
+ end
284
+ end
285
+ end
@@ -0,0 +1,152 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::AuthContext
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::AuthContext
9
+ def provider
10
+ end
11
+
12
+ def provider=(str_)
13
+ end
14
+
15
+ def issuer
16
+ end
17
+
18
+ def issuer=(str_)
19
+ end
20
+
21
+ def subject
22
+ end
23
+
24
+ def subject=(str_)
25
+ end
26
+
27
+ def verified
28
+ end
29
+
30
+ def verified=(str_)
31
+ end
32
+
33
+ def audience
34
+ end
35
+
36
+ def audience=(str_)
37
+ end
38
+
39
+ def audiences
40
+ end
41
+
42
+ def audiences=(str_)
43
+ end
44
+
45
+ def session_id
46
+ end
47
+
48
+ def session_id=(str_)
49
+ end
50
+
51
+ def organization_id
52
+ end
53
+
54
+ def organization_id=(str_)
55
+ end
56
+
57
+ def tenant_id
58
+ end
59
+
60
+ def tenant_id=(str_)
61
+ end
62
+
63
+ def token_id
64
+ end
65
+
66
+ def token_id=(str_)
67
+ end
68
+
69
+ def issued_at
70
+ end
71
+
72
+ def issued_at=(str_)
73
+ end
74
+
75
+ def expires_at
76
+ end
77
+
78
+ def expires_at=(str_)
79
+ end
80
+
81
+ def session_created_at
82
+ end
83
+
84
+ def session_created_at=(str_)
85
+ end
86
+
87
+ def auth_time
88
+ end
89
+
90
+ def auth_time=(str_)
91
+ end
92
+
93
+ def account_created_at
94
+ end
95
+
96
+ def account_created_at=(str_)
97
+ end
98
+
99
+ def email_verified
100
+ end
101
+
102
+ def email_verified=(str_)
103
+ end
104
+
105
+ def phone_verified
106
+ end
107
+
108
+ def phone_verified=(str_)
109
+ end
110
+
111
+ def assurance_level
112
+ end
113
+
114
+ def assurance_level=(str_)
115
+ end
116
+
117
+ def impersonated
118
+ end
119
+
120
+ def impersonated=(str_)
121
+ end
122
+
123
+ def transport
124
+ end
125
+
126
+ def transport=(str_)
127
+ end
128
+
129
+ def hook_point
130
+ end
131
+
132
+ def hook_point=(str_)
133
+ end
134
+
135
+ def mfa
136
+ end
137
+
138
+ def mfa=(str_)
139
+ end
140
+
141
+ def roles
142
+ end
143
+
144
+ def roles=(str_)
145
+ end
146
+
147
+ def scopes
148
+ end
149
+
150
+ def scopes=(str_)
151
+ end
152
+ end
@@ -0,0 +1,55 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+ # Normalized multi-factor evidence from a verified provider session.
8
+ class AuthContextMfa
9
+ extend T::Sig
10
+ include Crystalline::MetadataFields
11
+
12
+ field(
13
+ :present,
14
+ Crystalline::Nilable.new(Crystalline::Boolean.new),
15
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("present")}}
16
+ )
17
+
18
+ field(
19
+ :methods,
20
+ Crystalline::Nilable.new(Crystalline::Array.new(::String)),
21
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("methods")}}
22
+ )
23
+
24
+ field(
25
+ :age_seconds,
26
+ Crystalline::Nilable.new(::Integer),
27
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("age_seconds")}}
28
+ )
29
+
30
+ sig {
31
+ params(
32
+ present: T.nilable(T::Boolean),
33
+ methods: T.nilable(T::Array[::String]),
34
+ age_seconds: T.nilable(::Integer)
35
+ )
36
+ .void
37
+ }
38
+ def initialize(present: nil, methods: nil, age_seconds: nil)
39
+ @present = present
40
+ @methods = methods
41
+ @age_seconds = age_seconds
42
+ end
43
+
44
+ sig { params(other: T.untyped).returns(T::Boolean) }
45
+ def ==(other)
46
+ return false unless other.is_a?(self.class)
47
+ return false unless @present == other.present
48
+ return false unless @methods == other.methods
49
+ return false unless @age_seconds == other.age_seconds
50
+ true
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,26 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::AuthContextMfa
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::AuthContextMfa
9
+ def present
10
+ end
11
+
12
+ def present=(str_)
13
+ end
14
+
15
+ def methods
16
+ end
17
+
18
+ def methods=(str_)
19
+ end
20
+
21
+ def age_seconds
22
+ end
23
+
24
+ def age_seconds=(str_)
25
+ end
26
+ end
@@ -0,0 +1,18 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+ # AuthenticationErrorCode - Machine codes an HTTP 401 answer can carry.
8
+ class AuthenticationErrorCode
9
+ include ::Crystalline::Enum
10
+ enums do
11
+ UNAUTHORIZED = new("unauthorized")
12
+ end
13
+
14
+ open!
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,9 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::AuthenticationErrorCode
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::AuthenticationErrorCode
9
+ end
@@ -0,0 +1,20 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module NoResponse
5
+ module Models
6
+ module Shared
7
+ # BadRequestErrorCode - Machine codes an HTTP 400 answer can carry.
8
+ class BadRequestErrorCode
9
+ include ::Crystalline::Enum
10
+ enums do
11
+ INVALID_REQUEST = new("invalid_request")
12
+ INVALID_IDEMPOTENCY_KEY = new("invalid_idempotency_key")
13
+ INVALID_CURSOR = new("invalid_cursor")
14
+ end
15
+
16
+ open!
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,9 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::BadRequestErrorCode
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::BadRequestErrorCode
9
+ end