noresponse 7.0.5 → 7.1.1
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 +4 -4
- data/lib/no_response/keys.rb +866 -0
- data/lib/no_response/late_results.rb +5 -3
- data/lib/no_response/models/operations/createkey_request.rb +37 -0
- data/lib/no_response/models/operations/createkey_request.rbi +20 -0
- data/lib/no_response/models/operations/createkey_response.rb +32 -0
- data/lib/no_response/models/operations/createkey_response.rbi +20 -0
- data/lib/no_response/models/operations/getsettings_request.rb +41 -0
- data/lib/no_response/models/operations/getsettings_request.rbi +20 -0
- data/lib/no_response/models/operations/getsettings_response.rb +32 -0
- data/lib/no_response/models/operations/getsettings_response.rbi +20 -0
- data/lib/no_response/models/operations/listaccounts_request.rb +1 -1
- data/lib/no_response/models/operations/listkeys_request.rb +33 -0
- data/lib/no_response/models/operations/listkeys_request.rbi +14 -0
- data/lib/no_response/models/operations/listkeys_response.rb +32 -0
- data/lib/no_response/models/operations/listkeys_response.rbi +20 -0
- data/lib/no_response/models/operations/revokekey_request.rb +37 -0
- data/lib/no_response/models/operations/revokekey_request.rbi +20 -0
- data/lib/no_response/models/operations/revokekey_response.rb +32 -0
- data/lib/no_response/models/operations/revokekey_response.rbi +20 -0
- data/lib/no_response/models/operations/updatesettings_request.rb +52 -0
- data/lib/no_response/models/operations/updatesettings_request.rbi +26 -0
- data/lib/no_response/models/operations/updatesettings_response.rb +32 -0
- data/lib/no_response/models/operations/updatesettings_response.rbi +20 -0
- data/lib/no_response/models/operations.rb +10 -0
- data/lib/no_response/models/shared/admission.rb +19 -0
- data/lib/no_response/models/shared/admission.rbi +9 -0
- data/lib/no_response/models/shared/conflicterrorcode.rb +2 -0
- data/lib/no_response/models/shared/defaultdepth.rb +19 -0
- data/lib/no_response/models/shared/defaultdepth.rbi +9 -0
- data/lib/no_response/models/shared/enforcement.rb +1 -1
- data/lib/no_response/models/shared/enforcementaction.rb +2 -1
- data/lib/no_response/models/shared/enforcementrequest.rb +1 -1
- data/lib/no_response/models/shared/flowchange.rb +136 -0
- data/lib/no_response/models/shared/flowchange.rbi +62 -0
- data/lib/no_response/models/shared/flowsettings.rb +127 -0
- data/lib/no_response/models/shared/flowsettings.rbi +56 -0
- data/lib/no_response/models/shared/key.rb +158 -0
- data/lib/no_response/models/shared/key.rbi +80 -0
- data/lib/no_response/models/shared/{scope.rb → key_scope.rb} +2 -1
- data/lib/no_response/models/shared/{scope.rbi → key_scope.rbi} +2 -2
- data/lib/no_response/models/shared/keyenvironment.rb +19 -0
- data/lib/no_response/models/shared/keyenvironment.rbi +9 -0
- data/lib/no_response/models/shared/keylist.rb +32 -0
- data/lib/no_response/models/shared/keylist.rbi +14 -0
- data/lib/no_response/models/shared/keyrequest.rb +49 -0
- data/lib/no_response/models/shared/keyrequest.rbi +20 -0
- data/lib/no_response/models/shared/keyrequest_scope.rb +21 -0
- data/lib/no_response/models/shared/keyrequest_scope.rbi +9 -0
- data/lib/no_response/models/shared/keyrotation.rb +2 -2
- data/lib/no_response/models/shared/keyrotation_scope.rb +24 -0
- data/lib/no_response/models/shared/keyrotation_scope.rbi +9 -0
- data/lib/no_response/models/shared/keystatus.rb +20 -0
- data/lib/no_response/models/shared/keystatus.rbi +9 -0
- data/lib/no_response/models/shared/onexpiry.rb +20 -0
- data/lib/no_response/models/shared/onexpiry.rbi +9 -0
- data/lib/no_response/models/shared/permissiondeniederrorcode.rb +1 -0
- data/lib/no_response/models/shared/settings.rb +116 -0
- data/lib/no_response/models/shared/settings.rbi +56 -0
- data/lib/no_response/models/shared/settingsflows.rb +56 -0
- data/lib/no_response/models/shared/settingsflows.rbi +26 -0
- data/lib/no_response/models/shared/settingsrequest.rb +55 -0
- data/lib/no_response/models/shared/settingsrequest.rbi +26 -0
- data/lib/no_response/models/shared/settingsrequestflows.rb +65 -0
- data/lib/no_response/models/shared/settingsrequestflows.rbi +32 -0
- data/lib/no_response/models/shared/sourceid.rb +23 -0
- data/lib/no_response/models/shared/sourceid.rbi +9 -0
- data/lib/no_response/models/shared.rb +18 -1
- data/lib/no_response/noresponseclient.rb +2 -1
- data/lib/no_response/sdkconfiguration.rb +2 -2
- data/lib/no_response/settings.rb +633 -0
- data/lib/noresponse.rb +1 -0
- metadata +58 -3
|
@@ -7,6 +7,8 @@ module NoResponse
|
|
|
7
7
|
autoload :CreateAssessmentRequest, "no_response/models/operations/createassessment_request.rb"
|
|
8
8
|
autoload :CreateAssessmentResponse, "no_response/models/operations/createassessment_response.rb"
|
|
9
9
|
autoload :CreateIntegrationResponse, "no_response/models/operations/createintegration_response.rb"
|
|
10
|
+
autoload :CreateKeyRequest, "no_response/models/operations/createkey_request.rb"
|
|
11
|
+
autoload :CreateKeyResponse, "no_response/models/operations/createkey_response.rb"
|
|
10
12
|
autoload :CreateWebhookEndpointResponse, "no_response/models/operations/createwebhookendpoint_response.rb"
|
|
11
13
|
autoload :DeleteAccountRequest, "no_response/models/operations/deleteaccount_request.rb"
|
|
12
14
|
autoload :DeleteAccountResponse, "no_response/models/operations/deleteaccount_response.rb"
|
|
@@ -20,11 +22,15 @@ module NoResponse
|
|
|
20
22
|
autoload :GetAccountResponse, "no_response/models/operations/getaccount_response.rb"
|
|
21
23
|
autoload :GetAssessmentRequest, "no_response/models/operations/getassessment_request.rb"
|
|
22
24
|
autoload :GetAssessmentResponse, "no_response/models/operations/getassessment_response.rb"
|
|
25
|
+
autoload :GetSettingsRequest, "no_response/models/operations/getsettings_request.rb"
|
|
26
|
+
autoload :GetSettingsResponse, "no_response/models/operations/getsettings_response.rb"
|
|
23
27
|
autoload :ListAccountAssessmentsRequest, "no_response/models/operations/listaccountassessments_request.rb"
|
|
24
28
|
autoload :ListAccountAssessmentsResponse, "no_response/models/operations/listaccountassessments_response.rb"
|
|
25
29
|
autoload :ListAccountsRequest, "no_response/models/operations/listaccounts_request.rb"
|
|
26
30
|
autoload :ListAccountsResponse, "no_response/models/operations/listaccounts_response.rb"
|
|
27
31
|
autoload :ListIntegrationsResponse, "no_response/models/operations/listintegrations_response.rb"
|
|
32
|
+
autoload :ListKeysRequest, "no_response/models/operations/listkeys_request.rb"
|
|
33
|
+
autoload :ListKeysResponse, "no_response/models/operations/listkeys_response.rb"
|
|
28
34
|
autoload :ListWebhookDeliveriesRequest, "no_response/models/operations/listwebhookdeliveries_request.rb"
|
|
29
35
|
autoload :ListWebhookDeliveriesResponse, "no_response/models/operations/listwebhookdeliveries_response.rb"
|
|
30
36
|
autoload :ListWebhookEndpointsResponse, "no_response/models/operations/listwebhookendpoints_response.rb"
|
|
@@ -37,6 +43,8 @@ module NoResponse
|
|
|
37
43
|
autoload :RecordKeyUsageResponse, "no_response/models/operations/recordkeyusage_response.rb"
|
|
38
44
|
autoload :ReplayWebhookDeliveryRequest, "no_response/models/operations/replaywebhookdelivery_request.rb"
|
|
39
45
|
autoload :ReplayWebhookDeliveryResponse, "no_response/models/operations/replaywebhookdelivery_response.rb"
|
|
46
|
+
autoload :RevokeKeyRequest, "no_response/models/operations/revokekey_request.rb"
|
|
47
|
+
autoload :RevokeKeyResponse, "no_response/models/operations/revokekey_response.rb"
|
|
40
48
|
autoload :RotateApiKeyResponse, "no_response/models/operations/rotateapikey_response.rb"
|
|
41
49
|
autoload :RotateIntegrationSecretRequest, "no_response/models/operations/rotateintegrationsecret_request.rb"
|
|
42
50
|
autoload :RotateIntegrationSecretResponse, "no_response/models/operations/rotateintegrationsecret_response.rb"
|
|
@@ -44,6 +52,8 @@ module NoResponse
|
|
|
44
52
|
autoload :RotateWebhookSigningKeyResponse, "no_response/models/operations/rotatewebhooksigningkey_response.rb"
|
|
45
53
|
autoload :SendWebhookTestEventRequest, "no_response/models/operations/sendwebhooktestevent_request.rb"
|
|
46
54
|
autoload :SendWebhookTestEventResponse, "no_response/models/operations/sendwebhooktestevent_response.rb"
|
|
55
|
+
autoload :UpdateSettingsRequest, "no_response/models/operations/updatesettings_request.rb"
|
|
56
|
+
autoload :UpdateSettingsResponse, "no_response/models/operations/updatesettings_response.rb"
|
|
47
57
|
end
|
|
48
58
|
end
|
|
49
59
|
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# Admission - immediate (the default): an assessment of this flow is decided from the evidence its answer has, and later evidence may change the decision. held: while the account's current assessment of this flow has not completed, the account's decision for the flow is held, and the final decision arrives as account.risk_changed when the investigation completes or hold_seconds pass, whichever is first. Each flow has its own admission.
|
|
8
|
+
class Admission
|
|
9
|
+
include ::Crystalline::Enum
|
|
10
|
+
enums do
|
|
11
|
+
IMMEDIATE = new("immediate")
|
|
12
|
+
HELD = new("held")
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
open!
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -14,6 +14,8 @@ module NoResponse
|
|
|
14
14
|
WEBHOOK_ENDPOINT_UNVERIFIED = new("webhook_endpoint_unverified")
|
|
15
15
|
TOO_MANY_INTEGRATIONS = new("too_many_integrations")
|
|
16
16
|
RISK_VERSION_AHEAD = new("risk_version_ahead")
|
|
17
|
+
KEY_LIMIT_REACHED = new("key_limit_reached")
|
|
18
|
+
SELF_REVOCATION = new("self_revocation")
|
|
17
19
|
end
|
|
18
20
|
|
|
19
21
|
open!
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# DefaultDepth - The depth a request for this flow that names none is served at. Defaults: full for account_creation and purchase, quick for login.
|
|
8
|
+
class DefaultDepth
|
|
9
|
+
include ::Crystalline::Enum
|
|
10
|
+
enums do
|
|
11
|
+
QUICK = new("quick")
|
|
12
|
+
FULL = new("full")
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
open!
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -35,7 +35,7 @@ module NoResponse
|
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
)
|
|
38
|
-
# What the workspace did in its identity provider: revoke_sessions (signed the account out everywhere), restrict (limited what the account can do), unrestrict (lifted an earlier restriction), fail_onboarding (stopped an account that was still onboarding), reject_activation (refused to activate a provisional account) or none (decided to take no action).
|
|
38
|
+
# What the workspace did in its identity provider: revoke_sessions (signed the account out everywhere), restrict (limited what the account can do), unrestrict (lifted an earlier restriction), fail_onboarding (stopped an account that was still onboarding), reject_activation (refused to activate a provisional account), activate (let a held onboarding or provisional account in) or none (decided to take no action).
|
|
39
39
|
field(
|
|
40
40
|
:action,
|
|
41
41
|
Models::Shared::EnforcementAction,
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
module NoResponse
|
|
5
5
|
module Models
|
|
6
6
|
module Shared
|
|
7
|
-
# EnforcementAction - What the workspace did in its identity provider: revoke_sessions (signed the account out everywhere), restrict (limited what the account can do), unrestrict (lifted an earlier restriction), fail_onboarding (stopped an account that was still onboarding), reject_activation (refused to activate a provisional account) or none (decided to take no action).
|
|
7
|
+
# EnforcementAction - What the workspace did in its identity provider: revoke_sessions (signed the account out everywhere), restrict (limited what the account can do), unrestrict (lifted an earlier restriction), fail_onboarding (stopped an account that was still onboarding), reject_activation (refused to activate a provisional account), activate (let a held onboarding or provisional account in) or none (decided to take no action).
|
|
8
8
|
class EnforcementAction
|
|
9
9
|
include ::Crystalline::Enum
|
|
10
10
|
enums do
|
|
@@ -13,6 +13,7 @@ module NoResponse
|
|
|
13
13
|
UNRESTRICT = new("unrestrict")
|
|
14
14
|
FAIL_ONBOARDING = new("fail_onboarding")
|
|
15
15
|
REJECT_ACTIVATION = new("reject_activation")
|
|
16
|
+
ACTIVATE = new("activate")
|
|
16
17
|
NONE = new("none")
|
|
17
18
|
end
|
|
18
19
|
|
|
@@ -27,7 +27,7 @@ module NoResponse
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
)
|
|
30
|
-
# What the workspace did in its identity provider: revoke_sessions (signed the account out everywhere), restrict (limited what the account can do), unrestrict (lifted an earlier restriction), fail_onboarding (stopped an account that was still onboarding), reject_activation (refused to activate a provisional account) or none (decided to take no action).
|
|
30
|
+
# What the workspace did in its identity provider: revoke_sessions (signed the account out everywhere), restrict (limited what the account can do), unrestrict (lifted an earlier restriction), fail_onboarding (stopped an account that was still onboarding), reject_activation (refused to activate a provisional account), activate (let a held onboarding or provisional account in) or none (decided to take no action).
|
|
31
31
|
field(
|
|
32
32
|
:action,
|
|
33
33
|
Models::Shared::EnforcementAction,
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# A change to one flow. A field left out keeps the value in force. Thresholds set on login or purchase start from the values in force, account_creation's while it inherits them. After the change, 0 < step_up < review <= 100 and block is off or review <= block <= 100.
|
|
8
|
+
class FlowChange
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
field(
|
|
13
|
+
:step_up,
|
|
14
|
+
Crystalline::Nilable.new(::Integer),
|
|
15
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("step_up")}}
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
field(
|
|
19
|
+
:review,
|
|
20
|
+
Crystalline::Nilable.new(::Integer),
|
|
21
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("review")}}
|
|
22
|
+
)
|
|
23
|
+
# The depth a request for this flow that names none is served at. Defaults: full for account_creation and purchase, quick for login.
|
|
24
|
+
field(
|
|
25
|
+
:default_depth,
|
|
26
|
+
Crystalline::Nilable.new(Models::Shared::DefaultDepth),
|
|
27
|
+
{
|
|
28
|
+
'format_json': {
|
|
29
|
+
'letter_case': ::NoResponse::Utils.field_name("default_depth"),
|
|
30
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::DefaultDepth, true)
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
)
|
|
34
|
+
# Login or purchase only: drop the flow's own thresholds so it uses account_creation's again. Not combined with step_up, review or block. Send true; false is refused.
|
|
35
|
+
field(
|
|
36
|
+
:inherits_account_creation,
|
|
37
|
+
Crystalline::Nilable.new(Crystalline::Boolean.new),
|
|
38
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("inherits_account_creation")}}
|
|
39
|
+
)
|
|
40
|
+
# Alias of inherits_account_creation, still accepted. Send true; false is refused.
|
|
41
|
+
#
|
|
42
|
+
# @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
|
|
43
|
+
field(
|
|
44
|
+
:inherits_signup,
|
|
45
|
+
Crystalline::Nilable.new(Crystalline::Boolean.new),
|
|
46
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("inherits_signup")}}
|
|
47
|
+
)
|
|
48
|
+
# immediate (the default): an assessment of this flow is decided from the evidence its answer has, and later evidence may change the decision. held: while the account's current assessment of this flow has not completed, the account's decision for the flow is held, and the final decision arrives as account.risk_changed when the investigation completes or hold_seconds pass, whichever is first. Each flow has its own admission.
|
|
49
|
+
field(
|
|
50
|
+
:admission,
|
|
51
|
+
Crystalline::Nilable.new(Models::Shared::Admission),
|
|
52
|
+
{
|
|
53
|
+
'format_json': {
|
|
54
|
+
'letter_case': ::NoResponse::Utils.field_name("admission"),
|
|
55
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::Admission, true)
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
)
|
|
59
|
+
# How long a held flow's assessment is held after it was created, 30 to 86400 seconds (default 300). Kept while the flow is immediate.
|
|
60
|
+
field(
|
|
61
|
+
:hold_seconds,
|
|
62
|
+
Crystalline::Nilable.new(::Integer),
|
|
63
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("hold_seconds")}}
|
|
64
|
+
)
|
|
65
|
+
# The decision a held assessment takes when hold_seconds pass before its investigation completes, unless the evidence so far gives a stricter one (default review). It is announced as account.risk_changed like any other change, so an expired hold is always announced. A hosted provider hook, which cannot wait, answers a held account by it at once: deny for block, allow otherwise. Kept while the flow is immediate.
|
|
66
|
+
field(
|
|
67
|
+
:on_expiry,
|
|
68
|
+
Crystalline::Nilable.new(Models::Shared::OnExpiry),
|
|
69
|
+
{
|
|
70
|
+
'format_json': {
|
|
71
|
+
'letter_case': ::NoResponse::Utils.field_name("on_expiry"),
|
|
72
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::OnExpiry, true)
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
)
|
|
76
|
+
# The score from which the decision is block; null turns blocking off.
|
|
77
|
+
field(
|
|
78
|
+
:block,
|
|
79
|
+
Crystalline::Nilable.new(::Integer),
|
|
80
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("block")}}
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
sig {
|
|
84
|
+
params(
|
|
85
|
+
step_up: T.nilable(::Integer),
|
|
86
|
+
review: T.nilable(::Integer),
|
|
87
|
+
default_depth: T.nilable(Models::Shared::DefaultDepth),
|
|
88
|
+
inherits_account_creation: T.nilable(T::Boolean),
|
|
89
|
+
inherits_signup: T.nilable(T::Boolean),
|
|
90
|
+
admission: T.nilable(Models::Shared::Admission),
|
|
91
|
+
hold_seconds: T.nilable(::Integer),
|
|
92
|
+
on_expiry: T.nilable(Models::Shared::OnExpiry),
|
|
93
|
+
block: T.nilable(::Integer)
|
|
94
|
+
)
|
|
95
|
+
.void
|
|
96
|
+
}
|
|
97
|
+
def initialize(
|
|
98
|
+
step_up: nil,
|
|
99
|
+
review: nil,
|
|
100
|
+
default_depth: nil,
|
|
101
|
+
inherits_account_creation: nil,
|
|
102
|
+
inherits_signup: nil,
|
|
103
|
+
admission: nil,
|
|
104
|
+
hold_seconds: nil,
|
|
105
|
+
on_expiry: nil,
|
|
106
|
+
block: nil
|
|
107
|
+
)
|
|
108
|
+
@step_up = step_up
|
|
109
|
+
@review = review
|
|
110
|
+
@default_depth = default_depth
|
|
111
|
+
@inherits_account_creation = inherits_account_creation
|
|
112
|
+
@inherits_signup = inherits_signup
|
|
113
|
+
@admission = admission
|
|
114
|
+
@hold_seconds = hold_seconds
|
|
115
|
+
@on_expiry = on_expiry
|
|
116
|
+
@block = block
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
120
|
+
def ==(other)
|
|
121
|
+
return false unless other.is_a?(self.class)
|
|
122
|
+
return false unless @step_up == other.step_up
|
|
123
|
+
return false unless @review == other.review
|
|
124
|
+
return false unless @default_depth == other.default_depth
|
|
125
|
+
return false unless @inherits_account_creation == other.inherits_account_creation
|
|
126
|
+
return false unless @inherits_signup == other.inherits_signup
|
|
127
|
+
return false unless @admission == other.admission
|
|
128
|
+
return false unless @hold_seconds == other.hold_seconds
|
|
129
|
+
return false unless @on_expiry == other.on_expiry
|
|
130
|
+
return false unless @block == other.block
|
|
131
|
+
true
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::FlowChange
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::FlowChange
|
|
9
|
+
def step_up
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def step_up=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def review
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def review=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def default_depth
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def default_depth=(str_)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def inherits_account_creation
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def inherits_account_creation=(str_)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def inherits_signup
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def inherits_signup=(str_)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def admission
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def admission=(str_)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def hold_seconds
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def hold_seconds=(str_)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def on_expiry
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def on_expiry=(str_)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def block
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def block=(str_)
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# One flow's policy in force. A score below step_up is allow, below review step_up, and from review review; from block, when present, the decision is block. admission says when the flow's decision is final.
|
|
8
|
+
class FlowSettings
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
field(
|
|
13
|
+
:step_up,
|
|
14
|
+
::Integer,
|
|
15
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("step_up"), required: true}}
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
field(
|
|
19
|
+
:review,
|
|
20
|
+
::Integer,
|
|
21
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("review"), required: true}}
|
|
22
|
+
)
|
|
23
|
+
# The depth a request for this flow that names none is served at. Defaults: full for account_creation and purchase, quick for login.
|
|
24
|
+
field(
|
|
25
|
+
:default_depth,
|
|
26
|
+
Models::Shared::DefaultDepth,
|
|
27
|
+
{
|
|
28
|
+
'format_json': {
|
|
29
|
+
'letter_case': ::NoResponse::Utils.field_name("default_depth"),
|
|
30
|
+
required: true,
|
|
31
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::DefaultDepth, false)
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
)
|
|
35
|
+
# true while this flow has no thresholds of its own and uses account_creation's, the default for login and purchase. Always false for signup.
|
|
36
|
+
field(
|
|
37
|
+
:inherits_account_creation,
|
|
38
|
+
Crystalline::Boolean.new,
|
|
39
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("inherits_account_creation"), required: true}}
|
|
40
|
+
)
|
|
41
|
+
# immediate (the default): an assessment of this flow is decided from the evidence its answer has, and later evidence may change the decision. held: while the account's current assessment of this flow has not completed, the account's decision for the flow is held, and the final decision arrives as account.risk_changed when the investigation completes or hold_seconds pass, whichever is first. Each flow has its own admission.
|
|
42
|
+
field(
|
|
43
|
+
:admission,
|
|
44
|
+
Models::Shared::Admission,
|
|
45
|
+
{
|
|
46
|
+
'format_json': {
|
|
47
|
+
'letter_case': ::NoResponse::Utils.field_name("admission"),
|
|
48
|
+
required: true,
|
|
49
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::Admission, false)
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
)
|
|
53
|
+
# How long a held flow's assessment is held after it was created, 30 to 86400 seconds (default 300). Kept while the flow is immediate.
|
|
54
|
+
field(
|
|
55
|
+
:hold_seconds,
|
|
56
|
+
::Integer,
|
|
57
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("hold_seconds"), required: true}}
|
|
58
|
+
)
|
|
59
|
+
# The decision a held assessment takes when hold_seconds pass before its investigation completes, unless the evidence so far gives a stricter one (default review). It is announced as account.risk_changed like any other change, so an expired hold is always announced. A hosted provider hook, which cannot wait, answers a held account by it at once: deny for block, allow otherwise. Kept while the flow is immediate.
|
|
60
|
+
field(
|
|
61
|
+
:on_expiry,
|
|
62
|
+
Models::Shared::OnExpiry,
|
|
63
|
+
{
|
|
64
|
+
'format_json': {
|
|
65
|
+
'letter_case': ::NoResponse::Utils.field_name("on_expiry"),
|
|
66
|
+
required: true,
|
|
67
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::OnExpiry, false)
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
)
|
|
71
|
+
# The score from which the decision is block. Absent while blocking is off, the default.
|
|
72
|
+
field(
|
|
73
|
+
:block,
|
|
74
|
+
Crystalline::Nilable.new(::Integer),
|
|
75
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("block")}}
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
sig {
|
|
79
|
+
params(
|
|
80
|
+
step_up: ::Integer,
|
|
81
|
+
review: ::Integer,
|
|
82
|
+
default_depth: Models::Shared::DefaultDepth,
|
|
83
|
+
inherits_account_creation: T::Boolean,
|
|
84
|
+
admission: Models::Shared::Admission,
|
|
85
|
+
hold_seconds: ::Integer,
|
|
86
|
+
on_expiry: Models::Shared::OnExpiry,
|
|
87
|
+
block: T.nilable(::Integer)
|
|
88
|
+
)
|
|
89
|
+
.void
|
|
90
|
+
}
|
|
91
|
+
def initialize(
|
|
92
|
+
step_up:,
|
|
93
|
+
review:,
|
|
94
|
+
default_depth:,
|
|
95
|
+
inherits_account_creation:,
|
|
96
|
+
admission:,
|
|
97
|
+
hold_seconds:,
|
|
98
|
+
on_expiry:,
|
|
99
|
+
block: nil
|
|
100
|
+
)
|
|
101
|
+
@step_up = step_up
|
|
102
|
+
@review = review
|
|
103
|
+
@default_depth = default_depth
|
|
104
|
+
@inherits_account_creation = inherits_account_creation
|
|
105
|
+
@admission = admission
|
|
106
|
+
@hold_seconds = hold_seconds
|
|
107
|
+
@on_expiry = on_expiry
|
|
108
|
+
@block = block
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
112
|
+
def ==(other)
|
|
113
|
+
return false unless other.is_a?(self.class)
|
|
114
|
+
return false unless @step_up == other.step_up
|
|
115
|
+
return false unless @review == other.review
|
|
116
|
+
return false unless @default_depth == other.default_depth
|
|
117
|
+
return false unless @inherits_account_creation == other.inherits_account_creation
|
|
118
|
+
return false unless @admission == other.admission
|
|
119
|
+
return false unless @hold_seconds == other.hold_seconds
|
|
120
|
+
return false unless @on_expiry == other.on_expiry
|
|
121
|
+
return false unless @block == other.block
|
|
122
|
+
true
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::FlowSettings
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::FlowSettings
|
|
9
|
+
def step_up
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def step_up=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def review
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def review=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def default_depth
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def default_depth=(str_)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def inherits_account_creation
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def inherits_account_creation=(str_)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def admission
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def admission=(str_)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def hold_seconds
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def hold_seconds=(str_)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def on_expiry
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def on_expiry=(str_)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def block
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def block=(str_)
|
|
55
|
+
end
|
|
56
|
+
end
|