# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc

from ...server.v1 import api_pb2 as server_dot_v1_dot_api__pb2


class TigrisStub(object):
    """Missing associated documentation comment in .proto file."""

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.BeginTransaction = channel.unary_unary(
                '/tigrisdata.v1.Tigris/BeginTransaction',
                request_serializer=server_dot_v1_dot_api__pb2.BeginTransactionRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.BeginTransactionResponse.FromString,
                )
        self.CommitTransaction = channel.unary_unary(
                '/tigrisdata.v1.Tigris/CommitTransaction',
                request_serializer=server_dot_v1_dot_api__pb2.CommitTransactionRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.CommitTransactionResponse.FromString,
                )
        self.RollbackTransaction = channel.unary_unary(
                '/tigrisdata.v1.Tigris/RollbackTransaction',
                request_serializer=server_dot_v1_dot_api__pb2.RollbackTransactionRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.RollbackTransactionResponse.FromString,
                )
        self.Insert = channel.unary_unary(
                '/tigrisdata.v1.Tigris/Insert',
                request_serializer=server_dot_v1_dot_api__pb2.InsertRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.InsertResponse.FromString,
                )
        self.Replace = channel.unary_unary(
                '/tigrisdata.v1.Tigris/Replace',
                request_serializer=server_dot_v1_dot_api__pb2.ReplaceRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.ReplaceResponse.FromString,
                )
        self.Delete = channel.unary_unary(
                '/tigrisdata.v1.Tigris/Delete',
                request_serializer=server_dot_v1_dot_api__pb2.DeleteRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.DeleteResponse.FromString,
                )
        self.Update = channel.unary_unary(
                '/tigrisdata.v1.Tigris/Update',
                request_serializer=server_dot_v1_dot_api__pb2.UpdateRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.UpdateResponse.FromString,
                )
        self.Read = channel.unary_stream(
                '/tigrisdata.v1.Tigris/Read',
                request_serializer=server_dot_v1_dot_api__pb2.ReadRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.ReadResponse.FromString,
                )
        self.Count = channel.unary_unary(
                '/tigrisdata.v1.Tigris/Count',
                request_serializer=server_dot_v1_dot_api__pb2.CountRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.CountResponse.FromString,
                )
        self.BuildCollectionIndex = channel.unary_unary(
                '/tigrisdata.v1.Tigris/BuildCollectionIndex',
                request_serializer=server_dot_v1_dot_api__pb2.BuildCollectionIndexRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.BuildCollectionIndexResponse.FromString,
                )
        self.Explain = channel.unary_unary(
                '/tigrisdata.v1.Tigris/Explain',
                request_serializer=server_dot_v1_dot_api__pb2.ReadRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.ExplainResponse.FromString,
                )
        self.Search = channel.unary_stream(
                '/tigrisdata.v1.Tigris/Search',
                request_serializer=server_dot_v1_dot_api__pb2.SearchRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.SearchResponse.FromString,
                )
        self.Import = channel.unary_unary(
                '/tigrisdata.v1.Tigris/Import',
                request_serializer=server_dot_v1_dot_api__pb2.ImportRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.ImportResponse.FromString,
                )
        self.CreateOrUpdateCollection = channel.unary_unary(
                '/tigrisdata.v1.Tigris/CreateOrUpdateCollection',
                request_serializer=server_dot_v1_dot_api__pb2.CreateOrUpdateCollectionRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.CreateOrUpdateCollectionResponse.FromString,
                )
        self.DropCollection = channel.unary_unary(
                '/tigrisdata.v1.Tigris/DropCollection',
                request_serializer=server_dot_v1_dot_api__pb2.DropCollectionRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.DropCollectionResponse.FromString,
                )
        self.ListProjects = channel.unary_unary(
                '/tigrisdata.v1.Tigris/ListProjects',
                request_serializer=server_dot_v1_dot_api__pb2.ListProjectsRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.ListProjectsResponse.FromString,
                )
        self.ListCollections = channel.unary_unary(
                '/tigrisdata.v1.Tigris/ListCollections',
                request_serializer=server_dot_v1_dot_api__pb2.ListCollectionsRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.ListCollectionsResponse.FromString,
                )
        self.CreateProject = channel.unary_unary(
                '/tigrisdata.v1.Tigris/CreateProject',
                request_serializer=server_dot_v1_dot_api__pb2.CreateProjectRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.CreateProjectResponse.FromString,
                )
        self.DeleteProject = channel.unary_unary(
                '/tigrisdata.v1.Tigris/DeleteProject',
                request_serializer=server_dot_v1_dot_api__pb2.DeleteProjectRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.DeleteProjectResponse.FromString,
                )
        self.DescribeDatabase = channel.unary_unary(
                '/tigrisdata.v1.Tigris/DescribeDatabase',
                request_serializer=server_dot_v1_dot_api__pb2.DescribeDatabaseRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.DescribeDatabaseResponse.FromString,
                )
        self.CreateBranch = channel.unary_unary(
                '/tigrisdata.v1.Tigris/CreateBranch',
                request_serializer=server_dot_v1_dot_api__pb2.CreateBranchRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.CreateBranchResponse.FromString,
                )
        self.DeleteBranch = channel.unary_unary(
                '/tigrisdata.v1.Tigris/DeleteBranch',
                request_serializer=server_dot_v1_dot_api__pb2.DeleteBranchRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.DeleteBranchResponse.FromString,
                )
        self.ListBranches = channel.unary_unary(
                '/tigrisdata.v1.Tigris/ListBranches',
                request_serializer=server_dot_v1_dot_api__pb2.ListBranchesRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.ListBranchesResponse.FromString,
                )
        self.DescribeCollection = channel.unary_unary(
                '/tigrisdata.v1.Tigris/DescribeCollection',
                request_serializer=server_dot_v1_dot_api__pb2.DescribeCollectionRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.DescribeCollectionResponse.FromString,
                )
        self.CreateAppKey = channel.unary_unary(
                '/tigrisdata.v1.Tigris/CreateAppKey',
                request_serializer=server_dot_v1_dot_api__pb2.CreateAppKeyRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.CreateAppKeyResponse.FromString,
                )
        self.UpdateAppKey = channel.unary_unary(
                '/tigrisdata.v1.Tigris/UpdateAppKey',
                request_serializer=server_dot_v1_dot_api__pb2.UpdateAppKeyRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.UpdateAppKeyResponse.FromString,
                )
        self.DeleteAppKey = channel.unary_unary(
                '/tigrisdata.v1.Tigris/DeleteAppKey',
                request_serializer=server_dot_v1_dot_api__pb2.DeleteAppKeyRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.DeleteAppKeyResponse.FromString,
                )
        self.ListAppKeys = channel.unary_unary(
                '/tigrisdata.v1.Tigris/ListAppKeys',
                request_serializer=server_dot_v1_dot_api__pb2.ListAppKeysRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.ListAppKeysResponse.FromString,
                )
        self.RotateAppKeySecret = channel.unary_unary(
                '/tigrisdata.v1.Tigris/RotateAppKeySecret',
                request_serializer=server_dot_v1_dot_api__pb2.RotateAppKeyRequest.SerializeToString,
                response_deserializer=server_dot_v1_dot_api__pb2.RotateAppKeyResponse.FromString,
                )


class TigrisServicer(object):
    """Missing associated documentation comment in .proto file."""

    def BeginTransaction(self, request, context):
        """Starts a new transaction and returns a transactional object. All reads/writes performed
        within a transaction will run with serializable isolation. Tigris offers global transactions,
        with ACID properties and strict serializability.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CommitTransaction(self, request, context):
        """Atomically commit all the changes performed in the context of the transaction. Commit provides all
        or nothing semantics by ensuring no partial updates are in the project due to a transaction failure.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RollbackTransaction(self, request, context):
        """Rollback transaction discards all the changes
        performed in the transaction
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Insert(self, request, context):
        """Inserts new documents in the collection and returns an AlreadyExists error if any of the documents
        in the request already exists. Insert provides idempotency by returning an error if the document
        already exists. To replace documents, use REPLACE API instead of INSERT.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Replace(self, request, context):
        """Inserts the documents or replaces the existing documents in the collections.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Delete(self, request, context):
        """Delete a range of documents in the collection using the condition provided in the filter.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Update(self, request, context):
        """Update a range of documents in the collection using the condition provided in the filter.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Read(self, request, context):
        """Reads a range of documents from the collection, or messages from a collection in case of event streaming. Tigris does not require you to
        index any fields and automatically index all the fields which means you can filter by any field in the document.
        An empty filter will trigger reading all the documents inside this collection. The API supports pagination that
        can be used by passing `Limit/Skip` parameters. The `skip` parameter skips the number of documents from the start and
        the `limit` parameter is used to specify the number of documents to read. You can find more detailed documentation
        of the Read API <a href="https://docs.tigrisdata.com/overview/query" title="here">here</a>.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Count(self, request, context):
        """Count returns the number of documents in the collection. The filter parameter
        can be used to select which documents contribute to the count. An empty filter means
        count all documents in the collection.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def BuildCollectionIndex(self, request, context):
        """Index Collection will do a full scan off all documents in the collection and rebuild
        all indexes in the collection
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Explain(self, request, context):
        """Explain takes the same parameters as Read and returns how the Tigris Query Planner would process the
        response
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Search(self, request, context):
        """Searches a collection for the documents matching the query, or messages in case of event streaming. A search can be
        a term search or a phrase search. Search API allows filtering the result set using filters as documented <a href="https://docs.tigrisdata.com/overview/query#specification-1" title="here">here</a>.
        You can also perform a faceted search by passing the fields in the facet parameter.
        You can find more detailed documentation of the Search API with multiple examples <a href="https://docs.tigrisdata.com/overview/search" title="here">here</a>.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Import(self, request, context):
        """Imports documents into the collection.

        It automatically:
        * Detects the schema of the documents in the batch
        * Evolves the schema as soon as it's backward compatible
        * Creates collection with inferred schema (if requested)
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateOrUpdateCollection(self, request, context):
        """Creates a new collection or atomically upgrades the collection to the new schema provided in the request.
        Schema changes are applied atomically and immediately without any downtime.
        Tigris Offers two types of collections: <p></p>
        <li> `DOCUMENTS`: Offers rich CRUD APIs.
        <li> `MESSAGES`: Offers event streaming APIs.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DropCollection(self, request, context):
        """Drops the collection inside this project. This API deletes all of the
        documents inside this collection and any metadata associated with it.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListProjects(self, request, context):
        """List returns all the projects.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListCollections(self, request, context):
        """List all the collections present in the project passed in the request.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateProject(self, request, context):
        """Creates a new project. Returns an AlreadyExists error with a status code 409 if the project already exists.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DeleteProject(self, request, context):
        """Delete Project deletes all the collections in this project along with all of the documents, and associated metadata for these collections.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DescribeDatabase(self, request, context):
        """This API returns information related to the project along with all the collections inside the project.
        This can be used to retrieve the size of the project or to retrieve schemas, branches and the size of all the collections present in this project.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateBranch(self, request, context):
        """Creates a new database branch, if not already existing.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DeleteBranch(self, request, context):
        """Deletes a database branch, if exists.
        Throws 400 Bad Request if "main" branch is being deleted
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListBranches(self, request, context):
        """List database branches
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DescribeCollection(self, request, context):
        """Returns the information related to the collection. This can be used to retrieve the schema or size of the collection.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateAppKey(self, request, context):
        """Create an app key.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def UpdateAppKey(self, request, context):
        """Update the description of an app key.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DeleteAppKey(self, request, context):
        """Delete an app key.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListAppKeys(self, request, context):
        """Lists all app keys visible to requesting actor.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RotateAppKeySecret(self, request, context):
        """Endpoint is used to rotate the secret for the app key.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_TigrisServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'BeginTransaction': grpc.unary_unary_rpc_method_handler(
                    servicer.BeginTransaction,
                    request_deserializer=server_dot_v1_dot_api__pb2.BeginTransactionRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.BeginTransactionResponse.SerializeToString,
            ),
            'CommitTransaction': grpc.unary_unary_rpc_method_handler(
                    servicer.CommitTransaction,
                    request_deserializer=server_dot_v1_dot_api__pb2.CommitTransactionRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.CommitTransactionResponse.SerializeToString,
            ),
            'RollbackTransaction': grpc.unary_unary_rpc_method_handler(
                    servicer.RollbackTransaction,
                    request_deserializer=server_dot_v1_dot_api__pb2.RollbackTransactionRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.RollbackTransactionResponse.SerializeToString,
            ),
            'Insert': grpc.unary_unary_rpc_method_handler(
                    servicer.Insert,
                    request_deserializer=server_dot_v1_dot_api__pb2.InsertRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.InsertResponse.SerializeToString,
            ),
            'Replace': grpc.unary_unary_rpc_method_handler(
                    servicer.Replace,
                    request_deserializer=server_dot_v1_dot_api__pb2.ReplaceRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.ReplaceResponse.SerializeToString,
            ),
            'Delete': grpc.unary_unary_rpc_method_handler(
                    servicer.Delete,
                    request_deserializer=server_dot_v1_dot_api__pb2.DeleteRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.DeleteResponse.SerializeToString,
            ),
            'Update': grpc.unary_unary_rpc_method_handler(
                    servicer.Update,
                    request_deserializer=server_dot_v1_dot_api__pb2.UpdateRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.UpdateResponse.SerializeToString,
            ),
            'Read': grpc.unary_stream_rpc_method_handler(
                    servicer.Read,
                    request_deserializer=server_dot_v1_dot_api__pb2.ReadRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.ReadResponse.SerializeToString,
            ),
            'Count': grpc.unary_unary_rpc_method_handler(
                    servicer.Count,
                    request_deserializer=server_dot_v1_dot_api__pb2.CountRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.CountResponse.SerializeToString,
            ),
            'BuildCollectionIndex': grpc.unary_unary_rpc_method_handler(
                    servicer.BuildCollectionIndex,
                    request_deserializer=server_dot_v1_dot_api__pb2.BuildCollectionIndexRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.BuildCollectionIndexResponse.SerializeToString,
            ),
            'Explain': grpc.unary_unary_rpc_method_handler(
                    servicer.Explain,
                    request_deserializer=server_dot_v1_dot_api__pb2.ReadRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.ExplainResponse.SerializeToString,
            ),
            'Search': grpc.unary_stream_rpc_method_handler(
                    servicer.Search,
                    request_deserializer=server_dot_v1_dot_api__pb2.SearchRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.SearchResponse.SerializeToString,
            ),
            'Import': grpc.unary_unary_rpc_method_handler(
                    servicer.Import,
                    request_deserializer=server_dot_v1_dot_api__pb2.ImportRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.ImportResponse.SerializeToString,
            ),
            'CreateOrUpdateCollection': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateOrUpdateCollection,
                    request_deserializer=server_dot_v1_dot_api__pb2.CreateOrUpdateCollectionRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.CreateOrUpdateCollectionResponse.SerializeToString,
            ),
            'DropCollection': grpc.unary_unary_rpc_method_handler(
                    servicer.DropCollection,
                    request_deserializer=server_dot_v1_dot_api__pb2.DropCollectionRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.DropCollectionResponse.SerializeToString,
            ),
            'ListProjects': grpc.unary_unary_rpc_method_handler(
                    servicer.ListProjects,
                    request_deserializer=server_dot_v1_dot_api__pb2.ListProjectsRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.ListProjectsResponse.SerializeToString,
            ),
            'ListCollections': grpc.unary_unary_rpc_method_handler(
                    servicer.ListCollections,
                    request_deserializer=server_dot_v1_dot_api__pb2.ListCollectionsRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.ListCollectionsResponse.SerializeToString,
            ),
            'CreateProject': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateProject,
                    request_deserializer=server_dot_v1_dot_api__pb2.CreateProjectRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.CreateProjectResponse.SerializeToString,
            ),
            'DeleteProject': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteProject,
                    request_deserializer=server_dot_v1_dot_api__pb2.DeleteProjectRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.DeleteProjectResponse.SerializeToString,
            ),
            'DescribeDatabase': grpc.unary_unary_rpc_method_handler(
                    servicer.DescribeDatabase,
                    request_deserializer=server_dot_v1_dot_api__pb2.DescribeDatabaseRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.DescribeDatabaseResponse.SerializeToString,
            ),
            'CreateBranch': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateBranch,
                    request_deserializer=server_dot_v1_dot_api__pb2.CreateBranchRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.CreateBranchResponse.SerializeToString,
            ),
            'DeleteBranch': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteBranch,
                    request_deserializer=server_dot_v1_dot_api__pb2.DeleteBranchRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.DeleteBranchResponse.SerializeToString,
            ),
            'ListBranches': grpc.unary_unary_rpc_method_handler(
                    servicer.ListBranches,
                    request_deserializer=server_dot_v1_dot_api__pb2.ListBranchesRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.ListBranchesResponse.SerializeToString,
            ),
            'DescribeCollection': grpc.unary_unary_rpc_method_handler(
                    servicer.DescribeCollection,
                    request_deserializer=server_dot_v1_dot_api__pb2.DescribeCollectionRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.DescribeCollectionResponse.SerializeToString,
            ),
            'CreateAppKey': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateAppKey,
                    request_deserializer=server_dot_v1_dot_api__pb2.CreateAppKeyRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.CreateAppKeyResponse.SerializeToString,
            ),
            'UpdateAppKey': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateAppKey,
                    request_deserializer=server_dot_v1_dot_api__pb2.UpdateAppKeyRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.UpdateAppKeyResponse.SerializeToString,
            ),
            'DeleteAppKey': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteAppKey,
                    request_deserializer=server_dot_v1_dot_api__pb2.DeleteAppKeyRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.DeleteAppKeyResponse.SerializeToString,
            ),
            'ListAppKeys': grpc.unary_unary_rpc_method_handler(
                    servicer.ListAppKeys,
                    request_deserializer=server_dot_v1_dot_api__pb2.ListAppKeysRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.ListAppKeysResponse.SerializeToString,
            ),
            'RotateAppKeySecret': grpc.unary_unary_rpc_method_handler(
                    servicer.RotateAppKeySecret,
                    request_deserializer=server_dot_v1_dot_api__pb2.RotateAppKeyRequest.FromString,
                    response_serializer=server_dot_v1_dot_api__pb2.RotateAppKeyResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'tigrisdata.v1.Tigris', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class Tigris(object):
    """Missing associated documentation comment in .proto file."""

    @staticmethod
    def BeginTransaction(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/BeginTransaction',
            server_dot_v1_dot_api__pb2.BeginTransactionRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.BeginTransactionResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CommitTransaction(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/CommitTransaction',
            server_dot_v1_dot_api__pb2.CommitTransactionRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.CommitTransactionResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RollbackTransaction(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/RollbackTransaction',
            server_dot_v1_dot_api__pb2.RollbackTransactionRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.RollbackTransactionResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Insert(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/Insert',
            server_dot_v1_dot_api__pb2.InsertRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.InsertResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Replace(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/Replace',
            server_dot_v1_dot_api__pb2.ReplaceRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.ReplaceResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Delete(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/Delete',
            server_dot_v1_dot_api__pb2.DeleteRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.DeleteResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Update(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/Update',
            server_dot_v1_dot_api__pb2.UpdateRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.UpdateResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Read(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/tigrisdata.v1.Tigris/Read',
            server_dot_v1_dot_api__pb2.ReadRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.ReadResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Count(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/Count',
            server_dot_v1_dot_api__pb2.CountRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.CountResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def BuildCollectionIndex(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/BuildCollectionIndex',
            server_dot_v1_dot_api__pb2.BuildCollectionIndexRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.BuildCollectionIndexResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Explain(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/Explain',
            server_dot_v1_dot_api__pb2.ReadRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.ExplainResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Search(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/tigrisdata.v1.Tigris/Search',
            server_dot_v1_dot_api__pb2.SearchRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.SearchResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Import(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/Import',
            server_dot_v1_dot_api__pb2.ImportRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.ImportResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateOrUpdateCollection(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/CreateOrUpdateCollection',
            server_dot_v1_dot_api__pb2.CreateOrUpdateCollectionRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.CreateOrUpdateCollectionResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DropCollection(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/DropCollection',
            server_dot_v1_dot_api__pb2.DropCollectionRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.DropCollectionResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListProjects(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/ListProjects',
            server_dot_v1_dot_api__pb2.ListProjectsRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.ListProjectsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListCollections(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/ListCollections',
            server_dot_v1_dot_api__pb2.ListCollectionsRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.ListCollectionsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateProject(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/CreateProject',
            server_dot_v1_dot_api__pb2.CreateProjectRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.CreateProjectResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeleteProject(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/DeleteProject',
            server_dot_v1_dot_api__pb2.DeleteProjectRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.DeleteProjectResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DescribeDatabase(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/DescribeDatabase',
            server_dot_v1_dot_api__pb2.DescribeDatabaseRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.DescribeDatabaseResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateBranch(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/CreateBranch',
            server_dot_v1_dot_api__pb2.CreateBranchRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.CreateBranchResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeleteBranch(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/DeleteBranch',
            server_dot_v1_dot_api__pb2.DeleteBranchRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.DeleteBranchResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListBranches(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/ListBranches',
            server_dot_v1_dot_api__pb2.ListBranchesRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.ListBranchesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DescribeCollection(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/DescribeCollection',
            server_dot_v1_dot_api__pb2.DescribeCollectionRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.DescribeCollectionResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateAppKey(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/CreateAppKey',
            server_dot_v1_dot_api__pb2.CreateAppKeyRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.CreateAppKeyResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UpdateAppKey(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/UpdateAppKey',
            server_dot_v1_dot_api__pb2.UpdateAppKeyRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.UpdateAppKeyResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeleteAppKey(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/DeleteAppKey',
            server_dot_v1_dot_api__pb2.DeleteAppKeyRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.DeleteAppKeyResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListAppKeys(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/ListAppKeys',
            server_dot_v1_dot_api__pb2.ListAppKeysRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.ListAppKeysResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RotateAppKeySecret(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/tigrisdata.v1.Tigris/RotateAppKeySecret',
            server_dot_v1_dot_api__pb2.RotateAppKeyRequest.SerializeToString,
            server_dot_v1_dot_api__pb2.RotateAppKeyResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
