noresponse 10.0.12 → 10.0.14
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/events.rb +1 -1
- data/lib/no_response/models/operations/listattendees_request.rb +19 -1
- data/lib/no_response/models/operations/listattendees_request.rbi +6 -0
- data/lib/no_response/models/shared/access.rb +20 -0
- data/lib/no_response/models/shared/{profile.rbi → access.rbi} +2 -2
- data/lib/no_response/models/shared/attendee.rb +28 -3
- data/lib/no_response/models/shared/attendee.rbi +12 -0
- data/lib/no_response/models/shared/attendeeidentity.rb +25 -2
- data/lib/no_response/models/shared/attendeeidentity.rbi +6 -0
- data/lib/no_response/models/shared/attendeereport.rb +25 -7
- data/lib/no_response/models/shared/attendeereport.rbi +12 -0
- data/lib/no_response/models/shared/attendeerole.rb +21 -0
- data/lib/no_response/models/shared/{attendee_coverage.rbi → attendeerole.rbi} +2 -2
- data/lib/no_response/models/shared/findingband.rb +22 -0
- data/lib/no_response/models/shared/{screening_platform.rbi → findingband.rbi} +2 -2
- data/lib/no_response/models/shared/findingcategory.rb +27 -0
- data/lib/no_response/models/shared/findingcategory.rbi +9 -0
- data/lib/no_response/models/shared/handle.rb +1 -0
- data/lib/no_response/models/shared/handleplatform.rb +2 -1
- data/lib/no_response/models/shared/listattendeesrole.rb +19 -0
- data/lib/no_response/models/shared/listattendeesrole.rbi +9 -0
- data/lib/no_response/models/shared/mediatype.rb +19 -0
- data/lib/no_response/models/shared/{finding.rbi → mediatype.rbi} +2 -2
- data/lib/no_response/models/shared/profilematchstate.rb +20 -0
- data/lib/no_response/models/shared/profilematchstate.rbi +9 -0
- data/lib/no_response/models/shared/screening.rb +23 -3
- data/lib/no_response/models/shared/screening.rbi +12 -0
- data/lib/no_response/models/shared/screeningcoverage.rb +82 -0
- data/lib/no_response/models/shared/screeningcoverage.rbi +44 -0
- data/lib/no_response/models/shared/screeningfinding.rb +152 -0
- data/lib/no_response/models/shared/screeningfinding.rbi +74 -0
- data/lib/no_response/models/shared/screeningmatch.rb +50 -0
- data/lib/no_response/models/shared/screeningmatch.rbi +20 -0
- data/lib/no_response/models/shared/screeningmatchevidence.rb +57 -0
- data/lib/no_response/models/shared/screeningmatchevidence.rbi +26 -0
- data/lib/no_response/models/shared/screeningmatchevidencekind.rb +25 -0
- data/lib/no_response/models/shared/screeningmatchevidencekind.rbi +9 -0
- data/lib/no_response/models/shared/screeningmedia.rb +141 -0
- data/lib/no_response/models/shared/screeningmedia.rbi +74 -0
- data/lib/no_response/models/shared/screeningplatformcoverage.rb +80 -0
- data/lib/no_response/models/shared/screeningplatformcoverage.rbi +32 -0
- data/lib/no_response/models/shared/screeningplatformcoveragestatus.rb +22 -0
- data/lib/no_response/models/shared/screeningplatformcoveragestatus.rbi +9 -0
- data/lib/no_response/models/shared/screeningpost.rb +111 -0
- data/lib/no_response/models/shared/screeningpost.rbi +62 -0
- data/lib/no_response/models/shared/screeningprofile.rb +193 -0
- data/lib/no_response/models/shared/screeningprofile.rbi +104 -0
- data/lib/no_response/models/shared/screeningrequest.rb +2 -5
- data/lib/no_response/models/shared/screeningspend.rb +41 -0
- data/lib/no_response/models/shared/screeningspend.rbi +20 -0
- data/lib/no_response/models/shared/screeningspendline.rb +57 -0
- data/lib/no_response/models/shared/screeningspendline.rbi +26 -0
- data/lib/no_response/models/shared/screeningspendlinerole.rb +20 -0
- data/lib/no_response/models/shared/screeningspendlinerole.rbi +9 -0
- data/lib/no_response/models/shared/screeningstatus.rb +1 -1
- data/lib/no_response/models/shared.rb +20 -5
- data/lib/no_response/sdkconfiguration.rb +2 -2
- metadata +42 -12
- data/lib/no_response/models/shared/attendee_coverage.rb +0 -23
- data/lib/no_response/models/shared/finding.rb +0 -23
- data/lib/no_response/models/shared/profile.rb +0 -23
- data/lib/no_response/models/shared/screening_platform.rb +0 -27
- data/lib/no_response/models/shared/screeningrequest_platform.rb +0 -24
- data/lib/no_response/models/shared/screeningrequest_platform.rbi +0 -9
|
@@ -28,7 +28,7 @@ module NoResponse
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
)
|
|
31
|
-
# partial finished with some attendees not covered; attendees_failed
|
|
31
|
+
# partial finished with some attendees or platforms not covered; attendees_failed and attendees_partial count them.
|
|
32
32
|
field(
|
|
33
33
|
:status,
|
|
34
34
|
Models::Shared::ScreeningStatus,
|
|
@@ -55,7 +55,7 @@ module NoResponse
|
|
|
55
55
|
|
|
56
56
|
field(
|
|
57
57
|
:platforms,
|
|
58
|
-
Crystalline::Array.new(Models::Shared::
|
|
58
|
+
Crystalline::Array.new(Models::Shared::HandlePlatform),
|
|
59
59
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("platforms"), required: true}}
|
|
60
60
|
)
|
|
61
61
|
|
|
@@ -100,6 +100,12 @@ module NoResponse
|
|
|
100
100
|
::Integer,
|
|
101
101
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("attendees_failed"), required: true}}
|
|
102
102
|
)
|
|
103
|
+
# Attendees screened with some requested platform not covered; their coverage names which.
|
|
104
|
+
field(
|
|
105
|
+
:attendees_partial,
|
|
106
|
+
::Integer,
|
|
107
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("attendees_partial"), required: true}}
|
|
108
|
+
)
|
|
103
109
|
# What the screening was estimated to cost when it started, in minor units of USD (cents): its attendees at its depth and platforms. Until the screening finishes, what it has not yet spent counts against the environment's screening_daily_cap.
|
|
104
110
|
field(
|
|
105
111
|
:estimated_spend,
|
|
@@ -112,6 +118,12 @@ module NoResponse
|
|
|
112
118
|
::Integer,
|
|
113
119
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("spent"), required: true}}
|
|
114
120
|
)
|
|
121
|
+
# What screening cost, in US cents, in total and per implementation.
|
|
122
|
+
field(
|
|
123
|
+
:spend,
|
|
124
|
+
Models::Shared::ScreeningSpend,
|
|
125
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("spend"), required: true}}
|
|
126
|
+
)
|
|
115
127
|
|
|
116
128
|
field(
|
|
117
129
|
:started_at,
|
|
@@ -138,7 +150,7 @@ module NoResponse
|
|
|
138
150
|
environment: Models::Shared::AuditSettingsEnvironment,
|
|
139
151
|
status: Models::Shared::ScreeningStatus,
|
|
140
152
|
depth: Models::Shared::ScreeningDepth,
|
|
141
|
-
platforms: T::Array[Models::Shared::
|
|
153
|
+
platforms: T::Array[Models::Shared::HandlePlatform],
|
|
142
154
|
requested_by: ::String,
|
|
143
155
|
created_at: ::String,
|
|
144
156
|
expires_at: ::String,
|
|
@@ -146,8 +158,10 @@ module NoResponse
|
|
|
146
158
|
attendees_done: ::Integer,
|
|
147
159
|
attendees_flagged: ::Integer,
|
|
148
160
|
attendees_failed: ::Integer,
|
|
161
|
+
attendees_partial: ::Integer,
|
|
149
162
|
estimated_spend: ::Integer,
|
|
150
163
|
spent: ::Integer,
|
|
164
|
+
spend: Models::Shared::ScreeningSpend,
|
|
151
165
|
started_at: T.nilable(::String),
|
|
152
166
|
finished_at: T.nilable(::String),
|
|
153
167
|
error_code: T.nilable(::String)
|
|
@@ -168,8 +182,10 @@ module NoResponse
|
|
|
168
182
|
attendees_done:,
|
|
169
183
|
attendees_flagged:,
|
|
170
184
|
attendees_failed:,
|
|
185
|
+
attendees_partial:,
|
|
171
186
|
estimated_spend:,
|
|
172
187
|
spent:,
|
|
188
|
+
spend:,
|
|
173
189
|
started_at: nil,
|
|
174
190
|
finished_at: nil,
|
|
175
191
|
error_code: nil
|
|
@@ -187,8 +203,10 @@ module NoResponse
|
|
|
187
203
|
@attendees_done = attendees_done
|
|
188
204
|
@attendees_flagged = attendees_flagged
|
|
189
205
|
@attendees_failed = attendees_failed
|
|
206
|
+
@attendees_partial = attendees_partial
|
|
190
207
|
@estimated_spend = estimated_spend
|
|
191
208
|
@spent = spent
|
|
209
|
+
@spend = spend
|
|
192
210
|
@started_at = started_at
|
|
193
211
|
@finished_at = finished_at
|
|
194
212
|
@error_code = error_code
|
|
@@ -210,8 +228,10 @@ module NoResponse
|
|
|
210
228
|
return false unless @attendees_done == other.attendees_done
|
|
211
229
|
return false unless @attendees_flagged == other.attendees_flagged
|
|
212
230
|
return false unless @attendees_failed == other.attendees_failed
|
|
231
|
+
return false unless @attendees_partial == other.attendees_partial
|
|
213
232
|
return false unless @estimated_spend == other.estimated_spend
|
|
214
233
|
return false unless @spent == other.spent
|
|
234
|
+
return false unless @spend == other.spend
|
|
215
235
|
return false unless @started_at == other.started_at
|
|
216
236
|
return false unless @finished_at == other.finished_at
|
|
217
237
|
return false unless @error_code == other.error_code
|
|
@@ -84,6 +84,12 @@ class NoResponse::Models::Shared::Screening
|
|
|
84
84
|
def attendees_failed=(str_)
|
|
85
85
|
end
|
|
86
86
|
|
|
87
|
+
def attendees_partial
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def attendees_partial=(str_)
|
|
91
|
+
end
|
|
92
|
+
|
|
87
93
|
def estimated_spend
|
|
88
94
|
end
|
|
89
95
|
|
|
@@ -96,6 +102,12 @@ class NoResponse::Models::Shared::Screening
|
|
|
96
102
|
def spent=(str_)
|
|
97
103
|
end
|
|
98
104
|
|
|
105
|
+
def spend
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def spend=(str_)
|
|
109
|
+
end
|
|
110
|
+
|
|
99
111
|
def started_at
|
|
100
112
|
end
|
|
101
113
|
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# The denominator of a screening: accounts found, how many could be read, items read and the period they span, so a clean result is distinct from a person nobody could see.
|
|
8
|
+
class ScreeningCoverage
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
field(
|
|
13
|
+
:accounts_found,
|
|
14
|
+
::Integer,
|
|
15
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("accounts_found"), required: true}}
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
field(
|
|
19
|
+
:accounts_accessible,
|
|
20
|
+
::Integer,
|
|
21
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("accounts_accessible"), required: true}}
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
field(
|
|
25
|
+
:items_read,
|
|
26
|
+
::Integer,
|
|
27
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("items_read"), required: true}}
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
field(
|
|
31
|
+
:platforms,
|
|
32
|
+
Crystalline::Array.new(Models::Shared::ScreeningPlatformCoverage),
|
|
33
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("platforms"), required: true}}
|
|
34
|
+
)
|
|
35
|
+
# The oldest item read on any platform.
|
|
36
|
+
field(
|
|
37
|
+
:period_from,
|
|
38
|
+
Crystalline::Nilable.new(::String),
|
|
39
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("period_from")}}
|
|
40
|
+
)
|
|
41
|
+
# The newest item read on any platform.
|
|
42
|
+
field(
|
|
43
|
+
:period_to,
|
|
44
|
+
Crystalline::Nilable.new(::String),
|
|
45
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("period_to")}}
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
sig {
|
|
49
|
+
params(
|
|
50
|
+
accounts_found: ::Integer,
|
|
51
|
+
accounts_accessible: ::Integer,
|
|
52
|
+
items_read: ::Integer,
|
|
53
|
+
platforms: T::Array[Models::Shared::ScreeningPlatformCoverage],
|
|
54
|
+
period_from: T.nilable(::String),
|
|
55
|
+
period_to: T.nilable(::String)
|
|
56
|
+
)
|
|
57
|
+
.void
|
|
58
|
+
}
|
|
59
|
+
def initialize(accounts_found:, accounts_accessible:, items_read:, platforms:, period_from: nil, period_to: nil)
|
|
60
|
+
@accounts_found = accounts_found
|
|
61
|
+
@accounts_accessible = accounts_accessible
|
|
62
|
+
@items_read = items_read
|
|
63
|
+
@platforms = platforms
|
|
64
|
+
@period_from = period_from
|
|
65
|
+
@period_to = period_to
|
|
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 @accounts_found == other.accounts_found
|
|
72
|
+
return false unless @accounts_accessible == other.accounts_accessible
|
|
73
|
+
return false unless @items_read == other.items_read
|
|
74
|
+
return false unless @platforms == other.platforms
|
|
75
|
+
return false unless @period_from == other.period_from
|
|
76
|
+
return false unless @period_to == other.period_to
|
|
77
|
+
true
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::ScreeningCoverage
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::ScreeningCoverage
|
|
9
|
+
def accounts_found
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def accounts_found=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def accounts_accessible
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def accounts_accessible=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def items_read
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def items_read=(str_)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def platforms
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def platforms=(str_)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def period_from
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def period_from=(str_)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def period_to
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def period_to=(str_)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# Something the analyser flagged. band is capped by the strongest match among the profiles of its evidence: possible at most moderate, probable at most high. capped_from is the band the analyser gave when the cap lowered it.
|
|
8
|
+
class ScreeningFinding
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
field :id, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("id"), required: true}}
|
|
13
|
+
# What a finding is about: a direct threat to the principal or the event, intent to harm without a named target, fixation on the principal, a grievance against the host, research into the venue, route or security, weapons tied to any of these, disruption or protest planning toward this event, violent extremist content or identification, prior harassment or stalking of staff or principals, or posting the principal's addresses or movements.
|
|
14
|
+
field(
|
|
15
|
+
:category,
|
|
16
|
+
Models::Shared::FindingCategory,
|
|
17
|
+
{
|
|
18
|
+
'format_json': {
|
|
19
|
+
'letter_case': ::NoResponse::Utils.field_name("category"),
|
|
20
|
+
required: true,
|
|
21
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::FindingCategory, false)
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
)
|
|
25
|
+
# How severe a finding is, most severe first.
|
|
26
|
+
field(
|
|
27
|
+
:band,
|
|
28
|
+
Models::Shared::FindingBand,
|
|
29
|
+
{
|
|
30
|
+
'format_json': {
|
|
31
|
+
'letter_case': ::NoResponse::Utils.field_name("band"),
|
|
32
|
+
required: true,
|
|
33
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::FindingBand, false)
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
field(
|
|
39
|
+
:confidence,
|
|
40
|
+
::Float,
|
|
41
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("confidence"), required: true}}
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
field(
|
|
45
|
+
:rationale,
|
|
46
|
+
::String,
|
|
47
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("rationale"), required: true}}
|
|
48
|
+
)
|
|
49
|
+
# The posts and media that support the finding.
|
|
50
|
+
field(
|
|
51
|
+
:evidence,
|
|
52
|
+
Crystalline::Array.new(::String),
|
|
53
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("evidence"), required: true}}
|
|
54
|
+
)
|
|
55
|
+
# The resolver, collector or analyser that produced a record, by its catalogue name.
|
|
56
|
+
field(
|
|
57
|
+
:analyser,
|
|
58
|
+
::String,
|
|
59
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("analyser"), required: true}}
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
field(
|
|
63
|
+
:model,
|
|
64
|
+
::String,
|
|
65
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("model"), required: true}}
|
|
66
|
+
)
|
|
67
|
+
# What the analysis cost, in US cents.
|
|
68
|
+
field(
|
|
69
|
+
:spend_minor,
|
|
70
|
+
::Integer,
|
|
71
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("spend_minor"), required: true}}
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
field(
|
|
75
|
+
:created_at,
|
|
76
|
+
::String,
|
|
77
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("created_at"), required: true}}
|
|
78
|
+
)
|
|
79
|
+
# How severe a finding is, most severe first.
|
|
80
|
+
field(
|
|
81
|
+
:capped_from,
|
|
82
|
+
Crystalline::Nilable.new(Models::Shared::FindingBand),
|
|
83
|
+
{
|
|
84
|
+
'format_json': {
|
|
85
|
+
'letter_case': ::NoResponse::Utils.field_name("capped_from"),
|
|
86
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::FindingBand, true)
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
sig {
|
|
92
|
+
params(
|
|
93
|
+
id: ::String,
|
|
94
|
+
category: Models::Shared::FindingCategory,
|
|
95
|
+
band: Models::Shared::FindingBand,
|
|
96
|
+
confidence: ::Float,
|
|
97
|
+
rationale: ::String,
|
|
98
|
+
evidence: T::Array[::String],
|
|
99
|
+
analyser: ::String,
|
|
100
|
+
model: ::String,
|
|
101
|
+
spend_minor: ::Integer,
|
|
102
|
+
created_at: ::String,
|
|
103
|
+
capped_from: T.nilable(Models::Shared::FindingBand)
|
|
104
|
+
)
|
|
105
|
+
.void
|
|
106
|
+
}
|
|
107
|
+
def initialize(
|
|
108
|
+
id:,
|
|
109
|
+
category:,
|
|
110
|
+
band:,
|
|
111
|
+
confidence:,
|
|
112
|
+
rationale:,
|
|
113
|
+
evidence:,
|
|
114
|
+
analyser:,
|
|
115
|
+
model:,
|
|
116
|
+
spend_minor:,
|
|
117
|
+
created_at:,
|
|
118
|
+
capped_from: nil
|
|
119
|
+
)
|
|
120
|
+
@id = id
|
|
121
|
+
@category = category
|
|
122
|
+
@band = band
|
|
123
|
+
@confidence = confidence
|
|
124
|
+
@rationale = rationale
|
|
125
|
+
@evidence = evidence
|
|
126
|
+
@analyser = analyser
|
|
127
|
+
@model = model
|
|
128
|
+
@spend_minor = spend_minor
|
|
129
|
+
@created_at = created_at
|
|
130
|
+
@capped_from = capped_from
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
134
|
+
def ==(other)
|
|
135
|
+
return false unless other.is_a?(self.class)
|
|
136
|
+
return false unless @id == other.id
|
|
137
|
+
return false unless @category == other.category
|
|
138
|
+
return false unless @band == other.band
|
|
139
|
+
return false unless @confidence == other.confidence
|
|
140
|
+
return false unless @rationale == other.rationale
|
|
141
|
+
return false unless @evidence == other.evidence
|
|
142
|
+
return false unless @analyser == other.analyser
|
|
143
|
+
return false unless @model == other.model
|
|
144
|
+
return false unless @spend_minor == other.spend_minor
|
|
145
|
+
return false unless @created_at == other.created_at
|
|
146
|
+
return false unless @capped_from == other.capped_from
|
|
147
|
+
true
|
|
148
|
+
end
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::ScreeningFinding
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::ScreeningFinding
|
|
9
|
+
def id
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def id=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def category
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def category=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def band
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def band=(str_)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def confidence
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def confidence=(str_)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def rationale
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def rationale=(str_)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def evidence
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def evidence=(str_)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def analyser
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def analyser=(str_)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def model
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def model=(str_)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def spend_minor
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def spend_minor=(str_)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def created_at
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def created_at=(str_)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def capped_from
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def capped_from=(str_)
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# How a profile was matched to the attendee: the state its evidence earns, and the evidence.
|
|
8
|
+
class ScreeningMatch
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
# How sure the screening is that a profile is the attendee's, from its evidence: confirmed is two or more hard identifiers (email, phone, a supplied handle, or a fact an existing source returned), probable is one identifier beyond the name, possible is the name alone.
|
|
13
|
+
field(
|
|
14
|
+
:state,
|
|
15
|
+
Models::Shared::ProfileMatchState,
|
|
16
|
+
{
|
|
17
|
+
'format_json': {
|
|
18
|
+
'letter_case': ::NoResponse::Utils.field_name("state"),
|
|
19
|
+
required: true,
|
|
20
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::ProfileMatchState, false)
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
field(
|
|
26
|
+
:evidence,
|
|
27
|
+
Crystalline::Array.new(Models::Shared::ScreeningMatchEvidence),
|
|
28
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("evidence"), required: true}}
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
sig {
|
|
32
|
+
params(state: Models::Shared::ProfileMatchState, evidence: T::Array[Models::Shared::ScreeningMatchEvidence])
|
|
33
|
+
.void
|
|
34
|
+
}
|
|
35
|
+
def initialize(state:, evidence:)
|
|
36
|
+
@state = state
|
|
37
|
+
@evidence = evidence
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
41
|
+
def ==(other)
|
|
42
|
+
return false unless other.is_a?(self.class)
|
|
43
|
+
return false unless @state == other.state
|
|
44
|
+
return false unless @evidence == other.evidence
|
|
45
|
+
true
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::ScreeningMatch
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::ScreeningMatch
|
|
9
|
+
def state
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def state=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def evidence
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def evidence=(str_)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# One identifier that ties a profile to the attendee.
|
|
8
|
+
class ScreeningMatchEvidence
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
# What matched. email, phone, supplied_handle and source_fact are hard identifiers; company, city and school are soft.
|
|
13
|
+
field(
|
|
14
|
+
:kind,
|
|
15
|
+
Models::Shared::ScreeningMatchEvidenceKind,
|
|
16
|
+
{
|
|
17
|
+
'format_json': {
|
|
18
|
+
'letter_case': ::NoResponse::Utils.field_name("kind"),
|
|
19
|
+
required: true,
|
|
20
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::ScreeningMatchEvidenceKind, false)
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
)
|
|
24
|
+
# The resolver, collector or analyser that produced a record, by its catalogue name.
|
|
25
|
+
field(
|
|
26
|
+
:resolver,
|
|
27
|
+
::String,
|
|
28
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("resolver"), required: true}}
|
|
29
|
+
)
|
|
30
|
+
# Where the match was seen, such as the profile field that carried it.
|
|
31
|
+
field(
|
|
32
|
+
:detail,
|
|
33
|
+
Crystalline::Nilable.new(::String),
|
|
34
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("detail")}}
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
sig {
|
|
38
|
+
params(kind: Models::Shared::ScreeningMatchEvidenceKind, resolver: ::String, detail: T.nilable(::String)).void
|
|
39
|
+
}
|
|
40
|
+
def initialize(kind:, resolver:, detail: nil)
|
|
41
|
+
@kind = kind
|
|
42
|
+
@resolver = resolver
|
|
43
|
+
@detail = detail
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
47
|
+
def ==(other)
|
|
48
|
+
return false unless other.is_a?(self.class)
|
|
49
|
+
return false unless @kind == other.kind
|
|
50
|
+
return false unless @resolver == other.resolver
|
|
51
|
+
return false unless @detail == other.detail
|
|
52
|
+
true
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::ScreeningMatchEvidence
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::ScreeningMatchEvidence
|
|
9
|
+
def kind
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def kind=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def resolver
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def resolver=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def detail
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def detail=(str_)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# ScreeningMatchEvidenceKind - What matched. email, phone, supplied_handle and source_fact are hard identifiers; company, city and school are soft.
|
|
8
|
+
class ScreeningMatchEvidenceKind
|
|
9
|
+
include ::Crystalline::Enum
|
|
10
|
+
enums do
|
|
11
|
+
EMAIL = new("email")
|
|
12
|
+
PHONE = new("phone")
|
|
13
|
+
SUPPLIED_HANDLE = new("supplied_handle")
|
|
14
|
+
SOURCE_FACT = new("source_fact")
|
|
15
|
+
NAME = new("name")
|
|
16
|
+
COMPANY = new("company")
|
|
17
|
+
CITY = new("city")
|
|
18
|
+
SCHOOL = new("school")
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
open!
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|