noresponse 10.0.10 → 10.0.11

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d96b8580166e44806112443d1675e10b636e5c6c80d66163632042e21385c8d3
4
- data.tar.gz: 65422e8912fcbec275173a0d1b9fec1c0f78851bf8504a2fb6b8f8e06bf5db65
3
+ metadata.gz: 11deaafb30241b9fc0e9d1d7d44fbedba4fc85260486e5a10a4fdc62be3c34b3
4
+ data.tar.gz: 84f28e10935cb2c180b8faa6bee41b8d7c9779bf941217a27866ee3f9ea1ca30
5
5
  SHA512:
6
- metadata.gz: a8db10579a56cdf898208e5ba72e7d8f0d74ac9b1622469ec9704d84d2880c02b7747fff0f10e3d09a17d3af8d037a6bf489e2d0af5d1f1d0cecfa2dc02384ea
7
- data.tar.gz: 399fe22b16111ba4de9cb5cb6b4e1a942682a9f931c8e5457ccc645e02c522a3571e34133adeae86a13270caee10c3d3226b81bbde7eb2c309035f4f62993d46
6
+ metadata.gz: 2eff2d401db21e107b427fed6d02671fe46ab5c92791bbc567bfaea1d918b8eb82150b5f977d2a458f633f0fe39e68cb8fec23ccb71e67f0c85bcc71525d3d45
7
+ data.tar.gz: 06fe0c24ce4404c94393470d7f8d3a7ea18e7a7e5bb1191feb0e04c91ab4dd1b8204efb42126daab1f0cad9e0c30415350c31051f3e6049209a34fa337a807e1
@@ -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 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 stand-ins that find no accounts.
3033
3033
  request = Models::Operations::StartScreeningRequest.new(
3034
3034
  workspace_id: workspace_id,
3035
3035
  environment: environment,
@@ -36,6 +36,7 @@ module NoResponse
36
36
  AGGREGATE_ERASED_DATA = new("aggregate_erased_data")
37
37
  EVENT_CONFLICT = new("event_conflict")
38
38
  EVENT_LIMIT_REACHED = new("event_limit_reached")
39
+ SCREENING_CAP_EXCEEDED = new("screening_cap_exceeded")
39
40
  SCREENING_UNAVAILABLE = new("screening_unavailable")
40
41
  end
41
42
 
@@ -4,13 +4,14 @@
4
4
  module NoResponse
5
5
  module Models
6
6
  module Shared
7
- # Metric - assessments: assessments admitted. webhook_deliveries: events sent to endpoints, one per event per endpoint. key_usage_events: key-usage events accepted.
7
+ # Metric - 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.
8
8
  class Metric
9
9
  include ::Crystalline::Enum
10
10
  enums do
11
11
  ASSESSMENTS = new("assessments")
12
12
  WEBHOOK_DELIVERIES = new("webhook_deliveries")
13
13
  KEY_USAGE_EVENTS = new("key_usage_events")
14
+ SCREENINGS = new("screenings")
14
15
  end
15
16
 
16
17
  open!
@@ -9,7 +9,7 @@ module NoResponse
9
9
  extend T::Sig
10
10
  include Crystalline::MetadataFields
11
11
 
12
- # 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, and the sources it refuses. 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.
12
+ # 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.
13
13
  field(
14
14
  :settings,
15
15
  Models::Shared::Settings,
@@ -100,6 +100,18 @@ module NoResponse
100
100
  ::Integer,
101
101
  {'format_json': {'letter_case': ::NoResponse::Utils.field_name("attendees_failed"), required: true}}
102
102
  )
103
+ # 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
+ field(
105
+ :estimated_spend,
106
+ ::Integer,
107
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("estimated_spend"), required: true}}
108
+ )
109
+ # What the attendees it has screened recorded, in minor units of USD. Each counts toward the UTC day it was recorded on; a failed attendee records nothing.
110
+ field(
111
+ :spent,
112
+ ::Integer,
113
+ {'format_json': {'letter_case': ::NoResponse::Utils.field_name("spent"), required: true}}
114
+ )
103
115
 
104
116
  field(
105
117
  :started_at,
@@ -134,6 +146,8 @@ module NoResponse
134
146
  attendees_done: ::Integer,
135
147
  attendees_flagged: ::Integer,
136
148
  attendees_failed: ::Integer,
149
+ estimated_spend: ::Integer,
150
+ spent: ::Integer,
137
151
  started_at: T.nilable(::String),
138
152
  finished_at: T.nilable(::String),
139
153
  error_code: T.nilable(::String)
@@ -154,6 +168,8 @@ module NoResponse
154
168
  attendees_done:,
155
169
  attendees_flagged:,
156
170
  attendees_failed:,
171
+ estimated_spend:,
172
+ spent:,
157
173
  started_at: nil,
158
174
  finished_at: nil,
159
175
  error_code: nil
@@ -171,6 +187,8 @@ module NoResponse
171
187
  @attendees_done = attendees_done
172
188
  @attendees_flagged = attendees_flagged
173
189
  @attendees_failed = attendees_failed
190
+ @estimated_spend = estimated_spend
191
+ @spent = spent
174
192
  @started_at = started_at
175
193
  @finished_at = finished_at
176
194
  @error_code = error_code
@@ -192,6 +210,8 @@ module NoResponse
192
210
  return false unless @attendees_done == other.attendees_done
193
211
  return false unless @attendees_flagged == other.attendees_flagged
194
212
  return false unless @attendees_failed == other.attendees_failed
213
+ return false unless @estimated_spend == other.estimated_spend
214
+ return false unless @spent == other.spent
195
215
  return false unless @started_at == other.started_at
196
216
  return false unless @finished_at == other.finished_at
197
217
  return false unless @error_code == other.error_code
@@ -84,6 +84,18 @@ class NoResponse::Models::Shared::Screening
84
84
  def attendees_failed=(str_)
85
85
  end
86
86
 
87
+ def estimated_spend
88
+ end
89
+
90
+ def estimated_spend=(str_)
91
+ end
92
+
93
+ def spent
94
+ end
95
+
96
+ def spent=(str_)
97
+ end
98
+
87
99
  def started_at
88
100
  end
89
101
 
@@ -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, and the sources it refuses. 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.
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
@@ -53,4 +53,10 @@ class NoResponse::Models::Shared::Settings
53
53
 
54
54
  def updated_at=(str_)
55
55
  end
56
+
57
+ def screening_daily_cap
58
+ end
59
+
60
+ def screening_daily_cap=(str_)
61
+ end
56
62
  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
@@ -35,4 +35,10 @@ class NoResponse::Models::Shared::SettingsRequest
35
35
 
36
36
  def change_reason=(str_)
37
37
  end
38
+
39
+ def screening_daily_cap
40
+ end
41
+
42
+ def screening_daily_cap=(str_)
43
+ end
38
44
  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), and a key-usage event once when the ingest accepts it. 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. console_lookups is the one limit: the live environment's daily cap on console lookups, as spent today.
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,
@@ -95,9 +95,9 @@ module NoResponse
95
95
 
96
96
  @language = "ruby"
97
97
  @openapi_doc_version = "1"
98
- @sdk_version = "10.0.10"
98
+ @sdk_version = "10.0.11"
99
99
  @gen_version = "internal"
100
- @user_agent = "noresponse-sdk/ruby 10.0.10 internal 1 noresponse"
100
+ @user_agent = "noresponse-sdk/ruby 10.0.11 internal 1 noresponse"
101
101
  end
102
102
 
103
103
  sig { returns([String, T::Hash[Symbol, String]]) }
@@ -49,7 +49,7 @@ module NoResponse
49
49
  }
50
50
  def get(workspace_id:, environment:, retries: nil, timeout_ms: nil, http_headers: nil)
51
51
  # get - Read an environment's settings.
52
- # Read this environment retention, source selection and effective flow policies. A flow without its own thresholds inherits account_creation. Requires settings or management. Another environment answers404. Read-only and safe to retry.
52
+ # Read this environment retention, source selection, daily screening cap and effective flow policies. A flow without its own thresholds inherits account_creation. Requires settings or management. Another environment answers404. Read-only and safe to retry.
53
53
  request = Models::Operations::GetSettingsRequest.new(
54
54
  workspace_id: workspace_id,
55
55
  environment: environment
@@ -340,7 +340,7 @@ module NoResponse
340
340
  }
341
341
  def update(body:, workspace_id:, environment:, retries: nil, timeout_ms: nil, http_headers: nil)
342
342
  # update - Change an environment's settings.
343
- # Change named retention, source or flow settings in one transaction. Requires settings or management; changes to active policy also require policy_publish, which legacy management includes. Use expected_policy_version to reject concurrent changes and record a change_reason. Each accepted change creates a fresh version and an atomic audit event. Retention-only edits do not require policy publication authority. Flow thresholds preserve their declared ordering and bounds.
343
+ # Change named retention, screening cap, source or flow settings in one transaction. Requires settings or management; changes to active policy also require policy_publish, which legacy management includes. Use expected_policy_version to reject concurrent changes and record a change_reason. Each accepted change creates a fresh version and an atomic audit event. Retention and screening cap edits do not require policy publication authority. Flow thresholds preserve their declared ordering and bounds.
344
344
  request = Models::Operations::UpdateSettingsRequest.new(
345
345
  workspace_id: workspace_id,
346
346
  environment: environment,
@@ -50,7 +50,7 @@ module NoResponse
50
50
  }
51
51
  def get(workspace_id:, from: nil, to: nil, retries: nil, timeout_ms: nil, http_headers: nil)
52
52
  # get - Read a workspace's usage.
53
- # Read daily usage units for the environments you can access. These counts are unpriced. With live access it also returns the daily console lookup cap: used, limit and resets_at.
53
+ # Read daily usage units, screenings included, for the environments you can access. These counts are unpriced. With live access it also returns the daily console lookup cap: used, limit and resets_at.
54
54
  request = Models::Operations::GetUsageRequest.new(
55
55
  workspace_id: workspace_id,
56
56
  from: from,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: noresponse
3
3
  version: !ruby/object:Gem::Version
4
- version: 10.0.10
4
+ version: 10.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - NoResponse