"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import qwak.vectors.v1.filters_pb2
import qwak.vectors.v1.vector_pb2
import sys
import typing

if sys.version_info >= (3, 8):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class SearchSimilarVectorsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COLLECTION_NAME_FIELD_NUMBER: builtins.int
    REFERENCE_VECTOR_FIELD_NUMBER: builtins.int
    PROPERTIES_FIELD_NUMBER: builtins.int
    FILTER_FIELD_NUMBER: builtins.int
    MAX_RESULTS_FIELD_NUMBER: builtins.int
    INCLUDE_VECTOR_FIELD_NUMBER: builtins.int
    INCLUDE_DISTANCE_FIELD_NUMBER: builtins.int
    INCLUDE_ID_FIELD_NUMBER: builtins.int
    TENANT_ID_FIELD_NUMBER: builtins.int
    collection_name: builtins.str
    """Name of the collection to search in"""
    @property
    def reference_vector(self) -> qwak.vectors.v1.vector_pb2.DoubleVector:
        """Reference vector"""
    @property
    def properties(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """properties to retrieve"""
    @property
    def filter(self) -> qwak.vectors.v1.filters_pb2.Filter: ...
    max_results: builtins.int
    """the "k" in top_k"""
    include_vector: builtins.bool
    """whether to include the actual result vectors in the response"""
    include_distance: builtins.bool
    """whether to include the distance in the result"""
    include_id: builtins.bool
    """whether to include ids in the result"""
    tenant_id: builtins.str
    def __init__(
        self,
        *,
        collection_name: builtins.str = ...,
        reference_vector: qwak.vectors.v1.vector_pb2.DoubleVector | None = ...,
        properties: collections.abc.Iterable[builtins.str] | None = ...,
        filter: qwak.vectors.v1.filters_pb2.Filter | None = ...,
        max_results: builtins.int = ...,
        include_vector: builtins.bool = ...,
        include_distance: builtins.bool = ...,
        include_id: builtins.bool = ...,
        tenant_id: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["filter", b"filter", "filter_opt", b"filter_opt", "optional_tenant", b"optional_tenant", "reference_vector", b"reference_vector", "tenant_id", b"tenant_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["collection_name", b"collection_name", "filter", b"filter", "filter_opt", b"filter_opt", "include_distance", b"include_distance", "include_id", b"include_id", "include_vector", b"include_vector", "max_results", b"max_results", "optional_tenant", b"optional_tenant", "properties", b"properties", "reference_vector", b"reference_vector", "tenant_id", b"tenant_id"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["filter_opt", b"filter_opt"]) -> typing_extensions.Literal["filter"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["optional_tenant", b"optional_tenant"]) -> typing_extensions.Literal["tenant_id"] | None: ...

global___SearchSimilarVectorsRequest = SearchSimilarVectorsRequest

class SearchSimilarVectorsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SEARCH_RESULTS_FIELD_NUMBER: builtins.int
    @property
    def search_results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[qwak.vectors.v1.vector_pb2.SearchResult]: ...
    def __init__(
        self,
        *,
        search_results: collections.abc.Iterable[qwak.vectors.v1.vector_pb2.SearchResult] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["search_results", b"search_results"]) -> None: ...

global___SearchSimilarVectorsResponse = SearchSimilarVectorsResponse

class GetVectorSampleRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COLLECTION_NAME_FIELD_NUMBER: builtins.int
    NUM_SAMPLES_FIELD_NUMBER: builtins.int
    INCLUDE_VECTOR_FIELD_NUMBER: builtins.int
    TENANT_ID_FIELD_NUMBER: builtins.int
    collection_name: builtins.str
    """Name of the collection to search in"""
    num_samples: builtins.int
    """Number of samples to retrieve"""
    include_vector: builtins.bool
    """Whether to include the actual result vectors in the response"""
    tenant_id: builtins.str
    def __init__(
        self,
        *,
        collection_name: builtins.str = ...,
        num_samples: builtins.int = ...,
        include_vector: builtins.bool = ...,
        tenant_id: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["optional_tenant", b"optional_tenant", "tenant_id", b"tenant_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["collection_name", b"collection_name", "include_vector", b"include_vector", "num_samples", b"num_samples", "optional_tenant", b"optional_tenant", "tenant_id", b"tenant_id"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["optional_tenant", b"optional_tenant"]) -> typing_extensions.Literal["tenant_id"] | None: ...

global___GetVectorSampleRequest = GetVectorSampleRequest

class GetVectorSampleResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VECTORS_FIELD_NUMBER: builtins.int
    @property
    def vectors(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[qwak.vectors.v1.vector_pb2.StoredVector]: ...
    def __init__(
        self,
        *,
        vectors: collections.abc.Iterable[qwak.vectors.v1.vector_pb2.StoredVector] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["vectors", b"vectors"]) -> None: ...

global___GetVectorSampleResponse = GetVectorSampleResponse

class UpsertVectorsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COLLECTION_NAME_FIELD_NUMBER: builtins.int
    VECTOR_FIELD_NUMBER: builtins.int
    collection_name: builtins.str
    @property
    def vector(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[qwak.vectors.v1.vector_pb2.StoredVector]: ...
    def __init__(
        self,
        *,
        collection_name: builtins.str = ...,
        vector: collections.abc.Iterable[qwak.vectors.v1.vector_pb2.StoredVector] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["collection_name", b"collection_name", "vector", b"vector"]) -> None: ...

global___UpsertVectorsRequest = UpsertVectorsRequest

class UpsertVectorsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NUM_AFFECTED_FIELD_NUMBER: builtins.int
    num_affected: builtins.int
    """number of vectors that were affected in the collection"""
    def __init__(
        self,
        *,
        num_affected: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["num_affected", b"num_affected"]) -> None: ...

global___UpsertVectorsResponse = UpsertVectorsResponse

class DeleteVectorsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COLLECTION_NAME_FIELD_NUMBER: builtins.int
    VECTOR_ID_FIELD_NUMBER: builtins.int
    VECTOR_IDENTIFIERS_FIELD_NUMBER: builtins.int
    collection_name: builtins.str
    @property
    def vector_id(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """passing explicit id is now deprecated, pass a VectorIdentifier"""
    @property
    def vector_identifiers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[qwak.vectors.v1.vector_pb2.VectorIdentifier]: ...
    def __init__(
        self,
        *,
        collection_name: builtins.str = ...,
        vector_id: collections.abc.Iterable[builtins.str] | None = ...,
        vector_identifiers: collections.abc.Iterable[qwak.vectors.v1.vector_pb2.VectorIdentifier] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["collection_name", b"collection_name", "vector_id", b"vector_id", "vector_identifiers", b"vector_identifiers"]) -> None: ...

global___DeleteVectorsRequest = DeleteVectorsRequest

class DeleteVectorsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NUM_VECTORS_DELETED_FIELD_NUMBER: builtins.int
    num_vectors_deleted: builtins.int
    def __init__(
        self,
        *,
        num_vectors_deleted: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["num_vectors_deleted", b"num_vectors_deleted"]) -> None: ...

global___DeleteVectorsResponse = DeleteVectorsResponse

class FetchVectorRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COLLECTION_NAME_FIELD_NUMBER: builtins.int
    VECTOR_ID_FIELD_NUMBER: builtins.int
    VECTOR_IDENTIFIER_FIELD_NUMBER: builtins.int
    collection_name: builtins.str
    """Name of the collection to fetch from"""
    vector_id: builtins.str
    """Vector id to fetch - this field is deprecated, use VectorIdentifier"""
    @property
    def vector_identifier(self) -> qwak.vectors.v1.vector_pb2.VectorIdentifier:
        """Vector identifier to fetch"""
    def __init__(
        self,
        *,
        collection_name: builtins.str = ...,
        vector_id: builtins.str = ...,
        vector_identifier: qwak.vectors.v1.vector_pb2.VectorIdentifier | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["vector_identifier", b"vector_identifier"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["collection_name", b"collection_name", "vector_id", b"vector_id", "vector_identifier", b"vector_identifier"]) -> None: ...

global___FetchVectorRequest = FetchVectorRequest

class FetchVectorResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VECTOR_FIELD_NUMBER: builtins.int
    @property
    def vector(self) -> qwak.vectors.v1.vector_pb2.StoredVector:
        """Fetched vector"""
    def __init__(
        self,
        *,
        vector: qwak.vectors.v1.vector_pb2.StoredVector | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["vector", b"vector"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["vector", b"vector"]) -> None: ...

global___FetchVectorResponse = FetchVectorResponse
