noresponse 10.0.10 → 10.0.12
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/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/conflicterrorcode.rb +1 -0
- data/lib/no_response/models/shared/metric.rb +2 -1
- data/lib/no_response/models/shared/policyhistoryitem.rb +1 -1
- data/lib/no_response/models/shared/screening.rb +20 -0
- 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/settings.rb +13 -3
- data/lib/no_response/models/shared/settings.rbi +6 -0
- data/lib/no_response/models/shared/settingsrequest.rb +12 -2
- data/lib/no_response/models/shared/settingsrequest.rbi +6 -0
- data/lib/no_response/models/shared/usage.rb +1 -1
- data/lib/no_response/models/shared/usagecount.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 +9 -0
- data/lib/no_response/sdkconfiguration.rb +2 -2
- data/lib/no_response/settings.rb +2 -2
- data/lib/no_response/usage.rb +1 -1
- data/lib/no_response/webhook_verification.rb +8 -2
- metadata +19 -1
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# A screening of an event finished. It counts only the attendees this screening set out to reach, not who they are: read the roster with GET /v1/workspaces/{workspace_id}/events/{environment}/{event_id}/attendees, filtered by band, to act on them. attendees_screened + partial_coverage = attendees_total, attendees_flagged is the sum of by_band, and no_footprint counts screened attendees with no flag whose accounts were not found. A cancelled screening sends no event.
|
|
8
|
+
class ScreeningCompleted
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
# The screening that finished.
|
|
13
|
+
field(
|
|
14
|
+
:screening_id,
|
|
15
|
+
::String,
|
|
16
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("screening_id"), required: true}}
|
|
17
|
+
)
|
|
18
|
+
# The event it screened.
|
|
19
|
+
field(
|
|
20
|
+
:event_id,
|
|
21
|
+
::String,
|
|
22
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("event_id"), required: true}}
|
|
23
|
+
)
|
|
24
|
+
# completed reached every attendee; partial left some not fully covered (partial_coverage); failed covered nobody.
|
|
25
|
+
field(
|
|
26
|
+
:status,
|
|
27
|
+
Models::Shared::ScreeningCompletedStatus,
|
|
28
|
+
{
|
|
29
|
+
'format_json': {
|
|
30
|
+
'letter_case': ::NoResponse::Utils.field_name("status"),
|
|
31
|
+
required: true,
|
|
32
|
+
'decoder': ::NoResponse::Utils.enum_from_string(Models::Shared::ScreeningCompletedStatus, false)
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
)
|
|
36
|
+
# Every attendee the screening set out to reach: those no screening had reached and those on watch or escalated.
|
|
37
|
+
field(
|
|
38
|
+
:attendees_total,
|
|
39
|
+
::Integer,
|
|
40
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("attendees_total"), required: true}}
|
|
41
|
+
)
|
|
42
|
+
# Attendees the screening covered, flagged or not.
|
|
43
|
+
field(
|
|
44
|
+
:attendees_screened,
|
|
45
|
+
::Integer,
|
|
46
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("attendees_screened"), required: true}}
|
|
47
|
+
)
|
|
48
|
+
# Screened attendees with a finding: the sum of by_band.
|
|
49
|
+
field(
|
|
50
|
+
:attendees_flagged,
|
|
51
|
+
::Integer,
|
|
52
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("attendees_flagged"), required: true}}
|
|
53
|
+
)
|
|
54
|
+
# Screened attendees by the band of their most severe finding.
|
|
55
|
+
field(
|
|
56
|
+
:by_band,
|
|
57
|
+
Models::Shared::ScreeningCompletedByBand,
|
|
58
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("by_band"), required: true}}
|
|
59
|
+
)
|
|
60
|
+
# Screened attendees with no finding whose accounts were not found (match_state none_found). A clean result for someone with no visible accounts is not the same as a clean result for someone whose accounts were read.
|
|
61
|
+
field(
|
|
62
|
+
:no_footprint,
|
|
63
|
+
::Integer,
|
|
64
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("no_footprint"), required: true}}
|
|
65
|
+
)
|
|
66
|
+
# Attendees the screening did not fully cover. Read each one's coverage on its attendee.
|
|
67
|
+
field(
|
|
68
|
+
:partial_coverage,
|
|
69
|
+
::Integer,
|
|
70
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("partial_coverage"), required: true}}
|
|
71
|
+
)
|
|
72
|
+
# When the screening finished; equal to the event's created_at.
|
|
73
|
+
field(
|
|
74
|
+
:finished_at,
|
|
75
|
+
::String,
|
|
76
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("finished_at"), required: true}}
|
|
77
|
+
)
|
|
78
|
+
# Why a partial or failed screening stopped before reaching everyone, as the screening resource says: expired, worker_attempts_exhausted, attempts_exhausted or screening_unavailable.
|
|
79
|
+
field(
|
|
80
|
+
:error_code,
|
|
81
|
+
Crystalline::Nilable.new(::String),
|
|
82
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("error_code")}}
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
sig {
|
|
86
|
+
params(
|
|
87
|
+
screening_id: ::String,
|
|
88
|
+
event_id: ::String,
|
|
89
|
+
status: Models::Shared::ScreeningCompletedStatus,
|
|
90
|
+
attendees_total: ::Integer,
|
|
91
|
+
attendees_screened: ::Integer,
|
|
92
|
+
attendees_flagged: ::Integer,
|
|
93
|
+
by_band: Models::Shared::ScreeningCompletedByBand,
|
|
94
|
+
no_footprint: ::Integer,
|
|
95
|
+
partial_coverage: ::Integer,
|
|
96
|
+
finished_at: ::String,
|
|
97
|
+
error_code: T.nilable(::String)
|
|
98
|
+
)
|
|
99
|
+
.void
|
|
100
|
+
}
|
|
101
|
+
def initialize(
|
|
102
|
+
screening_id:,
|
|
103
|
+
event_id:,
|
|
104
|
+
status:,
|
|
105
|
+
attendees_total:,
|
|
106
|
+
attendees_screened:,
|
|
107
|
+
attendees_flagged:,
|
|
108
|
+
by_band:,
|
|
109
|
+
no_footprint:,
|
|
110
|
+
partial_coverage:,
|
|
111
|
+
finished_at:,
|
|
112
|
+
error_code: nil
|
|
113
|
+
)
|
|
114
|
+
@screening_id = screening_id
|
|
115
|
+
@event_id = event_id
|
|
116
|
+
@status = status
|
|
117
|
+
@attendees_total = attendees_total
|
|
118
|
+
@attendees_screened = attendees_screened
|
|
119
|
+
@attendees_flagged = attendees_flagged
|
|
120
|
+
@by_band = by_band
|
|
121
|
+
@no_footprint = no_footprint
|
|
122
|
+
@partial_coverage = partial_coverage
|
|
123
|
+
@finished_at = finished_at
|
|
124
|
+
@error_code = error_code
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
128
|
+
def ==(other)
|
|
129
|
+
return false unless other.is_a?(self.class)
|
|
130
|
+
return false unless @screening_id == other.screening_id
|
|
131
|
+
return false unless @event_id == other.event_id
|
|
132
|
+
return false unless @status == other.status
|
|
133
|
+
return false unless @attendees_total == other.attendees_total
|
|
134
|
+
return false unless @attendees_screened == other.attendees_screened
|
|
135
|
+
return false unless @attendees_flagged == other.attendees_flagged
|
|
136
|
+
return false unless @by_band == other.by_band
|
|
137
|
+
return false unless @no_footprint == other.no_footprint
|
|
138
|
+
return false unless @partial_coverage == other.partial_coverage
|
|
139
|
+
return false unless @finished_at == other.finished_at
|
|
140
|
+
return false unless @error_code == other.error_code
|
|
141
|
+
true
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::ScreeningCompleted
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::ScreeningCompleted
|
|
9
|
+
def screening_id
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def screening_id=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def event_id
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def event_id=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def status
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def status=(str_)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def attendees_total
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def attendees_total=(str_)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def attendees_screened
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def attendees_screened=(str_)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def attendees_flagged
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def attendees_flagged=(str_)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def by_band
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def by_band=(str_)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def no_footprint
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def no_footprint=(str_)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def partial_coverage
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def partial_coverage=(str_)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def finished_at
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def finished_at=(str_)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def error_code
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def error_code=(str_)
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# Screened attendees by the band of their most severe finding.
|
|
8
|
+
class ScreeningCompletedByBand
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
field(
|
|
13
|
+
:critical,
|
|
14
|
+
::Integer,
|
|
15
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("critical"), required: true}}
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
field :high, ::Integer, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("high"), required: true}}
|
|
19
|
+
|
|
20
|
+
field(
|
|
21
|
+
:moderate,
|
|
22
|
+
::Integer,
|
|
23
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("moderate"), required: true}}
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
field :low, ::Integer, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("low"), required: true}}
|
|
27
|
+
|
|
28
|
+
field :info, ::Integer, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("info"), required: true}}
|
|
29
|
+
|
|
30
|
+
sig { params(critical: ::Integer, high: ::Integer, moderate: ::Integer, low: ::Integer, info: ::Integer).void }
|
|
31
|
+
def initialize(critical:, high:, moderate:, low:, info:)
|
|
32
|
+
@critical = critical
|
|
33
|
+
@high = high
|
|
34
|
+
@moderate = moderate
|
|
35
|
+
@low = low
|
|
36
|
+
@info = info
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
40
|
+
def ==(other)
|
|
41
|
+
return false unless other.is_a?(self.class)
|
|
42
|
+
return false unless @critical == other.critical
|
|
43
|
+
return false unless @high == other.high
|
|
44
|
+
return false unless @moderate == other.moderate
|
|
45
|
+
return false unless @low == other.low
|
|
46
|
+
return false unless @info == other.info
|
|
47
|
+
true
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::ScreeningCompletedByBand
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::ScreeningCompletedByBand
|
|
9
|
+
def critical
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def critical=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def high
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def high=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def moderate
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def moderate=(str_)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def low
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def low=(str_)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def info
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def info=(str_)
|
|
37
|
+
end
|
|
38
|
+
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 screening.completed event.
|
|
8
|
+
class ScreeningCompletedEvent
|
|
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 of an event finished. It counts only the attendees this screening set out to reach, not who they are: read the roster with GET /v1/workspaces/{workspace_id}/events/{environment}/{event_id}/attendees, filtered by band, to act on them. attendees_screened + partial_coverage = attendees_total, attendees_flagged is the sum of by_band, and no_footprint counts screened attendees with no flag whose accounts were not found. A cancelled screening sends no event.
|
|
21
|
+
field(
|
|
22
|
+
:data,
|
|
23
|
+
Models::Shared::ScreeningCompleted,
|
|
24
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("data"), required: true}}
|
|
25
|
+
)
|
|
26
|
+
# Always screening.completed.
|
|
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::ScreeningCompleted,
|
|
40
|
+
type: ::String,
|
|
41
|
+
test: T.nilable(T::Boolean)
|
|
42
|
+
)
|
|
43
|
+
.void
|
|
44
|
+
}
|
|
45
|
+
def initialize(id:, created_at:, data:, type: "screening.completed", test: nil)
|
|
46
|
+
@id = id
|
|
47
|
+
@created_at = created_at
|
|
48
|
+
@data = data
|
|
49
|
+
unless type == "screening.completed"
|
|
50
|
+
raise ArgumentError, "Invalid value for type"
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
@type = "screening.completed"
|
|
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::ScreeningCompletedEvent
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::ScreeningCompletedEvent
|
|
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,17 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# ScreeningCompletedStatus - completed reached every attendee; partial left some not fully covered (partial_coverage); failed covered nobody.
|
|
8
|
+
class ScreeningCompletedStatus < T::Enum
|
|
9
|
+
enums do
|
|
10
|
+
COMPLETED = new("completed")
|
|
11
|
+
PARTIAL = new("partial")
|
|
12
|
+
FAILED = new("failed")
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
module NoResponse
|
|
5
5
|
module Models
|
|
6
6
|
module Shared
|
|
7
|
-
# One environment's settings: how long its assessments are kept, and for each flow the risk thresholds that decide it and the depth a request that names none is served at,
|
|
7
|
+
# One environment's settings: how long its assessments are kept, and for each flow the risk thresholds that decide it and the depth a request that names none is served at, the sources it refuses, and the daily cap on screening spend. Live and test each have their own. A flow without thresholds of its own uses account_creation's (inherits_account_creation). Every change is recorded in the audit log as settings.updated, with who made it.
|
|
8
8
|
class Settings
|
|
9
9
|
extend T::Sig
|
|
10
10
|
include Crystalline::MetadataFields
|
|
@@ -63,6 +63,12 @@ module NoResponse
|
|
|
63
63
|
Crystalline::Nilable.new(::String),
|
|
64
64
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("updated_at")}}
|
|
65
65
|
)
|
|
66
|
+
# The most the environment's screenings may spend in one UTC day, in minor units of USD (cents), 0 to 100000000; null is no cap. Default 50000. A screening whose estimated_spend exceeds the cap less the day's recorded spend and what open screenings may still spend answers 409 screening_cap_exceeded.
|
|
67
|
+
field(
|
|
68
|
+
:screening_daily_cap,
|
|
69
|
+
Crystalline::Nilable.new(::Integer),
|
|
70
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("screening_daily_cap"), required: true}}
|
|
71
|
+
)
|
|
66
72
|
|
|
67
73
|
sig {
|
|
68
74
|
params(
|
|
@@ -73,7 +79,8 @@ module NoResponse
|
|
|
73
79
|
flows: Models::Shared::SettingsFlows,
|
|
74
80
|
refused_sources: T::Array[Models::Shared::SourceId],
|
|
75
81
|
updated_by: T.nilable(::String),
|
|
76
|
-
updated_at: T.nilable(::String)
|
|
82
|
+
updated_at: T.nilable(::String),
|
|
83
|
+
screening_daily_cap: T.nilable(::Integer)
|
|
77
84
|
)
|
|
78
85
|
.void
|
|
79
86
|
}
|
|
@@ -85,7 +92,8 @@ module NoResponse
|
|
|
85
92
|
flows:,
|
|
86
93
|
refused_sources:,
|
|
87
94
|
updated_by: nil,
|
|
88
|
-
updated_at: nil
|
|
95
|
+
updated_at: nil,
|
|
96
|
+
screening_daily_cap: nil
|
|
89
97
|
)
|
|
90
98
|
@workspace_id = workspace_id
|
|
91
99
|
@environment = environment
|
|
@@ -95,6 +103,7 @@ module NoResponse
|
|
|
95
103
|
@refused_sources = refused_sources
|
|
96
104
|
@updated_by = updated_by
|
|
97
105
|
@updated_at = updated_at
|
|
106
|
+
@screening_daily_cap = screening_daily_cap
|
|
98
107
|
end
|
|
99
108
|
|
|
100
109
|
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
@@ -108,6 +117,7 @@ module NoResponse
|
|
|
108
117
|
return false unless @refused_sources == other.refused_sources
|
|
109
118
|
return false unless @updated_by == other.updated_by
|
|
110
119
|
return false unless @updated_at == other.updated_at
|
|
120
|
+
return false unless @screening_daily_cap == other.screening_daily_cap
|
|
111
121
|
true
|
|
112
122
|
end
|
|
113
123
|
end
|
|
@@ -38,6 +38,12 @@ module NoResponse
|
|
|
38
38
|
Crystalline::Nilable.new(::String),
|
|
39
39
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("change_reason")}}
|
|
40
40
|
)
|
|
41
|
+
# Replaces the daily screening cap, in minor units of USD; null removes the cap. Needs settings.write only, like retention_days.
|
|
42
|
+
field(
|
|
43
|
+
:screening_daily_cap,
|
|
44
|
+
Crystalline::Nilable.new(::Integer),
|
|
45
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("screening_daily_cap")}}
|
|
46
|
+
)
|
|
41
47
|
|
|
42
48
|
sig {
|
|
43
49
|
params(
|
|
@@ -45,7 +51,8 @@ module NoResponse
|
|
|
45
51
|
refused_sources: T.nilable(T::Array[Models::Shared::SourceId]),
|
|
46
52
|
flows: T.nilable(Models::Shared::SettingsRequestFlows),
|
|
47
53
|
expected_policy_version: T.nilable(::Integer),
|
|
48
|
-
change_reason: T.nilable(::String)
|
|
54
|
+
change_reason: T.nilable(::String),
|
|
55
|
+
screening_daily_cap: T.nilable(::Integer)
|
|
49
56
|
)
|
|
50
57
|
.void
|
|
51
58
|
}
|
|
@@ -54,13 +61,15 @@ module NoResponse
|
|
|
54
61
|
refused_sources: nil,
|
|
55
62
|
flows: nil,
|
|
56
63
|
expected_policy_version: nil,
|
|
57
|
-
change_reason: nil
|
|
64
|
+
change_reason: nil,
|
|
65
|
+
screening_daily_cap: nil
|
|
58
66
|
)
|
|
59
67
|
@retention_days = retention_days
|
|
60
68
|
@refused_sources = refused_sources
|
|
61
69
|
@flows = flows
|
|
62
70
|
@expected_policy_version = expected_policy_version
|
|
63
71
|
@change_reason = change_reason
|
|
72
|
+
@screening_daily_cap = screening_daily_cap
|
|
64
73
|
end
|
|
65
74
|
|
|
66
75
|
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
@@ -71,6 +80,7 @@ module NoResponse
|
|
|
71
80
|
return false unless @flows == other.flows
|
|
72
81
|
return false unless @expected_policy_version == other.expected_policy_version
|
|
73
82
|
return false unless @change_reason == other.change_reason
|
|
83
|
+
return false unless @screening_daily_cap == other.screening_daily_cap
|
|
74
84
|
true
|
|
75
85
|
end
|
|
76
86
|
end
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
module NoResponse
|
|
5
5
|
module Models
|
|
6
6
|
module Shared
|
|
7
|
-
# Body of the 200 answer to GET /v1/workspaces/{workspace_id}/usage: what the workspace's environments were metered for on each UTC day from from through to. Each billable unit is counted once, where it becomes final: an assessment when it is admitted (by flow and depth), a webhook delivery once per event per endpoint (retries and replays add nothing),
|
|
7
|
+
# Body of the 200 answer to GET /v1/workspaces/{workspace_id}/usage: what the workspace's environments were metered for on each UTC day from from through to. Each billable unit is counted once, where it becomes final: an assessment when it is admitted (by flow and depth), a webhook delivery once per event per endpoint (retries and replays add nothing), a key-usage event once when the ingest accepts it, and a screened attendee once per screening when its result is recorded. A count does not change when the assessment, account or workspace is later deleted. A day, environment or metric with nothing counted has no item. No prices or billing; screening spend is in each screening's spent. console_lookups is the one limit: the live environment's daily cap on console lookups, as spent today.
|
|
8
8
|
class Usage
|
|
9
9
|
extend T::Sig
|
|
10
10
|
include Crystalline::MetadataFields
|
|
@@ -22,7 +22,7 @@ module NoResponse
|
|
|
22
22
|
)
|
|
23
23
|
|
|
24
24
|
field :day, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("day"), required: true}}
|
|
25
|
-
# assessments: assessments admitted. webhook_deliveries: events sent to endpoints, one per event per endpoint. key_usage_events: key-usage events accepted.
|
|
25
|
+
# assessments: assessments admitted. webhook_deliveries: events sent to endpoints, one per event per endpoint. key_usage_events: key-usage events accepted. screenings: attendees a screening recorded a final result for, one per attendee per screening; a failed attendee counts nothing.
|
|
26
26
|
field(
|
|
27
27
|
:metric,
|
|
28
28
|
Models::Shared::Metric,
|
|
@@ -15,7 +15,7 @@ module NoResponse
|
|
|
15
15
|
::String,
|
|
16
16
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("event_id"), required: true}}
|
|
17
17
|
)
|
|
18
|
-
# The event's type, as its body's type: assessment.updated, endpoint.verification, account.deleted, workspace.deleted, webhook_endpoint.disabled, account.risk_changed, audit.event, or a type added later.
|
|
18
|
+
# The event's type, as its body's type: assessment.updated, endpoint.verification, account.deleted, workspace.deleted, webhook_endpoint.disabled, account.risk_changed, audit.event, screening.completed, attendee.flagged, attendee.decided, or a type added later.
|
|
19
19
|
field(
|
|
20
20
|
:event_type,
|
|
21
21
|
::String,
|
|
@@ -21,7 +21,7 @@ module NoResponse
|
|
|
21
21
|
::String,
|
|
22
22
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("event_id"), required: true}}
|
|
23
23
|
)
|
|
24
|
-
# The event's type, as its body's type: assessment.updated, endpoint.verification, account.deleted, workspace.deleted, webhook_endpoint.disabled, account.risk_changed, audit.event, or a type added later.
|
|
24
|
+
# The event's type, as its body's type: assessment.updated, endpoint.verification, account.deleted, workspace.deleted, webhook_endpoint.disabled, account.risk_changed, audit.event, screening.completed, attendee.flagged, attendee.decided, or a type added later.
|
|
25
25
|
field(
|
|
26
26
|
:event_type,
|
|
27
27
|
::String,
|
|
@@ -75,7 +75,12 @@ module NoResponse
|
|
|
75
75
|
autoload :AttendeeBatchItem, "no_response/models/shared/attendeebatchitem.rb"
|
|
76
76
|
autoload :AttendeeBatchItemOutcome, "no_response/models/shared/attendeebatchitemoutcome.rb"
|
|
77
77
|
autoload :AttendeeBatchRequest, "no_response/models/shared/attendeebatchrequest.rb"
|
|
78
|
+
autoload :AttendeeDecided, "no_response/models/shared/attendeedecided.rb"
|
|
79
|
+
autoload :AttendeeDecidedEvent, "no_response/models/shared/attendeedecidedevent.rb"
|
|
78
80
|
autoload :AttendeeDecision, "no_response/models/shared/attendeedecision.rb"
|
|
81
|
+
autoload :AttendeeFlagged, "no_response/models/shared/attendeeflagged.rb"
|
|
82
|
+
autoload :AttendeeFlaggedEvent, "no_response/models/shared/attendeeflaggedevent.rb"
|
|
83
|
+
autoload :AttendeeFlaggedMatchState, "no_response/models/shared/attendeeflaggedmatchstate.rb"
|
|
79
84
|
autoload :AttendeeIdentity, "no_response/models/shared/attendeeidentity.rb"
|
|
80
85
|
autoload :AttendeeList, "no_response/models/shared/attendeelist.rb"
|
|
81
86
|
autoload :AttendeeReport, "no_response/models/shared/attendeereport.rb"
|
|
@@ -348,6 +353,10 @@ module NoResponse
|
|
|
348
353
|
autoload :ScopeEnum, "no_response/models/shared/scope_enum.rb"
|
|
349
354
|
autoload :Screening, "no_response/models/shared/screening.rb"
|
|
350
355
|
autoload :ScreeningCancelRequest, "no_response/models/shared/screeningcancelrequest.rb"
|
|
356
|
+
autoload :ScreeningCompleted, "no_response/models/shared/screeningcompleted.rb"
|
|
357
|
+
autoload :ScreeningCompletedByBand, "no_response/models/shared/screeningcompletedbyband.rb"
|
|
358
|
+
autoload :ScreeningCompletedEvent, "no_response/models/shared/screeningcompletedevent.rb"
|
|
359
|
+
autoload :ScreeningCompletedStatus, "no_response/models/shared/screeningcompletedstatus.rb"
|
|
351
360
|
autoload :ScreeningDepth, "no_response/models/shared/screeningdepth.rb"
|
|
352
361
|
autoload :ScreeningList, "no_response/models/shared/screeninglist.rb"
|
|
353
362
|
autoload :ScreeningRequest, "no_response/models/shared/screeningrequest.rb"
|
|
@@ -95,9 +95,9 @@ module NoResponse
|
|
|
95
95
|
|
|
96
96
|
@language = "ruby"
|
|
97
97
|
@openapi_doc_version = "1"
|
|
98
|
-
@sdk_version = "10.0.
|
|
98
|
+
@sdk_version = "10.0.12"
|
|
99
99
|
@gen_version = "internal"
|
|
100
|
-
@user_agent = "noresponse-sdk/ruby 10.0.
|
|
100
|
+
@user_agent = "noresponse-sdk/ruby 10.0.12 internal 1 noresponse"
|
|
101
101
|
end
|
|
102
102
|
|
|
103
103
|
sig { returns([String, T::Hash[Symbol, String]]) }
|