noresponse 9.4.3 → 9.5.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/accounts.rb +2 -2
- data/lib/no_response/assessments.rb +1 -1
- data/lib/no_response/models/shared/accountdirectorypage.rb +1 -1
- data/lib/no_response/models/shared/accountdirectorypageitem.rb +28 -2
- data/lib/no_response/models/shared/accountdirectorypageitem.rbi +12 -0
- data/lib/no_response/models/shared/accountdirectorysearchrequest.rb +29 -3
- data/lib/no_response/models/shared/accountdirectorysearchrequest.rbi +12 -0
- data/lib/no_response/models/shared/assessmentsearchitem.rb +30 -2
- data/lib/no_response/models/shared/assessmentsearchitem.rbi +12 -0
- data/lib/no_response/models/shared/assessmentsearchrequest.rb +22 -2
- data/lib/no_response/models/shared/assessmentsearchrequest.rbi +12 -0
- data/lib/no_response/models/shared/identifierexpression.rb +47 -0
- data/lib/no_response/models/shared/identifierexpression.rbi +20 -0
- data/lib/no_response/models/shared/identifierexpressionleaf.rb +33 -0
- data/lib/no_response/models/shared/identifierexpressionleaf.rbi +14 -0
- data/lib/no_response/models/shared/identifierexpressionnode.rb +56 -0
- data/lib/no_response/models/shared/identifierexpressionnode.rbi +26 -0
- data/lib/no_response/models/shared/identifierexpressionnodelevelone.rb +56 -0
- data/lib/no_response/models/shared/identifierexpressionnodelevelone.rbi +26 -0
- data/lib/no_response/models/shared/identifierexpressionnodeleveltwo.rb +56 -0
- data/lib/no_response/models/shared/identifierexpressionnodeleveltwo.rbi +26 -0
- data/lib/no_response/models/shared/identifiermatch.rb +105 -0
- data/lib/no_response/models/shared/identifiermatch.rbi +44 -0
- data/lib/no_response/models/shared/identifiersearch.rb +80 -0
- data/lib/no_response/models/shared/identifiersearch.rbi +32 -0
- data/lib/no_response/models/shared/identifiersearchkind.rb +20 -0
- data/lib/no_response/models/shared/identifiersearchkind.rbi +9 -0
- data/lib/no_response/models/shared/identifiertermmatch.rb +114 -0
- data/lib/no_response/models/shared/identifiertermmatch.rbi +50 -0
- data/lib/no_response/models/shared/match.rb +20 -0
- data/lib/no_response/models/shared/match.rbi +9 -0
- data/lib/no_response/models/shared/namespace.rb +18 -0
- data/lib/no_response/models/shared/namespace.rbi +9 -0
- data/lib/no_response/models/shared/provenance.rb +18 -0
- data/lib/no_response/models/shared/provenance.rbi +9 -0
- data/lib/no_response/models/shared/scope_enum.rb +16 -0
- data/lib/no_response/models/shared/scope_enum.rbi +9 -0
- data/lib/no_response/models/shared.rb +13 -0
- data/lib/no_response/sdkconfiguration.rb +2 -2
- metadata +28 -2
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
|
|
8
|
+
class IdentifierExpressionNodeLevelOne
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
# One customer-submitted identifier. Defaults to exact comparison of the original submitted value. canonical uses the supported identifier normalisation without an ownership claim: email preserves local-part case, NFC-normalises it and lowercases the domain without removing dots or tags; phone uses international E.164 without extensions or an inferred region; username uses NFC and Unicode case folding within the customer namespace. mailbox is email-only and explicitly selects existing list rules: case-insensitive, remove +tag, and ignore local-part dots at gmail.com and googlemail.com; googlemail.com maps to gmail.com. Username requires namespace customer. Email and phone forbid namespace. Source-discovered identifiers and platform handles are not searched. Unsupported kinds, namespaces, modes and invalid values return 400. Search equality does not establish verified ownership or merge accounts.
|
|
13
|
+
field(
|
|
14
|
+
:term,
|
|
15
|
+
Crystalline::Nilable.new(Models::Shared::IdentifierSearch),
|
|
16
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("term")}}
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
field(
|
|
20
|
+
:and_,
|
|
21
|
+
Crystalline::Nilable.new(Crystalline::Array.new(Models::Shared::IdentifierExpressionLeaf)),
|
|
22
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("and")}}
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
field(
|
|
26
|
+
:or_,
|
|
27
|
+
Crystalline::Nilable.new(Crystalline::Array.new(Models::Shared::IdentifierExpressionLeaf)),
|
|
28
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("or")}}
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
sig {
|
|
32
|
+
params(
|
|
33
|
+
term: T.nilable(Models::Shared::IdentifierSearch),
|
|
34
|
+
and_: T.nilable(T::Array[Models::Shared::IdentifierExpressionLeaf]),
|
|
35
|
+
or_: T.nilable(T::Array[Models::Shared::IdentifierExpressionLeaf])
|
|
36
|
+
)
|
|
37
|
+
.void
|
|
38
|
+
}
|
|
39
|
+
def initialize(term: nil, and_: nil, or_: nil)
|
|
40
|
+
@term = term
|
|
41
|
+
@and_ = and_
|
|
42
|
+
@or_ = or_
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
46
|
+
def ==(other)
|
|
47
|
+
return false unless other.is_a?(self.class)
|
|
48
|
+
return false unless @term == other.term
|
|
49
|
+
return false unless @and_ == other.and_
|
|
50
|
+
return false unless @or_ == other.or_
|
|
51
|
+
true
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::IdentifierExpressionNodeLevelOne
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::IdentifierExpressionNodeLevelOne
|
|
9
|
+
def term
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def term=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def and_
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def and_=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def or_
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def or_=(str_)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
|
|
8
|
+
class IdentifierExpressionNodeLevelTwo
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
# One customer-submitted identifier. Defaults to exact comparison of the original submitted value. canonical uses the supported identifier normalisation without an ownership claim: email preserves local-part case, NFC-normalises it and lowercases the domain without removing dots or tags; phone uses international E.164 without extensions or an inferred region; username uses NFC and Unicode case folding within the customer namespace. mailbox is email-only and explicitly selects existing list rules: case-insensitive, remove +tag, and ignore local-part dots at gmail.com and googlemail.com; googlemail.com maps to gmail.com. Username requires namespace customer. Email and phone forbid namespace. Source-discovered identifiers and platform handles are not searched. Unsupported kinds, namespaces, modes and invalid values return 400. Search equality does not establish verified ownership or merge accounts.
|
|
13
|
+
field(
|
|
14
|
+
:term,
|
|
15
|
+
Crystalline::Nilable.new(Models::Shared::IdentifierSearch),
|
|
16
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("term")}}
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
field(
|
|
20
|
+
:and_,
|
|
21
|
+
Crystalline::Nilable.new(Crystalline::Array.new(Models::Shared::IdentifierExpressionNodeLevelOne)),
|
|
22
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("and")}}
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
field(
|
|
26
|
+
:or_,
|
|
27
|
+
Crystalline::Nilable.new(Crystalline::Array.new(Models::Shared::IdentifierExpressionNodeLevelOne)),
|
|
28
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("or")}}
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
sig {
|
|
32
|
+
params(
|
|
33
|
+
term: T.nilable(Models::Shared::IdentifierSearch),
|
|
34
|
+
and_: T.nilable(T::Array[Models::Shared::IdentifierExpressionNodeLevelOne]),
|
|
35
|
+
or_: T.nilable(T::Array[Models::Shared::IdentifierExpressionNodeLevelOne])
|
|
36
|
+
)
|
|
37
|
+
.void
|
|
38
|
+
}
|
|
39
|
+
def initialize(term: nil, and_: nil, or_: nil)
|
|
40
|
+
@term = term
|
|
41
|
+
@and_ = and_
|
|
42
|
+
@or_ = or_
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
46
|
+
def ==(other)
|
|
47
|
+
return false unless other.is_a?(self.class)
|
|
48
|
+
return false unless @term == other.term
|
|
49
|
+
return false unless @and_ == other.and_
|
|
50
|
+
return false unless @or_ == other.or_
|
|
51
|
+
true
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::IdentifierExpressionNodeLevelTwo
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::IdentifierExpressionNodeLevelTwo
|
|
9
|
+
def term
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def term=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def and_
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def and_=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def or_
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def or_=(str_)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# Why this result matched a typed identifier search. value is the original value submitted in assessment_id. Provenance records a customer submission, not a source discovery or verified ownership. Equality is deterministic and has no inferred confidence score. An account result names its newest retained matching assessment, which can differ from latest.
|
|
8
|
+
class IdentifierMatch
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
field(
|
|
13
|
+
:kind,
|
|
14
|
+
Models::Shared::IdentifierSearchKind,
|
|
15
|
+
{
|
|
16
|
+
'format_json': {
|
|
17
|
+
'letter_case': ::NoResponse::Utils.field_name("kind"),
|
|
18
|
+
required: true,
|
|
19
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::IdentifierSearchKind, false)
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
field(
|
|
25
|
+
:value,
|
|
26
|
+
::String,
|
|
27
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("value"), required: true}}
|
|
28
|
+
)
|
|
29
|
+
# exact compares the original submitted value; canonical uses identifier-specific normalisation; mailbox explicitly selects the email alias rules used by lists.
|
|
30
|
+
field(
|
|
31
|
+
:match_basis,
|
|
32
|
+
Models::Shared::Match,
|
|
33
|
+
{
|
|
34
|
+
'format_json': {
|
|
35
|
+
'letter_case': ::NoResponse::Utils.field_name("match_basis"),
|
|
36
|
+
required: true,
|
|
37
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::Match, false)
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
)
|
|
41
|
+
# Customer-submitted input. It does not mean the customer or NoResponse verified ownership.
|
|
42
|
+
field(
|
|
43
|
+
:provenance,
|
|
44
|
+
Models::Shared::Provenance,
|
|
45
|
+
{
|
|
46
|
+
'format_json': {
|
|
47
|
+
'letter_case': ::NoResponse::Utils.field_name("provenance"),
|
|
48
|
+
required: true,
|
|
49
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::Provenance, false)
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
)
|
|
53
|
+
# Opaque, server-assigned assessment id: 'asm_' and a 26-character Crockford base32 ULID. Unique within the workspace; another workspace's assessment id answers 404.
|
|
54
|
+
field(
|
|
55
|
+
:assessment_id,
|
|
56
|
+
::String,
|
|
57
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("assessment_id"), required: true}}
|
|
58
|
+
)
|
|
59
|
+
# Required for username: the username submitted by this customer in this workspace/environment. It does not name or join a source platform. Omit for email and phone.
|
|
60
|
+
field(
|
|
61
|
+
:namespace,
|
|
62
|
+
Crystalline::Nilable.new(Models::Shared::Namespace),
|
|
63
|
+
{
|
|
64
|
+
'format_json': {
|
|
65
|
+
'letter_case': ::NoResponse::Utils.field_name("namespace"),
|
|
66
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::Namespace, true)
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
sig {
|
|
72
|
+
params(
|
|
73
|
+
kind: Models::Shared::IdentifierSearchKind,
|
|
74
|
+
value: ::String,
|
|
75
|
+
match_basis: Models::Shared::Match,
|
|
76
|
+
provenance: Models::Shared::Provenance,
|
|
77
|
+
assessment_id: ::String,
|
|
78
|
+
namespace: T.nilable(Models::Shared::Namespace)
|
|
79
|
+
)
|
|
80
|
+
.void
|
|
81
|
+
}
|
|
82
|
+
def initialize(kind:, value:, match_basis:, provenance:, assessment_id:, namespace: nil)
|
|
83
|
+
@kind = kind
|
|
84
|
+
@value = value
|
|
85
|
+
@match_basis = match_basis
|
|
86
|
+
@provenance = provenance
|
|
87
|
+
@assessment_id = assessment_id
|
|
88
|
+
@namespace = namespace
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
92
|
+
def ==(other)
|
|
93
|
+
return false unless other.is_a?(self.class)
|
|
94
|
+
return false unless @kind == other.kind
|
|
95
|
+
return false unless @value == other.value
|
|
96
|
+
return false unless @match_basis == other.match_basis
|
|
97
|
+
return false unless @provenance == other.provenance
|
|
98
|
+
return false unless @assessment_id == other.assessment_id
|
|
99
|
+
return false unless @namespace == other.namespace
|
|
100
|
+
true
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::IdentifierMatch
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::IdentifierMatch
|
|
9
|
+
def kind
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def kind=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def value
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def value=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def match_basis
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def match_basis=(str_)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def provenance
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def provenance=(str_)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def assessment_id
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def assessment_id=(str_)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def namespace
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def namespace=(str_)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# One customer-submitted identifier. Defaults to exact comparison of the original submitted value. canonical uses the supported identifier normalisation without an ownership claim: email preserves local-part case, NFC-normalises it and lowercases the domain without removing dots or tags; phone uses international E.164 without extensions or an inferred region; username uses NFC and Unicode case folding within the customer namespace. mailbox is email-only and explicitly selects existing list rules: case-insensitive, remove +tag, and ignore local-part dots at gmail.com and googlemail.com; googlemail.com maps to gmail.com. Username requires namespace customer. Email and phone forbid namespace. Source-discovered identifiers and platform handles are not searched. Unsupported kinds, namespaces, modes and invalid values return 400. Search equality does not establish verified ownership or merge accounts.
|
|
8
|
+
class IdentifierSearch
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
field(
|
|
13
|
+
:kind,
|
|
14
|
+
Models::Shared::IdentifierSearchKind,
|
|
15
|
+
{
|
|
16
|
+
'format_json': {
|
|
17
|
+
'letter_case': ::NoResponse::Utils.field_name("kind"),
|
|
18
|
+
required: true,
|
|
19
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::IdentifierSearchKind, false)
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
)
|
|
23
|
+
# The comparison value. Stored original identifiers remain unchanged. An invalid identifier is refused instead of returning an empty result.
|
|
24
|
+
field(
|
|
25
|
+
:value,
|
|
26
|
+
::String,
|
|
27
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("value"), required: true}}
|
|
28
|
+
)
|
|
29
|
+
# exact compares the original submitted value; canonical uses identifier-specific normalisation; mailbox explicitly selects the email alias rules used by lists.
|
|
30
|
+
field(
|
|
31
|
+
:match,
|
|
32
|
+
Crystalline::Nilable.new(Models::Shared::Match),
|
|
33
|
+
{
|
|
34
|
+
'format_json': {
|
|
35
|
+
'letter_case': ::NoResponse::Utils.field_name("match"),
|
|
36
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::Match, true)
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
)
|
|
40
|
+
# Required for username: the username submitted by this customer in this workspace/environment. It does not name or join a source platform. Omit for email and phone.
|
|
41
|
+
field(
|
|
42
|
+
:namespace,
|
|
43
|
+
Crystalline::Nilable.new(Models::Shared::Namespace),
|
|
44
|
+
{
|
|
45
|
+
'format_json': {
|
|
46
|
+
'letter_case': ::NoResponse::Utils.field_name("namespace"),
|
|
47
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::Namespace, true)
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
sig {
|
|
53
|
+
params(
|
|
54
|
+
kind: Models::Shared::IdentifierSearchKind,
|
|
55
|
+
value: ::String,
|
|
56
|
+
match: T.nilable(Models::Shared::Match),
|
|
57
|
+
namespace: T.nilable(Models::Shared::Namespace)
|
|
58
|
+
)
|
|
59
|
+
.void
|
|
60
|
+
}
|
|
61
|
+
def initialize(kind:, value:, match: nil, namespace: nil)
|
|
62
|
+
@kind = kind
|
|
63
|
+
@value = value
|
|
64
|
+
@match = match
|
|
65
|
+
@namespace = namespace
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
69
|
+
def ==(other)
|
|
70
|
+
return false unless other.is_a?(self.class)
|
|
71
|
+
return false unless @kind == other.kind
|
|
72
|
+
return false unless @value == other.value
|
|
73
|
+
return false unless @match == other.match
|
|
74
|
+
return false unless @namespace == other.namespace
|
|
75
|
+
true
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::IdentifierSearch
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::IdentifierSearch
|
|
9
|
+
def kind
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def kind=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def value
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def value=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def match
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def match=(str_)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def namespace
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def namespace=(str_)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
|
|
8
|
+
class IdentifierSearchKind
|
|
9
|
+
include ::Crystalline::Enum
|
|
10
|
+
enums do
|
|
11
|
+
EMAIL = new("email")
|
|
12
|
+
PHONE = new("phone")
|
|
13
|
+
USERNAME = new("username")
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
open!
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# One satisfied unique term in an identifier expression. term_index is the zero-based depth-first raw leaf position of its first occurrence. Duplicate normalized terms produce one witness. All satisfied unique terms are returned, ordered by term_index, including satisfied terms in an OR branch that was not needed. value preserves the original submitted value in assessment_id. In assessment scope all witnesses belong to the same matching assessment; account search chooses the newest such assessment. In account scope each term uses its newest retained matching assessment, so witnesses may have different assessment IDs. This evidence does not assert ownership or equality between accounts.
|
|
8
|
+
class IdentifierTermMatch
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
field(
|
|
13
|
+
:kind,
|
|
14
|
+
Models::Shared::IdentifierSearchKind,
|
|
15
|
+
{
|
|
16
|
+
'format_json': {
|
|
17
|
+
'letter_case': ::NoResponse::Utils.field_name("kind"),
|
|
18
|
+
required: true,
|
|
19
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::IdentifierSearchKind, false)
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
field(
|
|
25
|
+
:value,
|
|
26
|
+
::String,
|
|
27
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("value"), required: true}}
|
|
28
|
+
)
|
|
29
|
+
# exact compares the original submitted value; canonical uses identifier-specific normalisation; mailbox explicitly selects the email alias rules used by lists.
|
|
30
|
+
field(
|
|
31
|
+
:match_basis,
|
|
32
|
+
Models::Shared::Match,
|
|
33
|
+
{
|
|
34
|
+
'format_json': {
|
|
35
|
+
'letter_case': ::NoResponse::Utils.field_name("match_basis"),
|
|
36
|
+
required: true,
|
|
37
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::Match, false)
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
)
|
|
41
|
+
# Customer-submitted input. It does not mean the customer or NoResponse verified ownership.
|
|
42
|
+
field(
|
|
43
|
+
:provenance,
|
|
44
|
+
Models::Shared::Provenance,
|
|
45
|
+
{
|
|
46
|
+
'format_json': {
|
|
47
|
+
'letter_case': ::NoResponse::Utils.field_name("provenance"),
|
|
48
|
+
required: true,
|
|
49
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::Provenance, false)
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
)
|
|
53
|
+
# Opaque, server-assigned assessment id: 'asm_' and a 26-character Crockford base32 ULID. Unique within the workspace; another workspace's assessment id answers 404.
|
|
54
|
+
field(
|
|
55
|
+
:assessment_id,
|
|
56
|
+
::String,
|
|
57
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("assessment_id"), required: true}}
|
|
58
|
+
)
|
|
59
|
+
# Zero-based depth-first position of the first occurrence of this normalized term in the submitted expression.
|
|
60
|
+
field(
|
|
61
|
+
:term_index,
|
|
62
|
+
::Integer,
|
|
63
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("term_index"), required: true}}
|
|
64
|
+
)
|
|
65
|
+
# Required for username: the username submitted by this customer in this workspace/environment. It does not name or join a source platform. Omit for email and phone.
|
|
66
|
+
field(
|
|
67
|
+
:namespace,
|
|
68
|
+
Crystalline::Nilable.new(Models::Shared::Namespace),
|
|
69
|
+
{
|
|
70
|
+
'format_json': {
|
|
71
|
+
'letter_case': ::NoResponse::Utils.field_name("namespace"),
|
|
72
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::Namespace, true)
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
sig {
|
|
78
|
+
params(
|
|
79
|
+
kind: Models::Shared::IdentifierSearchKind,
|
|
80
|
+
value: ::String,
|
|
81
|
+
match_basis: Models::Shared::Match,
|
|
82
|
+
provenance: Models::Shared::Provenance,
|
|
83
|
+
assessment_id: ::String,
|
|
84
|
+
term_index: ::Integer,
|
|
85
|
+
namespace: T.nilable(Models::Shared::Namespace)
|
|
86
|
+
)
|
|
87
|
+
.void
|
|
88
|
+
}
|
|
89
|
+
def initialize(kind:, value:, match_basis:, provenance:, assessment_id:, term_index:, namespace: nil)
|
|
90
|
+
@kind = kind
|
|
91
|
+
@value = value
|
|
92
|
+
@match_basis = match_basis
|
|
93
|
+
@provenance = provenance
|
|
94
|
+
@assessment_id = assessment_id
|
|
95
|
+
@term_index = term_index
|
|
96
|
+
@namespace = namespace
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
100
|
+
def ==(other)
|
|
101
|
+
return false unless other.is_a?(self.class)
|
|
102
|
+
return false unless @kind == other.kind
|
|
103
|
+
return false unless @value == other.value
|
|
104
|
+
return false unless @match_basis == other.match_basis
|
|
105
|
+
return false unless @provenance == other.provenance
|
|
106
|
+
return false unless @assessment_id == other.assessment_id
|
|
107
|
+
return false unless @term_index == other.term_index
|
|
108
|
+
return false unless @namespace == other.namespace
|
|
109
|
+
true
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::IdentifierTermMatch
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::IdentifierTermMatch
|
|
9
|
+
def kind
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def kind=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def value
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def value=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def match_basis
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def match_basis=(str_)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def provenance
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def provenance=(str_)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def assessment_id
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def assessment_id=(str_)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def term_index
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def term_index=(str_)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def namespace
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def namespace=(str_)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# Match - exact compares the original submitted value; canonical uses identifier-specific normalisation; mailbox explicitly selects the email alias rules used by lists.
|
|
8
|
+
class Match
|
|
9
|
+
include ::Crystalline::Enum
|
|
10
|
+
enums do
|
|
11
|
+
EXACT = new("exact")
|
|
12
|
+
CANONICAL = new("canonical")
|
|
13
|
+
MAILBOX = new("mailbox")
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
open!
|
|
17
|
+
end
|
|
18
|
+
end
|
|
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
|
+
# Namespace - Required for username: the username submitted by this customer in this workspace/environment. It does not name or join a source platform. Omit for email and phone.
|
|
8
|
+
class Namespace
|
|
9
|
+
include ::Crystalline::Enum
|
|
10
|
+
enums do
|
|
11
|
+
CUSTOMER = new("customer")
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
open!
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|