noresponse 10.0.12 → 10.0.13
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/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 +13 -3
- data/lib/no_response/models/shared/attendee.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/findingband.rb +22 -0
- data/lib/no_response/models/shared/{attendee_coverage.rbi → findingband.rbi} +2 -2
- data/lib/no_response/models/shared/findingcategory.rb +27 -0
- data/lib/no_response/models/shared/{screening_platform.rbi → findingcategory.rbi} +2 -2
- 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/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 +18 -5
- data/lib/no_response/sdkconfiguration.rb +2 -2
- metadata +38 -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
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a9d583f5c8f0b06adc80bb220a841bce567584d6f9c197995799d71720f12aaa
|
|
4
|
+
data.tar.gz: 7cb2890a3937c798476a19f7f89c8c9ca2a149887d9bd4c24cd5fb6f0da161ff
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 20042b422dced170ddff9a2bb330b70462fefaa633b15bd62617ded43d2a32cd5b62d6b070eb284ae99a76dd958c78378594b57ff86dc7c720144be14bf37543
|
|
7
|
+
data.tar.gz: 842ccde2835a7e443e9cc7b429bb4d297b65befe3d0a099358312a97dab85483b14a53bd111eae68c7ad0e4861268fbefeed5f590f96c9bb6a7abd72d5896ded
|
data/lib/no_response/events.rb
CHANGED
|
@@ -3029,7 +3029,7 @@ module NoResponse
|
|
|
3029
3029
|
http_headers: nil
|
|
3030
3030
|
)
|
|
3031
3031
|
# start_screening - Start a screening.
|
|
3032
|
-
# Start a screening of new attendees and everyone on watch or escalated, with an Idempotency-Key. It finishes completed, partial or failed minutes to hours later; poll it. The answer carries estimated_spend; a screening whose estimate exceeds what the daily screening cap has left answers 409 screening_cap_exceeded. The test environment screens with
|
|
3032
|
+
# Start a screening of new attendees and everyone on watch or escalated, with an Idempotency-Key. It finishes completed, partial or failed minutes to hours later; poll it. The answer carries estimated_spend; a screening whose estimate exceeds what the daily screening cap has left answers 409 screening_cap_exceeded. The test environment screens with the synthetic connector, which makes up deterministic profiles, posts and findings.
|
|
3033
3033
|
request = Models::Operations::StartScreeningRequest.new(
|
|
3034
3034
|
workspace_id: workspace_id,
|
|
3035
3035
|
environment: environment,
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# Access - public profiles were read; a private or locked one exists but could not be read.
|
|
8
|
+
class Access
|
|
9
|
+
include ::Crystalline::Enum
|
|
10
|
+
enums do
|
|
11
|
+
PUBLIC = new("public")
|
|
12
|
+
PRIVATE = new("private")
|
|
13
|
+
LOCKED = new("locked")
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
open!
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# typed: true
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
-
class NoResponse::Models::Shared::
|
|
4
|
+
class NoResponse::Models::Shared::Access
|
|
5
5
|
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
-
class NoResponse::Models::Shared::
|
|
8
|
+
class NoResponse::Models::Shared::Access
|
|
9
9
|
end
|
|
@@ -30,10 +30,10 @@ module NoResponse
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
)
|
|
33
|
-
#
|
|
33
|
+
# 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.
|
|
34
34
|
field(
|
|
35
35
|
:coverage,
|
|
36
|
-
Models::Shared::
|
|
36
|
+
Models::Shared::ScreeningCoverage,
|
|
37
37
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("coverage"), required: true}}
|
|
38
38
|
)
|
|
39
39
|
|
|
@@ -48,6 +48,12 @@ module NoResponse
|
|
|
48
48
|
::String,
|
|
49
49
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("updated_at"), required: true}}
|
|
50
50
|
)
|
|
51
|
+
# What screening cost, in US cents, in total and per implementation.
|
|
52
|
+
field(
|
|
53
|
+
:spend,
|
|
54
|
+
Models::Shared::ScreeningSpend,
|
|
55
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("spend"), required: true}}
|
|
56
|
+
)
|
|
51
57
|
# Your own id for the attendee, unique within the event. A later row with the same external id updates this attendee.
|
|
52
58
|
field(
|
|
53
59
|
:external_id,
|
|
@@ -145,9 +151,10 @@ module NoResponse
|
|
|
145
151
|
event_id: ::String,
|
|
146
152
|
name: ::String,
|
|
147
153
|
match_state: Models::Shared::MatchState,
|
|
148
|
-
coverage: Models::Shared::
|
|
154
|
+
coverage: Models::Shared::ScreeningCoverage,
|
|
149
155
|
created_at: ::String,
|
|
150
156
|
updated_at: ::String,
|
|
157
|
+
spend: Models::Shared::ScreeningSpend,
|
|
151
158
|
external_id: T.nilable(::String),
|
|
152
159
|
email: T.nilable(::String),
|
|
153
160
|
phone: T.nilable(::String),
|
|
@@ -172,6 +179,7 @@ module NoResponse
|
|
|
172
179
|
coverage:,
|
|
173
180
|
created_at:,
|
|
174
181
|
updated_at:,
|
|
182
|
+
spend:,
|
|
175
183
|
external_id: nil,
|
|
176
184
|
email: nil,
|
|
177
185
|
phone: nil,
|
|
@@ -193,6 +201,7 @@ module NoResponse
|
|
|
193
201
|
@coverage = coverage
|
|
194
202
|
@created_at = created_at
|
|
195
203
|
@updated_at = updated_at
|
|
204
|
+
@spend = spend
|
|
196
205
|
@external_id = external_id
|
|
197
206
|
@email = email
|
|
198
207
|
@phone = phone
|
|
@@ -218,6 +227,7 @@ module NoResponse
|
|
|
218
227
|
return false unless @coverage == other.coverage
|
|
219
228
|
return false unless @created_at == other.created_at
|
|
220
229
|
return false unless @updated_at == other.updated_at
|
|
230
|
+
return false unless @spend == other.spend
|
|
221
231
|
return false unless @external_id == other.external_id
|
|
222
232
|
return false unless @email == other.email
|
|
223
233
|
return false unless @phone == other.phone
|
|
@@ -15,18 +15,30 @@ module NoResponse
|
|
|
15
15
|
Models::Shared::Attendee,
|
|
16
16
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("attendee"), required: true}}
|
|
17
17
|
)
|
|
18
|
-
# The accounts the screening matched, with how each was matched.
|
|
18
|
+
# The accounts the latest screening matched, with how each was matched.
|
|
19
19
|
field(
|
|
20
20
|
:profiles,
|
|
21
|
-
Crystalline::Array.new(Models::Shared::
|
|
21
|
+
Crystalline::Array.new(Models::Shared::ScreeningProfile),
|
|
22
22
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("profiles"), required: true}}
|
|
23
23
|
)
|
|
24
|
-
# What the screening flagged,
|
|
24
|
+
# What the latest screening flagged, most severe first, each citing its evidence.
|
|
25
25
|
field(
|
|
26
26
|
:findings,
|
|
27
|
-
Crystalline::Array.new(Models::Shared::
|
|
27
|
+
Crystalline::Array.new(Models::Shared::ScreeningFinding),
|
|
28
28
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("findings"), required: true}}
|
|
29
29
|
)
|
|
30
|
+
# The posts the findings cite.
|
|
31
|
+
field(
|
|
32
|
+
:posts,
|
|
33
|
+
Crystalline::Array.new(Models::Shared::ScreeningPost),
|
|
34
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("posts"), required: true}}
|
|
35
|
+
)
|
|
36
|
+
# The images and videos the findings cite.
|
|
37
|
+
field(
|
|
38
|
+
:media,
|
|
39
|
+
Crystalline::Array.new(Models::Shared::ScreeningMedia),
|
|
40
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("media"), required: true}}
|
|
41
|
+
)
|
|
30
42
|
# Every recorded decision, oldest first.
|
|
31
43
|
field(
|
|
32
44
|
:reviews,
|
|
@@ -37,16 +49,20 @@ module NoResponse
|
|
|
37
49
|
sig {
|
|
38
50
|
params(
|
|
39
51
|
attendee: Models::Shared::Attendee,
|
|
40
|
-
profiles: T::Array[Models::Shared::
|
|
41
|
-
findings: T::Array[Models::Shared::
|
|
52
|
+
profiles: T::Array[Models::Shared::ScreeningProfile],
|
|
53
|
+
findings: T::Array[Models::Shared::ScreeningFinding],
|
|
54
|
+
posts: T::Array[Models::Shared::ScreeningPost],
|
|
55
|
+
media: T::Array[Models::Shared::ScreeningMedia],
|
|
42
56
|
reviews: T::Array[Models::Shared::AttendeeReview]
|
|
43
57
|
)
|
|
44
58
|
.void
|
|
45
59
|
}
|
|
46
|
-
def initialize(attendee:, profiles:, findings:, reviews:)
|
|
60
|
+
def initialize(attendee:, profiles:, findings:, posts:, media:, reviews:)
|
|
47
61
|
@attendee = attendee
|
|
48
62
|
@profiles = profiles
|
|
49
63
|
@findings = findings
|
|
64
|
+
@posts = posts
|
|
65
|
+
@media = media
|
|
50
66
|
@reviews = reviews
|
|
51
67
|
end
|
|
52
68
|
|
|
@@ -56,6 +72,8 @@ module NoResponse
|
|
|
56
72
|
return false unless @attendee == other.attendee
|
|
57
73
|
return false unless @profiles == other.profiles
|
|
58
74
|
return false unless @findings == other.findings
|
|
75
|
+
return false unless @posts == other.posts
|
|
76
|
+
return false unless @media == other.media
|
|
59
77
|
return false unless @reviews == other.reviews
|
|
60
78
|
true
|
|
61
79
|
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# FindingBand - How severe a finding is, most severe first.
|
|
8
|
+
class FindingBand
|
|
9
|
+
include ::Crystalline::Enum
|
|
10
|
+
enums do
|
|
11
|
+
CRITICAL = new("critical")
|
|
12
|
+
HIGH = new("high")
|
|
13
|
+
MODERATE = new("moderate")
|
|
14
|
+
LOW = new("low")
|
|
15
|
+
INFO = new("info")
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
open!
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# typed: true
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
-
class NoResponse::Models::Shared::
|
|
4
|
+
class NoResponse::Models::Shared::FindingBand
|
|
5
5
|
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
-
class NoResponse::Models::Shared::
|
|
8
|
+
class NoResponse::Models::Shared::FindingBand
|
|
9
9
|
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# FindingCategory - 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.
|
|
8
|
+
class FindingCategory
|
|
9
|
+
include ::Crystalline::Enum
|
|
10
|
+
enums do
|
|
11
|
+
DIRECT_THREAT = new("direct_threat")
|
|
12
|
+
HARM_INTENT = new("harm_intent")
|
|
13
|
+
FIXATION = new("fixation")
|
|
14
|
+
GRIEVANCE = new("grievance")
|
|
15
|
+
SECURITY_RESEARCH = new("security_research")
|
|
16
|
+
WEAPONS = new("weapons")
|
|
17
|
+
DISRUPTION = new("disruption")
|
|
18
|
+
VIOLENT_EXTREMISM = new("violent_extremism")
|
|
19
|
+
HARASSMENT = new("harassment")
|
|
20
|
+
MOVEMENT_EXPOSURE = new("movement_exposure")
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
open!
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# typed: true
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
-
class NoResponse::Models::Shared::
|
|
4
|
+
class NoResponse::Models::Shared::FindingCategory
|
|
5
5
|
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
-
class NoResponse::Models::Shared::
|
|
8
|
+
class NoResponse::Models::Shared::FindingCategory
|
|
9
9
|
end
|
|
@@ -9,6 +9,7 @@ module NoResponse
|
|
|
9
9
|
extend T::Sig
|
|
10
10
|
include Crystalline::MetadataFields
|
|
11
11
|
|
|
12
|
+
# A platform a screening can cover. synthetic is the deterministic connector's own platform, for exercising the product end to end with no network.
|
|
12
13
|
field(
|
|
13
14
|
:platform,
|
|
14
15
|
Models::Shared::HandlePlatform,
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
module NoResponse
|
|
5
5
|
module Models
|
|
6
6
|
module Shared
|
|
7
|
-
|
|
7
|
+
# HandlePlatform - A platform a screening can cover. synthetic is the deterministic connector's own platform, for exercising the product end to end with no network.
|
|
8
8
|
class HandlePlatform
|
|
9
9
|
include ::Crystalline::Enum
|
|
10
10
|
enums do
|
|
@@ -18,6 +18,7 @@ module NoResponse
|
|
|
18
18
|
REDDIT = new("reddit")
|
|
19
19
|
TELEGRAM = new("telegram")
|
|
20
20
|
LINKEDIN = new("linkedin")
|
|
21
|
+
SYNTHETIC = new("synthetic")
|
|
21
22
|
end
|
|
22
23
|
|
|
23
24
|
open!
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
|
|
8
|
+
class MediaType
|
|
9
|
+
include ::Crystalline::Enum
|
|
10
|
+
enums do
|
|
11
|
+
IMAGE = new("image")
|
|
12
|
+
VIDEO = new("video")
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
open!
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# typed: true
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
-
class NoResponse::Models::Shared::
|
|
4
|
+
class NoResponse::Models::Shared::MediaType
|
|
5
5
|
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
-
class NoResponse::Models::Shared::
|
|
8
|
+
class NoResponse::Models::Shared::MediaType
|
|
9
9
|
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# ProfileMatchState - 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.
|
|
8
|
+
class ProfileMatchState
|
|
9
|
+
include ::Crystalline::Enum
|
|
10
|
+
enums do
|
|
11
|
+
CONFIRMED = new("confirmed")
|
|
12
|
+
PROBABLE = new("probable")
|
|
13
|
+
POSSIBLE = new("possible")
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
open!
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -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
|