turbopuffer 1.6.0 → 1.7.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 07fda2e1e9249b4c16e37504d02f6b65e5cff40d0d8b448b9d58c1ad7432391a
4
- data.tar.gz: 73ee6163f398dff241b51040941899ee65027ded8bff6ef8ee474e63e8d0cf13
3
+ metadata.gz: e86efb79e86d8d7b74b0139e810bef55805bae162b9fab4eed29be9425e104e9
4
+ data.tar.gz: d4f37a4e3fb10f033a476546319f5dc2238f741d1485eb5917758e50dba8d3cd
5
5
  SHA512:
6
- metadata.gz: 7019c102f0665d6912974007b9ed3d3837e19f210596b4386faeacb028a62c594c60ce39791568721f7873ae56c30062cc28c360efe7be94204db4683d589229
7
- data.tar.gz: 34ca700c304917dd2e096c660a2db731394dd364bc879d5d76fc2d60ca22e552f568be0dfb5eb9b4f5206035edd580d1c4330fe8fcfa1ae89e7846bc72b1a6fb
6
+ metadata.gz: c86bfa585e8c3ca4fe60de6df7b69bf39152ca8f23b6cde8a6bfa8e4fa25c5c6581e504d4dc9de8a9091ed0e045bfb00478006e4016266976f241af985d33421
7
+ data.tar.gz: a8bd49b7edd37e4eb795bd0fb1cd75dfdfa090f4e63fe8b06eede5d3ea2e69bf3060b2a89ba17093f474c9ae6d9cde5684285af4fbc0cc5397a3957bbc5a2fb6
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.7.0 (2025-11-17)
4
+
5
+ Full Changelog: [v1.6.0...v1.7.0](https://github.com/turbopuffer/turbopuffer-ruby/compare/v1.6.0...v1.7.0)
6
+
7
+ ### Features
8
+
9
+ * Allow for a CMEK key to be specified in copy_from_namespace ([5c29fe0](https://github.com/turbopuffer/turbopuffer-ruby/commit/5c29fe01f4fb0e9795d92e7c0d27fbc3fc9c2c52))
10
+ * spec: add support for cross-org CFN to SDKs ([eb1028c](https://github.com/turbopuffer/turbopuffer-ruby/commit/eb1028cf9c62e50a1d62866eb399a51fd12424e8))
11
+
3
12
  ## 1.6.0 (2025-11-06)
4
13
 
5
14
  Full Changelog: [v1.5.0...v1.6.0](https://github.com/turbopuffer/turbopuffer-ruby/compare/v1.5.0...v1.6.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.6.0"
20
+ gem "turbopuffer", "~> 1.7.0"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -15,8 +15,8 @@ module Turbopuffer
15
15
  # @!attribute copy_from_namespace
16
16
  # The namespace to copy documents from.
17
17
  #
18
- # @return [String, nil]
19
- optional :copy_from_namespace, String
18
+ # @return [String, Turbopuffer::Models::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig, nil]
19
+ optional :copy_from_namespace, union: -> { Turbopuffer::NamespaceWriteParams::CopyFromNamespace }
20
20
 
21
21
  # @!attribute delete_by_filter
22
22
  # The filter specifying which documents to delete.
@@ -110,7 +110,7 @@ module Turbopuffer
110
110
  #
111
111
  # @param namespace [String]
112
112
  #
113
- # @param copy_from_namespace [String] The namespace to copy documents from.
113
+ # @param copy_from_namespace [String, Turbopuffer::Models::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig] The namespace to copy documents from.
114
114
  #
115
115
  # @param delete_by_filter [Object] The filter specifying which documents to delete.
116
116
  #
@@ -142,6 +142,38 @@ module Turbopuffer
142
142
  #
143
143
  # @param request_options [Turbopuffer::RequestOptions, Hash{Symbol=>Object}]
144
144
 
145
+ # The namespace to copy documents from.
146
+ module CopyFromNamespace
147
+ extend Turbopuffer::Internal::Type::Union
148
+
149
+ # The namespace to copy documents from.
150
+ variant String
151
+
152
+ variant -> { Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig }
153
+
154
+ 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
+ # @!attribute source_namespace
162
+ # The namespace to copy documents from.
163
+ #
164
+ # @return [String]
165
+ required :source_namespace, String
166
+
167
+ # @!method initialize(source_api_key:, source_namespace:)
168
+ # @param source_api_key [String] An API key for the organization containing the source namespace
169
+ #
170
+ # @param source_namespace [String] The namespace to copy documents from.
171
+ end
172
+
173
+ # @!method self.variants
174
+ # @return [Array(String, Turbopuffer::Models::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig)]
175
+ end
176
+
145
177
  class Encryption < Turbopuffer::Internal::Type::BaseModel
146
178
  # @!attribute cmek
147
179
  #
@@ -309,7 +309,7 @@ module Turbopuffer
309
309
  #
310
310
  # @param namespace [String] Path param: The name of the namespace.
311
311
  #
312
- # @param copy_from_namespace [String] Body param: The namespace to copy documents from.
312
+ # @param copy_from_namespace [String, Turbopuffer::Models::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig] Body param: The namespace to copy documents from.
313
313
  #
314
314
  # @param delete_by_filter [Object] Body param: The filter specifying which documents to delete.
315
315
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Turbopuffer
4
- VERSION = "1.6.0"
4
+ VERSION = "1.7.0"
5
5
  end
@@ -21,10 +21,27 @@ module Turbopuffer
21
21
  attr_writer :namespace
22
22
 
23
23
  # The namespace to copy documents from.
24
- sig { returns(T.nilable(String)) }
24
+ sig do
25
+ returns(
26
+ T.nilable(
27
+ T.any(
28
+ String,
29
+ Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig
30
+ )
31
+ )
32
+ )
33
+ end
25
34
  attr_reader :copy_from_namespace
26
35
 
27
- sig { params(copy_from_namespace: String).void }
36
+ sig do
37
+ params(
38
+ copy_from_namespace:
39
+ T.any(
40
+ String,
41
+ Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig::OrHash
42
+ )
43
+ ).void
44
+ end
28
45
  attr_writer :copy_from_namespace
29
46
 
30
47
  # The filter specifying which documents to delete.
@@ -157,7 +174,11 @@ module Turbopuffer
157
174
  sig do
158
175
  params(
159
176
  namespace: String,
160
- copy_from_namespace: String,
177
+ copy_from_namespace:
178
+ T.any(
179
+ String,
180
+ Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig::OrHash
181
+ ),
161
182
  delete_by_filter: T.anything,
162
183
  delete_condition: T.anything,
163
184
  deletes: T::Array[Turbopuffer::ID::Variants],
@@ -222,7 +243,11 @@ module Turbopuffer
222
243
  override.returns(
223
244
  {
224
245
  namespace: String,
225
- copy_from_namespace: String,
246
+ copy_from_namespace:
247
+ T.any(
248
+ String,
249
+ Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig
250
+ ),
226
251
  delete_by_filter: T.anything,
227
252
  delete_condition: T.anything,
228
253
  deletes: T::Array[Turbopuffer::ID::Variants],
@@ -248,6 +273,68 @@ module Turbopuffer
248
273
  def to_hash
249
274
  end
250
275
 
276
+ # The namespace to copy documents from.
277
+ module CopyFromNamespace
278
+ extend Turbopuffer::Internal::Type::Union
279
+
280
+ Variants =
281
+ T.type_alias do
282
+ T.any(
283
+ String,
284
+ Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig
285
+ )
286
+ end
287
+
288
+ class CopyFromNamespaceConfig < Turbopuffer::Internal::Type::BaseModel
289
+ OrHash =
290
+ T.type_alias do
291
+ T.any(
292
+ Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig,
293
+ Turbopuffer::Internal::AnyHash
294
+ )
295
+ end
296
+
297
+ # An API key for the organization containing the source namespace
298
+ sig { returns(String) }
299
+ attr_accessor :source_api_key
300
+
301
+ # The namespace to copy documents from.
302
+ sig { returns(String) }
303
+ attr_accessor :source_namespace
304
+
305
+ sig do
306
+ params(source_api_key: String, source_namespace: String).returns(
307
+ T.attached_class
308
+ )
309
+ end
310
+ def self.new(
311
+ # An API key for the organization containing the source namespace
312
+ source_api_key:,
313
+ # The namespace to copy documents from.
314
+ source_namespace:
315
+ )
316
+ end
317
+
318
+ sig do
319
+ override.returns(
320
+ { source_api_key: String, source_namespace: String }
321
+ )
322
+ end
323
+ def to_hash
324
+ end
325
+ end
326
+
327
+ sig do
328
+ override.returns(
329
+ T::Array[
330
+ Turbopuffer::NamespaceWriteParams::CopyFromNamespace::Variants
331
+ ]
332
+ )
333
+ end
334
+ def self.variants
335
+ end
336
+ end
337
+
251
338
  class Encryption < Turbopuffer::Internal::Type::BaseModel
252
339
  OrHash =
253
340
  T.type_alias do
@@ -235,8 +235,12 @@ module Turbopuffer
235
235
  # Create, update, or delete documents.
236
236
  sig do
237
237
  params(
238
- namespace: T.nilable(String),
239
- copy_from_namespace: String,
238
+ namespace: String,
239
+ copy_from_namespace:
240
+ T.any(
241
+ String,
242
+ Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig::OrHash
243
+ ),
240
244
  delete_by_filter: T.anything,
241
245
  delete_condition: T.anything,
242
246
  deletes: T::Array[Turbopuffer::ID::Variants],
@@ -3,7 +3,7 @@ module Turbopuffer
3
3
  type namespace_write_params =
4
4
  {
5
5
  namespace: String,
6
- copy_from_namespace: String,
6
+ copy_from_namespace: Turbopuffer::Models::NamespaceWriteParams::copy_from_namespace,
7
7
  delete_by_filter: top,
8
8
  delete_condition: top,
9
9
  deletes: ::Array[Turbopuffer::Models::id],
@@ -29,9 +29,11 @@ module Turbopuffer
29
29
 
30
30
  def namespace=: (String) -> String
31
31
 
32
- attr_reader copy_from_namespace: String?
32
+ attr_reader copy_from_namespace: Turbopuffer::Models::NamespaceWriteParams::copy_from_namespace?
33
33
 
34
- def copy_from_namespace=: (String) -> String
34
+ def copy_from_namespace=: (
35
+ Turbopuffer::Models::NamespaceWriteParams::copy_from_namespace
36
+ ) -> Turbopuffer::Models::NamespaceWriteParams::copy_from_namespace
35
37
 
36
38
  attr_reader delete_by_filter: top?
37
39
 
@@ -101,7 +103,7 @@ module Turbopuffer
101
103
 
102
104
  def initialize: (
103
105
  ?namespace: String,
104
- ?copy_from_namespace: String,
106
+ ?copy_from_namespace: Turbopuffer::Models::NamespaceWriteParams::copy_from_namespace,
105
107
  ?delete_by_filter: top,
106
108
  ?delete_condition: top,
107
109
  ?deletes: ::Array[Turbopuffer::Models::id],
@@ -121,7 +123,7 @@ module Turbopuffer
121
123
 
122
124
  def to_hash: -> {
123
125
  namespace: String,
124
- copy_from_namespace: String,
126
+ copy_from_namespace: Turbopuffer::Models::NamespaceWriteParams::copy_from_namespace,
125
127
  delete_by_filter: top,
126
128
  delete_condition: top,
127
129
  deletes: ::Array[Turbopuffer::Models::id],
@@ -139,6 +141,32 @@ module Turbopuffer
139
141
  request_options: Turbopuffer::RequestOptions
140
142
  }
141
143
 
144
+ type copy_from_namespace =
145
+ String
146
+ | Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig
147
+
148
+ module CopyFromNamespace
149
+ extend Turbopuffer::Internal::Type::Union
150
+
151
+ type copy_from_namespace_config =
152
+ { source_api_key: String, source_namespace: String }
153
+
154
+ class CopyFromNamespaceConfig < Turbopuffer::Internal::Type::BaseModel
155
+ attr_accessor source_api_key: String
156
+
157
+ attr_accessor source_namespace: String
158
+
159
+ def initialize: (
160
+ source_api_key: String,
161
+ source_namespace: String
162
+ ) -> void
163
+
164
+ def to_hash: -> { source_api_key: String, source_namespace: String }
165
+ end
166
+
167
+ def self?.variants: -> ::Array[Turbopuffer::Models::NamespaceWriteParams::copy_from_namespace]
168
+ end
169
+
142
170
  type encryption =
143
171
  { cmek: Turbopuffer::NamespaceWriteParams::Encryption::Cmek }
144
172
 
@@ -77,7 +77,7 @@ module Turbopuffer
77
77
 
78
78
  def write: (
79
79
  ?namespace: String,
80
- ?copy_from_namespace: String,
80
+ ?copy_from_namespace: Turbopuffer::Models::NamespaceWriteParams::copy_from_namespace,
81
81
  ?delete_by_filter: top,
82
82
  ?delete_condition: top,
83
83
  ?deletes: ::Array[Turbopuffer::Models::id],
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.6.0
4
+ version: 1.7.0
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-06 00:00:00.000000000 Z
11
+ date: 2025-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: connection_pool