turbopuffer 2.9.0 → 2.10.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.
@@ -31,17 +31,44 @@ module Turbopuffer
31
31
  sig { returns(Symbol) }
32
32
  attr_accessor :mode
33
33
 
34
+ # The AWS KMS encryption context to send with every request that uses the key.
35
+ # Only supported on AWS, and must be enabled for your organization. Keys may not
36
+ # start with `tpuf:` or `aws:`.
37
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
38
+ attr_reader :encryption_context
39
+
40
+ sig { params(encryption_context: T::Hash[Symbol, String]).void }
41
+ attr_writer :encryption_context
42
+
34
43
  # Encrypt the namespace with a customer-managed encryption key (CMEK).
35
- sig { params(key_name: String, mode: Symbol).returns(T.attached_class) }
44
+ sig do
45
+ params(
46
+ key_name: String,
47
+ encryption_context: T::Hash[Symbol, String],
48
+ mode: Symbol
49
+ ).returns(T.attached_class)
50
+ end
36
51
  def self.new(
37
52
  # The identifier of the CMEK key to use for encryption. For GCP, the
38
53
  # fully-qualified resource name of the key. For AWS, the ARN of the key.
39
54
  key_name:,
55
+ # The AWS KMS encryption context to send with every request that uses the key.
56
+ # Only supported on AWS, and must be enabled for your organization. Keys may not
57
+ # start with `tpuf:` or `aws:`.
58
+ encryption_context: nil,
40
59
  mode: :"customer-managed"
41
60
  )
42
61
  end
43
62
 
44
- sig { override.returns({ key_name: String, mode: Symbol }) }
63
+ sig do
64
+ override.returns(
65
+ {
66
+ key_name: String,
67
+ mode: Symbol,
68
+ encryption_context: T::Hash[Symbol, String]
69
+ }
70
+ )
71
+ end
45
72
  def to_hash
46
73
  end
47
74
  end
@@ -40,7 +40,12 @@ module Turbopuffer
40
40
  # The consistency level for a query.
41
41
  sig do
42
42
  returns(
43
- T.nilable(Turbopuffer::NamespaceExplainQueryParams::Consistency)
43
+ T.nilable(
44
+ T.any(
45
+ Turbopuffer::NamespaceExplainQueryParams::Consistency::Strong,
46
+ Turbopuffer::NamespaceExplainQueryParams::Consistency::Eventual
47
+ )
48
+ )
44
49
  )
45
50
  end
46
51
  attr_reader :consistency
@@ -48,7 +53,10 @@ module Turbopuffer
48
53
  sig do
49
54
  params(
50
55
  consistency:
51
- Turbopuffer::NamespaceExplainQueryParams::Consistency::OrHash
56
+ T.any(
57
+ Turbopuffer::NamespaceExplainQueryParams::Consistency::Strong::OrHash,
58
+ Turbopuffer::NamespaceExplainQueryParams::Consistency::Eventual::OrHash
59
+ )
52
60
  ).void
53
61
  end
54
62
  attr_writer :consistency
@@ -141,7 +149,10 @@ module Turbopuffer
141
149
  aggregate_by: T::Hash[Symbol, T.anything],
142
150
  compute_attributes: T::Hash[Symbol, T.anything],
143
151
  consistency:
144
- Turbopuffer::NamespaceExplainQueryParams::Consistency::OrHash,
152
+ T.any(
153
+ Turbopuffer::NamespaceExplainQueryParams::Consistency::Strong::OrHash,
154
+ Turbopuffer::NamespaceExplainQueryParams::Consistency::Eventual::OrHash
155
+ ),
145
156
  distance_metric: Turbopuffer::DistanceMetric::OrSymbol,
146
157
  exclude_attributes: T::Array[String],
147
158
  filters: T.anything,
@@ -200,7 +211,11 @@ module Turbopuffer
200
211
  namespace: String,
201
212
  aggregate_by: T::Hash[Symbol, T.anything],
202
213
  compute_attributes: T::Hash[Symbol, T.anything],
203
- consistency: Turbopuffer::NamespaceExplainQueryParams::Consistency,
214
+ consistency:
215
+ T.any(
216
+ Turbopuffer::NamespaceExplainQueryParams::Consistency::Strong,
217
+ Turbopuffer::NamespaceExplainQueryParams::Consistency::Eventual
218
+ ),
204
219
  distance_metric: Turbopuffer::DistanceMetric::OrSymbol,
205
220
  exclude_attributes: T::Array[String],
206
221
  filters: T.anything,
@@ -218,94 +233,92 @@ module Turbopuffer
218
233
  def to_hash
219
234
  end
220
235
 
221
- class Consistency < Turbopuffer::Internal::Type::BaseModel
222
- OrHash =
236
+ # The consistency level for a query.
237
+ module Consistency
238
+ extend Turbopuffer::Internal::Type::Union
239
+
240
+ Variants =
223
241
  T.type_alias do
224
242
  T.any(
225
- Turbopuffer::NamespaceExplainQueryParams::Consistency,
226
- Turbopuffer::Internal::AnyHash
243
+ Turbopuffer::NamespaceExplainQueryParams::Consistency::Strong,
244
+ Turbopuffer::NamespaceExplainQueryParams::Consistency::Eventual
227
245
  )
228
246
  end
229
247
 
230
- # The query's consistency level.
231
- sig do
232
- returns(
233
- T.nilable(
234
- Turbopuffer::NamespaceExplainQueryParams::Consistency::Level::OrSymbol
235
- )
236
- )
237
- end
238
- attr_reader :level
248
+ class Strong < Turbopuffer::Internal::Type::BaseModel
249
+ OrHash =
250
+ T.type_alias do
251
+ T.any(
252
+ Turbopuffer::NamespaceExplainQueryParams::Consistency::Strong,
253
+ Turbopuffer::Internal::AnyHash
254
+ )
255
+ end
239
256
 
240
- sig do
241
- params(
242
- level:
243
- Turbopuffer::NamespaceExplainQueryParams::Consistency::Level::OrSymbol
244
- ).void
245
- end
246
- attr_writer :level
257
+ sig { returns(Symbol) }
258
+ attr_accessor :level
247
259
 
248
- # The consistency level for a query.
249
- sig do
250
- params(
251
- level:
252
- Turbopuffer::NamespaceExplainQueryParams::Consistency::Level::OrSymbol
253
- ).returns(T.attached_class)
254
- end
255
- def self.new(
256
- # The query's consistency level.
257
- level: nil
258
- )
259
- end
260
+ # Strong consistency. Requires a round-trip to object storage to fetch the latest
261
+ # writes.
262
+ sig { params(level: Symbol).returns(T.attached_class) }
263
+ def self.new(level: :strong)
264
+ end
260
265
 
261
- sig do
262
- override.returns(
263
- {
264
- level:
265
- Turbopuffer::NamespaceExplainQueryParams::Consistency::Level::OrSymbol
266
- }
267
- )
268
- end
269
- def to_hash
266
+ sig { override.returns({ level: Symbol }) }
267
+ def to_hash
268
+ end
270
269
  end
271
270
 
272
- # The query's consistency level.
273
- module Level
274
- extend Turbopuffer::Internal::Type::Enum
275
-
276
- TaggedSymbol =
271
+ class Eventual < Turbopuffer::Internal::Type::BaseModel
272
+ OrHash =
277
273
  T.type_alias do
278
- T.all(
279
- Symbol,
280
- Turbopuffer::NamespaceExplainQueryParams::Consistency::Level
274
+ T.any(
275
+ Turbopuffer::NamespaceExplainQueryParams::Consistency::Eventual,
276
+ Turbopuffer::Internal::AnyHash
281
277
  )
282
278
  end
283
- OrSymbol = T.type_alias { T.any(Symbol, String) }
284
279
 
285
- # Strong consistency. Requires a round-trip to object storage to fetch the latest writes.
286
- STRONG =
287
- T.let(
288
- :strong,
289
- Turbopuffer::NamespaceExplainQueryParams::Consistency::Level::TaggedSymbol
290
- )
280
+ sig { returns(Symbol) }
281
+ attr_accessor :level
291
282
 
292
- # Eventual consistency. Does not require a round-trip to object storage, but may not see the latest writes.
293
- EVENTUAL =
294
- T.let(
295
- :eventual,
296
- Turbopuffer::NamespaceExplainQueryParams::Consistency::Level::TaggedSymbol
297
- )
283
+ # How long the query may reuse the node's cached view of the namespace before
284
+ # refreshing it from object storage. Defaults to 60.
285
+ sig { returns(T.nilable(Integer)) }
286
+ attr_reader :max_staleness_seconds
298
287
 
288
+ sig { params(max_staleness_seconds: Integer).void }
289
+ attr_writer :max_staleness_seconds
290
+
291
+ # Eventual consistency. Does not require a round-trip to object storage, but may
292
+ # not see the latest writes.
299
293
  sig do
300
- override.returns(
301
- T::Array[
302
- Turbopuffer::NamespaceExplainQueryParams::Consistency::Level::TaggedSymbol
303
- ]
294
+ params(max_staleness_seconds: Integer, level: Symbol).returns(
295
+ T.attached_class
304
296
  )
305
297
  end
306
- def self.values
298
+ def self.new(
299
+ # How long the query may reuse the node's cached view of the namespace before
300
+ # refreshing it from object storage. Defaults to 60.
301
+ max_staleness_seconds: nil,
302
+ level: :eventual
303
+ )
304
+ end
305
+
306
+ sig do
307
+ override.returns({ level: Symbol, max_staleness_seconds: Integer })
308
+ end
309
+ def to_hash
307
310
  end
308
311
  end
312
+
313
+ sig do
314
+ override.returns(
315
+ T::Array[
316
+ Turbopuffer::NamespaceExplainQueryParams::Consistency::Variants
317
+ ]
318
+ )
319
+ end
320
+ def self.variants
321
+ end
309
322
  end
310
323
 
311
324
  # Limits the documents returned by a query.
@@ -25,14 +25,24 @@ module Turbopuffer
25
25
 
26
26
  # The consistency level for a query.
27
27
  sig do
28
- returns(T.nilable(Turbopuffer::NamespaceMultiQueryParams::Consistency))
28
+ returns(
29
+ T.nilable(
30
+ T.any(
31
+ Turbopuffer::NamespaceMultiQueryParams::Consistency::Strong,
32
+ Turbopuffer::NamespaceMultiQueryParams::Consistency::Eventual
33
+ )
34
+ )
35
+ )
29
36
  end
30
37
  attr_reader :consistency
31
38
 
32
39
  sig do
33
40
  params(
34
41
  consistency:
35
- Turbopuffer::NamespaceMultiQueryParams::Consistency::OrHash
42
+ T.any(
43
+ Turbopuffer::NamespaceMultiQueryParams::Consistency::Strong::OrHash,
44
+ Turbopuffer::NamespaceMultiQueryParams::Consistency::Eventual::OrHash
45
+ )
36
46
  ).void
37
47
  end
38
48
  attr_writer :consistency
@@ -76,7 +86,10 @@ module Turbopuffer
76
86
  T::Array[Turbopuffer::NamespaceMultiQueryParams::Query::OrHash],
77
87
  namespace: String,
78
88
  consistency:
79
- Turbopuffer::NamespaceMultiQueryParams::Consistency::OrHash,
89
+ T.any(
90
+ Turbopuffer::NamespaceMultiQueryParams::Consistency::Strong::OrHash,
91
+ Turbopuffer::NamespaceMultiQueryParams::Consistency::Eventual::OrHash
92
+ ),
80
93
  limit: T.any(Integer, Turbopuffer::RerankLimit::OrHash),
81
94
  offset: Integer,
82
95
  rerank_by: T.anything,
@@ -107,7 +120,11 @@ module Turbopuffer
107
120
  {
108
121
  namespace: String,
109
122
  queries: T::Array[Turbopuffer::NamespaceMultiQueryParams::Query],
110
- consistency: Turbopuffer::NamespaceMultiQueryParams::Consistency,
123
+ consistency:
124
+ T.any(
125
+ Turbopuffer::NamespaceMultiQueryParams::Consistency::Strong,
126
+ Turbopuffer::NamespaceMultiQueryParams::Consistency::Eventual
127
+ ),
111
128
  limit: T.any(Integer, Turbopuffer::RerankLimit),
112
129
  offset: Integer,
113
130
  rerank_by: T.anything,
@@ -305,94 +322,92 @@ module Turbopuffer
305
322
  end
306
323
  end
307
324
 
308
- class Consistency < Turbopuffer::Internal::Type::BaseModel
309
- OrHash =
325
+ # The consistency level for a query.
326
+ module Consistency
327
+ extend Turbopuffer::Internal::Type::Union
328
+
329
+ Variants =
310
330
  T.type_alias do
311
331
  T.any(
312
- Turbopuffer::NamespaceMultiQueryParams::Consistency,
313
- Turbopuffer::Internal::AnyHash
332
+ Turbopuffer::NamespaceMultiQueryParams::Consistency::Strong,
333
+ Turbopuffer::NamespaceMultiQueryParams::Consistency::Eventual
314
334
  )
315
335
  end
316
336
 
317
- # The query's consistency level.
318
- sig do
319
- returns(
320
- T.nilable(
321
- Turbopuffer::NamespaceMultiQueryParams::Consistency::Level::OrSymbol
322
- )
323
- )
324
- end
325
- attr_reader :level
337
+ class Strong < Turbopuffer::Internal::Type::BaseModel
338
+ OrHash =
339
+ T.type_alias do
340
+ T.any(
341
+ Turbopuffer::NamespaceMultiQueryParams::Consistency::Strong,
342
+ Turbopuffer::Internal::AnyHash
343
+ )
344
+ end
326
345
 
327
- sig do
328
- params(
329
- level:
330
- Turbopuffer::NamespaceMultiQueryParams::Consistency::Level::OrSymbol
331
- ).void
332
- end
333
- attr_writer :level
346
+ sig { returns(Symbol) }
347
+ attr_accessor :level
334
348
 
335
- # The consistency level for a query.
336
- sig do
337
- params(
338
- level:
339
- Turbopuffer::NamespaceMultiQueryParams::Consistency::Level::OrSymbol
340
- ).returns(T.attached_class)
341
- end
342
- def self.new(
343
- # The query's consistency level.
344
- level: nil
345
- )
346
- end
349
+ # Strong consistency. Requires a round-trip to object storage to fetch the latest
350
+ # writes.
351
+ sig { params(level: Symbol).returns(T.attached_class) }
352
+ def self.new(level: :strong)
353
+ end
347
354
 
348
- sig do
349
- override.returns(
350
- {
351
- level:
352
- Turbopuffer::NamespaceMultiQueryParams::Consistency::Level::OrSymbol
353
- }
354
- )
355
- end
356
- def to_hash
355
+ sig { override.returns({ level: Symbol }) }
356
+ def to_hash
357
+ end
357
358
  end
358
359
 
359
- # The query's consistency level.
360
- module Level
361
- extend Turbopuffer::Internal::Type::Enum
362
-
363
- TaggedSymbol =
360
+ class Eventual < Turbopuffer::Internal::Type::BaseModel
361
+ OrHash =
364
362
  T.type_alias do
365
- T.all(
366
- Symbol,
367
- Turbopuffer::NamespaceMultiQueryParams::Consistency::Level
363
+ T.any(
364
+ Turbopuffer::NamespaceMultiQueryParams::Consistency::Eventual,
365
+ Turbopuffer::Internal::AnyHash
368
366
  )
369
367
  end
370
- OrSymbol = T.type_alias { T.any(Symbol, String) }
371
368
 
372
- # Strong consistency. Requires a round-trip to object storage to fetch the latest writes.
373
- STRONG =
374
- T.let(
375
- :strong,
376
- Turbopuffer::NamespaceMultiQueryParams::Consistency::Level::TaggedSymbol
377
- )
369
+ sig { returns(Symbol) }
370
+ attr_accessor :level
378
371
 
379
- # Eventual consistency. Does not require a round-trip to object storage, but may not see the latest writes.
380
- EVENTUAL =
381
- T.let(
382
- :eventual,
383
- Turbopuffer::NamespaceMultiQueryParams::Consistency::Level::TaggedSymbol
384
- )
372
+ # How long the query may reuse the node's cached view of the namespace before
373
+ # refreshing it from object storage. Defaults to 60.
374
+ sig { returns(T.nilable(Integer)) }
375
+ attr_reader :max_staleness_seconds
376
+
377
+ sig { params(max_staleness_seconds: Integer).void }
378
+ attr_writer :max_staleness_seconds
385
379
 
380
+ # Eventual consistency. Does not require a round-trip to object storage, but may
381
+ # not see the latest writes.
386
382
  sig do
387
- override.returns(
388
- T::Array[
389
- Turbopuffer::NamespaceMultiQueryParams::Consistency::Level::TaggedSymbol
390
- ]
383
+ params(max_staleness_seconds: Integer, level: Symbol).returns(
384
+ T.attached_class
391
385
  )
392
386
  end
393
- def self.values
387
+ def self.new(
388
+ # How long the query may reuse the node's cached view of the namespace before
389
+ # refreshing it from object storage. Defaults to 60.
390
+ max_staleness_seconds: nil,
391
+ level: :eventual
392
+ )
393
+ end
394
+
395
+ sig do
396
+ override.returns({ level: Symbol, max_staleness_seconds: Integer })
397
+ end
398
+ def to_hash
394
399
  end
395
400
  end
401
+
402
+ sig do
403
+ override.returns(
404
+ T::Array[
405
+ Turbopuffer::NamespaceMultiQueryParams::Consistency::Variants
406
+ ]
407
+ )
408
+ end
409
+ def self.variants
410
+ end
396
411
  end
397
412
 
398
413
  # Limits the total number of reranked documents returned.
@@ -38,12 +38,25 @@ module Turbopuffer
38
38
  attr_writer :compute_attributes
39
39
 
40
40
  # The consistency level for a query.
41
- sig { returns(T.nilable(Turbopuffer::NamespaceQueryParams::Consistency)) }
41
+ sig do
42
+ returns(
43
+ T.nilable(
44
+ T.any(
45
+ Turbopuffer::NamespaceQueryParams::Consistency::Strong,
46
+ Turbopuffer::NamespaceQueryParams::Consistency::Eventual
47
+ )
48
+ )
49
+ )
50
+ end
42
51
  attr_reader :consistency
43
52
 
44
53
  sig do
45
54
  params(
46
- consistency: Turbopuffer::NamespaceQueryParams::Consistency::OrHash
55
+ consistency:
56
+ T.any(
57
+ Turbopuffer::NamespaceQueryParams::Consistency::Strong::OrHash,
58
+ Turbopuffer::NamespaceQueryParams::Consistency::Eventual::OrHash
59
+ )
47
60
  ).void
48
61
  end
49
62
  attr_writer :consistency
@@ -142,7 +155,11 @@ module Turbopuffer
142
155
  namespace: String,
143
156
  aggregate_by: T::Hash[Symbol, T.anything],
144
157
  compute_attributes: T::Hash[Symbol, T.anything],
145
- consistency: Turbopuffer::NamespaceQueryParams::Consistency::OrHash,
158
+ consistency:
159
+ T.any(
160
+ Turbopuffer::NamespaceQueryParams::Consistency::Strong::OrHash,
161
+ Turbopuffer::NamespaceQueryParams::Consistency::Eventual::OrHash
162
+ ),
146
163
  distance_metric: Turbopuffer::DistanceMetric::OrSymbol,
147
164
  exclude_attributes: T::Array[String],
148
165
  filters: T.anything,
@@ -204,7 +221,11 @@ module Turbopuffer
204
221
  namespace: String,
205
222
  aggregate_by: T::Hash[Symbol, T.anything],
206
223
  compute_attributes: T::Hash[Symbol, T.anything],
207
- consistency: Turbopuffer::NamespaceQueryParams::Consistency,
224
+ consistency:
225
+ T.any(
226
+ Turbopuffer::NamespaceQueryParams::Consistency::Strong,
227
+ Turbopuffer::NamespaceQueryParams::Consistency::Eventual
228
+ ),
208
229
  distance_metric: Turbopuffer::DistanceMetric::OrSymbol,
209
230
  exclude_attributes: T::Array[String],
210
231
  filters: T.anything,
@@ -223,94 +244,90 @@ module Turbopuffer
223
244
  def to_hash
224
245
  end
225
246
 
226
- class Consistency < Turbopuffer::Internal::Type::BaseModel
227
- OrHash =
247
+ # The consistency level for a query.
248
+ module Consistency
249
+ extend Turbopuffer::Internal::Type::Union
250
+
251
+ Variants =
228
252
  T.type_alias do
229
253
  T.any(
230
- Turbopuffer::NamespaceQueryParams::Consistency,
231
- Turbopuffer::Internal::AnyHash
254
+ Turbopuffer::NamespaceQueryParams::Consistency::Strong,
255
+ Turbopuffer::NamespaceQueryParams::Consistency::Eventual
232
256
  )
233
257
  end
234
258
 
235
- # The query's consistency level.
236
- sig do
237
- returns(
238
- T.nilable(
239
- Turbopuffer::NamespaceQueryParams::Consistency::Level::OrSymbol
240
- )
241
- )
242
- end
243
- attr_reader :level
259
+ class Strong < Turbopuffer::Internal::Type::BaseModel
260
+ OrHash =
261
+ T.type_alias do
262
+ T.any(
263
+ Turbopuffer::NamespaceQueryParams::Consistency::Strong,
264
+ Turbopuffer::Internal::AnyHash
265
+ )
266
+ end
244
267
 
245
- sig do
246
- params(
247
- level:
248
- Turbopuffer::NamespaceQueryParams::Consistency::Level::OrSymbol
249
- ).void
250
- end
251
- attr_writer :level
268
+ sig { returns(Symbol) }
269
+ attr_accessor :level
252
270
 
253
- # The consistency level for a query.
254
- sig do
255
- params(
256
- level:
257
- Turbopuffer::NamespaceQueryParams::Consistency::Level::OrSymbol
258
- ).returns(T.attached_class)
259
- end
260
- def self.new(
261
- # The query's consistency level.
262
- level: nil
263
- )
264
- end
271
+ # Strong consistency. Requires a round-trip to object storage to fetch the latest
272
+ # writes.
273
+ sig { params(level: Symbol).returns(T.attached_class) }
274
+ def self.new(level: :strong)
275
+ end
265
276
 
266
- sig do
267
- override.returns(
268
- {
269
- level:
270
- Turbopuffer::NamespaceQueryParams::Consistency::Level::OrSymbol
271
- }
272
- )
273
- end
274
- def to_hash
277
+ sig { override.returns({ level: Symbol }) }
278
+ def to_hash
279
+ end
275
280
  end
276
281
 
277
- # The query's consistency level.
278
- module Level
279
- extend Turbopuffer::Internal::Type::Enum
280
-
281
- TaggedSymbol =
282
+ class Eventual < Turbopuffer::Internal::Type::BaseModel
283
+ OrHash =
282
284
  T.type_alias do
283
- T.all(
284
- Symbol,
285
- Turbopuffer::NamespaceQueryParams::Consistency::Level
285
+ T.any(
286
+ Turbopuffer::NamespaceQueryParams::Consistency::Eventual,
287
+ Turbopuffer::Internal::AnyHash
286
288
  )
287
289
  end
288
- OrSymbol = T.type_alias { T.any(Symbol, String) }
289
290
 
290
- # Strong consistency. Requires a round-trip to object storage to fetch the latest writes.
291
- STRONG =
292
- T.let(
293
- :strong,
294
- Turbopuffer::NamespaceQueryParams::Consistency::Level::TaggedSymbol
295
- )
291
+ sig { returns(Symbol) }
292
+ attr_accessor :level
296
293
 
297
- # Eventual consistency. Does not require a round-trip to object storage, but may not see the latest writes.
298
- EVENTUAL =
299
- T.let(
300
- :eventual,
301
- Turbopuffer::NamespaceQueryParams::Consistency::Level::TaggedSymbol
302
- )
294
+ # How long the query may reuse the node's cached view of the namespace before
295
+ # refreshing it from object storage. Defaults to 60.
296
+ sig { returns(T.nilable(Integer)) }
297
+ attr_reader :max_staleness_seconds
298
+
299
+ sig { params(max_staleness_seconds: Integer).void }
300
+ attr_writer :max_staleness_seconds
303
301
 
302
+ # Eventual consistency. Does not require a round-trip to object storage, but may
303
+ # not see the latest writes.
304
304
  sig do
305
- override.returns(
306
- T::Array[
307
- Turbopuffer::NamespaceQueryParams::Consistency::Level::TaggedSymbol
308
- ]
305
+ params(max_staleness_seconds: Integer, level: Symbol).returns(
306
+ T.attached_class
309
307
  )
310
308
  end
311
- def self.values
309
+ def self.new(
310
+ # How long the query may reuse the node's cached view of the namespace before
311
+ # refreshing it from object storage. Defaults to 60.
312
+ max_staleness_seconds: nil,
313
+ level: :eventual
314
+ )
315
+ end
316
+
317
+ sig do
318
+ override.returns({ level: Symbol, max_staleness_seconds: Integer })
319
+ end
320
+ def to_hash
312
321
  end
313
322
  end
323
+
324
+ sig do
325
+ override.returns(
326
+ T::Array[Turbopuffer::NamespaceQueryParams::Consistency::Variants]
327
+ )
328
+ end
329
+ def self.variants
330
+ end
314
331
  end
315
332
 
316
333
  # Limits the documents returned by a query.