noresponse 10.0.11 → 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/attendeedecided.rb +89 -0
- data/lib/no_response/models/shared/attendeedecided.rbi +44 -0
- data/lib/no_response/models/shared/attendeedecidedevent.rb +70 -0
- data/lib/no_response/models/shared/attendeedecidedevent.rbi +38 -0
- data/lib/no_response/models/shared/attendeeflagged.rb +95 -0
- data/lib/no_response/models/shared/attendeeflagged.rbi +44 -0
- data/lib/no_response/models/shared/attendeeflaggedevent.rb +70 -0
- data/lib/no_response/models/shared/attendeeflaggedevent.rbi +38 -0
- data/lib/no_response/models/shared/attendeeflaggedmatchstate.rb +19 -0
- data/lib/no_response/models/shared/attendeeflaggedmatchstate.rbi +9 -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/screeningcompleted.rb +146 -0
- data/lib/no_response/models/shared/screeningcompleted.rbi +74 -0
- data/lib/no_response/models/shared/screeningcompletedbyband.rb +52 -0
- data/lib/no_response/models/shared/screeningcompletedbyband.rbi +38 -0
- data/lib/no_response/models/shared/screeningcompletedevent.rb +70 -0
- data/lib/no_response/models/shared/screeningcompletedevent.rbi +38 -0
- data/lib/no_response/models/shared/screeningcompletedstatus.rb +17 -0
- data/lib/no_response/models/shared/screeningcompletedstatus.rbi +9 -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/webhookdeliveryattempt.rb +1 -1
- data/lib/no_response/models/shared/webhookreplay.rb +1 -1
- data/lib/no_response/models/shared.rb +27 -5
- data/lib/no_response/sdkconfiguration.rb +2 -2
- data/lib/no_response/webhook_verification.rb +8 -2
- metadata +56 -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
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# A reviewer recorded a decision on an attendee. The decision's note stays in the API. Sent once per recorded review; an attendee's latest review is its decision, so order by decided_at.
|
|
8
|
+
class AttendeeDecided
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
# The attendee's event.
|
|
13
|
+
field(
|
|
14
|
+
:event_id,
|
|
15
|
+
::String,
|
|
16
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("event_id"), required: true}}
|
|
17
|
+
)
|
|
18
|
+
# The attendee decided on.
|
|
19
|
+
field(
|
|
20
|
+
:attendee_id,
|
|
21
|
+
::String,
|
|
22
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("attendee_id"), required: true}}
|
|
23
|
+
)
|
|
24
|
+
# The recorded review.
|
|
25
|
+
field(
|
|
26
|
+
:review_id,
|
|
27
|
+
::String,
|
|
28
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("review_id"), required: true}}
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
field(
|
|
32
|
+
:decision,
|
|
33
|
+
Models::Shared::AttendeeDecision,
|
|
34
|
+
{
|
|
35
|
+
'format_json': {
|
|
36
|
+
'letter_case': ::NoResponse::Utils.field_name("decision"),
|
|
37
|
+
required: true,
|
|
38
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::AttendeeDecision, false)
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
)
|
|
42
|
+
# Who decided: the member's external user id, or the API key's label, as the attendee's decided_by.
|
|
43
|
+
field(
|
|
44
|
+
:decided_by,
|
|
45
|
+
::String,
|
|
46
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("decided_by"), required: true}}
|
|
47
|
+
)
|
|
48
|
+
# When the decision was recorded; equal to the event's created_at.
|
|
49
|
+
field(
|
|
50
|
+
:decided_at,
|
|
51
|
+
::String,
|
|
52
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("decided_at"), required: true}}
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
sig {
|
|
56
|
+
params(
|
|
57
|
+
event_id: ::String,
|
|
58
|
+
attendee_id: ::String,
|
|
59
|
+
review_id: ::String,
|
|
60
|
+
decision: Models::Shared::AttendeeDecision,
|
|
61
|
+
decided_by: ::String,
|
|
62
|
+
decided_at: ::String
|
|
63
|
+
)
|
|
64
|
+
.void
|
|
65
|
+
}
|
|
66
|
+
def initialize(event_id:, attendee_id:, review_id:, decision:, decided_by:, decided_at:)
|
|
67
|
+
@event_id = event_id
|
|
68
|
+
@attendee_id = attendee_id
|
|
69
|
+
@review_id = review_id
|
|
70
|
+
@decision = decision
|
|
71
|
+
@decided_by = decided_by
|
|
72
|
+
@decided_at = decided_at
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
76
|
+
def ==(other)
|
|
77
|
+
return false unless other.is_a?(self.class)
|
|
78
|
+
return false unless @event_id == other.event_id
|
|
79
|
+
return false unless @attendee_id == other.attendee_id
|
|
80
|
+
return false unless @review_id == other.review_id
|
|
81
|
+
return false unless @decision == other.decision
|
|
82
|
+
return false unless @decided_by == other.decided_by
|
|
83
|
+
return false unless @decided_at == other.decided_at
|
|
84
|
+
true
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::AttendeeDecided
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::AttendeeDecided
|
|
9
|
+
def event_id
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def event_id=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def attendee_id
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def attendee_id=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def review_id
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def review_id=(str_)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def decision
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def decision=(str_)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def decided_by
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def decided_by=(str_)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def decided_at
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def decided_at=(str_)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# The attendee.decided event.
|
|
8
|
+
class AttendeeDecidedEvent
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
# The event id, equal to the NR-Webhook-Id header and across redeliveries and every endpoint the event fans out to.
|
|
13
|
+
field :id, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("id"), required: true}}
|
|
14
|
+
# When the event was created. Equal across redeliveries; the signing timestamp header is per delivery.
|
|
15
|
+
field(
|
|
16
|
+
:created_at,
|
|
17
|
+
::String,
|
|
18
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("created_at"), required: true}}
|
|
19
|
+
)
|
|
20
|
+
# A reviewer recorded a decision on an attendee. The decision's note stays in the API. Sent once per recorded review; an attendee's latest review is its decision, so order by decided_at.
|
|
21
|
+
field(
|
|
22
|
+
:data,
|
|
23
|
+
Models::Shared::AttendeeDecided,
|
|
24
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("data"), required: true}}
|
|
25
|
+
)
|
|
26
|
+
# Always attendee.decided.
|
|
27
|
+
field :type, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("type"), required: true}}
|
|
28
|
+
# Present, and true, only on an event sent by POST /v1/webhooks/{endpoint_id}/test: its data is a fixed example assessment, not one of the workspace's, so a receiver acknowledges it and applies nothing. Real events have no test member.
|
|
29
|
+
field(
|
|
30
|
+
:test,
|
|
31
|
+
Crystalline::Nilable.new(Crystalline::Boolean.new),
|
|
32
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("test")}}
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
sig {
|
|
36
|
+
params(
|
|
37
|
+
id: ::String,
|
|
38
|
+
created_at: ::String,
|
|
39
|
+
data: Models::Shared::AttendeeDecided,
|
|
40
|
+
type: ::String,
|
|
41
|
+
test: T.nilable(T::Boolean)
|
|
42
|
+
)
|
|
43
|
+
.void
|
|
44
|
+
}
|
|
45
|
+
def initialize(id:, created_at:, data:, type: "attendee.decided", test: nil)
|
|
46
|
+
@id = id
|
|
47
|
+
@created_at = created_at
|
|
48
|
+
@data = data
|
|
49
|
+
unless type == "attendee.decided"
|
|
50
|
+
raise ArgumentError, "Invalid value for type"
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
@type = "attendee.decided"
|
|
54
|
+
@test = test
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
58
|
+
def ==(other)
|
|
59
|
+
return false unless other.is_a?(self.class)
|
|
60
|
+
return false unless @id == other.id
|
|
61
|
+
return false unless @created_at == other.created_at
|
|
62
|
+
return false unless @data == other.data
|
|
63
|
+
return false unless @type == other.type
|
|
64
|
+
return false unless @test == other.test
|
|
65
|
+
true
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::AttendeeDecidedEvent
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::AttendeeDecidedEvent
|
|
9
|
+
def id
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def id=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def created_at
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def created_at=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def data
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def data=(str_)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def type
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def type=(str_)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def test
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def test=(str_)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# A screening recorded a finding on an attendee. It says which attendee and how severe, not what they posted, who they are or why: GET the attendee report for the findings. Sent once per screening that flags the attendee, so a re-screen of someone on watch announces them again.
|
|
8
|
+
class AttendeeFlagged
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
# The attendee's event.
|
|
13
|
+
field(
|
|
14
|
+
:event_id,
|
|
15
|
+
::String,
|
|
16
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("event_id"), required: true}}
|
|
17
|
+
)
|
|
18
|
+
# The flagged attendee.
|
|
19
|
+
field(
|
|
20
|
+
:attendee_id,
|
|
21
|
+
::String,
|
|
22
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("attendee_id"), required: true}}
|
|
23
|
+
)
|
|
24
|
+
# The screening that flagged them.
|
|
25
|
+
field(
|
|
26
|
+
:screening_id,
|
|
27
|
+
::String,
|
|
28
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("screening_id"), required: true}}
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
field(
|
|
32
|
+
:highest_band,
|
|
33
|
+
Models::Shared::HighestBand,
|
|
34
|
+
{
|
|
35
|
+
'format_json': {
|
|
36
|
+
'letter_case': ::NoResponse::Utils.field_name("highest_band"),
|
|
37
|
+
required: true,
|
|
38
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::HighestBand, false)
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
)
|
|
42
|
+
# How sure the screening is that the accounts it read are the attendee's. A finding on a possible match is at most moderate, on a probable match at most high.
|
|
43
|
+
field(
|
|
44
|
+
:match_state,
|
|
45
|
+
Models::Shared::AttendeeFlaggedMatchState,
|
|
46
|
+
{
|
|
47
|
+
'format_json': {
|
|
48
|
+
'letter_case': ::NoResponse::Utils.field_name("match_state"),
|
|
49
|
+
required: true,
|
|
50
|
+
'decoder': ::NoResponse::Utils.enum_from_string(Models::Shared::AttendeeFlaggedMatchState, false)
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
)
|
|
54
|
+
# When the screening recorded the finding; equal to the event's created_at.
|
|
55
|
+
field(
|
|
56
|
+
:flagged_at,
|
|
57
|
+
::String,
|
|
58
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("flagged_at"), required: true}}
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
sig {
|
|
62
|
+
params(
|
|
63
|
+
event_id: ::String,
|
|
64
|
+
attendee_id: ::String,
|
|
65
|
+
screening_id: ::String,
|
|
66
|
+
highest_band: Models::Shared::HighestBand,
|
|
67
|
+
match_state: Models::Shared::AttendeeFlaggedMatchState,
|
|
68
|
+
flagged_at: ::String
|
|
69
|
+
)
|
|
70
|
+
.void
|
|
71
|
+
}
|
|
72
|
+
def initialize(event_id:, attendee_id:, screening_id:, highest_band:, match_state:, flagged_at:)
|
|
73
|
+
@event_id = event_id
|
|
74
|
+
@attendee_id = attendee_id
|
|
75
|
+
@screening_id = screening_id
|
|
76
|
+
@highest_band = highest_band
|
|
77
|
+
@match_state = match_state
|
|
78
|
+
@flagged_at = flagged_at
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
82
|
+
def ==(other)
|
|
83
|
+
return false unless other.is_a?(self.class)
|
|
84
|
+
return false unless @event_id == other.event_id
|
|
85
|
+
return false unless @attendee_id == other.attendee_id
|
|
86
|
+
return false unless @screening_id == other.screening_id
|
|
87
|
+
return false unless @highest_band == other.highest_band
|
|
88
|
+
return false unless @match_state == other.match_state
|
|
89
|
+
return false unless @flagged_at == other.flagged_at
|
|
90
|
+
true
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::AttendeeFlagged
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::AttendeeFlagged
|
|
9
|
+
def event_id
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def event_id=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def attendee_id
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def attendee_id=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def screening_id
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def screening_id=(str_)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def highest_band
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def highest_band=(str_)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def match_state
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def match_state=(str_)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def flagged_at
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def flagged_at=(str_)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# The attendee.flagged event.
|
|
8
|
+
class AttendeeFlaggedEvent
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
# The event id, equal to the NR-Webhook-Id header and across redeliveries and every endpoint the event fans out to.
|
|
13
|
+
field :id, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("id"), required: true}}
|
|
14
|
+
# When the event was created. Equal across redeliveries; the signing timestamp header is per delivery.
|
|
15
|
+
field(
|
|
16
|
+
:created_at,
|
|
17
|
+
::String,
|
|
18
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("created_at"), required: true}}
|
|
19
|
+
)
|
|
20
|
+
# A screening recorded a finding on an attendee. It says which attendee and how severe, not what they posted, who they are or why: GET the attendee report for the findings. Sent once per screening that flags the attendee, so a re-screen of someone on watch announces them again.
|
|
21
|
+
field(
|
|
22
|
+
:data,
|
|
23
|
+
Models::Shared::AttendeeFlagged,
|
|
24
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("data"), required: true}}
|
|
25
|
+
)
|
|
26
|
+
# Always attendee.flagged.
|
|
27
|
+
field :type, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("type"), required: true}}
|
|
28
|
+
# Present, and true, only on an event sent by POST /v1/webhooks/{endpoint_id}/test: its data is a fixed example assessment, not one of the workspace's, so a receiver acknowledges it and applies nothing. Real events have no test member.
|
|
29
|
+
field(
|
|
30
|
+
:test,
|
|
31
|
+
Crystalline::Nilable.new(Crystalline::Boolean.new),
|
|
32
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("test")}}
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
sig {
|
|
36
|
+
params(
|
|
37
|
+
id: ::String,
|
|
38
|
+
created_at: ::String,
|
|
39
|
+
data: Models::Shared::AttendeeFlagged,
|
|
40
|
+
type: ::String,
|
|
41
|
+
test: T.nilable(T::Boolean)
|
|
42
|
+
)
|
|
43
|
+
.void
|
|
44
|
+
}
|
|
45
|
+
def initialize(id:, created_at:, data:, type: "attendee.flagged", test: nil)
|
|
46
|
+
@id = id
|
|
47
|
+
@created_at = created_at
|
|
48
|
+
@data = data
|
|
49
|
+
unless type == "attendee.flagged"
|
|
50
|
+
raise ArgumentError, "Invalid value for type"
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
@type = "attendee.flagged"
|
|
54
|
+
@test = test
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
58
|
+
def ==(other)
|
|
59
|
+
return false unless other.is_a?(self.class)
|
|
60
|
+
return false unless @id == other.id
|
|
61
|
+
return false unless @created_at == other.created_at
|
|
62
|
+
return false unless @data == other.data
|
|
63
|
+
return false unless @type == other.type
|
|
64
|
+
return false unless @test == other.test
|
|
65
|
+
true
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::AttendeeFlaggedEvent
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::AttendeeFlaggedEvent
|
|
9
|
+
def id
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def id=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def created_at
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def created_at=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def data
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def data=(str_)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def type
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def type=(str_)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def test
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def test=(str_)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# AttendeeFlaggedMatchState - How sure the screening is that the accounts it read are the attendee's. A finding on a possible match is at most moderate, on a probable match at most high.
|
|
8
|
+
class AttendeeFlaggedMatchState < T::Enum
|
|
9
|
+
enums do
|
|
10
|
+
CONFIRMED = new("confirmed")
|
|
11
|
+
PROBABLE = new("probable")
|
|
12
|
+
POSSIBLE = new("possible")
|
|
13
|
+
NONE_FOUND = new("none_found")
|
|
14
|
+
INACCESSIBLE = new("inaccessible")
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|