1#[derive(Clone, PartialEq, ::prost::Message)]
11pub struct Struct {
12 #[prost(map = "string, message", tag = "1")]
14 pub fields: ::std::collections::HashMap<::prost::alloc::string::String, Value>,
15}
16#[derive(Clone, PartialEq, ::prost::Message)]
23pub struct Value {
24 #[prost(oneof = "value::Kind", tags = "1, 2, 3, 4, 5, 6, 7")]
26 pub kind: ::core::option::Option<value::Kind>,
27}
28pub mod value {
30 #[derive(Clone, PartialEq, ::prost::Oneof)]
32 pub enum Kind {
33 #[prost(enumeration = "super::NullValue", tag = "1")]
35 NullValue(i32),
36 #[prost(double, tag = "2")]
38 DoubleValue(f64),
39 #[prost(int64, tag = "3")]
41 IntegerValue(i64),
42 #[prost(string, tag = "4")]
44 StringValue(::prost::alloc::string::String),
45 #[prost(bool, tag = "5")]
47 BoolValue(bool),
48 #[prost(message, tag = "6")]
50 StructValue(super::Struct),
51 #[prost(message, tag = "7")]
53 ListValue(super::ListValue),
54 }
55}
56#[derive(Clone, PartialEq, ::prost::Message)]
60pub struct ListValue {
61 #[prost(message, repeated, tag = "1")]
63 pub values: ::prost::alloc::vec::Vec<Value>,
64}
65#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
70#[repr(i32)]
71pub enum NullValue {
72 NullValue = 0,
74}
75impl NullValue {
76 pub fn as_str_name(&self) -> &'static str {
81 match self {
82 Self::NullValue => "NULL_VALUE",
83 }
84 }
85 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
87 match value {
88 "NULL_VALUE" => Some(Self::NullValue),
89 _ => None,
90 }
91 }
92}
93#[derive(Clone, PartialEq, ::prost::Message)]
94pub struct PointId {
95 #[prost(oneof = "point_id::PointIdOptions", tags = "1, 2")]
96 pub point_id_options: ::core::option::Option<point_id::PointIdOptions>,
97}
98pub mod point_id {
100 #[derive(Clone, PartialEq, ::prost::Oneof)]
101 pub enum PointIdOptions {
102 #[prost(uint64, tag = "1")]
104 Num(u64),
105 #[prost(string, tag = "2")]
107 Uuid(::prost::alloc::string::String),
108 }
109}
110#[derive(Clone, Copy, PartialEq, ::prost::Message)]
111pub struct GeoPoint {
112 #[prost(double, tag = "1")]
113 pub lon: f64,
114 #[prost(double, tag = "2")]
115 pub lat: f64,
116}
117#[derive(Clone, PartialEq, ::prost::Message)]
118pub struct Filter {
119 #[prost(message, repeated, tag = "1")]
121 pub should: ::prost::alloc::vec::Vec<Condition>,
122 #[prost(message, repeated, tag = "2")]
124 pub must: ::prost::alloc::vec::Vec<Condition>,
125 #[prost(message, repeated, tag = "3")]
127 pub must_not: ::prost::alloc::vec::Vec<Condition>,
128 #[prost(message, optional, tag = "4")]
130 pub min_should: ::core::option::Option<MinShould>,
131}
132#[derive(Clone, PartialEq, ::prost::Message)]
133pub struct MinShould {
134 #[prost(message, repeated, tag = "1")]
135 pub conditions: ::prost::alloc::vec::Vec<Condition>,
136 #[prost(uint64, tag = "2")]
137 pub min_count: u64,
138}
139#[derive(Clone, PartialEq, ::prost::Message)]
140pub struct Condition {
141 #[prost(oneof = "condition::ConditionOneOf", tags = "1, 2, 3, 4, 5, 6, 7")]
142 pub condition_one_of: ::core::option::Option<condition::ConditionOneOf>,
143}
144pub mod condition {
146 #[derive(Clone, PartialEq, ::prost::Oneof)]
147 pub enum ConditionOneOf {
148 #[prost(message, tag = "1")]
149 Field(super::FieldCondition),
150 #[prost(message, tag = "2")]
151 IsEmpty(super::IsEmptyCondition),
152 #[prost(message, tag = "3")]
153 HasId(super::HasIdCondition),
154 #[prost(message, tag = "4")]
155 Filter(super::Filter),
156 #[prost(message, tag = "5")]
157 IsNull(super::IsNullCondition),
158 #[prost(message, tag = "6")]
159 Nested(super::NestedCondition),
160 #[prost(message, tag = "7")]
161 HasVector(super::HasVectorCondition),
162 }
163}
164#[derive(Clone, PartialEq, ::prost::Message)]
165pub struct IsEmptyCondition {
166 #[prost(string, tag = "1")]
167 pub key: ::prost::alloc::string::String,
168}
169#[derive(Clone, PartialEq, ::prost::Message)]
170pub struct IsNullCondition {
171 #[prost(string, tag = "1")]
172 pub key: ::prost::alloc::string::String,
173}
174#[derive(Clone, PartialEq, ::prost::Message)]
175pub struct HasIdCondition {
176 #[prost(message, repeated, tag = "1")]
177 pub has_id: ::prost::alloc::vec::Vec<PointId>,
178}
179#[derive(Clone, PartialEq, ::prost::Message)]
180pub struct HasVectorCondition {
181 #[prost(string, tag = "1")]
182 pub has_vector: ::prost::alloc::string::String,
183}
184#[derive(Clone, PartialEq, ::prost::Message)]
185pub struct NestedCondition {
186 #[prost(string, tag = "1")]
188 pub key: ::prost::alloc::string::String,
189 #[prost(message, optional, tag = "2")]
191 pub filter: ::core::option::Option<Filter>,
192}
193#[derive(Clone, PartialEq, ::prost::Message)]
194pub struct FieldCondition {
195 #[prost(string, tag = "1")]
196 pub key: ::prost::alloc::string::String,
197 #[prost(message, optional, tag = "2")]
199 pub r#match: ::core::option::Option<Match>,
200 #[prost(message, optional, tag = "3")]
202 pub range: ::core::option::Option<Range>,
203 #[prost(message, optional, tag = "4")]
205 pub geo_bounding_box: ::core::option::Option<GeoBoundingBox>,
206 #[prost(message, optional, tag = "5")]
208 pub geo_radius: ::core::option::Option<GeoRadius>,
209 #[prost(message, optional, tag = "6")]
211 pub values_count: ::core::option::Option<ValuesCount>,
212 #[prost(message, optional, tag = "7")]
214 pub geo_polygon: ::core::option::Option<GeoPolygon>,
215 #[prost(message, optional, tag = "8")]
217 pub datetime_range: ::core::option::Option<DatetimeRange>,
218 #[prost(bool, optional, tag = "9")]
220 pub is_empty: ::core::option::Option<bool>,
221 #[prost(bool, optional, tag = "10")]
223 pub is_null: ::core::option::Option<bool>,
224}
225#[derive(Clone, PartialEq, ::prost::Message)]
226pub struct Match {
227 #[prost(oneof = "r#match::MatchValue", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10")]
228 pub match_value: ::core::option::Option<r#match::MatchValue>,
229}
230pub mod r#match {
232 #[derive(Clone, PartialEq, ::prost::Oneof)]
233 pub enum MatchValue {
234 #[prost(string, tag = "1")]
236 Keyword(::prost::alloc::string::String),
237 #[prost(int64, tag = "2")]
239 Integer(i64),
240 #[prost(bool, tag = "3")]
242 Boolean(bool),
243 #[prost(string, tag = "4")]
245 Text(::prost::alloc::string::String),
246 #[prost(message, tag = "5")]
248 Keywords(super::RepeatedStrings),
249 #[prost(message, tag = "6")]
251 Integers(super::RepeatedIntegers),
252 #[prost(message, tag = "7")]
254 ExceptIntegers(super::RepeatedIntegers),
255 #[prost(message, tag = "8")]
257 ExceptKeywords(super::RepeatedStrings),
258 #[prost(string, tag = "9")]
260 Phrase(::prost::alloc::string::String),
261 #[prost(string, tag = "10")]
263 TextAny(::prost::alloc::string::String),
264 }
265}
266#[derive(Clone, PartialEq, ::prost::Message)]
267pub struct RepeatedStrings {
268 #[prost(string, repeated, tag = "1")]
269 pub strings: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
270}
271#[derive(Clone, PartialEq, ::prost::Message)]
272pub struct RepeatedIntegers {
273 #[prost(int64, repeated, tag = "1")]
274 pub integers: ::prost::alloc::vec::Vec<i64>,
275}
276#[derive(Clone, Copy, PartialEq, ::prost::Message)]
277pub struct Range {
278 #[prost(double, optional, tag = "1")]
279 pub lt: ::core::option::Option<f64>,
280 #[prost(double, optional, tag = "2")]
281 pub gt: ::core::option::Option<f64>,
282 #[prost(double, optional, tag = "3")]
283 pub gte: ::core::option::Option<f64>,
284 #[prost(double, optional, tag = "4")]
285 pub lte: ::core::option::Option<f64>,
286}
287#[derive(Clone, Copy, PartialEq, ::prost::Message)]
288pub struct DatetimeRange {
289 #[prost(message, optional, tag = "1")]
290 pub lt: ::core::option::Option<::prost_types::Timestamp>,
291 #[prost(message, optional, tag = "2")]
292 pub gt: ::core::option::Option<::prost_types::Timestamp>,
293 #[prost(message, optional, tag = "3")]
294 pub gte: ::core::option::Option<::prost_types::Timestamp>,
295 #[prost(message, optional, tag = "4")]
296 pub lte: ::core::option::Option<::prost_types::Timestamp>,
297}
298#[derive(Clone, Copy, PartialEq, ::prost::Message)]
299pub struct GeoBoundingBox {
300 #[prost(message, optional, tag = "1")]
302 pub top_left: ::core::option::Option<GeoPoint>,
303 #[prost(message, optional, tag = "2")]
305 pub bottom_right: ::core::option::Option<GeoPoint>,
306}
307#[derive(Clone, Copy, PartialEq, ::prost::Message)]
308pub struct GeoRadius {
309 #[prost(message, optional, tag = "1")]
311 pub center: ::core::option::Option<GeoPoint>,
312 #[prost(float, tag = "2")]
314 pub radius: f32,
315}
316#[derive(Clone, PartialEq, ::prost::Message)]
317pub struct GeoLineString {
318 #[prost(message, repeated, tag = "1")]
320 pub points: ::prost::alloc::vec::Vec<GeoPoint>,
321}
322#[derive(Clone, PartialEq, ::prost::Message)]
326pub struct GeoPolygon {
327 #[prost(message, optional, tag = "1")]
329 pub exterior: ::core::option::Option<GeoLineString>,
330 #[prost(message, repeated, tag = "2")]
332 pub interiors: ::prost::alloc::vec::Vec<GeoLineString>,
333}
334#[derive(Clone, Copy, PartialEq, ::prost::Message)]
335pub struct ValuesCount {
336 #[prost(uint64, optional, tag = "1")]
337 pub lt: ::core::option::Option<u64>,
338 #[prost(uint64, optional, tag = "2")]
339 pub gt: ::core::option::Option<u64>,
340 #[prost(uint64, optional, tag = "3")]
341 pub gte: ::core::option::Option<u64>,
342 #[prost(uint64, optional, tag = "4")]
343 pub lte: ::core::option::Option<u64>,
344}
345#[derive(Clone, Copy, PartialEq, ::prost::Message)]
346pub struct VectorParams {
347 #[prost(uint64, tag = "1")]
349 pub size: u64,
350 #[prost(enumeration = "Distance", tag = "2")]
352 pub distance: i32,
353 #[prost(message, optional, tag = "3")]
356 pub hnsw_config: ::core::option::Option<HnswConfigDiff>,
357 #[prost(message, optional, tag = "4")]
360 pub quantization_config: ::core::option::Option<QuantizationConfig>,
361 #[prost(bool, optional, tag = "5")]
364 pub on_disk: ::core::option::Option<bool>,
365 #[prost(enumeration = "Datatype", optional, tag = "6")]
367 pub datatype: ::core::option::Option<i32>,
368 #[prost(message, optional, tag = "7")]
370 pub multivector_config: ::core::option::Option<MultiVectorConfig>,
371}
372#[derive(Clone, Copy, PartialEq, ::prost::Message)]
373pub struct VectorParamsDiff {
374 #[prost(message, optional, tag = "1")]
377 pub hnsw_config: ::core::option::Option<HnswConfigDiff>,
378 #[prost(message, optional, tag = "2")]
380 pub quantization_config: ::core::option::Option<QuantizationConfigDiff>,
381 #[prost(bool, optional, tag = "3")]
384 pub on_disk: ::core::option::Option<bool>,
385}
386#[derive(Clone, PartialEq, ::prost::Message)]
387pub struct VectorParamsMap {
388 #[prost(map = "string, message", tag = "1")]
389 pub map: ::std::collections::HashMap<::prost::alloc::string::String, VectorParams>,
390}
391#[derive(Clone, PartialEq, ::prost::Message)]
392pub struct VectorParamsDiffMap {
393 #[prost(map = "string, message", tag = "1")]
394 pub map: ::std::collections::HashMap<
395 ::prost::alloc::string::String,
396 VectorParamsDiff,
397 >,
398}
399#[derive(Clone, PartialEq, ::prost::Message)]
400pub struct VectorsConfig {
401 #[prost(oneof = "vectors_config::Config", tags = "1, 2")]
402 pub config: ::core::option::Option<vectors_config::Config>,
403}
404pub mod vectors_config {
406 #[derive(Clone, PartialEq, ::prost::Oneof)]
407 pub enum Config {
408 #[prost(message, tag = "1")]
409 Params(super::VectorParams),
410 #[prost(message, tag = "2")]
411 ParamsMap(super::VectorParamsMap),
412 }
413}
414#[derive(Clone, PartialEq, ::prost::Message)]
415pub struct VectorsConfigDiff {
416 #[prost(oneof = "vectors_config_diff::Config", tags = "1, 2")]
417 pub config: ::core::option::Option<vectors_config_diff::Config>,
418}
419pub mod vectors_config_diff {
421 #[derive(Clone, PartialEq, ::prost::Oneof)]
422 pub enum Config {
423 #[prost(message, tag = "1")]
424 Params(super::VectorParamsDiff),
425 #[prost(message, tag = "2")]
426 ParamsMap(super::VectorParamsDiffMap),
427 }
428}
429#[derive(Clone, Copy, PartialEq, ::prost::Message)]
430pub struct SparseVectorParams {
431 #[prost(message, optional, tag = "1")]
433 pub index: ::core::option::Option<SparseIndexConfig>,
434 #[prost(enumeration = "Modifier", optional, tag = "2")]
436 pub modifier: ::core::option::Option<i32>,
437}
438#[derive(Clone, PartialEq, ::prost::Message)]
439pub struct SparseVectorConfig {
440 #[prost(map = "string, message", tag = "1")]
441 pub map: ::std::collections::HashMap<
442 ::prost::alloc::string::String,
443 SparseVectorParams,
444 >,
445}
446#[derive(Clone, Copy, PartialEq, ::prost::Message)]
447pub struct MultiVectorConfig {
448 #[prost(enumeration = "MultiVectorComparator", tag = "1")]
450 pub comparator: i32,
451}
452#[derive(Clone, PartialEq, ::prost::Message)]
453pub struct GetCollectionInfoRequest {
454 #[prost(string, tag = "1")]
456 pub collection_name: ::prost::alloc::string::String,
457}
458#[derive(Clone, PartialEq, ::prost::Message)]
459pub struct CollectionExistsRequest {
460 #[prost(string, tag = "1")]
461 pub collection_name: ::prost::alloc::string::String,
462}
463#[derive(Clone, Copy, PartialEq, ::prost::Message)]
464pub struct CollectionExists {
465 #[prost(bool, tag = "1")]
466 pub exists: bool,
467}
468#[derive(Clone, Copy, PartialEq, ::prost::Message)]
469pub struct CollectionExistsResponse {
470 #[prost(message, optional, tag = "1")]
471 pub result: ::core::option::Option<CollectionExists>,
472 #[prost(double, tag = "2")]
474 pub time: f64,
475}
476#[derive(Clone, Copy, PartialEq, ::prost::Message)]
477pub struct ListCollectionsRequest {}
478#[derive(Clone, PartialEq, ::prost::Message)]
479pub struct CollectionDescription {
480 #[prost(string, tag = "1")]
482 pub name: ::prost::alloc::string::String,
483}
484#[derive(Clone, PartialEq, ::prost::Message)]
485pub struct GetCollectionInfoResponse {
486 #[prost(message, optional, tag = "1")]
487 pub result: ::core::option::Option<CollectionInfo>,
488 #[prost(double, tag = "2")]
490 pub time: f64,
491}
492#[derive(Clone, PartialEq, ::prost::Message)]
493pub struct ListCollectionsResponse {
494 #[prost(message, repeated, tag = "1")]
495 pub collections: ::prost::alloc::vec::Vec<CollectionDescription>,
496 #[prost(double, tag = "2")]
498 pub time: f64,
499}
500#[derive(Clone, Copy, PartialEq, ::prost::Message)]
501pub struct MaxOptimizationThreads {
502 #[prost(oneof = "max_optimization_threads::Variant", tags = "1, 2")]
503 pub variant: ::core::option::Option<max_optimization_threads::Variant>,
504}
505pub mod max_optimization_threads {
507 #[derive(
508 Clone,
509 Copy,
510 Debug,
511 PartialEq,
512 Eq,
513 Hash,
514 PartialOrd,
515 Ord,
516 ::prost::Enumeration
517 )]
518 #[repr(i32)]
519 pub enum Setting {
520 Auto = 0,
521 }
522 impl Setting {
523 pub fn as_str_name(&self) -> &'static str {
528 match self {
529 Self::Auto => "Auto",
530 }
531 }
532 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
534 match value {
535 "Auto" => Some(Self::Auto),
536 _ => None,
537 }
538 }
539 }
540 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
541 pub enum Variant {
542 #[prost(uint64, tag = "1")]
543 Value(u64),
544 #[prost(enumeration = "Setting", tag = "2")]
545 Setting(i32),
546 }
547}
548#[derive(Clone, PartialEq, ::prost::Message)]
549pub struct OptimizerStatus {
550 #[prost(bool, tag = "1")]
551 pub ok: bool,
552 #[prost(string, tag = "2")]
553 pub error: ::prost::alloc::string::String,
554}
555#[derive(Clone, PartialEq, ::prost::Message)]
556pub struct CollectionWarning {
557 #[prost(string, tag = "1")]
558 pub message: ::prost::alloc::string::String,
559}
560#[derive(Clone, Copy, PartialEq, ::prost::Message)]
561pub struct HnswConfigDiff {
562 #[prost(uint64, optional, tag = "1")]
565 pub m: ::core::option::Option<u64>,
566 #[prost(uint64, optional, tag = "2")]
569 pub ef_construct: ::core::option::Option<u64>,
570 #[prost(uint64, optional, tag = "3")]
577 pub full_scan_threshold: ::core::option::Option<u64>,
578 #[prost(uint64, optional, tag = "4")]
583 pub max_indexing_threads: ::core::option::Option<u64>,
584 #[prost(bool, optional, tag = "5")]
586 pub on_disk: ::core::option::Option<bool>,
587 #[prost(uint64, optional, tag = "6")]
590 pub payload_m: ::core::option::Option<u64>,
591 #[prost(bool, optional, tag = "7")]
596 pub inline_storage: ::core::option::Option<bool>,
597}
598#[derive(Clone, Copy, PartialEq, ::prost::Message)]
599pub struct SparseIndexConfig {
600 #[prost(uint64, optional, tag = "1")]
603 pub full_scan_threshold: ::core::option::Option<u64>,
604 #[prost(bool, optional, tag = "2")]
606 pub on_disk: ::core::option::Option<bool>,
607 #[prost(enumeration = "Datatype", optional, tag = "3")]
609 pub datatype: ::core::option::Option<i32>,
610}
611#[derive(Clone, Copy, PartialEq, ::prost::Message)]
612pub struct WalConfigDiff {
613 #[prost(uint64, optional, tag = "1")]
615 pub wal_capacity_mb: ::core::option::Option<u64>,
616 #[prost(uint64, optional, tag = "2")]
618 pub wal_segments_ahead: ::core::option::Option<u64>,
619 #[prost(uint64, optional, tag = "3")]
621 pub wal_retain_closed: ::core::option::Option<u64>,
622}
623#[derive(Clone, Copy, PartialEq, ::prost::Message)]
624pub struct OptimizersConfigDiff {
625 #[prost(double, optional, tag = "1")]
628 pub deleted_threshold: ::core::option::Option<f64>,
629 #[prost(uint64, optional, tag = "2")]
632 pub vacuum_min_vector_number: ::core::option::Option<u64>,
633 #[prost(uint64, optional, tag = "3")]
642 pub default_segment_number: ::core::option::Option<u64>,
643 #[prost(uint64, optional, tag = "4")]
654 pub max_segment_size: ::core::option::Option<u64>,
655 #[prost(uint64, optional, tag = "5")]
664 pub memmap_threshold: ::core::option::Option<u64>,
665 #[prost(uint64, optional, tag = "6")]
675 pub indexing_threshold: ::core::option::Option<u64>,
676 #[prost(uint64, optional, tag = "7")]
678 pub flush_interval_sec: ::core::option::Option<u64>,
679 #[prost(uint64, optional, tag = "8")]
681 pub deprecated_max_optimization_threads: ::core::option::Option<u64>,
682 #[prost(message, optional, tag = "9")]
687 pub max_optimization_threads: ::core::option::Option<MaxOptimizationThreads>,
688 #[prost(bool, optional, tag = "10")]
694 pub prevent_unoptimized: ::core::option::Option<bool>,
695}
696#[derive(Clone, Copy, PartialEq, ::prost::Message)]
697pub struct ScalarQuantization {
698 #[prost(enumeration = "QuantizationType", tag = "1")]
700 pub r#type: i32,
701 #[prost(float, optional, tag = "2")]
703 pub quantile: ::core::option::Option<f32>,
704 #[prost(bool, optional, tag = "3")]
706 pub always_ram: ::core::option::Option<bool>,
707}
708#[derive(Clone, Copy, PartialEq, ::prost::Message)]
709pub struct ProductQuantization {
710 #[prost(enumeration = "CompressionRatio", tag = "1")]
712 pub compression: i32,
713 #[prost(bool, optional, tag = "2")]
715 pub always_ram: ::core::option::Option<bool>,
716}
717#[derive(Clone, Copy, PartialEq, ::prost::Message)]
718pub struct BinaryQuantizationQueryEncoding {
719 #[prost(oneof = "binary_quantization_query_encoding::Variant", tags = "4")]
720 pub variant: ::core::option::Option<binary_quantization_query_encoding::Variant>,
721}
722pub mod binary_quantization_query_encoding {
724 #[derive(
725 Clone,
726 Copy,
727 Debug,
728 PartialEq,
729 Eq,
730 Hash,
731 PartialOrd,
732 Ord,
733 ::prost::Enumeration
734 )]
735 #[repr(i32)]
736 pub enum Setting {
737 Default = 0,
738 Binary = 1,
739 Scalar4Bits = 2,
740 Scalar8Bits = 3,
741 }
742 impl Setting {
743 pub fn as_str_name(&self) -> &'static str {
748 match self {
749 Self::Default => "Default",
750 Self::Binary => "Binary",
751 Self::Scalar4Bits => "Scalar4Bits",
752 Self::Scalar8Bits => "Scalar8Bits",
753 }
754 }
755 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
757 match value {
758 "Default" => Some(Self::Default),
759 "Binary" => Some(Self::Binary),
760 "Scalar4Bits" => Some(Self::Scalar4Bits),
761 "Scalar8Bits" => Some(Self::Scalar8Bits),
762 _ => None,
763 }
764 }
765 }
766 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
767 pub enum Variant {
768 #[prost(enumeration = "Setting", tag = "4")]
769 Setting(i32),
770 }
771}
772#[derive(Clone, Copy, PartialEq, ::prost::Message)]
773pub struct BinaryQuantization {
774 #[prost(bool, optional, tag = "1")]
776 pub always_ram: ::core::option::Option<bool>,
777 #[prost(enumeration = "BinaryQuantizationEncoding", optional, tag = "2")]
779 pub encoding: ::core::option::Option<i32>,
780 #[prost(message, optional, tag = "3")]
784 pub query_encoding: ::core::option::Option<BinaryQuantizationQueryEncoding>,
785}
786#[derive(Clone, Copy, PartialEq, ::prost::Message)]
787pub struct TurboQuantization {
788 #[prost(bool, optional, tag = "1")]
789 pub always_ram: ::core::option::Option<bool>,
790 #[prost(enumeration = "TurboQuantBitSize", optional, tag = "2")]
791 pub bits: ::core::option::Option<i32>,
792}
793#[derive(Clone, Copy, PartialEq, ::prost::Message)]
794pub struct QuantizationConfig {
795 #[prost(oneof = "quantization_config::Quantization", tags = "1, 2, 3, 4")]
796 pub quantization: ::core::option::Option<quantization_config::Quantization>,
797}
798pub mod quantization_config {
800 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
801 pub enum Quantization {
802 #[prost(message, tag = "1")]
803 Scalar(super::ScalarQuantization),
804 #[prost(message, tag = "2")]
805 Product(super::ProductQuantization),
806 #[prost(message, tag = "3")]
807 Binary(super::BinaryQuantization),
808 #[prost(message, tag = "4")]
809 Turboquant(super::TurboQuantization),
810 }
811}
812#[derive(Clone, Copy, PartialEq, ::prost::Message)]
813pub struct Disabled {}
814#[derive(Clone, Copy, PartialEq, ::prost::Message)]
815pub struct QuantizationConfigDiff {
816 #[prost(oneof = "quantization_config_diff::Quantization", tags = "1, 2, 3, 4, 5")]
817 pub quantization: ::core::option::Option<quantization_config_diff::Quantization>,
818}
819pub mod quantization_config_diff {
821 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
822 pub enum Quantization {
823 #[prost(message, tag = "1")]
824 Scalar(super::ScalarQuantization),
825 #[prost(message, tag = "2")]
826 Product(super::ProductQuantization),
827 #[prost(message, tag = "3")]
828 Disabled(super::Disabled),
829 #[prost(message, tag = "4")]
830 Binary(super::BinaryQuantization),
831 #[prost(message, tag = "5")]
832 Turboquant(super::TurboQuantization),
833 }
834}
835#[derive(Clone, PartialEq, ::prost::Message)]
836pub struct StrictModeConfig {
837 #[prost(bool, optional, tag = "1")]
839 pub enabled: ::core::option::Option<bool>,
840 #[prost(uint32, optional, tag = "2")]
842 pub max_query_limit: ::core::option::Option<u32>,
843 #[prost(uint32, optional, tag = "3")]
845 pub max_timeout: ::core::option::Option<u32>,
846 #[prost(bool, optional, tag = "4")]
848 pub unindexed_filtering_retrieve: ::core::option::Option<bool>,
849 #[prost(bool, optional, tag = "5")]
851 pub unindexed_filtering_update: ::core::option::Option<bool>,
852 #[prost(uint32, optional, tag = "6")]
854 pub search_max_hnsw_ef: ::core::option::Option<u32>,
855 #[prost(bool, optional, tag = "7")]
857 pub search_allow_exact: ::core::option::Option<bool>,
858 #[prost(float, optional, tag = "8")]
860 pub search_max_oversampling: ::core::option::Option<f32>,
861 #[prost(uint64, optional, tag = "9")]
863 pub upsert_max_batchsize: ::core::option::Option<u64>,
864 #[prost(uint64, optional, tag = "20")]
866 pub search_max_batchsize: ::core::option::Option<u64>,
867 #[prost(uint64, optional, tag = "10")]
869 pub max_collection_vector_size_bytes: ::core::option::Option<u64>,
870 #[prost(uint32, optional, tag = "11")]
872 pub read_rate_limit: ::core::option::Option<u32>,
873 #[prost(uint32, optional, tag = "12")]
875 pub write_rate_limit: ::core::option::Option<u32>,
876 #[prost(uint64, optional, tag = "13")]
878 pub max_collection_payload_size_bytes: ::core::option::Option<u64>,
879 #[prost(uint64, optional, tag = "14")]
881 pub filter_max_conditions: ::core::option::Option<u64>,
882 #[prost(uint64, optional, tag = "15")]
884 pub condition_max_size: ::core::option::Option<u64>,
885 #[prost(message, optional, tag = "16")]
887 pub multivector_config: ::core::option::Option<StrictModeMultivectorConfig>,
888 #[prost(message, optional, tag = "17")]
890 pub sparse_config: ::core::option::Option<StrictModeSparseConfig>,
891 #[prost(uint64, optional, tag = "18")]
893 pub max_points_count: ::core::option::Option<u64>,
894 #[prost(uint64, optional, tag = "19")]
896 pub max_payload_index_count: ::core::option::Option<u64>,
897 #[prost(uint32, optional, tag = "21")]
900 pub max_resident_memory_percent: ::core::option::Option<u32>,
901}
902#[derive(Clone, PartialEq, ::prost::Message)]
903pub struct StrictModeSparseConfig {
904 #[prost(map = "string, message", tag = "1")]
905 pub sparse_config: ::std::collections::HashMap<
906 ::prost::alloc::string::String,
907 StrictModeSparse,
908 >,
909}
910#[derive(Clone, Copy, PartialEq, ::prost::Message)]
911pub struct StrictModeSparse {
912 #[prost(uint64, optional, tag = "10")]
914 pub max_length: ::core::option::Option<u64>,
915}
916#[derive(Clone, PartialEq, ::prost::Message)]
917pub struct StrictModeMultivectorConfig {
918 #[prost(map = "string, message", tag = "1")]
919 pub multivector_config: ::std::collections::HashMap<
920 ::prost::alloc::string::String,
921 StrictModeMultivector,
922 >,
923}
924#[derive(Clone, Copy, PartialEq, ::prost::Message)]
925pub struct StrictModeMultivector {
926 #[prost(uint64, optional, tag = "1")]
928 pub max_vectors: ::core::option::Option<u64>,
929}
930#[derive(Clone, PartialEq, ::prost::Message)]
931pub struct CreateCollection {
932 #[prost(string, tag = "1")]
934 pub collection_name: ::prost::alloc::string::String,
935 #[prost(message, optional, tag = "4")]
937 pub hnsw_config: ::core::option::Option<HnswConfigDiff>,
938 #[prost(message, optional, tag = "5")]
940 pub wal_config: ::core::option::Option<WalConfigDiff>,
941 #[prost(message, optional, tag = "6")]
943 pub optimizers_config: ::core::option::Option<OptimizersConfigDiff>,
944 #[prost(uint32, optional, tag = "7")]
947 pub shard_number: ::core::option::Option<u32>,
948 #[prost(bool, optional, tag = "8")]
950 pub on_disk_payload: ::core::option::Option<bool>,
951 #[prost(uint64, optional, tag = "9")]
954 pub timeout: ::core::option::Option<u64>,
955 #[prost(message, optional, tag = "10")]
957 pub vectors_config: ::core::option::Option<VectorsConfig>,
958 #[prost(uint32, optional, tag = "11")]
960 pub replication_factor: ::core::option::Option<u32>,
961 #[prost(uint32, optional, tag = "12")]
963 pub write_consistency_factor: ::core::option::Option<u32>,
964 #[prost(message, optional, tag = "14")]
966 pub quantization_config: ::core::option::Option<QuantizationConfig>,
967 #[prost(enumeration = "ShardingMethod", optional, tag = "15")]
969 pub sharding_method: ::core::option::Option<i32>,
970 #[prost(message, optional, tag = "16")]
972 pub sparse_vectors_config: ::core::option::Option<SparseVectorConfig>,
973 #[prost(message, optional, tag = "17")]
975 pub strict_mode_config: ::core::option::Option<StrictModeConfig>,
976 #[prost(map = "string, message", tag = "18")]
978 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, Value>,
979}
980#[derive(Clone, PartialEq, ::prost::Message)]
981pub struct UpdateCollection {
982 #[prost(string, tag = "1")]
984 pub collection_name: ::prost::alloc::string::String,
985 #[prost(message, optional, tag = "2")]
989 pub optimizers_config: ::core::option::Option<OptimizersConfigDiff>,
990 #[prost(uint64, optional, tag = "3")]
993 pub timeout: ::core::option::Option<u64>,
994 #[prost(message, optional, tag = "4")]
996 pub params: ::core::option::Option<CollectionParamsDiff>,
997 #[prost(message, optional, tag = "5")]
999 pub hnsw_config: ::core::option::Option<HnswConfigDiff>,
1000 #[prost(message, optional, tag = "6")]
1002 pub vectors_config: ::core::option::Option<VectorsConfigDiff>,
1003 #[prost(message, optional, tag = "7")]
1005 pub quantization_config: ::core::option::Option<QuantizationConfigDiff>,
1006 #[prost(message, optional, tag = "8")]
1008 pub sparse_vectors_config: ::core::option::Option<SparseVectorConfig>,
1009 #[prost(message, optional, tag = "9")]
1011 pub strict_mode_config: ::core::option::Option<StrictModeConfig>,
1012 #[prost(map = "string, message", tag = "10")]
1015 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, Value>,
1016}
1017#[derive(Clone, PartialEq, ::prost::Message)]
1018pub struct DeleteCollection {
1019 #[prost(string, tag = "1")]
1021 pub collection_name: ::prost::alloc::string::String,
1022 #[prost(uint64, optional, tag = "2")]
1025 pub timeout: ::core::option::Option<u64>,
1026}
1027#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1028pub struct CollectionOperationResponse {
1029 #[prost(bool, tag = "1")]
1031 pub result: bool,
1032 #[prost(double, tag = "2")]
1034 pub time: f64,
1035}
1036#[derive(Clone, PartialEq, ::prost::Message)]
1037pub struct CollectionParams {
1038 #[prost(uint32, tag = "3")]
1040 pub shard_number: u32,
1041 #[prost(bool, tag = "4")]
1043 pub on_disk_payload: bool,
1044 #[prost(message, optional, tag = "5")]
1046 pub vectors_config: ::core::option::Option<VectorsConfig>,
1047 #[prost(uint32, optional, tag = "6")]
1049 pub replication_factor: ::core::option::Option<u32>,
1050 #[prost(uint32, optional, tag = "7")]
1052 pub write_consistency_factor: ::core::option::Option<u32>,
1053 #[prost(uint32, optional, tag = "8")]
1055 pub read_fan_out_factor: ::core::option::Option<u32>,
1056 #[prost(enumeration = "ShardingMethod", optional, tag = "9")]
1058 pub sharding_method: ::core::option::Option<i32>,
1059 #[prost(message, optional, tag = "10")]
1061 pub sparse_vectors_config: ::core::option::Option<SparseVectorConfig>,
1062 #[prost(uint64, optional, tag = "11")]
1064 pub read_fan_out_delay_ms: ::core::option::Option<u64>,
1065}
1066#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1067pub struct CollectionParamsDiff {
1068 #[prost(uint32, optional, tag = "1")]
1070 pub replication_factor: ::core::option::Option<u32>,
1071 #[prost(uint32, optional, tag = "2")]
1073 pub write_consistency_factor: ::core::option::Option<u32>,
1074 #[prost(bool, optional, tag = "3")]
1076 pub on_disk_payload: ::core::option::Option<bool>,
1077 #[prost(uint32, optional, tag = "4")]
1079 pub read_fan_out_factor: ::core::option::Option<u32>,
1080 #[prost(uint64, optional, tag = "5")]
1082 pub read_fan_out_delay_ms: ::core::option::Option<u64>,
1083}
1084#[derive(Clone, PartialEq, ::prost::Message)]
1085pub struct CollectionConfig {
1086 #[prost(message, optional, tag = "1")]
1088 pub params: ::core::option::Option<CollectionParams>,
1089 #[prost(message, optional, tag = "2")]
1091 pub hnsw_config: ::core::option::Option<HnswConfigDiff>,
1092 #[prost(message, optional, tag = "3")]
1094 pub optimizer_config: ::core::option::Option<OptimizersConfigDiff>,
1095 #[prost(message, optional, tag = "4")]
1097 pub wal_config: ::core::option::Option<WalConfigDiff>,
1098 #[prost(message, optional, tag = "5")]
1100 pub quantization_config: ::core::option::Option<QuantizationConfig>,
1101 #[prost(message, optional, tag = "6")]
1103 pub strict_mode_config: ::core::option::Option<StrictModeConfig>,
1104 #[prost(map = "string, message", tag = "7")]
1106 pub metadata: ::std::collections::HashMap<::prost::alloc::string::String, Value>,
1107}
1108#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1109pub struct KeywordIndexParams {
1110 #[prost(bool, optional, tag = "1")]
1112 pub is_tenant: ::core::option::Option<bool>,
1113 #[prost(bool, optional, tag = "2")]
1115 pub on_disk: ::core::option::Option<bool>,
1116 #[prost(bool, optional, tag = "3")]
1120 pub enable_hnsw: ::core::option::Option<bool>,
1121}
1122#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1123pub struct IntegerIndexParams {
1124 #[prost(bool, optional, tag = "1")]
1126 pub lookup: ::core::option::Option<bool>,
1127 #[prost(bool, optional, tag = "2")]
1129 pub range: ::core::option::Option<bool>,
1130 #[prost(bool, optional, tag = "3")]
1134 pub is_principal: ::core::option::Option<bool>,
1135 #[prost(bool, optional, tag = "4")]
1137 pub on_disk: ::core::option::Option<bool>,
1138 #[prost(bool, optional, tag = "5")]
1142 pub enable_hnsw: ::core::option::Option<bool>,
1143}
1144#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1145pub struct FloatIndexParams {
1146 #[prost(bool, optional, tag = "1")]
1148 pub on_disk: ::core::option::Option<bool>,
1149 #[prost(bool, optional, tag = "2")]
1152 pub is_principal: ::core::option::Option<bool>,
1153 #[prost(bool, optional, tag = "3")]
1157 pub enable_hnsw: ::core::option::Option<bool>,
1158}
1159#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1160pub struct GeoIndexParams {
1161 #[prost(bool, optional, tag = "1")]
1163 pub on_disk: ::core::option::Option<bool>,
1164 #[prost(bool, optional, tag = "2")]
1168 pub enable_hnsw: ::core::option::Option<bool>,
1169}
1170#[derive(Clone, PartialEq, ::prost::Message)]
1171pub struct StopwordsSet {
1172 #[prost(string, repeated, tag = "1")]
1174 pub languages: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1175 #[prost(string, repeated, tag = "2")]
1177 pub custom: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1178}
1179#[derive(Clone, PartialEq, ::prost::Message)]
1180pub struct TextIndexParams {
1181 #[prost(enumeration = "TokenizerType", tag = "1")]
1183 pub tokenizer: i32,
1184 #[prost(bool, optional, tag = "2")]
1186 pub lowercase: ::core::option::Option<bool>,
1187 #[prost(uint64, optional, tag = "3")]
1189 pub min_token_len: ::core::option::Option<u64>,
1190 #[prost(uint64, optional, tag = "4")]
1192 pub max_token_len: ::core::option::Option<u64>,
1193 #[prost(bool, optional, tag = "5")]
1195 pub on_disk: ::core::option::Option<bool>,
1196 #[prost(message, optional, tag = "6")]
1198 pub stopwords: ::core::option::Option<StopwordsSet>,
1199 #[prost(bool, optional, tag = "7")]
1201 pub phrase_matching: ::core::option::Option<bool>,
1202 #[prost(message, optional, tag = "8")]
1204 pub stemmer: ::core::option::Option<StemmingAlgorithm>,
1205 #[prost(bool, optional, tag = "9")]
1208 pub ascii_folding: ::core::option::Option<bool>,
1209 #[prost(bool, optional, tag = "10")]
1213 pub enable_hnsw: ::core::option::Option<bool>,
1214}
1215#[derive(Clone, PartialEq, ::prost::Message)]
1216pub struct StemmingAlgorithm {
1217 #[prost(oneof = "stemming_algorithm::StemmingParams", tags = "1")]
1218 pub stemming_params: ::core::option::Option<stemming_algorithm::StemmingParams>,
1219}
1220pub mod stemming_algorithm {
1222 #[derive(Clone, PartialEq, ::prost::Oneof)]
1223 pub enum StemmingParams {
1224 #[prost(message, tag = "1")]
1226 Snowball(super::SnowballParams),
1227 }
1228}
1229#[derive(Clone, PartialEq, ::prost::Message)]
1230pub struct SnowballParams {
1231 #[prost(string, tag = "1")]
1233 pub language: ::prost::alloc::string::String,
1234}
1235#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1236pub struct BoolIndexParams {
1237 #[prost(bool, optional, tag = "1")]
1239 pub on_disk: ::core::option::Option<bool>,
1240 #[prost(bool, optional, tag = "2")]
1244 pub enable_hnsw: ::core::option::Option<bool>,
1245}
1246#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1247pub struct DatetimeIndexParams {
1248 #[prost(bool, optional, tag = "1")]
1250 pub on_disk: ::core::option::Option<bool>,
1251 #[prost(bool, optional, tag = "2")]
1254 pub is_principal: ::core::option::Option<bool>,
1255 #[prost(bool, optional, tag = "3")]
1259 pub enable_hnsw: ::core::option::Option<bool>,
1260}
1261#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1262pub struct UuidIndexParams {
1263 #[prost(bool, optional, tag = "1")]
1265 pub is_tenant: ::core::option::Option<bool>,
1266 #[prost(bool, optional, tag = "2")]
1268 pub on_disk: ::core::option::Option<bool>,
1269 #[prost(bool, optional, tag = "3")]
1273 pub enable_hnsw: ::core::option::Option<bool>,
1274}
1275#[derive(Clone, PartialEq, ::prost::Message)]
1276pub struct PayloadIndexParams {
1277 #[prost(
1278 oneof = "payload_index_params::IndexParams",
1279 tags = "3, 2, 4, 5, 1, 6, 7, 8"
1280 )]
1281 pub index_params: ::core::option::Option<payload_index_params::IndexParams>,
1282}
1283pub mod payload_index_params {
1285 #[derive(Clone, PartialEq, ::prost::Oneof)]
1286 pub enum IndexParams {
1287 #[prost(message, tag = "3")]
1289 KeywordIndexParams(super::KeywordIndexParams),
1290 #[prost(message, tag = "2")]
1292 IntegerIndexParams(super::IntegerIndexParams),
1293 #[prost(message, tag = "4")]
1295 FloatIndexParams(super::FloatIndexParams),
1296 #[prost(message, tag = "5")]
1298 GeoIndexParams(super::GeoIndexParams),
1299 #[prost(message, tag = "1")]
1301 TextIndexParams(super::TextIndexParams),
1302 #[prost(message, tag = "6")]
1304 BoolIndexParams(super::BoolIndexParams),
1305 #[prost(message, tag = "7")]
1307 DatetimeIndexParams(super::DatetimeIndexParams),
1308 #[prost(message, tag = "8")]
1310 UuidIndexParams(super::UuidIndexParams),
1311 }
1312}
1313#[derive(Clone, PartialEq, ::prost::Message)]
1314pub struct PayloadSchemaInfo {
1315 #[prost(enumeration = "PayloadSchemaType", tag = "1")]
1317 pub data_type: i32,
1318 #[prost(message, optional, tag = "2")]
1320 pub params: ::core::option::Option<PayloadIndexParams>,
1321 #[prost(uint64, optional, tag = "3")]
1323 pub points: ::core::option::Option<u64>,
1324}
1325#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1326pub struct UpdateQueueInfo {
1327 #[prost(uint64, tag = "1")]
1329 pub length: u64,
1330 #[prost(uint64, optional, tag = "2")]
1332 pub deferred_points: ::core::option::Option<u64>,
1333}
1334#[derive(Clone, PartialEq, ::prost::Message)]
1335pub struct CollectionInfo {
1336 #[prost(enumeration = "CollectionStatus", tag = "1")]
1338 pub status: i32,
1339 #[prost(message, optional, tag = "2")]
1341 pub optimizer_status: ::core::option::Option<OptimizerStatus>,
1342 #[prost(uint64, tag = "4")]
1344 pub segments_count: u64,
1345 #[prost(message, optional, tag = "7")]
1347 pub config: ::core::option::Option<CollectionConfig>,
1348 #[prost(map = "string, message", tag = "8")]
1350 pub payload_schema: ::std::collections::HashMap<
1351 ::prost::alloc::string::String,
1352 PayloadSchemaInfo,
1353 >,
1354 #[prost(uint64, optional, tag = "9")]
1356 pub points_count: ::core::option::Option<u64>,
1357 #[prost(uint64, optional, tag = "10")]
1359 pub indexed_vectors_count: ::core::option::Option<u64>,
1360 #[prost(message, repeated, tag = "11")]
1362 pub warnings: ::prost::alloc::vec::Vec<CollectionWarning>,
1363 #[prost(message, optional, tag = "12")]
1365 pub update_queue: ::core::option::Option<UpdateQueueInfo>,
1366}
1367#[derive(Clone, PartialEq, ::prost::Message)]
1368pub struct ChangeAliases {
1369 #[prost(message, repeated, tag = "1")]
1371 pub actions: ::prost::alloc::vec::Vec<AliasOperations>,
1372 #[prost(uint64, optional, tag = "2")]
1375 pub timeout: ::core::option::Option<u64>,
1376}
1377#[derive(Clone, PartialEq, ::prost::Message)]
1378pub struct AliasOperations {
1379 #[prost(oneof = "alias_operations::Action", tags = "1, 2, 3")]
1380 pub action: ::core::option::Option<alias_operations::Action>,
1381}
1382pub mod alias_operations {
1384 #[derive(Clone, PartialEq, ::prost::Oneof)]
1385 pub enum Action {
1386 #[prost(message, tag = "1")]
1387 CreateAlias(super::CreateAlias),
1388 #[prost(message, tag = "2")]
1389 RenameAlias(super::RenameAlias),
1390 #[prost(message, tag = "3")]
1391 DeleteAlias(super::DeleteAlias),
1392 }
1393}
1394#[derive(Clone, PartialEq, ::prost::Message)]
1395pub struct CreateAlias {
1396 #[prost(string, tag = "1")]
1398 pub collection_name: ::prost::alloc::string::String,
1399 #[prost(string, tag = "2")]
1401 pub alias_name: ::prost::alloc::string::String,
1402}
1403#[derive(Clone, PartialEq, ::prost::Message)]
1404pub struct RenameAlias {
1405 #[prost(string, tag = "1")]
1407 pub old_alias_name: ::prost::alloc::string::String,
1408 #[prost(string, tag = "2")]
1410 pub new_alias_name: ::prost::alloc::string::String,
1411}
1412#[derive(Clone, PartialEq, ::prost::Message)]
1413pub struct DeleteAlias {
1414 #[prost(string, tag = "1")]
1416 pub alias_name: ::prost::alloc::string::String,
1417}
1418#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1419pub struct ListAliasesRequest {}
1420#[derive(Clone, PartialEq, ::prost::Message)]
1421pub struct ListCollectionAliasesRequest {
1422 #[prost(string, tag = "1")]
1424 pub collection_name: ::prost::alloc::string::String,
1425}
1426#[derive(Clone, PartialEq, ::prost::Message)]
1427pub struct AliasDescription {
1428 #[prost(string, tag = "1")]
1430 pub alias_name: ::prost::alloc::string::String,
1431 #[prost(string, tag = "2")]
1433 pub collection_name: ::prost::alloc::string::String,
1434}
1435#[derive(Clone, PartialEq, ::prost::Message)]
1436pub struct ListAliasesResponse {
1437 #[prost(message, repeated, tag = "1")]
1438 pub aliases: ::prost::alloc::vec::Vec<AliasDescription>,
1439 #[prost(double, tag = "2")]
1441 pub time: f64,
1442}
1443#[derive(Clone, PartialEq, ::prost::Message)]
1444pub struct CollectionClusterInfoRequest {
1445 #[prost(string, tag = "1")]
1447 pub collection_name: ::prost::alloc::string::String,
1448}
1449#[derive(Clone, PartialEq, ::prost::Message)]
1450pub struct ShardKey {
1451 #[prost(oneof = "shard_key::Key", tags = "1, 2")]
1452 pub key: ::core::option::Option<shard_key::Key>,
1453}
1454pub mod shard_key {
1456 #[derive(Clone, PartialEq, ::prost::Oneof)]
1457 pub enum Key {
1458 #[prost(string, tag = "1")]
1460 Keyword(::prost::alloc::string::String),
1461 #[prost(uint64, tag = "2")]
1463 Number(u64),
1464 }
1465}
1466#[derive(Clone, PartialEq, ::prost::Message)]
1467pub struct LocalShardInfo {
1468 #[prost(uint32, tag = "1")]
1470 pub shard_id: u32,
1471 #[prost(uint64, tag = "2")]
1473 pub points_count: u64,
1474 #[prost(enumeration = "ReplicaState", tag = "3")]
1476 pub state: i32,
1477 #[prost(message, optional, tag = "4")]
1479 pub shard_key: ::core::option::Option<ShardKey>,
1480}
1481#[derive(Clone, PartialEq, ::prost::Message)]
1482pub struct RemoteShardInfo {
1483 #[prost(uint32, tag = "1")]
1485 pub shard_id: u32,
1486 #[prost(uint64, tag = "2")]
1488 pub peer_id: u64,
1489 #[prost(enumeration = "ReplicaState", tag = "3")]
1491 pub state: i32,
1492 #[prost(message, optional, tag = "4")]
1494 pub shard_key: ::core::option::Option<ShardKey>,
1495}
1496#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1497pub struct ShardTransferInfo {
1498 #[prost(uint32, tag = "1")]
1500 pub shard_id: u32,
1501 #[prost(uint32, optional, tag = "5")]
1502 pub to_shard_id: ::core::option::Option<u32>,
1503 #[prost(uint64, tag = "2")]
1504 pub from: u64,
1505 #[prost(uint64, tag = "3")]
1506 pub to: u64,
1507 #[prost(bool, tag = "4")]
1510 pub sync: bool,
1511}
1512#[derive(Clone, PartialEq, ::prost::Message)]
1513pub struct ReshardingInfo {
1514 #[prost(uint32, tag = "1")]
1515 pub shard_id: u32,
1516 #[prost(uint64, tag = "2")]
1517 pub peer_id: u64,
1518 #[prost(message, optional, tag = "3")]
1519 pub shard_key: ::core::option::Option<ShardKey>,
1520 #[prost(enumeration = "ReshardingDirection", tag = "4")]
1521 pub direction: i32,
1522}
1523#[derive(Clone, PartialEq, ::prost::Message)]
1524pub struct CollectionClusterInfoResponse {
1525 #[prost(uint64, tag = "1")]
1527 pub peer_id: u64,
1528 #[prost(uint64, tag = "2")]
1530 pub shard_count: u64,
1531 #[prost(message, repeated, tag = "3")]
1533 pub local_shards: ::prost::alloc::vec::Vec<LocalShardInfo>,
1534 #[prost(message, repeated, tag = "4")]
1536 pub remote_shards: ::prost::alloc::vec::Vec<RemoteShardInfo>,
1537 #[prost(message, repeated, tag = "5")]
1539 pub shard_transfers: ::prost::alloc::vec::Vec<ShardTransferInfo>,
1540 #[prost(message, repeated, tag = "6")]
1542 pub resharding_operations: ::prost::alloc::vec::Vec<ReshardingInfo>,
1543}
1544#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1545pub struct MoveShard {
1546 #[prost(uint32, tag = "1")]
1548 pub shard_id: u32,
1549 #[prost(uint32, optional, tag = "5")]
1550 pub to_shard_id: ::core::option::Option<u32>,
1551 #[prost(uint64, tag = "2")]
1552 pub from_peer_id: u64,
1553 #[prost(uint64, tag = "3")]
1554 pub to_peer_id: u64,
1555 #[prost(enumeration = "ShardTransferMethod", optional, tag = "4")]
1556 pub method: ::core::option::Option<i32>,
1557}
1558#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1559pub struct ReplicateShard {
1560 #[prost(uint32, tag = "1")]
1562 pub shard_id: u32,
1563 #[prost(uint32, optional, tag = "5")]
1564 pub to_shard_id: ::core::option::Option<u32>,
1565 #[prost(uint64, tag = "2")]
1566 pub from_peer_id: u64,
1567 #[prost(uint64, tag = "3")]
1568 pub to_peer_id: u64,
1569 #[prost(enumeration = "ShardTransferMethod", optional, tag = "4")]
1570 pub method: ::core::option::Option<i32>,
1571}
1572#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1573pub struct AbortShardTransfer {
1574 #[prost(uint32, tag = "1")]
1576 pub shard_id: u32,
1577 #[prost(uint32, optional, tag = "4")]
1578 pub to_shard_id: ::core::option::Option<u32>,
1579 #[prost(uint64, tag = "2")]
1580 pub from_peer_id: u64,
1581 #[prost(uint64, tag = "3")]
1582 pub to_peer_id: u64,
1583}
1584#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1585pub struct RestartTransfer {
1586 #[prost(uint32, tag = "1")]
1588 pub shard_id: u32,
1589 #[prost(uint32, optional, tag = "5")]
1590 pub to_shard_id: ::core::option::Option<u32>,
1591 #[prost(uint64, tag = "2")]
1592 pub from_peer_id: u64,
1593 #[prost(uint64, tag = "3")]
1594 pub to_peer_id: u64,
1595 #[prost(enumeration = "ShardTransferMethod", tag = "4")]
1596 pub method: i32,
1597}
1598#[derive(Clone, PartialEq, ::prost::Message)]
1599pub struct ReplicatePoints {
1600 #[prost(message, optional, tag = "1")]
1602 pub from_shard_key: ::core::option::Option<ShardKey>,
1603 #[prost(message, optional, tag = "2")]
1605 pub to_shard_key: ::core::option::Option<ShardKey>,
1606 #[prost(message, optional, tag = "3")]
1608 pub filter: ::core::option::Option<Filter>,
1609}
1610#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1611pub struct Replica {
1612 #[prost(uint32, tag = "1")]
1613 pub shard_id: u32,
1614 #[prost(uint64, tag = "2")]
1615 pub peer_id: u64,
1616}
1617#[derive(Clone, PartialEq, ::prost::Message)]
1618pub struct CreateShardKey {
1619 #[prost(message, optional, tag = "1")]
1621 pub shard_key: ::core::option::Option<ShardKey>,
1622 #[prost(uint32, optional, tag = "2")]
1624 pub shards_number: ::core::option::Option<u32>,
1625 #[prost(uint32, optional, tag = "3")]
1627 pub replication_factor: ::core::option::Option<u32>,
1628 #[prost(uint64, repeated, tag = "4")]
1630 pub placement: ::prost::alloc::vec::Vec<u64>,
1631 #[prost(enumeration = "ReplicaState", optional, tag = "5")]
1633 pub initial_state: ::core::option::Option<i32>,
1634}
1635#[derive(Clone, PartialEq, ::prost::Message)]
1636pub struct DeleteShardKey {
1637 #[prost(message, optional, tag = "1")]
1639 pub shard_key: ::core::option::Option<ShardKey>,
1640}
1641#[derive(Clone, PartialEq, ::prost::Message)]
1642pub struct UpdateCollectionClusterSetupRequest {
1643 #[prost(string, tag = "1")]
1645 pub collection_name: ::prost::alloc::string::String,
1646 #[prost(uint64, optional, tag = "6")]
1649 pub timeout: ::core::option::Option<u64>,
1650 #[prost(
1651 oneof = "update_collection_cluster_setup_request::Operation",
1652 tags = "2, 3, 4, 5, 7, 8, 9, 10"
1653 )]
1654 pub operation: ::core::option::Option<
1655 update_collection_cluster_setup_request::Operation,
1656 >,
1657}
1658pub mod update_collection_cluster_setup_request {
1660 #[derive(Clone, PartialEq, ::prost::Oneof)]
1661 pub enum Operation {
1662 #[prost(message, tag = "2")]
1663 MoveShard(super::MoveShard),
1664 #[prost(message, tag = "3")]
1665 ReplicateShard(super::ReplicateShard),
1666 #[prost(message, tag = "4")]
1667 AbortTransfer(super::AbortShardTransfer),
1668 #[prost(message, tag = "5")]
1669 DropReplica(super::Replica),
1670 #[prost(message, tag = "7")]
1671 CreateShardKey(super::CreateShardKey),
1672 #[prost(message, tag = "8")]
1673 DeleteShardKey(super::DeleteShardKey),
1674 #[prost(message, tag = "9")]
1675 RestartTransfer(super::RestartTransfer),
1676 #[prost(message, tag = "10")]
1677 ReplicatePoints(super::ReplicatePoints),
1678 }
1679}
1680#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1681pub struct UpdateCollectionClusterSetupResponse {
1682 #[prost(bool, tag = "1")]
1683 pub result: bool,
1684}
1685#[derive(Clone, PartialEq, ::prost::Message)]
1686pub struct CreateShardKeyRequest {
1687 #[prost(string, tag = "1")]
1689 pub collection_name: ::prost::alloc::string::String,
1690 #[prost(message, optional, tag = "2")]
1692 pub request: ::core::option::Option<CreateShardKey>,
1693 #[prost(uint64, optional, tag = "3")]
1696 pub timeout: ::core::option::Option<u64>,
1697}
1698#[derive(Clone, PartialEq, ::prost::Message)]
1699pub struct DeleteShardKeyRequest {
1700 #[prost(string, tag = "1")]
1702 pub collection_name: ::prost::alloc::string::String,
1703 #[prost(message, optional, tag = "2")]
1705 pub request: ::core::option::Option<DeleteShardKey>,
1706 #[prost(uint64, optional, tag = "3")]
1709 pub timeout: ::core::option::Option<u64>,
1710}
1711#[derive(Clone, PartialEq, ::prost::Message)]
1712pub struct ListShardKeysRequest {
1713 #[prost(string, tag = "1")]
1715 pub collection_name: ::prost::alloc::string::String,
1716}
1717#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1718pub struct CreateShardKeyResponse {
1719 #[prost(bool, tag = "1")]
1720 pub result: bool,
1721}
1722#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1723pub struct DeleteShardKeyResponse {
1724 #[prost(bool, tag = "1")]
1725 pub result: bool,
1726}
1727#[derive(Clone, PartialEq, ::prost::Message)]
1728pub struct ShardKeyDescription {
1729 #[prost(message, optional, tag = "1")]
1730 pub key: ::core::option::Option<ShardKey>,
1731}
1732#[derive(Clone, PartialEq, ::prost::Message)]
1733pub struct ListShardKeysResponse {
1734 #[prost(message, repeated, tag = "1")]
1735 pub shard_keys: ::prost::alloc::vec::Vec<ShardKeyDescription>,
1736 #[prost(double, tag = "2")]
1738 pub time: f64,
1739}
1740#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1741#[repr(i32)]
1742pub enum Datatype {
1743 Default = 0,
1744 Float32 = 1,
1745 Uint8 = 2,
1746 Float16 = 3,
1747}
1748impl Datatype {
1749 pub fn as_str_name(&self) -> &'static str {
1754 match self {
1755 Self::Default => "Default",
1756 Self::Float32 => "Float32",
1757 Self::Uint8 => "Uint8",
1758 Self::Float16 => "Float16",
1759 }
1760 }
1761 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1763 match value {
1764 "Default" => Some(Self::Default),
1765 "Float32" => Some(Self::Float32),
1766 "Uint8" => Some(Self::Uint8),
1767 "Float16" => Some(Self::Float16),
1768 _ => None,
1769 }
1770 }
1771}
1772#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1773#[repr(i32)]
1774pub enum Modifier {
1775 None = 0,
1776 Idf = 1,
1778}
1779impl Modifier {
1780 pub fn as_str_name(&self) -> &'static str {
1785 match self {
1786 Self::None => "None",
1787 Self::Idf => "Idf",
1788 }
1789 }
1790 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1792 match value {
1793 "None" => Some(Self::None),
1794 "Idf" => Some(Self::Idf),
1795 _ => None,
1796 }
1797 }
1798}
1799#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1800#[repr(i32)]
1801pub enum MultiVectorComparator {
1802 MaxSim = 0,
1803}
1804impl MultiVectorComparator {
1805 pub fn as_str_name(&self) -> &'static str {
1810 match self {
1811 Self::MaxSim => "MaxSim",
1812 }
1813 }
1814 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1816 match value {
1817 "MaxSim" => Some(Self::MaxSim),
1818 _ => None,
1819 }
1820 }
1821}
1822#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1823#[repr(i32)]
1824pub enum Distance {
1825 UnknownDistance = 0,
1826 Cosine = 1,
1827 Euclid = 2,
1828 Dot = 3,
1829 Manhattan = 4,
1830}
1831impl Distance {
1832 pub fn as_str_name(&self) -> &'static str {
1837 match self {
1838 Self::UnknownDistance => "UnknownDistance",
1839 Self::Cosine => "Cosine",
1840 Self::Euclid => "Euclid",
1841 Self::Dot => "Dot",
1842 Self::Manhattan => "Manhattan",
1843 }
1844 }
1845 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1847 match value {
1848 "UnknownDistance" => Some(Self::UnknownDistance),
1849 "Cosine" => Some(Self::Cosine),
1850 "Euclid" => Some(Self::Euclid),
1851 "Dot" => Some(Self::Dot),
1852 "Manhattan" => Some(Self::Manhattan),
1853 _ => None,
1854 }
1855 }
1856}
1857#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1858#[repr(i32)]
1859pub enum CollectionStatus {
1860 UnknownCollectionStatus = 0,
1861 Green = 1,
1863 Yellow = 2,
1865 Red = 3,
1867 Grey = 4,
1869}
1870impl CollectionStatus {
1871 pub fn as_str_name(&self) -> &'static str {
1876 match self {
1877 Self::UnknownCollectionStatus => "UnknownCollectionStatus",
1878 Self::Green => "Green",
1879 Self::Yellow => "Yellow",
1880 Self::Red => "Red",
1881 Self::Grey => "Grey",
1882 }
1883 }
1884 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1886 match value {
1887 "UnknownCollectionStatus" => Some(Self::UnknownCollectionStatus),
1888 "Green" => Some(Self::Green),
1889 "Yellow" => Some(Self::Yellow),
1890 "Red" => Some(Self::Red),
1891 "Grey" => Some(Self::Grey),
1892 _ => None,
1893 }
1894 }
1895}
1896#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1897#[repr(i32)]
1898pub enum PayloadSchemaType {
1899 UnknownType = 0,
1900 Keyword = 1,
1901 Integer = 2,
1902 Float = 3,
1903 Geo = 4,
1904 Text = 5,
1905 Bool = 6,
1906 Datetime = 7,
1907 Uuid = 8,
1908}
1909impl PayloadSchemaType {
1910 pub fn as_str_name(&self) -> &'static str {
1915 match self {
1916 Self::UnknownType => "UnknownType",
1917 Self::Keyword => "Keyword",
1918 Self::Integer => "Integer",
1919 Self::Float => "Float",
1920 Self::Geo => "Geo",
1921 Self::Text => "Text",
1922 Self::Bool => "Bool",
1923 Self::Datetime => "Datetime",
1924 Self::Uuid => "Uuid",
1925 }
1926 }
1927 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1929 match value {
1930 "UnknownType" => Some(Self::UnknownType),
1931 "Keyword" => Some(Self::Keyword),
1932 "Integer" => Some(Self::Integer),
1933 "Float" => Some(Self::Float),
1934 "Geo" => Some(Self::Geo),
1935 "Text" => Some(Self::Text),
1936 "Bool" => Some(Self::Bool),
1937 "Datetime" => Some(Self::Datetime),
1938 "Uuid" => Some(Self::Uuid),
1939 _ => None,
1940 }
1941 }
1942}
1943#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1944#[repr(i32)]
1945pub enum QuantizationType {
1946 UnknownQuantization = 0,
1947 Int8 = 1,
1948}
1949impl QuantizationType {
1950 pub fn as_str_name(&self) -> &'static str {
1955 match self {
1956 Self::UnknownQuantization => "UnknownQuantization",
1957 Self::Int8 => "Int8",
1958 }
1959 }
1960 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1962 match value {
1963 "UnknownQuantization" => Some(Self::UnknownQuantization),
1964 "Int8" => Some(Self::Int8),
1965 _ => None,
1966 }
1967 }
1968}
1969#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1970#[repr(i32)]
1971pub enum CompressionRatio {
1972 X4 = 0,
1973 X8 = 1,
1974 X16 = 2,
1975 X32 = 3,
1976 X64 = 4,
1977}
1978impl CompressionRatio {
1979 pub fn as_str_name(&self) -> &'static str {
1984 match self {
1985 Self::X4 => "x4",
1986 Self::X8 => "x8",
1987 Self::X16 => "x16",
1988 Self::X32 => "x32",
1989 Self::X64 => "x64",
1990 }
1991 }
1992 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1994 match value {
1995 "x4" => Some(Self::X4),
1996 "x8" => Some(Self::X8),
1997 "x16" => Some(Self::X16),
1998 "x32" => Some(Self::X32),
1999 "x64" => Some(Self::X64),
2000 _ => None,
2001 }
2002 }
2003}
2004#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2005#[repr(i32)]
2006pub enum BinaryQuantizationEncoding {
2007 OneBit = 0,
2008 TwoBits = 1,
2009 OneAndHalfBits = 2,
2010}
2011impl BinaryQuantizationEncoding {
2012 pub fn as_str_name(&self) -> &'static str {
2017 match self {
2018 Self::OneBit => "OneBit",
2019 Self::TwoBits => "TwoBits",
2020 Self::OneAndHalfBits => "OneAndHalfBits",
2021 }
2022 }
2023 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2025 match value {
2026 "OneBit" => Some(Self::OneBit),
2027 "TwoBits" => Some(Self::TwoBits),
2028 "OneAndHalfBits" => Some(Self::OneAndHalfBits),
2029 _ => None,
2030 }
2031 }
2032}
2033#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2034#[repr(i32)]
2035pub enum TurboQuantBitSize {
2036 Bits1 = 0,
2037 Bits15 = 1,
2039 Bits2 = 2,
2040 Bits4 = 3,
2041}
2042impl TurboQuantBitSize {
2043 pub fn as_str_name(&self) -> &'static str {
2048 match self {
2049 Self::Bits1 => "Bits1",
2050 Self::Bits15 => "Bits1_5",
2051 Self::Bits2 => "Bits2",
2052 Self::Bits4 => "Bits4",
2053 }
2054 }
2055 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2057 match value {
2058 "Bits1" => Some(Self::Bits1),
2059 "Bits1_5" => Some(Self::Bits15),
2060 "Bits2" => Some(Self::Bits2),
2061 "Bits4" => Some(Self::Bits4),
2062 _ => None,
2063 }
2064 }
2065}
2066#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2067#[repr(i32)]
2068pub enum ShardingMethod {
2069 Auto = 0,
2071 Custom = 1,
2073}
2074impl ShardingMethod {
2075 pub fn as_str_name(&self) -> &'static str {
2080 match self {
2081 Self::Auto => "Auto",
2082 Self::Custom => "Custom",
2083 }
2084 }
2085 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2087 match value {
2088 "Auto" => Some(Self::Auto),
2089 "Custom" => Some(Self::Custom),
2090 _ => None,
2091 }
2092 }
2093}
2094#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2095#[repr(i32)]
2096pub enum TokenizerType {
2097 Unknown = 0,
2098 Prefix = 1,
2099 Whitespace = 2,
2100 Word = 3,
2101 Multilingual = 4,
2102}
2103impl TokenizerType {
2104 pub fn as_str_name(&self) -> &'static str {
2109 match self {
2110 Self::Unknown => "Unknown",
2111 Self::Prefix => "Prefix",
2112 Self::Whitespace => "Whitespace",
2113 Self::Word => "Word",
2114 Self::Multilingual => "Multilingual",
2115 }
2116 }
2117 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2119 match value {
2120 "Unknown" => Some(Self::Unknown),
2121 "Prefix" => Some(Self::Prefix),
2122 "Whitespace" => Some(Self::Whitespace),
2123 "Word" => Some(Self::Word),
2124 "Multilingual" => Some(Self::Multilingual),
2125 _ => None,
2126 }
2127 }
2128}
2129#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2130#[repr(i32)]
2131pub enum ReplicaState {
2132 Active = 0,
2134 Dead = 1,
2136 Partial = 2,
2138 Initializing = 3,
2140 Listener = 4,
2143 PartialSnapshot = 5,
2146 Recovery = 6,
2149 Resharding = 7,
2151 ReshardingScaleDown = 8,
2153 ActiveRead = 9,
2155 ManualRecovery = 10,
2161}
2162impl ReplicaState {
2163 pub fn as_str_name(&self) -> &'static str {
2168 match self {
2169 Self::Active => "Active",
2170 Self::Dead => "Dead",
2171 Self::Partial => "Partial",
2172 Self::Initializing => "Initializing",
2173 Self::Listener => "Listener",
2174 Self::PartialSnapshot => "PartialSnapshot",
2175 Self::Recovery => "Recovery",
2176 Self::Resharding => "Resharding",
2177 Self::ReshardingScaleDown => "ReshardingScaleDown",
2178 Self::ActiveRead => "ActiveRead",
2179 Self::ManualRecovery => "ManualRecovery",
2180 }
2181 }
2182 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2184 match value {
2185 "Active" => Some(Self::Active),
2186 "Dead" => Some(Self::Dead),
2187 "Partial" => Some(Self::Partial),
2188 "Initializing" => Some(Self::Initializing),
2189 "Listener" => Some(Self::Listener),
2190 "PartialSnapshot" => Some(Self::PartialSnapshot),
2191 "Recovery" => Some(Self::Recovery),
2192 "Resharding" => Some(Self::Resharding),
2193 "ReshardingScaleDown" => Some(Self::ReshardingScaleDown),
2194 "ActiveRead" => Some(Self::ActiveRead),
2195 "ManualRecovery" => Some(Self::ManualRecovery),
2196 _ => None,
2197 }
2198 }
2199}
2200#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2202#[repr(i32)]
2203pub enum ReshardingDirection {
2204 Up = 0,
2206 Down = 1,
2208}
2209impl ReshardingDirection {
2210 pub fn as_str_name(&self) -> &'static str {
2215 match self {
2216 Self::Up => "Up",
2217 Self::Down => "Down",
2218 }
2219 }
2220 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2222 match value {
2223 "Up" => Some(Self::Up),
2224 "Down" => Some(Self::Down),
2225 _ => None,
2226 }
2227 }
2228}
2229#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2230#[repr(i32)]
2231pub enum ShardTransferMethod {
2232 StreamRecords = 0,
2234 Snapshot = 1,
2236 WalDelta = 2,
2238 ReshardingStreamRecords = 3,
2240}
2241impl ShardTransferMethod {
2242 pub fn as_str_name(&self) -> &'static str {
2247 match self {
2248 Self::StreamRecords => "StreamRecords",
2249 Self::Snapshot => "Snapshot",
2250 Self::WalDelta => "WalDelta",
2251 Self::ReshardingStreamRecords => "ReshardingStreamRecords",
2252 }
2253 }
2254 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2256 match value {
2257 "StreamRecords" => Some(Self::StreamRecords),
2258 "Snapshot" => Some(Self::Snapshot),
2259 "WalDelta" => Some(Self::WalDelta),
2260 "ReshardingStreamRecords" => Some(Self::ReshardingStreamRecords),
2261 _ => None,
2262 }
2263 }
2264}
2265pub mod collections_client {
2267 #![allow(
2268 unused_variables,
2269 dead_code,
2270 missing_docs,
2271 clippy::wildcard_imports,
2272 clippy::let_unit_value,
2273 )]
2274 use tonic::codegen::*;
2275 use tonic::codegen::http::Uri;
2276 #[derive(Debug, Clone)]
2277 pub struct CollectionsClient<T> {
2278 inner: tonic::client::Grpc<T>,
2279 }
2280 impl CollectionsClient<tonic::transport::Channel> {
2281 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
2283 where
2284 D: TryInto<tonic::transport::Endpoint>,
2285 D::Error: Into<StdError>,
2286 {
2287 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
2288 Ok(Self::new(conn))
2289 }
2290 }
2291 impl<T> CollectionsClient<T>
2292 where
2293 T: tonic::client::GrpcService<tonic::body::BoxBody>,
2294 T::Error: Into<StdError>,
2295 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
2296 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
2297 {
2298 pub fn new(inner: T) -> Self {
2299 let inner = tonic::client::Grpc::new(inner);
2300 Self { inner }
2301 }
2302 pub fn with_origin(inner: T, origin: Uri) -> Self {
2303 let inner = tonic::client::Grpc::with_origin(inner, origin);
2304 Self { inner }
2305 }
2306 pub fn with_interceptor<F>(
2307 inner: T,
2308 interceptor: F,
2309 ) -> CollectionsClient<InterceptedService<T, F>>
2310 where
2311 F: tonic::service::Interceptor,
2312 T::ResponseBody: Default,
2313 T: tonic::codegen::Service<
2314 http::Request<tonic::body::BoxBody>,
2315 Response = http::Response<
2316 <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
2317 >,
2318 >,
2319 <T as tonic::codegen::Service<
2320 http::Request<tonic::body::BoxBody>,
2321 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
2322 {
2323 CollectionsClient::new(InterceptedService::new(inner, interceptor))
2324 }
2325 #[must_use]
2330 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
2331 self.inner = self.inner.send_compressed(encoding);
2332 self
2333 }
2334 #[must_use]
2336 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
2337 self.inner = self.inner.accept_compressed(encoding);
2338 self
2339 }
2340 #[must_use]
2344 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
2345 self.inner = self.inner.max_decoding_message_size(limit);
2346 self
2347 }
2348 #[must_use]
2352 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
2353 self.inner = self.inner.max_encoding_message_size(limit);
2354 self
2355 }
2356 pub async fn get(
2358 &mut self,
2359 request: impl tonic::IntoRequest<super::GetCollectionInfoRequest>,
2360 ) -> std::result::Result<
2361 tonic::Response<super::GetCollectionInfoResponse>,
2362 tonic::Status,
2363 > {
2364 self.inner
2365 .ready()
2366 .await
2367 .map_err(|e| {
2368 tonic::Status::unknown(
2369 format!("Service was not ready: {}", e.into()),
2370 )
2371 })?;
2372 let codec = tonic::codec::ProstCodec::default();
2373 let path = http::uri::PathAndQuery::from_static("/qdrant.Collections/Get");
2374 let mut req = request.into_request();
2375 req.extensions_mut().insert(GrpcMethod::new("qdrant.Collections", "Get"));
2376 self.inner.unary(req, path, codec).await
2377 }
2378 pub async fn list(
2380 &mut self,
2381 request: impl tonic::IntoRequest<super::ListCollectionsRequest>,
2382 ) -> std::result::Result<
2383 tonic::Response<super::ListCollectionsResponse>,
2384 tonic::Status,
2385 > {
2386 self.inner
2387 .ready()
2388 .await
2389 .map_err(|e| {
2390 tonic::Status::unknown(
2391 format!("Service was not ready: {}", e.into()),
2392 )
2393 })?;
2394 let codec = tonic::codec::ProstCodec::default();
2395 let path = http::uri::PathAndQuery::from_static("/qdrant.Collections/List");
2396 let mut req = request.into_request();
2397 req.extensions_mut().insert(GrpcMethod::new("qdrant.Collections", "List"));
2398 self.inner.unary(req, path, codec).await
2399 }
2400 pub async fn create(
2402 &mut self,
2403 request: impl tonic::IntoRequest<super::CreateCollection>,
2404 ) -> std::result::Result<
2405 tonic::Response<super::CollectionOperationResponse>,
2406 tonic::Status,
2407 > {
2408 self.inner
2409 .ready()
2410 .await
2411 .map_err(|e| {
2412 tonic::Status::unknown(
2413 format!("Service was not ready: {}", e.into()),
2414 )
2415 })?;
2416 let codec = tonic::codec::ProstCodec::default();
2417 let path = http::uri::PathAndQuery::from_static(
2418 "/qdrant.Collections/Create",
2419 );
2420 let mut req = request.into_request();
2421 req.extensions_mut().insert(GrpcMethod::new("qdrant.Collections", "Create"));
2422 self.inner.unary(req, path, codec).await
2423 }
2424 pub async fn update(
2426 &mut self,
2427 request: impl tonic::IntoRequest<super::UpdateCollection>,
2428 ) -> std::result::Result<
2429 tonic::Response<super::CollectionOperationResponse>,
2430 tonic::Status,
2431 > {
2432 self.inner
2433 .ready()
2434 .await
2435 .map_err(|e| {
2436 tonic::Status::unknown(
2437 format!("Service was not ready: {}", e.into()),
2438 )
2439 })?;
2440 let codec = tonic::codec::ProstCodec::default();
2441 let path = http::uri::PathAndQuery::from_static(
2442 "/qdrant.Collections/Update",
2443 );
2444 let mut req = request.into_request();
2445 req.extensions_mut().insert(GrpcMethod::new("qdrant.Collections", "Update"));
2446 self.inner.unary(req, path, codec).await
2447 }
2448 pub async fn delete(
2450 &mut self,
2451 request: impl tonic::IntoRequest<super::DeleteCollection>,
2452 ) -> std::result::Result<
2453 tonic::Response<super::CollectionOperationResponse>,
2454 tonic::Status,
2455 > {
2456 self.inner
2457 .ready()
2458 .await
2459 .map_err(|e| {
2460 tonic::Status::unknown(
2461 format!("Service was not ready: {}", e.into()),
2462 )
2463 })?;
2464 let codec = tonic::codec::ProstCodec::default();
2465 let path = http::uri::PathAndQuery::from_static(
2466 "/qdrant.Collections/Delete",
2467 );
2468 let mut req = request.into_request();
2469 req.extensions_mut().insert(GrpcMethod::new("qdrant.Collections", "Delete"));
2470 self.inner.unary(req, path, codec).await
2471 }
2472 pub async fn update_aliases(
2474 &mut self,
2475 request: impl tonic::IntoRequest<super::ChangeAliases>,
2476 ) -> std::result::Result<
2477 tonic::Response<super::CollectionOperationResponse>,
2478 tonic::Status,
2479 > {
2480 self.inner
2481 .ready()
2482 .await
2483 .map_err(|e| {
2484 tonic::Status::unknown(
2485 format!("Service was not ready: {}", e.into()),
2486 )
2487 })?;
2488 let codec = tonic::codec::ProstCodec::default();
2489 let path = http::uri::PathAndQuery::from_static(
2490 "/qdrant.Collections/UpdateAliases",
2491 );
2492 let mut req = request.into_request();
2493 req.extensions_mut()
2494 .insert(GrpcMethod::new("qdrant.Collections", "UpdateAliases"));
2495 self.inner.unary(req, path, codec).await
2496 }
2497 pub async fn list_collection_aliases(
2499 &mut self,
2500 request: impl tonic::IntoRequest<super::ListCollectionAliasesRequest>,
2501 ) -> std::result::Result<
2502 tonic::Response<super::ListAliasesResponse>,
2503 tonic::Status,
2504 > {
2505 self.inner
2506 .ready()
2507 .await
2508 .map_err(|e| {
2509 tonic::Status::unknown(
2510 format!("Service was not ready: {}", e.into()),
2511 )
2512 })?;
2513 let codec = tonic::codec::ProstCodec::default();
2514 let path = http::uri::PathAndQuery::from_static(
2515 "/qdrant.Collections/ListCollectionAliases",
2516 );
2517 let mut req = request.into_request();
2518 req.extensions_mut()
2519 .insert(GrpcMethod::new("qdrant.Collections", "ListCollectionAliases"));
2520 self.inner.unary(req, path, codec).await
2521 }
2522 pub async fn list_aliases(
2524 &mut self,
2525 request: impl tonic::IntoRequest<super::ListAliasesRequest>,
2526 ) -> std::result::Result<
2527 tonic::Response<super::ListAliasesResponse>,
2528 tonic::Status,
2529 > {
2530 self.inner
2531 .ready()
2532 .await
2533 .map_err(|e| {
2534 tonic::Status::unknown(
2535 format!("Service was not ready: {}", e.into()),
2536 )
2537 })?;
2538 let codec = tonic::codec::ProstCodec::default();
2539 let path = http::uri::PathAndQuery::from_static(
2540 "/qdrant.Collections/ListAliases",
2541 );
2542 let mut req = request.into_request();
2543 req.extensions_mut()
2544 .insert(GrpcMethod::new("qdrant.Collections", "ListAliases"));
2545 self.inner.unary(req, path, codec).await
2546 }
2547 pub async fn collection_cluster_info(
2549 &mut self,
2550 request: impl tonic::IntoRequest<super::CollectionClusterInfoRequest>,
2551 ) -> std::result::Result<
2552 tonic::Response<super::CollectionClusterInfoResponse>,
2553 tonic::Status,
2554 > {
2555 self.inner
2556 .ready()
2557 .await
2558 .map_err(|e| {
2559 tonic::Status::unknown(
2560 format!("Service was not ready: {}", e.into()),
2561 )
2562 })?;
2563 let codec = tonic::codec::ProstCodec::default();
2564 let path = http::uri::PathAndQuery::from_static(
2565 "/qdrant.Collections/CollectionClusterInfo",
2566 );
2567 let mut req = request.into_request();
2568 req.extensions_mut()
2569 .insert(GrpcMethod::new("qdrant.Collections", "CollectionClusterInfo"));
2570 self.inner.unary(req, path, codec).await
2571 }
2572 pub async fn collection_exists(
2574 &mut self,
2575 request: impl tonic::IntoRequest<super::CollectionExistsRequest>,
2576 ) -> std::result::Result<
2577 tonic::Response<super::CollectionExistsResponse>,
2578 tonic::Status,
2579 > {
2580 self.inner
2581 .ready()
2582 .await
2583 .map_err(|e| {
2584 tonic::Status::unknown(
2585 format!("Service was not ready: {}", e.into()),
2586 )
2587 })?;
2588 let codec = tonic::codec::ProstCodec::default();
2589 let path = http::uri::PathAndQuery::from_static(
2590 "/qdrant.Collections/CollectionExists",
2591 );
2592 let mut req = request.into_request();
2593 req.extensions_mut()
2594 .insert(GrpcMethod::new("qdrant.Collections", "CollectionExists"));
2595 self.inner.unary(req, path, codec).await
2596 }
2597 pub async fn update_collection_cluster_setup(
2599 &mut self,
2600 request: impl tonic::IntoRequest<super::UpdateCollectionClusterSetupRequest>,
2601 ) -> std::result::Result<
2602 tonic::Response<super::UpdateCollectionClusterSetupResponse>,
2603 tonic::Status,
2604 > {
2605 self.inner
2606 .ready()
2607 .await
2608 .map_err(|e| {
2609 tonic::Status::unknown(
2610 format!("Service was not ready: {}", e.into()),
2611 )
2612 })?;
2613 let codec = tonic::codec::ProstCodec::default();
2614 let path = http::uri::PathAndQuery::from_static(
2615 "/qdrant.Collections/UpdateCollectionClusterSetup",
2616 );
2617 let mut req = request.into_request();
2618 req.extensions_mut()
2619 .insert(
2620 GrpcMethod::new("qdrant.Collections", "UpdateCollectionClusterSetup"),
2621 );
2622 self.inner.unary(req, path, codec).await
2623 }
2624 pub async fn create_shard_key(
2626 &mut self,
2627 request: impl tonic::IntoRequest<super::CreateShardKeyRequest>,
2628 ) -> std::result::Result<
2629 tonic::Response<super::CreateShardKeyResponse>,
2630 tonic::Status,
2631 > {
2632 self.inner
2633 .ready()
2634 .await
2635 .map_err(|e| {
2636 tonic::Status::unknown(
2637 format!("Service was not ready: {}", e.into()),
2638 )
2639 })?;
2640 let codec = tonic::codec::ProstCodec::default();
2641 let path = http::uri::PathAndQuery::from_static(
2642 "/qdrant.Collections/CreateShardKey",
2643 );
2644 let mut req = request.into_request();
2645 req.extensions_mut()
2646 .insert(GrpcMethod::new("qdrant.Collections", "CreateShardKey"));
2647 self.inner.unary(req, path, codec).await
2648 }
2649 pub async fn delete_shard_key(
2651 &mut self,
2652 request: impl tonic::IntoRequest<super::DeleteShardKeyRequest>,
2653 ) -> std::result::Result<
2654 tonic::Response<super::DeleteShardKeyResponse>,
2655 tonic::Status,
2656 > {
2657 self.inner
2658 .ready()
2659 .await
2660 .map_err(|e| {
2661 tonic::Status::unknown(
2662 format!("Service was not ready: {}", e.into()),
2663 )
2664 })?;
2665 let codec = tonic::codec::ProstCodec::default();
2666 let path = http::uri::PathAndQuery::from_static(
2667 "/qdrant.Collections/DeleteShardKey",
2668 );
2669 let mut req = request.into_request();
2670 req.extensions_mut()
2671 .insert(GrpcMethod::new("qdrant.Collections", "DeleteShardKey"));
2672 self.inner.unary(req, path, codec).await
2673 }
2674 pub async fn list_shard_keys(
2676 &mut self,
2677 request: impl tonic::IntoRequest<super::ListShardKeysRequest>,
2678 ) -> std::result::Result<
2679 tonic::Response<super::ListShardKeysResponse>,
2680 tonic::Status,
2681 > {
2682 self.inner
2683 .ready()
2684 .await
2685 .map_err(|e| {
2686 tonic::Status::unknown(
2687 format!("Service was not ready: {}", e.into()),
2688 )
2689 })?;
2690 let codec = tonic::codec::ProstCodec::default();
2691 let path = http::uri::PathAndQuery::from_static(
2692 "/qdrant.Collections/ListShardKeys",
2693 );
2694 let mut req = request.into_request();
2695 req.extensions_mut()
2696 .insert(GrpcMethod::new("qdrant.Collections", "ListShardKeys"));
2697 self.inner.unary(req, path, codec).await
2698 }
2699 }
2700}
2701pub mod collections_server {
2703 #![allow(
2704 unused_variables,
2705 dead_code,
2706 missing_docs,
2707 clippy::wildcard_imports,
2708 clippy::let_unit_value,
2709 )]
2710 use tonic::codegen::*;
2711 #[async_trait]
2713 pub trait Collections: std::marker::Send + std::marker::Sync + 'static {
2714 async fn get(
2716 &self,
2717 request: tonic::Request<super::GetCollectionInfoRequest>,
2718 ) -> std::result::Result<
2719 tonic::Response<super::GetCollectionInfoResponse>,
2720 tonic::Status,
2721 >;
2722 async fn list(
2724 &self,
2725 request: tonic::Request<super::ListCollectionsRequest>,
2726 ) -> std::result::Result<
2727 tonic::Response<super::ListCollectionsResponse>,
2728 tonic::Status,
2729 >;
2730 async fn create(
2732 &self,
2733 request: tonic::Request<super::CreateCollection>,
2734 ) -> std::result::Result<
2735 tonic::Response<super::CollectionOperationResponse>,
2736 tonic::Status,
2737 >;
2738 async fn update(
2740 &self,
2741 request: tonic::Request<super::UpdateCollection>,
2742 ) -> std::result::Result<
2743 tonic::Response<super::CollectionOperationResponse>,
2744 tonic::Status,
2745 >;
2746 async fn delete(
2748 &self,
2749 request: tonic::Request<super::DeleteCollection>,
2750 ) -> std::result::Result<
2751 tonic::Response<super::CollectionOperationResponse>,
2752 tonic::Status,
2753 >;
2754 async fn update_aliases(
2756 &self,
2757 request: tonic::Request<super::ChangeAliases>,
2758 ) -> std::result::Result<
2759 tonic::Response<super::CollectionOperationResponse>,
2760 tonic::Status,
2761 >;
2762 async fn list_collection_aliases(
2764 &self,
2765 request: tonic::Request<super::ListCollectionAliasesRequest>,
2766 ) -> std::result::Result<
2767 tonic::Response<super::ListAliasesResponse>,
2768 tonic::Status,
2769 >;
2770 async fn list_aliases(
2772 &self,
2773 request: tonic::Request<super::ListAliasesRequest>,
2774 ) -> std::result::Result<
2775 tonic::Response<super::ListAliasesResponse>,
2776 tonic::Status,
2777 >;
2778 async fn collection_cluster_info(
2780 &self,
2781 request: tonic::Request<super::CollectionClusterInfoRequest>,
2782 ) -> std::result::Result<
2783 tonic::Response<super::CollectionClusterInfoResponse>,
2784 tonic::Status,
2785 >;
2786 async fn collection_exists(
2788 &self,
2789 request: tonic::Request<super::CollectionExistsRequest>,
2790 ) -> std::result::Result<
2791 tonic::Response<super::CollectionExistsResponse>,
2792 tonic::Status,
2793 >;
2794 async fn update_collection_cluster_setup(
2796 &self,
2797 request: tonic::Request<super::UpdateCollectionClusterSetupRequest>,
2798 ) -> std::result::Result<
2799 tonic::Response<super::UpdateCollectionClusterSetupResponse>,
2800 tonic::Status,
2801 >;
2802 async fn create_shard_key(
2804 &self,
2805 request: tonic::Request<super::CreateShardKeyRequest>,
2806 ) -> std::result::Result<
2807 tonic::Response<super::CreateShardKeyResponse>,
2808 tonic::Status,
2809 >;
2810 async fn delete_shard_key(
2812 &self,
2813 request: tonic::Request<super::DeleteShardKeyRequest>,
2814 ) -> std::result::Result<
2815 tonic::Response<super::DeleteShardKeyResponse>,
2816 tonic::Status,
2817 >;
2818 async fn list_shard_keys(
2820 &self,
2821 request: tonic::Request<super::ListShardKeysRequest>,
2822 ) -> std::result::Result<
2823 tonic::Response<super::ListShardKeysResponse>,
2824 tonic::Status,
2825 >;
2826 }
2827 #[derive(Debug)]
2828 pub struct CollectionsServer<T> {
2829 inner: Arc<T>,
2830 accept_compression_encodings: EnabledCompressionEncodings,
2831 send_compression_encodings: EnabledCompressionEncodings,
2832 max_decoding_message_size: Option<usize>,
2833 max_encoding_message_size: Option<usize>,
2834 }
2835 impl<T> CollectionsServer<T> {
2836 pub fn new(inner: T) -> Self {
2837 Self::from_arc(Arc::new(inner))
2838 }
2839 pub fn from_arc(inner: Arc<T>) -> Self {
2840 Self {
2841 inner,
2842 accept_compression_encodings: Default::default(),
2843 send_compression_encodings: Default::default(),
2844 max_decoding_message_size: None,
2845 max_encoding_message_size: None,
2846 }
2847 }
2848 pub fn with_interceptor<F>(
2849 inner: T,
2850 interceptor: F,
2851 ) -> InterceptedService<Self, F>
2852 where
2853 F: tonic::service::Interceptor,
2854 {
2855 InterceptedService::new(Self::new(inner), interceptor)
2856 }
2857 #[must_use]
2859 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
2860 self.accept_compression_encodings.enable(encoding);
2861 self
2862 }
2863 #[must_use]
2865 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
2866 self.send_compression_encodings.enable(encoding);
2867 self
2868 }
2869 #[must_use]
2873 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
2874 self.max_decoding_message_size = Some(limit);
2875 self
2876 }
2877 #[must_use]
2881 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
2882 self.max_encoding_message_size = Some(limit);
2883 self
2884 }
2885 }
2886 impl<T, B> tonic::codegen::Service<http::Request<B>> for CollectionsServer<T>
2887 where
2888 T: Collections,
2889 B: Body + std::marker::Send + 'static,
2890 B::Error: Into<StdError> + std::marker::Send + 'static,
2891 {
2892 type Response = http::Response<tonic::body::BoxBody>;
2893 type Error = std::convert::Infallible;
2894 type Future = BoxFuture<Self::Response, Self::Error>;
2895 fn poll_ready(
2896 &mut self,
2897 _cx: &mut Context<'_>,
2898 ) -> Poll<std::result::Result<(), Self::Error>> {
2899 Poll::Ready(Ok(()))
2900 }
2901 fn call(&mut self, req: http::Request<B>) -> Self::Future {
2902 match req.uri().path() {
2903 "/qdrant.Collections/Get" => {
2904 #[allow(non_camel_case_types)]
2905 struct GetSvc<T: Collections>(pub Arc<T>);
2906 impl<
2907 T: Collections,
2908 > tonic::server::UnaryService<super::GetCollectionInfoRequest>
2909 for GetSvc<T> {
2910 type Response = super::GetCollectionInfoResponse;
2911 type Future = BoxFuture<
2912 tonic::Response<Self::Response>,
2913 tonic::Status,
2914 >;
2915 fn call(
2916 &mut self,
2917 request: tonic::Request<super::GetCollectionInfoRequest>,
2918 ) -> Self::Future {
2919 let inner = Arc::clone(&self.0);
2920 let fut = async move {
2921 <T as Collections>::get(&inner, request).await
2922 };
2923 Box::pin(fut)
2924 }
2925 }
2926 let accept_compression_encodings = self.accept_compression_encodings;
2927 let send_compression_encodings = self.send_compression_encodings;
2928 let max_decoding_message_size = self.max_decoding_message_size;
2929 let max_encoding_message_size = self.max_encoding_message_size;
2930 let inner = self.inner.clone();
2931 let fut = async move {
2932 let method = GetSvc(inner);
2933 let codec = tonic::codec::ProstCodec::default();
2934 let mut grpc = tonic::server::Grpc::new(codec)
2935 .apply_compression_config(
2936 accept_compression_encodings,
2937 send_compression_encodings,
2938 )
2939 .apply_max_message_size_config(
2940 max_decoding_message_size,
2941 max_encoding_message_size,
2942 );
2943 let res = grpc.unary(method, req).await;
2944 Ok(res)
2945 };
2946 Box::pin(fut)
2947 }
2948 "/qdrant.Collections/List" => {
2949 #[allow(non_camel_case_types)]
2950 struct ListSvc<T: Collections>(pub Arc<T>);
2951 impl<
2952 T: Collections,
2953 > tonic::server::UnaryService<super::ListCollectionsRequest>
2954 for ListSvc<T> {
2955 type Response = super::ListCollectionsResponse;
2956 type Future = BoxFuture<
2957 tonic::Response<Self::Response>,
2958 tonic::Status,
2959 >;
2960 fn call(
2961 &mut self,
2962 request: tonic::Request<super::ListCollectionsRequest>,
2963 ) -> Self::Future {
2964 let inner = Arc::clone(&self.0);
2965 let fut = async move {
2966 <T as Collections>::list(&inner, request).await
2967 };
2968 Box::pin(fut)
2969 }
2970 }
2971 let accept_compression_encodings = self.accept_compression_encodings;
2972 let send_compression_encodings = self.send_compression_encodings;
2973 let max_decoding_message_size = self.max_decoding_message_size;
2974 let max_encoding_message_size = self.max_encoding_message_size;
2975 let inner = self.inner.clone();
2976 let fut = async move {
2977 let method = ListSvc(inner);
2978 let codec = tonic::codec::ProstCodec::default();
2979 let mut grpc = tonic::server::Grpc::new(codec)
2980 .apply_compression_config(
2981 accept_compression_encodings,
2982 send_compression_encodings,
2983 )
2984 .apply_max_message_size_config(
2985 max_decoding_message_size,
2986 max_encoding_message_size,
2987 );
2988 let res = grpc.unary(method, req).await;
2989 Ok(res)
2990 };
2991 Box::pin(fut)
2992 }
2993 "/qdrant.Collections/Create" => {
2994 #[allow(non_camel_case_types)]
2995 struct CreateSvc<T: Collections>(pub Arc<T>);
2996 impl<
2997 T: Collections,
2998 > tonic::server::UnaryService<super::CreateCollection>
2999 for CreateSvc<T> {
3000 type Response = super::CollectionOperationResponse;
3001 type Future = BoxFuture<
3002 tonic::Response<Self::Response>,
3003 tonic::Status,
3004 >;
3005 fn call(
3006 &mut self,
3007 request: tonic::Request<super::CreateCollection>,
3008 ) -> Self::Future {
3009 let inner = Arc::clone(&self.0);
3010 let fut = async move {
3011 <T as Collections>::create(&inner, request).await
3012 };
3013 Box::pin(fut)
3014 }
3015 }
3016 let accept_compression_encodings = self.accept_compression_encodings;
3017 let send_compression_encodings = self.send_compression_encodings;
3018 let max_decoding_message_size = self.max_decoding_message_size;
3019 let max_encoding_message_size = self.max_encoding_message_size;
3020 let inner = self.inner.clone();
3021 let fut = async move {
3022 let method = CreateSvc(inner);
3023 let codec = tonic::codec::ProstCodec::default();
3024 let mut grpc = tonic::server::Grpc::new(codec)
3025 .apply_compression_config(
3026 accept_compression_encodings,
3027 send_compression_encodings,
3028 )
3029 .apply_max_message_size_config(
3030 max_decoding_message_size,
3031 max_encoding_message_size,
3032 );
3033 let res = grpc.unary(method, req).await;
3034 Ok(res)
3035 };
3036 Box::pin(fut)
3037 }
3038 "/qdrant.Collections/Update" => {
3039 #[allow(non_camel_case_types)]
3040 struct UpdateSvc<T: Collections>(pub Arc<T>);
3041 impl<
3042 T: Collections,
3043 > tonic::server::UnaryService<super::UpdateCollection>
3044 for UpdateSvc<T> {
3045 type Response = super::CollectionOperationResponse;
3046 type Future = BoxFuture<
3047 tonic::Response<Self::Response>,
3048 tonic::Status,
3049 >;
3050 fn call(
3051 &mut self,
3052 request: tonic::Request<super::UpdateCollection>,
3053 ) -> Self::Future {
3054 let inner = Arc::clone(&self.0);
3055 let fut = async move {
3056 <T as Collections>::update(&inner, request).await
3057 };
3058 Box::pin(fut)
3059 }
3060 }
3061 let accept_compression_encodings = self.accept_compression_encodings;
3062 let send_compression_encodings = self.send_compression_encodings;
3063 let max_decoding_message_size = self.max_decoding_message_size;
3064 let max_encoding_message_size = self.max_encoding_message_size;
3065 let inner = self.inner.clone();
3066 let fut = async move {
3067 let method = UpdateSvc(inner);
3068 let codec = tonic::codec::ProstCodec::default();
3069 let mut grpc = tonic::server::Grpc::new(codec)
3070 .apply_compression_config(
3071 accept_compression_encodings,
3072 send_compression_encodings,
3073 )
3074 .apply_max_message_size_config(
3075 max_decoding_message_size,
3076 max_encoding_message_size,
3077 );
3078 let res = grpc.unary(method, req).await;
3079 Ok(res)
3080 };
3081 Box::pin(fut)
3082 }
3083 "/qdrant.Collections/Delete" => {
3084 #[allow(non_camel_case_types)]
3085 struct DeleteSvc<T: Collections>(pub Arc<T>);
3086 impl<
3087 T: Collections,
3088 > tonic::server::UnaryService<super::DeleteCollection>
3089 for DeleteSvc<T> {
3090 type Response = super::CollectionOperationResponse;
3091 type Future = BoxFuture<
3092 tonic::Response<Self::Response>,
3093 tonic::Status,
3094 >;
3095 fn call(
3096 &mut self,
3097 request: tonic::Request<super::DeleteCollection>,
3098 ) -> Self::Future {
3099 let inner = Arc::clone(&self.0);
3100 let fut = async move {
3101 <T as Collections>::delete(&inner, request).await
3102 };
3103 Box::pin(fut)
3104 }
3105 }
3106 let accept_compression_encodings = self.accept_compression_encodings;
3107 let send_compression_encodings = self.send_compression_encodings;
3108 let max_decoding_message_size = self.max_decoding_message_size;
3109 let max_encoding_message_size = self.max_encoding_message_size;
3110 let inner = self.inner.clone();
3111 let fut = async move {
3112 let method = DeleteSvc(inner);
3113 let codec = tonic::codec::ProstCodec::default();
3114 let mut grpc = tonic::server::Grpc::new(codec)
3115 .apply_compression_config(
3116 accept_compression_encodings,
3117 send_compression_encodings,
3118 )
3119 .apply_max_message_size_config(
3120 max_decoding_message_size,
3121 max_encoding_message_size,
3122 );
3123 let res = grpc.unary(method, req).await;
3124 Ok(res)
3125 };
3126 Box::pin(fut)
3127 }
3128 "/qdrant.Collections/UpdateAliases" => {
3129 #[allow(non_camel_case_types)]
3130 struct UpdateAliasesSvc<T: Collections>(pub Arc<T>);
3131 impl<
3132 T: Collections,
3133 > tonic::server::UnaryService<super::ChangeAliases>
3134 for UpdateAliasesSvc<T> {
3135 type Response = super::CollectionOperationResponse;
3136 type Future = BoxFuture<
3137 tonic::Response<Self::Response>,
3138 tonic::Status,
3139 >;
3140 fn call(
3141 &mut self,
3142 request: tonic::Request<super::ChangeAliases>,
3143 ) -> Self::Future {
3144 let inner = Arc::clone(&self.0);
3145 let fut = async move {
3146 <T as Collections>::update_aliases(&inner, request).await
3147 };
3148 Box::pin(fut)
3149 }
3150 }
3151 let accept_compression_encodings = self.accept_compression_encodings;
3152 let send_compression_encodings = self.send_compression_encodings;
3153 let max_decoding_message_size = self.max_decoding_message_size;
3154 let max_encoding_message_size = self.max_encoding_message_size;
3155 let inner = self.inner.clone();
3156 let fut = async move {
3157 let method = UpdateAliasesSvc(inner);
3158 let codec = tonic::codec::ProstCodec::default();
3159 let mut grpc = tonic::server::Grpc::new(codec)
3160 .apply_compression_config(
3161 accept_compression_encodings,
3162 send_compression_encodings,
3163 )
3164 .apply_max_message_size_config(
3165 max_decoding_message_size,
3166 max_encoding_message_size,
3167 );
3168 let res = grpc.unary(method, req).await;
3169 Ok(res)
3170 };
3171 Box::pin(fut)
3172 }
3173 "/qdrant.Collections/ListCollectionAliases" => {
3174 #[allow(non_camel_case_types)]
3175 struct ListCollectionAliasesSvc<T: Collections>(pub Arc<T>);
3176 impl<
3177 T: Collections,
3178 > tonic::server::UnaryService<super::ListCollectionAliasesRequest>
3179 for ListCollectionAliasesSvc<T> {
3180 type Response = super::ListAliasesResponse;
3181 type Future = BoxFuture<
3182 tonic::Response<Self::Response>,
3183 tonic::Status,
3184 >;
3185 fn call(
3186 &mut self,
3187 request: tonic::Request<super::ListCollectionAliasesRequest>,
3188 ) -> Self::Future {
3189 let inner = Arc::clone(&self.0);
3190 let fut = async move {
3191 <T as Collections>::list_collection_aliases(&inner, request)
3192 .await
3193 };
3194 Box::pin(fut)
3195 }
3196 }
3197 let accept_compression_encodings = self.accept_compression_encodings;
3198 let send_compression_encodings = self.send_compression_encodings;
3199 let max_decoding_message_size = self.max_decoding_message_size;
3200 let max_encoding_message_size = self.max_encoding_message_size;
3201 let inner = self.inner.clone();
3202 let fut = async move {
3203 let method = ListCollectionAliasesSvc(inner);
3204 let codec = tonic::codec::ProstCodec::default();
3205 let mut grpc = tonic::server::Grpc::new(codec)
3206 .apply_compression_config(
3207 accept_compression_encodings,
3208 send_compression_encodings,
3209 )
3210 .apply_max_message_size_config(
3211 max_decoding_message_size,
3212 max_encoding_message_size,
3213 );
3214 let res = grpc.unary(method, req).await;
3215 Ok(res)
3216 };
3217 Box::pin(fut)
3218 }
3219 "/qdrant.Collections/ListAliases" => {
3220 #[allow(non_camel_case_types)]
3221 struct ListAliasesSvc<T: Collections>(pub Arc<T>);
3222 impl<
3223 T: Collections,
3224 > tonic::server::UnaryService<super::ListAliasesRequest>
3225 for ListAliasesSvc<T> {
3226 type Response = super::ListAliasesResponse;
3227 type Future = BoxFuture<
3228 tonic::Response<Self::Response>,
3229 tonic::Status,
3230 >;
3231 fn call(
3232 &mut self,
3233 request: tonic::Request<super::ListAliasesRequest>,
3234 ) -> Self::Future {
3235 let inner = Arc::clone(&self.0);
3236 let fut = async move {
3237 <T as Collections>::list_aliases(&inner, request).await
3238 };
3239 Box::pin(fut)
3240 }
3241 }
3242 let accept_compression_encodings = self.accept_compression_encodings;
3243 let send_compression_encodings = self.send_compression_encodings;
3244 let max_decoding_message_size = self.max_decoding_message_size;
3245 let max_encoding_message_size = self.max_encoding_message_size;
3246 let inner = self.inner.clone();
3247 let fut = async move {
3248 let method = ListAliasesSvc(inner);
3249 let codec = tonic::codec::ProstCodec::default();
3250 let mut grpc = tonic::server::Grpc::new(codec)
3251 .apply_compression_config(
3252 accept_compression_encodings,
3253 send_compression_encodings,
3254 )
3255 .apply_max_message_size_config(
3256 max_decoding_message_size,
3257 max_encoding_message_size,
3258 );
3259 let res = grpc.unary(method, req).await;
3260 Ok(res)
3261 };
3262 Box::pin(fut)
3263 }
3264 "/qdrant.Collections/CollectionClusterInfo" => {
3265 #[allow(non_camel_case_types)]
3266 struct CollectionClusterInfoSvc<T: Collections>(pub Arc<T>);
3267 impl<
3268 T: Collections,
3269 > tonic::server::UnaryService<super::CollectionClusterInfoRequest>
3270 for CollectionClusterInfoSvc<T> {
3271 type Response = super::CollectionClusterInfoResponse;
3272 type Future = BoxFuture<
3273 tonic::Response<Self::Response>,
3274 tonic::Status,
3275 >;
3276 fn call(
3277 &mut self,
3278 request: tonic::Request<super::CollectionClusterInfoRequest>,
3279 ) -> Self::Future {
3280 let inner = Arc::clone(&self.0);
3281 let fut = async move {
3282 <T as Collections>::collection_cluster_info(&inner, request)
3283 .await
3284 };
3285 Box::pin(fut)
3286 }
3287 }
3288 let accept_compression_encodings = self.accept_compression_encodings;
3289 let send_compression_encodings = self.send_compression_encodings;
3290 let max_decoding_message_size = self.max_decoding_message_size;
3291 let max_encoding_message_size = self.max_encoding_message_size;
3292 let inner = self.inner.clone();
3293 let fut = async move {
3294 let method = CollectionClusterInfoSvc(inner);
3295 let codec = tonic::codec::ProstCodec::default();
3296 let mut grpc = tonic::server::Grpc::new(codec)
3297 .apply_compression_config(
3298 accept_compression_encodings,
3299 send_compression_encodings,
3300 )
3301 .apply_max_message_size_config(
3302 max_decoding_message_size,
3303 max_encoding_message_size,
3304 );
3305 let res = grpc.unary(method, req).await;
3306 Ok(res)
3307 };
3308 Box::pin(fut)
3309 }
3310 "/qdrant.Collections/CollectionExists" => {
3311 #[allow(non_camel_case_types)]
3312 struct CollectionExistsSvc<T: Collections>(pub Arc<T>);
3313 impl<
3314 T: Collections,
3315 > tonic::server::UnaryService<super::CollectionExistsRequest>
3316 for CollectionExistsSvc<T> {
3317 type Response = super::CollectionExistsResponse;
3318 type Future = BoxFuture<
3319 tonic::Response<Self::Response>,
3320 tonic::Status,
3321 >;
3322 fn call(
3323 &mut self,
3324 request: tonic::Request<super::CollectionExistsRequest>,
3325 ) -> Self::Future {
3326 let inner = Arc::clone(&self.0);
3327 let fut = async move {
3328 <T as Collections>::collection_exists(&inner, request).await
3329 };
3330 Box::pin(fut)
3331 }
3332 }
3333 let accept_compression_encodings = self.accept_compression_encodings;
3334 let send_compression_encodings = self.send_compression_encodings;
3335 let max_decoding_message_size = self.max_decoding_message_size;
3336 let max_encoding_message_size = self.max_encoding_message_size;
3337 let inner = self.inner.clone();
3338 let fut = async move {
3339 let method = CollectionExistsSvc(inner);
3340 let codec = tonic::codec::ProstCodec::default();
3341 let mut grpc = tonic::server::Grpc::new(codec)
3342 .apply_compression_config(
3343 accept_compression_encodings,
3344 send_compression_encodings,
3345 )
3346 .apply_max_message_size_config(
3347 max_decoding_message_size,
3348 max_encoding_message_size,
3349 );
3350 let res = grpc.unary(method, req).await;
3351 Ok(res)
3352 };
3353 Box::pin(fut)
3354 }
3355 "/qdrant.Collections/UpdateCollectionClusterSetup" => {
3356 #[allow(non_camel_case_types)]
3357 struct UpdateCollectionClusterSetupSvc<T: Collections>(pub Arc<T>);
3358 impl<
3359 T: Collections,
3360 > tonic::server::UnaryService<
3361 super::UpdateCollectionClusterSetupRequest,
3362 > for UpdateCollectionClusterSetupSvc<T> {
3363 type Response = super::UpdateCollectionClusterSetupResponse;
3364 type Future = BoxFuture<
3365 tonic::Response<Self::Response>,
3366 tonic::Status,
3367 >;
3368 fn call(
3369 &mut self,
3370 request: tonic::Request<
3371 super::UpdateCollectionClusterSetupRequest,
3372 >,
3373 ) -> Self::Future {
3374 let inner = Arc::clone(&self.0);
3375 let fut = async move {
3376 <T as Collections>::update_collection_cluster_setup(
3377 &inner,
3378 request,
3379 )
3380 .await
3381 };
3382 Box::pin(fut)
3383 }
3384 }
3385 let accept_compression_encodings = self.accept_compression_encodings;
3386 let send_compression_encodings = self.send_compression_encodings;
3387 let max_decoding_message_size = self.max_decoding_message_size;
3388 let max_encoding_message_size = self.max_encoding_message_size;
3389 let inner = self.inner.clone();
3390 let fut = async move {
3391 let method = UpdateCollectionClusterSetupSvc(inner);
3392 let codec = tonic::codec::ProstCodec::default();
3393 let mut grpc = tonic::server::Grpc::new(codec)
3394 .apply_compression_config(
3395 accept_compression_encodings,
3396 send_compression_encodings,
3397 )
3398 .apply_max_message_size_config(
3399 max_decoding_message_size,
3400 max_encoding_message_size,
3401 );
3402 let res = grpc.unary(method, req).await;
3403 Ok(res)
3404 };
3405 Box::pin(fut)
3406 }
3407 "/qdrant.Collections/CreateShardKey" => {
3408 #[allow(non_camel_case_types)]
3409 struct CreateShardKeySvc<T: Collections>(pub Arc<T>);
3410 impl<
3411 T: Collections,
3412 > tonic::server::UnaryService<super::CreateShardKeyRequest>
3413 for CreateShardKeySvc<T> {
3414 type Response = super::CreateShardKeyResponse;
3415 type Future = BoxFuture<
3416 tonic::Response<Self::Response>,
3417 tonic::Status,
3418 >;
3419 fn call(
3420 &mut self,
3421 request: tonic::Request<super::CreateShardKeyRequest>,
3422 ) -> Self::Future {
3423 let inner = Arc::clone(&self.0);
3424 let fut = async move {
3425 <T as Collections>::create_shard_key(&inner, request).await
3426 };
3427 Box::pin(fut)
3428 }
3429 }
3430 let accept_compression_encodings = self.accept_compression_encodings;
3431 let send_compression_encodings = self.send_compression_encodings;
3432 let max_decoding_message_size = self.max_decoding_message_size;
3433 let max_encoding_message_size = self.max_encoding_message_size;
3434 let inner = self.inner.clone();
3435 let fut = async move {
3436 let method = CreateShardKeySvc(inner);
3437 let codec = tonic::codec::ProstCodec::default();
3438 let mut grpc = tonic::server::Grpc::new(codec)
3439 .apply_compression_config(
3440 accept_compression_encodings,
3441 send_compression_encodings,
3442 )
3443 .apply_max_message_size_config(
3444 max_decoding_message_size,
3445 max_encoding_message_size,
3446 );
3447 let res = grpc.unary(method, req).await;
3448 Ok(res)
3449 };
3450 Box::pin(fut)
3451 }
3452 "/qdrant.Collections/DeleteShardKey" => {
3453 #[allow(non_camel_case_types)]
3454 struct DeleteShardKeySvc<T: Collections>(pub Arc<T>);
3455 impl<
3456 T: Collections,
3457 > tonic::server::UnaryService<super::DeleteShardKeyRequest>
3458 for DeleteShardKeySvc<T> {
3459 type Response = super::DeleteShardKeyResponse;
3460 type Future = BoxFuture<
3461 tonic::Response<Self::Response>,
3462 tonic::Status,
3463 >;
3464 fn call(
3465 &mut self,
3466 request: tonic::Request<super::DeleteShardKeyRequest>,
3467 ) -> Self::Future {
3468 let inner = Arc::clone(&self.0);
3469 let fut = async move {
3470 <T as Collections>::delete_shard_key(&inner, request).await
3471 };
3472 Box::pin(fut)
3473 }
3474 }
3475 let accept_compression_encodings = self.accept_compression_encodings;
3476 let send_compression_encodings = self.send_compression_encodings;
3477 let max_decoding_message_size = self.max_decoding_message_size;
3478 let max_encoding_message_size = self.max_encoding_message_size;
3479 let inner = self.inner.clone();
3480 let fut = async move {
3481 let method = DeleteShardKeySvc(inner);
3482 let codec = tonic::codec::ProstCodec::default();
3483 let mut grpc = tonic::server::Grpc::new(codec)
3484 .apply_compression_config(
3485 accept_compression_encodings,
3486 send_compression_encodings,
3487 )
3488 .apply_max_message_size_config(
3489 max_decoding_message_size,
3490 max_encoding_message_size,
3491 );
3492 let res = grpc.unary(method, req).await;
3493 Ok(res)
3494 };
3495 Box::pin(fut)
3496 }
3497 "/qdrant.Collections/ListShardKeys" => {
3498 #[allow(non_camel_case_types)]
3499 struct ListShardKeysSvc<T: Collections>(pub Arc<T>);
3500 impl<
3501 T: Collections,
3502 > tonic::server::UnaryService<super::ListShardKeysRequest>
3503 for ListShardKeysSvc<T> {
3504 type Response = super::ListShardKeysResponse;
3505 type Future = BoxFuture<
3506 tonic::Response<Self::Response>,
3507 tonic::Status,
3508 >;
3509 fn call(
3510 &mut self,
3511 request: tonic::Request<super::ListShardKeysRequest>,
3512 ) -> Self::Future {
3513 let inner = Arc::clone(&self.0);
3514 let fut = async move {
3515 <T as Collections>::list_shard_keys(&inner, request).await
3516 };
3517 Box::pin(fut)
3518 }
3519 }
3520 let accept_compression_encodings = self.accept_compression_encodings;
3521 let send_compression_encodings = self.send_compression_encodings;
3522 let max_decoding_message_size = self.max_decoding_message_size;
3523 let max_encoding_message_size = self.max_encoding_message_size;
3524 let inner = self.inner.clone();
3525 let fut = async move {
3526 let method = ListShardKeysSvc(inner);
3527 let codec = tonic::codec::ProstCodec::default();
3528 let mut grpc = tonic::server::Grpc::new(codec)
3529 .apply_compression_config(
3530 accept_compression_encodings,
3531 send_compression_encodings,
3532 )
3533 .apply_max_message_size_config(
3534 max_decoding_message_size,
3535 max_encoding_message_size,
3536 );
3537 let res = grpc.unary(method, req).await;
3538 Ok(res)
3539 };
3540 Box::pin(fut)
3541 }
3542 _ => {
3543 Box::pin(async move {
3544 let mut response = http::Response::new(empty_body());
3545 let headers = response.headers_mut();
3546 headers
3547 .insert(
3548 tonic::Status::GRPC_STATUS,
3549 (tonic::Code::Unimplemented as i32).into(),
3550 );
3551 headers
3552 .insert(
3553 http::header::CONTENT_TYPE,
3554 tonic::metadata::GRPC_CONTENT_TYPE,
3555 );
3556 Ok(response)
3557 })
3558 }
3559 }
3560 }
3561 }
3562 impl<T> Clone for CollectionsServer<T> {
3563 fn clone(&self) -> Self {
3564 let inner = self.inner.clone();
3565 Self {
3566 inner,
3567 accept_compression_encodings: self.accept_compression_encodings,
3568 send_compression_encodings: self.send_compression_encodings,
3569 max_decoding_message_size: self.max_decoding_message_size,
3570 max_encoding_message_size: self.max_encoding_message_size,
3571 }
3572 }
3573 }
3574 pub const SERVICE_NAME: &str = "qdrant.Collections";
3576 impl<T> tonic::server::NamedService for CollectionsServer<T> {
3577 const NAME: &'static str = SERVICE_NAME;
3578 }
3579}
3580#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3581pub struct WriteOrdering {
3582 #[prost(enumeration = "WriteOrderingType", tag = "1")]
3584 pub r#type: i32,
3585}
3586#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3587pub struct ReadConsistency {
3588 #[prost(oneof = "read_consistency::Value", tags = "1, 2")]
3589 pub value: ::core::option::Option<read_consistency::Value>,
3590}
3591pub mod read_consistency {
3593 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
3594 pub enum Value {
3595 #[prost(enumeration = "super::ReadConsistencyType", tag = "1")]
3597 Type(i32),
3598 #[prost(uint64, tag = "2")]
3601 Factor(u64),
3602 }
3603}
3604#[derive(Clone, PartialEq, ::prost::Message)]
3605pub struct SparseIndices {
3606 #[prost(uint32, repeated, tag = "1")]
3607 pub data: ::prost::alloc::vec::Vec<u32>,
3608}
3609#[derive(Clone, PartialEq, ::prost::Message)]
3610pub struct Document {
3611 #[prost(string, tag = "1")]
3613 pub text: ::prost::alloc::string::String,
3614 #[prost(string, tag = "3")]
3616 pub model: ::prost::alloc::string::String,
3617 #[prost(map = "string, message", tag = "4")]
3619 pub options: ::std::collections::HashMap<::prost::alloc::string::String, Value>,
3620}
3621#[derive(Clone, PartialEq, ::prost::Message)]
3622pub struct Image {
3623 #[prost(message, optional, tag = "1")]
3625 pub image: ::core::option::Option<Value>,
3626 #[prost(string, tag = "2")]
3628 pub model: ::prost::alloc::string::String,
3629 #[prost(map = "string, message", tag = "3")]
3631 pub options: ::std::collections::HashMap<::prost::alloc::string::String, Value>,
3632}
3633#[derive(Clone, PartialEq, ::prost::Message)]
3634pub struct InferenceObject {
3635 #[prost(message, optional, tag = "1")]
3637 pub object: ::core::option::Option<Value>,
3638 #[prost(string, tag = "2")]
3640 pub model: ::prost::alloc::string::String,
3641 #[prost(map = "string, message", tag = "3")]
3643 pub options: ::std::collections::HashMap<::prost::alloc::string::String, Value>,
3644}
3645#[derive(Clone, PartialEq, ::prost::Message)]
3646pub struct Vector {
3647 #[deprecated]
3649 #[prost(float, repeated, packed = "false", tag = "1")]
3650 pub data: ::prost::alloc::vec::Vec<f32>,
3654 #[deprecated]
3656 #[prost(message, optional, tag = "2")]
3657 pub indices: ::core::option::Option<SparseIndices>,
3661 #[deprecated]
3663 #[prost(uint32, optional, tag = "3")]
3664 pub vectors_count: ::core::option::Option<u32>,
3668 #[prost(oneof = "vector::Vector", tags = "101, 102, 103, 104, 105, 106")]
3669 pub vector: ::core::option::Option<vector::Vector>,
3670}
3671pub mod vector {
3673 #[derive(Clone, PartialEq, ::prost::Oneof)]
3674 pub enum Vector {
3675 #[prost(message, tag = "101")]
3677 Dense(super::DenseVector),
3678 #[prost(message, tag = "102")]
3680 Sparse(super::SparseVector),
3681 #[prost(message, tag = "103")]
3683 MultiDense(super::MultiDenseVector),
3684 #[prost(message, tag = "104")]
3685 Document(super::Document),
3686 #[prost(message, tag = "105")]
3687 Image(super::Image),
3688 #[prost(message, tag = "106")]
3689 Object(super::InferenceObject),
3690 }
3691}
3692#[derive(Clone, PartialEq, ::prost::Message)]
3693pub struct VectorOutput {
3694 #[deprecated]
3696 #[prost(float, repeated, packed = "false", tag = "1")]
3697 pub data: ::prost::alloc::vec::Vec<f32>,
3701 #[deprecated]
3703 #[prost(message, optional, tag = "2")]
3704 pub indices: ::core::option::Option<SparseIndices>,
3708 #[deprecated]
3710 #[prost(uint32, optional, tag = "3")]
3711 pub vectors_count: ::core::option::Option<u32>,
3715 #[prost(oneof = "vector_output::Vector", tags = "101, 102, 103")]
3716 pub vector: ::core::option::Option<vector_output::Vector>,
3717}
3718pub mod vector_output {
3720 #[derive(Clone, PartialEq, ::prost::Oneof)]
3721 pub enum Vector {
3722 #[prost(message, tag = "101")]
3724 Dense(super::DenseVector),
3725 #[prost(message, tag = "102")]
3727 Sparse(super::SparseVector),
3728 #[prost(message, tag = "103")]
3730 MultiDense(super::MultiDenseVector),
3731 }
3732}
3733#[derive(Clone, PartialEq, ::prost::Message)]
3734pub struct DenseVector {
3735 #[prost(float, repeated, tag = "1")]
3736 pub data: ::prost::alloc::vec::Vec<f32>,
3737}
3738#[derive(Clone, PartialEq, ::prost::Message)]
3739pub struct SparseVector {
3740 #[prost(float, repeated, tag = "1")]
3741 pub values: ::prost::alloc::vec::Vec<f32>,
3742 #[prost(uint32, repeated, tag = "2")]
3743 pub indices: ::prost::alloc::vec::Vec<u32>,
3744}
3745#[derive(Clone, PartialEq, ::prost::Message)]
3746pub struct MultiDenseVector {
3747 #[prost(message, repeated, tag = "1")]
3748 pub vectors: ::prost::alloc::vec::Vec<DenseVector>,
3749}
3750#[derive(Clone, PartialEq, ::prost::Message)]
3753pub struct VectorInput {
3754 #[prost(oneof = "vector_input::Variant", tags = "1, 2, 3, 4, 5, 6, 7")]
3755 pub variant: ::core::option::Option<vector_input::Variant>,
3756}
3757pub mod vector_input {
3759 #[derive(Clone, PartialEq, ::prost::Oneof)]
3760 pub enum Variant {
3761 #[prost(message, tag = "1")]
3762 Id(super::PointId),
3763 #[prost(message, tag = "2")]
3764 Dense(super::DenseVector),
3765 #[prost(message, tag = "3")]
3766 Sparse(super::SparseVector),
3767 #[prost(message, tag = "4")]
3768 MultiDense(super::MultiDenseVector),
3769 #[prost(message, tag = "5")]
3770 Document(super::Document),
3771 #[prost(message, tag = "6")]
3772 Image(super::Image),
3773 #[prost(message, tag = "7")]
3774 Object(super::InferenceObject),
3775 }
3776}
3777#[derive(Clone, PartialEq, ::prost::Message)]
3778pub struct ShardKeySelector {
3779 #[prost(message, repeated, tag = "1")]
3781 pub shard_keys: ::prost::alloc::vec::Vec<ShardKey>,
3782 #[prost(message, optional, tag = "2")]
3783 pub fallback: ::core::option::Option<ShardKey>,
3784}
3785#[derive(Clone, PartialEq, ::prost::Message)]
3786pub struct UpsertPoints {
3787 #[prost(string, tag = "1")]
3789 pub collection_name: ::prost::alloc::string::String,
3790 #[prost(bool, optional, tag = "2")]
3792 pub wait: ::core::option::Option<bool>,
3793 #[prost(message, repeated, tag = "3")]
3794 pub points: ::prost::alloc::vec::Vec<PointStruct>,
3795 #[prost(message, optional, tag = "4")]
3797 pub ordering: ::core::option::Option<WriteOrdering>,
3798 #[prost(message, optional, tag = "5")]
3800 pub shard_key_selector: ::core::option::Option<ShardKeySelector>,
3801 #[prost(message, optional, tag = "6")]
3804 pub update_filter: ::core::option::Option<Filter>,
3805 #[prost(uint64, optional, tag = "7")]
3807 pub timeout: ::core::option::Option<u64>,
3808 #[prost(enumeration = "UpdateMode", optional, tag = "8")]
3810 pub update_mode: ::core::option::Option<i32>,
3811}
3812#[derive(Clone, PartialEq, ::prost::Message)]
3813pub struct DeletePoints {
3814 #[prost(string, tag = "1")]
3816 pub collection_name: ::prost::alloc::string::String,
3817 #[prost(bool, optional, tag = "2")]
3819 pub wait: ::core::option::Option<bool>,
3820 #[prost(message, optional, tag = "3")]
3822 pub points: ::core::option::Option<PointsSelector>,
3823 #[prost(message, optional, tag = "4")]
3825 pub ordering: ::core::option::Option<WriteOrdering>,
3826 #[prost(message, optional, tag = "5")]
3828 pub shard_key_selector: ::core::option::Option<ShardKeySelector>,
3829 #[prost(uint64, optional, tag = "6")]
3831 pub timeout: ::core::option::Option<u64>,
3832}
3833#[derive(Clone, PartialEq, ::prost::Message)]
3834pub struct GetPoints {
3835 #[prost(string, tag = "1")]
3837 pub collection_name: ::prost::alloc::string::String,
3838 #[prost(message, repeated, tag = "2")]
3840 pub ids: ::prost::alloc::vec::Vec<PointId>,
3841 #[prost(message, optional, tag = "4")]
3843 pub with_payload: ::core::option::Option<WithPayloadSelector>,
3844 #[prost(message, optional, tag = "5")]
3846 pub with_vectors: ::core::option::Option<WithVectorsSelector>,
3847 #[prost(message, optional, tag = "6")]
3849 pub read_consistency: ::core::option::Option<ReadConsistency>,
3850 #[prost(message, optional, tag = "7")]
3852 pub shard_key_selector: ::core::option::Option<ShardKeySelector>,
3853 #[prost(uint64, optional, tag = "8")]
3855 pub timeout: ::core::option::Option<u64>,
3856}
3857#[derive(Clone, PartialEq, ::prost::Message)]
3858pub struct UpdatePointVectors {
3859 #[prost(string, tag = "1")]
3861 pub collection_name: ::prost::alloc::string::String,
3862 #[prost(bool, optional, tag = "2")]
3864 pub wait: ::core::option::Option<bool>,
3865 #[prost(message, repeated, tag = "3")]
3867 pub points: ::prost::alloc::vec::Vec<PointVectors>,
3868 #[prost(message, optional, tag = "4")]
3870 pub ordering: ::core::option::Option<WriteOrdering>,
3871 #[prost(message, optional, tag = "5")]
3873 pub shard_key_selector: ::core::option::Option<ShardKeySelector>,
3874 #[prost(message, optional, tag = "6")]
3876 pub update_filter: ::core::option::Option<Filter>,
3877 #[prost(uint64, optional, tag = "7")]
3879 pub timeout: ::core::option::Option<u64>,
3880}
3881#[derive(Clone, PartialEq, ::prost::Message)]
3882pub struct PointVectors {
3883 #[prost(message, optional, tag = "1")]
3885 pub id: ::core::option::Option<PointId>,
3886 #[prost(message, optional, tag = "2")]
3888 pub vectors: ::core::option::Option<Vectors>,
3889}
3890#[derive(Clone, PartialEq, ::prost::Message)]
3891pub struct DeletePointVectors {
3892 #[prost(string, tag = "1")]
3894 pub collection_name: ::prost::alloc::string::String,
3895 #[prost(bool, optional, tag = "2")]
3897 pub wait: ::core::option::Option<bool>,
3898 #[prost(message, optional, tag = "3")]
3900 pub points_selector: ::core::option::Option<PointsSelector>,
3901 #[prost(message, optional, tag = "4")]
3903 pub vectors: ::core::option::Option<VectorsSelector>,
3904 #[prost(message, optional, tag = "5")]
3906 pub ordering: ::core::option::Option<WriteOrdering>,
3907 #[prost(message, optional, tag = "6")]
3909 pub shard_key_selector: ::core::option::Option<ShardKeySelector>,
3910 #[prost(uint64, optional, tag = "7")]
3912 pub timeout: ::core::option::Option<u64>,
3913}
3914#[derive(Clone, PartialEq, ::prost::Message)]
3915pub struct SetPayloadPoints {
3916 #[prost(string, tag = "1")]
3918 pub collection_name: ::prost::alloc::string::String,
3919 #[prost(bool, optional, tag = "2")]
3921 pub wait: ::core::option::Option<bool>,
3922 #[prost(map = "string, message", tag = "3")]
3924 pub payload: ::std::collections::HashMap<::prost::alloc::string::String, Value>,
3925 #[prost(message, optional, tag = "5")]
3927 pub points_selector: ::core::option::Option<PointsSelector>,
3928 #[prost(message, optional, tag = "6")]
3930 pub ordering: ::core::option::Option<WriteOrdering>,
3931 #[prost(message, optional, tag = "7")]
3933 pub shard_key_selector: ::core::option::Option<ShardKeySelector>,
3934 #[prost(string, optional, tag = "8")]
3936 pub key: ::core::option::Option<::prost::alloc::string::String>,
3937 #[prost(uint64, optional, tag = "9")]
3939 pub timeout: ::core::option::Option<u64>,
3940}
3941#[derive(Clone, PartialEq, ::prost::Message)]
3942pub struct DeletePayloadPoints {
3943 #[prost(string, tag = "1")]
3945 pub collection_name: ::prost::alloc::string::String,
3946 #[prost(bool, optional, tag = "2")]
3948 pub wait: ::core::option::Option<bool>,
3949 #[prost(string, repeated, tag = "3")]
3951 pub keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3952 #[prost(message, optional, tag = "5")]
3954 pub points_selector: ::core::option::Option<PointsSelector>,
3955 #[prost(message, optional, tag = "6")]
3957 pub ordering: ::core::option::Option<WriteOrdering>,
3958 #[prost(message, optional, tag = "7")]
3960 pub shard_key_selector: ::core::option::Option<ShardKeySelector>,
3961 #[prost(uint64, optional, tag = "8")]
3963 pub timeout: ::core::option::Option<u64>,
3964}
3965#[derive(Clone, PartialEq, ::prost::Message)]
3966pub struct ClearPayloadPoints {
3967 #[prost(string, tag = "1")]
3969 pub collection_name: ::prost::alloc::string::String,
3970 #[prost(bool, optional, tag = "2")]
3972 pub wait: ::core::option::Option<bool>,
3973 #[prost(message, optional, tag = "3")]
3975 pub points: ::core::option::Option<PointsSelector>,
3976 #[prost(message, optional, tag = "4")]
3978 pub ordering: ::core::option::Option<WriteOrdering>,
3979 #[prost(message, optional, tag = "5")]
3981 pub shard_key_selector: ::core::option::Option<ShardKeySelector>,
3982 #[prost(uint64, optional, tag = "6")]
3984 pub timeout: ::core::option::Option<u64>,
3985}
3986#[derive(Clone, PartialEq, ::prost::Message)]
3987pub struct CreateFieldIndexCollection {
3988 #[prost(string, tag = "1")]
3990 pub collection_name: ::prost::alloc::string::String,
3991 #[prost(bool, optional, tag = "2")]
3993 pub wait: ::core::option::Option<bool>,
3994 #[prost(string, tag = "3")]
3996 pub field_name: ::prost::alloc::string::String,
3997 #[prost(enumeration = "FieldType", optional, tag = "4")]
3999 pub field_type: ::core::option::Option<i32>,
4000 #[prost(message, optional, tag = "5")]
4002 pub field_index_params: ::core::option::Option<PayloadIndexParams>,
4003 #[prost(message, optional, tag = "6")]
4005 pub ordering: ::core::option::Option<WriteOrdering>,
4006 #[prost(uint64, optional, tag = "7")]
4008 pub timeout: ::core::option::Option<u64>,
4009}
4010#[derive(Clone, PartialEq, ::prost::Message)]
4011pub struct DeleteFieldIndexCollection {
4012 #[prost(string, tag = "1")]
4014 pub collection_name: ::prost::alloc::string::String,
4015 #[prost(bool, optional, tag = "2")]
4017 pub wait: ::core::option::Option<bool>,
4018 #[prost(string, tag = "3")]
4020 pub field_name: ::prost::alloc::string::String,
4021 #[prost(message, optional, tag = "4")]
4023 pub ordering: ::core::option::Option<WriteOrdering>,
4024 #[prost(uint64, optional, tag = "5")]
4026 pub timeout: ::core::option::Option<u64>,
4027}
4028#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4032pub struct DenseVectorCreationConfig {
4033 #[prost(uint64, tag = "1")]
4035 pub size: u64,
4036 #[prost(enumeration = "Distance", tag = "2")]
4038 pub distance: i32,
4039 #[prost(message, optional, tag = "3")]
4041 pub multivector_config: ::core::option::Option<MultiVectorConfig>,
4042 #[prost(enumeration = "Datatype", optional, tag = "4")]
4044 pub datatype: ::core::option::Option<i32>,
4045}
4046#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4049pub struct SparseVectorCreationConfig {
4050 #[prost(enumeration = "Modifier", optional, tag = "1")]
4052 pub modifier: ::core::option::Option<i32>,
4053 #[prost(enumeration = "Datatype", optional, tag = "2")]
4055 pub datatype: ::core::option::Option<i32>,
4056}
4057#[derive(Clone, PartialEq, ::prost::Message)]
4058pub struct CreateVectorNameRequest {
4059 #[prost(string, tag = "1")]
4061 pub collection_name: ::prost::alloc::string::String,
4062 #[prost(bool, optional, tag = "2")]
4064 pub wait: ::core::option::Option<bool>,
4065 #[prost(string, tag = "3")]
4067 pub vector_name: ::prost::alloc::string::String,
4068 #[prost(uint64, optional, tag = "6")]
4070 pub timeout: ::core::option::Option<u64>,
4071 #[prost(message, optional, tag = "7")]
4073 pub ordering: ::core::option::Option<WriteOrdering>,
4074 #[prost(oneof = "create_vector_name_request::VectorConfig", tags = "4, 5")]
4076 pub vector_config: ::core::option::Option<create_vector_name_request::VectorConfig>,
4077}
4078pub mod create_vector_name_request {
4080 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
4082 pub enum VectorConfig {
4083 #[prost(message, tag = "4")]
4085 DenseConfig(super::DenseVectorCreationConfig),
4086 #[prost(message, tag = "5")]
4088 SparseConfig(super::SparseVectorCreationConfig),
4089 }
4090}
4091#[derive(Clone, PartialEq, ::prost::Message)]
4092pub struct DeleteVectorNameRequest {
4093 #[prost(string, tag = "1")]
4095 pub collection_name: ::prost::alloc::string::String,
4096 #[prost(bool, optional, tag = "2")]
4098 pub wait: ::core::option::Option<bool>,
4099 #[prost(string, tag = "3")]
4101 pub vector_name: ::prost::alloc::string::String,
4102 #[prost(uint64, optional, tag = "4")]
4104 pub timeout: ::core::option::Option<u64>,
4105 #[prost(message, optional, tag = "5")]
4107 pub ordering: ::core::option::Option<WriteOrdering>,
4108}
4109#[derive(Clone, PartialEq, ::prost::Message)]
4110pub struct PayloadIncludeSelector {
4111 #[prost(string, repeated, tag = "1")]
4113 pub fields: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4114}
4115#[derive(Clone, PartialEq, ::prost::Message)]
4116pub struct PayloadExcludeSelector {
4117 #[prost(string, repeated, tag = "1")]
4119 pub fields: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4120}
4121#[derive(Clone, PartialEq, ::prost::Message)]
4122pub struct WithPayloadSelector {
4123 #[prost(oneof = "with_payload_selector::SelectorOptions", tags = "1, 2, 3")]
4124 pub selector_options: ::core::option::Option<with_payload_selector::SelectorOptions>,
4125}
4126pub mod with_payload_selector {
4128 #[derive(Clone, PartialEq, ::prost::Oneof)]
4129 pub enum SelectorOptions {
4130 #[prost(bool, tag = "1")]
4132 Enable(bool),
4133 #[prost(message, tag = "2")]
4134 Include(super::PayloadIncludeSelector),
4135 #[prost(message, tag = "3")]
4136 Exclude(super::PayloadExcludeSelector),
4137 }
4138}
4139#[derive(Clone, PartialEq, ::prost::Message)]
4140pub struct NamedVectors {
4141 #[prost(map = "string, message", tag = "1")]
4142 pub vectors: ::std::collections::HashMap<::prost::alloc::string::String, Vector>,
4143}
4144#[derive(Clone, PartialEq, ::prost::Message)]
4145pub struct NamedVectorsOutput {
4146 #[prost(map = "string, message", tag = "1")]
4147 pub vectors: ::std::collections::HashMap<
4148 ::prost::alloc::string::String,
4149 VectorOutput,
4150 >,
4151}
4152#[derive(Clone, PartialEq, ::prost::Message)]
4153pub struct Vectors {
4154 #[prost(oneof = "vectors::VectorsOptions", tags = "1, 2")]
4155 pub vectors_options: ::core::option::Option<vectors::VectorsOptions>,
4156}
4157pub mod vectors {
4159 #[derive(Clone, PartialEq, ::prost::Oneof)]
4160 pub enum VectorsOptions {
4161 #[prost(message, tag = "1")]
4162 Vector(super::Vector),
4163 #[prost(message, tag = "2")]
4164 Vectors(super::NamedVectors),
4165 }
4166}
4167#[derive(Clone, PartialEq, ::prost::Message)]
4168pub struct VectorsOutput {
4169 #[prost(oneof = "vectors_output::VectorsOptions", tags = "1, 2")]
4170 pub vectors_options: ::core::option::Option<vectors_output::VectorsOptions>,
4171}
4172pub mod vectors_output {
4174 #[derive(Clone, PartialEq, ::prost::Oneof)]
4175 pub enum VectorsOptions {
4176 #[prost(message, tag = "1")]
4177 Vector(super::VectorOutput),
4178 #[prost(message, tag = "2")]
4179 Vectors(super::NamedVectorsOutput),
4180 }
4181}
4182#[derive(Clone, PartialEq, ::prost::Message)]
4183pub struct VectorsSelector {
4184 #[prost(string, repeated, tag = "1")]
4186 pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4187}
4188#[derive(Clone, PartialEq, ::prost::Message)]
4189pub struct WithVectorsSelector {
4190 #[prost(oneof = "with_vectors_selector::SelectorOptions", tags = "1, 2")]
4191 pub selector_options: ::core::option::Option<with_vectors_selector::SelectorOptions>,
4192}
4193pub mod with_vectors_selector {
4195 #[derive(Clone, PartialEq, ::prost::Oneof)]
4196 pub enum SelectorOptions {
4197 #[prost(bool, tag = "1")]
4199 Enable(bool),
4200 #[prost(message, tag = "2")]
4202 Include(super::VectorsSelector),
4203 }
4204}
4205#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4206pub struct QuantizationSearchParams {
4207 #[prost(bool, optional, tag = "1")]
4209 pub ignore: ::core::option::Option<bool>,
4210 #[prost(bool, optional, tag = "2")]
4213 pub rescore: ::core::option::Option<bool>,
4214 #[prost(double, optional, tag = "3")]
4223 pub oversampling: ::core::option::Option<f64>,
4224}
4225#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4226pub struct AcornSearchParams {
4227 #[prost(bool, optional, tag = "1")]
4233 pub enable: ::core::option::Option<bool>,
4234 #[prost(double, optional, tag = "2")]
4242 pub max_selectivity: ::core::option::Option<f64>,
4243}
4244#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4245pub struct SearchParams {
4246 #[prost(uint64, optional, tag = "1")]
4249 pub hnsw_ef: ::core::option::Option<u64>,
4250 #[prost(bool, optional, tag = "2")]
4252 pub exact: ::core::option::Option<bool>,
4253 #[prost(message, optional, tag = "3")]
4255 pub quantization: ::core::option::Option<QuantizationSearchParams>,
4256 #[prost(bool, optional, tag = "4")]
4260 pub indexed_only: ::core::option::Option<bool>,
4261 #[prost(message, optional, tag = "5")]
4263 pub acorn: ::core::option::Option<AcornSearchParams>,
4264}
4265#[derive(Clone, PartialEq, ::prost::Message)]
4266pub struct SearchPoints {
4267 #[prost(string, tag = "1")]
4269 pub collection_name: ::prost::alloc::string::String,
4270 #[prost(float, repeated, tag = "2")]
4272 pub vector: ::prost::alloc::vec::Vec<f32>,
4273 #[prost(message, optional, tag = "3")]
4275 pub filter: ::core::option::Option<Filter>,
4276 #[prost(uint64, tag = "4")]
4278 pub limit: u64,
4279 #[prost(message, optional, tag = "6")]
4281 pub with_payload: ::core::option::Option<WithPayloadSelector>,
4282 #[prost(message, optional, tag = "7")]
4284 pub params: ::core::option::Option<SearchParams>,
4285 #[prost(float, optional, tag = "8")]
4287 pub score_threshold: ::core::option::Option<f32>,
4288 #[prost(uint64, optional, tag = "9")]
4290 pub offset: ::core::option::Option<u64>,
4291 #[prost(string, optional, tag = "10")]
4293 pub vector_name: ::core::option::Option<::prost::alloc::string::String>,
4294 #[prost(message, optional, tag = "11")]
4296 pub with_vectors: ::core::option::Option<WithVectorsSelector>,
4297 #[prost(message, optional, tag = "12")]
4299 pub read_consistency: ::core::option::Option<ReadConsistency>,
4300 #[prost(uint64, optional, tag = "13")]
4302 pub timeout: ::core::option::Option<u64>,
4303 #[prost(message, optional, tag = "14")]
4305 pub shard_key_selector: ::core::option::Option<ShardKeySelector>,
4306 #[prost(message, optional, tag = "15")]
4307 pub sparse_indices: ::core::option::Option<SparseIndices>,
4308}
4309#[derive(Clone, PartialEq, ::prost::Message)]
4310pub struct SearchBatchPoints {
4311 #[prost(string, tag = "1")]
4313 pub collection_name: ::prost::alloc::string::String,
4314 #[prost(message, repeated, tag = "2")]
4315 pub search_points: ::prost::alloc::vec::Vec<SearchPoints>,
4316 #[prost(message, optional, tag = "3")]
4318 pub read_consistency: ::core::option::Option<ReadConsistency>,
4319 #[prost(uint64, optional, tag = "4")]
4321 pub timeout: ::core::option::Option<u64>,
4322}
4323#[derive(Clone, PartialEq, ::prost::Message)]
4324pub struct WithLookup {
4325 #[prost(string, tag = "1")]
4327 pub collection: ::prost::alloc::string::String,
4328 #[prost(message, optional, tag = "2")]
4330 pub with_payload: ::core::option::Option<WithPayloadSelector>,
4331 #[prost(message, optional, tag = "3")]
4333 pub with_vectors: ::core::option::Option<WithVectorsSelector>,
4334}
4335#[derive(Clone, PartialEq, ::prost::Message)]
4336pub struct SearchPointGroups {
4337 #[prost(string, tag = "1")]
4339 pub collection_name: ::prost::alloc::string::String,
4340 #[prost(float, repeated, tag = "2")]
4342 pub vector: ::prost::alloc::vec::Vec<f32>,
4343 #[prost(message, optional, tag = "3")]
4345 pub filter: ::core::option::Option<Filter>,
4346 #[prost(uint32, tag = "4")]
4348 pub limit: u32,
4349 #[prost(message, optional, tag = "5")]
4351 pub with_payload: ::core::option::Option<WithPayloadSelector>,
4352 #[prost(message, optional, tag = "6")]
4354 pub params: ::core::option::Option<SearchParams>,
4355 #[prost(float, optional, tag = "7")]
4357 pub score_threshold: ::core::option::Option<f32>,
4358 #[prost(string, optional, tag = "8")]
4360 pub vector_name: ::core::option::Option<::prost::alloc::string::String>,
4361 #[prost(message, optional, tag = "9")]
4363 pub with_vectors: ::core::option::Option<WithVectorsSelector>,
4364 #[prost(string, tag = "10")]
4368 pub group_by: ::prost::alloc::string::String,
4369 #[prost(uint32, tag = "11")]
4371 pub group_size: u32,
4372 #[prost(message, optional, tag = "12")]
4374 pub read_consistency: ::core::option::Option<ReadConsistency>,
4375 #[prost(message, optional, tag = "13")]
4377 pub with_lookup: ::core::option::Option<WithLookup>,
4378 #[prost(uint64, optional, tag = "14")]
4380 pub timeout: ::core::option::Option<u64>,
4381 #[prost(message, optional, tag = "15")]
4383 pub shard_key_selector: ::core::option::Option<ShardKeySelector>,
4384 #[prost(message, optional, tag = "16")]
4385 pub sparse_indices: ::core::option::Option<SparseIndices>,
4386}
4387#[derive(Clone, PartialEq, ::prost::Message)]
4388pub struct StartFrom {
4389 #[prost(oneof = "start_from::Value", tags = "1, 2, 3, 4")]
4390 pub value: ::core::option::Option<start_from::Value>,
4391}
4392pub mod start_from {
4394 #[derive(Clone, PartialEq, ::prost::Oneof)]
4395 pub enum Value {
4396 #[prost(double, tag = "1")]
4397 Float(f64),
4398 #[prost(int64, tag = "2")]
4399 Integer(i64),
4400 #[prost(message, tag = "3")]
4401 Timestamp(::prost_types::Timestamp),
4402 #[prost(string, tag = "4")]
4403 Datetime(::prost::alloc::string::String),
4404 }
4405}
4406#[derive(Clone, PartialEq, ::prost::Message)]
4407pub struct OrderBy {
4408 #[prost(string, tag = "1")]
4410 pub key: ::prost::alloc::string::String,
4411 #[prost(enumeration = "Direction", optional, tag = "2")]
4413 pub direction: ::core::option::Option<i32>,
4414 #[prost(message, optional, tag = "3")]
4416 pub start_from: ::core::option::Option<StartFrom>,
4417}
4418#[derive(Clone, PartialEq, ::prost::Message)]
4419pub struct ScrollPoints {
4420 #[prost(string, tag = "1")]
4421 pub collection_name: ::prost::alloc::string::String,
4422 #[prost(message, optional, tag = "2")]
4424 pub filter: ::core::option::Option<Filter>,
4425 #[prost(message, optional, tag = "3")]
4427 pub offset: ::core::option::Option<PointId>,
4428 #[prost(uint32, optional, tag = "4")]
4430 pub limit: ::core::option::Option<u32>,
4431 #[prost(message, optional, tag = "6")]
4433 pub with_payload: ::core::option::Option<WithPayloadSelector>,
4434 #[prost(message, optional, tag = "7")]
4436 pub with_vectors: ::core::option::Option<WithVectorsSelector>,
4437 #[prost(message, optional, tag = "8")]
4439 pub read_consistency: ::core::option::Option<ReadConsistency>,
4440 #[prost(message, optional, tag = "9")]
4442 pub shard_key_selector: ::core::option::Option<ShardKeySelector>,
4443 #[prost(message, optional, tag = "10")]
4445 pub order_by: ::core::option::Option<OrderBy>,
4446 #[prost(uint64, optional, tag = "11")]
4448 pub timeout: ::core::option::Option<u64>,
4449}
4450#[derive(Clone, PartialEq, ::prost::Message)]
4451pub struct LookupLocation {
4452 #[prost(string, tag = "1")]
4453 pub collection_name: ::prost::alloc::string::String,
4454 #[prost(string, optional, tag = "2")]
4456 pub vector_name: ::core::option::Option<::prost::alloc::string::String>,
4457 #[prost(message, optional, tag = "3")]
4459 pub shard_key_selector: ::core::option::Option<ShardKeySelector>,
4460}
4461#[derive(Clone, PartialEq, ::prost::Message)]
4462pub struct RecommendPoints {
4463 #[prost(string, tag = "1")]
4465 pub collection_name: ::prost::alloc::string::String,
4466 #[prost(message, repeated, tag = "2")]
4468 pub positive: ::prost::alloc::vec::Vec<PointId>,
4469 #[prost(message, repeated, tag = "3")]
4471 pub negative: ::prost::alloc::vec::Vec<PointId>,
4472 #[prost(message, optional, tag = "4")]
4474 pub filter: ::core::option::Option<Filter>,
4475 #[prost(uint64, tag = "5")]
4477 pub limit: u64,
4478 #[prost(message, optional, tag = "7")]
4480 pub with_payload: ::core::option::Option<WithPayloadSelector>,
4481 #[prost(message, optional, tag = "8")]
4483 pub params: ::core::option::Option<SearchParams>,
4484 #[prost(float, optional, tag = "9")]
4486 pub score_threshold: ::core::option::Option<f32>,
4487 #[prost(uint64, optional, tag = "10")]
4489 pub offset: ::core::option::Option<u64>,
4490 #[prost(string, optional, tag = "11")]
4492 pub using: ::core::option::Option<::prost::alloc::string::String>,
4493 #[prost(message, optional, tag = "12")]
4495 pub with_vectors: ::core::option::Option<WithVectorsSelector>,
4496 #[prost(message, optional, tag = "13")]
4498 pub lookup_from: ::core::option::Option<LookupLocation>,
4499 #[prost(message, optional, tag = "14")]
4501 pub read_consistency: ::core::option::Option<ReadConsistency>,
4502 #[prost(enumeration = "RecommendStrategy", optional, tag = "16")]
4504 pub strategy: ::core::option::Option<i32>,
4505 #[prost(message, repeated, tag = "17")]
4507 pub positive_vectors: ::prost::alloc::vec::Vec<Vector>,
4508 #[prost(message, repeated, tag = "18")]
4510 pub negative_vectors: ::prost::alloc::vec::Vec<Vector>,
4511 #[prost(uint64, optional, tag = "19")]
4513 pub timeout: ::core::option::Option<u64>,
4514 #[prost(message, optional, tag = "20")]
4516 pub shard_key_selector: ::core::option::Option<ShardKeySelector>,
4517}
4518#[derive(Clone, PartialEq, ::prost::Message)]
4519pub struct RecommendBatchPoints {
4520 #[prost(string, tag = "1")]
4522 pub collection_name: ::prost::alloc::string::String,
4523 #[prost(message, repeated, tag = "2")]
4524 pub recommend_points: ::prost::alloc::vec::Vec<RecommendPoints>,
4525 #[prost(message, optional, tag = "3")]
4527 pub read_consistency: ::core::option::Option<ReadConsistency>,
4528 #[prost(uint64, optional, tag = "4")]
4530 pub timeout: ::core::option::Option<u64>,
4531}
4532#[derive(Clone, PartialEq, ::prost::Message)]
4533pub struct RecommendPointGroups {
4534 #[prost(string, tag = "1")]
4536 pub collection_name: ::prost::alloc::string::String,
4537 #[prost(message, repeated, tag = "2")]
4539 pub positive: ::prost::alloc::vec::Vec<PointId>,
4540 #[prost(message, repeated, tag = "3")]
4542 pub negative: ::prost::alloc::vec::Vec<PointId>,
4543 #[prost(message, optional, tag = "4")]
4545 pub filter: ::core::option::Option<Filter>,
4546 #[prost(uint32, tag = "5")]
4548 pub limit: u32,
4549 #[prost(message, optional, tag = "6")]
4551 pub with_payload: ::core::option::Option<WithPayloadSelector>,
4552 #[prost(message, optional, tag = "7")]
4554 pub params: ::core::option::Option<SearchParams>,
4555 #[prost(float, optional, tag = "8")]
4557 pub score_threshold: ::core::option::Option<f32>,
4558 #[prost(string, optional, tag = "9")]
4560 pub using: ::core::option::Option<::prost::alloc::string::String>,
4561 #[prost(message, optional, tag = "10")]
4563 pub with_vectors: ::core::option::Option<WithVectorsSelector>,
4564 #[prost(message, optional, tag = "11")]
4566 pub lookup_from: ::core::option::Option<LookupLocation>,
4567 #[prost(string, tag = "12")]
4571 pub group_by: ::prost::alloc::string::String,
4572 #[prost(uint32, tag = "13")]
4574 pub group_size: u32,
4575 #[prost(message, optional, tag = "14")]
4577 pub read_consistency: ::core::option::Option<ReadConsistency>,
4578 #[prost(message, optional, tag = "15")]
4580 pub with_lookup: ::core::option::Option<WithLookup>,
4581 #[prost(enumeration = "RecommendStrategy", optional, tag = "17")]
4583 pub strategy: ::core::option::Option<i32>,
4584 #[prost(message, repeated, tag = "18")]
4586 pub positive_vectors: ::prost::alloc::vec::Vec<Vector>,
4587 #[prost(message, repeated, tag = "19")]
4589 pub negative_vectors: ::prost::alloc::vec::Vec<Vector>,
4590 #[prost(uint64, optional, tag = "20")]
4592 pub timeout: ::core::option::Option<u64>,
4593 #[prost(message, optional, tag = "21")]
4595 pub shard_key_selector: ::core::option::Option<ShardKeySelector>,
4596}
4597#[derive(Clone, PartialEq, ::prost::Message)]
4598pub struct TargetVector {
4599 #[prost(oneof = "target_vector::Target", tags = "1")]
4600 pub target: ::core::option::Option<target_vector::Target>,
4601}
4602pub mod target_vector {
4604 #[derive(Clone, PartialEq, ::prost::Oneof)]
4605 pub enum Target {
4606 #[prost(message, tag = "1")]
4607 Single(super::VectorExample),
4608 }
4609}
4610#[derive(Clone, PartialEq, ::prost::Message)]
4611pub struct VectorExample {
4612 #[prost(oneof = "vector_example::Example", tags = "1, 2")]
4613 pub example: ::core::option::Option<vector_example::Example>,
4614}
4615pub mod vector_example {
4617 #[derive(Clone, PartialEq, ::prost::Oneof)]
4618 pub enum Example {
4619 #[prost(message, tag = "1")]
4620 Id(super::PointId),
4621 #[prost(message, tag = "2")]
4622 Vector(super::Vector),
4623 }
4624}
4625#[derive(Clone, PartialEq, ::prost::Message)]
4626pub struct ContextExamplePair {
4627 #[prost(message, optional, tag = "1")]
4628 pub positive: ::core::option::Option<VectorExample>,
4629 #[prost(message, optional, tag = "2")]
4630 pub negative: ::core::option::Option<VectorExample>,
4631}
4632#[derive(Clone, PartialEq, ::prost::Message)]
4633pub struct DiscoverPoints {
4634 #[prost(string, tag = "1")]
4636 pub collection_name: ::prost::alloc::string::String,
4637 #[prost(message, optional, tag = "2")]
4639 pub target: ::core::option::Option<TargetVector>,
4640 #[prost(message, repeated, tag = "3")]
4642 pub context: ::prost::alloc::vec::Vec<ContextExamplePair>,
4643 #[prost(message, optional, tag = "4")]
4645 pub filter: ::core::option::Option<Filter>,
4646 #[prost(uint64, tag = "5")]
4648 pub limit: u64,
4649 #[prost(message, optional, tag = "6")]
4651 pub with_payload: ::core::option::Option<WithPayloadSelector>,
4652 #[prost(message, optional, tag = "7")]
4654 pub params: ::core::option::Option<SearchParams>,
4655 #[prost(uint64, optional, tag = "8")]
4657 pub offset: ::core::option::Option<u64>,
4658 #[prost(string, optional, tag = "9")]
4660 pub using: ::core::option::Option<::prost::alloc::string::String>,
4661 #[prost(message, optional, tag = "10")]
4663 pub with_vectors: ::core::option::Option<WithVectorsSelector>,
4664 #[prost(message, optional, tag = "11")]
4666 pub lookup_from: ::core::option::Option<LookupLocation>,
4667 #[prost(message, optional, tag = "12")]
4669 pub read_consistency: ::core::option::Option<ReadConsistency>,
4670 #[prost(uint64, optional, tag = "13")]
4672 pub timeout: ::core::option::Option<u64>,
4673 #[prost(message, optional, tag = "14")]
4675 pub shard_key_selector: ::core::option::Option<ShardKeySelector>,
4676}
4677#[derive(Clone, PartialEq, ::prost::Message)]
4678pub struct DiscoverBatchPoints {
4679 #[prost(string, tag = "1")]
4681 pub collection_name: ::prost::alloc::string::String,
4682 #[prost(message, repeated, tag = "2")]
4683 pub discover_points: ::prost::alloc::vec::Vec<DiscoverPoints>,
4684 #[prost(message, optional, tag = "3")]
4686 pub read_consistency: ::core::option::Option<ReadConsistency>,
4687 #[prost(uint64, optional, tag = "4")]
4689 pub timeout: ::core::option::Option<u64>,
4690}
4691#[derive(Clone, PartialEq, ::prost::Message)]
4692pub struct CountPoints {
4693 #[prost(string, tag = "1")]
4695 pub collection_name: ::prost::alloc::string::String,
4696 #[prost(message, optional, tag = "2")]
4698 pub filter: ::core::option::Option<Filter>,
4699 #[prost(bool, optional, tag = "3")]
4701 pub exact: ::core::option::Option<bool>,
4702 #[prost(message, optional, tag = "4")]
4704 pub read_consistency: ::core::option::Option<ReadConsistency>,
4705 #[prost(message, optional, tag = "5")]
4707 pub shard_key_selector: ::core::option::Option<ShardKeySelector>,
4708 #[prost(uint64, optional, tag = "6")]
4710 pub timeout: ::core::option::Option<u64>,
4711}
4712#[derive(Clone, PartialEq, ::prost::Message)]
4713pub struct RecommendInput {
4714 #[prost(message, repeated, tag = "1")]
4716 pub positive: ::prost::alloc::vec::Vec<VectorInput>,
4717 #[prost(message, repeated, tag = "2")]
4719 pub negative: ::prost::alloc::vec::Vec<VectorInput>,
4720 #[prost(enumeration = "RecommendStrategy", optional, tag = "3")]
4722 pub strategy: ::core::option::Option<i32>,
4723}
4724#[derive(Clone, PartialEq, ::prost::Message)]
4725pub struct ContextInputPair {
4726 #[prost(message, optional, tag = "1")]
4728 pub positive: ::core::option::Option<VectorInput>,
4729 #[prost(message, optional, tag = "2")]
4731 pub negative: ::core::option::Option<VectorInput>,
4732}
4733#[derive(Clone, PartialEq, ::prost::Message)]
4734pub struct DiscoverInput {
4735 #[prost(message, optional, tag = "1")]
4737 pub target: ::core::option::Option<VectorInput>,
4738 #[prost(message, optional, tag = "2")]
4740 pub context: ::core::option::Option<ContextInput>,
4741}
4742#[derive(Clone, PartialEq, ::prost::Message)]
4743pub struct ContextInput {
4744 #[prost(message, repeated, tag = "1")]
4746 pub pairs: ::prost::alloc::vec::Vec<ContextInputPair>,
4747}
4748#[derive(Clone, PartialEq, ::prost::Message)]
4749pub struct RelevanceFeedbackInput {
4750 #[prost(message, optional, tag = "1")]
4752 pub target: ::core::option::Option<VectorInput>,
4753 #[prost(message, repeated, tag = "2")]
4755 pub feedback: ::prost::alloc::vec::Vec<FeedbackItem>,
4756 #[prost(message, optional, tag = "3")]
4758 pub strategy: ::core::option::Option<FeedbackStrategy>,
4759}
4760#[derive(Clone, PartialEq, ::prost::Message)]
4761pub struct FeedbackItem {
4762 #[prost(message, optional, tag = "1")]
4764 pub example: ::core::option::Option<VectorInput>,
4765 #[prost(float, tag = "2")]
4767 pub score: f32,
4768}
4769#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4770pub struct FeedbackStrategy {
4771 #[prost(oneof = "feedback_strategy::Variant", tags = "1")]
4772 pub variant: ::core::option::Option<feedback_strategy::Variant>,
4773}
4774pub mod feedback_strategy {
4776 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
4777 pub enum Variant {
4778 #[prost(message, tag = "1")]
4780 Naive(super::NaiveFeedbackStrategy),
4781 }
4782}
4783#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4784pub struct NaiveFeedbackStrategy {
4785 #[prost(float, tag = "1")]
4786 pub a: f32,
4787 #[prost(float, tag = "2")]
4788 pub b: f32,
4789 #[prost(float, tag = "3")]
4790 pub c: f32,
4791}
4792#[derive(Clone, PartialEq, ::prost::Message)]
4793pub struct Formula {
4794 #[prost(message, optional, tag = "1")]
4795 pub expression: ::core::option::Option<Expression>,
4796 #[prost(map = "string, message", tag = "2")]
4797 pub defaults: ::std::collections::HashMap<::prost::alloc::string::String, Value>,
4798}
4799#[derive(Clone, PartialEq, ::prost::Message)]
4800pub struct Expression {
4801 #[prost(
4802 oneof = "expression::Variant",
4803 tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19"
4804 )]
4805 pub variant: ::core::option::Option<expression::Variant>,
4806}
4807pub mod expression {
4809 #[derive(Clone, PartialEq, ::prost::Oneof)]
4810 pub enum Variant {
4811 #[prost(float, tag = "1")]
4812 Constant(f32),
4813 #[prost(string, tag = "2")]
4815 Variable(::prost::alloc::string::String),
4816 #[prost(message, tag = "3")]
4818 Condition(super::Condition),
4819 #[prost(message, tag = "4")]
4821 GeoDistance(super::GeoDistance),
4822 #[prost(string, tag = "5")]
4824 Datetime(::prost::alloc::string::String),
4825 #[prost(string, tag = "6")]
4827 DatetimeKey(::prost::alloc::string::String),
4828 #[prost(message, tag = "7")]
4830 Mult(super::MultExpression),
4831 #[prost(message, tag = "8")]
4833 Sum(super::SumExpression),
4834 #[prost(message, tag = "9")]
4836 Div(::prost::alloc::boxed::Box<super::DivExpression>),
4837 #[prost(message, tag = "10")]
4839 Neg(::prost::alloc::boxed::Box<super::Expression>),
4840 #[prost(message, tag = "11")]
4842 Abs(::prost::alloc::boxed::Box<super::Expression>),
4843 #[prost(message, tag = "12")]
4845 Sqrt(::prost::alloc::boxed::Box<super::Expression>),
4846 #[prost(message, tag = "13")]
4848 Pow(::prost::alloc::boxed::Box<super::PowExpression>),
4849 #[prost(message, tag = "14")]
4851 Exp(::prost::alloc::boxed::Box<super::Expression>),
4852 #[prost(message, tag = "15")]
4854 Log10(::prost::alloc::boxed::Box<super::Expression>),
4855 #[prost(message, tag = "16")]
4857 Ln(::prost::alloc::boxed::Box<super::Expression>),
4858 #[prost(message, tag = "17")]
4860 ExpDecay(::prost::alloc::boxed::Box<super::DecayParamsExpression>),
4861 #[prost(message, tag = "18")]
4863 GaussDecay(::prost::alloc::boxed::Box<super::DecayParamsExpression>),
4864 #[prost(message, tag = "19")]
4866 LinDecay(::prost::alloc::boxed::Box<super::DecayParamsExpression>),
4867 }
4868}
4869#[derive(Clone, PartialEq, ::prost::Message)]
4870pub struct GeoDistance {
4871 #[prost(message, optional, tag = "1")]
4872 pub origin: ::core::option::Option<GeoPoint>,
4873 #[prost(string, tag = "2")]
4874 pub to: ::prost::alloc::string::String,
4875}
4876#[derive(Clone, PartialEq, ::prost::Message)]
4877pub struct MultExpression {
4878 #[prost(message, repeated, tag = "1")]
4879 pub mult: ::prost::alloc::vec::Vec<Expression>,
4880}
4881#[derive(Clone, PartialEq, ::prost::Message)]
4882pub struct SumExpression {
4883 #[prost(message, repeated, tag = "1")]
4884 pub sum: ::prost::alloc::vec::Vec<Expression>,
4885}
4886#[derive(Clone, PartialEq, ::prost::Message)]
4887pub struct DivExpression {
4888 #[prost(message, optional, boxed, tag = "1")]
4889 pub left: ::core::option::Option<::prost::alloc::boxed::Box<Expression>>,
4890 #[prost(message, optional, boxed, tag = "2")]
4891 pub right: ::core::option::Option<::prost::alloc::boxed::Box<Expression>>,
4892 #[prost(float, optional, tag = "3")]
4893 pub by_zero_default: ::core::option::Option<f32>,
4894}
4895#[derive(Clone, PartialEq, ::prost::Message)]
4896pub struct PowExpression {
4897 #[prost(message, optional, boxed, tag = "1")]
4898 pub base: ::core::option::Option<::prost::alloc::boxed::Box<Expression>>,
4899 #[prost(message, optional, boxed, tag = "2")]
4900 pub exponent: ::core::option::Option<::prost::alloc::boxed::Box<Expression>>,
4901}
4902#[derive(Clone, PartialEq, ::prost::Message)]
4903pub struct DecayParamsExpression {
4904 #[prost(message, optional, boxed, tag = "1")]
4906 pub x: ::core::option::Option<::prost::alloc::boxed::Box<Expression>>,
4907 #[prost(message, optional, boxed, tag = "2")]
4909 pub target: ::core::option::Option<::prost::alloc::boxed::Box<Expression>>,
4910 #[prost(float, optional, tag = "3")]
4913 pub scale: ::core::option::Option<f32>,
4914 #[prost(float, optional, tag = "4")]
4918 pub midpoint: ::core::option::Option<f32>,
4919}
4920#[derive(Clone, PartialEq, ::prost::Message)]
4921pub struct NearestInputWithMmr {
4922 #[prost(message, optional, tag = "1")]
4924 pub nearest: ::core::option::Option<VectorInput>,
4925 #[prost(message, optional, tag = "2")]
4928 pub mmr: ::core::option::Option<Mmr>,
4929}
4930#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4932pub struct Mmr {
4933 #[prost(float, optional, tag = "2")]
4942 pub diversity: ::core::option::Option<f32>,
4943 #[prost(uint32, optional, tag = "3")]
4947 pub candidates_limit: ::core::option::Option<u32>,
4948}
4949#[derive(Clone, PartialEq, ::prost::Message)]
4951pub struct Rrf {
4952 #[prost(uint32, optional, tag = "1")]
4954 pub k: ::core::option::Option<u32>,
4955 #[prost(float, repeated, tag = "2")]
4960 pub weights: ::prost::alloc::vec::Vec<f32>,
4961}
4962#[derive(Clone, PartialEq, ::prost::Message)]
4963pub struct Query {
4964 #[prost(oneof = "query::Variant", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11")]
4965 pub variant: ::core::option::Option<query::Variant>,
4966}
4967pub mod query {
4969 #[derive(Clone, PartialEq, ::prost::Oneof)]
4970 pub enum Variant {
4971 #[prost(message, tag = "1")]
4973 Nearest(super::VectorInput),
4974 #[prost(message, tag = "2")]
4976 Recommend(super::RecommendInput),
4977 #[prost(message, tag = "3")]
4979 Discover(super::DiscoverInput),
4980 #[prost(message, tag = "4")]
4982 Context(super::ContextInput),
4983 #[prost(message, tag = "5")]
4985 OrderBy(super::OrderBy),
4986 #[prost(enumeration = "super::Fusion", tag = "6")]
4988 Fusion(i32),
4989 #[prost(enumeration = "super::Sample", tag = "7")]
4991 Sample(i32),
4992 #[prost(message, tag = "8")]
4994 Formula(super::Formula),
4995 #[prost(message, tag = "9")]
4997 NearestWithMmr(super::NearestInputWithMmr),
4998 #[prost(message, tag = "10")]
5000 Rrf(super::Rrf),
5001 #[prost(message, tag = "11")]
5003 RelevanceFeedback(super::RelevanceFeedbackInput),
5004 }
5005}
5006#[derive(Clone, PartialEq, ::prost::Message)]
5007pub struct PrefetchQuery {
5008 #[prost(message, repeated, tag = "1")]
5011 pub prefetch: ::prost::alloc::vec::Vec<PrefetchQuery>,
5012 #[prost(message, optional, tag = "2")]
5015 pub query: ::core::option::Option<Query>,
5016 #[prost(string, optional, tag = "3")]
5019 pub using: ::core::option::Option<::prost::alloc::string::String>,
5020 #[prost(message, optional, tag = "4")]
5022 pub filter: ::core::option::Option<Filter>,
5023 #[prost(message, optional, tag = "5")]
5025 pub params: ::core::option::Option<SearchParams>,
5026 #[prost(float, optional, tag = "6")]
5028 pub score_threshold: ::core::option::Option<f32>,
5029 #[prost(uint64, optional, tag = "7")]
5031 pub limit: ::core::option::Option<u64>,
5032 #[prost(message, optional, tag = "8")]
5035 pub lookup_from: ::core::option::Option<LookupLocation>,
5036}
5037#[derive(Clone, PartialEq, ::prost::Message)]
5038pub struct QueryPoints {
5039 #[prost(string, tag = "1")]
5041 pub collection_name: ::prost::alloc::string::String,
5042 #[prost(message, repeated, tag = "2")]
5045 pub prefetch: ::prost::alloc::vec::Vec<PrefetchQuery>,
5046 #[prost(message, optional, tag = "3")]
5048 pub query: ::core::option::Option<Query>,
5049 #[prost(string, optional, tag = "4")]
5052 pub using: ::core::option::Option<::prost::alloc::string::String>,
5053 #[prost(message, optional, tag = "5")]
5055 pub filter: ::core::option::Option<Filter>,
5056 #[prost(message, optional, tag = "6")]
5058 pub params: ::core::option::Option<SearchParams>,
5059 #[prost(float, optional, tag = "7")]
5061 pub score_threshold: ::core::option::Option<f32>,
5062 #[prost(uint64, optional, tag = "8")]
5064 pub limit: ::core::option::Option<u64>,
5065 #[prost(uint64, optional, tag = "9")]
5067 pub offset: ::core::option::Option<u64>,
5068 #[prost(message, optional, tag = "10")]
5070 pub with_vectors: ::core::option::Option<WithVectorsSelector>,
5071 #[prost(message, optional, tag = "11")]
5073 pub with_payload: ::core::option::Option<WithPayloadSelector>,
5074 #[prost(message, optional, tag = "12")]
5076 pub read_consistency: ::core::option::Option<ReadConsistency>,
5077 #[prost(message, optional, tag = "13")]
5080 pub shard_key_selector: ::core::option::Option<ShardKeySelector>,
5081 #[prost(message, optional, tag = "14")]
5084 pub lookup_from: ::core::option::Option<LookupLocation>,
5085 #[prost(uint64, optional, tag = "15")]
5087 pub timeout: ::core::option::Option<u64>,
5088}
5089#[derive(Clone, PartialEq, ::prost::Message)]
5090pub struct QueryBatchPoints {
5091 #[prost(string, tag = "1")]
5092 pub collection_name: ::prost::alloc::string::String,
5093 #[prost(message, repeated, tag = "2")]
5094 pub query_points: ::prost::alloc::vec::Vec<QueryPoints>,
5095 #[prost(message, optional, tag = "3")]
5097 pub read_consistency: ::core::option::Option<ReadConsistency>,
5098 #[prost(uint64, optional, tag = "4")]
5100 pub timeout: ::core::option::Option<u64>,
5101}
5102#[derive(Clone, PartialEq, ::prost::Message)]
5103pub struct QueryPointGroups {
5104 #[prost(string, tag = "1")]
5106 pub collection_name: ::prost::alloc::string::String,
5107 #[prost(message, repeated, tag = "2")]
5110 pub prefetch: ::prost::alloc::vec::Vec<PrefetchQuery>,
5111 #[prost(message, optional, tag = "3")]
5113 pub query: ::core::option::Option<Query>,
5114 #[prost(string, optional, tag = "4")]
5117 pub using: ::core::option::Option<::prost::alloc::string::String>,
5118 #[prost(message, optional, tag = "5")]
5120 pub filter: ::core::option::Option<Filter>,
5121 #[prost(message, optional, tag = "6")]
5123 pub params: ::core::option::Option<SearchParams>,
5124 #[prost(float, optional, tag = "7")]
5126 pub score_threshold: ::core::option::Option<f32>,
5127 #[prost(message, optional, tag = "8")]
5129 pub with_payload: ::core::option::Option<WithPayloadSelector>,
5130 #[prost(message, optional, tag = "9")]
5132 pub with_vectors: ::core::option::Option<WithVectorsSelector>,
5133 #[prost(message, optional, tag = "10")]
5136 pub lookup_from: ::core::option::Option<LookupLocation>,
5137 #[prost(uint64, optional, tag = "11")]
5139 pub limit: ::core::option::Option<u64>,
5140 #[prost(uint64, optional, tag = "12")]
5142 pub group_size: ::core::option::Option<u64>,
5143 #[prost(string, tag = "13")]
5147 pub group_by: ::prost::alloc::string::String,
5148 #[prost(message, optional, tag = "14")]
5150 pub read_consistency: ::core::option::Option<ReadConsistency>,
5151 #[prost(message, optional, tag = "15")]
5153 pub with_lookup: ::core::option::Option<WithLookup>,
5154 #[prost(uint64, optional, tag = "16")]
5156 pub timeout: ::core::option::Option<u64>,
5157 #[prost(message, optional, tag = "17")]
5159 pub shard_key_selector: ::core::option::Option<ShardKeySelector>,
5160}
5161#[derive(Clone, PartialEq, ::prost::Message)]
5162pub struct FacetCounts {
5163 #[prost(string, tag = "1")]
5165 pub collection_name: ::prost::alloc::string::String,
5166 #[prost(string, tag = "2")]
5168 pub key: ::prost::alloc::string::String,
5169 #[prost(message, optional, tag = "3")]
5171 pub filter: ::core::option::Option<Filter>,
5172 #[prost(uint64, optional, tag = "4")]
5174 pub limit: ::core::option::Option<u64>,
5175 #[prost(bool, optional, tag = "5")]
5177 pub exact: ::core::option::Option<bool>,
5178 #[prost(uint64, optional, tag = "6")]
5180 pub timeout: ::core::option::Option<u64>,
5181 #[prost(message, optional, tag = "7")]
5183 pub read_consistency: ::core::option::Option<ReadConsistency>,
5184 #[prost(message, optional, tag = "8")]
5186 pub shard_key_selector: ::core::option::Option<ShardKeySelector>,
5187}
5188#[derive(Clone, PartialEq, ::prost::Message)]
5189pub struct FacetValue {
5190 #[prost(oneof = "facet_value::Variant", tags = "1, 2, 3")]
5191 pub variant: ::core::option::Option<facet_value::Variant>,
5192}
5193pub mod facet_value {
5195 #[derive(Clone, PartialEq, ::prost::Oneof)]
5196 pub enum Variant {
5197 #[prost(string, tag = "1")]
5199 StringValue(::prost::alloc::string::String),
5200 #[prost(int64, tag = "2")]
5202 IntegerValue(i64),
5203 #[prost(bool, tag = "3")]
5205 BoolValue(bool),
5206 }
5207}
5208#[derive(Clone, PartialEq, ::prost::Message)]
5209pub struct FacetHit {
5210 #[prost(message, optional, tag = "1")]
5212 pub value: ::core::option::Option<FacetValue>,
5213 #[prost(uint64, tag = "2")]
5215 pub count: u64,
5216}
5217#[derive(Clone, PartialEq, ::prost::Message)]
5218pub struct SearchMatrixPoints {
5219 #[prost(string, tag = "1")]
5221 pub collection_name: ::prost::alloc::string::String,
5222 #[prost(message, optional, tag = "2")]
5224 pub filter: ::core::option::Option<Filter>,
5225 #[prost(uint64, optional, tag = "3")]
5227 pub sample: ::core::option::Option<u64>,
5228 #[prost(uint64, optional, tag = "4")]
5230 pub limit: ::core::option::Option<u64>,
5231 #[prost(string, optional, tag = "5")]
5233 pub using: ::core::option::Option<::prost::alloc::string::String>,
5234 #[prost(uint64, optional, tag = "6")]
5236 pub timeout: ::core::option::Option<u64>,
5237 #[prost(message, optional, tag = "7")]
5239 pub read_consistency: ::core::option::Option<ReadConsistency>,
5240 #[prost(message, optional, tag = "8")]
5242 pub shard_key_selector: ::core::option::Option<ShardKeySelector>,
5243}
5244#[derive(Clone, PartialEq, ::prost::Message)]
5245pub struct SearchMatrixPairs {
5246 #[prost(message, repeated, tag = "1")]
5248 pub pairs: ::prost::alloc::vec::Vec<SearchMatrixPair>,
5249}
5250#[derive(Clone, PartialEq, ::prost::Message)]
5251pub struct SearchMatrixPair {
5252 #[prost(message, optional, tag = "1")]
5254 pub a: ::core::option::Option<PointId>,
5255 #[prost(message, optional, tag = "2")]
5257 pub b: ::core::option::Option<PointId>,
5258 #[prost(float, tag = "3")]
5260 pub score: f32,
5261}
5262#[derive(Clone, PartialEq, ::prost::Message)]
5263pub struct SearchMatrixOffsets {
5264 #[prost(uint64, repeated, tag = "1")]
5266 pub offsets_row: ::prost::alloc::vec::Vec<u64>,
5267 #[prost(uint64, repeated, tag = "2")]
5269 pub offsets_col: ::prost::alloc::vec::Vec<u64>,
5270 #[prost(float, repeated, tag = "3")]
5272 pub scores: ::prost::alloc::vec::Vec<f32>,
5273 #[prost(message, repeated, tag = "4")]
5275 pub ids: ::prost::alloc::vec::Vec<PointId>,
5276}
5277#[derive(Clone, PartialEq, ::prost::Message)]
5278pub struct PointsUpdateOperation {
5279 #[prost(
5280 oneof = "points_update_operation::Operation",
5281 tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10"
5282 )]
5283 pub operation: ::core::option::Option<points_update_operation::Operation>,
5284}
5285pub mod points_update_operation {
5287 #[derive(Clone, PartialEq, ::prost::Message)]
5288 pub struct PointStructList {
5289 #[prost(message, repeated, tag = "1")]
5290 pub points: ::prost::alloc::vec::Vec<super::PointStruct>,
5291 #[prost(message, optional, tag = "2")]
5293 pub shard_key_selector: ::core::option::Option<super::ShardKeySelector>,
5294 #[prost(message, optional, tag = "3")]
5297 pub update_filter: ::core::option::Option<super::Filter>,
5298 #[prost(enumeration = "super::UpdateMode", optional, tag = "4")]
5300 pub update_mode: ::core::option::Option<i32>,
5301 }
5302 #[derive(Clone, PartialEq, ::prost::Message)]
5303 pub struct SetPayload {
5304 #[prost(map = "string, message", tag = "1")]
5305 pub payload: ::std::collections::HashMap<
5306 ::prost::alloc::string::String,
5307 super::Value,
5308 >,
5309 #[prost(message, optional, tag = "2")]
5311 pub points_selector: ::core::option::Option<super::PointsSelector>,
5312 #[prost(message, optional, tag = "3")]
5314 pub shard_key_selector: ::core::option::Option<super::ShardKeySelector>,
5315 #[prost(string, optional, tag = "4")]
5317 pub key: ::core::option::Option<::prost::alloc::string::String>,
5318 }
5319 #[derive(Clone, PartialEq, ::prost::Message)]
5320 pub struct OverwritePayload {
5321 #[prost(map = "string, message", tag = "1")]
5322 pub payload: ::std::collections::HashMap<
5323 ::prost::alloc::string::String,
5324 super::Value,
5325 >,
5326 #[prost(message, optional, tag = "2")]
5328 pub points_selector: ::core::option::Option<super::PointsSelector>,
5329 #[prost(message, optional, tag = "3")]
5331 pub shard_key_selector: ::core::option::Option<super::ShardKeySelector>,
5332 #[prost(string, optional, tag = "4")]
5334 pub key: ::core::option::Option<::prost::alloc::string::String>,
5335 }
5336 #[derive(Clone, PartialEq, ::prost::Message)]
5337 pub struct DeletePayload {
5338 #[prost(string, repeated, tag = "1")]
5339 pub keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5340 #[prost(message, optional, tag = "2")]
5342 pub points_selector: ::core::option::Option<super::PointsSelector>,
5343 #[prost(message, optional, tag = "3")]
5345 pub shard_key_selector: ::core::option::Option<super::ShardKeySelector>,
5346 }
5347 #[derive(Clone, PartialEq, ::prost::Message)]
5348 pub struct UpdateVectors {
5349 #[prost(message, repeated, tag = "1")]
5351 pub points: ::prost::alloc::vec::Vec<super::PointVectors>,
5352 #[prost(message, optional, tag = "2")]
5354 pub shard_key_selector: ::core::option::Option<super::ShardKeySelector>,
5355 #[prost(message, optional, tag = "3")]
5357 pub update_filter: ::core::option::Option<super::Filter>,
5358 }
5359 #[derive(Clone, PartialEq, ::prost::Message)]
5360 pub struct DeleteVectors {
5361 #[prost(message, optional, tag = "1")]
5363 pub points_selector: ::core::option::Option<super::PointsSelector>,
5364 #[prost(message, optional, tag = "2")]
5366 pub vectors: ::core::option::Option<super::VectorsSelector>,
5367 #[prost(message, optional, tag = "3")]
5369 pub shard_key_selector: ::core::option::Option<super::ShardKeySelector>,
5370 }
5371 #[derive(Clone, PartialEq, ::prost::Message)]
5372 pub struct DeletePoints {
5373 #[prost(message, optional, tag = "1")]
5375 pub points: ::core::option::Option<super::PointsSelector>,
5376 #[prost(message, optional, tag = "2")]
5378 pub shard_key_selector: ::core::option::Option<super::ShardKeySelector>,
5379 }
5380 #[derive(Clone, PartialEq, ::prost::Message)]
5381 pub struct ClearPayload {
5382 #[prost(message, optional, tag = "1")]
5384 pub points: ::core::option::Option<super::PointsSelector>,
5385 #[prost(message, optional, tag = "2")]
5387 pub shard_key_selector: ::core::option::Option<super::ShardKeySelector>,
5388 }
5389 #[derive(Clone, PartialEq, ::prost::Oneof)]
5390 pub enum Operation {
5391 #[prost(message, tag = "1")]
5392 Upsert(PointStructList),
5393 #[prost(message, tag = "2")]
5394 #[deprecated(since = "1.7.0", note = "use `DeletePoints` instead")]
5395 DeleteDeprecated(super::PointsSelector),
5396 #[prost(message, tag = "3")]
5397 SetPayload(SetPayload),
5398 #[prost(message, tag = "4")]
5399 OverwritePayload(OverwritePayload),
5400 #[prost(message, tag = "5")]
5401 DeletePayload(DeletePayload),
5402 #[prost(message, tag = "6")]
5403 #[deprecated(since = "1.7.0", note = "use `ClearPayload` instead")]
5404 ClearPayloadDeprecated(super::PointsSelector),
5405 #[prost(message, tag = "7")]
5406 UpdateVectors(UpdateVectors),
5407 #[prost(message, tag = "8")]
5408 DeleteVectors(DeleteVectors),
5409 #[prost(message, tag = "9")]
5410 DeletePoints(DeletePoints),
5411 #[prost(message, tag = "10")]
5412 ClearPayload(ClearPayload),
5413 }
5414}
5415#[derive(Clone, PartialEq, ::prost::Message)]
5416pub struct UpdateBatchPoints {
5417 #[prost(string, tag = "1")]
5419 pub collection_name: ::prost::alloc::string::String,
5420 #[prost(bool, optional, tag = "2")]
5422 pub wait: ::core::option::Option<bool>,
5423 #[prost(message, repeated, tag = "3")]
5424 pub operations: ::prost::alloc::vec::Vec<PointsUpdateOperation>,
5425 #[prost(message, optional, tag = "4")]
5427 pub ordering: ::core::option::Option<WriteOrdering>,
5428 #[prost(uint64, optional, tag = "5")]
5430 pub timeout: ::core::option::Option<u64>,
5431}
5432#[derive(Clone, PartialEq, ::prost::Message)]
5433pub struct PointsOperationResponse {
5434 #[prost(message, optional, tag = "1")]
5435 pub result: ::core::option::Option<UpdateResult>,
5436 #[prost(double, tag = "2")]
5438 pub time: f64,
5439 #[prost(message, optional, tag = "3")]
5440 pub usage: ::core::option::Option<Usage>,
5441}
5442#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5443pub struct UpdateResult {
5444 #[prost(uint64, optional, tag = "1")]
5446 pub operation_id: ::core::option::Option<u64>,
5447 #[prost(enumeration = "UpdateStatus", tag = "2")]
5449 pub status: i32,
5450}
5451#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5452pub struct OrderValue {
5453 #[prost(oneof = "order_value::Variant", tags = "1, 2")]
5454 pub variant: ::core::option::Option<order_value::Variant>,
5455}
5456pub mod order_value {
5458 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
5459 pub enum Variant {
5460 #[prost(int64, tag = "1")]
5461 Int(i64),
5462 #[prost(double, tag = "2")]
5463 Float(f64),
5464 }
5465}
5466#[derive(Clone, PartialEq, ::prost::Message)]
5467pub struct ScoredPoint {
5468 #[prost(message, optional, tag = "1")]
5470 pub id: ::core::option::Option<PointId>,
5471 #[prost(map = "string, message", tag = "2")]
5473 pub payload: ::std::collections::HashMap<::prost::alloc::string::String, Value>,
5474 #[prost(float, tag = "3")]
5476 pub score: f32,
5477 #[prost(uint64, tag = "5")]
5479 pub version: u64,
5480 #[prost(message, optional, tag = "6")]
5482 pub vectors: ::core::option::Option<VectorsOutput>,
5483 #[prost(message, optional, tag = "7")]
5485 pub shard_key: ::core::option::Option<ShardKey>,
5486 #[prost(message, optional, tag = "8")]
5488 pub order_value: ::core::option::Option<OrderValue>,
5489}
5490#[derive(Clone, PartialEq, ::prost::Message)]
5491pub struct GroupId {
5492 #[prost(oneof = "group_id::Kind", tags = "1, 2, 3")]
5493 pub kind: ::core::option::Option<group_id::Kind>,
5494}
5495pub mod group_id {
5497 #[derive(Clone, PartialEq, ::prost::Oneof)]
5498 pub enum Kind {
5499 #[prost(uint64, tag = "1")]
5501 UnsignedValue(u64),
5502 #[prost(int64, tag = "2")]
5504 IntegerValue(i64),
5505 #[prost(string, tag = "3")]
5507 StringValue(::prost::alloc::string::String),
5508 }
5509}
5510#[derive(Clone, PartialEq, ::prost::Message)]
5511pub struct PointGroup {
5512 #[prost(message, optional, tag = "1")]
5514 pub id: ::core::option::Option<GroupId>,
5515 #[prost(message, repeated, tag = "2")]
5517 pub hits: ::prost::alloc::vec::Vec<ScoredPoint>,
5518 #[prost(message, optional, tag = "3")]
5520 pub lookup: ::core::option::Option<RetrievedPoint>,
5521}
5522#[derive(Clone, PartialEq, ::prost::Message)]
5523pub struct GroupsResult {
5524 #[prost(message, repeated, tag = "1")]
5526 pub groups: ::prost::alloc::vec::Vec<PointGroup>,
5527}
5528#[derive(Clone, PartialEq, ::prost::Message)]
5529pub struct SearchResponse {
5530 #[prost(message, repeated, tag = "1")]
5531 pub result: ::prost::alloc::vec::Vec<ScoredPoint>,
5532 #[prost(double, tag = "2")]
5534 pub time: f64,
5535 #[prost(message, optional, tag = "3")]
5536 pub usage: ::core::option::Option<Usage>,
5537}
5538#[derive(Clone, PartialEq, ::prost::Message)]
5539pub struct QueryResponse {
5540 #[prost(message, repeated, tag = "1")]
5541 pub result: ::prost::alloc::vec::Vec<ScoredPoint>,
5542 #[prost(double, tag = "2")]
5544 pub time: f64,
5545 #[prost(message, optional, tag = "3")]
5546 pub usage: ::core::option::Option<Usage>,
5547}
5548#[derive(Clone, PartialEq, ::prost::Message)]
5549pub struct QueryBatchResponse {
5550 #[prost(message, repeated, tag = "1")]
5551 pub result: ::prost::alloc::vec::Vec<BatchResult>,
5552 #[prost(double, tag = "2")]
5554 pub time: f64,
5555 #[prost(message, optional, tag = "3")]
5556 pub usage: ::core::option::Option<Usage>,
5557}
5558#[derive(Clone, PartialEq, ::prost::Message)]
5559pub struct QueryGroupsResponse {
5560 #[prost(message, optional, tag = "1")]
5561 pub result: ::core::option::Option<GroupsResult>,
5562 #[prost(double, tag = "2")]
5564 pub time: f64,
5565 #[prost(message, optional, tag = "3")]
5566 pub usage: ::core::option::Option<Usage>,
5567}
5568#[derive(Clone, PartialEq, ::prost::Message)]
5569pub struct BatchResult {
5570 #[prost(message, repeated, tag = "1")]
5571 pub result: ::prost::alloc::vec::Vec<ScoredPoint>,
5572}
5573#[derive(Clone, PartialEq, ::prost::Message)]
5574pub struct SearchBatchResponse {
5575 #[prost(message, repeated, tag = "1")]
5576 pub result: ::prost::alloc::vec::Vec<BatchResult>,
5577 #[prost(double, tag = "2")]
5579 pub time: f64,
5580 #[prost(message, optional, tag = "3")]
5581 pub usage: ::core::option::Option<Usage>,
5582}
5583#[derive(Clone, PartialEq, ::prost::Message)]
5584pub struct SearchGroupsResponse {
5585 #[prost(message, optional, tag = "1")]
5586 pub result: ::core::option::Option<GroupsResult>,
5587 #[prost(double, tag = "2")]
5589 pub time: f64,
5590 #[prost(message, optional, tag = "3")]
5591 pub usage: ::core::option::Option<Usage>,
5592}
5593#[derive(Clone, PartialEq, ::prost::Message)]
5594pub struct CountResponse {
5595 #[prost(message, optional, tag = "1")]
5596 pub result: ::core::option::Option<CountResult>,
5597 #[prost(double, tag = "2")]
5599 pub time: f64,
5600 #[prost(message, optional, tag = "3")]
5601 pub usage: ::core::option::Option<Usage>,
5602}
5603#[derive(Clone, PartialEq, ::prost::Message)]
5604pub struct ScrollResponse {
5605 #[prost(message, optional, tag = "1")]
5607 pub next_page_offset: ::core::option::Option<PointId>,
5608 #[prost(message, repeated, tag = "2")]
5609 pub result: ::prost::alloc::vec::Vec<RetrievedPoint>,
5610 #[prost(double, tag = "3")]
5612 pub time: f64,
5613 #[prost(message, optional, tag = "4")]
5614 pub usage: ::core::option::Option<Usage>,
5615}
5616#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5617pub struct CountResult {
5618 #[prost(uint64, tag = "1")]
5619 pub count: u64,
5620}
5621#[derive(Clone, PartialEq, ::prost::Message)]
5622pub struct RetrievedPoint {
5623 #[prost(message, optional, tag = "1")]
5624 pub id: ::core::option::Option<PointId>,
5625 #[prost(map = "string, message", tag = "2")]
5626 pub payload: ::std::collections::HashMap<::prost::alloc::string::String, Value>,
5627 #[prost(message, optional, tag = "4")]
5628 pub vectors: ::core::option::Option<VectorsOutput>,
5629 #[prost(message, optional, tag = "5")]
5631 pub shard_key: ::core::option::Option<ShardKey>,
5632 #[prost(message, optional, tag = "6")]
5634 pub order_value: ::core::option::Option<OrderValue>,
5635}
5636#[derive(Clone, PartialEq, ::prost::Message)]
5637pub struct GetResponse {
5638 #[prost(message, repeated, tag = "1")]
5639 pub result: ::prost::alloc::vec::Vec<RetrievedPoint>,
5640 #[prost(double, tag = "2")]
5642 pub time: f64,
5643 #[prost(message, optional, tag = "3")]
5644 pub usage: ::core::option::Option<Usage>,
5645}
5646#[derive(Clone, PartialEq, ::prost::Message)]
5647pub struct RecommendResponse {
5648 #[prost(message, repeated, tag = "1")]
5649 pub result: ::prost::alloc::vec::Vec<ScoredPoint>,
5650 #[prost(double, tag = "2")]
5652 pub time: f64,
5653 #[prost(message, optional, tag = "3")]
5654 pub usage: ::core::option::Option<Usage>,
5655}
5656#[derive(Clone, PartialEq, ::prost::Message)]
5657pub struct RecommendBatchResponse {
5658 #[prost(message, repeated, tag = "1")]
5659 pub result: ::prost::alloc::vec::Vec<BatchResult>,
5660 #[prost(double, tag = "2")]
5662 pub time: f64,
5663 #[prost(message, optional, tag = "3")]
5664 pub usage: ::core::option::Option<Usage>,
5665}
5666#[derive(Clone, PartialEq, ::prost::Message)]
5667pub struct DiscoverResponse {
5668 #[prost(message, repeated, tag = "1")]
5669 pub result: ::prost::alloc::vec::Vec<ScoredPoint>,
5670 #[prost(double, tag = "2")]
5672 pub time: f64,
5673 #[prost(message, optional, tag = "3")]
5674 pub usage: ::core::option::Option<Usage>,
5675}
5676#[derive(Clone, PartialEq, ::prost::Message)]
5677pub struct DiscoverBatchResponse {
5678 #[prost(message, repeated, tag = "1")]
5679 pub result: ::prost::alloc::vec::Vec<BatchResult>,
5680 #[prost(double, tag = "2")]
5682 pub time: f64,
5683 #[prost(message, optional, tag = "3")]
5684 pub usage: ::core::option::Option<Usage>,
5685}
5686#[derive(Clone, PartialEq, ::prost::Message)]
5687pub struct RecommendGroupsResponse {
5688 #[prost(message, optional, tag = "1")]
5689 pub result: ::core::option::Option<GroupsResult>,
5690 #[prost(double, tag = "2")]
5692 pub time: f64,
5693 #[prost(message, optional, tag = "3")]
5694 pub usage: ::core::option::Option<Usage>,
5695}
5696#[derive(Clone, PartialEq, ::prost::Message)]
5697pub struct UpdateBatchResponse {
5698 #[prost(message, repeated, tag = "1")]
5699 pub result: ::prost::alloc::vec::Vec<UpdateResult>,
5700 #[prost(double, tag = "2")]
5702 pub time: f64,
5703 #[prost(message, optional, tag = "3")]
5704 pub usage: ::core::option::Option<Usage>,
5705}
5706#[derive(Clone, PartialEq, ::prost::Message)]
5707pub struct FacetResponse {
5708 #[prost(message, repeated, tag = "1")]
5709 pub hits: ::prost::alloc::vec::Vec<FacetHit>,
5710 #[prost(double, tag = "2")]
5712 pub time: f64,
5713 #[prost(message, optional, tag = "3")]
5714 pub usage: ::core::option::Option<Usage>,
5715}
5716#[derive(Clone, PartialEq, ::prost::Message)]
5717pub struct SearchMatrixPairsResponse {
5718 #[prost(message, optional, tag = "1")]
5719 pub result: ::core::option::Option<SearchMatrixPairs>,
5720 #[prost(double, tag = "2")]
5722 pub time: f64,
5723 #[prost(message, optional, tag = "3")]
5724 pub usage: ::core::option::Option<Usage>,
5725}
5726#[derive(Clone, PartialEq, ::prost::Message)]
5727pub struct SearchMatrixOffsetsResponse {
5728 #[prost(message, optional, tag = "1")]
5729 pub result: ::core::option::Option<SearchMatrixOffsets>,
5730 #[prost(double, tag = "2")]
5732 pub time: f64,
5733 #[prost(message, optional, tag = "3")]
5734 pub usage: ::core::option::Option<Usage>,
5735}
5736#[derive(Clone, PartialEq, ::prost::Message)]
5737pub struct PointsSelector {
5738 #[prost(oneof = "points_selector::PointsSelectorOneOf", tags = "1, 2")]
5739 pub points_selector_one_of: ::core::option::Option<
5740 points_selector::PointsSelectorOneOf,
5741 >,
5742}
5743pub mod points_selector {
5745 #[derive(Clone, PartialEq, ::prost::Oneof)]
5746 pub enum PointsSelectorOneOf {
5747 #[prost(message, tag = "1")]
5748 Points(super::PointsIdsList),
5749 #[prost(message, tag = "2")]
5750 Filter(super::Filter),
5751 }
5752}
5753#[derive(Clone, PartialEq, ::prost::Message)]
5754pub struct PointsIdsList {
5755 #[prost(message, repeated, tag = "1")]
5756 pub ids: ::prost::alloc::vec::Vec<PointId>,
5757}
5758#[derive(Clone, PartialEq, ::prost::Message)]
5759pub struct PointStruct {
5760 #[prost(message, optional, tag = "1")]
5761 pub id: ::core::option::Option<PointId>,
5762 #[prost(map = "string, message", tag = "3")]
5763 pub payload: ::std::collections::HashMap<::prost::alloc::string::String, Value>,
5764 #[prost(message, optional, tag = "4")]
5765 pub vectors: ::core::option::Option<Vectors>,
5766}
5767#[derive(Clone, PartialEq, ::prost::Message)]
5771pub struct Usage {
5772 #[prost(message, optional, tag = "1")]
5773 pub hardware: ::core::option::Option<HardwareUsage>,
5774 #[prost(message, optional, tag = "2")]
5775 pub inference: ::core::option::Option<InferenceUsage>,
5776}
5777#[derive(Clone, PartialEq, ::prost::Message)]
5778pub struct InferenceUsage {
5779 #[prost(map = "string, message", tag = "1")]
5780 pub models: ::std::collections::HashMap<::prost::alloc::string::String, ModelUsage>,
5781}
5782#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5783pub struct ModelUsage {
5784 #[prost(uint64, tag = "1")]
5785 pub tokens: u64,
5786}
5787#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5788pub struct HardwareUsage {
5789 #[prost(uint64, tag = "1")]
5790 pub cpu: u64,
5791 #[prost(uint64, tag = "2")]
5792 pub payload_io_read: u64,
5793 #[prost(uint64, tag = "3")]
5794 pub payload_io_write: u64,
5795 #[prost(uint64, tag = "4")]
5796 pub payload_index_io_read: u64,
5797 #[prost(uint64, tag = "5")]
5798 pub payload_index_io_write: u64,
5799 #[prost(uint64, tag = "6")]
5800 pub vector_io_read: u64,
5801 #[prost(uint64, tag = "7")]
5802 pub vector_io_write: u64,
5803}
5804#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5805#[repr(i32)]
5806pub enum WriteOrderingType {
5807 Weak = 0,
5809 Medium = 1,
5812 Strong = 2,
5815}
5816impl WriteOrderingType {
5817 pub fn as_str_name(&self) -> &'static str {
5822 match self {
5823 Self::Weak => "Weak",
5824 Self::Medium => "Medium",
5825 Self::Strong => "Strong",
5826 }
5827 }
5828 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5830 match value {
5831 "Weak" => Some(Self::Weak),
5832 "Medium" => Some(Self::Medium),
5833 "Strong" => Some(Self::Strong),
5834 _ => None,
5835 }
5836 }
5837}
5838#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5840#[repr(i32)]
5841pub enum UpdateMode {
5842 Upsert = 0,
5844 InsertOnly = 1,
5846 UpdateOnly = 2,
5848}
5849impl UpdateMode {
5850 pub fn as_str_name(&self) -> &'static str {
5855 match self {
5856 Self::Upsert => "Upsert",
5857 Self::InsertOnly => "InsertOnly",
5858 Self::UpdateOnly => "UpdateOnly",
5859 }
5860 }
5861 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5863 match value {
5864 "Upsert" => Some(Self::Upsert),
5865 "InsertOnly" => Some(Self::InsertOnly),
5866 "UpdateOnly" => Some(Self::UpdateOnly),
5867 _ => None,
5868 }
5869 }
5870}
5871#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5872#[repr(i32)]
5873pub enum ReadConsistencyType {
5874 All = 0,
5876 Majority = 1,
5878 Quorum = 2,
5880}
5881impl ReadConsistencyType {
5882 pub fn as_str_name(&self) -> &'static str {
5887 match self {
5888 Self::All => "All",
5889 Self::Majority => "Majority",
5890 Self::Quorum => "Quorum",
5891 }
5892 }
5893 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5895 match value {
5896 "All" => Some(Self::All),
5897 "Majority" => Some(Self::Majority),
5898 "Quorum" => Some(Self::Quorum),
5899 _ => None,
5900 }
5901 }
5902}
5903#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5904#[repr(i32)]
5905pub enum FieldType {
5906 Keyword = 0,
5907 Integer = 1,
5908 Float = 2,
5909 Geo = 3,
5910 Text = 4,
5911 Bool = 5,
5912 Datetime = 6,
5913 Uuid = 7,
5914}
5915impl FieldType {
5916 pub fn as_str_name(&self) -> &'static str {
5921 match self {
5922 Self::Keyword => "FieldTypeKeyword",
5923 Self::Integer => "FieldTypeInteger",
5924 Self::Float => "FieldTypeFloat",
5925 Self::Geo => "FieldTypeGeo",
5926 Self::Text => "FieldTypeText",
5927 Self::Bool => "FieldTypeBool",
5928 Self::Datetime => "FieldTypeDatetime",
5929 Self::Uuid => "FieldTypeUuid",
5930 }
5931 }
5932 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5934 match value {
5935 "FieldTypeKeyword" => Some(Self::Keyword),
5936 "FieldTypeInteger" => Some(Self::Integer),
5937 "FieldTypeFloat" => Some(Self::Float),
5938 "FieldTypeGeo" => Some(Self::Geo),
5939 "FieldTypeText" => Some(Self::Text),
5940 "FieldTypeBool" => Some(Self::Bool),
5941 "FieldTypeDatetime" => Some(Self::Datetime),
5942 "FieldTypeUuid" => Some(Self::Uuid),
5943 _ => None,
5944 }
5945 }
5946}
5947#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5948#[repr(i32)]
5949pub enum Direction {
5950 Asc = 0,
5951 Desc = 1,
5952}
5953impl Direction {
5954 pub fn as_str_name(&self) -> &'static str {
5959 match self {
5960 Self::Asc => "Asc",
5961 Self::Desc => "Desc",
5962 }
5963 }
5964 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5966 match value {
5967 "Asc" => Some(Self::Asc),
5968 "Desc" => Some(Self::Desc),
5969 _ => None,
5970 }
5971 }
5972}
5973#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5975#[repr(i32)]
5976pub enum RecommendStrategy {
5977 AverageVector = 0,
5980 BestScore = 1,
5984 SumScores = 2,
5987}
5988impl RecommendStrategy {
5989 pub fn as_str_name(&self) -> &'static str {
5994 match self {
5995 Self::AverageVector => "AverageVector",
5996 Self::BestScore => "BestScore",
5997 Self::SumScores => "SumScores",
5998 }
5999 }
6000 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6002 match value {
6003 "AverageVector" => Some(Self::AverageVector),
6004 "BestScore" => Some(Self::BestScore),
6005 "SumScores" => Some(Self::SumScores),
6006 _ => None,
6007 }
6008 }
6009}
6010#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6011#[repr(i32)]
6012pub enum Fusion {
6013 Rrf = 0,
6015 Dbsf = 1,
6017}
6018impl Fusion {
6019 pub fn as_str_name(&self) -> &'static str {
6024 match self {
6025 Self::Rrf => "RRF",
6026 Self::Dbsf => "DBSF",
6027 }
6028 }
6029 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6031 match value {
6032 "RRF" => Some(Self::Rrf),
6033 "DBSF" => Some(Self::Dbsf),
6034 _ => None,
6035 }
6036 }
6037}
6038#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6044#[repr(i32)]
6045pub enum Sample {
6046 Random = 0,
6047}
6048impl Sample {
6049 pub fn as_str_name(&self) -> &'static str {
6054 match self {
6055 Self::Random => "Random",
6056 }
6057 }
6058 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6060 match value {
6061 "Random" => Some(Self::Random),
6062 _ => None,
6063 }
6064 }
6065}
6066#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6067#[repr(i32)]
6068pub enum UpdateStatus {
6069 UnknownUpdateStatus = 0,
6070 Acknowledged = 1,
6072 Completed = 2,
6074 ClockRejected = 3,
6076 WaitTimeout = 4,
6078}
6079impl UpdateStatus {
6080 pub fn as_str_name(&self) -> &'static str {
6085 match self {
6086 Self::UnknownUpdateStatus => "UnknownUpdateStatus",
6087 Self::Acknowledged => "Acknowledged",
6088 Self::Completed => "Completed",
6089 Self::ClockRejected => "ClockRejected",
6090 Self::WaitTimeout => "WaitTimeout",
6091 }
6092 }
6093 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6095 match value {
6096 "UnknownUpdateStatus" => Some(Self::UnknownUpdateStatus),
6097 "Acknowledged" => Some(Self::Acknowledged),
6098 "Completed" => Some(Self::Completed),
6099 "ClockRejected" => Some(Self::ClockRejected),
6100 "WaitTimeout" => Some(Self::WaitTimeout),
6101 _ => None,
6102 }
6103 }
6104}
6105pub mod points_client {
6107 #![allow(
6108 unused_variables,
6109 dead_code,
6110 missing_docs,
6111 clippy::wildcard_imports,
6112 clippy::let_unit_value,
6113 )]
6114 use tonic::codegen::*;
6115 use tonic::codegen::http::Uri;
6116 #[derive(Debug, Clone)]
6117 pub struct PointsClient<T> {
6118 inner: tonic::client::Grpc<T>,
6119 }
6120 impl PointsClient<tonic::transport::Channel> {
6121 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
6123 where
6124 D: TryInto<tonic::transport::Endpoint>,
6125 D::Error: Into<StdError>,
6126 {
6127 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
6128 Ok(Self::new(conn))
6129 }
6130 }
6131 impl<T> PointsClient<T>
6132 where
6133 T: tonic::client::GrpcService<tonic::body::BoxBody>,
6134 T::Error: Into<StdError>,
6135 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
6136 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
6137 {
6138 pub fn new(inner: T) -> Self {
6139 let inner = tonic::client::Grpc::new(inner);
6140 Self { inner }
6141 }
6142 pub fn with_origin(inner: T, origin: Uri) -> Self {
6143 let inner = tonic::client::Grpc::with_origin(inner, origin);
6144 Self { inner }
6145 }
6146 pub fn with_interceptor<F>(
6147 inner: T,
6148 interceptor: F,
6149 ) -> PointsClient<InterceptedService<T, F>>
6150 where
6151 F: tonic::service::Interceptor,
6152 T::ResponseBody: Default,
6153 T: tonic::codegen::Service<
6154 http::Request<tonic::body::BoxBody>,
6155 Response = http::Response<
6156 <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
6157 >,
6158 >,
6159 <T as tonic::codegen::Service<
6160 http::Request<tonic::body::BoxBody>,
6161 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
6162 {
6163 PointsClient::new(InterceptedService::new(inner, interceptor))
6164 }
6165 #[must_use]
6170 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
6171 self.inner = self.inner.send_compressed(encoding);
6172 self
6173 }
6174 #[must_use]
6176 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
6177 self.inner = self.inner.accept_compressed(encoding);
6178 self
6179 }
6180 #[must_use]
6184 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
6185 self.inner = self.inner.max_decoding_message_size(limit);
6186 self
6187 }
6188 #[must_use]
6192 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
6193 self.inner = self.inner.max_encoding_message_size(limit);
6194 self
6195 }
6196 pub async fn upsert(
6199 &mut self,
6200 request: impl tonic::IntoRequest<super::UpsertPoints>,
6201 ) -> std::result::Result<
6202 tonic::Response<super::PointsOperationResponse>,
6203 tonic::Status,
6204 > {
6205 self.inner
6206 .ready()
6207 .await
6208 .map_err(|e| {
6209 tonic::Status::unknown(
6210 format!("Service was not ready: {}", e.into()),
6211 )
6212 })?;
6213 let codec = tonic::codec::ProstCodec::default();
6214 let path = http::uri::PathAndQuery::from_static("/qdrant.Points/Upsert");
6215 let mut req = request.into_request();
6216 req.extensions_mut().insert(GrpcMethod::new("qdrant.Points", "Upsert"));
6217 self.inner.unary(req, path, codec).await
6218 }
6219 pub async fn delete(
6221 &mut self,
6222 request: impl tonic::IntoRequest<super::DeletePoints>,
6223 ) -> std::result::Result<
6224 tonic::Response<super::PointsOperationResponse>,
6225 tonic::Status,
6226 > {
6227 self.inner
6228 .ready()
6229 .await
6230 .map_err(|e| {
6231 tonic::Status::unknown(
6232 format!("Service was not ready: {}", e.into()),
6233 )
6234 })?;
6235 let codec = tonic::codec::ProstCodec::default();
6236 let path = http::uri::PathAndQuery::from_static("/qdrant.Points/Delete");
6237 let mut req = request.into_request();
6238 req.extensions_mut().insert(GrpcMethod::new("qdrant.Points", "Delete"));
6239 self.inner.unary(req, path, codec).await
6240 }
6241 pub async fn get(
6243 &mut self,
6244 request: impl tonic::IntoRequest<super::GetPoints>,
6245 ) -> std::result::Result<tonic::Response<super::GetResponse>, tonic::Status> {
6246 self.inner
6247 .ready()
6248 .await
6249 .map_err(|e| {
6250 tonic::Status::unknown(
6251 format!("Service was not ready: {}", e.into()),
6252 )
6253 })?;
6254 let codec = tonic::codec::ProstCodec::default();
6255 let path = http::uri::PathAndQuery::from_static("/qdrant.Points/Get");
6256 let mut req = request.into_request();
6257 req.extensions_mut().insert(GrpcMethod::new("qdrant.Points", "Get"));
6258 self.inner.unary(req, path, codec).await
6259 }
6260 pub async fn update_vectors(
6262 &mut self,
6263 request: impl tonic::IntoRequest<super::UpdatePointVectors>,
6264 ) -> std::result::Result<
6265 tonic::Response<super::PointsOperationResponse>,
6266 tonic::Status,
6267 > {
6268 self.inner
6269 .ready()
6270 .await
6271 .map_err(|e| {
6272 tonic::Status::unknown(
6273 format!("Service was not ready: {}", e.into()),
6274 )
6275 })?;
6276 let codec = tonic::codec::ProstCodec::default();
6277 let path = http::uri::PathAndQuery::from_static(
6278 "/qdrant.Points/UpdateVectors",
6279 );
6280 let mut req = request.into_request();
6281 req.extensions_mut()
6282 .insert(GrpcMethod::new("qdrant.Points", "UpdateVectors"));
6283 self.inner.unary(req, path, codec).await
6284 }
6285 pub async fn delete_vectors(
6287 &mut self,
6288 request: impl tonic::IntoRequest<super::DeletePointVectors>,
6289 ) -> std::result::Result<
6290 tonic::Response<super::PointsOperationResponse>,
6291 tonic::Status,
6292 > {
6293 self.inner
6294 .ready()
6295 .await
6296 .map_err(|e| {
6297 tonic::Status::unknown(
6298 format!("Service was not ready: {}", e.into()),
6299 )
6300 })?;
6301 let codec = tonic::codec::ProstCodec::default();
6302 let path = http::uri::PathAndQuery::from_static(
6303 "/qdrant.Points/DeleteVectors",
6304 );
6305 let mut req = request.into_request();
6306 req.extensions_mut()
6307 .insert(GrpcMethod::new("qdrant.Points", "DeleteVectors"));
6308 self.inner.unary(req, path, codec).await
6309 }
6310 pub async fn set_payload(
6312 &mut self,
6313 request: impl tonic::IntoRequest<super::SetPayloadPoints>,
6314 ) -> std::result::Result<
6315 tonic::Response<super::PointsOperationResponse>,
6316 tonic::Status,
6317 > {
6318 self.inner
6319 .ready()
6320 .await
6321 .map_err(|e| {
6322 tonic::Status::unknown(
6323 format!("Service was not ready: {}", e.into()),
6324 )
6325 })?;
6326 let codec = tonic::codec::ProstCodec::default();
6327 let path = http::uri::PathAndQuery::from_static("/qdrant.Points/SetPayload");
6328 let mut req = request.into_request();
6329 req.extensions_mut().insert(GrpcMethod::new("qdrant.Points", "SetPayload"));
6330 self.inner.unary(req, path, codec).await
6331 }
6332 pub async fn overwrite_payload(
6334 &mut self,
6335 request: impl tonic::IntoRequest<super::SetPayloadPoints>,
6336 ) -> std::result::Result<
6337 tonic::Response<super::PointsOperationResponse>,
6338 tonic::Status,
6339 > {
6340 self.inner
6341 .ready()
6342 .await
6343 .map_err(|e| {
6344 tonic::Status::unknown(
6345 format!("Service was not ready: {}", e.into()),
6346 )
6347 })?;
6348 let codec = tonic::codec::ProstCodec::default();
6349 let path = http::uri::PathAndQuery::from_static(
6350 "/qdrant.Points/OverwritePayload",
6351 );
6352 let mut req = request.into_request();
6353 req.extensions_mut()
6354 .insert(GrpcMethod::new("qdrant.Points", "OverwritePayload"));
6355 self.inner.unary(req, path, codec).await
6356 }
6357 pub async fn delete_payload(
6359 &mut self,
6360 request: impl tonic::IntoRequest<super::DeletePayloadPoints>,
6361 ) -> std::result::Result<
6362 tonic::Response<super::PointsOperationResponse>,
6363 tonic::Status,
6364 > {
6365 self.inner
6366 .ready()
6367 .await
6368 .map_err(|e| {
6369 tonic::Status::unknown(
6370 format!("Service was not ready: {}", e.into()),
6371 )
6372 })?;
6373 let codec = tonic::codec::ProstCodec::default();
6374 let path = http::uri::PathAndQuery::from_static(
6375 "/qdrant.Points/DeletePayload",
6376 );
6377 let mut req = request.into_request();
6378 req.extensions_mut()
6379 .insert(GrpcMethod::new("qdrant.Points", "DeletePayload"));
6380 self.inner.unary(req, path, codec).await
6381 }
6382 pub async fn clear_payload(
6384 &mut self,
6385 request: impl tonic::IntoRequest<super::ClearPayloadPoints>,
6386 ) -> std::result::Result<
6387 tonic::Response<super::PointsOperationResponse>,
6388 tonic::Status,
6389 > {
6390 self.inner
6391 .ready()
6392 .await
6393 .map_err(|e| {
6394 tonic::Status::unknown(
6395 format!("Service was not ready: {}", e.into()),
6396 )
6397 })?;
6398 let codec = tonic::codec::ProstCodec::default();
6399 let path = http::uri::PathAndQuery::from_static(
6400 "/qdrant.Points/ClearPayload",
6401 );
6402 let mut req = request.into_request();
6403 req.extensions_mut()
6404 .insert(GrpcMethod::new("qdrant.Points", "ClearPayload"));
6405 self.inner.unary(req, path, codec).await
6406 }
6407 pub async fn create_field_index(
6409 &mut self,
6410 request: impl tonic::IntoRequest<super::CreateFieldIndexCollection>,
6411 ) -> std::result::Result<
6412 tonic::Response<super::PointsOperationResponse>,
6413 tonic::Status,
6414 > {
6415 self.inner
6416 .ready()
6417 .await
6418 .map_err(|e| {
6419 tonic::Status::unknown(
6420 format!("Service was not ready: {}", e.into()),
6421 )
6422 })?;
6423 let codec = tonic::codec::ProstCodec::default();
6424 let path = http::uri::PathAndQuery::from_static(
6425 "/qdrant.Points/CreateFieldIndex",
6426 );
6427 let mut req = request.into_request();
6428 req.extensions_mut()
6429 .insert(GrpcMethod::new("qdrant.Points", "CreateFieldIndex"));
6430 self.inner.unary(req, path, codec).await
6431 }
6432 pub async fn delete_field_index(
6434 &mut self,
6435 request: impl tonic::IntoRequest<super::DeleteFieldIndexCollection>,
6436 ) -> std::result::Result<
6437 tonic::Response<super::PointsOperationResponse>,
6438 tonic::Status,
6439 > {
6440 self.inner
6441 .ready()
6442 .await
6443 .map_err(|e| {
6444 tonic::Status::unknown(
6445 format!("Service was not ready: {}", e.into()),
6446 )
6447 })?;
6448 let codec = tonic::codec::ProstCodec::default();
6449 let path = http::uri::PathAndQuery::from_static(
6450 "/qdrant.Points/DeleteFieldIndex",
6451 );
6452 let mut req = request.into_request();
6453 req.extensions_mut()
6454 .insert(GrpcMethod::new("qdrant.Points", "DeleteFieldIndex"));
6455 self.inner.unary(req, path, codec).await
6456 }
6457 pub async fn create_vector_name(
6459 &mut self,
6460 request: impl tonic::IntoRequest<super::CreateVectorNameRequest>,
6461 ) -> std::result::Result<
6462 tonic::Response<super::PointsOperationResponse>,
6463 tonic::Status,
6464 > {
6465 self.inner
6466 .ready()
6467 .await
6468 .map_err(|e| {
6469 tonic::Status::unknown(
6470 format!("Service was not ready: {}", e.into()),
6471 )
6472 })?;
6473 let codec = tonic::codec::ProstCodec::default();
6474 let path = http::uri::PathAndQuery::from_static(
6475 "/qdrant.Points/CreateVectorName",
6476 );
6477 let mut req = request.into_request();
6478 req.extensions_mut()
6479 .insert(GrpcMethod::new("qdrant.Points", "CreateVectorName"));
6480 self.inner.unary(req, path, codec).await
6481 }
6482 pub async fn delete_vector_name(
6484 &mut self,
6485 request: impl tonic::IntoRequest<super::DeleteVectorNameRequest>,
6486 ) -> std::result::Result<
6487 tonic::Response<super::PointsOperationResponse>,
6488 tonic::Status,
6489 > {
6490 self.inner
6491 .ready()
6492 .await
6493 .map_err(|e| {
6494 tonic::Status::unknown(
6495 format!("Service was not ready: {}", e.into()),
6496 )
6497 })?;
6498 let codec = tonic::codec::ProstCodec::default();
6499 let path = http::uri::PathAndQuery::from_static(
6500 "/qdrant.Points/DeleteVectorName",
6501 );
6502 let mut req = request.into_request();
6503 req.extensions_mut()
6504 .insert(GrpcMethod::new("qdrant.Points", "DeleteVectorName"));
6505 self.inner.unary(req, path, codec).await
6506 }
6507 pub async fn search(
6510 &mut self,
6511 request: impl tonic::IntoRequest<super::SearchPoints>,
6512 ) -> std::result::Result<tonic::Response<super::SearchResponse>, tonic::Status> {
6513 self.inner
6514 .ready()
6515 .await
6516 .map_err(|e| {
6517 tonic::Status::unknown(
6518 format!("Service was not ready: {}", e.into()),
6519 )
6520 })?;
6521 let codec = tonic::codec::ProstCodec::default();
6522 let path = http::uri::PathAndQuery::from_static("/qdrant.Points/Search");
6523 let mut req = request.into_request();
6524 req.extensions_mut().insert(GrpcMethod::new("qdrant.Points", "Search"));
6525 self.inner.unary(req, path, codec).await
6526 }
6527 pub async fn search_batch(
6530 &mut self,
6531 request: impl tonic::IntoRequest<super::SearchBatchPoints>,
6532 ) -> std::result::Result<
6533 tonic::Response<super::SearchBatchResponse>,
6534 tonic::Status,
6535 > {
6536 self.inner
6537 .ready()
6538 .await
6539 .map_err(|e| {
6540 tonic::Status::unknown(
6541 format!("Service was not ready: {}", e.into()),
6542 )
6543 })?;
6544 let codec = tonic::codec::ProstCodec::default();
6545 let path = http::uri::PathAndQuery::from_static(
6546 "/qdrant.Points/SearchBatch",
6547 );
6548 let mut req = request.into_request();
6549 req.extensions_mut().insert(GrpcMethod::new("qdrant.Points", "SearchBatch"));
6550 self.inner.unary(req, path, codec).await
6551 }
6552 pub async fn search_groups(
6555 &mut self,
6556 request: impl tonic::IntoRequest<super::SearchPointGroups>,
6557 ) -> std::result::Result<
6558 tonic::Response<super::SearchGroupsResponse>,
6559 tonic::Status,
6560 > {
6561 self.inner
6562 .ready()
6563 .await
6564 .map_err(|e| {
6565 tonic::Status::unknown(
6566 format!("Service was not ready: {}", e.into()),
6567 )
6568 })?;
6569 let codec = tonic::codec::ProstCodec::default();
6570 let path = http::uri::PathAndQuery::from_static(
6571 "/qdrant.Points/SearchGroups",
6572 );
6573 let mut req = request.into_request();
6574 req.extensions_mut()
6575 .insert(GrpcMethod::new("qdrant.Points", "SearchGroups"));
6576 self.inner.unary(req, path, codec).await
6577 }
6578 pub async fn scroll(
6580 &mut self,
6581 request: impl tonic::IntoRequest<super::ScrollPoints>,
6582 ) -> std::result::Result<tonic::Response<super::ScrollResponse>, tonic::Status> {
6583 self.inner
6584 .ready()
6585 .await
6586 .map_err(|e| {
6587 tonic::Status::unknown(
6588 format!("Service was not ready: {}", e.into()),
6589 )
6590 })?;
6591 let codec = tonic::codec::ProstCodec::default();
6592 let path = http::uri::PathAndQuery::from_static("/qdrant.Points/Scroll");
6593 let mut req = request.into_request();
6594 req.extensions_mut().insert(GrpcMethod::new("qdrant.Points", "Scroll"));
6595 self.inner.unary(req, path, codec).await
6596 }
6597 pub async fn recommend(
6600 &mut self,
6601 request: impl tonic::IntoRequest<super::RecommendPoints>,
6602 ) -> std::result::Result<
6603 tonic::Response<super::RecommendResponse>,
6604 tonic::Status,
6605 > {
6606 self.inner
6607 .ready()
6608 .await
6609 .map_err(|e| {
6610 tonic::Status::unknown(
6611 format!("Service was not ready: {}", e.into()),
6612 )
6613 })?;
6614 let codec = tonic::codec::ProstCodec::default();
6615 let path = http::uri::PathAndQuery::from_static("/qdrant.Points/Recommend");
6616 let mut req = request.into_request();
6617 req.extensions_mut().insert(GrpcMethod::new("qdrant.Points", "Recommend"));
6618 self.inner.unary(req, path, codec).await
6619 }
6620 pub async fn recommend_batch(
6623 &mut self,
6624 request: impl tonic::IntoRequest<super::RecommendBatchPoints>,
6625 ) -> std::result::Result<
6626 tonic::Response<super::RecommendBatchResponse>,
6627 tonic::Status,
6628 > {
6629 self.inner
6630 .ready()
6631 .await
6632 .map_err(|e| {
6633 tonic::Status::unknown(
6634 format!("Service was not ready: {}", e.into()),
6635 )
6636 })?;
6637 let codec = tonic::codec::ProstCodec::default();
6638 let path = http::uri::PathAndQuery::from_static(
6639 "/qdrant.Points/RecommendBatch",
6640 );
6641 let mut req = request.into_request();
6642 req.extensions_mut()
6643 .insert(GrpcMethod::new("qdrant.Points", "RecommendBatch"));
6644 self.inner.unary(req, path, codec).await
6645 }
6646 pub async fn recommend_groups(
6649 &mut self,
6650 request: impl tonic::IntoRequest<super::RecommendPointGroups>,
6651 ) -> std::result::Result<
6652 tonic::Response<super::RecommendGroupsResponse>,
6653 tonic::Status,
6654 > {
6655 self.inner
6656 .ready()
6657 .await
6658 .map_err(|e| {
6659 tonic::Status::unknown(
6660 format!("Service was not ready: {}", e.into()),
6661 )
6662 })?;
6663 let codec = tonic::codec::ProstCodec::default();
6664 let path = http::uri::PathAndQuery::from_static(
6665 "/qdrant.Points/RecommendGroups",
6666 );
6667 let mut req = request.into_request();
6668 req.extensions_mut()
6669 .insert(GrpcMethod::new("qdrant.Points", "RecommendGroups"));
6670 self.inner.unary(req, path, codec).await
6671 }
6672 pub async fn discover(
6692 &mut self,
6693 request: impl tonic::IntoRequest<super::DiscoverPoints>,
6694 ) -> std::result::Result<
6695 tonic::Response<super::DiscoverResponse>,
6696 tonic::Status,
6697 > {
6698 self.inner
6699 .ready()
6700 .await
6701 .map_err(|e| {
6702 tonic::Status::unknown(
6703 format!("Service was not ready: {}", e.into()),
6704 )
6705 })?;
6706 let codec = tonic::codec::ProstCodec::default();
6707 let path = http::uri::PathAndQuery::from_static("/qdrant.Points/Discover");
6708 let mut req = request.into_request();
6709 req.extensions_mut().insert(GrpcMethod::new("qdrant.Points", "Discover"));
6710 self.inner.unary(req, path, codec).await
6711 }
6712 pub async fn discover_batch(
6714 &mut self,
6715 request: impl tonic::IntoRequest<super::DiscoverBatchPoints>,
6716 ) -> std::result::Result<
6717 tonic::Response<super::DiscoverBatchResponse>,
6718 tonic::Status,
6719 > {
6720 self.inner
6721 .ready()
6722 .await
6723 .map_err(|e| {
6724 tonic::Status::unknown(
6725 format!("Service was not ready: {}", e.into()),
6726 )
6727 })?;
6728 let codec = tonic::codec::ProstCodec::default();
6729 let path = http::uri::PathAndQuery::from_static(
6730 "/qdrant.Points/DiscoverBatch",
6731 );
6732 let mut req = request.into_request();
6733 req.extensions_mut()
6734 .insert(GrpcMethod::new("qdrant.Points", "DiscoverBatch"));
6735 self.inner.unary(req, path, codec).await
6736 }
6737 pub async fn count(
6739 &mut self,
6740 request: impl tonic::IntoRequest<super::CountPoints>,
6741 ) -> std::result::Result<tonic::Response<super::CountResponse>, tonic::Status> {
6742 self.inner
6743 .ready()
6744 .await
6745 .map_err(|e| {
6746 tonic::Status::unknown(
6747 format!("Service was not ready: {}", e.into()),
6748 )
6749 })?;
6750 let codec = tonic::codec::ProstCodec::default();
6751 let path = http::uri::PathAndQuery::from_static("/qdrant.Points/Count");
6752 let mut req = request.into_request();
6753 req.extensions_mut().insert(GrpcMethod::new("qdrant.Points", "Count"));
6754 self.inner.unary(req, path, codec).await
6755 }
6756 pub async fn update_batch(
6758 &mut self,
6759 request: impl tonic::IntoRequest<super::UpdateBatchPoints>,
6760 ) -> std::result::Result<
6761 tonic::Response<super::UpdateBatchResponse>,
6762 tonic::Status,
6763 > {
6764 self.inner
6765 .ready()
6766 .await
6767 .map_err(|e| {
6768 tonic::Status::unknown(
6769 format!("Service was not ready: {}", e.into()),
6770 )
6771 })?;
6772 let codec = tonic::codec::ProstCodec::default();
6773 let path = http::uri::PathAndQuery::from_static(
6774 "/qdrant.Points/UpdateBatch",
6775 );
6776 let mut req = request.into_request();
6777 req.extensions_mut().insert(GrpcMethod::new("qdrant.Points", "UpdateBatch"));
6778 self.inner.unary(req, path, codec).await
6779 }
6780 pub async fn query(
6784 &mut self,
6785 request: impl tonic::IntoRequest<super::QueryPoints>,
6786 ) -> std::result::Result<tonic::Response<super::QueryResponse>, tonic::Status> {
6787 self.inner
6788 .ready()
6789 .await
6790 .map_err(|e| {
6791 tonic::Status::unknown(
6792 format!("Service was not ready: {}", e.into()),
6793 )
6794 })?;
6795 let codec = tonic::codec::ProstCodec::default();
6796 let path = http::uri::PathAndQuery::from_static("/qdrant.Points/Query");
6797 let mut req = request.into_request();
6798 req.extensions_mut().insert(GrpcMethod::new("qdrant.Points", "Query"));
6799 self.inner.unary(req, path, codec).await
6800 }
6801 pub async fn query_batch(
6805 &mut self,
6806 request: impl tonic::IntoRequest<super::QueryBatchPoints>,
6807 ) -> std::result::Result<
6808 tonic::Response<super::QueryBatchResponse>,
6809 tonic::Status,
6810 > {
6811 self.inner
6812 .ready()
6813 .await
6814 .map_err(|e| {
6815 tonic::Status::unknown(
6816 format!("Service was not ready: {}", e.into()),
6817 )
6818 })?;
6819 let codec = tonic::codec::ProstCodec::default();
6820 let path = http::uri::PathAndQuery::from_static("/qdrant.Points/QueryBatch");
6821 let mut req = request.into_request();
6822 req.extensions_mut().insert(GrpcMethod::new("qdrant.Points", "QueryBatch"));
6823 self.inner.unary(req, path, codec).await
6824 }
6825 pub async fn query_groups(
6829 &mut self,
6830 request: impl tonic::IntoRequest<super::QueryPointGroups>,
6831 ) -> std::result::Result<
6832 tonic::Response<super::QueryGroupsResponse>,
6833 tonic::Status,
6834 > {
6835 self.inner
6836 .ready()
6837 .await
6838 .map_err(|e| {
6839 tonic::Status::unknown(
6840 format!("Service was not ready: {}", e.into()),
6841 )
6842 })?;
6843 let codec = tonic::codec::ProstCodec::default();
6844 let path = http::uri::PathAndQuery::from_static(
6845 "/qdrant.Points/QueryGroups",
6846 );
6847 let mut req = request.into_request();
6848 req.extensions_mut().insert(GrpcMethod::new("qdrant.Points", "QueryGroups"));
6849 self.inner.unary(req, path, codec).await
6850 }
6851 pub async fn facet(
6855 &mut self,
6856 request: impl tonic::IntoRequest<super::FacetCounts>,
6857 ) -> std::result::Result<tonic::Response<super::FacetResponse>, tonic::Status> {
6858 self.inner
6859 .ready()
6860 .await
6861 .map_err(|e| {
6862 tonic::Status::unknown(
6863 format!("Service was not ready: {}", e.into()),
6864 )
6865 })?;
6866 let codec = tonic::codec::ProstCodec::default();
6867 let path = http::uri::PathAndQuery::from_static("/qdrant.Points/Facet");
6868 let mut req = request.into_request();
6869 req.extensions_mut().insert(GrpcMethod::new("qdrant.Points", "Facet"));
6870 self.inner.unary(req, path, codec).await
6871 }
6872 pub async fn search_matrix_pairs(
6874 &mut self,
6875 request: impl tonic::IntoRequest<super::SearchMatrixPoints>,
6876 ) -> std::result::Result<
6877 tonic::Response<super::SearchMatrixPairsResponse>,
6878 tonic::Status,
6879 > {
6880 self.inner
6881 .ready()
6882 .await
6883 .map_err(|e| {
6884 tonic::Status::unknown(
6885 format!("Service was not ready: {}", e.into()),
6886 )
6887 })?;
6888 let codec = tonic::codec::ProstCodec::default();
6889 let path = http::uri::PathAndQuery::from_static(
6890 "/qdrant.Points/SearchMatrixPairs",
6891 );
6892 let mut req = request.into_request();
6893 req.extensions_mut()
6894 .insert(GrpcMethod::new("qdrant.Points", "SearchMatrixPairs"));
6895 self.inner.unary(req, path, codec).await
6896 }
6897 pub async fn search_matrix_offsets(
6899 &mut self,
6900 request: impl tonic::IntoRequest<super::SearchMatrixPoints>,
6901 ) -> std::result::Result<
6902 tonic::Response<super::SearchMatrixOffsetsResponse>,
6903 tonic::Status,
6904 > {
6905 self.inner
6906 .ready()
6907 .await
6908 .map_err(|e| {
6909 tonic::Status::unknown(
6910 format!("Service was not ready: {}", e.into()),
6911 )
6912 })?;
6913 let codec = tonic::codec::ProstCodec::default();
6914 let path = http::uri::PathAndQuery::from_static(
6915 "/qdrant.Points/SearchMatrixOffsets",
6916 );
6917 let mut req = request.into_request();
6918 req.extensions_mut()
6919 .insert(GrpcMethod::new("qdrant.Points", "SearchMatrixOffsets"));
6920 self.inner.unary(req, path, codec).await
6921 }
6922 }
6923}
6924pub mod points_server {
6926 #![allow(
6927 unused_variables,
6928 dead_code,
6929 missing_docs,
6930 clippy::wildcard_imports,
6931 clippy::let_unit_value,
6932 )]
6933 use tonic::codegen::*;
6934 #[async_trait]
6936 pub trait Points: std::marker::Send + std::marker::Sync + 'static {
6937 async fn upsert(
6940 &self,
6941 request: tonic::Request<super::UpsertPoints>,
6942 ) -> std::result::Result<
6943 tonic::Response<super::PointsOperationResponse>,
6944 tonic::Status,
6945 >;
6946 async fn delete(
6948 &self,
6949 request: tonic::Request<super::DeletePoints>,
6950 ) -> std::result::Result<
6951 tonic::Response<super::PointsOperationResponse>,
6952 tonic::Status,
6953 >;
6954 async fn get(
6956 &self,
6957 request: tonic::Request<super::GetPoints>,
6958 ) -> std::result::Result<tonic::Response<super::GetResponse>, tonic::Status>;
6959 async fn update_vectors(
6961 &self,
6962 request: tonic::Request<super::UpdatePointVectors>,
6963 ) -> std::result::Result<
6964 tonic::Response<super::PointsOperationResponse>,
6965 tonic::Status,
6966 >;
6967 async fn delete_vectors(
6969 &self,
6970 request: tonic::Request<super::DeletePointVectors>,
6971 ) -> std::result::Result<
6972 tonic::Response<super::PointsOperationResponse>,
6973 tonic::Status,
6974 >;
6975 async fn set_payload(
6977 &self,
6978 request: tonic::Request<super::SetPayloadPoints>,
6979 ) -> std::result::Result<
6980 tonic::Response<super::PointsOperationResponse>,
6981 tonic::Status,
6982 >;
6983 async fn overwrite_payload(
6985 &self,
6986 request: tonic::Request<super::SetPayloadPoints>,
6987 ) -> std::result::Result<
6988 tonic::Response<super::PointsOperationResponse>,
6989 tonic::Status,
6990 >;
6991 async fn delete_payload(
6993 &self,
6994 request: tonic::Request<super::DeletePayloadPoints>,
6995 ) -> std::result::Result<
6996 tonic::Response<super::PointsOperationResponse>,
6997 tonic::Status,
6998 >;
6999 async fn clear_payload(
7001 &self,
7002 request: tonic::Request<super::ClearPayloadPoints>,
7003 ) -> std::result::Result<
7004 tonic::Response<super::PointsOperationResponse>,
7005 tonic::Status,
7006 >;
7007 async fn create_field_index(
7009 &self,
7010 request: tonic::Request<super::CreateFieldIndexCollection>,
7011 ) -> std::result::Result<
7012 tonic::Response<super::PointsOperationResponse>,
7013 tonic::Status,
7014 >;
7015 async fn delete_field_index(
7017 &self,
7018 request: tonic::Request<super::DeleteFieldIndexCollection>,
7019 ) -> std::result::Result<
7020 tonic::Response<super::PointsOperationResponse>,
7021 tonic::Status,
7022 >;
7023 async fn create_vector_name(
7025 &self,
7026 request: tonic::Request<super::CreateVectorNameRequest>,
7027 ) -> std::result::Result<
7028 tonic::Response<super::PointsOperationResponse>,
7029 tonic::Status,
7030 >;
7031 async fn delete_vector_name(
7033 &self,
7034 request: tonic::Request<super::DeleteVectorNameRequest>,
7035 ) -> std::result::Result<
7036 tonic::Response<super::PointsOperationResponse>,
7037 tonic::Status,
7038 >;
7039 async fn search(
7042 &self,
7043 request: tonic::Request<super::SearchPoints>,
7044 ) -> std::result::Result<tonic::Response<super::SearchResponse>, tonic::Status>;
7045 async fn search_batch(
7048 &self,
7049 request: tonic::Request<super::SearchBatchPoints>,
7050 ) -> std::result::Result<
7051 tonic::Response<super::SearchBatchResponse>,
7052 tonic::Status,
7053 >;
7054 async fn search_groups(
7057 &self,
7058 request: tonic::Request<super::SearchPointGroups>,
7059 ) -> std::result::Result<
7060 tonic::Response<super::SearchGroupsResponse>,
7061 tonic::Status,
7062 >;
7063 async fn scroll(
7065 &self,
7066 request: tonic::Request<super::ScrollPoints>,
7067 ) -> std::result::Result<tonic::Response<super::ScrollResponse>, tonic::Status>;
7068 async fn recommend(
7071 &self,
7072 request: tonic::Request<super::RecommendPoints>,
7073 ) -> std::result::Result<
7074 tonic::Response<super::RecommendResponse>,
7075 tonic::Status,
7076 >;
7077 async fn recommend_batch(
7080 &self,
7081 request: tonic::Request<super::RecommendBatchPoints>,
7082 ) -> std::result::Result<
7083 tonic::Response<super::RecommendBatchResponse>,
7084 tonic::Status,
7085 >;
7086 async fn recommend_groups(
7089 &self,
7090 request: tonic::Request<super::RecommendPointGroups>,
7091 ) -> std::result::Result<
7092 tonic::Response<super::RecommendGroupsResponse>,
7093 tonic::Status,
7094 >;
7095 async fn discover(
7115 &self,
7116 request: tonic::Request<super::DiscoverPoints>,
7117 ) -> std::result::Result<
7118 tonic::Response<super::DiscoverResponse>,
7119 tonic::Status,
7120 >;
7121 async fn discover_batch(
7123 &self,
7124 request: tonic::Request<super::DiscoverBatchPoints>,
7125 ) -> std::result::Result<
7126 tonic::Response<super::DiscoverBatchResponse>,
7127 tonic::Status,
7128 >;
7129 async fn count(
7131 &self,
7132 request: tonic::Request<super::CountPoints>,
7133 ) -> std::result::Result<tonic::Response<super::CountResponse>, tonic::Status>;
7134 async fn update_batch(
7136 &self,
7137 request: tonic::Request<super::UpdateBatchPoints>,
7138 ) -> std::result::Result<
7139 tonic::Response<super::UpdateBatchResponse>,
7140 tonic::Status,
7141 >;
7142 async fn query(
7146 &self,
7147 request: tonic::Request<super::QueryPoints>,
7148 ) -> std::result::Result<tonic::Response<super::QueryResponse>, tonic::Status>;
7149 async fn query_batch(
7153 &self,
7154 request: tonic::Request<super::QueryBatchPoints>,
7155 ) -> std::result::Result<
7156 tonic::Response<super::QueryBatchResponse>,
7157 tonic::Status,
7158 >;
7159 async fn query_groups(
7163 &self,
7164 request: tonic::Request<super::QueryPointGroups>,
7165 ) -> std::result::Result<
7166 tonic::Response<super::QueryGroupsResponse>,
7167 tonic::Status,
7168 >;
7169 async fn facet(
7173 &self,
7174 request: tonic::Request<super::FacetCounts>,
7175 ) -> std::result::Result<tonic::Response<super::FacetResponse>, tonic::Status>;
7176 async fn search_matrix_pairs(
7178 &self,
7179 request: tonic::Request<super::SearchMatrixPoints>,
7180 ) -> std::result::Result<
7181 tonic::Response<super::SearchMatrixPairsResponse>,
7182 tonic::Status,
7183 >;
7184 async fn search_matrix_offsets(
7186 &self,
7187 request: tonic::Request<super::SearchMatrixPoints>,
7188 ) -> std::result::Result<
7189 tonic::Response<super::SearchMatrixOffsetsResponse>,
7190 tonic::Status,
7191 >;
7192 }
7193 #[derive(Debug)]
7194 pub struct PointsServer<T> {
7195 inner: Arc<T>,
7196 accept_compression_encodings: EnabledCompressionEncodings,
7197 send_compression_encodings: EnabledCompressionEncodings,
7198 max_decoding_message_size: Option<usize>,
7199 max_encoding_message_size: Option<usize>,
7200 }
7201 impl<T> PointsServer<T> {
7202 pub fn new(inner: T) -> Self {
7203 Self::from_arc(Arc::new(inner))
7204 }
7205 pub fn from_arc(inner: Arc<T>) -> Self {
7206 Self {
7207 inner,
7208 accept_compression_encodings: Default::default(),
7209 send_compression_encodings: Default::default(),
7210 max_decoding_message_size: None,
7211 max_encoding_message_size: None,
7212 }
7213 }
7214 pub fn with_interceptor<F>(
7215 inner: T,
7216 interceptor: F,
7217 ) -> InterceptedService<Self, F>
7218 where
7219 F: tonic::service::Interceptor,
7220 {
7221 InterceptedService::new(Self::new(inner), interceptor)
7222 }
7223 #[must_use]
7225 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
7226 self.accept_compression_encodings.enable(encoding);
7227 self
7228 }
7229 #[must_use]
7231 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
7232 self.send_compression_encodings.enable(encoding);
7233 self
7234 }
7235 #[must_use]
7239 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
7240 self.max_decoding_message_size = Some(limit);
7241 self
7242 }
7243 #[must_use]
7247 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
7248 self.max_encoding_message_size = Some(limit);
7249 self
7250 }
7251 }
7252 impl<T, B> tonic::codegen::Service<http::Request<B>> for PointsServer<T>
7253 where
7254 T: Points,
7255 B: Body + std::marker::Send + 'static,
7256 B::Error: Into<StdError> + std::marker::Send + 'static,
7257 {
7258 type Response = http::Response<tonic::body::BoxBody>;
7259 type Error = std::convert::Infallible;
7260 type Future = BoxFuture<Self::Response, Self::Error>;
7261 fn poll_ready(
7262 &mut self,
7263 _cx: &mut Context<'_>,
7264 ) -> Poll<std::result::Result<(), Self::Error>> {
7265 Poll::Ready(Ok(()))
7266 }
7267 fn call(&mut self, req: http::Request<B>) -> Self::Future {
7268 match req.uri().path() {
7269 "/qdrant.Points/Upsert" => {
7270 #[allow(non_camel_case_types)]
7271 struct UpsertSvc<T: Points>(pub Arc<T>);
7272 impl<T: Points> tonic::server::UnaryService<super::UpsertPoints>
7273 for UpsertSvc<T> {
7274 type Response = super::PointsOperationResponse;
7275 type Future = BoxFuture<
7276 tonic::Response<Self::Response>,
7277 tonic::Status,
7278 >;
7279 fn call(
7280 &mut self,
7281 request: tonic::Request<super::UpsertPoints>,
7282 ) -> Self::Future {
7283 let inner = Arc::clone(&self.0);
7284 let fut = async move {
7285 <T as Points>::upsert(&inner, request).await
7286 };
7287 Box::pin(fut)
7288 }
7289 }
7290 let accept_compression_encodings = self.accept_compression_encodings;
7291 let send_compression_encodings = self.send_compression_encodings;
7292 let max_decoding_message_size = self.max_decoding_message_size;
7293 let max_encoding_message_size = self.max_encoding_message_size;
7294 let inner = self.inner.clone();
7295 let fut = async move {
7296 let method = UpsertSvc(inner);
7297 let codec = tonic::codec::ProstCodec::default();
7298 let mut grpc = tonic::server::Grpc::new(codec)
7299 .apply_compression_config(
7300 accept_compression_encodings,
7301 send_compression_encodings,
7302 )
7303 .apply_max_message_size_config(
7304 max_decoding_message_size,
7305 max_encoding_message_size,
7306 );
7307 let res = grpc.unary(method, req).await;
7308 Ok(res)
7309 };
7310 Box::pin(fut)
7311 }
7312 "/qdrant.Points/Delete" => {
7313 #[allow(non_camel_case_types)]
7314 struct DeleteSvc<T: Points>(pub Arc<T>);
7315 impl<T: Points> tonic::server::UnaryService<super::DeletePoints>
7316 for DeleteSvc<T> {
7317 type Response = super::PointsOperationResponse;
7318 type Future = BoxFuture<
7319 tonic::Response<Self::Response>,
7320 tonic::Status,
7321 >;
7322 fn call(
7323 &mut self,
7324 request: tonic::Request<super::DeletePoints>,
7325 ) -> Self::Future {
7326 let inner = Arc::clone(&self.0);
7327 let fut = async move {
7328 <T as Points>::delete(&inner, request).await
7329 };
7330 Box::pin(fut)
7331 }
7332 }
7333 let accept_compression_encodings = self.accept_compression_encodings;
7334 let send_compression_encodings = self.send_compression_encodings;
7335 let max_decoding_message_size = self.max_decoding_message_size;
7336 let max_encoding_message_size = self.max_encoding_message_size;
7337 let inner = self.inner.clone();
7338 let fut = async move {
7339 let method = DeleteSvc(inner);
7340 let codec = tonic::codec::ProstCodec::default();
7341 let mut grpc = tonic::server::Grpc::new(codec)
7342 .apply_compression_config(
7343 accept_compression_encodings,
7344 send_compression_encodings,
7345 )
7346 .apply_max_message_size_config(
7347 max_decoding_message_size,
7348 max_encoding_message_size,
7349 );
7350 let res = grpc.unary(method, req).await;
7351 Ok(res)
7352 };
7353 Box::pin(fut)
7354 }
7355 "/qdrant.Points/Get" => {
7356 #[allow(non_camel_case_types)]
7357 struct GetSvc<T: Points>(pub Arc<T>);
7358 impl<T: Points> tonic::server::UnaryService<super::GetPoints>
7359 for GetSvc<T> {
7360 type Response = super::GetResponse;
7361 type Future = BoxFuture<
7362 tonic::Response<Self::Response>,
7363 tonic::Status,
7364 >;
7365 fn call(
7366 &mut self,
7367 request: tonic::Request<super::GetPoints>,
7368 ) -> Self::Future {
7369 let inner = Arc::clone(&self.0);
7370 let fut = async move {
7371 <T as Points>::get(&inner, request).await
7372 };
7373 Box::pin(fut)
7374 }
7375 }
7376 let accept_compression_encodings = self.accept_compression_encodings;
7377 let send_compression_encodings = self.send_compression_encodings;
7378 let max_decoding_message_size = self.max_decoding_message_size;
7379 let max_encoding_message_size = self.max_encoding_message_size;
7380 let inner = self.inner.clone();
7381 let fut = async move {
7382 let method = GetSvc(inner);
7383 let codec = tonic::codec::ProstCodec::default();
7384 let mut grpc = tonic::server::Grpc::new(codec)
7385 .apply_compression_config(
7386 accept_compression_encodings,
7387 send_compression_encodings,
7388 )
7389 .apply_max_message_size_config(
7390 max_decoding_message_size,
7391 max_encoding_message_size,
7392 );
7393 let res = grpc.unary(method, req).await;
7394 Ok(res)
7395 };
7396 Box::pin(fut)
7397 }
7398 "/qdrant.Points/UpdateVectors" => {
7399 #[allow(non_camel_case_types)]
7400 struct UpdateVectorsSvc<T: Points>(pub Arc<T>);
7401 impl<
7402 T: Points,
7403 > tonic::server::UnaryService<super::UpdatePointVectors>
7404 for UpdateVectorsSvc<T> {
7405 type Response = super::PointsOperationResponse;
7406 type Future = BoxFuture<
7407 tonic::Response<Self::Response>,
7408 tonic::Status,
7409 >;
7410 fn call(
7411 &mut self,
7412 request: tonic::Request<super::UpdatePointVectors>,
7413 ) -> Self::Future {
7414 let inner = Arc::clone(&self.0);
7415 let fut = async move {
7416 <T as Points>::update_vectors(&inner, request).await
7417 };
7418 Box::pin(fut)
7419 }
7420 }
7421 let accept_compression_encodings = self.accept_compression_encodings;
7422 let send_compression_encodings = self.send_compression_encodings;
7423 let max_decoding_message_size = self.max_decoding_message_size;
7424 let max_encoding_message_size = self.max_encoding_message_size;
7425 let inner = self.inner.clone();
7426 let fut = async move {
7427 let method = UpdateVectorsSvc(inner);
7428 let codec = tonic::codec::ProstCodec::default();
7429 let mut grpc = tonic::server::Grpc::new(codec)
7430 .apply_compression_config(
7431 accept_compression_encodings,
7432 send_compression_encodings,
7433 )
7434 .apply_max_message_size_config(
7435 max_decoding_message_size,
7436 max_encoding_message_size,
7437 );
7438 let res = grpc.unary(method, req).await;
7439 Ok(res)
7440 };
7441 Box::pin(fut)
7442 }
7443 "/qdrant.Points/DeleteVectors" => {
7444 #[allow(non_camel_case_types)]
7445 struct DeleteVectorsSvc<T: Points>(pub Arc<T>);
7446 impl<
7447 T: Points,
7448 > tonic::server::UnaryService<super::DeletePointVectors>
7449 for DeleteVectorsSvc<T> {
7450 type Response = super::PointsOperationResponse;
7451 type Future = BoxFuture<
7452 tonic::Response<Self::Response>,
7453 tonic::Status,
7454 >;
7455 fn call(
7456 &mut self,
7457 request: tonic::Request<super::DeletePointVectors>,
7458 ) -> Self::Future {
7459 let inner = Arc::clone(&self.0);
7460 let fut = async move {
7461 <T as Points>::delete_vectors(&inner, request).await
7462 };
7463 Box::pin(fut)
7464 }
7465 }
7466 let accept_compression_encodings = self.accept_compression_encodings;
7467 let send_compression_encodings = self.send_compression_encodings;
7468 let max_decoding_message_size = self.max_decoding_message_size;
7469 let max_encoding_message_size = self.max_encoding_message_size;
7470 let inner = self.inner.clone();
7471 let fut = async move {
7472 let method = DeleteVectorsSvc(inner);
7473 let codec = tonic::codec::ProstCodec::default();
7474 let mut grpc = tonic::server::Grpc::new(codec)
7475 .apply_compression_config(
7476 accept_compression_encodings,
7477 send_compression_encodings,
7478 )
7479 .apply_max_message_size_config(
7480 max_decoding_message_size,
7481 max_encoding_message_size,
7482 );
7483 let res = grpc.unary(method, req).await;
7484 Ok(res)
7485 };
7486 Box::pin(fut)
7487 }
7488 "/qdrant.Points/SetPayload" => {
7489 #[allow(non_camel_case_types)]
7490 struct SetPayloadSvc<T: Points>(pub Arc<T>);
7491 impl<T: Points> tonic::server::UnaryService<super::SetPayloadPoints>
7492 for SetPayloadSvc<T> {
7493 type Response = super::PointsOperationResponse;
7494 type Future = BoxFuture<
7495 tonic::Response<Self::Response>,
7496 tonic::Status,
7497 >;
7498 fn call(
7499 &mut self,
7500 request: tonic::Request<super::SetPayloadPoints>,
7501 ) -> Self::Future {
7502 let inner = Arc::clone(&self.0);
7503 let fut = async move {
7504 <T as Points>::set_payload(&inner, request).await
7505 };
7506 Box::pin(fut)
7507 }
7508 }
7509 let accept_compression_encodings = self.accept_compression_encodings;
7510 let send_compression_encodings = self.send_compression_encodings;
7511 let max_decoding_message_size = self.max_decoding_message_size;
7512 let max_encoding_message_size = self.max_encoding_message_size;
7513 let inner = self.inner.clone();
7514 let fut = async move {
7515 let method = SetPayloadSvc(inner);
7516 let codec = tonic::codec::ProstCodec::default();
7517 let mut grpc = tonic::server::Grpc::new(codec)
7518 .apply_compression_config(
7519 accept_compression_encodings,
7520 send_compression_encodings,
7521 )
7522 .apply_max_message_size_config(
7523 max_decoding_message_size,
7524 max_encoding_message_size,
7525 );
7526 let res = grpc.unary(method, req).await;
7527 Ok(res)
7528 };
7529 Box::pin(fut)
7530 }
7531 "/qdrant.Points/OverwritePayload" => {
7532 #[allow(non_camel_case_types)]
7533 struct OverwritePayloadSvc<T: Points>(pub Arc<T>);
7534 impl<T: Points> tonic::server::UnaryService<super::SetPayloadPoints>
7535 for OverwritePayloadSvc<T> {
7536 type Response = super::PointsOperationResponse;
7537 type Future = BoxFuture<
7538 tonic::Response<Self::Response>,
7539 tonic::Status,
7540 >;
7541 fn call(
7542 &mut self,
7543 request: tonic::Request<super::SetPayloadPoints>,
7544 ) -> Self::Future {
7545 let inner = Arc::clone(&self.0);
7546 let fut = async move {
7547 <T as Points>::overwrite_payload(&inner, request).await
7548 };
7549 Box::pin(fut)
7550 }
7551 }
7552 let accept_compression_encodings = self.accept_compression_encodings;
7553 let send_compression_encodings = self.send_compression_encodings;
7554 let max_decoding_message_size = self.max_decoding_message_size;
7555 let max_encoding_message_size = self.max_encoding_message_size;
7556 let inner = self.inner.clone();
7557 let fut = async move {
7558 let method = OverwritePayloadSvc(inner);
7559 let codec = tonic::codec::ProstCodec::default();
7560 let mut grpc = tonic::server::Grpc::new(codec)
7561 .apply_compression_config(
7562 accept_compression_encodings,
7563 send_compression_encodings,
7564 )
7565 .apply_max_message_size_config(
7566 max_decoding_message_size,
7567 max_encoding_message_size,
7568 );
7569 let res = grpc.unary(method, req).await;
7570 Ok(res)
7571 };
7572 Box::pin(fut)
7573 }
7574 "/qdrant.Points/DeletePayload" => {
7575 #[allow(non_camel_case_types)]
7576 struct DeletePayloadSvc<T: Points>(pub Arc<T>);
7577 impl<
7578 T: Points,
7579 > tonic::server::UnaryService<super::DeletePayloadPoints>
7580 for DeletePayloadSvc<T> {
7581 type Response = super::PointsOperationResponse;
7582 type Future = BoxFuture<
7583 tonic::Response<Self::Response>,
7584 tonic::Status,
7585 >;
7586 fn call(
7587 &mut self,
7588 request: tonic::Request<super::DeletePayloadPoints>,
7589 ) -> Self::Future {
7590 let inner = Arc::clone(&self.0);
7591 let fut = async move {
7592 <T as Points>::delete_payload(&inner, request).await
7593 };
7594 Box::pin(fut)
7595 }
7596 }
7597 let accept_compression_encodings = self.accept_compression_encodings;
7598 let send_compression_encodings = self.send_compression_encodings;
7599 let max_decoding_message_size = self.max_decoding_message_size;
7600 let max_encoding_message_size = self.max_encoding_message_size;
7601 let inner = self.inner.clone();
7602 let fut = async move {
7603 let method = DeletePayloadSvc(inner);
7604 let codec = tonic::codec::ProstCodec::default();
7605 let mut grpc = tonic::server::Grpc::new(codec)
7606 .apply_compression_config(
7607 accept_compression_encodings,
7608 send_compression_encodings,
7609 )
7610 .apply_max_message_size_config(
7611 max_decoding_message_size,
7612 max_encoding_message_size,
7613 );
7614 let res = grpc.unary(method, req).await;
7615 Ok(res)
7616 };
7617 Box::pin(fut)
7618 }
7619 "/qdrant.Points/ClearPayload" => {
7620 #[allow(non_camel_case_types)]
7621 struct ClearPayloadSvc<T: Points>(pub Arc<T>);
7622 impl<
7623 T: Points,
7624 > tonic::server::UnaryService<super::ClearPayloadPoints>
7625 for ClearPayloadSvc<T> {
7626 type Response = super::PointsOperationResponse;
7627 type Future = BoxFuture<
7628 tonic::Response<Self::Response>,
7629 tonic::Status,
7630 >;
7631 fn call(
7632 &mut self,
7633 request: tonic::Request<super::ClearPayloadPoints>,
7634 ) -> Self::Future {
7635 let inner = Arc::clone(&self.0);
7636 let fut = async move {
7637 <T as Points>::clear_payload(&inner, request).await
7638 };
7639 Box::pin(fut)
7640 }
7641 }
7642 let accept_compression_encodings = self.accept_compression_encodings;
7643 let send_compression_encodings = self.send_compression_encodings;
7644 let max_decoding_message_size = self.max_decoding_message_size;
7645 let max_encoding_message_size = self.max_encoding_message_size;
7646 let inner = self.inner.clone();
7647 let fut = async move {
7648 let method = ClearPayloadSvc(inner);
7649 let codec = tonic::codec::ProstCodec::default();
7650 let mut grpc = tonic::server::Grpc::new(codec)
7651 .apply_compression_config(
7652 accept_compression_encodings,
7653 send_compression_encodings,
7654 )
7655 .apply_max_message_size_config(
7656 max_decoding_message_size,
7657 max_encoding_message_size,
7658 );
7659 let res = grpc.unary(method, req).await;
7660 Ok(res)
7661 };
7662 Box::pin(fut)
7663 }
7664 "/qdrant.Points/CreateFieldIndex" => {
7665 #[allow(non_camel_case_types)]
7666 struct CreateFieldIndexSvc<T: Points>(pub Arc<T>);
7667 impl<
7668 T: Points,
7669 > tonic::server::UnaryService<super::CreateFieldIndexCollection>
7670 for CreateFieldIndexSvc<T> {
7671 type Response = super::PointsOperationResponse;
7672 type Future = BoxFuture<
7673 tonic::Response<Self::Response>,
7674 tonic::Status,
7675 >;
7676 fn call(
7677 &mut self,
7678 request: tonic::Request<super::CreateFieldIndexCollection>,
7679 ) -> Self::Future {
7680 let inner = Arc::clone(&self.0);
7681 let fut = async move {
7682 <T as Points>::create_field_index(&inner, request).await
7683 };
7684 Box::pin(fut)
7685 }
7686 }
7687 let accept_compression_encodings = self.accept_compression_encodings;
7688 let send_compression_encodings = self.send_compression_encodings;
7689 let max_decoding_message_size = self.max_decoding_message_size;
7690 let max_encoding_message_size = self.max_encoding_message_size;
7691 let inner = self.inner.clone();
7692 let fut = async move {
7693 let method = CreateFieldIndexSvc(inner);
7694 let codec = tonic::codec::ProstCodec::default();
7695 let mut grpc = tonic::server::Grpc::new(codec)
7696 .apply_compression_config(
7697 accept_compression_encodings,
7698 send_compression_encodings,
7699 )
7700 .apply_max_message_size_config(
7701 max_decoding_message_size,
7702 max_encoding_message_size,
7703 );
7704 let res = grpc.unary(method, req).await;
7705 Ok(res)
7706 };
7707 Box::pin(fut)
7708 }
7709 "/qdrant.Points/DeleteFieldIndex" => {
7710 #[allow(non_camel_case_types)]
7711 struct DeleteFieldIndexSvc<T: Points>(pub Arc<T>);
7712 impl<
7713 T: Points,
7714 > tonic::server::UnaryService<super::DeleteFieldIndexCollection>
7715 for DeleteFieldIndexSvc<T> {
7716 type Response = super::PointsOperationResponse;
7717 type Future = BoxFuture<
7718 tonic::Response<Self::Response>,
7719 tonic::Status,
7720 >;
7721 fn call(
7722 &mut self,
7723 request: tonic::Request<super::DeleteFieldIndexCollection>,
7724 ) -> Self::Future {
7725 let inner = Arc::clone(&self.0);
7726 let fut = async move {
7727 <T as Points>::delete_field_index(&inner, request).await
7728 };
7729 Box::pin(fut)
7730 }
7731 }
7732 let accept_compression_encodings = self.accept_compression_encodings;
7733 let send_compression_encodings = self.send_compression_encodings;
7734 let max_decoding_message_size = self.max_decoding_message_size;
7735 let max_encoding_message_size = self.max_encoding_message_size;
7736 let inner = self.inner.clone();
7737 let fut = async move {
7738 let method = DeleteFieldIndexSvc(inner);
7739 let codec = tonic::codec::ProstCodec::default();
7740 let mut grpc = tonic::server::Grpc::new(codec)
7741 .apply_compression_config(
7742 accept_compression_encodings,
7743 send_compression_encodings,
7744 )
7745 .apply_max_message_size_config(
7746 max_decoding_message_size,
7747 max_encoding_message_size,
7748 );
7749 let res = grpc.unary(method, req).await;
7750 Ok(res)
7751 };
7752 Box::pin(fut)
7753 }
7754 "/qdrant.Points/CreateVectorName" => {
7755 #[allow(non_camel_case_types)]
7756 struct CreateVectorNameSvc<T: Points>(pub Arc<T>);
7757 impl<
7758 T: Points,
7759 > tonic::server::UnaryService<super::CreateVectorNameRequest>
7760 for CreateVectorNameSvc<T> {
7761 type Response = super::PointsOperationResponse;
7762 type Future = BoxFuture<
7763 tonic::Response<Self::Response>,
7764 tonic::Status,
7765 >;
7766 fn call(
7767 &mut self,
7768 request: tonic::Request<super::CreateVectorNameRequest>,
7769 ) -> Self::Future {
7770 let inner = Arc::clone(&self.0);
7771 let fut = async move {
7772 <T as Points>::create_vector_name(&inner, request).await
7773 };
7774 Box::pin(fut)
7775 }
7776 }
7777 let accept_compression_encodings = self.accept_compression_encodings;
7778 let send_compression_encodings = self.send_compression_encodings;
7779 let max_decoding_message_size = self.max_decoding_message_size;
7780 let max_encoding_message_size = self.max_encoding_message_size;
7781 let inner = self.inner.clone();
7782 let fut = async move {
7783 let method = CreateVectorNameSvc(inner);
7784 let codec = tonic::codec::ProstCodec::default();
7785 let mut grpc = tonic::server::Grpc::new(codec)
7786 .apply_compression_config(
7787 accept_compression_encodings,
7788 send_compression_encodings,
7789 )
7790 .apply_max_message_size_config(
7791 max_decoding_message_size,
7792 max_encoding_message_size,
7793 );
7794 let res = grpc.unary(method, req).await;
7795 Ok(res)
7796 };
7797 Box::pin(fut)
7798 }
7799 "/qdrant.Points/DeleteVectorName" => {
7800 #[allow(non_camel_case_types)]
7801 struct DeleteVectorNameSvc<T: Points>(pub Arc<T>);
7802 impl<
7803 T: Points,
7804 > tonic::server::UnaryService<super::DeleteVectorNameRequest>
7805 for DeleteVectorNameSvc<T> {
7806 type Response = super::PointsOperationResponse;
7807 type Future = BoxFuture<
7808 tonic::Response<Self::Response>,
7809 tonic::Status,
7810 >;
7811 fn call(
7812 &mut self,
7813 request: tonic::Request<super::DeleteVectorNameRequest>,
7814 ) -> Self::Future {
7815 let inner = Arc::clone(&self.0);
7816 let fut = async move {
7817 <T as Points>::delete_vector_name(&inner, request).await
7818 };
7819 Box::pin(fut)
7820 }
7821 }
7822 let accept_compression_encodings = self.accept_compression_encodings;
7823 let send_compression_encodings = self.send_compression_encodings;
7824 let max_decoding_message_size = self.max_decoding_message_size;
7825 let max_encoding_message_size = self.max_encoding_message_size;
7826 let inner = self.inner.clone();
7827 let fut = async move {
7828 let method = DeleteVectorNameSvc(inner);
7829 let codec = tonic::codec::ProstCodec::default();
7830 let mut grpc = tonic::server::Grpc::new(codec)
7831 .apply_compression_config(
7832 accept_compression_encodings,
7833 send_compression_encodings,
7834 )
7835 .apply_max_message_size_config(
7836 max_decoding_message_size,
7837 max_encoding_message_size,
7838 );
7839 let res = grpc.unary(method, req).await;
7840 Ok(res)
7841 };
7842 Box::pin(fut)
7843 }
7844 "/qdrant.Points/Search" => {
7845 #[allow(non_camel_case_types)]
7846 struct SearchSvc<T: Points>(pub Arc<T>);
7847 impl<T: Points> tonic::server::UnaryService<super::SearchPoints>
7848 for SearchSvc<T> {
7849 type Response = super::SearchResponse;
7850 type Future = BoxFuture<
7851 tonic::Response<Self::Response>,
7852 tonic::Status,
7853 >;
7854 fn call(
7855 &mut self,
7856 request: tonic::Request<super::SearchPoints>,
7857 ) -> Self::Future {
7858 let inner = Arc::clone(&self.0);
7859 let fut = async move {
7860 <T as Points>::search(&inner, request).await
7861 };
7862 Box::pin(fut)
7863 }
7864 }
7865 let accept_compression_encodings = self.accept_compression_encodings;
7866 let send_compression_encodings = self.send_compression_encodings;
7867 let max_decoding_message_size = self.max_decoding_message_size;
7868 let max_encoding_message_size = self.max_encoding_message_size;
7869 let inner = self.inner.clone();
7870 let fut = async move {
7871 let method = SearchSvc(inner);
7872 let codec = tonic::codec::ProstCodec::default();
7873 let mut grpc = tonic::server::Grpc::new(codec)
7874 .apply_compression_config(
7875 accept_compression_encodings,
7876 send_compression_encodings,
7877 )
7878 .apply_max_message_size_config(
7879 max_decoding_message_size,
7880 max_encoding_message_size,
7881 );
7882 let res = grpc.unary(method, req).await;
7883 Ok(res)
7884 };
7885 Box::pin(fut)
7886 }
7887 "/qdrant.Points/SearchBatch" => {
7888 #[allow(non_camel_case_types)]
7889 struct SearchBatchSvc<T: Points>(pub Arc<T>);
7890 impl<T: Points> tonic::server::UnaryService<super::SearchBatchPoints>
7891 for SearchBatchSvc<T> {
7892 type Response = super::SearchBatchResponse;
7893 type Future = BoxFuture<
7894 tonic::Response<Self::Response>,
7895 tonic::Status,
7896 >;
7897 fn call(
7898 &mut self,
7899 request: tonic::Request<super::SearchBatchPoints>,
7900 ) -> Self::Future {
7901 let inner = Arc::clone(&self.0);
7902 let fut = async move {
7903 <T as Points>::search_batch(&inner, request).await
7904 };
7905 Box::pin(fut)
7906 }
7907 }
7908 let accept_compression_encodings = self.accept_compression_encodings;
7909 let send_compression_encodings = self.send_compression_encodings;
7910 let max_decoding_message_size = self.max_decoding_message_size;
7911 let max_encoding_message_size = self.max_encoding_message_size;
7912 let inner = self.inner.clone();
7913 let fut = async move {
7914 let method = SearchBatchSvc(inner);
7915 let codec = tonic::codec::ProstCodec::default();
7916 let mut grpc = tonic::server::Grpc::new(codec)
7917 .apply_compression_config(
7918 accept_compression_encodings,
7919 send_compression_encodings,
7920 )
7921 .apply_max_message_size_config(
7922 max_decoding_message_size,
7923 max_encoding_message_size,
7924 );
7925 let res = grpc.unary(method, req).await;
7926 Ok(res)
7927 };
7928 Box::pin(fut)
7929 }
7930 "/qdrant.Points/SearchGroups" => {
7931 #[allow(non_camel_case_types)]
7932 struct SearchGroupsSvc<T: Points>(pub Arc<T>);
7933 impl<T: Points> tonic::server::UnaryService<super::SearchPointGroups>
7934 for SearchGroupsSvc<T> {
7935 type Response = super::SearchGroupsResponse;
7936 type Future = BoxFuture<
7937 tonic::Response<Self::Response>,
7938 tonic::Status,
7939 >;
7940 fn call(
7941 &mut self,
7942 request: tonic::Request<super::SearchPointGroups>,
7943 ) -> Self::Future {
7944 let inner = Arc::clone(&self.0);
7945 let fut = async move {
7946 <T as Points>::search_groups(&inner, request).await
7947 };
7948 Box::pin(fut)
7949 }
7950 }
7951 let accept_compression_encodings = self.accept_compression_encodings;
7952 let send_compression_encodings = self.send_compression_encodings;
7953 let max_decoding_message_size = self.max_decoding_message_size;
7954 let max_encoding_message_size = self.max_encoding_message_size;
7955 let inner = self.inner.clone();
7956 let fut = async move {
7957 let method = SearchGroupsSvc(inner);
7958 let codec = tonic::codec::ProstCodec::default();
7959 let mut grpc = tonic::server::Grpc::new(codec)
7960 .apply_compression_config(
7961 accept_compression_encodings,
7962 send_compression_encodings,
7963 )
7964 .apply_max_message_size_config(
7965 max_decoding_message_size,
7966 max_encoding_message_size,
7967 );
7968 let res = grpc.unary(method, req).await;
7969 Ok(res)
7970 };
7971 Box::pin(fut)
7972 }
7973 "/qdrant.Points/Scroll" => {
7974 #[allow(non_camel_case_types)]
7975 struct ScrollSvc<T: Points>(pub Arc<T>);
7976 impl<T: Points> tonic::server::UnaryService<super::ScrollPoints>
7977 for ScrollSvc<T> {
7978 type Response = super::ScrollResponse;
7979 type Future = BoxFuture<
7980 tonic::Response<Self::Response>,
7981 tonic::Status,
7982 >;
7983 fn call(
7984 &mut self,
7985 request: tonic::Request<super::ScrollPoints>,
7986 ) -> Self::Future {
7987 let inner = Arc::clone(&self.0);
7988 let fut = async move {
7989 <T as Points>::scroll(&inner, request).await
7990 };
7991 Box::pin(fut)
7992 }
7993 }
7994 let accept_compression_encodings = self.accept_compression_encodings;
7995 let send_compression_encodings = self.send_compression_encodings;
7996 let max_decoding_message_size = self.max_decoding_message_size;
7997 let max_encoding_message_size = self.max_encoding_message_size;
7998 let inner = self.inner.clone();
7999 let fut = async move {
8000 let method = ScrollSvc(inner);
8001 let codec = tonic::codec::ProstCodec::default();
8002 let mut grpc = tonic::server::Grpc::new(codec)
8003 .apply_compression_config(
8004 accept_compression_encodings,
8005 send_compression_encodings,
8006 )
8007 .apply_max_message_size_config(
8008 max_decoding_message_size,
8009 max_encoding_message_size,
8010 );
8011 let res = grpc.unary(method, req).await;
8012 Ok(res)
8013 };
8014 Box::pin(fut)
8015 }
8016 "/qdrant.Points/Recommend" => {
8017 #[allow(non_camel_case_types)]
8018 struct RecommendSvc<T: Points>(pub Arc<T>);
8019 impl<T: Points> tonic::server::UnaryService<super::RecommendPoints>
8020 for RecommendSvc<T> {
8021 type Response = super::RecommendResponse;
8022 type Future = BoxFuture<
8023 tonic::Response<Self::Response>,
8024 tonic::Status,
8025 >;
8026 fn call(
8027 &mut self,
8028 request: tonic::Request<super::RecommendPoints>,
8029 ) -> Self::Future {
8030 let inner = Arc::clone(&self.0);
8031 let fut = async move {
8032 <T as Points>::recommend(&inner, request).await
8033 };
8034 Box::pin(fut)
8035 }
8036 }
8037 let accept_compression_encodings = self.accept_compression_encodings;
8038 let send_compression_encodings = self.send_compression_encodings;
8039 let max_decoding_message_size = self.max_decoding_message_size;
8040 let max_encoding_message_size = self.max_encoding_message_size;
8041 let inner = self.inner.clone();
8042 let fut = async move {
8043 let method = RecommendSvc(inner);
8044 let codec = tonic::codec::ProstCodec::default();
8045 let mut grpc = tonic::server::Grpc::new(codec)
8046 .apply_compression_config(
8047 accept_compression_encodings,
8048 send_compression_encodings,
8049 )
8050 .apply_max_message_size_config(
8051 max_decoding_message_size,
8052 max_encoding_message_size,
8053 );
8054 let res = grpc.unary(method, req).await;
8055 Ok(res)
8056 };
8057 Box::pin(fut)
8058 }
8059 "/qdrant.Points/RecommendBatch" => {
8060 #[allow(non_camel_case_types)]
8061 struct RecommendBatchSvc<T: Points>(pub Arc<T>);
8062 impl<
8063 T: Points,
8064 > tonic::server::UnaryService<super::RecommendBatchPoints>
8065 for RecommendBatchSvc<T> {
8066 type Response = super::RecommendBatchResponse;
8067 type Future = BoxFuture<
8068 tonic::Response<Self::Response>,
8069 tonic::Status,
8070 >;
8071 fn call(
8072 &mut self,
8073 request: tonic::Request<super::RecommendBatchPoints>,
8074 ) -> Self::Future {
8075 let inner = Arc::clone(&self.0);
8076 let fut = async move {
8077 <T as Points>::recommend_batch(&inner, request).await
8078 };
8079 Box::pin(fut)
8080 }
8081 }
8082 let accept_compression_encodings = self.accept_compression_encodings;
8083 let send_compression_encodings = self.send_compression_encodings;
8084 let max_decoding_message_size = self.max_decoding_message_size;
8085 let max_encoding_message_size = self.max_encoding_message_size;
8086 let inner = self.inner.clone();
8087 let fut = async move {
8088 let method = RecommendBatchSvc(inner);
8089 let codec = tonic::codec::ProstCodec::default();
8090 let mut grpc = tonic::server::Grpc::new(codec)
8091 .apply_compression_config(
8092 accept_compression_encodings,
8093 send_compression_encodings,
8094 )
8095 .apply_max_message_size_config(
8096 max_decoding_message_size,
8097 max_encoding_message_size,
8098 );
8099 let res = grpc.unary(method, req).await;
8100 Ok(res)
8101 };
8102 Box::pin(fut)
8103 }
8104 "/qdrant.Points/RecommendGroups" => {
8105 #[allow(non_camel_case_types)]
8106 struct RecommendGroupsSvc<T: Points>(pub Arc<T>);
8107 impl<
8108 T: Points,
8109 > tonic::server::UnaryService<super::RecommendPointGroups>
8110 for RecommendGroupsSvc<T> {
8111 type Response = super::RecommendGroupsResponse;
8112 type Future = BoxFuture<
8113 tonic::Response<Self::Response>,
8114 tonic::Status,
8115 >;
8116 fn call(
8117 &mut self,
8118 request: tonic::Request<super::RecommendPointGroups>,
8119 ) -> Self::Future {
8120 let inner = Arc::clone(&self.0);
8121 let fut = async move {
8122 <T as Points>::recommend_groups(&inner, request).await
8123 };
8124 Box::pin(fut)
8125 }
8126 }
8127 let accept_compression_encodings = self.accept_compression_encodings;
8128 let send_compression_encodings = self.send_compression_encodings;
8129 let max_decoding_message_size = self.max_decoding_message_size;
8130 let max_encoding_message_size = self.max_encoding_message_size;
8131 let inner = self.inner.clone();
8132 let fut = async move {
8133 let method = RecommendGroupsSvc(inner);
8134 let codec = tonic::codec::ProstCodec::default();
8135 let mut grpc = tonic::server::Grpc::new(codec)
8136 .apply_compression_config(
8137 accept_compression_encodings,
8138 send_compression_encodings,
8139 )
8140 .apply_max_message_size_config(
8141 max_decoding_message_size,
8142 max_encoding_message_size,
8143 );
8144 let res = grpc.unary(method, req).await;
8145 Ok(res)
8146 };
8147 Box::pin(fut)
8148 }
8149 "/qdrant.Points/Discover" => {
8150 #[allow(non_camel_case_types)]
8151 struct DiscoverSvc<T: Points>(pub Arc<T>);
8152 impl<T: Points> tonic::server::UnaryService<super::DiscoverPoints>
8153 for DiscoverSvc<T> {
8154 type Response = super::DiscoverResponse;
8155 type Future = BoxFuture<
8156 tonic::Response<Self::Response>,
8157 tonic::Status,
8158 >;
8159 fn call(
8160 &mut self,
8161 request: tonic::Request<super::DiscoverPoints>,
8162 ) -> Self::Future {
8163 let inner = Arc::clone(&self.0);
8164 let fut = async move {
8165 <T as Points>::discover(&inner, request).await
8166 };
8167 Box::pin(fut)
8168 }
8169 }
8170 let accept_compression_encodings = self.accept_compression_encodings;
8171 let send_compression_encodings = self.send_compression_encodings;
8172 let max_decoding_message_size = self.max_decoding_message_size;
8173 let max_encoding_message_size = self.max_encoding_message_size;
8174 let inner = self.inner.clone();
8175 let fut = async move {
8176 let method = DiscoverSvc(inner);
8177 let codec = tonic::codec::ProstCodec::default();
8178 let mut grpc = tonic::server::Grpc::new(codec)
8179 .apply_compression_config(
8180 accept_compression_encodings,
8181 send_compression_encodings,
8182 )
8183 .apply_max_message_size_config(
8184 max_decoding_message_size,
8185 max_encoding_message_size,
8186 );
8187 let res = grpc.unary(method, req).await;
8188 Ok(res)
8189 };
8190 Box::pin(fut)
8191 }
8192 "/qdrant.Points/DiscoverBatch" => {
8193 #[allow(non_camel_case_types)]
8194 struct DiscoverBatchSvc<T: Points>(pub Arc<T>);
8195 impl<
8196 T: Points,
8197 > tonic::server::UnaryService<super::DiscoverBatchPoints>
8198 for DiscoverBatchSvc<T> {
8199 type Response = super::DiscoverBatchResponse;
8200 type Future = BoxFuture<
8201 tonic::Response<Self::Response>,
8202 tonic::Status,
8203 >;
8204 fn call(
8205 &mut self,
8206 request: tonic::Request<super::DiscoverBatchPoints>,
8207 ) -> Self::Future {
8208 let inner = Arc::clone(&self.0);
8209 let fut = async move {
8210 <T as Points>::discover_batch(&inner, request).await
8211 };
8212 Box::pin(fut)
8213 }
8214 }
8215 let accept_compression_encodings = self.accept_compression_encodings;
8216 let send_compression_encodings = self.send_compression_encodings;
8217 let max_decoding_message_size = self.max_decoding_message_size;
8218 let max_encoding_message_size = self.max_encoding_message_size;
8219 let inner = self.inner.clone();
8220 let fut = async move {
8221 let method = DiscoverBatchSvc(inner);
8222 let codec = tonic::codec::ProstCodec::default();
8223 let mut grpc = tonic::server::Grpc::new(codec)
8224 .apply_compression_config(
8225 accept_compression_encodings,
8226 send_compression_encodings,
8227 )
8228 .apply_max_message_size_config(
8229 max_decoding_message_size,
8230 max_encoding_message_size,
8231 );
8232 let res = grpc.unary(method, req).await;
8233 Ok(res)
8234 };
8235 Box::pin(fut)
8236 }
8237 "/qdrant.Points/Count" => {
8238 #[allow(non_camel_case_types)]
8239 struct CountSvc<T: Points>(pub Arc<T>);
8240 impl<T: Points> tonic::server::UnaryService<super::CountPoints>
8241 for CountSvc<T> {
8242 type Response = super::CountResponse;
8243 type Future = BoxFuture<
8244 tonic::Response<Self::Response>,
8245 tonic::Status,
8246 >;
8247 fn call(
8248 &mut self,
8249 request: tonic::Request<super::CountPoints>,
8250 ) -> Self::Future {
8251 let inner = Arc::clone(&self.0);
8252 let fut = async move {
8253 <T as Points>::count(&inner, request).await
8254 };
8255 Box::pin(fut)
8256 }
8257 }
8258 let accept_compression_encodings = self.accept_compression_encodings;
8259 let send_compression_encodings = self.send_compression_encodings;
8260 let max_decoding_message_size = self.max_decoding_message_size;
8261 let max_encoding_message_size = self.max_encoding_message_size;
8262 let inner = self.inner.clone();
8263 let fut = async move {
8264 let method = CountSvc(inner);
8265 let codec = tonic::codec::ProstCodec::default();
8266 let mut grpc = tonic::server::Grpc::new(codec)
8267 .apply_compression_config(
8268 accept_compression_encodings,
8269 send_compression_encodings,
8270 )
8271 .apply_max_message_size_config(
8272 max_decoding_message_size,
8273 max_encoding_message_size,
8274 );
8275 let res = grpc.unary(method, req).await;
8276 Ok(res)
8277 };
8278 Box::pin(fut)
8279 }
8280 "/qdrant.Points/UpdateBatch" => {
8281 #[allow(non_camel_case_types)]
8282 struct UpdateBatchSvc<T: Points>(pub Arc<T>);
8283 impl<T: Points> tonic::server::UnaryService<super::UpdateBatchPoints>
8284 for UpdateBatchSvc<T> {
8285 type Response = super::UpdateBatchResponse;
8286 type Future = BoxFuture<
8287 tonic::Response<Self::Response>,
8288 tonic::Status,
8289 >;
8290 fn call(
8291 &mut self,
8292 request: tonic::Request<super::UpdateBatchPoints>,
8293 ) -> Self::Future {
8294 let inner = Arc::clone(&self.0);
8295 let fut = async move {
8296 <T as Points>::update_batch(&inner, request).await
8297 };
8298 Box::pin(fut)
8299 }
8300 }
8301 let accept_compression_encodings = self.accept_compression_encodings;
8302 let send_compression_encodings = self.send_compression_encodings;
8303 let max_decoding_message_size = self.max_decoding_message_size;
8304 let max_encoding_message_size = self.max_encoding_message_size;
8305 let inner = self.inner.clone();
8306 let fut = async move {
8307 let method = UpdateBatchSvc(inner);
8308 let codec = tonic::codec::ProstCodec::default();
8309 let mut grpc = tonic::server::Grpc::new(codec)
8310 .apply_compression_config(
8311 accept_compression_encodings,
8312 send_compression_encodings,
8313 )
8314 .apply_max_message_size_config(
8315 max_decoding_message_size,
8316 max_encoding_message_size,
8317 );
8318 let res = grpc.unary(method, req).await;
8319 Ok(res)
8320 };
8321 Box::pin(fut)
8322 }
8323 "/qdrant.Points/Query" => {
8324 #[allow(non_camel_case_types)]
8325 struct QuerySvc<T: Points>(pub Arc<T>);
8326 impl<T: Points> tonic::server::UnaryService<super::QueryPoints>
8327 for QuerySvc<T> {
8328 type Response = super::QueryResponse;
8329 type Future = BoxFuture<
8330 tonic::Response<Self::Response>,
8331 tonic::Status,
8332 >;
8333 fn call(
8334 &mut self,
8335 request: tonic::Request<super::QueryPoints>,
8336 ) -> Self::Future {
8337 let inner = Arc::clone(&self.0);
8338 let fut = async move {
8339 <T as Points>::query(&inner, request).await
8340 };
8341 Box::pin(fut)
8342 }
8343 }
8344 let accept_compression_encodings = self.accept_compression_encodings;
8345 let send_compression_encodings = self.send_compression_encodings;
8346 let max_decoding_message_size = self.max_decoding_message_size;
8347 let max_encoding_message_size = self.max_encoding_message_size;
8348 let inner = self.inner.clone();
8349 let fut = async move {
8350 let method = QuerySvc(inner);
8351 let codec = tonic::codec::ProstCodec::default();
8352 let mut grpc = tonic::server::Grpc::new(codec)
8353 .apply_compression_config(
8354 accept_compression_encodings,
8355 send_compression_encodings,
8356 )
8357 .apply_max_message_size_config(
8358 max_decoding_message_size,
8359 max_encoding_message_size,
8360 );
8361 let res = grpc.unary(method, req).await;
8362 Ok(res)
8363 };
8364 Box::pin(fut)
8365 }
8366 "/qdrant.Points/QueryBatch" => {
8367 #[allow(non_camel_case_types)]
8368 struct QueryBatchSvc<T: Points>(pub Arc<T>);
8369 impl<T: Points> tonic::server::UnaryService<super::QueryBatchPoints>
8370 for QueryBatchSvc<T> {
8371 type Response = super::QueryBatchResponse;
8372 type Future = BoxFuture<
8373 tonic::Response<Self::Response>,
8374 tonic::Status,
8375 >;
8376 fn call(
8377 &mut self,
8378 request: tonic::Request<super::QueryBatchPoints>,
8379 ) -> Self::Future {
8380 let inner = Arc::clone(&self.0);
8381 let fut = async move {
8382 <T as Points>::query_batch(&inner, request).await
8383 };
8384 Box::pin(fut)
8385 }
8386 }
8387 let accept_compression_encodings = self.accept_compression_encodings;
8388 let send_compression_encodings = self.send_compression_encodings;
8389 let max_decoding_message_size = self.max_decoding_message_size;
8390 let max_encoding_message_size = self.max_encoding_message_size;
8391 let inner = self.inner.clone();
8392 let fut = async move {
8393 let method = QueryBatchSvc(inner);
8394 let codec = tonic::codec::ProstCodec::default();
8395 let mut grpc = tonic::server::Grpc::new(codec)
8396 .apply_compression_config(
8397 accept_compression_encodings,
8398 send_compression_encodings,
8399 )
8400 .apply_max_message_size_config(
8401 max_decoding_message_size,
8402 max_encoding_message_size,
8403 );
8404 let res = grpc.unary(method, req).await;
8405 Ok(res)
8406 };
8407 Box::pin(fut)
8408 }
8409 "/qdrant.Points/QueryGroups" => {
8410 #[allow(non_camel_case_types)]
8411 struct QueryGroupsSvc<T: Points>(pub Arc<T>);
8412 impl<T: Points> tonic::server::UnaryService<super::QueryPointGroups>
8413 for QueryGroupsSvc<T> {
8414 type Response = super::QueryGroupsResponse;
8415 type Future = BoxFuture<
8416 tonic::Response<Self::Response>,
8417 tonic::Status,
8418 >;
8419 fn call(
8420 &mut self,
8421 request: tonic::Request<super::QueryPointGroups>,
8422 ) -> Self::Future {
8423 let inner = Arc::clone(&self.0);
8424 let fut = async move {
8425 <T as Points>::query_groups(&inner, request).await
8426 };
8427 Box::pin(fut)
8428 }
8429 }
8430 let accept_compression_encodings = self.accept_compression_encodings;
8431 let send_compression_encodings = self.send_compression_encodings;
8432 let max_decoding_message_size = self.max_decoding_message_size;
8433 let max_encoding_message_size = self.max_encoding_message_size;
8434 let inner = self.inner.clone();
8435 let fut = async move {
8436 let method = QueryGroupsSvc(inner);
8437 let codec = tonic::codec::ProstCodec::default();
8438 let mut grpc = tonic::server::Grpc::new(codec)
8439 .apply_compression_config(
8440 accept_compression_encodings,
8441 send_compression_encodings,
8442 )
8443 .apply_max_message_size_config(
8444 max_decoding_message_size,
8445 max_encoding_message_size,
8446 );
8447 let res = grpc.unary(method, req).await;
8448 Ok(res)
8449 };
8450 Box::pin(fut)
8451 }
8452 "/qdrant.Points/Facet" => {
8453 #[allow(non_camel_case_types)]
8454 struct FacetSvc<T: Points>(pub Arc<T>);
8455 impl<T: Points> tonic::server::UnaryService<super::FacetCounts>
8456 for FacetSvc<T> {
8457 type Response = super::FacetResponse;
8458 type Future = BoxFuture<
8459 tonic::Response<Self::Response>,
8460 tonic::Status,
8461 >;
8462 fn call(
8463 &mut self,
8464 request: tonic::Request<super::FacetCounts>,
8465 ) -> Self::Future {
8466 let inner = Arc::clone(&self.0);
8467 let fut = async move {
8468 <T as Points>::facet(&inner, request).await
8469 };
8470 Box::pin(fut)
8471 }
8472 }
8473 let accept_compression_encodings = self.accept_compression_encodings;
8474 let send_compression_encodings = self.send_compression_encodings;
8475 let max_decoding_message_size = self.max_decoding_message_size;
8476 let max_encoding_message_size = self.max_encoding_message_size;
8477 let inner = self.inner.clone();
8478 let fut = async move {
8479 let method = FacetSvc(inner);
8480 let codec = tonic::codec::ProstCodec::default();
8481 let mut grpc = tonic::server::Grpc::new(codec)
8482 .apply_compression_config(
8483 accept_compression_encodings,
8484 send_compression_encodings,
8485 )
8486 .apply_max_message_size_config(
8487 max_decoding_message_size,
8488 max_encoding_message_size,
8489 );
8490 let res = grpc.unary(method, req).await;
8491 Ok(res)
8492 };
8493 Box::pin(fut)
8494 }
8495 "/qdrant.Points/SearchMatrixPairs" => {
8496 #[allow(non_camel_case_types)]
8497 struct SearchMatrixPairsSvc<T: Points>(pub Arc<T>);
8498 impl<
8499 T: Points,
8500 > tonic::server::UnaryService<super::SearchMatrixPoints>
8501 for SearchMatrixPairsSvc<T> {
8502 type Response = super::SearchMatrixPairsResponse;
8503 type Future = BoxFuture<
8504 tonic::Response<Self::Response>,
8505 tonic::Status,
8506 >;
8507 fn call(
8508 &mut self,
8509 request: tonic::Request<super::SearchMatrixPoints>,
8510 ) -> Self::Future {
8511 let inner = Arc::clone(&self.0);
8512 let fut = async move {
8513 <T as Points>::search_matrix_pairs(&inner, request).await
8514 };
8515 Box::pin(fut)
8516 }
8517 }
8518 let accept_compression_encodings = self.accept_compression_encodings;
8519 let send_compression_encodings = self.send_compression_encodings;
8520 let max_decoding_message_size = self.max_decoding_message_size;
8521 let max_encoding_message_size = self.max_encoding_message_size;
8522 let inner = self.inner.clone();
8523 let fut = async move {
8524 let method = SearchMatrixPairsSvc(inner);
8525 let codec = tonic::codec::ProstCodec::default();
8526 let mut grpc = tonic::server::Grpc::new(codec)
8527 .apply_compression_config(
8528 accept_compression_encodings,
8529 send_compression_encodings,
8530 )
8531 .apply_max_message_size_config(
8532 max_decoding_message_size,
8533 max_encoding_message_size,
8534 );
8535 let res = grpc.unary(method, req).await;
8536 Ok(res)
8537 };
8538 Box::pin(fut)
8539 }
8540 "/qdrant.Points/SearchMatrixOffsets" => {
8541 #[allow(non_camel_case_types)]
8542 struct SearchMatrixOffsetsSvc<T: Points>(pub Arc<T>);
8543 impl<
8544 T: Points,
8545 > tonic::server::UnaryService<super::SearchMatrixPoints>
8546 for SearchMatrixOffsetsSvc<T> {
8547 type Response = super::SearchMatrixOffsetsResponse;
8548 type Future = BoxFuture<
8549 tonic::Response<Self::Response>,
8550 tonic::Status,
8551 >;
8552 fn call(
8553 &mut self,
8554 request: tonic::Request<super::SearchMatrixPoints>,
8555 ) -> Self::Future {
8556 let inner = Arc::clone(&self.0);
8557 let fut = async move {
8558 <T as Points>::search_matrix_offsets(&inner, request).await
8559 };
8560 Box::pin(fut)
8561 }
8562 }
8563 let accept_compression_encodings = self.accept_compression_encodings;
8564 let send_compression_encodings = self.send_compression_encodings;
8565 let max_decoding_message_size = self.max_decoding_message_size;
8566 let max_encoding_message_size = self.max_encoding_message_size;
8567 let inner = self.inner.clone();
8568 let fut = async move {
8569 let method = SearchMatrixOffsetsSvc(inner);
8570 let codec = tonic::codec::ProstCodec::default();
8571 let mut grpc = tonic::server::Grpc::new(codec)
8572 .apply_compression_config(
8573 accept_compression_encodings,
8574 send_compression_encodings,
8575 )
8576 .apply_max_message_size_config(
8577 max_decoding_message_size,
8578 max_encoding_message_size,
8579 );
8580 let res = grpc.unary(method, req).await;
8581 Ok(res)
8582 };
8583 Box::pin(fut)
8584 }
8585 _ => {
8586 Box::pin(async move {
8587 let mut response = http::Response::new(empty_body());
8588 let headers = response.headers_mut();
8589 headers
8590 .insert(
8591 tonic::Status::GRPC_STATUS,
8592 (tonic::Code::Unimplemented as i32).into(),
8593 );
8594 headers
8595 .insert(
8596 http::header::CONTENT_TYPE,
8597 tonic::metadata::GRPC_CONTENT_TYPE,
8598 );
8599 Ok(response)
8600 })
8601 }
8602 }
8603 }
8604 }
8605 impl<T> Clone for PointsServer<T> {
8606 fn clone(&self) -> Self {
8607 let inner = self.inner.clone();
8608 Self {
8609 inner,
8610 accept_compression_encodings: self.accept_compression_encodings,
8611 send_compression_encodings: self.send_compression_encodings,
8612 max_decoding_message_size: self.max_decoding_message_size,
8613 max_encoding_message_size: self.max_encoding_message_size,
8614 }
8615 }
8616 }
8617 pub const SERVICE_NAME: &str = "qdrant.Points";
8619 impl<T> tonic::server::NamedService for PointsServer<T> {
8620 const NAME: &'static str = SERVICE_NAME;
8621 }
8622}
8623#[derive(Clone, Copy, PartialEq, ::prost::Message)]
8624pub struct CreateFullSnapshotRequest {}
8625#[derive(Clone, Copy, PartialEq, ::prost::Message)]
8626pub struct ListFullSnapshotsRequest {}
8627#[derive(Clone, PartialEq, ::prost::Message)]
8628pub struct DeleteFullSnapshotRequest {
8629 #[prost(string, tag = "1")]
8631 pub snapshot_name: ::prost::alloc::string::String,
8632}
8633#[derive(Clone, PartialEq, ::prost::Message)]
8634pub struct CreateSnapshotRequest {
8635 #[prost(string, tag = "1")]
8637 pub collection_name: ::prost::alloc::string::String,
8638}
8639#[derive(Clone, PartialEq, ::prost::Message)]
8640pub struct ListSnapshotsRequest {
8641 #[prost(string, tag = "1")]
8643 pub collection_name: ::prost::alloc::string::String,
8644}
8645#[derive(Clone, PartialEq, ::prost::Message)]
8646pub struct DeleteSnapshotRequest {
8647 #[prost(string, tag = "1")]
8649 pub collection_name: ::prost::alloc::string::String,
8650 #[prost(string, tag = "2")]
8652 pub snapshot_name: ::prost::alloc::string::String,
8653}
8654#[derive(Clone, PartialEq, ::prost::Message)]
8655pub struct SnapshotDescription {
8656 #[prost(string, tag = "1")]
8658 pub name: ::prost::alloc::string::String,
8659 #[prost(message, optional, tag = "2")]
8661 pub creation_time: ::core::option::Option<::prost_types::Timestamp>,
8662 #[prost(int64, tag = "3")]
8664 pub size: i64,
8665 #[prost(string, optional, tag = "4")]
8667 pub checksum: ::core::option::Option<::prost::alloc::string::String>,
8668}
8669#[derive(Clone, PartialEq, ::prost::Message)]
8670pub struct CreateSnapshotResponse {
8671 #[prost(message, optional, tag = "1")]
8672 pub snapshot_description: ::core::option::Option<SnapshotDescription>,
8673 #[prost(double, tag = "2")]
8675 pub time: f64,
8676}
8677#[derive(Clone, PartialEq, ::prost::Message)]
8678pub struct ListSnapshotsResponse {
8679 #[prost(message, repeated, tag = "1")]
8680 pub snapshot_descriptions: ::prost::alloc::vec::Vec<SnapshotDescription>,
8681 #[prost(double, tag = "2")]
8683 pub time: f64,
8684}
8685#[derive(Clone, Copy, PartialEq, ::prost::Message)]
8686pub struct DeleteSnapshotResponse {
8687 #[prost(double, tag = "1")]
8689 pub time: f64,
8690}
8691pub mod snapshots_client {
8693 #![allow(
8694 unused_variables,
8695 dead_code,
8696 missing_docs,
8697 clippy::wildcard_imports,
8698 clippy::let_unit_value,
8699 )]
8700 use tonic::codegen::*;
8701 use tonic::codegen::http::Uri;
8702 #[derive(Debug, Clone)]
8703 pub struct SnapshotsClient<T> {
8704 inner: tonic::client::Grpc<T>,
8705 }
8706 impl SnapshotsClient<tonic::transport::Channel> {
8707 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
8709 where
8710 D: TryInto<tonic::transport::Endpoint>,
8711 D::Error: Into<StdError>,
8712 {
8713 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
8714 Ok(Self::new(conn))
8715 }
8716 }
8717 impl<T> SnapshotsClient<T>
8718 where
8719 T: tonic::client::GrpcService<tonic::body::BoxBody>,
8720 T::Error: Into<StdError>,
8721 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
8722 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
8723 {
8724 pub fn new(inner: T) -> Self {
8725 let inner = tonic::client::Grpc::new(inner);
8726 Self { inner }
8727 }
8728 pub fn with_origin(inner: T, origin: Uri) -> Self {
8729 let inner = tonic::client::Grpc::with_origin(inner, origin);
8730 Self { inner }
8731 }
8732 pub fn with_interceptor<F>(
8733 inner: T,
8734 interceptor: F,
8735 ) -> SnapshotsClient<InterceptedService<T, F>>
8736 where
8737 F: tonic::service::Interceptor,
8738 T::ResponseBody: Default,
8739 T: tonic::codegen::Service<
8740 http::Request<tonic::body::BoxBody>,
8741 Response = http::Response<
8742 <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
8743 >,
8744 >,
8745 <T as tonic::codegen::Service<
8746 http::Request<tonic::body::BoxBody>,
8747 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
8748 {
8749 SnapshotsClient::new(InterceptedService::new(inner, interceptor))
8750 }
8751 #[must_use]
8756 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
8757 self.inner = self.inner.send_compressed(encoding);
8758 self
8759 }
8760 #[must_use]
8762 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
8763 self.inner = self.inner.accept_compressed(encoding);
8764 self
8765 }
8766 #[must_use]
8770 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
8771 self.inner = self.inner.max_decoding_message_size(limit);
8772 self
8773 }
8774 #[must_use]
8778 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
8779 self.inner = self.inner.max_encoding_message_size(limit);
8780 self
8781 }
8782 pub async fn create(
8784 &mut self,
8785 request: impl tonic::IntoRequest<super::CreateSnapshotRequest>,
8786 ) -> std::result::Result<
8787 tonic::Response<super::CreateSnapshotResponse>,
8788 tonic::Status,
8789 > {
8790 self.inner
8791 .ready()
8792 .await
8793 .map_err(|e| {
8794 tonic::Status::unknown(
8795 format!("Service was not ready: {}", e.into()),
8796 )
8797 })?;
8798 let codec = tonic::codec::ProstCodec::default();
8799 let path = http::uri::PathAndQuery::from_static("/qdrant.Snapshots/Create");
8800 let mut req = request.into_request();
8801 req.extensions_mut().insert(GrpcMethod::new("qdrant.Snapshots", "Create"));
8802 self.inner.unary(req, path, codec).await
8803 }
8804 pub async fn list(
8806 &mut self,
8807 request: impl tonic::IntoRequest<super::ListSnapshotsRequest>,
8808 ) -> std::result::Result<
8809 tonic::Response<super::ListSnapshotsResponse>,
8810 tonic::Status,
8811 > {
8812 self.inner
8813 .ready()
8814 .await
8815 .map_err(|e| {
8816 tonic::Status::unknown(
8817 format!("Service was not ready: {}", e.into()),
8818 )
8819 })?;
8820 let codec = tonic::codec::ProstCodec::default();
8821 let path = http::uri::PathAndQuery::from_static("/qdrant.Snapshots/List");
8822 let mut req = request.into_request();
8823 req.extensions_mut().insert(GrpcMethod::new("qdrant.Snapshots", "List"));
8824 self.inner.unary(req, path, codec).await
8825 }
8826 pub async fn delete(
8828 &mut self,
8829 request: impl tonic::IntoRequest<super::DeleteSnapshotRequest>,
8830 ) -> std::result::Result<
8831 tonic::Response<super::DeleteSnapshotResponse>,
8832 tonic::Status,
8833 > {
8834 self.inner
8835 .ready()
8836 .await
8837 .map_err(|e| {
8838 tonic::Status::unknown(
8839 format!("Service was not ready: {}", e.into()),
8840 )
8841 })?;
8842 let codec = tonic::codec::ProstCodec::default();
8843 let path = http::uri::PathAndQuery::from_static("/qdrant.Snapshots/Delete");
8844 let mut req = request.into_request();
8845 req.extensions_mut().insert(GrpcMethod::new("qdrant.Snapshots", "Delete"));
8846 self.inner.unary(req, path, codec).await
8847 }
8848 pub async fn create_full(
8850 &mut self,
8851 request: impl tonic::IntoRequest<super::CreateFullSnapshotRequest>,
8852 ) -> std::result::Result<
8853 tonic::Response<super::CreateSnapshotResponse>,
8854 tonic::Status,
8855 > {
8856 self.inner
8857 .ready()
8858 .await
8859 .map_err(|e| {
8860 tonic::Status::unknown(
8861 format!("Service was not ready: {}", e.into()),
8862 )
8863 })?;
8864 let codec = tonic::codec::ProstCodec::default();
8865 let path = http::uri::PathAndQuery::from_static(
8866 "/qdrant.Snapshots/CreateFull",
8867 );
8868 let mut req = request.into_request();
8869 req.extensions_mut()
8870 .insert(GrpcMethod::new("qdrant.Snapshots", "CreateFull"));
8871 self.inner.unary(req, path, codec).await
8872 }
8873 pub async fn list_full(
8875 &mut self,
8876 request: impl tonic::IntoRequest<super::ListFullSnapshotsRequest>,
8877 ) -> std::result::Result<
8878 tonic::Response<super::ListSnapshotsResponse>,
8879 tonic::Status,
8880 > {
8881 self.inner
8882 .ready()
8883 .await
8884 .map_err(|e| {
8885 tonic::Status::unknown(
8886 format!("Service was not ready: {}", e.into()),
8887 )
8888 })?;
8889 let codec = tonic::codec::ProstCodec::default();
8890 let path = http::uri::PathAndQuery::from_static(
8891 "/qdrant.Snapshots/ListFull",
8892 );
8893 let mut req = request.into_request();
8894 req.extensions_mut().insert(GrpcMethod::new("qdrant.Snapshots", "ListFull"));
8895 self.inner.unary(req, path, codec).await
8896 }
8897 pub async fn delete_full(
8899 &mut self,
8900 request: impl tonic::IntoRequest<super::DeleteFullSnapshotRequest>,
8901 ) -> std::result::Result<
8902 tonic::Response<super::DeleteSnapshotResponse>,
8903 tonic::Status,
8904 > {
8905 self.inner
8906 .ready()
8907 .await
8908 .map_err(|e| {
8909 tonic::Status::unknown(
8910 format!("Service was not ready: {}", e.into()),
8911 )
8912 })?;
8913 let codec = tonic::codec::ProstCodec::default();
8914 let path = http::uri::PathAndQuery::from_static(
8915 "/qdrant.Snapshots/DeleteFull",
8916 );
8917 let mut req = request.into_request();
8918 req.extensions_mut()
8919 .insert(GrpcMethod::new("qdrant.Snapshots", "DeleteFull"));
8920 self.inner.unary(req, path, codec).await
8921 }
8922 }
8923}
8924pub mod snapshots_server {
8926 #![allow(
8927 unused_variables,
8928 dead_code,
8929 missing_docs,
8930 clippy::wildcard_imports,
8931 clippy::let_unit_value,
8932 )]
8933 use tonic::codegen::*;
8934 #[async_trait]
8936 pub trait Snapshots: std::marker::Send + std::marker::Sync + 'static {
8937 async fn create(
8939 &self,
8940 request: tonic::Request<super::CreateSnapshotRequest>,
8941 ) -> std::result::Result<
8942 tonic::Response<super::CreateSnapshotResponse>,
8943 tonic::Status,
8944 >;
8945 async fn list(
8947 &self,
8948 request: tonic::Request<super::ListSnapshotsRequest>,
8949 ) -> std::result::Result<
8950 tonic::Response<super::ListSnapshotsResponse>,
8951 tonic::Status,
8952 >;
8953 async fn delete(
8955 &self,
8956 request: tonic::Request<super::DeleteSnapshotRequest>,
8957 ) -> std::result::Result<
8958 tonic::Response<super::DeleteSnapshotResponse>,
8959 tonic::Status,
8960 >;
8961 async fn create_full(
8963 &self,
8964 request: tonic::Request<super::CreateFullSnapshotRequest>,
8965 ) -> std::result::Result<
8966 tonic::Response<super::CreateSnapshotResponse>,
8967 tonic::Status,
8968 >;
8969 async fn list_full(
8971 &self,
8972 request: tonic::Request<super::ListFullSnapshotsRequest>,
8973 ) -> std::result::Result<
8974 tonic::Response<super::ListSnapshotsResponse>,
8975 tonic::Status,
8976 >;
8977 async fn delete_full(
8979 &self,
8980 request: tonic::Request<super::DeleteFullSnapshotRequest>,
8981 ) -> std::result::Result<
8982 tonic::Response<super::DeleteSnapshotResponse>,
8983 tonic::Status,
8984 >;
8985 }
8986 #[derive(Debug)]
8987 pub struct SnapshotsServer<T> {
8988 inner: Arc<T>,
8989 accept_compression_encodings: EnabledCompressionEncodings,
8990 send_compression_encodings: EnabledCompressionEncodings,
8991 max_decoding_message_size: Option<usize>,
8992 max_encoding_message_size: Option<usize>,
8993 }
8994 impl<T> SnapshotsServer<T> {
8995 pub fn new(inner: T) -> Self {
8996 Self::from_arc(Arc::new(inner))
8997 }
8998 pub fn from_arc(inner: Arc<T>) -> Self {
8999 Self {
9000 inner,
9001 accept_compression_encodings: Default::default(),
9002 send_compression_encodings: Default::default(),
9003 max_decoding_message_size: None,
9004 max_encoding_message_size: None,
9005 }
9006 }
9007 pub fn with_interceptor<F>(
9008 inner: T,
9009 interceptor: F,
9010 ) -> InterceptedService<Self, F>
9011 where
9012 F: tonic::service::Interceptor,
9013 {
9014 InterceptedService::new(Self::new(inner), interceptor)
9015 }
9016 #[must_use]
9018 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
9019 self.accept_compression_encodings.enable(encoding);
9020 self
9021 }
9022 #[must_use]
9024 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
9025 self.send_compression_encodings.enable(encoding);
9026 self
9027 }
9028 #[must_use]
9032 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
9033 self.max_decoding_message_size = Some(limit);
9034 self
9035 }
9036 #[must_use]
9040 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
9041 self.max_encoding_message_size = Some(limit);
9042 self
9043 }
9044 }
9045 impl<T, B> tonic::codegen::Service<http::Request<B>> for SnapshotsServer<T>
9046 where
9047 T: Snapshots,
9048 B: Body + std::marker::Send + 'static,
9049 B::Error: Into<StdError> + std::marker::Send + 'static,
9050 {
9051 type Response = http::Response<tonic::body::BoxBody>;
9052 type Error = std::convert::Infallible;
9053 type Future = BoxFuture<Self::Response, Self::Error>;
9054 fn poll_ready(
9055 &mut self,
9056 _cx: &mut Context<'_>,
9057 ) -> Poll<std::result::Result<(), Self::Error>> {
9058 Poll::Ready(Ok(()))
9059 }
9060 fn call(&mut self, req: http::Request<B>) -> Self::Future {
9061 match req.uri().path() {
9062 "/qdrant.Snapshots/Create" => {
9063 #[allow(non_camel_case_types)]
9064 struct CreateSvc<T: Snapshots>(pub Arc<T>);
9065 impl<
9066 T: Snapshots,
9067 > tonic::server::UnaryService<super::CreateSnapshotRequest>
9068 for CreateSvc<T> {
9069 type Response = super::CreateSnapshotResponse;
9070 type Future = BoxFuture<
9071 tonic::Response<Self::Response>,
9072 tonic::Status,
9073 >;
9074 fn call(
9075 &mut self,
9076 request: tonic::Request<super::CreateSnapshotRequest>,
9077 ) -> Self::Future {
9078 let inner = Arc::clone(&self.0);
9079 let fut = async move {
9080 <T as Snapshots>::create(&inner, request).await
9081 };
9082 Box::pin(fut)
9083 }
9084 }
9085 let accept_compression_encodings = self.accept_compression_encodings;
9086 let send_compression_encodings = self.send_compression_encodings;
9087 let max_decoding_message_size = self.max_decoding_message_size;
9088 let max_encoding_message_size = self.max_encoding_message_size;
9089 let inner = self.inner.clone();
9090 let fut = async move {
9091 let method = CreateSvc(inner);
9092 let codec = tonic::codec::ProstCodec::default();
9093 let mut grpc = tonic::server::Grpc::new(codec)
9094 .apply_compression_config(
9095 accept_compression_encodings,
9096 send_compression_encodings,
9097 )
9098 .apply_max_message_size_config(
9099 max_decoding_message_size,
9100 max_encoding_message_size,
9101 );
9102 let res = grpc.unary(method, req).await;
9103 Ok(res)
9104 };
9105 Box::pin(fut)
9106 }
9107 "/qdrant.Snapshots/List" => {
9108 #[allow(non_camel_case_types)]
9109 struct ListSvc<T: Snapshots>(pub Arc<T>);
9110 impl<
9111 T: Snapshots,
9112 > tonic::server::UnaryService<super::ListSnapshotsRequest>
9113 for ListSvc<T> {
9114 type Response = super::ListSnapshotsResponse;
9115 type Future = BoxFuture<
9116 tonic::Response<Self::Response>,
9117 tonic::Status,
9118 >;
9119 fn call(
9120 &mut self,
9121 request: tonic::Request<super::ListSnapshotsRequest>,
9122 ) -> Self::Future {
9123 let inner = Arc::clone(&self.0);
9124 let fut = async move {
9125 <T as Snapshots>::list(&inner, request).await
9126 };
9127 Box::pin(fut)
9128 }
9129 }
9130 let accept_compression_encodings = self.accept_compression_encodings;
9131 let send_compression_encodings = self.send_compression_encodings;
9132 let max_decoding_message_size = self.max_decoding_message_size;
9133 let max_encoding_message_size = self.max_encoding_message_size;
9134 let inner = self.inner.clone();
9135 let fut = async move {
9136 let method = ListSvc(inner);
9137 let codec = tonic::codec::ProstCodec::default();
9138 let mut grpc = tonic::server::Grpc::new(codec)
9139 .apply_compression_config(
9140 accept_compression_encodings,
9141 send_compression_encodings,
9142 )
9143 .apply_max_message_size_config(
9144 max_decoding_message_size,
9145 max_encoding_message_size,
9146 );
9147 let res = grpc.unary(method, req).await;
9148 Ok(res)
9149 };
9150 Box::pin(fut)
9151 }
9152 "/qdrant.Snapshots/Delete" => {
9153 #[allow(non_camel_case_types)]
9154 struct DeleteSvc<T: Snapshots>(pub Arc<T>);
9155 impl<
9156 T: Snapshots,
9157 > tonic::server::UnaryService<super::DeleteSnapshotRequest>
9158 for DeleteSvc<T> {
9159 type Response = super::DeleteSnapshotResponse;
9160 type Future = BoxFuture<
9161 tonic::Response<Self::Response>,
9162 tonic::Status,
9163 >;
9164 fn call(
9165 &mut self,
9166 request: tonic::Request<super::DeleteSnapshotRequest>,
9167 ) -> Self::Future {
9168 let inner = Arc::clone(&self.0);
9169 let fut = async move {
9170 <T as Snapshots>::delete(&inner, request).await
9171 };
9172 Box::pin(fut)
9173 }
9174 }
9175 let accept_compression_encodings = self.accept_compression_encodings;
9176 let send_compression_encodings = self.send_compression_encodings;
9177 let max_decoding_message_size = self.max_decoding_message_size;
9178 let max_encoding_message_size = self.max_encoding_message_size;
9179 let inner = self.inner.clone();
9180 let fut = async move {
9181 let method = DeleteSvc(inner);
9182 let codec = tonic::codec::ProstCodec::default();
9183 let mut grpc = tonic::server::Grpc::new(codec)
9184 .apply_compression_config(
9185 accept_compression_encodings,
9186 send_compression_encodings,
9187 )
9188 .apply_max_message_size_config(
9189 max_decoding_message_size,
9190 max_encoding_message_size,
9191 );
9192 let res = grpc.unary(method, req).await;
9193 Ok(res)
9194 };
9195 Box::pin(fut)
9196 }
9197 "/qdrant.Snapshots/CreateFull" => {
9198 #[allow(non_camel_case_types)]
9199 struct CreateFullSvc<T: Snapshots>(pub Arc<T>);
9200 impl<
9201 T: Snapshots,
9202 > tonic::server::UnaryService<super::CreateFullSnapshotRequest>
9203 for CreateFullSvc<T> {
9204 type Response = super::CreateSnapshotResponse;
9205 type Future = BoxFuture<
9206 tonic::Response<Self::Response>,
9207 tonic::Status,
9208 >;
9209 fn call(
9210 &mut self,
9211 request: tonic::Request<super::CreateFullSnapshotRequest>,
9212 ) -> Self::Future {
9213 let inner = Arc::clone(&self.0);
9214 let fut = async move {
9215 <T as Snapshots>::create_full(&inner, request).await
9216 };
9217 Box::pin(fut)
9218 }
9219 }
9220 let accept_compression_encodings = self.accept_compression_encodings;
9221 let send_compression_encodings = self.send_compression_encodings;
9222 let max_decoding_message_size = self.max_decoding_message_size;
9223 let max_encoding_message_size = self.max_encoding_message_size;
9224 let inner = self.inner.clone();
9225 let fut = async move {
9226 let method = CreateFullSvc(inner);
9227 let codec = tonic::codec::ProstCodec::default();
9228 let mut grpc = tonic::server::Grpc::new(codec)
9229 .apply_compression_config(
9230 accept_compression_encodings,
9231 send_compression_encodings,
9232 )
9233 .apply_max_message_size_config(
9234 max_decoding_message_size,
9235 max_encoding_message_size,
9236 );
9237 let res = grpc.unary(method, req).await;
9238 Ok(res)
9239 };
9240 Box::pin(fut)
9241 }
9242 "/qdrant.Snapshots/ListFull" => {
9243 #[allow(non_camel_case_types)]
9244 struct ListFullSvc<T: Snapshots>(pub Arc<T>);
9245 impl<
9246 T: Snapshots,
9247 > tonic::server::UnaryService<super::ListFullSnapshotsRequest>
9248 for ListFullSvc<T> {
9249 type Response = super::ListSnapshotsResponse;
9250 type Future = BoxFuture<
9251 tonic::Response<Self::Response>,
9252 tonic::Status,
9253 >;
9254 fn call(
9255 &mut self,
9256 request: tonic::Request<super::ListFullSnapshotsRequest>,
9257 ) -> Self::Future {
9258 let inner = Arc::clone(&self.0);
9259 let fut = async move {
9260 <T as Snapshots>::list_full(&inner, request).await
9261 };
9262 Box::pin(fut)
9263 }
9264 }
9265 let accept_compression_encodings = self.accept_compression_encodings;
9266 let send_compression_encodings = self.send_compression_encodings;
9267 let max_decoding_message_size = self.max_decoding_message_size;
9268 let max_encoding_message_size = self.max_encoding_message_size;
9269 let inner = self.inner.clone();
9270 let fut = async move {
9271 let method = ListFullSvc(inner);
9272 let codec = tonic::codec::ProstCodec::default();
9273 let mut grpc = tonic::server::Grpc::new(codec)
9274 .apply_compression_config(
9275 accept_compression_encodings,
9276 send_compression_encodings,
9277 )
9278 .apply_max_message_size_config(
9279 max_decoding_message_size,
9280 max_encoding_message_size,
9281 );
9282 let res = grpc.unary(method, req).await;
9283 Ok(res)
9284 };
9285 Box::pin(fut)
9286 }
9287 "/qdrant.Snapshots/DeleteFull" => {
9288 #[allow(non_camel_case_types)]
9289 struct DeleteFullSvc<T: Snapshots>(pub Arc<T>);
9290 impl<
9291 T: Snapshots,
9292 > tonic::server::UnaryService<super::DeleteFullSnapshotRequest>
9293 for DeleteFullSvc<T> {
9294 type Response = super::DeleteSnapshotResponse;
9295 type Future = BoxFuture<
9296 tonic::Response<Self::Response>,
9297 tonic::Status,
9298 >;
9299 fn call(
9300 &mut self,
9301 request: tonic::Request<super::DeleteFullSnapshotRequest>,
9302 ) -> Self::Future {
9303 let inner = Arc::clone(&self.0);
9304 let fut = async move {
9305 <T as Snapshots>::delete_full(&inner, request).await
9306 };
9307 Box::pin(fut)
9308 }
9309 }
9310 let accept_compression_encodings = self.accept_compression_encodings;
9311 let send_compression_encodings = self.send_compression_encodings;
9312 let max_decoding_message_size = self.max_decoding_message_size;
9313 let max_encoding_message_size = self.max_encoding_message_size;
9314 let inner = self.inner.clone();
9315 let fut = async move {
9316 let method = DeleteFullSvc(inner);
9317 let codec = tonic::codec::ProstCodec::default();
9318 let mut grpc = tonic::server::Grpc::new(codec)
9319 .apply_compression_config(
9320 accept_compression_encodings,
9321 send_compression_encodings,
9322 )
9323 .apply_max_message_size_config(
9324 max_decoding_message_size,
9325 max_encoding_message_size,
9326 );
9327 let res = grpc.unary(method, req).await;
9328 Ok(res)
9329 };
9330 Box::pin(fut)
9331 }
9332 _ => {
9333 Box::pin(async move {
9334 let mut response = http::Response::new(empty_body());
9335 let headers = response.headers_mut();
9336 headers
9337 .insert(
9338 tonic::Status::GRPC_STATUS,
9339 (tonic::Code::Unimplemented as i32).into(),
9340 );
9341 headers
9342 .insert(
9343 http::header::CONTENT_TYPE,
9344 tonic::metadata::GRPC_CONTENT_TYPE,
9345 );
9346 Ok(response)
9347 })
9348 }
9349 }
9350 }
9351 }
9352 impl<T> Clone for SnapshotsServer<T> {
9353 fn clone(&self) -> Self {
9354 let inner = self.inner.clone();
9355 Self {
9356 inner,
9357 accept_compression_encodings: self.accept_compression_encodings,
9358 send_compression_encodings: self.send_compression_encodings,
9359 max_decoding_message_size: self.max_decoding_message_size,
9360 max_encoding_message_size: self.max_encoding_message_size,
9361 }
9362 }
9363 }
9364 pub const SERVICE_NAME: &str = "qdrant.Snapshots";
9366 impl<T> tonic::server::NamedService for SnapshotsServer<T> {
9367 const NAME: &'static str = SERVICE_NAME;
9368 }
9369}
9370#[derive(Clone, Copy, PartialEq, ::prost::Message)]
9371pub struct HealthCheckRequest {}
9372#[derive(Clone, PartialEq, ::prost::Message)]
9373pub struct HealthCheckReply {
9374 #[prost(string, tag = "1")]
9375 pub title: ::prost::alloc::string::String,
9376 #[prost(string, tag = "2")]
9377 pub version: ::prost::alloc::string::String,
9378 #[prost(string, optional, tag = "3")]
9379 pub commit: ::core::option::Option<::prost::alloc::string::String>,
9380}
9381pub mod qdrant_client {
9383 #![allow(
9384 unused_variables,
9385 dead_code,
9386 missing_docs,
9387 clippy::wildcard_imports,
9388 clippy::let_unit_value,
9389 )]
9390 use tonic::codegen::*;
9391 use tonic::codegen::http::Uri;
9392 #[derive(Debug, Clone)]
9393 pub struct QdrantClient<T> {
9394 inner: tonic::client::Grpc<T>,
9395 }
9396 impl QdrantClient<tonic::transport::Channel> {
9397 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
9399 where
9400 D: TryInto<tonic::transport::Endpoint>,
9401 D::Error: Into<StdError>,
9402 {
9403 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
9404 Ok(Self::new(conn))
9405 }
9406 }
9407 impl<T> QdrantClient<T>
9408 where
9409 T: tonic::client::GrpcService<tonic::body::BoxBody>,
9410 T::Error: Into<StdError>,
9411 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
9412 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
9413 {
9414 pub fn new(inner: T) -> Self {
9415 let inner = tonic::client::Grpc::new(inner);
9416 Self { inner }
9417 }
9418 pub fn with_origin(inner: T, origin: Uri) -> Self {
9419 let inner = tonic::client::Grpc::with_origin(inner, origin);
9420 Self { inner }
9421 }
9422 pub fn with_interceptor<F>(
9423 inner: T,
9424 interceptor: F,
9425 ) -> QdrantClient<InterceptedService<T, F>>
9426 where
9427 F: tonic::service::Interceptor,
9428 T::ResponseBody: Default,
9429 T: tonic::codegen::Service<
9430 http::Request<tonic::body::BoxBody>,
9431 Response = http::Response<
9432 <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
9433 >,
9434 >,
9435 <T as tonic::codegen::Service<
9436 http::Request<tonic::body::BoxBody>,
9437 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
9438 {
9439 QdrantClient::new(InterceptedService::new(inner, interceptor))
9440 }
9441 #[must_use]
9446 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
9447 self.inner = self.inner.send_compressed(encoding);
9448 self
9449 }
9450 #[must_use]
9452 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
9453 self.inner = self.inner.accept_compressed(encoding);
9454 self
9455 }
9456 #[must_use]
9460 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
9461 self.inner = self.inner.max_decoding_message_size(limit);
9462 self
9463 }
9464 #[must_use]
9468 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
9469 self.inner = self.inner.max_encoding_message_size(limit);
9470 self
9471 }
9472 pub async fn health_check(
9473 &mut self,
9474 request: impl tonic::IntoRequest<super::HealthCheckRequest>,
9475 ) -> std::result::Result<
9476 tonic::Response<super::HealthCheckReply>,
9477 tonic::Status,
9478 > {
9479 self.inner
9480 .ready()
9481 .await
9482 .map_err(|e| {
9483 tonic::Status::unknown(
9484 format!("Service was not ready: {}", e.into()),
9485 )
9486 })?;
9487 let codec = tonic::codec::ProstCodec::default();
9488 let path = http::uri::PathAndQuery::from_static(
9489 "/qdrant.Qdrant/HealthCheck",
9490 );
9491 let mut req = request.into_request();
9492 req.extensions_mut().insert(GrpcMethod::new("qdrant.Qdrant", "HealthCheck"));
9493 self.inner.unary(req, path, codec).await
9494 }
9495 }
9496}
9497pub mod qdrant_server {
9499 #![allow(
9500 unused_variables,
9501 dead_code,
9502 missing_docs,
9503 clippy::wildcard_imports,
9504 clippy::let_unit_value,
9505 )]
9506 use tonic::codegen::*;
9507 #[async_trait]
9509 pub trait Qdrant: std::marker::Send + std::marker::Sync + 'static {
9510 async fn health_check(
9511 &self,
9512 request: tonic::Request<super::HealthCheckRequest>,
9513 ) -> std::result::Result<
9514 tonic::Response<super::HealthCheckReply>,
9515 tonic::Status,
9516 >;
9517 }
9518 #[derive(Debug)]
9519 pub struct QdrantServer<T> {
9520 inner: Arc<T>,
9521 accept_compression_encodings: EnabledCompressionEncodings,
9522 send_compression_encodings: EnabledCompressionEncodings,
9523 max_decoding_message_size: Option<usize>,
9524 max_encoding_message_size: Option<usize>,
9525 }
9526 impl<T> QdrantServer<T> {
9527 pub fn new(inner: T) -> Self {
9528 Self::from_arc(Arc::new(inner))
9529 }
9530 pub fn from_arc(inner: Arc<T>) -> Self {
9531 Self {
9532 inner,
9533 accept_compression_encodings: Default::default(),
9534 send_compression_encodings: Default::default(),
9535 max_decoding_message_size: None,
9536 max_encoding_message_size: None,
9537 }
9538 }
9539 pub fn with_interceptor<F>(
9540 inner: T,
9541 interceptor: F,
9542 ) -> InterceptedService<Self, F>
9543 where
9544 F: tonic::service::Interceptor,
9545 {
9546 InterceptedService::new(Self::new(inner), interceptor)
9547 }
9548 #[must_use]
9550 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
9551 self.accept_compression_encodings.enable(encoding);
9552 self
9553 }
9554 #[must_use]
9556 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
9557 self.send_compression_encodings.enable(encoding);
9558 self
9559 }
9560 #[must_use]
9564 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
9565 self.max_decoding_message_size = Some(limit);
9566 self
9567 }
9568 #[must_use]
9572 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
9573 self.max_encoding_message_size = Some(limit);
9574 self
9575 }
9576 }
9577 impl<T, B> tonic::codegen::Service<http::Request<B>> for QdrantServer<T>
9578 where
9579 T: Qdrant,
9580 B: Body + std::marker::Send + 'static,
9581 B::Error: Into<StdError> + std::marker::Send + 'static,
9582 {
9583 type Response = http::Response<tonic::body::BoxBody>;
9584 type Error = std::convert::Infallible;
9585 type Future = BoxFuture<Self::Response, Self::Error>;
9586 fn poll_ready(
9587 &mut self,
9588 _cx: &mut Context<'_>,
9589 ) -> Poll<std::result::Result<(), Self::Error>> {
9590 Poll::Ready(Ok(()))
9591 }
9592 fn call(&mut self, req: http::Request<B>) -> Self::Future {
9593 match req.uri().path() {
9594 "/qdrant.Qdrant/HealthCheck" => {
9595 #[allow(non_camel_case_types)]
9596 struct HealthCheckSvc<T: Qdrant>(pub Arc<T>);
9597 impl<
9598 T: Qdrant,
9599 > tonic::server::UnaryService<super::HealthCheckRequest>
9600 for HealthCheckSvc<T> {
9601 type Response = super::HealthCheckReply;
9602 type Future = BoxFuture<
9603 tonic::Response<Self::Response>,
9604 tonic::Status,
9605 >;
9606 fn call(
9607 &mut self,
9608 request: tonic::Request<super::HealthCheckRequest>,
9609 ) -> Self::Future {
9610 let inner = Arc::clone(&self.0);
9611 let fut = async move {
9612 <T as Qdrant>::health_check(&inner, request).await
9613 };
9614 Box::pin(fut)
9615 }
9616 }
9617 let accept_compression_encodings = self.accept_compression_encodings;
9618 let send_compression_encodings = self.send_compression_encodings;
9619 let max_decoding_message_size = self.max_decoding_message_size;
9620 let max_encoding_message_size = self.max_encoding_message_size;
9621 let inner = self.inner.clone();
9622 let fut = async move {
9623 let method = HealthCheckSvc(inner);
9624 let codec = tonic::codec::ProstCodec::default();
9625 let mut grpc = tonic::server::Grpc::new(codec)
9626 .apply_compression_config(
9627 accept_compression_encodings,
9628 send_compression_encodings,
9629 )
9630 .apply_max_message_size_config(
9631 max_decoding_message_size,
9632 max_encoding_message_size,
9633 );
9634 let res = grpc.unary(method, req).await;
9635 Ok(res)
9636 };
9637 Box::pin(fut)
9638 }
9639 _ => {
9640 Box::pin(async move {
9641 let mut response = http::Response::new(empty_body());
9642 let headers = response.headers_mut();
9643 headers
9644 .insert(
9645 tonic::Status::GRPC_STATUS,
9646 (tonic::Code::Unimplemented as i32).into(),
9647 );
9648 headers
9649 .insert(
9650 http::header::CONTENT_TYPE,
9651 tonic::metadata::GRPC_CONTENT_TYPE,
9652 );
9653 Ok(response)
9654 })
9655 }
9656 }
9657 }
9658 }
9659 impl<T> Clone for QdrantServer<T> {
9660 fn clone(&self) -> Self {
9661 let inner = self.inner.clone();
9662 Self {
9663 inner,
9664 accept_compression_encodings: self.accept_compression_encodings,
9665 send_compression_encodings: self.send_compression_encodings,
9666 max_decoding_message_size: self.max_decoding_message_size,
9667 max_encoding_message_size: self.max_encoding_message_size,
9668 }
9669 }
9670 }
9671 pub const SERVICE_NAME: &str = "qdrant.Qdrant";
9673 impl<T> tonic::server::NamedService for QdrantServer<T> {
9674 const NAME: &'static str = SERVICE_NAME;
9675 }
9676}
9677pub use crate::manual_builder::*;
9678pub use crate::builder_types::*;
9679pub use crate::qdrant_client::builders::*;
9680pub use crate::builders::*;
9681pub use prost_types::Timestamp;