turbopuffer-ruby 0.2.0.pre.alpha.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.
Files changed (194) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +60 -0
  4. data/README.md +291 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/turbopuffer/client.rb +130 -0
  7. data/lib/turbopuffer/errors.rb +214 -0
  8. data/lib/turbopuffer/file_part.rb +55 -0
  9. data/lib/turbopuffer/internal/namespace_page.rb +86 -0
  10. data/lib/turbopuffer/internal/transport/base_client.rb +563 -0
  11. data/lib/turbopuffer/internal/transport/pooled_net_requester.rb +209 -0
  12. data/lib/turbopuffer/internal/type/array_of.rb +167 -0
  13. data/lib/turbopuffer/internal/type/base_model.rb +534 -0
  14. data/lib/turbopuffer/internal/type/base_page.rb +55 -0
  15. data/lib/turbopuffer/internal/type/boolean.rb +77 -0
  16. data/lib/turbopuffer/internal/type/converter.rb +300 -0
  17. data/lib/turbopuffer/internal/type/enum.rb +152 -0
  18. data/lib/turbopuffer/internal/type/file_input.rb +108 -0
  19. data/lib/turbopuffer/internal/type/hash_of.rb +187 -0
  20. data/lib/turbopuffer/internal/type/request_parameters.rb +42 -0
  21. data/lib/turbopuffer/internal/type/union.rb +252 -0
  22. data/lib/turbopuffer/internal/type/unknown.rb +81 -0
  23. data/lib/turbopuffer/internal/util.rb +914 -0
  24. data/lib/turbopuffer/internal.rb +20 -0
  25. data/lib/turbopuffer/models/attribute_schema.rb +19 -0
  26. data/lib/turbopuffer/models/attribute_schema_config.rb +48 -0
  27. data/lib/turbopuffer/models/attribute_type.rb +7 -0
  28. data/lib/turbopuffer/models/client_namespaces_params.rb +38 -0
  29. data/lib/turbopuffer/models/columns.rb +64 -0
  30. data/lib/turbopuffer/models/distance_metric.rb +19 -0
  31. data/lib/turbopuffer/models/full_text_search.rb +20 -0
  32. data/lib/turbopuffer/models/full_text_search_config.rb +72 -0
  33. data/lib/turbopuffer/models/id.rb +19 -0
  34. data/lib/turbopuffer/models/include_attributes.rb +22 -0
  35. data/lib/turbopuffer/models/language.rb +32 -0
  36. data/lib/turbopuffer/models/namespace_delete_all_params.rb +20 -0
  37. data/lib/turbopuffer/models/namespace_delete_all_response.rb +19 -0
  38. data/lib/turbopuffer/models/namespace_hint_cache_warm_params.rb +20 -0
  39. data/lib/turbopuffer/models/namespace_hint_cache_warm_response.rb +26 -0
  40. data/lib/turbopuffer/models/namespace_metadata.rb +35 -0
  41. data/lib/turbopuffer/models/namespace_metadata_params.rb +20 -0
  42. data/lib/turbopuffer/models/namespace_multi_query_params.rb +73 -0
  43. data/lib/turbopuffer/models/namespace_multi_query_response.rb +51 -0
  44. data/lib/turbopuffer/models/namespace_query_params.rb +119 -0
  45. data/lib/turbopuffer/models/namespace_query_response.rb +41 -0
  46. data/lib/turbopuffer/models/namespace_recall_params.rb +57 -0
  47. data/lib/turbopuffer/models/namespace_recall_response.rb +39 -0
  48. data/lib/turbopuffer/models/namespace_schema_params.rb +20 -0
  49. data/lib/turbopuffer/models/namespace_schema_response.rb +8 -0
  50. data/lib/turbopuffer/models/namespace_summary.rb +19 -0
  51. data/lib/turbopuffer/models/namespace_update_schema_params.rb +29 -0
  52. data/lib/turbopuffer/models/namespace_update_schema_response.rb +9 -0
  53. data/lib/turbopuffer/models/namespace_write_params.rb +158 -0
  54. data/lib/turbopuffer/models/namespace_write_response.rb +67 -0
  55. data/lib/turbopuffer/models/query.rb +63 -0
  56. data/lib/turbopuffer/models/query_billing.rb +26 -0
  57. data/lib/turbopuffer/models/query_performance.rb +63 -0
  58. data/lib/turbopuffer/models/row.rb +38 -0
  59. data/lib/turbopuffer/models/tokenizer.rb +17 -0
  60. data/lib/turbopuffer/models/vector.rb +22 -0
  61. data/lib/turbopuffer/models/vector_encoding.rb +16 -0
  62. data/lib/turbopuffer/models/write_billing.rb +26 -0
  63. data/lib/turbopuffer/models.rb +101 -0
  64. data/lib/turbopuffer/namespace.rb +22 -0
  65. data/lib/turbopuffer/request_options.rb +77 -0
  66. data/lib/turbopuffer/resources/namespaces.rb +311 -0
  67. data/lib/turbopuffer/version.rb +5 -0
  68. data/lib/turbopuffer.rb +94 -0
  69. data/manifest.yaml +15 -0
  70. data/rbi/turbopuffer/client.rbi +91 -0
  71. data/rbi/turbopuffer/errors.rbi +178 -0
  72. data/rbi/turbopuffer/file_part.rbi +37 -0
  73. data/rbi/turbopuffer/internal/namespace_page.rbi +22 -0
  74. data/rbi/turbopuffer/internal/transport/base_client.rbi +298 -0
  75. data/rbi/turbopuffer/internal/transport/pooled_net_requester.rbi +80 -0
  76. data/rbi/turbopuffer/internal/type/array_of.rbi +104 -0
  77. data/rbi/turbopuffer/internal/type/base_model.rbi +304 -0
  78. data/rbi/turbopuffer/internal/type/base_page.rbi +43 -0
  79. data/rbi/turbopuffer/internal/type/boolean.rbi +58 -0
  80. data/rbi/turbopuffer/internal/type/converter.rbi +162 -0
  81. data/rbi/turbopuffer/internal/type/enum.rbi +82 -0
  82. data/rbi/turbopuffer/internal/type/file_input.rbi +59 -0
  83. data/rbi/turbopuffer/internal/type/hash_of.rbi +104 -0
  84. data/rbi/turbopuffer/internal/type/request_parameters.rbi +31 -0
  85. data/rbi/turbopuffer/internal/type/union.rbi +121 -0
  86. data/rbi/turbopuffer/internal/type/unknown.rbi +58 -0
  87. data/rbi/turbopuffer/internal/util.rbi +487 -0
  88. data/rbi/turbopuffer/internal.rbi +18 -0
  89. data/rbi/turbopuffer/models/attribute_schema.rbi +17 -0
  90. data/rbi/turbopuffer/models/attribute_schema_config.rbi +92 -0
  91. data/rbi/turbopuffer/models/attribute_type.rbi +7 -0
  92. data/rbi/turbopuffer/models/client_namespaces_params.rbi +71 -0
  93. data/rbi/turbopuffer/models/columns.rbi +82 -0
  94. data/rbi/turbopuffer/models/distance_metric.rbi +27 -0
  95. data/rbi/turbopuffer/models/full_text_search.rbi +19 -0
  96. data/rbi/turbopuffer/models/full_text_search_config.rbi +116 -0
  97. data/rbi/turbopuffer/models/id.rbi +16 -0
  98. data/rbi/turbopuffer/models/include_attributes.rbi +24 -0
  99. data/rbi/turbopuffer/models/language.rbi +36 -0
  100. data/rbi/turbopuffer/models/namespace_delete_all_params.rbi +41 -0
  101. data/rbi/turbopuffer/models/namespace_delete_all_response.rbi +31 -0
  102. data/rbi/turbopuffer/models/namespace_hint_cache_warm_params.rbi +41 -0
  103. data/rbi/turbopuffer/models/namespace_hint_cache_warm_response.rbi +38 -0
  104. data/rbi/turbopuffer/models/namespace_metadata.rbi +54 -0
  105. data/rbi/turbopuffer/models/namespace_metadata_params.rbi +41 -0
  106. data/rbi/turbopuffer/models/namespace_multi_query_params.rbi +175 -0
  107. data/rbi/turbopuffer/models/namespace_multi_query_response.rbi +111 -0
  108. data/rbi/turbopuffer/models/namespace_query_params.rbi +241 -0
  109. data/rbi/turbopuffer/models/namespace_query_response.rbi +73 -0
  110. data/rbi/turbopuffer/models/namespace_recall_params.rbi +93 -0
  111. data/rbi/turbopuffer/models/namespace_recall_response.rbi +59 -0
  112. data/rbi/turbopuffer/models/namespace_schema_params.rbi +41 -0
  113. data/rbi/turbopuffer/models/namespace_schema_response.rbi +11 -0
  114. data/rbi/turbopuffer/models/namespace_summary.rbi +28 -0
  115. data/rbi/turbopuffer/models/namespace_update_schema_params.rbi +80 -0
  116. data/rbi/turbopuffer/models/namespace_update_schema_response.rbi +11 -0
  117. data/rbi/turbopuffer/models/namespace_write_params.rbi +290 -0
  118. data/rbi/turbopuffer/models/namespace_write_response.rbi +101 -0
  119. data/rbi/turbopuffer/models/query.rbi +106 -0
  120. data/rbi/turbopuffer/models/query_billing.rbi +46 -0
  121. data/rbi/turbopuffer/models/query_performance.rbi +82 -0
  122. data/rbi/turbopuffer/models/row.rbi +47 -0
  123. data/rbi/turbopuffer/models/tokenizer.rbi +22 -0
  124. data/rbi/turbopuffer/models/vector.rbi +22 -0
  125. data/rbi/turbopuffer/models/vector_encoding.rbi +22 -0
  126. data/rbi/turbopuffer/models/write_billing.rbi +49 -0
  127. data/rbi/turbopuffer/models.rbi +64 -0
  128. data/rbi/turbopuffer/namespace.rbi +8 -0
  129. data/rbi/turbopuffer/request_options.rbi +59 -0
  130. data/rbi/turbopuffer/resources/namespaces.rbi +243 -0
  131. data/rbi/turbopuffer/version.rbi +5 -0
  132. data/sig/turbopuffer/client.rbs +41 -0
  133. data/sig/turbopuffer/errors.rbs +110 -0
  134. data/sig/turbopuffer/file_part.rbs +21 -0
  135. data/sig/turbopuffer/internal/namespace_page.rbs +13 -0
  136. data/sig/turbopuffer/internal/transport/base_client.rbs +131 -0
  137. data/sig/turbopuffer/internal/transport/pooled_net_requester.rbs +45 -0
  138. data/sig/turbopuffer/internal/type/array_of.rbs +48 -0
  139. data/sig/turbopuffer/internal/type/base_model.rbs +102 -0
  140. data/sig/turbopuffer/internal/type/base_page.rbs +24 -0
  141. data/sig/turbopuffer/internal/type/boolean.rbs +26 -0
  142. data/sig/turbopuffer/internal/type/converter.rbs +62 -0
  143. data/sig/turbopuffer/internal/type/enum.rbs +32 -0
  144. data/sig/turbopuffer/internal/type/file_input.rbs +25 -0
  145. data/sig/turbopuffer/internal/type/hash_of.rbs +48 -0
  146. data/sig/turbopuffer/internal/type/request_parameters.rbs +19 -0
  147. data/sig/turbopuffer/internal/type/union.rbs +52 -0
  148. data/sig/turbopuffer/internal/type/unknown.rbs +26 -0
  149. data/sig/turbopuffer/internal/util.rbs +185 -0
  150. data/sig/turbopuffer/internal.rbs +9 -0
  151. data/sig/turbopuffer/models/attribute_schema.rbs +11 -0
  152. data/sig/turbopuffer/models/attribute_schema_config.rbs +45 -0
  153. data/sig/turbopuffer/models/attribute_type.rbs +5 -0
  154. data/sig/turbopuffer/models/client_namespaces_params.rbs +38 -0
  155. data/sig/turbopuffer/models/columns.rbs +42 -0
  156. data/sig/turbopuffer/models/distance_metric.rbs +17 -0
  157. data/sig/turbopuffer/models/full_text_search.rbs +11 -0
  158. data/sig/turbopuffer/models/full_text_search_config.rbs +68 -0
  159. data/sig/turbopuffer/models/id.rbs +11 -0
  160. data/sig/turbopuffer/models/include_attributes.rbs +13 -0
  161. data/sig/turbopuffer/models/language.rbs +48 -0
  162. data/sig/turbopuffer/models/namespace_delete_all_params.rbs +25 -0
  163. data/sig/turbopuffer/models/namespace_delete_all_response.rbs +13 -0
  164. data/sig/turbopuffer/models/namespace_hint_cache_warm_params.rbs +25 -0
  165. data/sig/turbopuffer/models/namespace_hint_cache_warm_response.rbs +17 -0
  166. data/sig/turbopuffer/models/namespace_metadata.rbs +30 -0
  167. data/sig/turbopuffer/models/namespace_metadata_params.rbs +25 -0
  168. data/sig/turbopuffer/models/namespace_multi_query_params.rbs +86 -0
  169. data/sig/turbopuffer/models/namespace_multi_query_response.rbs +53 -0
  170. data/sig/turbopuffer/models/namespace_query_params.rbs +125 -0
  171. data/sig/turbopuffer/models/namespace_query_response.rbs +39 -0
  172. data/sig/turbopuffer/models/namespace_recall_params.rbs +56 -0
  173. data/sig/turbopuffer/models/namespace_recall_response.rbs +26 -0
  174. data/sig/turbopuffer/models/namespace_schema_params.rbs +25 -0
  175. data/sig/turbopuffer/models/namespace_schema_response.rbs +8 -0
  176. data/sig/turbopuffer/models/namespace_summary.rbs +13 -0
  177. data/sig/turbopuffer/models/namespace_update_schema_params.rbs +37 -0
  178. data/sig/turbopuffer/models/namespace_update_schema_response.rbs +8 -0
  179. data/sig/turbopuffer/models/namespace_write_params.rbs +156 -0
  180. data/sig/turbopuffer/models/namespace_write_response.rbs +56 -0
  181. data/sig/turbopuffer/models/query.rbs +61 -0
  182. data/sig/turbopuffer/models/query_billing.rbs +25 -0
  183. data/sig/turbopuffer/models/query_performance.rbs +45 -0
  184. data/sig/turbopuffer/models/row.rbs +24 -0
  185. data/sig/turbopuffer/models/tokenizer.rbs +15 -0
  186. data/sig/turbopuffer/models/vector.rbs +13 -0
  187. data/sig/turbopuffer/models/vector_encoding.rbs +14 -0
  188. data/sig/turbopuffer/models/write_billing.rbs +27 -0
  189. data/sig/turbopuffer/models.rbs +61 -0
  190. data/sig/turbopuffer/namespace.rbs +5 -0
  191. data/sig/turbopuffer/request_options.rbs +36 -0
  192. data/sig/turbopuffer/resources/namespaces.rbs +81 -0
  193. data/sig/turbopuffer/version.rbs +3 -0
  194. metadata +251 -0
@@ -0,0 +1,82 @@
1
+ # typed: strong
2
+
3
+ module Turbopuffer
4
+ module Models
5
+ class Columns < Turbopuffer::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Turbopuffer::Columns, Turbopuffer::Internal::AnyHash)
9
+ end
10
+
11
+ # The IDs of the documents.
12
+ sig { returns(T::Array[Turbopuffer::ID::Variants]) }
13
+ attr_accessor :id
14
+
15
+ # The vector embeddings of the documents.
16
+ sig { returns(T.nilable(Turbopuffer::Columns::Vector::Variants)) }
17
+ attr_reader :vector
18
+
19
+ sig { params(vector: Turbopuffer::Columns::Vector::Variants).void }
20
+ attr_writer :vector
21
+
22
+ # A list of documents in columnar format. Each key is a column name, mapped to an
23
+ # array of values for that column.
24
+ sig do
25
+ params(
26
+ id: T::Array[Turbopuffer::ID::Variants],
27
+ vector: Turbopuffer::Columns::Vector::Variants
28
+ ).returns(T.attached_class)
29
+ end
30
+ def self.new(
31
+ # The IDs of the documents.
32
+ id:,
33
+ # The vector embeddings of the documents.
34
+ vector: nil
35
+ )
36
+ end
37
+
38
+ sig do
39
+ override.returns(
40
+ {
41
+ id: T::Array[Turbopuffer::ID::Variants],
42
+ vector: Turbopuffer::Columns::Vector::Variants
43
+ }
44
+ )
45
+ end
46
+ def to_hash
47
+ end
48
+
49
+ # The vector embeddings of the documents.
50
+ module Vector
51
+ extend Turbopuffer::Internal::Type::Union
52
+
53
+ Variants =
54
+ T.type_alias do
55
+ T.any(
56
+ T::Array[Turbopuffer::Vector::Variants],
57
+ T::Array[Float],
58
+ String
59
+ )
60
+ end
61
+
62
+ sig do
63
+ override.returns(T::Array[Turbopuffer::Columns::Vector::Variants])
64
+ end
65
+ def self.variants
66
+ end
67
+
68
+ VectorArray =
69
+ T.let(
70
+ Turbopuffer::Internal::Type::ArrayOf[union: Turbopuffer::Vector],
71
+ Turbopuffer::Internal::Type::Converter
72
+ )
73
+
74
+ FloatArray =
75
+ T.let(
76
+ Turbopuffer::Internal::Type::ArrayOf[Float],
77
+ Turbopuffer::Internal::Type::Converter
78
+ )
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,27 @@
1
+ # typed: strong
2
+
3
+ module Turbopuffer
4
+ module Models
5
+ # A function used to calculate vector similarity.
6
+ module DistanceMetric
7
+ extend Turbopuffer::Internal::Type::Enum
8
+
9
+ TaggedSymbol = T.type_alias { T.all(Symbol, Turbopuffer::DistanceMetric) }
10
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
11
+
12
+ # Defined as `1 - cosine_similarity` and ranges from 0 to 2. Lower is better.
13
+ COSINE_DISTANCE =
14
+ T.let(:cosine_distance, Turbopuffer::DistanceMetric::TaggedSymbol)
15
+
16
+ # Defined as `sum((x - y)^2)`. Lower is better.
17
+ EUCLIDEAN_SQUARED =
18
+ T.let(:euclidean_squared, Turbopuffer::DistanceMetric::TaggedSymbol)
19
+
20
+ sig do
21
+ override.returns(T::Array[Turbopuffer::DistanceMetric::TaggedSymbol])
22
+ end
23
+ def self.values
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,19 @@
1
+ # typed: strong
2
+
3
+ module Turbopuffer
4
+ module Models
5
+ # Whether this attribute can be used as part of a BM25 full-text search. Requires
6
+ # the `string` or `[]string` type, and by default, BM25-enabled attributes are not
7
+ # filterable. You can override this by setting `filterable: true`.
8
+ module FullTextSearch
9
+ extend Turbopuffer::Internal::Type::Union
10
+
11
+ Variants =
12
+ T.type_alias { T.any(T::Boolean, Turbopuffer::FullTextSearchConfig) }
13
+
14
+ sig { override.returns(T::Array[Turbopuffer::FullTextSearch::Variants]) }
15
+ def self.variants
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,116 @@
1
+ # typed: strong
2
+
3
+ module Turbopuffer
4
+ module Models
5
+ class FullTextSearchConfig < Turbopuffer::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Turbopuffer::FullTextSearchConfig,
10
+ Turbopuffer::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The `b` document length normalization parameter for BM25. Defaults to `0.75`.
15
+ sig { returns(T.nilable(Float)) }
16
+ attr_reader :b
17
+
18
+ sig { params(b: Float).void }
19
+ attr_writer :b
20
+
21
+ # Whether searching is case-sensitive. Defaults to `false` (i.e.
22
+ # case-insensitive).
23
+ sig { returns(T.nilable(T::Boolean)) }
24
+ attr_reader :case_sensitive
25
+
26
+ sig { params(case_sensitive: T::Boolean).void }
27
+ attr_writer :case_sensitive
28
+
29
+ # The `k1` term saturation parameter for BM25. Defaults to `1.2`.
30
+ sig { returns(T.nilable(Float)) }
31
+ attr_reader :k1
32
+
33
+ sig { params(k1: Float).void }
34
+ attr_writer :k1
35
+
36
+ # Describes the language of a text attribute. Defaults to `english`.
37
+ sig { returns(T.nilable(Turbopuffer::Language::OrSymbol)) }
38
+ attr_reader :language
39
+
40
+ sig { params(language: Turbopuffer::Language::OrSymbol).void }
41
+ attr_writer :language
42
+
43
+ # Removes common words from the text based on language. Defaults to `true` (i.e.
44
+ # remove common words).
45
+ sig { returns(T.nilable(T::Boolean)) }
46
+ attr_reader :remove_stopwords
47
+
48
+ sig { params(remove_stopwords: T::Boolean).void }
49
+ attr_writer :remove_stopwords
50
+
51
+ # Language-specific stemming for the text. Defaults to `false` (i.e., do not
52
+ # stem).
53
+ sig { returns(T.nilable(T::Boolean)) }
54
+ attr_reader :stemming
55
+
56
+ sig { params(stemming: T::Boolean).void }
57
+ attr_writer :stemming
58
+
59
+ # The tokenizer to use for full-text search on an attribute.
60
+ sig { returns(T.nilable(Turbopuffer::Tokenizer::OrSymbol)) }
61
+ attr_reader :tokenizer
62
+
63
+ sig { params(tokenizer: Turbopuffer::Tokenizer::OrSymbol).void }
64
+ attr_writer :tokenizer
65
+
66
+ # Configuration options for full-text search.
67
+ sig do
68
+ params(
69
+ b: Float,
70
+ case_sensitive: T::Boolean,
71
+ k1: Float,
72
+ language: Turbopuffer::Language::OrSymbol,
73
+ remove_stopwords: T::Boolean,
74
+ stemming: T::Boolean,
75
+ tokenizer: Turbopuffer::Tokenizer::OrSymbol
76
+ ).returns(T.attached_class)
77
+ end
78
+ def self.new(
79
+ # The `b` document length normalization parameter for BM25. Defaults to `0.75`.
80
+ b: nil,
81
+ # Whether searching is case-sensitive. Defaults to `false` (i.e.
82
+ # case-insensitive).
83
+ case_sensitive: nil,
84
+ # The `k1` term saturation parameter for BM25. Defaults to `1.2`.
85
+ k1: nil,
86
+ # Describes the language of a text attribute. Defaults to `english`.
87
+ language: nil,
88
+ # Removes common words from the text based on language. Defaults to `true` (i.e.
89
+ # remove common words).
90
+ remove_stopwords: nil,
91
+ # Language-specific stemming for the text. Defaults to `false` (i.e., do not
92
+ # stem).
93
+ stemming: nil,
94
+ # The tokenizer to use for full-text search on an attribute.
95
+ tokenizer: nil
96
+ )
97
+ end
98
+
99
+ sig do
100
+ override.returns(
101
+ {
102
+ b: Float,
103
+ case_sensitive: T::Boolean,
104
+ k1: Float,
105
+ language: Turbopuffer::Language::OrSymbol,
106
+ remove_stopwords: T::Boolean,
107
+ stemming: T::Boolean,
108
+ tokenizer: Turbopuffer::Tokenizer::OrSymbol
109
+ }
110
+ )
111
+ end
112
+ def to_hash
113
+ end
114
+ end
115
+ end
116
+ end
@@ -0,0 +1,16 @@
1
+ # typed: strong
2
+
3
+ module Turbopuffer
4
+ module Models
5
+ # An identifier for a document.
6
+ module ID
7
+ extend Turbopuffer::Internal::Type::Union
8
+
9
+ Variants = T.type_alias { T.any(String, Integer) }
10
+
11
+ sig { override.returns(T::Array[Turbopuffer::ID::Variants]) }
12
+ def self.variants
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,24 @@
1
+ # typed: strong
2
+
3
+ module Turbopuffer
4
+ module Models
5
+ # Whether to include attributes in the response.
6
+ module IncludeAttributes
7
+ extend Turbopuffer::Internal::Type::Union
8
+
9
+ Variants = T.type_alias { T.any(T::Boolean, T::Array[String]) }
10
+
11
+ sig do
12
+ override.returns(T::Array[Turbopuffer::IncludeAttributes::Variants])
13
+ end
14
+ def self.variants
15
+ end
16
+
17
+ StringArray =
18
+ T.let(
19
+ Turbopuffer::Internal::Type::ArrayOf[String],
20
+ Turbopuffer::Internal::Type::Converter
21
+ )
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,36 @@
1
+ # typed: strong
2
+
3
+ module Turbopuffer
4
+ module Models
5
+ # Describes the language of a text attribute. Defaults to `english`.
6
+ module Language
7
+ extend Turbopuffer::Internal::Type::Enum
8
+
9
+ TaggedSymbol = T.type_alias { T.all(Symbol, Turbopuffer::Language) }
10
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
11
+
12
+ ARABIC = T.let(:arabic, Turbopuffer::Language::TaggedSymbol)
13
+ DANISH = T.let(:danish, Turbopuffer::Language::TaggedSymbol)
14
+ DUTCH = T.let(:dutch, Turbopuffer::Language::TaggedSymbol)
15
+ ENGLISH = T.let(:english, Turbopuffer::Language::TaggedSymbol)
16
+ FINNISH = T.let(:finnish, Turbopuffer::Language::TaggedSymbol)
17
+ FRENCH = T.let(:french, Turbopuffer::Language::TaggedSymbol)
18
+ GERMAN = T.let(:german, Turbopuffer::Language::TaggedSymbol)
19
+ GREEK = T.let(:greek, Turbopuffer::Language::TaggedSymbol)
20
+ HUNGARIAN = T.let(:hungarian, Turbopuffer::Language::TaggedSymbol)
21
+ ITALIAN = T.let(:italian, Turbopuffer::Language::TaggedSymbol)
22
+ NORWEGIAN = T.let(:norwegian, Turbopuffer::Language::TaggedSymbol)
23
+ PORTUGUESE = T.let(:portuguese, Turbopuffer::Language::TaggedSymbol)
24
+ ROMANIAN = T.let(:romanian, Turbopuffer::Language::TaggedSymbol)
25
+ RUSSIAN = T.let(:russian, Turbopuffer::Language::TaggedSymbol)
26
+ SPANISH = T.let(:spanish, Turbopuffer::Language::TaggedSymbol)
27
+ SWEDISH = T.let(:swedish, Turbopuffer::Language::TaggedSymbol)
28
+ TAMIL = T.let(:tamil, Turbopuffer::Language::TaggedSymbol)
29
+ TURKISH = T.let(:turkish, Turbopuffer::Language::TaggedSymbol)
30
+
31
+ sig { override.returns(T::Array[Turbopuffer::Language::TaggedSymbol]) }
32
+ def self.values
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,41 @@
1
+ # typed: strong
2
+
3
+ module Turbopuffer
4
+ module Models
5
+ class NamespaceDeleteAllParams < Turbopuffer::Internal::Type::BaseModel
6
+ extend Turbopuffer::Internal::Type::RequestParameters::Converter
7
+ include Turbopuffer::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Turbopuffer::NamespaceDeleteAllParams,
13
+ Turbopuffer::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(T.nilable(String)) }
18
+ attr_reader :namespace
19
+
20
+ sig { params(namespace: String).void }
21
+ attr_writer :namespace
22
+
23
+ sig do
24
+ params(
25
+ namespace: String,
26
+ request_options: Turbopuffer::RequestOptions::OrHash
27
+ ).returns(T.attached_class)
28
+ end
29
+ def self.new(namespace: nil, request_options: {})
30
+ end
31
+
32
+ sig do
33
+ override.returns(
34
+ { namespace: String, request_options: Turbopuffer::RequestOptions }
35
+ )
36
+ end
37
+ def to_hash
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,31 @@
1
+ # typed: strong
2
+
3
+ module Turbopuffer
4
+ module Models
5
+ class NamespaceDeleteAllResponse < Turbopuffer::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Turbopuffer::Models::NamespaceDeleteAllResponse,
10
+ Turbopuffer::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The status of the request.
15
+ sig { returns(Symbol) }
16
+ attr_accessor :status
17
+
18
+ # The response to a successful namespace deletion request.
19
+ sig { params(status: Symbol).returns(T.attached_class) }
20
+ def self.new(
21
+ # The status of the request.
22
+ status: :OK
23
+ )
24
+ end
25
+
26
+ sig { override.returns({ status: Symbol }) }
27
+ def to_hash
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,41 @@
1
+ # typed: strong
2
+
3
+ module Turbopuffer
4
+ module Models
5
+ class NamespaceHintCacheWarmParams < Turbopuffer::Internal::Type::BaseModel
6
+ extend Turbopuffer::Internal::Type::RequestParameters::Converter
7
+ include Turbopuffer::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Turbopuffer::NamespaceHintCacheWarmParams,
13
+ Turbopuffer::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(T.nilable(String)) }
18
+ attr_reader :namespace
19
+
20
+ sig { params(namespace: String).void }
21
+ attr_writer :namespace
22
+
23
+ sig do
24
+ params(
25
+ namespace: String,
26
+ request_options: Turbopuffer::RequestOptions::OrHash
27
+ ).returns(T.attached_class)
28
+ end
29
+ def self.new(namespace: nil, request_options: {})
30
+ end
31
+
32
+ sig do
33
+ override.returns(
34
+ { namespace: String, request_options: Turbopuffer::RequestOptions }
35
+ )
36
+ end
37
+ def to_hash
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,38 @@
1
+ # typed: strong
2
+
3
+ module Turbopuffer
4
+ module Models
5
+ class NamespaceHintCacheWarmResponse < Turbopuffer::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Turbopuffer::Models::NamespaceHintCacheWarmResponse,
10
+ Turbopuffer::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The status of the request.
15
+ sig { returns(Symbol) }
16
+ attr_accessor :status
17
+
18
+ sig { returns(T.nilable(String)) }
19
+ attr_reader :message
20
+
21
+ sig { params(message: String).void }
22
+ attr_writer :message
23
+
24
+ # The response to a successful cache warm request.
25
+ sig { params(message: String, status: Symbol).returns(T.attached_class) }
26
+ def self.new(
27
+ message: nil,
28
+ # The status of the request.
29
+ status: :OK
30
+ )
31
+ end
32
+
33
+ sig { override.returns({ status: Symbol, message: String }) }
34
+ def to_hash
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,54 @@
1
+ # typed: strong
2
+
3
+ module Turbopuffer
4
+ module Models
5
+ class NamespaceMetadata < Turbopuffer::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Turbopuffer::NamespaceMetadata, Turbopuffer::Internal::AnyHash)
9
+ end
10
+
11
+ # The approximate number of logical bytes in the namespace.
12
+ sig { returns(Integer) }
13
+ attr_accessor :approx_logical_bytes
14
+
15
+ # The timestamp when the namespace was created.
16
+ sig { returns(Time) }
17
+ attr_accessor :created_at
18
+
19
+ # The schema of the namespace.
20
+ sig { returns(T::Hash[Symbol, Turbopuffer::AttributeSchemaConfig]) }
21
+ attr_accessor :schema
22
+
23
+ # Metadata about a namespace.
24
+ sig do
25
+ params(
26
+ approx_logical_bytes: Integer,
27
+ created_at: Time,
28
+ schema: T::Hash[Symbol, Turbopuffer::AttributeSchemaConfig::OrHash]
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(
32
+ # The approximate number of logical bytes in the namespace.
33
+ approx_logical_bytes:,
34
+ # The timestamp when the namespace was created.
35
+ created_at:,
36
+ # The schema of the namespace.
37
+ schema:
38
+ )
39
+ end
40
+
41
+ sig do
42
+ override.returns(
43
+ {
44
+ approx_logical_bytes: Integer,
45
+ created_at: Time,
46
+ schema: T::Hash[Symbol, Turbopuffer::AttributeSchemaConfig]
47
+ }
48
+ )
49
+ end
50
+ def to_hash
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,41 @@
1
+ # typed: strong
2
+
3
+ module Turbopuffer
4
+ module Models
5
+ class NamespaceMetadataParams < Turbopuffer::Internal::Type::BaseModel
6
+ extend Turbopuffer::Internal::Type::RequestParameters::Converter
7
+ include Turbopuffer::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Turbopuffer::NamespaceMetadataParams,
13
+ Turbopuffer::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(T.nilable(String)) }
18
+ attr_reader :namespace
19
+
20
+ sig { params(namespace: String).void }
21
+ attr_writer :namespace
22
+
23
+ sig do
24
+ params(
25
+ namespace: String,
26
+ request_options: Turbopuffer::RequestOptions::OrHash
27
+ ).returns(T.attached_class)
28
+ end
29
+ def self.new(namespace: nil, request_options: {})
30
+ end
31
+
32
+ sig do
33
+ override.returns(
34
+ { namespace: String, request_options: Turbopuffer::RequestOptions }
35
+ )
36
+ end
37
+ def to_hash
38
+ end
39
+ end
40
+ end
41
+ end