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.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/lib/no_response/events.rb +1 -1
  3. data/lib/no_response/models/shared/access.rb +20 -0
  4. data/lib/no_response/models/shared/{profile.rbi → access.rbi} +2 -2
  5. data/lib/no_response/models/shared/attendee.rb +13 -3
  6. data/lib/no_response/models/shared/attendee.rbi +6 -0
  7. data/lib/no_response/models/shared/attendeedecided.rb +89 -0
  8. data/lib/no_response/models/shared/attendeedecided.rbi +44 -0
  9. data/lib/no_response/models/shared/attendeedecidedevent.rb +70 -0
  10. data/lib/no_response/models/shared/attendeedecidedevent.rbi +38 -0
  11. data/lib/no_response/models/shared/attendeeflagged.rb +95 -0
  12. data/lib/no_response/models/shared/attendeeflagged.rbi +44 -0
  13. data/lib/no_response/models/shared/attendeeflaggedevent.rb +70 -0
  14. data/lib/no_response/models/shared/attendeeflaggedevent.rbi +38 -0
  15. data/lib/no_response/models/shared/attendeeflaggedmatchstate.rb +19 -0
  16. data/lib/no_response/models/shared/attendeeflaggedmatchstate.rbi +9 -0
  17. data/lib/no_response/models/shared/attendeereport.rb +25 -7
  18. data/lib/no_response/models/shared/attendeereport.rbi +12 -0
  19. data/lib/no_response/models/shared/findingband.rb +22 -0
  20. data/lib/no_response/models/shared/{attendee_coverage.rbi → findingband.rbi} +2 -2
  21. data/lib/no_response/models/shared/findingcategory.rb +27 -0
  22. data/lib/no_response/models/shared/{screening_platform.rbi → findingcategory.rbi} +2 -2
  23. data/lib/no_response/models/shared/handle.rb +1 -0
  24. data/lib/no_response/models/shared/handleplatform.rb +2 -1
  25. data/lib/no_response/models/shared/mediatype.rb +19 -0
  26. data/lib/no_response/models/shared/{finding.rbi → mediatype.rbi} +2 -2
  27. data/lib/no_response/models/shared/profilematchstate.rb +20 -0
  28. data/lib/no_response/models/shared/profilematchstate.rbi +9 -0
  29. data/lib/no_response/models/shared/screening.rb +23 -3
  30. data/lib/no_response/models/shared/screening.rbi +12 -0
  31. data/lib/no_response/models/shared/screeningcompleted.rb +146 -0
  32. data/lib/no_response/models/shared/screeningcompleted.rbi +74 -0
  33. data/lib/no_response/models/shared/screeningcompletedbyband.rb +52 -0
  34. data/lib/no_response/models/shared/screeningcompletedbyband.rbi +38 -0
  35. data/lib/no_response/models/shared/screeningcompletedevent.rb +70 -0
  36. data/lib/no_response/models/shared/screeningcompletedevent.rbi +38 -0
  37. data/lib/no_response/models/shared/screeningcompletedstatus.rb +17 -0
  38. data/lib/no_response/models/shared/screeningcompletedstatus.rbi +9 -0
  39. data/lib/no_response/models/shared/screeningcoverage.rb +82 -0
  40. data/lib/no_response/models/shared/screeningcoverage.rbi +44 -0
  41. data/lib/no_response/models/shared/screeningfinding.rb +152 -0
  42. data/lib/no_response/models/shared/screeningfinding.rbi +74 -0
  43. data/lib/no_response/models/shared/screeningmatch.rb +50 -0
  44. data/lib/no_response/models/shared/screeningmatch.rbi +20 -0
  45. data/lib/no_response/models/shared/screeningmatchevidence.rb +57 -0
  46. data/lib/no_response/models/shared/screeningmatchevidence.rbi +26 -0
  47. data/lib/no_response/models/shared/screeningmatchevidencekind.rb +25 -0
  48. data/lib/no_response/models/shared/screeningmatchevidencekind.rbi +9 -0
  49. data/lib/no_response/models/shared/screeningmedia.rb +141 -0
  50. data/lib/no_response/models/shared/screeningmedia.rbi +74 -0
  51. data/lib/no_response/models/shared/screeningplatformcoverage.rb +80 -0
  52. data/lib/no_response/models/shared/screeningplatformcoverage.rbi +32 -0
  53. data/lib/no_response/models/shared/screeningplatformcoveragestatus.rb +22 -0
  54. data/lib/no_response/models/shared/screeningplatformcoveragestatus.rbi +9 -0
  55. data/lib/no_response/models/shared/screeningpost.rb +111 -0
  56. data/lib/no_response/models/shared/screeningpost.rbi +62 -0
  57. data/lib/no_response/models/shared/screeningprofile.rb +193 -0
  58. data/lib/no_response/models/shared/screeningprofile.rbi +104 -0
  59. data/lib/no_response/models/shared/screeningrequest.rb +2 -5
  60. data/lib/no_response/models/shared/screeningspend.rb +41 -0
  61. data/lib/no_response/models/shared/screeningspend.rbi +20 -0
  62. data/lib/no_response/models/shared/screeningspendline.rb +57 -0
  63. data/lib/no_response/models/shared/screeningspendline.rbi +26 -0
  64. data/lib/no_response/models/shared/screeningspendlinerole.rb +20 -0
  65. data/lib/no_response/models/shared/screeningspendlinerole.rbi +9 -0
  66. data/lib/no_response/models/shared/screeningstatus.rb +1 -1
  67. data/lib/no_response/models/shared/webhookdeliveryattempt.rb +1 -1
  68. data/lib/no_response/models/shared/webhookreplay.rb +1 -1
  69. data/lib/no_response/models/shared.rb +27 -5
  70. data/lib/no_response/sdkconfiguration.rb +2 -2
  71. data/lib/no_response/webhook_verification.rb +8 -2
  72. metadata +56 -12
  73. data/lib/no_response/models/shared/attendee_coverage.rb +0 -23
  74. data/lib/no_response/models/shared/finding.rb +0 -23
  75. data/lib/no_response/models/shared/profile.rb +0 -23
  76. data/lib/no_response/models/shared/screening_platform.rb +0 -27
  77. data/lib/no_response/models/shared/screeningrequest_platform.rb +0 -24
  78. 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: 11deaafb30241b9fc0e9d1d7d44fbedba4fc85260486e5a10a4fdc62be3c34b3
4
- data.tar.gz: 84f28e10935cb2c180b8faa6bee41b8d7c9779bf941217a27866ee3f9ea1ca30
3
+ metadata.gz: a9d583f5c8f0b06adc80bb220a841bce567584d6f9c197995799d71720f12aaa
4
+ data.tar.gz: 7cb2890a3937c798476a19f7f89c8c9ca2a149887d9bd4c24cd5fb6f0da161ff
5
5
  SHA512:
6
- metadata.gz: 2eff2d401db21e107b427fed6d02671fe46ab5c92791bbc567bfaea1d918b8eb82150b5f977d2a458f633f0fe39e68cb8fec23ccb71e67f0c85bcc71525d3d45
7
- data.tar.gz: 06fe0c24ce4404c94393470d7f8d3a7ea18e7a7e5bb1191feb0e04c91ab4dd1b8204efb42126daab1f0cad9e0c30415350c31051f3e6049209a34fa337a807e1
6
+ metadata.gz: 20042b422dced170ddff9a2bb330b70462fefaa633b15bd62617ded43d2a32cd5b62d6b070eb284ae99a76dd958c78378594b57ff86dc7c720144be14bf37543
7
+ data.tar.gz: 842ccde2835a7e443e9cc7b429bb4d297b65befe3d0a099358312a97dab85483b14a53bd111eae68c7ad0e4861268fbefeed5f590f96c9bb6a7abd72d5896ded
@@ -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 stand-ins that find no accounts.
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::Profile
4
+ class NoResponse::Models::Shared::Access
5
5
  extend ::Crystalline::MetadataFields::ClassMethods
6
6
  end
7
7
 
8
- class NoResponse::Models::Shared::Profile
8
+ class NoResponse::Models::Shared::Access
9
9
  end
@@ -30,10 +30,10 @@ module NoResponse
30
30
  }
31
31
  }
32
32
  )
33
- # What the latest screening read, per platform.
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::AttendeeCoverage,
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::AttendeeCoverage,
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
@@ -48,6 +48,12 @@ class NoResponse::Models::Shared::Attendee
48
48
  def updated_at=(str_)
49
49
  end
50
50
 
51
+ def spend
52
+ end
53
+
54
+ def spend=(str_)
55
+ end
56
+
51
57
  def external_id
52
58
  end
53
59
 
@@ -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
@@ -0,0 +1,9 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class NoResponse::Models::Shared::AttendeeFlaggedMatchState
5
+ extend ::Crystalline::MetadataFields::ClassMethods
6
+ end
7
+
8
+ class NoResponse::Models::Shared::AttendeeFlaggedMatchState
9
+ end