turbopuffer 1.8.0 → 1.9.1

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: 1ce140f383cd214d319532393b102253c791f6d02d2ab1bed260839f6cf3c4da
4
- data.tar.gz: bded1cc386ff2225788fd6fc94260e082c2616bb26acec3786409dbdd4ee6b48
3
+ metadata.gz: 5317a57b9e5ee7b9a97c67d3127944481e6ec1bb205145dda3c17c45f1cb9282
4
+ data.tar.gz: c38a3da7c80cc45153758504a2d041de9c489b7e713ac103ef49b6ef9b975a02
5
5
  SHA512:
6
- metadata.gz: 57e5843be79fdb247ffa70c955991330e45e653892faf18fd4482aefddb286fc971e87e12fdbf34b4a7fa6a1288618ae7aa8694002647793a4961293d9b52c38
7
- data.tar.gz: be47597ec9e7d65fbad2e73b641873ad238ead54f44ea0e0605655cba114b28831560bb3f13986861db9654c72578d2ebdac03612fea289cbfbaf4236b63028c
6
+ metadata.gz: d7e734989c2ea71559c836afd0af03b2f4da88d90964f9f41c8fdbbb0df6b315b3ae8e67c5733773f3c3ee6016e21bd8bb129a0d16f55e4f11e6f2fa596cce2c
7
+ data.tar.gz: 2911b8daa350bb6f35e5734fe8f0f1b677ca0f1ed91643bbbf0d3ce9074d23918008565a05dff8604596a82db1d3972d276448680c1cf00baac6782cec8bc7c8
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.9.1 (2025-12-02)
4
+
5
+ Full Changelog: [v1.9.0...v1.9.1](https://github.com/turbopuffer/turbopuffer-ruby/compare/v1.9.0...v1.9.1)
6
+
7
+ ### Documentation
8
+
9
+ * add cross-region copy_from_namespace to write API docs ([bf6a887](https://github.com/turbopuffer/turbopuffer-ruby/commit/bf6a8873718ce040cf6677bca238069fff8a4950))
10
+
11
+ ## 1.9.0 (2025-12-02)
12
+
13
+ Full Changelog: [v1.8.0...v1.9.0](https://github.com/turbopuffer/turbopuffer-ruby/compare/v1.8.0...v1.9.0)
14
+
15
+ ### Features
16
+
17
+ * sdks: add <patch|delete>_by_filter_allow_partial options ([cd557aa](https://github.com/turbopuffer/turbopuffer-ruby/commit/cd557aaa7482c6d23a744d582e4f377616c2078f))
18
+
3
19
  ## 1.8.0 (2025-11-25)
4
20
 
5
21
  Full Changelog: [v1.7.0...v1.8.0](https://github.com/turbopuffer/turbopuffer-ruby/compare/v1.7.0...v1.8.0)
data/README.md CHANGED
@@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
17
17
  <!-- x-release-please-start-version -->
18
18
 
19
19
  ```ruby
20
- gem "turbopuffer", "~> 1.8.0"
20
+ gem "turbopuffer", "~> 1.9.1"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -24,6 +24,12 @@ module Turbopuffer
24
24
  # @return [Object, nil]
25
25
  optional :delete_by_filter, Turbopuffer::Internal::Type::Unknown
26
26
 
27
+ # @!attribute delete_by_filter_allow_partial
28
+ # Allow partial completion when filter matches too many documents.
29
+ #
30
+ # @return [Boolean, nil]
31
+ optional :delete_by_filter_allow_partial, Turbopuffer::Internal::Type::Boolean
32
+
27
33
  # @!attribute delete_condition
28
34
  # A condition evaluated against the current value of each document targeted by a
29
35
  # delete write. Only documents that pass the condition are deleted.
@@ -60,6 +66,12 @@ module Turbopuffer
60
66
  # @return [Turbopuffer::Models::NamespaceWriteParams::PatchByFilter, nil]
61
67
  optional :patch_by_filter, -> { Turbopuffer::NamespaceWriteParams::PatchByFilter }
62
68
 
69
+ # @!attribute patch_by_filter_allow_partial
70
+ # Allow partial completion when filter matches too many documents.
71
+ #
72
+ # @return [Boolean, nil]
73
+ optional :patch_by_filter_allow_partial, Turbopuffer::Internal::Type::Boolean
74
+
63
75
  # @!attribute patch_columns
64
76
  # A list of documents in columnar format. Each key is a column name, mapped to an
65
77
  # array of values for that column.
@@ -104,7 +116,7 @@ module Turbopuffer
104
116
  # @return [Array<Turbopuffer::Models::Row>, nil]
105
117
  optional :upsert_rows, -> { Turbopuffer::Internal::Type::ArrayOf[Turbopuffer::Row] }
106
118
 
107
- # @!method initialize(namespace: nil, copy_from_namespace: nil, delete_by_filter: nil, delete_condition: nil, deletes: nil, disable_backpressure: nil, distance_metric: nil, encryption: nil, patch_by_filter: nil, patch_columns: nil, patch_condition: nil, patch_rows: nil, schema: nil, upsert_columns: nil, upsert_condition: nil, upsert_rows: nil, request_options: {})
119
+ # @!method initialize(namespace: nil, copy_from_namespace: nil, delete_by_filter: nil, delete_by_filter_allow_partial: nil, delete_condition: nil, deletes: nil, disable_backpressure: nil, distance_metric: nil, encryption: nil, patch_by_filter: nil, patch_by_filter_allow_partial: nil, patch_columns: nil, patch_condition: nil, patch_rows: nil, schema: nil, upsert_columns: nil, upsert_condition: nil, upsert_rows: nil, request_options: {})
108
120
  # Some parameter documentations has been truncated, see
109
121
  # {Turbopuffer::Models::NamespaceWriteParams} for more details.
110
122
  #
@@ -114,6 +126,8 @@ module Turbopuffer
114
126
  #
115
127
  # @param delete_by_filter [Object] The filter specifying which documents to delete.
116
128
  #
129
+ # @param delete_by_filter_allow_partial [Boolean] Allow partial completion when filter matches too many documents.
130
+ #
117
131
  # @param delete_condition [Object] A condition evaluated against the current value of each document targeted by a d
118
132
  #
119
133
  # @param deletes [Array<String, Integer>]
@@ -126,6 +140,8 @@ module Turbopuffer
126
140
  #
127
141
  # @param patch_by_filter [Turbopuffer::Models::NamespaceWriteParams::PatchByFilter] The patch and filter specifying which documents to patch.
128
142
  #
143
+ # @param patch_by_filter_allow_partial [Boolean] Allow partial completion when filter matches too many documents.
144
+ #
129
145
  # @param patch_columns [Turbopuffer::Models::Columns] A list of documents in columnar format. Each key is a column name, mapped to an
130
146
  #
131
147
  # @param patch_condition [Object] A condition evaluated against the current value of each document targeted by a p
@@ -152,22 +168,30 @@ module Turbopuffer
152
168
  variant -> { Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig }
153
169
 
154
170
  class CopyFromNamespaceConfig < Turbopuffer::Internal::Type::BaseModel
155
- # @!attribute source_api_key
156
- # An API key for the organization containing the source namespace
157
- #
158
- # @return [String]
159
- required :source_api_key, String
160
-
161
171
  # @!attribute source_namespace
162
172
  # The namespace to copy documents from.
163
173
  #
164
174
  # @return [String]
165
175
  required :source_namespace, String
166
176
 
167
- # @!method initialize(source_api_key:, source_namespace:)
168
- # @param source_api_key [String] An API key for the organization containing the source namespace
177
+ # @!attribute source_api_key
178
+ # (Optional) An API key for the organization containing the source namespace
169
179
  #
180
+ # @return [String, nil]
181
+ optional :source_api_key, String
182
+
183
+ # @!attribute source_region
184
+ # (Optional) The region of the source namespace.
185
+ #
186
+ # @return [String, nil]
187
+ optional :source_region, String
188
+
189
+ # @!method initialize(source_namespace:, source_api_key: nil, source_region: nil)
170
190
  # @param source_namespace [String] The namespace to copy documents from.
191
+ #
192
+ # @param source_api_key [String] (Optional) An API key for the organization containing the source namespace
193
+ #
194
+ # @param source_region [String] (Optional) The region of the source namespace.
171
195
  end
172
196
 
173
197
  # @!method self.variants
@@ -40,13 +40,19 @@ module Turbopuffer
40
40
  # @return [Integer, nil]
41
41
  optional :rows_patched, Integer
42
42
 
43
+ # @!attribute rows_remaining
44
+ # Whether more documents match the filter for partial operations.
45
+ #
46
+ # @return [Boolean, nil]
47
+ optional :rows_remaining, Turbopuffer::Internal::Type::Boolean
48
+
43
49
  # @!attribute rows_upserted
44
50
  # The number of rows upserted by the write request.
45
51
  #
46
52
  # @return [Integer, nil]
47
53
  optional :rows_upserted, Integer
48
54
 
49
- # @!method initialize(billing:, message:, rows_affected:, rows_deleted: nil, rows_patched: nil, rows_upserted: nil, status: :OK)
55
+ # @!method initialize(billing:, message:, rows_affected:, rows_deleted: nil, rows_patched: nil, rows_remaining: nil, rows_upserted: nil, status: :OK)
50
56
  # The response to a successful write request.
51
57
  #
52
58
  # @param billing [Turbopuffer::Models::WriteBilling] The billing information for a write request.
@@ -59,6 +65,8 @@ module Turbopuffer
59
65
  #
60
66
  # @param rows_patched [Integer] The number of rows patched by the write request.
61
67
  #
68
+ # @param rows_remaining [Boolean] Whether more documents match the filter for partial operations.
69
+ #
62
70
  # @param rows_upserted [Integer] The number of rows upserted by the write request.
63
71
  #
64
72
  # @param status [Symbol, :OK] The status of the request.
@@ -305,7 +305,7 @@ module Turbopuffer
305
305
  #
306
306
  # Create, update, or delete documents.
307
307
  #
308
- # @overload write(namespace: nil, copy_from_namespace: nil, delete_by_filter: nil, delete_condition: nil, deletes: nil, disable_backpressure: nil, distance_metric: nil, encryption: nil, patch_by_filter: nil, patch_columns: nil, patch_condition: nil, patch_rows: nil, schema: nil, upsert_columns: nil, upsert_condition: nil, upsert_rows: nil, request_options: {})
308
+ # @overload write(namespace: nil, copy_from_namespace: nil, delete_by_filter: nil, delete_by_filter_allow_partial: nil, delete_condition: nil, deletes: nil, disable_backpressure: nil, distance_metric: nil, encryption: nil, patch_by_filter: nil, patch_by_filter_allow_partial: nil, patch_columns: nil, patch_condition: nil, patch_rows: nil, schema: nil, upsert_columns: nil, upsert_condition: nil, upsert_rows: nil, request_options: {})
309
309
  #
310
310
  # @param namespace [String] Path param: The name of the namespace.
311
311
  #
@@ -313,6 +313,8 @@ module Turbopuffer
313
313
  #
314
314
  # @param delete_by_filter [Object] Body param: The filter specifying which documents to delete.
315
315
  #
316
+ # @param delete_by_filter_allow_partial [Boolean] Body param: Allow partial completion when filter matches too many documents.
317
+ #
316
318
  # @param delete_condition [Object] Body param: A condition evaluated against the current value of each document tar
317
319
  #
318
320
  # @param deletes [Array<String, Integer>] Body param:
@@ -325,6 +327,8 @@ module Turbopuffer
325
327
  #
326
328
  # @param patch_by_filter [Turbopuffer::Models::NamespaceWriteParams::PatchByFilter] Body param: The patch and filter specifying which documents to patch.
327
329
  #
330
+ # @param patch_by_filter_allow_partial [Boolean] Body param: Allow partial completion when filter matches too many documents.
331
+ #
328
332
  # @param patch_columns [Turbopuffer::Models::Columns] Body param: A list of documents in columnar format. Each key is a column name, m
329
333
  #
330
334
  # @param patch_condition [Object] Body param: A condition evaluated against the current value of each document tar
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Turbopuffer
4
- VERSION = "1.8.0"
4
+ VERSION = "1.9.1"
5
5
  end
@@ -51,6 +51,13 @@ module Turbopuffer
51
51
  sig { params(delete_by_filter: T.anything).void }
52
52
  attr_writer :delete_by_filter
53
53
 
54
+ # Allow partial completion when filter matches too many documents.
55
+ sig { returns(T.nilable(T::Boolean)) }
56
+ attr_reader :delete_by_filter_allow_partial
57
+
58
+ sig { params(delete_by_filter_allow_partial: T::Boolean).void }
59
+ attr_writer :delete_by_filter_allow_partial
60
+
54
61
  # A condition evaluated against the current value of each document targeted by a
55
62
  # delete write. Only documents that pass the condition are deleted.
56
63
  sig { returns(T.nilable(T.anything)) }
@@ -106,6 +113,13 @@ module Turbopuffer
106
113
  end
107
114
  attr_writer :patch_by_filter
108
115
 
116
+ # Allow partial completion when filter matches too many documents.
117
+ sig { returns(T.nilable(T::Boolean)) }
118
+ attr_reader :patch_by_filter_allow_partial
119
+
120
+ sig { params(patch_by_filter_allow_partial: T::Boolean).void }
121
+ attr_writer :patch_by_filter_allow_partial
122
+
109
123
  # A list of documents in columnar format. Each key is a column name, mapped to an
110
124
  # array of values for that column.
111
125
  sig { returns(T.nilable(Turbopuffer::Columns)) }
@@ -180,6 +194,7 @@ module Turbopuffer
180
194
  Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig::OrHash
181
195
  ),
182
196
  delete_by_filter: T.anything,
197
+ delete_by_filter_allow_partial: T::Boolean,
183
198
  delete_condition: T.anything,
184
199
  deletes: T::Array[Turbopuffer::ID::Variants],
185
200
  disable_backpressure: T::Boolean,
@@ -187,6 +202,7 @@ module Turbopuffer
187
202
  encryption: Turbopuffer::NamespaceWriteParams::Encryption::OrHash,
188
203
  patch_by_filter:
189
204
  Turbopuffer::NamespaceWriteParams::PatchByFilter::OrHash,
205
+ patch_by_filter_allow_partial: T::Boolean,
190
206
  patch_columns: Turbopuffer::Columns::OrHash,
191
207
  patch_condition: T.anything,
192
208
  patch_rows: T::Array[Turbopuffer::Row::OrHash],
@@ -207,6 +223,8 @@ module Turbopuffer
207
223
  copy_from_namespace: nil,
208
224
  # The filter specifying which documents to delete.
209
225
  delete_by_filter: nil,
226
+ # Allow partial completion when filter matches too many documents.
227
+ delete_by_filter_allow_partial: nil,
210
228
  # A condition evaluated against the current value of each document targeted by a
211
229
  # delete write. Only documents that pass the condition are deleted.
212
230
  delete_condition: nil,
@@ -219,6 +237,8 @@ module Turbopuffer
219
237
  encryption: nil,
220
238
  # The patch and filter specifying which documents to patch.
221
239
  patch_by_filter: nil,
240
+ # Allow partial completion when filter matches too many documents.
241
+ patch_by_filter_allow_partial: nil,
222
242
  # A list of documents in columnar format. Each key is a column name, mapped to an
223
243
  # array of values for that column.
224
244
  patch_columns: nil,
@@ -249,12 +269,14 @@ module Turbopuffer
249
269
  Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig
250
270
  ),
251
271
  delete_by_filter: T.anything,
272
+ delete_by_filter_allow_partial: T::Boolean,
252
273
  delete_condition: T.anything,
253
274
  deletes: T::Array[Turbopuffer::ID::Variants],
254
275
  disable_backpressure: T::Boolean,
255
276
  distance_metric: Turbopuffer::DistanceMetric::OrSymbol,
256
277
  encryption: Turbopuffer::NamespaceWriteParams::Encryption,
257
278
  patch_by_filter: Turbopuffer::NamespaceWriteParams::PatchByFilter,
279
+ patch_by_filter_allow_partial: T::Boolean,
258
280
  patch_columns: Turbopuffer::Columns,
259
281
  patch_condition: T.anything,
260
282
  patch_rows: T::Array[Turbopuffer::Row],
@@ -294,30 +316,48 @@ module Turbopuffer
294
316
  )
295
317
  end
296
318
 
297
- # An API key for the organization containing the source namespace
298
- sig { returns(String) }
299
- attr_accessor :source_api_key
300
-
301
319
  # The namespace to copy documents from.
302
320
  sig { returns(String) }
303
321
  attr_accessor :source_namespace
304
322
 
323
+ # (Optional) An API key for the organization containing the source namespace
324
+ sig { returns(T.nilable(String)) }
325
+ attr_reader :source_api_key
326
+
327
+ sig { params(source_api_key: String).void }
328
+ attr_writer :source_api_key
329
+
330
+ # (Optional) The region of the source namespace.
331
+ sig { returns(T.nilable(String)) }
332
+ attr_reader :source_region
333
+
334
+ sig { params(source_region: String).void }
335
+ attr_writer :source_region
336
+
305
337
  sig do
306
- params(source_api_key: String, source_namespace: String).returns(
307
- T.attached_class
308
- )
338
+ params(
339
+ source_namespace: String,
340
+ source_api_key: String,
341
+ source_region: String
342
+ ).returns(T.attached_class)
309
343
  end
310
344
  def self.new(
311
- # An API key for the organization containing the source namespace
312
- source_api_key:,
313
345
  # The namespace to copy documents from.
314
- source_namespace:
346
+ source_namespace:,
347
+ # (Optional) An API key for the organization containing the source namespace
348
+ source_api_key: nil,
349
+ # (Optional) The region of the source namespace.
350
+ source_region: nil
315
351
  )
316
352
  end
317
353
 
318
354
  sig do
319
355
  override.returns(
320
- { source_api_key: String, source_namespace: String }
356
+ {
357
+ source_namespace: String,
358
+ source_api_key: String,
359
+ source_region: String
360
+ }
321
361
  )
322
362
  end
323
363
  def to_hash
@@ -44,6 +44,13 @@ module Turbopuffer
44
44
  sig { params(rows_patched: Integer).void }
45
45
  attr_writer :rows_patched
46
46
 
47
+ # Whether more documents match the filter for partial operations.
48
+ sig { returns(T.nilable(T::Boolean)) }
49
+ attr_reader :rows_remaining
50
+
51
+ sig { params(rows_remaining: T::Boolean).void }
52
+ attr_writer :rows_remaining
53
+
47
54
  # The number of rows upserted by the write request.
48
55
  sig { returns(T.nilable(Integer)) }
49
56
  attr_reader :rows_upserted
@@ -59,6 +66,7 @@ module Turbopuffer
59
66
  rows_affected: Integer,
60
67
  rows_deleted: Integer,
61
68
  rows_patched: Integer,
69
+ rows_remaining: T::Boolean,
62
70
  rows_upserted: Integer,
63
71
  status: Symbol
64
72
  ).returns(T.attached_class)
@@ -74,6 +82,8 @@ module Turbopuffer
74
82
  rows_deleted: nil,
75
83
  # The number of rows patched by the write request.
76
84
  rows_patched: nil,
85
+ # Whether more documents match the filter for partial operations.
86
+ rows_remaining: nil,
77
87
  # The number of rows upserted by the write request.
78
88
  rows_upserted: nil,
79
89
  # The status of the request.
@@ -90,6 +100,7 @@ module Turbopuffer
90
100
  status: Symbol,
91
101
  rows_deleted: Integer,
92
102
  rows_patched: Integer,
103
+ rows_remaining: T::Boolean,
93
104
  rows_upserted: Integer
94
105
  }
95
106
  )
@@ -242,6 +242,7 @@ module Turbopuffer
242
242
  Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig::OrHash
243
243
  ),
244
244
  delete_by_filter: T.anything,
245
+ delete_by_filter_allow_partial: T::Boolean,
245
246
  delete_condition: T.anything,
246
247
  deletes: T::Array[Turbopuffer::ID::Variants],
247
248
  disable_backpressure: T::Boolean,
@@ -249,6 +250,7 @@ module Turbopuffer
249
250
  encryption: Turbopuffer::NamespaceWriteParams::Encryption::OrHash,
250
251
  patch_by_filter:
251
252
  Turbopuffer::NamespaceWriteParams::PatchByFilter::OrHash,
253
+ patch_by_filter_allow_partial: T::Boolean,
252
254
  patch_columns: Turbopuffer::Columns::OrHash,
253
255
  patch_condition: T.anything,
254
256
  patch_rows: T::Array[Turbopuffer::Row::OrHash],
@@ -270,6 +272,8 @@ module Turbopuffer
270
272
  copy_from_namespace: nil,
271
273
  # Body param: The filter specifying which documents to delete.
272
274
  delete_by_filter: nil,
275
+ # Body param: Allow partial completion when filter matches too many documents.
276
+ delete_by_filter_allow_partial: nil,
273
277
  # Body param: A condition evaluated against the current value of each document
274
278
  # targeted by a delete write. Only documents that pass the condition are deleted.
275
279
  delete_condition: nil,
@@ -284,6 +288,8 @@ module Turbopuffer
284
288
  encryption: nil,
285
289
  # Body param: The patch and filter specifying which documents to patch.
286
290
  patch_by_filter: nil,
291
+ # Body param: Allow partial completion when filter matches too many documents.
292
+ patch_by_filter_allow_partial: nil,
287
293
  # Body param: A list of documents in columnar format. Each key is a column name,
288
294
  # mapped to an array of values for that column.
289
295
  patch_columns: nil,
@@ -5,12 +5,14 @@ module Turbopuffer
5
5
  namespace: String,
6
6
  copy_from_namespace: Turbopuffer::Models::NamespaceWriteParams::copy_from_namespace,
7
7
  delete_by_filter: top,
8
+ delete_by_filter_allow_partial: bool,
8
9
  delete_condition: top,
9
10
  deletes: ::Array[Turbopuffer::Models::id],
10
11
  disable_backpressure: bool,
11
12
  distance_metric: Turbopuffer::Models::distance_metric,
12
13
  encryption: Turbopuffer::NamespaceWriteParams::Encryption,
13
14
  patch_by_filter: Turbopuffer::NamespaceWriteParams::PatchByFilter,
15
+ patch_by_filter_allow_partial: bool,
14
16
  patch_columns: Turbopuffer::Columns,
15
17
  patch_condition: top,
16
18
  patch_rows: ::Array[Turbopuffer::Row],
@@ -39,6 +41,10 @@ module Turbopuffer
39
41
 
40
42
  def delete_by_filter=: (top) -> top
41
43
 
44
+ attr_reader delete_by_filter_allow_partial: bool?
45
+
46
+ def delete_by_filter_allow_partial=: (bool) -> bool
47
+
42
48
  attr_reader delete_condition: top?
43
49
 
44
50
  def delete_condition=: (top) -> top
@@ -71,6 +77,10 @@ module Turbopuffer
71
77
  Turbopuffer::NamespaceWriteParams::PatchByFilter
72
78
  ) -> Turbopuffer::NamespaceWriteParams::PatchByFilter
73
79
 
80
+ attr_reader patch_by_filter_allow_partial: bool?
81
+
82
+ def patch_by_filter_allow_partial=: (bool) -> bool
83
+
74
84
  attr_reader patch_columns: Turbopuffer::Columns?
75
85
 
76
86
  def patch_columns=: (Turbopuffer::Columns) -> Turbopuffer::Columns
@@ -105,12 +115,14 @@ module Turbopuffer
105
115
  ?namespace: String,
106
116
  ?copy_from_namespace: Turbopuffer::Models::NamespaceWriteParams::copy_from_namespace,
107
117
  ?delete_by_filter: top,
118
+ ?delete_by_filter_allow_partial: bool,
108
119
  ?delete_condition: top,
109
120
  ?deletes: ::Array[Turbopuffer::Models::id],
110
121
  ?disable_backpressure: bool,
111
122
  ?distance_metric: Turbopuffer::Models::distance_metric,
112
123
  ?encryption: Turbopuffer::NamespaceWriteParams::Encryption,
113
124
  ?patch_by_filter: Turbopuffer::NamespaceWriteParams::PatchByFilter,
125
+ ?patch_by_filter_allow_partial: bool,
114
126
  ?patch_columns: Turbopuffer::Columns,
115
127
  ?patch_condition: top,
116
128
  ?patch_rows: ::Array[Turbopuffer::Row],
@@ -125,12 +137,14 @@ module Turbopuffer
125
137
  namespace: String,
126
138
  copy_from_namespace: Turbopuffer::Models::NamespaceWriteParams::copy_from_namespace,
127
139
  delete_by_filter: top,
140
+ delete_by_filter_allow_partial: bool,
128
141
  delete_condition: top,
129
142
  deletes: ::Array[Turbopuffer::Models::id],
130
143
  disable_backpressure: bool,
131
144
  distance_metric: Turbopuffer::Models::distance_metric,
132
145
  encryption: Turbopuffer::NamespaceWriteParams::Encryption,
133
146
  patch_by_filter: Turbopuffer::NamespaceWriteParams::PatchByFilter,
147
+ patch_by_filter_allow_partial: bool,
134
148
  patch_columns: Turbopuffer::Columns,
135
149
  patch_condition: top,
136
150
  patch_rows: ::Array[Turbopuffer::Row],
@@ -149,19 +163,34 @@ module Turbopuffer
149
163
  extend Turbopuffer::Internal::Type::Union
150
164
 
151
165
  type copy_from_namespace_config =
152
- { source_api_key: String, source_namespace: String }
166
+ {
167
+ source_namespace: String,
168
+ source_api_key: String,
169
+ source_region: String
170
+ }
153
171
 
154
172
  class CopyFromNamespaceConfig < Turbopuffer::Internal::Type::BaseModel
155
- attr_accessor source_api_key: String
156
-
157
173
  attr_accessor source_namespace: String
158
174
 
175
+ attr_reader source_api_key: String?
176
+
177
+ def source_api_key=: (String) -> String
178
+
179
+ attr_reader source_region: String?
180
+
181
+ def source_region=: (String) -> String
182
+
159
183
  def initialize: (
160
- source_api_key: String,
161
- source_namespace: String
184
+ source_namespace: String,
185
+ ?source_api_key: String,
186
+ ?source_region: String
162
187
  ) -> void
163
188
 
164
- def to_hash: -> { source_api_key: String, source_namespace: String }
189
+ def to_hash: -> {
190
+ source_namespace: String,
191
+ source_api_key: String,
192
+ source_region: String
193
+ }
165
194
  end
166
195
 
167
196
  def self?.variants: -> ::Array[Turbopuffer::Models::NamespaceWriteParams::copy_from_namespace]
@@ -8,6 +8,7 @@ module Turbopuffer
8
8
  status: :OK,
9
9
  rows_deleted: Integer,
10
10
  rows_patched: Integer,
11
+ rows_remaining: bool,
11
12
  rows_upserted: Integer
12
13
  }
13
14
 
@@ -28,6 +29,10 @@ module Turbopuffer
28
29
 
29
30
  def rows_patched=: (Integer) -> Integer
30
31
 
32
+ attr_reader rows_remaining: bool?
33
+
34
+ def rows_remaining=: (bool) -> bool
35
+
31
36
  attr_reader rows_upserted: Integer?
32
37
 
33
38
  def rows_upserted=: (Integer) -> Integer
@@ -38,6 +43,7 @@ module Turbopuffer
38
43
  rows_affected: Integer,
39
44
  ?rows_deleted: Integer,
40
45
  ?rows_patched: Integer,
46
+ ?rows_remaining: bool,
41
47
  ?rows_upserted: Integer,
42
48
  ?status: :OK
43
49
  ) -> void
@@ -49,6 +55,7 @@ module Turbopuffer
49
55
  status: :OK,
50
56
  rows_deleted: Integer,
51
57
  rows_patched: Integer,
58
+ rows_remaining: bool,
52
59
  rows_upserted: Integer
53
60
  }
54
61
  end
@@ -79,12 +79,14 @@ module Turbopuffer
79
79
  ?namespace: String,
80
80
  ?copy_from_namespace: Turbopuffer::Models::NamespaceWriteParams::copy_from_namespace,
81
81
  ?delete_by_filter: top,
82
+ ?delete_by_filter_allow_partial: bool,
82
83
  ?delete_condition: top,
83
84
  ?deletes: ::Array[Turbopuffer::Models::id],
84
85
  ?disable_backpressure: bool,
85
86
  ?distance_metric: Turbopuffer::Models::distance_metric,
86
87
  ?encryption: Turbopuffer::NamespaceWriteParams::Encryption,
87
88
  ?patch_by_filter: Turbopuffer::NamespaceWriteParams::PatchByFilter,
89
+ ?patch_by_filter_allow_partial: bool,
88
90
  ?patch_columns: Turbopuffer::Columns,
89
91
  ?patch_condition: top,
90
92
  ?patch_rows: ::Array[Turbopuffer::Row],
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turbopuffer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Turbopuffer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-11-25 00:00:00.000000000 Z
11
+ date: 2025-12-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: connection_pool