noresponse 7.0.5 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/no_response/keys.rb +866 -0
- 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/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/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
|
@@ -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
|
|
@@ -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
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# One API key of your workspace. A key belongs to exactly one environment. key, the secret credential, is present only in the answer that created the key: NoResponse keeps a peppered digest of it, so store it now. Every other field is safe to show.
|
|
8
|
+
class Key
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
# The key's public id, a 26-character ULID.
|
|
13
|
+
field :id, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("id"), required: true}}
|
|
14
|
+
# The workspace id, which is also its live environment's workspace id; the test environment's is the same id with :test appended. A workspace created through the API is tnt_ and a 26-character ULID.
|
|
15
|
+
field(
|
|
16
|
+
:workspace_id,
|
|
17
|
+
::String,
|
|
18
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("workspace_id"), required: true}}
|
|
19
|
+
)
|
|
20
|
+
# The environment the key belongs to. A live key assesses with live sources; a test key answers from the deterministic simulator.
|
|
21
|
+
field(
|
|
22
|
+
:environment,
|
|
23
|
+
Models::Shared::KeyEnvironment,
|
|
24
|
+
{
|
|
25
|
+
'format_json': {
|
|
26
|
+
'letter_case': ::NoResponse::Utils.field_name("environment"),
|
|
27
|
+
required: true,
|
|
28
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::KeyEnvironment, false)
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
)
|
|
32
|
+
# The public start of the credential, nrk_<environment>_<key id>, which identifies the key in logs and secret stores without its secret.
|
|
33
|
+
field(
|
|
34
|
+
:prefix,
|
|
35
|
+
::String,
|
|
36
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("prefix"), required: true}}
|
|
37
|
+
)
|
|
38
|
+
# The key's scopes, each at most once.
|
|
39
|
+
field(
|
|
40
|
+
:scopes,
|
|
41
|
+
Crystalline::Array.new(Models::Shared::KeyScope),
|
|
42
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("scopes"), required: true}}
|
|
43
|
+
)
|
|
44
|
+
# active: the key authenticates. expired: a rotation's overlap window has ended (expires_at). revoked: the key was revoked (revoked_at) and answers 401.
|
|
45
|
+
field(
|
|
46
|
+
:status,
|
|
47
|
+
Models::Shared::KeyStatus,
|
|
48
|
+
{
|
|
49
|
+
'format_json': {
|
|
50
|
+
'letter_case': ::NoResponse::Utils.field_name("status"),
|
|
51
|
+
required: true,
|
|
52
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::KeyStatus, false)
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
field(
|
|
58
|
+
:created_at,
|
|
59
|
+
::String,
|
|
60
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("created_at"), required: true}}
|
|
61
|
+
)
|
|
62
|
+
# The external user id of the member who created the key through the console, or the prefix (nrk_<environment>_<key id>) of the management key that created it. Absent for a key NoResponse issued or a rotation made.
|
|
63
|
+
field(
|
|
64
|
+
:created_by,
|
|
65
|
+
Crystalline::Nilable.new(::String),
|
|
66
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("created_by")}}
|
|
67
|
+
)
|
|
68
|
+
# When a rotated key stops authenticating (POST /v1/keys/rotate). Absent for a key with no end.
|
|
69
|
+
field(
|
|
70
|
+
:expires_at,
|
|
71
|
+
Crystalline::Nilable.new(::String),
|
|
72
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("expires_at")}}
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
field(
|
|
76
|
+
:revoked_at,
|
|
77
|
+
Crystalline::Nilable.new(::String),
|
|
78
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("revoked_at")}}
|
|
79
|
+
)
|
|
80
|
+
# The external user id of the member who revoked the key through the console, or the prefix of the management key that revoked it. Absent when the key is not revoked or NoResponse revoked it.
|
|
81
|
+
field(
|
|
82
|
+
:revoked_by,
|
|
83
|
+
Crystalline::Nilable.new(::String),
|
|
84
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("revoked_by")}}
|
|
85
|
+
)
|
|
86
|
+
# The credential, nrk_<environment>_<key id>_<secret>. Present only in the 201 answer that created the key.
|
|
87
|
+
field(
|
|
88
|
+
:key,
|
|
89
|
+
Crystalline::Nilable.new(::String),
|
|
90
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("key")}}
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
sig {
|
|
94
|
+
params(
|
|
95
|
+
id: ::String,
|
|
96
|
+
workspace_id: ::String,
|
|
97
|
+
environment: Models::Shared::KeyEnvironment,
|
|
98
|
+
prefix: ::String,
|
|
99
|
+
scopes: T::Array[Models::Shared::KeyScope],
|
|
100
|
+
status: Models::Shared::KeyStatus,
|
|
101
|
+
created_at: ::String,
|
|
102
|
+
created_by: T.nilable(::String),
|
|
103
|
+
expires_at: T.nilable(::String),
|
|
104
|
+
revoked_at: T.nilable(::String),
|
|
105
|
+
revoked_by: T.nilable(::String),
|
|
106
|
+
key: T.nilable(::String)
|
|
107
|
+
)
|
|
108
|
+
.void
|
|
109
|
+
}
|
|
110
|
+
def initialize(
|
|
111
|
+
id:,
|
|
112
|
+
workspace_id:,
|
|
113
|
+
environment:,
|
|
114
|
+
prefix:,
|
|
115
|
+
scopes:,
|
|
116
|
+
status:,
|
|
117
|
+
created_at:,
|
|
118
|
+
created_by: nil,
|
|
119
|
+
expires_at: nil,
|
|
120
|
+
revoked_at: nil,
|
|
121
|
+
revoked_by: nil,
|
|
122
|
+
key: nil
|
|
123
|
+
)
|
|
124
|
+
@id = id
|
|
125
|
+
@workspace_id = workspace_id
|
|
126
|
+
@environment = environment
|
|
127
|
+
@prefix = prefix
|
|
128
|
+
@scopes = scopes
|
|
129
|
+
@status = status
|
|
130
|
+
@created_at = created_at
|
|
131
|
+
@created_by = created_by
|
|
132
|
+
@expires_at = expires_at
|
|
133
|
+
@revoked_at = revoked_at
|
|
134
|
+
@revoked_by = revoked_by
|
|
135
|
+
@key = key
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
139
|
+
def ==(other)
|
|
140
|
+
return false unless other.is_a?(self.class)
|
|
141
|
+
return false unless @id == other.id
|
|
142
|
+
return false unless @workspace_id == other.workspace_id
|
|
143
|
+
return false unless @environment == other.environment
|
|
144
|
+
return false unless @prefix == other.prefix
|
|
145
|
+
return false unless @scopes == other.scopes
|
|
146
|
+
return false unless @status == other.status
|
|
147
|
+
return false unless @created_at == other.created_at
|
|
148
|
+
return false unless @created_by == other.created_by
|
|
149
|
+
return false unless @expires_at == other.expires_at
|
|
150
|
+
return false unless @revoked_at == other.revoked_at
|
|
151
|
+
return false unless @revoked_by == other.revoked_by
|
|
152
|
+
return false unless @key == other.key
|
|
153
|
+
true
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
end
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::Key
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::Key
|
|
9
|
+
def id
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def id=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def workspace_id
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def workspace_id=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def environment
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def environment=(str_)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def prefix
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def prefix=(str_)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def scopes
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def scopes=(str_)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def status
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def status=(str_)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def created_at
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def created_at=(str_)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def created_by
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def created_by=(str_)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def expires_at
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def expires_at=(str_)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def revoked_at
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def revoked_at=(str_)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def revoked_by
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def revoked_by=(str_)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def key
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def key=(str_)
|
|
79
|
+
end
|
|
80
|
+
end
|
|
@@ -5,7 +5,7 @@ module NoResponse
|
|
|
5
5
|
module Models
|
|
6
6
|
module Shared
|
|
7
7
|
|
|
8
|
-
class
|
|
8
|
+
class KeyScope
|
|
9
9
|
include ::Crystalline::Enum
|
|
10
10
|
enums do
|
|
11
11
|
ASSESS = new("assess")
|
|
@@ -14,6 +14,7 @@ module NoResponse
|
|
|
14
14
|
WEBHOOKS = new("webhooks")
|
|
15
15
|
DETAILED = new("detailed")
|
|
16
16
|
INTEGRATIONS = new("integrations")
|
|
17
|
+
MANAGEMENT = new("management")
|
|
17
18
|
end
|
|
18
19
|
|
|
19
20
|
open!
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# typed: true
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
-
class NoResponse::Models::Shared::
|
|
4
|
+
class NoResponse::Models::Shared::KeyScope
|
|
5
5
|
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
-
class NoResponse::Models::Shared::
|
|
8
|
+
class NoResponse::Models::Shared::KeyScope
|
|
9
9
|
end
|