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.
- checksums.yaml +7 -0
- data/lib/crystalline/enum.rbi +17 -0
- data/lib/crystalline/metadata_fields.rb +263 -0
- data/lib/crystalline/module.rb +186 -0
- data/lib/crystalline/types.rb +168 -0
- data/lib/crystalline/utils.rb +67 -0
- data/lib/crystalline.rb +11 -0
- data/lib/no_response/assessments.rb +1252 -0
- data/lib/no_response/auth.rb +263 -0
- data/lib/no_response/issued_credential.rb +21 -0
- data/lib/no_response/keys.rb +318 -0
- data/lib/no_response/late_results.rb +301 -0
- data/lib/no_response/models/callbacks.rb +10 -0
- data/lib/no_response/models/errors/apistatuserror.rb +41 -0
- data/lib/no_response/models/errors/apistatuserror.rbi +30 -0
- data/lib/no_response/models/errors/authenticationerror.rb +108 -0
- data/lib/no_response/models/errors/authenticationerror.rbi +56 -0
- data/lib/no_response/models/errors/badrequesterror.rb +108 -0
- data/lib/no_response/models/errors/badrequesterror.rbi +56 -0
- data/lib/no_response/models/errors/conflicterror.rb +108 -0
- data/lib/no_response/models/errors/conflicterror.rbi +56 -0
- data/lib/no_response/models/errors/notfounderror.rb +108 -0
- data/lib/no_response/models/errors/notfounderror.rbi +56 -0
- data/lib/no_response/models/errors/permissiondeniederror.rb +108 -0
- data/lib/no_response/models/errors/permissiondeniederror.rbi +56 -0
- data/lib/no_response/models/errors/ratelimiterror.rb +108 -0
- data/lib/no_response/models/errors/ratelimiterror.rbi +56 -0
- data/lib/no_response/models/errors.rb +16 -0
- data/lib/no_response/models/operations/createassessment_request.rb +36 -0
- data/lib/no_response/models/operations/createassessment_request.rbi +20 -0
- data/lib/no_response/models/operations/createassessment_response.rb +32 -0
- data/lib/no_response/models/operations/createassessment_response.rbi +20 -0
- data/lib/no_response/models/operations/getassessment_request.rb +41 -0
- data/lib/no_response/models/operations/getassessment_request.rbi +20 -0
- data/lib/no_response/models/operations/getassessment_response.rb +32 -0
- data/lib/no_response/models/operations/getassessment_response.rbi +20 -0
- data/lib/no_response/models/operations/queryaccountassessments_response.rb +44 -0
- data/lib/no_response/models/operations/queryaccountassessments_response.rbi +20 -0
- data/lib/no_response/models/operations/recordassessmentoutcome_request.rb +52 -0
- data/lib/no_response/models/operations/recordassessmentoutcome_request.rbi +26 -0
- data/lib/no_response/models/operations/recordassessmentoutcome_response.rb +32 -0
- data/lib/no_response/models/operations/recordassessmentoutcome_response.rbi +20 -0
- data/lib/no_response/models/operations/rotateapikey_response.rb +32 -0
- data/lib/no_response/models/operations/rotateapikey_response.rbi +20 -0
- data/lib/no_response/models/operations.rb +17 -0
- data/lib/no_response/models/shared/alternate_name.rb +23 -0
- data/lib/no_response/models/shared/alternate_name.rbi +9 -0
- data/lib/no_response/models/shared/alternate_name_union.rb +23 -0
- data/lib/no_response/models/shared/alternate_name_union.rbi +9 -0
- data/lib/no_response/models/shared/assessment.rb +235 -0
- data/lib/no_response/models/shared/assessment.rbi +116 -0
- data/lib/no_response/models/shared/assessmentlist.rb +78 -0
- data/lib/no_response/models/shared/assessmentlist.rbi +38 -0
- data/lib/no_response/models/shared/assessmentoutcome.rb +61 -0
- data/lib/no_response/models/shared/assessmentoutcome.rbi +32 -0
- data/lib/no_response/models/shared/assessmentoutcomerequest.rb +71 -0
- data/lib/no_response/models/shared/assessmentoutcomerequest.rbi +32 -0
- data/lib/no_response/models/shared/assessmentquery.rb +70 -0
- data/lib/no_response/models/shared/assessmentquery.rbi +32 -0
- data/lib/no_response/models/shared/assessmentrequest.rb +125 -0
- data/lib/no_response/models/shared/assessmentrequest.rbi +62 -0
- data/lib/no_response/models/shared/assessmentrequestclientcontext.rb +125 -0
- data/lib/no_response/models/shared/assessmentrequestclientcontext.rbi +62 -0
- data/lib/no_response/models/shared/assessmentrequestidentifiers.rb +74 -0
- data/lib/no_response/models/shared/assessmentrequestidentifiers.rbi +38 -0
- data/lib/no_response/models/shared/assessmentrequestissuedcredential.rb +33 -0
- data/lib/no_response/models/shared/assessmentrequestissuedcredential.rbi +14 -0
- data/lib/no_response/models/shared/assessmentrequestpolicycontext.rb +46 -0
- data/lib/no_response/models/shared/assessmentrequestpolicycontext.rbi +20 -0
- data/lib/no_response/models/shared/assessmenttiming.rb +41 -0
- data/lib/no_response/models/shared/assessmenttiming.rbi +20 -0
- data/lib/no_response/models/shared/assurancelevel.rb +18 -0
- data/lib/no_response/models/shared/assurancelevel.rbi +9 -0
- data/lib/no_response/models/shared/authcontext.rb +285 -0
- data/lib/no_response/models/shared/authcontext.rbi +152 -0
- data/lib/no_response/models/shared/authcontextmfa.rb +55 -0
- data/lib/no_response/models/shared/authcontextmfa.rbi +26 -0
- data/lib/no_response/models/shared/authenticationerrorcode.rb +18 -0
- data/lib/no_response/models/shared/authenticationerrorcode.rbi +9 -0
- data/lib/no_response/models/shared/badrequesterrorcode.rb +20 -0
- data/lib/no_response/models/shared/badrequesterrorcode.rbi +9 -0
- data/lib/no_response/models/shared/band.rb +21 -0
- data/lib/no_response/models/shared/band.rbi +9 -0
- data/lib/no_response/models/shared/breach.rb +108 -0
- data/lib/no_response/models/shared/breach.rbi +56 -0
- data/lib/no_response/models/shared/breachexposed.rb +28 -0
- data/lib/no_response/models/shared/breachexposed.rbi +9 -0
- data/lib/no_response/models/shared/breachkind.rb +24 -0
- data/lib/no_response/models/shared/breachkind.rbi +9 -0
- data/lib/no_response/models/shared/breachselector.rb +20 -0
- data/lib/no_response/models/shared/breachselector.rbi +9 -0
- data/lib/no_response/models/shared/breachsummary.rb +109 -0
- data/lib/no_response/models/shared/breachsummary.rbi +56 -0
- data/lib/no_response/models/shared/confidence.rb +21 -0
- data/lib/no_response/models/shared/confidence.rbi +9 -0
- data/lib/no_response/models/shared/conflicterrorcode.rb +19 -0
- data/lib/no_response/models/shared/conflicterrorcode.rbi +9 -0
- data/lib/no_response/models/shared/consistency.rb +85 -0
- data/lib/no_response/models/shared/consistency.rbi +32 -0
- data/lib/no_response/models/shared/consistencyvalue.rb +21 -0
- data/lib/no_response/models/shared/consistencyvalue.rbi +9 -0
- data/lib/no_response/models/shared/country.rb +20 -0
- data/lib/no_response/models/shared/country.rbi +9 -0
- data/lib/no_response/models/shared/email.rb +23 -0
- data/lib/no_response/models/shared/email.rbi +9 -0
- data/lib/no_response/models/shared/email_union.rb +23 -0
- data/lib/no_response/models/shared/email_union.rbi +9 -0
- data/lib/no_response/models/shared/failurereason.rb +24 -0
- data/lib/no_response/models/shared/failurereason.rbi +9 -0
- data/lib/no_response/models/shared/flow.rb +18 -0
- data/lib/no_response/models/shared/flow.rbi +9 -0
- data/lib/no_response/models/shared/freshness.rb +20 -0
- data/lib/no_response/models/shared/freshness.rbi +9 -0
- data/lib/no_response/models/shared/hookpoint.rb +19 -0
- data/lib/no_response/models/shared/hookpoint.rbi +9 -0
- data/lib/no_response/models/shared/identifierkind.rb +21 -0
- data/lib/no_response/models/shared/identifierkind.rbi +9 -0
- data/lib/no_response/models/shared/incompletereason.rb +23 -0
- data/lib/no_response/models/shared/incompletereason.rbi +9 -0
- data/lib/no_response/models/shared/incompletesource.rb +53 -0
- data/lib/no_response/models/shared/incompletesource.rbi +20 -0
- data/lib/no_response/models/shared/ipsummary.rb +61 -0
- data/lib/no_response/models/shared/ipsummary.rbi +26 -0
- data/lib/no_response/models/shared/ipsummarytype.rb +24 -0
- data/lib/no_response/models/shared/ipsummarytype.rbi +9 -0
- data/lib/no_response/models/shared/keyrotation.rb +79 -0
- data/lib/no_response/models/shared/keyrotation.rbi +44 -0
- data/lib/no_response/models/shared/keyrotationrequest.rb +33 -0
- data/lib/no_response/models/shared/keyrotationrequest.rbi +14 -0
- data/lib/no_response/models/shared/lane.rb +21 -0
- data/lib/no_response/models/shared/lane.rbi +9 -0
- data/lib/no_response/models/shared/linetype.rb +22 -0
- data/lib/no_response/models/shared/linetype.rbi +9 -0
- data/lib/no_response/models/shared/location.rb +23 -0
- data/lib/no_response/models/shared/location.rbi +9 -0
- data/lib/no_response/models/shared/location_union.rb +23 -0
- data/lib/no_response/models/shared/location_union.rbi +9 -0
- data/lib/no_response/models/shared/name_candidate.rb +23 -0
- data/lib/no_response/models/shared/name_candidate.rbi +9 -0
- data/lib/no_response/models/shared/name_candidate_union.rb +23 -0
- data/lib/no_response/models/shared/name_candidate_union.rbi +9 -0
- data/lib/no_response/models/shared/notfounderrorcode.rb +18 -0
- data/lib/no_response/models/shared/notfounderrorcode.rbi +9 -0
- data/lib/no_response/models/shared/outcome.rb +23 -0
- data/lib/no_response/models/shared/outcome.rbi +9 -0
- data/lib/no_response/models/shared/permissiondeniederrorcode.rb +18 -0
- data/lib/no_response/models/shared/permissiondeniederrorcode.rbi +9 -0
- data/lib/no_response/models/shared/phoneenrichment.rb +32 -0
- data/lib/no_response/models/shared/phoneenrichment.rbi +14 -0
- data/lib/no_response/models/shared/phoneenrichmentfields.rb +451 -0
- data/lib/no_response/models/shared/phoneenrichmentfields.rbi +212 -0
- data/lib/no_response/models/shared/platform.rb +18 -0
- data/lib/no_response/models/shared/platform.rbi +9 -0
- data/lib/no_response/models/shared/probleminvalidparam.rb +48 -0
- data/lib/no_response/models/shared/probleminvalidparam.rbi +26 -0
- data/lib/no_response/models/shared/ratelimiterrorcode.rb +18 -0
- data/lib/no_response/models/shared/ratelimiterrorcode.rbi +9 -0
- data/lib/no_response/models/shared/reasoncode.rb +52 -0
- data/lib/no_response/models/shared/reasoncode.rbi +9 -0
- data/lib/no_response/models/shared/reasonidentifier.rb +23 -0
- data/lib/no_response/models/shared/reasonidentifier.rbi +9 -0
- data/lib/no_response/models/shared/recommendation.rb +20 -0
- data/lib/no_response/models/shared/recommendation.rbi +9 -0
- data/lib/no_response/models/shared/responsemode.rb +16 -0
- data/lib/no_response/models/shared/responsemode.rbi +9 -0
- data/lib/no_response/models/shared/risk.rb +171 -0
- data/lib/no_response/models/shared/risk.rbi +80 -0
- data/lib/no_response/models/shared/riskconfidence.rb +20 -0
- data/lib/no_response/models/shared/riskconfidence.rbi +9 -0
- data/lib/no_response/models/shared/riskcoverage.rb +49 -0
- data/lib/no_response/models/shared/riskcoverage.rbi +26 -0
- data/lib/no_response/models/shared/riskdetails.rb +55 -0
- data/lib/no_response/models/shared/riskdetails.rbi +26 -0
- data/lib/no_response/models/shared/riskdetailsbreachname.rb +40 -0
- data/lib/no_response/models/shared/riskdetailsbreachname.rbi +20 -0
- data/lib/no_response/models/shared/riskdetailsphonename.rb +40 -0
- data/lib/no_response/models/shared/riskdetailsphonename.rbi +20 -0
- data/lib/no_response/models/shared/riskreason.rb +67 -0
- data/lib/no_response/models/shared/riskreason.rbi +26 -0
- data/lib/no_response/models/shared/risksummary.rb +73 -0
- data/lib/no_response/models/shared/risksummary.rbi +38 -0
- data/lib/no_response/models/shared/risksummaryemail.rb +55 -0
- data/lib/no_response/models/shared/risksummaryemail.rbi +26 -0
- data/lib/no_response/models/shared/risksummaryphone.rb +69 -0
- data/lib/no_response/models/shared/risksummaryphone.rbi +32 -0
- data/lib/no_response/models/shared/risksummaryusername.rb +41 -0
- data/lib/no_response/models/shared/risksummaryusername.rbi +20 -0
- data/lib/no_response/models/shared/scope.rb +21 -0
- data/lib/no_response/models/shared/scope.rbi +9 -0
- data/lib/no_response/models/shared/security.rb +32 -0
- data/lib/no_response/models/shared/security.rbi +14 -0
- data/lib/no_response/models/shared/signal.rb +149 -0
- data/lib/no_response/models/shared/signal.rbi +68 -0
- data/lib/no_response/models/shared/signaloutcome.rb +22 -0
- data/lib/no_response/models/shared/signaloutcome.rbi +9 -0
- data/lib/no_response/models/shared/social_profile.rb +23 -0
- data/lib/no_response/models/shared/social_profile.rbi +9 -0
- data/lib/no_response/models/shared/social_profile_union.rb +23 -0
- data/lib/no_response/models/shared/social_profile_union.rbi +9 -0
- data/lib/no_response/models/shared/status.rb +20 -0
- data/lib/no_response/models/shared/status.rbi +9 -0
- data/lib/no_response/models/shared/timezone.rb +23 -0
- data/lib/no_response/models/shared/timezone.rbi +9 -0
- data/lib/no_response/models/shared/timezone_union.rb +23 -0
- data/lib/no_response/models/shared/timezone_union.rbi +9 -0
- data/lib/no_response/models/shared/transport.rb +17 -0
- data/lib/no_response/models/shared/transport.rbi +9 -0
- data/lib/no_response/models/shared/website.rb +23 -0
- data/lib/no_response/models/shared/website.rbi +9 -0
- data/lib/no_response/models/shared/website_union.rb +23 -0
- data/lib/no_response/models/shared/website_union.rbi +9 -0
- data/lib/no_response/models/shared.rb +92 -0
- data/lib/no_response/noresponseclient.rb +110 -0
- data/lib/no_response/sdk_hooks/hooks.rb +97 -0
- data/lib/no_response/sdk_hooks/idempotency_key_hook.rb +25 -0
- data/lib/no_response/sdk_hooks/registration.rb +43 -0
- data/lib/no_response/sdk_hooks/types.rb +178 -0
- data/lib/no_response/sdkconfiguration.rb +107 -0
- data/lib/no_response/sdkconfiguration.rbi +83 -0
- data/lib/no_response/utils/forms.rb +230 -0
- data/lib/no_response/utils/headers.rb +80 -0
- data/lib/no_response/utils/query_params.rb +165 -0
- data/lib/no_response/utils/request_bodies.rb +77 -0
- data/lib/no_response/utils/retries.rb +137 -0
- data/lib/no_response/utils/security.rb +156 -0
- data/lib/no_response/utils/url.rb +122 -0
- data/lib/no_response/utils/utils.rb +243 -0
- data/lib/no_response/wait.rb +66 -0
- data/lib/no_response/webhooks.rb +177 -0
- data/lib/noresponse.rb +25 -0
- 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,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,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
|