syntax = "proto3"; package milvus.proto.rootcoord; option go_package="github.com/milvus-io/milvus/internal/proto/rootcoordpb"; import "common.proto"; import "milvus.proto"; import "internal.proto"; import "proxy.proto"; //import "data_coord.proto"; import "etcd_meta.proto"; service RootCoord { rpc GetComponentStates(milvus.GetComponentStatesRequest) returns (milvus.ComponentStates) {} rpc GetTimeTickChannel(internal.GetTimeTickChannelRequest) returns(milvus.StringResponse) {} rpc GetStatisticsChannel(internal.GetStatisticsChannelRequest) returns(milvus.StringResponse){} /** * @brief This method is used to create collection * * @param CreateCollectionRequest, use to provide collection information to be created. * * @return Status */ rpc CreateCollection(milvus.CreateCollectionRequest) returns (common.Status){} /** * @brief This method is used to delete collection. * * @param DropCollectionRequest, collection name is going to be deleted. * * @return Status */ rpc DropCollection(milvus.DropCollectionRequest) returns (common.Status) {} /** * @brief This method is used to test collection existence. * * @param HasCollectionRequest, collection name is going to be tested. * * @return BoolResponse */ rpc HasCollection(milvus.HasCollectionRequest) returns (milvus.BoolResponse) {} /** * @brief This method is used to get collection schema. * * @param DescribeCollectionRequest, target collection name. * * @return CollectionSchema */ rpc DescribeCollection(milvus.DescribeCollectionRequest) returns (milvus.DescribeCollectionResponse) {} rpc CreateAlias(milvus.CreateAliasRequest) returns (common.Status) {} rpc DropAlias(milvus.DropAliasRequest) returns (common.Status) {} rpc AlterAlias(milvus.AlterAliasRequest) returns (common.Status) {} /** * @brief This method is used to list all collections. * * @return StringListResponse, collection name list */ rpc ShowCollections(milvus.ShowCollectionsRequest) returns (milvus.ShowCollectionsResponse) {} rpc AlterCollection(milvus.AlterCollectionRequest) returns (common.Status) {} /** * @brief This method is used to create partition * * @return Status */ rpc CreatePartition(milvus.CreatePartitionRequest) returns (common.Status) {} /** * @brief This method is used to drop partition * * @return Status */ rpc DropPartition(milvus.DropPartitionRequest) returns (common.Status) {} /** * @brief This method is used to test partition existence. * * @return BoolResponse */ rpc HasPartition(milvus.HasPartitionRequest) returns (milvus.BoolResponse) {} /** * @brief This method is used to show partition information * * @param ShowPartitionRequest, target collection name. * * @return StringListResponse */ rpc ShowPartitions(milvus.ShowPartitionsRequest) returns (milvus.ShowPartitionsResponse) {} // rpc DescribeSegment(milvus.DescribeSegmentRequest) returns (milvus.DescribeSegmentResponse) {} rpc ShowSegments(milvus.ShowSegmentsRequest) returns (milvus.ShowSegmentsResponse) {} // rpc DescribeSegments(DescribeSegmentsRequest) returns (DescribeSegmentsResponse) {} // rpc CreateIndex(milvus.CreateIndexRequest) returns (common.Status) {} // rpc DescribeIndex(milvus.DescribeIndexRequest) returns (milvus.DescribeIndexResponse) {} // rpc DropIndex(milvus.DropIndexRequest) returns (common.Status) {} // rpc GetIndexState(milvus.GetIndexStateRequest) returns (milvus.GetIndexStateResponse) {} rpc AllocTimestamp(AllocTimestampRequest) returns (AllocTimestampResponse) {} rpc AllocID(AllocIDRequest) returns (AllocIDResponse) {} rpc UpdateChannelTimeTick(internal.ChannelTimeTickMsg) returns (common.Status) {} rpc InvalidateCollectionMetaCache(proxy.InvalidateCollMetaCacheRequest) returns (common.Status) {} // rpc SegmentFlushCompleted(data.SegmentFlushCompletedMsg) returns (common.Status) {} rpc ShowConfigurations(internal.ShowConfigurationsRequest) returns (internal.ShowConfigurationsResponse){} // https://wiki.lfaidata.foundation/display/MIL/MEP+8+--+Add+metrics+for+proxy rpc GetMetrics(milvus.GetMetricsRequest) returns (milvus.GetMetricsResponse) {} // https://wiki.lfaidata.foundation/display/MIL/MEP+24+--+Support+bulk+load rpc Import(milvus.ImportRequest) returns (milvus.ImportResponse) {} rpc GetImportState(milvus.GetImportStateRequest) returns (milvus.GetImportStateResponse) {} rpc ListImportTasks(milvus.ListImportTasksRequest) returns (milvus.ListImportTasksResponse) {} rpc ReportImport(ImportResult) returns (common.Status) {} // https://wiki.lfaidata.foundation/display/MIL/MEP+27+--+Support+Basic+Authentication rpc CreateCredential(internal.CredentialInfo) returns (common.Status) {} rpc UpdateCredential(internal.CredentialInfo) returns (common.Status) {} rpc DeleteCredential(milvus.DeleteCredentialRequest) returns (common.Status) {} rpc ListCredUsers(milvus.ListCredUsersRequest) returns (milvus.ListCredUsersResponse) {} // userd by proxy, not exposed to sdk rpc GetCredential(GetCredentialRequest) returns (GetCredentialResponse) {} // https://wiki.lfaidata.foundation/display/MIL/MEP+29+--+Support+Role-Based+Access+Control rpc CreateRole(milvus.CreateRoleRequest) returns (common.Status) {} rpc DropRole(milvus.DropRoleRequest) returns (common.Status) {} rpc OperateUserRole(milvus.OperateUserRoleRequest) returns (common.Status) {} rpc SelectRole(milvus.SelectRoleRequest) returns (milvus.SelectRoleResponse) {} rpc SelectUser(milvus.SelectUserRequest) returns (milvus.SelectUserResponse) {} rpc OperatePrivilege(milvus.OperatePrivilegeRequest) returns (common.Status) {} rpc SelectGrant(milvus.SelectGrantRequest) returns (milvus.SelectGrantResponse) {} rpc ListPolicy(internal.ListPolicyRequest) returns (internal.ListPolicyResponse) {} rpc CheckHealth(milvus.CheckHealthRequest) returns (milvus.CheckHealthResponse) {} } message AllocTimestampRequest { common.MsgBase base = 1; uint32 count = 3; } message AllocTimestampResponse { common.Status status = 1; uint64 timestamp = 2; uint32 count = 3; } message AllocIDRequest { common.MsgBase base = 1; uint32 count = 2; } message AllocIDResponse { common.Status status = 1; int64 ID = 2; uint32 count = 3; } message ImportResult { common.Status status = 1; int64 task_id = 2; // id of the task int64 datanode_id = 3; // id of the datanode which takes this task common.ImportState state = 4; // state of the task repeated int64 segments = 5; // id array of new sealed segments repeated int64 auto_ids = 6; // auto-generated ids for auto-id primary key int64 row_count = 7; // how many rows are imported by this task repeated common.KeyValuePair infos = 8; // more informations about the task, file path, failed reason, etc. } // TODO: find a proper place for these segment-related messages. message DescribeSegmentsRequest { common.MsgBase base = 1; int64 collectionID = 2; repeated int64 segmentIDs = 3; } message SegmentBaseInfo { int64 collectionID = 1; // in which collection. int64 partitionID = 2; // in which partition. int64 segmentID = 3; } message SegmentInfos { SegmentBaseInfo base_info = 1; // base information. repeated etcd.SegmentIndexInfo index_infos = 2; // multiple index infos. map extra_index_infos = 3; // index_id -> IndexInfo{index_name, index_id, index_params} } message DescribeSegmentsResponse { common.Status status = 1; int64 collectionID = 2; map segment_infos = 3; // segment_id -> segment infos } message GetCredentialRequest { // Not useful for now common.MsgBase base = 1; // username string username = 2; } message GetCredentialResponse { // Contain error_code and reason common.Status status = 1; // username string username = 2; // password stored in etcd/mysql string password = 3; }