@@ -670,24 +670,33 @@ pub mod quantization_config_diff {
670670#[allow(clippy::derive_partial_eq_without_eq)]
671671#[derive(Clone, PartialEq, ::prost::Message)]
672672pub struct StrictModeConfig {
673+ /// Whether strict mode is enabled for a collection or not.
673674 #[prost(bool, optional, tag = "1")]
674675 pub enabled: ::core::option::Option<bool>,
676+ /// Max allowed `limit` parameter for all APIs that don't have their own max limit.
675677 #[prost(uint32, optional, tag = "2")]
676678 #[validate(range(min = 1))]
677679 pub max_query_limit: ::core::option::Option<u32>,
680+ /// Max allowed `timeout` parameter.
678681 #[prost(uint32, optional, tag = "3")]
679682 #[validate(range(min = 1))]
680683 pub max_timeout: ::core::option::Option<u32>,
684+ /// Allow usage of unindexed fields in retrieval based (e.g. search) filters.
681685 #[prost(bool, optional, tag = "4")]
682686 pub unindexed_filtering_retrieve: ::core::option::Option<bool>,
687+ /// Allow usage of unindexed fields in filtered updates (e.g. delete by payload).
683688 #[prost(bool, optional, tag = "5")]
684689 pub unindexed_filtering_update: ::core::option::Option<bool>,
690+ /// Max HNSW ef value allowed in search parameters.
685691 #[prost(uint32, optional, tag = "6")]
686692 pub search_max_hnsw_ef: ::core::option::Option<u32>,
693+ /// Whether exact search is allowed.
687694 #[prost(bool, optional, tag = "7")]
688695 pub search_allow_exact: ::core::option::Option<bool>,
696+ /// Max oversampling value allowed in search
689697 #[prost(float, optional, tag = "8")]
690698 pub search_max_oversampling: ::core::option::Option<f32>,
699+ /// Max batchsize when upserting
691700 #[prost(uint64, optional, tag = "9")]
692701 pub upsert_max_batchsize: ::core::option::Option<u64>,
693702 #[prost(uint64, optional, tag = "10")]
@@ -698,53 +707,73 @@ pub struct StrictModeConfig {
698707 /// Max number of write operations per minute per replica
699708 #[prost(uint32, optional, tag = "12")]
700709 pub write_rate_limit: ::core::option::Option<u32>,
710+ /// Max size of a collections vector storage in bytes, ignoring replicas.
701711 #[prost(uint64, optional, tag = "13")]
702712 pub max_collection_payload_size_bytes: ::core::option::Option<u64>,
713+ /// Max conditions a filter can have.
703714 #[prost(uint64, optional, tag = "14")]
704715 pub filter_max_conditions: ::core::option::Option<u64>,
716+ /// Max size of a condition, eg. items in `MatchAny`.
705717 #[prost(uint64, optional, tag = "15")]
706718 pub condition_max_size: ::core::option::Option<u64>,
719+ /// Multivector strict mode configuration
707720 #[prost(message, optional, tag = "16")]
721+ #[validate(nested)]
708722 pub multivector_config: ::core::option::Option<StrictModeMultivectorConfig>,
723+ /// Sparse vector strict mode configuration
709724 #[prost(message, optional, tag = "17")]
725+ #[validate(nested)]
710726 pub sparse_config: ::core::option::Option<StrictModeSparseConfig>,
727+ /// Max number of points estimated in a collection
711728 #[prost(uint64, optional, tag = "18")]
729+ #[validate(range(min = 1))]
712730 pub max_points_count: ::core::option::Option<u64>,
731+ /// Max number of payload indexes in a collection
713732 #[prost(uint64, optional, tag = "19")]
714733 pub max_payload_index_count: ::core::option::Option<u64>,
715734}
735+ #[derive(validator::Validate)]
716736#[derive(serde::Serialize)]
717737#[allow(clippy::derive_partial_eq_without_eq)]
718738#[derive(Clone, PartialEq, ::prost::Message)]
719739pub struct StrictModeSparseConfig {
720740 #[prost(map = "string, message", tag = "1")]
741+ #[validate(nested)]
721742 pub sparse_config: ::std::collections::HashMap<
722743 ::prost::alloc::string::String,
723744 StrictModeSparse,
724745 >,
725746}
747+ #[derive(validator::Validate)]
726748#[derive(serde::Serialize)]
727749#[allow(clippy::derive_partial_eq_without_eq)]
728750#[derive(Clone, PartialEq, ::prost::Message)]
729751pub struct StrictModeSparse {
752+ /// Max length of sparse vector
730753 #[prost(uint64, optional, tag = "10")]
754+ #[validate(range(min = 1))]
731755 pub max_length: ::core::option::Option<u64>,
732756}
757+ #[derive(validator::Validate)]
733758#[derive(serde::Serialize)]
734759#[allow(clippy::derive_partial_eq_without_eq)]
735760#[derive(Clone, PartialEq, ::prost::Message)]
736761pub struct StrictModeMultivectorConfig {
737762 #[prost(map = "string, message", tag = "1")]
763+ #[validate(nested)]
738764 pub multivector_config: ::std::collections::HashMap<
739765 ::prost::alloc::string::String,
740766 StrictModeMultivector,
741767 >,
742768}
769+ #[derive(validator::Validate)]
743770#[derive(serde::Serialize)]
744771#[allow(clippy::derive_partial_eq_without_eq)]
745772#[derive(Clone, PartialEq, ::prost::Message)]
746773pub struct StrictModeMultivector {
774+ /// Max number of vectors in a multivector
747775 #[prost(uint64, optional, tag = "1")]
776+ #[validate(range(min = 1))]
748777 pub max_vectors: ::core::option::Option<u64>,
749778}
750779#[derive(validator::Validate)]
0 commit comments