safetykit 0.40.0 → 0.42.0

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.
@@ -0,0 +1,551 @@
1
+ # typed: strong
2
+
3
+ module SafetyKit
4
+ module Models
5
+ class DataUpdateSettingsParams < SafetyKit::Internal::Type::BaseModel
6
+ extend SafetyKit::Internal::Type::RequestParameters::Converter
7
+ include SafetyKit::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ SafetyKit::DataUpdateSettingsParams,
13
+ SafetyKit::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The namespace to ingest data into
18
+ sig { returns(String) }
19
+ attr_accessor :namespace
20
+
21
+ # Schema mapping field names to their definitions. Use content_type to specify
22
+ # which fields contain URLs that should be processed (images, videos, or
23
+ # websites), datetime fields, or 'metadata' for fields that should be stored but
24
+ # not indexed. Use display_hint to provide UI rendering hints.
25
+ sig do
26
+ returns(
27
+ T.nilable(
28
+ T::Hash[Symbol, SafetyKit::DataUpdateSettingsParams::Schema]
29
+ )
30
+ )
31
+ end
32
+ attr_reader :schema
33
+
34
+ sig do
35
+ params(
36
+ schema:
37
+ T::Hash[Symbol, SafetyKit::DataUpdateSettingsParams::Schema::OrHash]
38
+ ).void
39
+ end
40
+ attr_writer :schema
41
+
42
+ # Namespace settings to store, replacing existing settings. Omit to leave existing
43
+ # settings unchanged. Configure these values with guidance from SafetyKit.
44
+ sig { returns(T.nilable(T::Hash[Symbol, T.nilable(T.anything)])) }
45
+ attr_reader :settings
46
+
47
+ sig { params(settings: T::Hash[Symbol, T.nilable(T.anything)]).void }
48
+ attr_writer :settings
49
+
50
+ sig do
51
+ params(
52
+ namespace: String,
53
+ schema:
54
+ T::Hash[
55
+ Symbol,
56
+ SafetyKit::DataUpdateSettingsParams::Schema::OrHash
57
+ ],
58
+ settings: T::Hash[Symbol, T.nilable(T.anything)],
59
+ request_options: SafetyKit::RequestOptions::OrHash
60
+ ).returns(T.attached_class)
61
+ end
62
+ def self.new(
63
+ # The namespace to ingest data into
64
+ namespace:,
65
+ # Schema mapping field names to their definitions. Use content_type to specify
66
+ # which fields contain URLs that should be processed (images, videos, or
67
+ # websites), datetime fields, or 'metadata' for fields that should be stored but
68
+ # not indexed. Use display_hint to provide UI rendering hints.
69
+ schema: nil,
70
+ # Namespace settings to store, replacing existing settings. Omit to leave existing
71
+ # settings unchanged. Configure these values with guidance from SafetyKit.
72
+ settings: nil,
73
+ request_options: {}
74
+ )
75
+ end
76
+
77
+ sig do
78
+ override.returns(
79
+ {
80
+ namespace: String,
81
+ schema:
82
+ T::Hash[Symbol, SafetyKit::DataUpdateSettingsParams::Schema],
83
+ settings: T::Hash[Symbol, T.nilable(T.anything)],
84
+ request_options: SafetyKit::RequestOptions
85
+ }
86
+ )
87
+ end
88
+ def to_hash
89
+ end
90
+
91
+ class Schema < SafetyKit::Internal::Type::BaseModel
92
+ OrHash =
93
+ T.type_alias do
94
+ T.any(
95
+ SafetyKit::DataUpdateSettingsParams::Schema,
96
+ SafetyKit::Internal::AnyHash
97
+ )
98
+ end
99
+
100
+ # The parent object namespace this field belongs to, creating a parent-child
101
+ # relationship with that namespace.
102
+ sig { returns(T.nilable(String)) }
103
+ attr_reader :belongs_to
104
+
105
+ sig { params(belongs_to: String).void }
106
+ attr_writer :belongs_to
107
+
108
+ # The type of content (image_url, video_url, audio_url, website_url, datetime,
109
+ # metadata, markdown, or html). When specified as a URL type, SafetyKit will
110
+ # process the URL. Use 'metadata' for fields that should be stored but not
111
+ # indexed, and 'markdown' or 'html' for rich text.
112
+ sig do
113
+ returns(
114
+ T.nilable(
115
+ SafetyKit::DataUpdateSettingsParams::Schema::ContentType::OrSymbol
116
+ )
117
+ )
118
+ end
119
+ attr_reader :content_type
120
+
121
+ sig do
122
+ params(
123
+ content_type:
124
+ SafetyKit::DataUpdateSettingsParams::Schema::ContentType::OrSymbol
125
+ ).void
126
+ end
127
+ attr_writer :content_type
128
+
129
+ # Display hint for UI rendering of this field
130
+ sig do
131
+ returns(
132
+ T.nilable(SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint)
133
+ )
134
+ end
135
+ attr_reader :display_hint
136
+
137
+ sig do
138
+ params(
139
+ display_hint:
140
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::OrHash
141
+ ).void
142
+ end
143
+ attr_writer :display_hint
144
+
145
+ # Maximum amount of this field to include when sending to AI models. For text
146
+ # fields, this is the character limit. For array fields (e.g. image URLs), this is
147
+ # the maximum number of items.
148
+ sig { returns(T.nilable(Integer)) }
149
+ attr_reader :field_limit
150
+
151
+ sig { params(field_limit: Integer).void }
152
+ attr_writer :field_limit
153
+
154
+ # Optional parser to apply before indexing this field.
155
+ sig do
156
+ returns(
157
+ T.nilable(
158
+ SafetyKit::DataUpdateSettingsParams::Schema::IngestAs::OrSymbol
159
+ )
160
+ )
161
+ end
162
+ attr_reader :ingest_as
163
+
164
+ sig do
165
+ params(
166
+ ingest_as:
167
+ SafetyKit::DataUpdateSettingsParams::Schema::IngestAs::OrSymbol
168
+ ).void
169
+ end
170
+ attr_writer :ingest_as
171
+
172
+ # Schema definition for a data field
173
+ sig do
174
+ params(
175
+ belongs_to: String,
176
+ content_type:
177
+ SafetyKit::DataUpdateSettingsParams::Schema::ContentType::OrSymbol,
178
+ display_hint:
179
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::OrHash,
180
+ field_limit: Integer,
181
+ ingest_as:
182
+ SafetyKit::DataUpdateSettingsParams::Schema::IngestAs::OrSymbol
183
+ ).returns(T.attached_class)
184
+ end
185
+ def self.new(
186
+ # The parent object namespace this field belongs to, creating a parent-child
187
+ # relationship with that namespace.
188
+ belongs_to: nil,
189
+ # The type of content (image_url, video_url, audio_url, website_url, datetime,
190
+ # metadata, markdown, or html). When specified as a URL type, SafetyKit will
191
+ # process the URL. Use 'metadata' for fields that should be stored but not
192
+ # indexed, and 'markdown' or 'html' for rich text.
193
+ content_type: nil,
194
+ # Display hint for UI rendering of this field
195
+ display_hint: nil,
196
+ # Maximum amount of this field to include when sending to AI models. For text
197
+ # fields, this is the character limit. For array fields (e.g. image URLs), this is
198
+ # the maximum number of items.
199
+ field_limit: nil,
200
+ # Optional parser to apply before indexing this field.
201
+ ingest_as: nil
202
+ )
203
+ end
204
+
205
+ sig do
206
+ override.returns(
207
+ {
208
+ belongs_to: String,
209
+ content_type:
210
+ SafetyKit::DataUpdateSettingsParams::Schema::ContentType::OrSymbol,
211
+ display_hint:
212
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint,
213
+ field_limit: Integer,
214
+ ingest_as:
215
+ SafetyKit::DataUpdateSettingsParams::Schema::IngestAs::OrSymbol
216
+ }
217
+ )
218
+ end
219
+ def to_hash
220
+ end
221
+
222
+ # The type of content (image_url, video_url, audio_url, website_url, datetime,
223
+ # metadata, markdown, or html). When specified as a URL type, SafetyKit will
224
+ # process the URL. Use 'metadata' for fields that should be stored but not
225
+ # indexed, and 'markdown' or 'html' for rich text.
226
+ module ContentType
227
+ extend SafetyKit::Internal::Type::Enum
228
+
229
+ TaggedSymbol =
230
+ T.type_alias do
231
+ T.all(
232
+ Symbol,
233
+ SafetyKit::DataUpdateSettingsParams::Schema::ContentType
234
+ )
235
+ end
236
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
237
+
238
+ IMAGE_URL =
239
+ T.let(
240
+ :image_url,
241
+ SafetyKit::DataUpdateSettingsParams::Schema::ContentType::TaggedSymbol
242
+ )
243
+ VIDEO_URL =
244
+ T.let(
245
+ :video_url,
246
+ SafetyKit::DataUpdateSettingsParams::Schema::ContentType::TaggedSymbol
247
+ )
248
+ AUDIO_URL =
249
+ T.let(
250
+ :audio_url,
251
+ SafetyKit::DataUpdateSettingsParams::Schema::ContentType::TaggedSymbol
252
+ )
253
+ WEBSITE_URL =
254
+ T.let(
255
+ :website_url,
256
+ SafetyKit::DataUpdateSettingsParams::Schema::ContentType::TaggedSymbol
257
+ )
258
+ DATETIME =
259
+ T.let(
260
+ :datetime,
261
+ SafetyKit::DataUpdateSettingsParams::Schema::ContentType::TaggedSymbol
262
+ )
263
+ METADATA =
264
+ T.let(
265
+ :metadata,
266
+ SafetyKit::DataUpdateSettingsParams::Schema::ContentType::TaggedSymbol
267
+ )
268
+ MARKDOWN =
269
+ T.let(
270
+ :markdown,
271
+ SafetyKit::DataUpdateSettingsParams::Schema::ContentType::TaggedSymbol
272
+ )
273
+ HTML =
274
+ T.let(
275
+ :html,
276
+ SafetyKit::DataUpdateSettingsParams::Schema::ContentType::TaggedSymbol
277
+ )
278
+
279
+ sig do
280
+ override.returns(
281
+ T::Array[
282
+ SafetyKit::DataUpdateSettingsParams::Schema::ContentType::TaggedSymbol
283
+ ]
284
+ )
285
+ end
286
+ def self.values
287
+ end
288
+ end
289
+
290
+ class DisplayHint < SafetyKit::Internal::Type::BaseModel
291
+ OrHash =
292
+ T.type_alias do
293
+ T.any(
294
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint,
295
+ SafetyKit::Internal::AnyHash
296
+ )
297
+ end
298
+
299
+ # Hide this field from default UI display.
300
+ sig { returns(T.nilable(T::Boolean)) }
301
+ attr_reader :hidden
302
+
303
+ sig { params(hidden: T::Boolean).void }
304
+ attr_writer :hidden
305
+
306
+ # Display label to show for this field in the UI
307
+ sig { returns(T.nilable(String)) }
308
+ attr_reader :name
309
+
310
+ sig { params(name: String).void }
311
+ attr_writer :name
312
+
313
+ # The display hint type
314
+ sig do
315
+ returns(
316
+ T.nilable(
317
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::OrSymbol
318
+ )
319
+ )
320
+ end
321
+ attr_reader :type
322
+
323
+ sig do
324
+ params(
325
+ type:
326
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::OrSymbol
327
+ ).void
328
+ end
329
+ attr_writer :type
330
+
331
+ # Display hint for UI rendering of this field
332
+ sig do
333
+ params(
334
+ hidden: T::Boolean,
335
+ name: String,
336
+ type:
337
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::OrSymbol
338
+ ).returns(T.attached_class)
339
+ end
340
+ def self.new(
341
+ # Hide this field from default UI display.
342
+ hidden: nil,
343
+ # Display label to show for this field in the UI
344
+ name: nil,
345
+ # The display hint type
346
+ type: nil
347
+ )
348
+ end
349
+
350
+ sig do
351
+ override.returns(
352
+ {
353
+ hidden: T::Boolean,
354
+ name: String,
355
+ type:
356
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::OrSymbol
357
+ }
358
+ )
359
+ end
360
+ def to_hash
361
+ end
362
+
363
+ # The display hint type
364
+ module Type
365
+ extend SafetyKit::Internal::Type::Enum
366
+
367
+ TaggedSymbol =
368
+ T.type_alias do
369
+ T.all(
370
+ Symbol,
371
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type
372
+ )
373
+ end
374
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
375
+
376
+ TITLE =
377
+ T.let(
378
+ :title,
379
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
380
+ )
381
+ SUBTITLE =
382
+ T.let(
383
+ :subtitle,
384
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
385
+ )
386
+ CATEGORY =
387
+ T.let(
388
+ :category,
389
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
390
+ )
391
+ IDENTIFIER =
392
+ T.let(
393
+ :identifier,
394
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
395
+ )
396
+ CANONICAL_URL =
397
+ T.let(
398
+ :canonical_url,
399
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
400
+ )
401
+ STATUS =
402
+ T.let(
403
+ :status,
404
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
405
+ )
406
+ PRIMARY_TAG_SET =
407
+ T.let(
408
+ :primary_tag_set,
409
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
410
+ )
411
+ TAG_SET =
412
+ T.let(
413
+ :tag_set,
414
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
415
+ )
416
+ TIMESTAMP =
417
+ T.let(
418
+ :timestamp,
419
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
420
+ )
421
+ RATING =
422
+ T.let(
423
+ :rating,
424
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
425
+ )
426
+ SUMMARY =
427
+ T.let(
428
+ :summary,
429
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
430
+ )
431
+ PROFILE_IMAGE =
432
+ T.let(
433
+ :profile_image,
434
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
435
+ )
436
+ PRIMARY_IMAGE =
437
+ T.let(
438
+ :primary_image,
439
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
440
+ )
441
+ IMAGE_SET =
442
+ T.let(
443
+ :image_set,
444
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
445
+ )
446
+ VIDEO_SET =
447
+ T.let(
448
+ :video_set,
449
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
450
+ )
451
+ AUDIO_SET =
452
+ T.let(
453
+ :audio_set,
454
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
455
+ )
456
+ BODY =
457
+ T.let(
458
+ :body,
459
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
460
+ )
461
+ THREAD =
462
+ T.let(
463
+ :thread,
464
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
465
+ )
466
+ TWO_PERSON_CHAT =
467
+ T.let(
468
+ :two_person_chat,
469
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
470
+ )
471
+ MESSAGE =
472
+ T.let(
473
+ :message,
474
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
475
+ )
476
+ PROFILE =
477
+ T.let(
478
+ :profile,
479
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
480
+ )
481
+ MONEY =
482
+ T.let(
483
+ :money,
484
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
485
+ )
486
+ LOCATION =
487
+ T.let(
488
+ :location,
489
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
490
+ )
491
+ ATTRIBUTE_GROUP =
492
+ T.let(
493
+ :attribute_group,
494
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
495
+ )
496
+ ATTRIBUTE =
497
+ T.let(
498
+ :attribute,
499
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
500
+ )
501
+
502
+ sig do
503
+ override.returns(
504
+ T::Array[
505
+ SafetyKit::DataUpdateSettingsParams::Schema::DisplayHint::Type::TaggedSymbol
506
+ ]
507
+ )
508
+ end
509
+ def self.values
510
+ end
511
+ end
512
+ end
513
+
514
+ # Optional parser to apply before indexing this field.
515
+ module IngestAs
516
+ extend SafetyKit::Internal::Type::Enum
517
+
518
+ TaggedSymbol =
519
+ T.type_alias do
520
+ T.all(
521
+ Symbol,
522
+ SafetyKit::DataUpdateSettingsParams::Schema::IngestAs
523
+ )
524
+ end
525
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
526
+
527
+ FLOAT =
528
+ T.let(
529
+ :float,
530
+ SafetyKit::DataUpdateSettingsParams::Schema::IngestAs::TaggedSymbol
531
+ )
532
+ DATETIME =
533
+ T.let(
534
+ :datetime,
535
+ SafetyKit::DataUpdateSettingsParams::Schema::IngestAs::TaggedSymbol
536
+ )
537
+
538
+ sig do
539
+ override.returns(
540
+ T::Array[
541
+ SafetyKit::DataUpdateSettingsParams::Schema::IngestAs::TaggedSymbol
542
+ ]
543
+ )
544
+ end
545
+ def self.values
546
+ end
547
+ end
548
+ end
549
+ end
550
+ end
551
+ end
@@ -0,0 +1,74 @@
1
+ # typed: strong
2
+
3
+ module SafetyKit
4
+ module Models
5
+ class DataUpdateSettingsResponse < SafetyKit::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ SafetyKit::Models::DataUpdateSettingsResponse,
10
+ SafetyKit::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :namespace
16
+
17
+ sig do
18
+ returns(
19
+ SafetyKit::Models::DataUpdateSettingsResponse::Status::TaggedSymbol
20
+ )
21
+ end
22
+ attr_accessor :status
23
+
24
+ # Namespace configuration was stored.
25
+ sig do
26
+ params(
27
+ namespace: String,
28
+ status:
29
+ SafetyKit::Models::DataUpdateSettingsResponse::Status::OrSymbol
30
+ ).returns(T.attached_class)
31
+ end
32
+ def self.new(namespace:, status:)
33
+ end
34
+
35
+ sig do
36
+ override.returns(
37
+ {
38
+ namespace: String,
39
+ status:
40
+ SafetyKit::Models::DataUpdateSettingsResponse::Status::TaggedSymbol
41
+ }
42
+ )
43
+ end
44
+ def to_hash
45
+ end
46
+
47
+ module Status
48
+ extend SafetyKit::Internal::Type::Enum
49
+
50
+ TaggedSymbol =
51
+ T.type_alias do
52
+ T.all(Symbol, SafetyKit::Models::DataUpdateSettingsResponse::Status)
53
+ end
54
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
55
+
56
+ UPDATED =
57
+ T.let(
58
+ :updated,
59
+ SafetyKit::Models::DataUpdateSettingsResponse::Status::TaggedSymbol
60
+ )
61
+
62
+ sig do
63
+ override.returns(
64
+ T::Array[
65
+ SafetyKit::Models::DataUpdateSettingsResponse::Status::TaggedSymbol
66
+ ]
67
+ )
68
+ end
69
+ def self.values
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
@@ -21,6 +21,8 @@ module SafetyKit
21
21
 
22
22
  DataObject = SafetyKit::Models::DataObject
23
23
 
24
+ DataUpdateSettingsParams = SafetyKit::Models::DataUpdateSettingsParams
25
+
24
26
  DeletionRequestCreateParams = SafetyKit::Models::DeletionRequestCreateParams
25
27
 
26
28
  StreamAddFrameParams = SafetyKit::Models::StreamAddFrameParams
@@ -8,7 +8,12 @@ module SafetyKit
8
8
  # Beta. Queue backend events for asynchronous ingestion. This endpoint accepts the
9
9
  # same request body as POST /v1/events, writes one SQS message per event, and
10
10
  # returns after the events are queued. SafetyKit later processes the queued events
11
- # through the standard event ingestion path.
11
+ # through the standard event ingestion path. Event strings support tab (U+0009),
12
+ # line feed (U+000A), carriage return (U+000D), and characters in the ranges
13
+ # U+0020–U+D7FF, U+E000–U+FFFD, and U+10000–U+10FFFF. The endpoint strips all
14
+ # other code points before queueing the event; clients should sanitize them before
15
+ # sending because they are unsupported and can cause errors in other ingestion
16
+ # paths.
12
17
  sig do
13
18
  params(
14
19
  body:
@@ -82,6 +82,36 @@ module SafetyKit
82
82
  )
83
83
  end
84
84
 
85
+ # Update the schema and/or settings for a namespace. Only the fields provided are
86
+ # updated; omitted fields are left unchanged. Namespaces whose configuration is
87
+ # managed by SafetyKit cannot be updated through this endpoint.
88
+ sig do
89
+ params(
90
+ namespace: String,
91
+ schema:
92
+ T::Hash[
93
+ Symbol,
94
+ SafetyKit::DataUpdateSettingsParams::Schema::OrHash
95
+ ],
96
+ settings: T::Hash[Symbol, T.nilable(T.anything)],
97
+ request_options: SafetyKit::RequestOptions::OrHash
98
+ ).returns(SafetyKit::Models::DataUpdateSettingsResponse)
99
+ end
100
+ def update_settings(
101
+ # The namespace to ingest data into
102
+ namespace,
103
+ # Schema mapping field names to their definitions. Use content_type to specify
104
+ # which fields contain URLs that should be processed (images, videos, or
105
+ # websites), datetime fields, or 'metadata' for fields that should be stored but
106
+ # not indexed. Use display_hint to provide UI rendering hints.
107
+ schema: nil,
108
+ # Namespace settings to store, replacing existing settings. Omit to leave existing
109
+ # settings unchanged. Configure these values with guidance from SafetyKit.
110
+ settings: nil,
111
+ request_options: {}
112
+ )
113
+ end
114
+
85
115
  # @api private
86
116
  sig { params(client: SafetyKit::Client).returns(T.attached_class) }
87
117
  def self.new(client:)