noresponse 9.4.4 → 9.5.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/accounts.rb +1 -1
- data/lib/no_response/assessments.rb +1 -1
- data/lib/no_response/models/shared/accountdirectorypageitem.rb +19 -2
- data/lib/no_response/models/shared/accountdirectorypageitem.rbi +6 -0
- data/lib/no_response/models/shared/accountdirectorysearchrequest.rb +20 -3
- data/lib/no_response/models/shared/accountdirectorysearchrequest.rbi +6 -0
- data/lib/no_response/models/shared/assessmentsearchitem.rb +12 -2
- data/lib/no_response/models/shared/assessmentsearchitem.rbi +6 -0
- data/lib/no_response/models/shared/assessmentsearchrequest.rb +12 -2
- data/lib/no_response/models/shared/assessmentsearchrequest.rbi +6 -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/identifiertermmatch.rb +114 -0
- data/lib/no_response/models/shared/identifiertermmatch.rbi +50 -0
- data/lib/no_response/models/shared/permissiondeniederrorcode.rb +3 -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 +7 -0
- data/lib/no_response/sdkconfiguration.rb +2 -2
- metadata +16 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a38cb0fcaa5a2432b34567ef9cd9f96a97748f8c8573466f4d9bd9ddb0f11266
|
|
4
|
+
data.tar.gz: 96f6861bbb27d324c5e07e996375b356084892c6992dc6df11add8f5ccf51429
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7fcacf2819e0d838d4ddbfc77ead1998ef526ca89c4b640786148eb30f31a29087b2488de5809541e80718a00abb086c0c11d540664ac64d727c5ec53a4b9083
|
|
7
|
+
data.tar.gz: e9cd8ab8325646ce2a0c5793f1383b238a7cd6067dc0b5440e0912ee3368b1398c4730e340982e3690f05379d546413e76cd25c413fe10a1023b24543c36301d
|
data/lib/no_response/accounts.rb
CHANGED
|
@@ -4278,7 +4278,7 @@ module NoResponse
|
|
|
4278
4278
|
}
|
|
4279
4279
|
def search(request:, retries: nil, timeout_ms: nil, http_headers: nil)
|
|
4280
4280
|
# search - Search distinct accounts by submitted identifier or account ID
|
|
4281
|
-
# Search distinct accounts observed in retained assessments in this environment. identifier matches an exact, canonical or explicitly selected mailbox form of a submitted email, phone or customer-namespace username. It matches historical retained inputs and returns matched_identifier with the original value and matching assessment. Each row has its newest retained assessment, current account decision when available, retained assessment count, and total distinct-account count. identifier and legacy email are mutually exclusive; account_id and needs_action combine with either using AND. Set needs_action to select accounts with a retained open or in-progress review, or a current review/block account decision without an effective retained account outcome. This filter applies before counting and pagination and adds waiting_for reasons. Current decisions include account list overrides and shared-key scoring and preserve admission holds. Typed identifier search uses stable opaque account order; ordinary and legacy email searches retain newest-seen order. Results are live across pages; each page's items and total share a database snapshot, while current account risk is read separately. Cursors are expiring and bound to scope, operation and filters. Totals are exact below 10000 and capped at 10000. Requires history or investigate authority and identifier-read permission for identifier or email filtering. needs_action additionally requires management scope. Source-discovered associations are not searched and equality is not verified ownership.
|
|
4281
|
+
# Search distinct accounts observed in retained assessments in this environment. identifier matches an exact, canonical or explicitly selected mailbox form of a submitted email, phone or customer-namespace username. It matches historical retained inputs and returns matched_identifier with the original value and matching assessment. Each row has its newest retained assessment, current account decision when available, retained assessment count, and total distinct-account count. identifier and legacy email are mutually exclusive; account_id and needs_action combine with either using AND. Set needs_action to select accounts with a retained open or in-progress review, or a current review/block account decision without an effective retained account outcome. This filter applies before counting and pagination and adds waiting_for reasons. Current decisions include account list overrides and shared-key scoring and preserve admission holds. Typed identifier search uses stable opaque account order; ordinary and legacy email searches retain newest-seen order. Results are live across pages; each page's items and total share a database snapshot, while current account risk is read separately. Cursors are expiring and bound to scope, operation and filters. Totals are exact below 10000 and capped at 10000. Requires history or investigate authority and identifier-read permission for identifier, identifier_expression or email filtering. needs_action additionally requires management scope. Source-discovered associations are not searched and equality is not verified ownership. identifier_expression combines submitted terms with bounded AND/OR, at most 8 raw terms and 3 group levels. Each node selects exactly one of term, and, or. Groups have 2 to 8 operands. Duplicate normalized terms are idempotent and still count toward the limit. identifier_expression, identifier and email are mutually exclusive. Expression results use matched_identifiers with original submitted witnesses and zero-based depth-first term_index. All satisfied unique terms are returned in first-occurrence order. Cursors bind scope, ordered structure, original values, matching modes and all other filters; changing only page limit is allowed. Required expression scope assessment evaluates the whole expression in one retained submission; scope account allows different retained submissions of the same account to satisfy different terms. Both use stable opaque account ordering and distinct-account counting before pagination.
|
|
4282
4282
|
url, params = @sdk_configuration.get_server_details
|
|
4283
4283
|
base_url = Utils.template_url(url, params)
|
|
4284
4284
|
url = "#{base_url}/v1/accounts/search"
|
|
@@ -1841,7 +1841,7 @@ module NoResponse
|
|
|
1841
1841
|
}
|
|
1842
1842
|
def search(request:, retries: nil, timeout_ms: nil, http_headers: nil)
|
|
1843
1843
|
# search - Search assessments across this environment
|
|
1844
|
-
# Search retained assessments created in [from,to), at most 366 days. identifier directly matches that assessment's submitted email, phone or customer-namespace username using exact, canonical or explicitly selected email mailbox matching. matched_identifier explains the original value and match basis. Legacy email keeps its account-wide mailbox semantics and cannot be combined with identifier. Other filters combine using AND and describe assessment decisions, separate from current account decisions. Each item carries the original submitted identifiers and its first_decision when available. Newest-created order has an assessment-ID tie break. Results are live across pages; each page's total and items use one database snapshot. Totals are exact below 10000 and capped at 10000. Requires history or investigate authority and identifier-read permission for identifier
|
|
1844
|
+
# Search retained assessments created in [from,to), at most 366 days. identifier directly matches that assessment's submitted email, phone or customer-namespace username using exact, canonical or explicitly selected email mailbox matching. matched_identifier explains the original value and match basis. Legacy email keeps its account-wide mailbox semantics and cannot be combined with identifier. Other filters combine using AND and describe assessment decisions, separate from current account decisions. Each item carries the original submitted identifiers and its first_decision when available. Newest-created order has an assessment-ID tie break. Results are live across pages; each page's total and items use one database snapshot. Totals are exact below 10000 and capped at 10000. Requires history or investigate authority and identifier-read permission for identifier, identifier_expression or email filters; detailed mode also requires detailed permission. No Idempotency-Key. identifier_expression combines submitted terms with bounded AND/OR, at most 8 raw terms and 3 group levels. Each node selects exactly one of term, and, or. Groups have 2 to 8 operands. Duplicate normalized terms are idempotent and still count toward the limit. identifier_expression, identifier and email are mutually exclusive. Expression results use matched_identifiers with original submitted witnesses and zero-based depth-first term_index. All satisfied unique terms are returned in first-occurrence order. Cursors bind scope, ordered structure, original values, matching modes and all other filters; changing only page limit is allowed. Expression scope must be assessment: each returned assessment itself satisfies the complete expression. Scope account is rejected with 400 invalid_request; use account search for historical combinations.
|
|
1845
1845
|
url, params = @sdk_configuration.get_server_details
|
|
1846
1846
|
base_url = Utils.template_url(url, params)
|
|
1847
1847
|
url = "#{base_url}/v1/assessments/search"
|
|
@@ -45,6 +45,12 @@ module NoResponse
|
|
|
45
45
|
Crystalline::Nilable.new(Models::Shared::IdentifierMatch),
|
|
46
46
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("matched_identifier")}}
|
|
47
47
|
)
|
|
48
|
+
# Present only for identifier_expression. All satisfied unique terms, ordered by term_index, with original submitted values and retained assessment witnesses. A duplicate normalized term appears once at its first raw leaf index. The legacy single identifier filter instead returns matched_identifier.
|
|
49
|
+
field(
|
|
50
|
+
:matched_identifiers,
|
|
51
|
+
Crystalline::Nilable.new(Crystalline::Array.new(Models::Shared::IdentifierTermMatch)),
|
|
52
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("matched_identifiers")}}
|
|
53
|
+
)
|
|
48
54
|
|
|
49
55
|
sig {
|
|
50
56
|
params(
|
|
@@ -53,17 +59,27 @@ module NoResponse
|
|
|
53
59
|
assessments: ::Integer,
|
|
54
60
|
waiting_for: T.nilable(T::Array[Models::Shared::WaitingFor]),
|
|
55
61
|
current: T.nilable(Models::Shared::Account),
|
|
56
|
-
matched_identifier: T.nilable(Models::Shared::IdentifierMatch)
|
|
62
|
+
matched_identifier: T.nilable(Models::Shared::IdentifierMatch),
|
|
63
|
+
matched_identifiers: T.nilable(T::Array[Models::Shared::IdentifierTermMatch])
|
|
57
64
|
)
|
|
58
65
|
.void
|
|
59
66
|
}
|
|
60
|
-
def initialize(
|
|
67
|
+
def initialize(
|
|
68
|
+
account_id:,
|
|
69
|
+
latest:,
|
|
70
|
+
assessments:,
|
|
71
|
+
waiting_for: nil,
|
|
72
|
+
current: nil,
|
|
73
|
+
matched_identifier: nil,
|
|
74
|
+
matched_identifiers: nil
|
|
75
|
+
)
|
|
61
76
|
@account_id = account_id
|
|
62
77
|
@latest = latest
|
|
63
78
|
@assessments = assessments
|
|
64
79
|
@waiting_for = waiting_for
|
|
65
80
|
@current = current
|
|
66
81
|
@matched_identifier = matched_identifier
|
|
82
|
+
@matched_identifiers = matched_identifiers
|
|
67
83
|
end
|
|
68
84
|
|
|
69
85
|
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
@@ -75,6 +91,7 @@ module NoResponse
|
|
|
75
91
|
return false unless @waiting_for == other.waiting_for
|
|
76
92
|
return false unless @current == other.current
|
|
77
93
|
return false unless @matched_identifier == other.matched_identifier
|
|
94
|
+
return false unless @matched_identifiers == other.matched_identifiers
|
|
78
95
|
true
|
|
79
96
|
end
|
|
80
97
|
end
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
module NoResponse
|
|
5
5
|
module Models
|
|
6
6
|
module Shared
|
|
7
|
-
# Bounded distinct-account search for one authenticated workspace/environment. identifier matches any retained admitted assessment of an account, including historical submitted values. email preserves the legacy canonical-mailbox filter. identifier and email cannot be combined. All other filters combine using AND. Typed identifier search uses stable opaque account order; ordinary and legacy email searches retain newest-seen ordering. Pages are live, not a cross-page snapshot. Requires history or investigate authority and identifier-read permission for identifier or email filtering.
|
|
7
|
+
# Bounded distinct-account search for one authenticated workspace/environment. identifier matches any retained admitted assessment of an account, including historical submitted values. email preserves the legacy canonical-mailbox filter. identifier and email cannot be combined. All other filters combine using AND. Typed identifier search uses stable opaque account order; ordinary and legacy email searches retain newest-seen ordering. Pages are live, not a cross-page snapshot. Requires history or investigate authority and identifier-read permission for identifier, identifier_expression or email filtering. identifier_expression explicitly chooses scope assessment (one whole matching submission) or account (terms may match different retained submissions of one account). At most 8 raw terms and 3 group levels. Mutually exclusive with identifier and email. Expression search uses the same stable opaque account order as typed identifier search.
|
|
8
8
|
class AccountDirectorySearchRequest
|
|
9
9
|
extend T::Sig
|
|
10
10
|
include Crystalline::MetadataFields
|
|
@@ -21,7 +21,7 @@ module NoResponse
|
|
|
21
21
|
Crystalline::Nilable.new(::String),
|
|
22
22
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("email")}}
|
|
23
23
|
)
|
|
24
|
-
# Opaque, expiring cursor bound to
|
|
24
|
+
# Opaque, expiring cursor bound to workspace, environment, operation and all filters, including expression scope, ordered structure and original term values. Keep grouping, operand order, matching modes and values unchanged; an omitted match is equivalent to exact. The page limit may change.
|
|
25
25
|
field(
|
|
26
26
|
:cursor,
|
|
27
27
|
Crystalline::Nilable.new(::String),
|
|
@@ -33,6 +33,12 @@ module NoResponse
|
|
|
33
33
|
Crystalline::Nilable.new(Models::Shared::IdentifierSearch),
|
|
34
34
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("identifier")}}
|
|
35
35
|
)
|
|
36
|
+
# A bounded AND/OR expression over submitted identifiers. Required scope assessment means the entire expression must match one retained assessment. Scope account permits each term to match a different retained assessment of the same account and is accepted only by account search. Exactly one of term, and or or is allowed at every node. Groups contain 2 to 8 operands, with at most 3 nested group levels and 8 raw term occurrences over the entire expression. A root term is allowed. Duplicate terms with the same kind, match rule, namespace and normalized comparison are idempotent, but count toward the raw limit. Match rules default to exact and preserve the existing identifier contract. Only retained submitted identifiers can satisfy a term. Unknown fields, unsupported scopes and malformed or oversized expressions return 400 invalid_request.
|
|
37
|
+
field(
|
|
38
|
+
:identifier_expression,
|
|
39
|
+
Crystalline::Nilable.new(Models::Shared::IdentifierExpression),
|
|
40
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("identifier_expression")}}
|
|
41
|
+
)
|
|
36
42
|
# Select accounts with a retained open or in-progress review, or a current review/block account decision with no retained effective account outcome. The server applies this filter before counting and pagination. Requires reviews.read as well as history.read for console members; API keys additionally require management.
|
|
37
43
|
field(
|
|
38
44
|
:needs_action,
|
|
@@ -52,16 +58,26 @@ module NoResponse
|
|
|
52
58
|
email: T.nilable(::String),
|
|
53
59
|
cursor: T.nilable(::String),
|
|
54
60
|
identifier: T.nilable(Models::Shared::IdentifierSearch),
|
|
61
|
+
identifier_expression: T.nilable(Models::Shared::IdentifierExpression),
|
|
55
62
|
needs_action: T.nilable(T::Boolean),
|
|
56
63
|
limit: T.nilable(::Integer)
|
|
57
64
|
)
|
|
58
65
|
.void
|
|
59
66
|
}
|
|
60
|
-
def initialize(
|
|
67
|
+
def initialize(
|
|
68
|
+
account_id: nil,
|
|
69
|
+
email: nil,
|
|
70
|
+
cursor: nil,
|
|
71
|
+
identifier: nil,
|
|
72
|
+
identifier_expression: nil,
|
|
73
|
+
needs_action: false,
|
|
74
|
+
limit: 25
|
|
75
|
+
)
|
|
61
76
|
@account_id = account_id
|
|
62
77
|
@email = email
|
|
63
78
|
@cursor = cursor
|
|
64
79
|
@identifier = identifier
|
|
80
|
+
@identifier_expression = identifier_expression
|
|
65
81
|
@needs_action = needs_action
|
|
66
82
|
@limit = limit
|
|
67
83
|
end
|
|
@@ -73,6 +89,7 @@ module NoResponse
|
|
|
73
89
|
return false unless @email == other.email
|
|
74
90
|
return false unless @cursor == other.cursor
|
|
75
91
|
return false unless @identifier == other.identifier
|
|
92
|
+
return false unless @identifier_expression == other.identifier_expression
|
|
76
93
|
return false unless @needs_action == other.needs_action
|
|
77
94
|
return false unless @limit == other.limit
|
|
78
95
|
true
|
|
@@ -76,6 +76,12 @@ module NoResponse
|
|
|
76
76
|
Crystalline::Nilable.new(Models::Shared::IdentifierMatch),
|
|
77
77
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("matched_identifier")}}
|
|
78
78
|
)
|
|
79
|
+
# Present only for identifier_expression. All satisfied unique terms, ordered by term_index, with original submitted values and retained assessment witnesses. A duplicate normalized term appears once at its first raw leaf index. The legacy single identifier filter instead returns matched_identifier.
|
|
80
|
+
field(
|
|
81
|
+
:matched_identifiers,
|
|
82
|
+
Crystalline::Nilable.new(Crystalline::Array.new(Models::Shared::IdentifierTermMatch)),
|
|
83
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("matched_identifiers")}}
|
|
84
|
+
)
|
|
79
85
|
|
|
80
86
|
sig {
|
|
81
87
|
params(
|
|
@@ -86,7 +92,8 @@ module NoResponse
|
|
|
86
92
|
detail: Models::Shared::AssessmentDetail,
|
|
87
93
|
schema_version: ::String,
|
|
88
94
|
first_decision: T.nilable(Models::Shared::Decision),
|
|
89
|
-
matched_identifier: T.nilable(Models::Shared::IdentifierMatch)
|
|
95
|
+
matched_identifier: T.nilable(Models::Shared::IdentifierMatch),
|
|
96
|
+
matched_identifiers: T.nilable(T::Array[Models::Shared::IdentifierTermMatch])
|
|
90
97
|
)
|
|
91
98
|
.void
|
|
92
99
|
}
|
|
@@ -98,7 +105,8 @@ module NoResponse
|
|
|
98
105
|
detail:,
|
|
99
106
|
schema_version: "1",
|
|
100
107
|
first_decision: nil,
|
|
101
|
-
matched_identifier: nil
|
|
108
|
+
matched_identifier: nil,
|
|
109
|
+
matched_identifiers: nil
|
|
102
110
|
)
|
|
103
111
|
@id = id
|
|
104
112
|
@status = status
|
|
@@ -112,6 +120,7 @@ module NoResponse
|
|
|
112
120
|
@schema_version = "1"
|
|
113
121
|
@first_decision = first_decision
|
|
114
122
|
@matched_identifier = matched_identifier
|
|
123
|
+
@matched_identifiers = matched_identifiers
|
|
115
124
|
end
|
|
116
125
|
|
|
117
126
|
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
@@ -125,6 +134,7 @@ module NoResponse
|
|
|
125
134
|
return false unless @schema_version == other.schema_version
|
|
126
135
|
return false unless @first_decision == other.first_decision
|
|
127
136
|
return false unless @matched_identifier == other.matched_identifier
|
|
137
|
+
return false unless @matched_identifiers == other.matched_identifiers
|
|
128
138
|
true
|
|
129
139
|
end
|
|
130
140
|
end
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
module NoResponse
|
|
5
5
|
module Models
|
|
6
6
|
module Shared
|
|
7
|
-
# Search retained assessments created in [from,to), at most 366 days. identifier matches the submitted value of each returned assessment directly. The legacy email filter keeps its account-wide mailbox semantics and cannot be combined with identifier. Other filters combine using AND and describe assessment decisions, separate from current account decisions. Results use newest-created order with an assessment-ID tie break and are live, not a snapshot across pages. Requires history or investigate authority; identifier
|
|
7
|
+
# Search retained assessments created in [from,to), at most 366 days. identifier matches the submitted value of each returned assessment directly. The legacy email filter keeps its account-wide mailbox semantics and cannot be combined with identifier. Other filters combine using AND and describe assessment decisions, separate from current account decisions. Results use newest-created order with an assessment-ID tie break and are live, not a snapshot across pages. Requires history or investigate authority; identifier, identifier_expression and email filtering also require identifier-read permission. Detailed response mode additionally requires detailed permission. No Idempotency-Key. identifier_expression requires scope assessment and matches the complete expression within each returned submission; account scope returns 400 invalid_request. At most 8 raw terms and 3 group levels. Mutually exclusive with identifier and email.
|
|
8
8
|
class AssessmentSearchRequest
|
|
9
9
|
extend T::Sig
|
|
10
10
|
include Crystalline::MetadataFields
|
|
@@ -57,7 +57,7 @@ module NoResponse
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
)
|
|
60
|
-
# Opaque, expiring cursor bound to
|
|
60
|
+
# Opaque, expiring cursor bound to workspace, environment, operation and all filters, including expression scope, ordered structure and original term values. Keep grouping, operand order, matching modes and values unchanged; an omitted match is equivalent to exact. The page limit may change.
|
|
61
61
|
field(
|
|
62
62
|
:cursor,
|
|
63
63
|
Crystalline::Nilable.new(::String),
|
|
@@ -187,6 +187,12 @@ module NoResponse
|
|
|
187
187
|
Crystalline::Nilable.new(Models::Shared::IdentifierSearch),
|
|
188
188
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("identifier")}}
|
|
189
189
|
)
|
|
190
|
+
# A bounded AND/OR expression over submitted identifiers. Required scope assessment means the entire expression must match one retained assessment. Scope account permits each term to match a different retained assessment of the same account and is accepted only by account search. Exactly one of term, and or or is allowed at every node. Groups contain 2 to 8 operands, with at most 3 nested group levels and 8 raw term occurrences over the entire expression. A root term is allowed. Duplicate terms with the same kind, match rule, namespace and normalized comparison are idempotent, but count toward the raw limit. Match rules default to exact and preserve the existing identifier contract. Only retained submitted identifiers can satisfy a term. Unknown fields, unsupported scopes and malformed or oversized expressions return 400 invalid_request.
|
|
191
|
+
field(
|
|
192
|
+
:identifier_expression,
|
|
193
|
+
Crystalline::Nilable.new(Models::Shared::IdentifierExpression),
|
|
194
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("identifier_expression")}}
|
|
195
|
+
)
|
|
190
196
|
|
|
191
197
|
field(
|
|
192
198
|
:limit,
|
|
@@ -218,6 +224,7 @@ module NoResponse
|
|
|
218
224
|
list_match: T.nilable(Models::Shared::ListMatch),
|
|
219
225
|
changed: T.nilable(T::Boolean),
|
|
220
226
|
identifier: T.nilable(Models::Shared::IdentifierSearch),
|
|
227
|
+
identifier_expression: T.nilable(Models::Shared::IdentifierExpression),
|
|
221
228
|
limit: T.nilable(::Integer)
|
|
222
229
|
)
|
|
223
230
|
.void
|
|
@@ -245,6 +252,7 @@ module NoResponse
|
|
|
245
252
|
list_match: nil,
|
|
246
253
|
changed: nil,
|
|
247
254
|
identifier: nil,
|
|
255
|
+
identifier_expression: nil,
|
|
248
256
|
limit: 20
|
|
249
257
|
)
|
|
250
258
|
@from = from
|
|
@@ -269,6 +277,7 @@ module NoResponse
|
|
|
269
277
|
@list_match = list_match
|
|
270
278
|
@changed = changed
|
|
271
279
|
@identifier = identifier
|
|
280
|
+
@identifier_expression = identifier_expression
|
|
272
281
|
@limit = limit
|
|
273
282
|
end
|
|
274
283
|
|
|
@@ -297,6 +306,7 @@ module NoResponse
|
|
|
297
306
|
return false unless @list_match == other.list_match
|
|
298
307
|
return false unless @changed == other.changed
|
|
299
308
|
return false unless @identifier == other.identifier
|
|
309
|
+
return false unless @identifier_expression == other.identifier_expression
|
|
300
310
|
return false unless @limit == other.limit
|
|
301
311
|
true
|
|
302
312
|
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# A bounded AND/OR expression over submitted identifiers. Required scope assessment means the entire expression must match one retained assessment. Scope account permits each term to match a different retained assessment of the same account and is accepted only by account search. Exactly one of term, and or or is allowed at every node. Groups contain 2 to 8 operands, with at most 3 nested group levels and 8 raw term occurrences over the entire expression. A root term is allowed. Duplicate terms with the same kind, match rule, namespace and normalized comparison are idempotent, but count toward the raw limit. Match rules default to exact and preserve the existing identifier contract. Only retained submitted identifiers can satisfy a term. Unknown fields, unsupported scopes and malformed or oversized expressions return 400 invalid_request.
|
|
8
|
+
class IdentifierExpression
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
# assessment requires one submission to satisfy the complete expression. account permits witnesses across retained submissions of one account and is supported only by POST /v1/accounts/search. No default: select scope explicitly.
|
|
13
|
+
field(
|
|
14
|
+
:scope,
|
|
15
|
+
Models::Shared::ScopeEnum,
|
|
16
|
+
{
|
|
17
|
+
'format_json': {
|
|
18
|
+
'letter_case': ::NoResponse::Utils.field_name("scope"),
|
|
19
|
+
required: true,
|
|
20
|
+
'decoder': ::NoResponse::Utils.enum_from_string(Models::Shared::ScopeEnum, false)
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
field(
|
|
26
|
+
:expression,
|
|
27
|
+
Models::Shared::IdentifierExpressionNode,
|
|
28
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("expression"), required: true}}
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
sig { params(scope: Models::Shared::ScopeEnum, expression: Models::Shared::IdentifierExpressionNode).void }
|
|
32
|
+
def initialize(scope:, expression:)
|
|
33
|
+
@scope = scope
|
|
34
|
+
@expression = expression
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
38
|
+
def ==(other)
|
|
39
|
+
return false unless other.is_a?(self.class)
|
|
40
|
+
return false unless @scope == other.scope
|
|
41
|
+
return false unless @expression == other.expression
|
|
42
|
+
true
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::IdentifierExpression
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::IdentifierExpression
|
|
9
|
+
def scope
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def scope=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def expression
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def expression=(str_)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
|
|
8
|
+
class IdentifierExpressionLeaf
|
|
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
|
+
Models::Shared::IdentifierSearch,
|
|
16
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("term"), required: true}}
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
sig { params(term: Models::Shared::IdentifierSearch).void }
|
|
20
|
+
def initialize(term:)
|
|
21
|
+
@term = term
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
25
|
+
def ==(other)
|
|
26
|
+
return false unless other.is_a?(self.class)
|
|
27
|
+
return false unless @term == other.term
|
|
28
|
+
true
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::IdentifierExpressionLeaf
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::IdentifierExpressionLeaf
|
|
9
|
+
def term
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def term=(str_)
|
|
13
|
+
end
|
|
14
|
+
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 IdentifierExpressionNode
|
|
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::IdentifierExpressionNodeLevelTwo)),
|
|
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::IdentifierExpressionNodeLevelTwo)),
|
|
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::IdentifierExpressionNodeLevelTwo]),
|
|
35
|
+
or_: T.nilable(T::Array[Models::Shared::IdentifierExpressionNodeLevelTwo])
|
|
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::IdentifierExpressionNode
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::IdentifierExpressionNode
|
|
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 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,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
|
|
@@ -10,6 +10,9 @@ module NoResponse
|
|
|
10
10
|
enums do
|
|
11
11
|
WORKSPACE_FORBIDDEN = new("workspace_forbidden")
|
|
12
12
|
ROLE_FORBIDDEN = new("role_forbidden")
|
|
13
|
+
EMAIL_UNVERIFIED = new("email_unverified")
|
|
14
|
+
ONBOARDING_IN_REVIEW = new("onboarding_in_review")
|
|
15
|
+
ONBOARDING_REFUSED = new("onboarding_refused")
|
|
13
16
|
end
|
|
14
17
|
|
|
15
18
|
open!
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# ScopeEnum - assessment requires one submission to satisfy the complete expression. account permits witnesses across retained submissions of one account and is supported only by POST /v1/accounts/search. No default: select scope explicitly.
|
|
8
|
+
class ScopeEnum < T::Enum
|
|
9
|
+
enums do
|
|
10
|
+
ASSESSMENT = new("assessment")
|
|
11
|
+
ACCOUNT = new("account")
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -152,10 +152,16 @@ module NoResponse
|
|
|
152
152
|
autoload :From, "no_response/models/shared/from.rb"
|
|
153
153
|
autoload :HookPoint, "no_response/models/shared/hookpoint.rb"
|
|
154
154
|
autoload :Identifier, "no_response/models/shared/identifier.rb"
|
|
155
|
+
autoload :IdentifierExpression, "no_response/models/shared/identifierexpression.rb"
|
|
156
|
+
autoload :IdentifierExpressionLeaf, "no_response/models/shared/identifierexpressionleaf.rb"
|
|
157
|
+
autoload :IdentifierExpressionNode, "no_response/models/shared/identifierexpressionnode.rb"
|
|
158
|
+
autoload :IdentifierExpressionNodeLevelOne, "no_response/models/shared/identifierexpressionnodelevelone.rb"
|
|
159
|
+
autoload :IdentifierExpressionNodeLevelTwo, "no_response/models/shared/identifierexpressionnodeleveltwo.rb"
|
|
155
160
|
autoload :IdentifierKind, "no_response/models/shared/identifierkind.rb"
|
|
156
161
|
autoload :IdentifierMatch, "no_response/models/shared/identifiermatch.rb"
|
|
157
162
|
autoload :IdentifierSearch, "no_response/models/shared/identifiersearch.rb"
|
|
158
163
|
autoload :IdentifierSearchKind, "no_response/models/shared/identifiersearchkind.rb"
|
|
164
|
+
autoload :IdentifierTermMatch, "no_response/models/shared/identifiertermmatch.rb"
|
|
159
165
|
autoload :Impact, "no_response/models/shared/impact.rb"
|
|
160
166
|
autoload :IncompleteReason, "no_response/models/shared/incompletereason.rb"
|
|
161
167
|
autoload :IncompleteSource, "no_response/models/shared/incompletesource.rb"
|
|
@@ -308,6 +314,7 @@ module NoResponse
|
|
|
308
314
|
autoload :RiskSummaryPhone, "no_response/models/shared/risksummaryphone.rb"
|
|
309
315
|
autoload :RiskSummaryUsername, "no_response/models/shared/risksummaryusername.rb"
|
|
310
316
|
autoload :Role, "no_response/models/shared/role.rb"
|
|
317
|
+
autoload :ScopeEnum, "no_response/models/shared/scope_enum.rb"
|
|
311
318
|
autoload :Security, "no_response/models/shared/security.rb"
|
|
312
319
|
autoload :SentIdentifiers, "no_response/models/shared/sentidentifiers.rb"
|
|
313
320
|
autoload :Settings, "no_response/models/shared/settings.rb"
|
|
@@ -95,9 +95,9 @@ module NoResponse
|
|
|
95
95
|
|
|
96
96
|
@language = "ruby"
|
|
97
97
|
@openapi_doc_version = "1"
|
|
98
|
-
@sdk_version = "9.
|
|
98
|
+
@sdk_version = "9.5.1"
|
|
99
99
|
@gen_version = "internal"
|
|
100
|
-
@user_agent = "noresponse-sdk/ruby 9.
|
|
100
|
+
@user_agent = "noresponse-sdk/ruby 9.5.1 internal 1 noresponse"
|
|
101
101
|
end
|
|
102
102
|
|
|
103
103
|
sig { returns([String, T::Hash[Symbol, String]]) }
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: noresponse
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 9.
|
|
4
|
+
version: 9.5.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- NoResponse
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-10-
|
|
11
|
+
date: 2026-10-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: base64
|
|
@@ -969,6 +969,16 @@ files:
|
|
|
969
969
|
- lib/no_response/models/shared/hookpoint.rbi
|
|
970
970
|
- lib/no_response/models/shared/identifier.rb
|
|
971
971
|
- lib/no_response/models/shared/identifier.rbi
|
|
972
|
+
- lib/no_response/models/shared/identifierexpression.rb
|
|
973
|
+
- lib/no_response/models/shared/identifierexpression.rbi
|
|
974
|
+
- lib/no_response/models/shared/identifierexpressionleaf.rb
|
|
975
|
+
- lib/no_response/models/shared/identifierexpressionleaf.rbi
|
|
976
|
+
- lib/no_response/models/shared/identifierexpressionnode.rb
|
|
977
|
+
- lib/no_response/models/shared/identifierexpressionnode.rbi
|
|
978
|
+
- lib/no_response/models/shared/identifierexpressionnodelevelone.rb
|
|
979
|
+
- lib/no_response/models/shared/identifierexpressionnodelevelone.rbi
|
|
980
|
+
- lib/no_response/models/shared/identifierexpressionnodeleveltwo.rb
|
|
981
|
+
- lib/no_response/models/shared/identifierexpressionnodeleveltwo.rbi
|
|
972
982
|
- lib/no_response/models/shared/identifierkind.rb
|
|
973
983
|
- lib/no_response/models/shared/identifierkind.rbi
|
|
974
984
|
- lib/no_response/models/shared/identifiermatch.rb
|
|
@@ -977,6 +987,8 @@ files:
|
|
|
977
987
|
- lib/no_response/models/shared/identifiersearch.rbi
|
|
978
988
|
- lib/no_response/models/shared/identifiersearchkind.rb
|
|
979
989
|
- lib/no_response/models/shared/identifiersearchkind.rbi
|
|
990
|
+
- lib/no_response/models/shared/identifiertermmatch.rb
|
|
991
|
+
- lib/no_response/models/shared/identifiertermmatch.rbi
|
|
980
992
|
- lib/no_response/models/shared/impact.rb
|
|
981
993
|
- lib/no_response/models/shared/impact.rbi
|
|
982
994
|
- lib/no_response/models/shared/incompletereason.rb
|
|
@@ -1283,6 +1295,8 @@ files:
|
|
|
1283
1295
|
- lib/no_response/models/shared/risksummaryusername.rbi
|
|
1284
1296
|
- lib/no_response/models/shared/role.rb
|
|
1285
1297
|
- lib/no_response/models/shared/role.rbi
|
|
1298
|
+
- lib/no_response/models/shared/scope_enum.rb
|
|
1299
|
+
- lib/no_response/models/shared/scope_enum.rbi
|
|
1286
1300
|
- lib/no_response/models/shared/security.rb
|
|
1287
1301
|
- lib/no_response/models/shared/security.rbi
|
|
1288
1302
|
- lib/no_response/models/shared/sentidentifiers.rb
|