diff --git a/go-api/milvuspb/milvus.pb.go b/go-api/milvuspb/milvus.pb.go index f3f55753..fa709570 100644 --- a/go-api/milvuspb/milvus.pb.go +++ b/go-api/milvuspb/milvus.pb.go @@ -3338,18 +3338,22 @@ func (x *ShowPartitionsResponse) GetInMemoryPercentages() []int64 { return nil } -type DescribeSegmentRequest struct { +type NamespaceStats struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - CollectionID int64 `protobuf:"varint,2,opt,name=collectionID,proto3" json:"collectionID,omitempty"` - SegmentID int64 `protobuf:"varint,3,opt,name=segmentID,proto3" json:"segmentID,omitempty"` + Stats []*commonpb.KeyValuePair `protobuf:"bytes,1,rep,name=stats,proto3" json:"stats,omitempty"` + ApproxEntityCount int64 `protobuf:"varint,2,opt,name=approx_entity_count,json=approxEntityCount,proto3" json:"approx_entity_count,omitempty"` + EntityCount int64 `protobuf:"varint,3,opt,name=entity_count,json=entityCount,proto3" json:"entity_count,omitempty"` + EntityCountType string `protobuf:"bytes,4,opt,name=entity_count_type,json=entityCountType,proto3" json:"entity_count_type,omitempty"` + LogicalBytes int64 `protobuf:"varint,5,opt,name=logical_bytes,json=logicalBytes,proto3" json:"logical_bytes,omitempty"` + LastWriteTimestamp uint64 `protobuf:"varint,6,opt,name=last_write_timestamp,json=lastWriteTimestamp,proto3" json:"last_write_timestamp,omitempty"` + LastWriteUtcTimestamp uint64 `protobuf:"varint,7,opt,name=last_write_utc_timestamp,json=lastWriteUtcTimestamp,proto3" json:"last_write_utc_timestamp,omitempty"` } -func (x *DescribeSegmentRequest) Reset() { - *x = DescribeSegmentRequest{} +func (x *NamespaceStats) Reset() { + *x = NamespaceStats{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3357,13 +3361,13 @@ func (x *DescribeSegmentRequest) Reset() { } } -func (x *DescribeSegmentRequest) String() string { +func (x *NamespaceStats) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DescribeSegmentRequest) ProtoMessage() {} +func (*NamespaceStats) ProtoMessage() {} -func (x *DescribeSegmentRequest) ProtoReflect() protoreflect.Message { +func (x *NamespaceStats) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3375,46 +3379,75 @@ func (x *DescribeSegmentRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DescribeSegmentRequest.ProtoReflect.Descriptor instead. -func (*DescribeSegmentRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use NamespaceStats.ProtoReflect.Descriptor instead. +func (*NamespaceStats) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{35} } -func (x *DescribeSegmentRequest) GetBase() *commonpb.MsgBase { +func (x *NamespaceStats) GetStats() []*commonpb.KeyValuePair { if x != nil { - return x.Base + return x.Stats } return nil } -func (x *DescribeSegmentRequest) GetCollectionID() int64 { +func (x *NamespaceStats) GetApproxEntityCount() int64 { if x != nil { - return x.CollectionID + return x.ApproxEntityCount } return 0 } -func (x *DescribeSegmentRequest) GetSegmentID() int64 { +func (x *NamespaceStats) GetEntityCount() int64 { if x != nil { - return x.SegmentID + return x.EntityCount } return 0 } -type DescribeSegmentResponse struct { +func (x *NamespaceStats) GetEntityCountType() string { + if x != nil { + return x.EntityCountType + } + return "" +} + +func (x *NamespaceStats) GetLogicalBytes() int64 { + if x != nil { + return x.LogicalBytes + } + return 0 +} + +func (x *NamespaceStats) GetLastWriteTimestamp() uint64 { + if x != nil { + return x.LastWriteTimestamp + } + return 0 +} + +func (x *NamespaceStats) GetLastWriteUtcTimestamp() uint64 { + if x != nil { + return x.LastWriteUtcTimestamp + } + return 0 +} + +type NamespaceInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - IndexID int64 `protobuf:"varint,2,opt,name=indexID,proto3" json:"indexID,omitempty"` - BuildID int64 `protobuf:"varint,3,opt,name=buildID,proto3" json:"buildID,omitempty"` - EnableIndex bool `protobuf:"varint,4,opt,name=enable_index,json=enableIndex,proto3" json:"enable_index,omitempty"` - FieldID int64 `protobuf:"varint,5,opt,name=fieldID,proto3" json:"fieldID,omitempty"` + CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + NamespaceName string `protobuf:"bytes,2,opt,name=namespace_name,json=namespaceName,proto3" json:"namespace_name,omitempty"` + CreatedTimestamp uint64 `protobuf:"varint,3,opt,name=created_timestamp,json=createdTimestamp,proto3" json:"created_timestamp,omitempty"` + CreatedUtcTimestamp uint64 `protobuf:"varint,4,opt,name=created_utc_timestamp,json=createdUtcTimestamp,proto3" json:"created_utc_timestamp,omitempty"` + State string `protobuf:"bytes,5,opt,name=state,proto3" json:"state,omitempty"` + Stats *NamespaceStats `protobuf:"bytes,6,opt,name=stats,proto3" json:"stats,omitempty"` } -func (x *DescribeSegmentResponse) Reset() { - *x = DescribeSegmentResponse{} +func (x *NamespaceInfo) Reset() { + *x = NamespaceInfo{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3422,13 +3455,13 @@ func (x *DescribeSegmentResponse) Reset() { } } -func (x *DescribeSegmentResponse) String() string { +func (x *NamespaceInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DescribeSegmentResponse) ProtoMessage() {} +func (*NamespaceInfo) ProtoMessage() {} -func (x *DescribeSegmentResponse) ProtoReflect() protoreflect.Message { +func (x *NamespaceInfo) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3440,58 +3473,66 @@ func (x *DescribeSegmentResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DescribeSegmentResponse.ProtoReflect.Descriptor instead. -func (*DescribeSegmentResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use NamespaceInfo.ProtoReflect.Descriptor instead. +func (*NamespaceInfo) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{36} } -func (x *DescribeSegmentResponse) GetStatus() *commonpb.Status { +func (x *NamespaceInfo) GetCollectionName() string { if x != nil { - return x.Status + return x.CollectionName } - return nil + return "" } -func (x *DescribeSegmentResponse) GetIndexID() int64 { +func (x *NamespaceInfo) GetNamespaceName() string { if x != nil { - return x.IndexID + return x.NamespaceName + } + return "" +} + +func (x *NamespaceInfo) GetCreatedTimestamp() uint64 { + if x != nil { + return x.CreatedTimestamp } return 0 } -func (x *DescribeSegmentResponse) GetBuildID() int64 { +func (x *NamespaceInfo) GetCreatedUtcTimestamp() uint64 { if x != nil { - return x.BuildID + return x.CreatedUtcTimestamp } return 0 } -func (x *DescribeSegmentResponse) GetEnableIndex() bool { +func (x *NamespaceInfo) GetState() string { if x != nil { - return x.EnableIndex + return x.State } - return false + return "" } -func (x *DescribeSegmentResponse) GetFieldID() int64 { +func (x *NamespaceInfo) GetStats() *NamespaceStats { if x != nil { - return x.FieldID + return x.Stats } - return 0 + return nil } -type ShowSegmentsRequest struct { +type CreateNamespaceRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - CollectionID int64 `protobuf:"varint,2,opt,name=collectionID,proto3" json:"collectionID,omitempty"` - PartitionID int64 `protobuf:"varint,3,opt,name=partitionID,proto3" json:"partitionID,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + NamespaceName string `protobuf:"bytes,4,opt,name=namespace_name,json=namespaceName,proto3" json:"namespace_name,omitempty"` } -func (x *ShowSegmentsRequest) Reset() { - *x = ShowSegmentsRequest{} +func (x *CreateNamespaceRequest) Reset() { + *x = CreateNamespaceRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3499,13 +3540,13 @@ func (x *ShowSegmentsRequest) Reset() { } } -func (x *ShowSegmentsRequest) String() string { +func (x *CreateNamespaceRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ShowSegmentsRequest) ProtoMessage() {} +func (*CreateNamespaceRequest) ProtoMessage() {} -func (x *ShowSegmentsRequest) ProtoReflect() protoreflect.Message { +func (x *CreateNamespaceRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3517,43 +3558,50 @@ func (x *ShowSegmentsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ShowSegmentsRequest.ProtoReflect.Descriptor instead. -func (*ShowSegmentsRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use CreateNamespaceRequest.ProtoReflect.Descriptor instead. +func (*CreateNamespaceRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{37} } -func (x *ShowSegmentsRequest) GetBase() *commonpb.MsgBase { +func (x *CreateNamespaceRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *ShowSegmentsRequest) GetCollectionID() int64 { +func (x *CreateNamespaceRequest) GetDbName() string { if x != nil { - return x.CollectionID + return x.DbName } - return 0 + return "" } -func (x *ShowSegmentsRequest) GetPartitionID() int64 { +func (x *CreateNamespaceRequest) GetCollectionName() string { if x != nil { - return x.PartitionID + return x.CollectionName } - return 0 + return "" } -type ShowSegmentsResponse struct { +func (x *CreateNamespaceRequest) GetNamespaceName() string { + if x != nil { + return x.NamespaceName + } + return "" +} + +type CreateNamespaceResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - SegmentIDs []int64 `protobuf:"varint,2,rep,packed,name=segmentIDs,proto3" json:"segmentIDs,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Namespace *NamespaceInfo `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` } -func (x *ShowSegmentsResponse) Reset() { - *x = ShowSegmentsResponse{} +func (x *CreateNamespaceResponse) Reset() { + *x = CreateNamespaceResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3561,13 +3609,13 @@ func (x *ShowSegmentsResponse) Reset() { } } -func (x *ShowSegmentsResponse) String() string { +func (x *CreateNamespaceResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ShowSegmentsResponse) ProtoMessage() {} +func (*CreateNamespaceResponse) ProtoMessage() {} -func (x *ShowSegmentsResponse) ProtoReflect() protoreflect.Message { +func (x *CreateNamespaceResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3579,46 +3627,38 @@ func (x *ShowSegmentsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ShowSegmentsResponse.ProtoReflect.Descriptor instead. -func (*ShowSegmentsResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use CreateNamespaceResponse.ProtoReflect.Descriptor instead. +func (*CreateNamespaceResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{38} } -func (x *ShowSegmentsResponse) GetStatus() *commonpb.Status { +func (x *CreateNamespaceResponse) GetStatus() *commonpb.Status { if x != nil { return x.Status } return nil } -func (x *ShowSegmentsResponse) GetSegmentIDs() []int64 { +func (x *CreateNamespaceResponse) GetNamespace() *NamespaceInfo { if x != nil { - return x.SegmentIDs + return x.Namespace } return nil } -// Create index for vector datas -type CreateIndexRequest struct { +type DescribeNamespaceRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Not useful for now - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - // The particular collection name you want to create index. - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - // The vector field name in this particular collection - FieldName string `protobuf:"bytes,4,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` - // Support keys: index_type,metric_type, params. Different index_type may has different params. - ExtraParams []*commonpb.KeyValuePair `protobuf:"bytes,5,rep,name=extra_params,json=extraParams,proto3" json:"extra_params,omitempty"` - // Version before 2.0.2 doesn't contain index_name, we use default index name. - IndexName string `protobuf:"bytes,6,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + NamespaceName string `protobuf:"bytes,4,opt,name=namespace_name,json=namespaceName,proto3" json:"namespace_name,omitempty"` } -func (x *CreateIndexRequest) Reset() { - *x = CreateIndexRequest{} +func (x *DescribeNamespaceRequest) Reset() { + *x = DescribeNamespaceRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3626,13 +3666,13 @@ func (x *CreateIndexRequest) Reset() { } } -func (x *CreateIndexRequest) String() string { +func (x *DescribeNamespaceRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateIndexRequest) ProtoMessage() {} +func (*DescribeNamespaceRequest) ProtoMessage() {} -func (x *CreateIndexRequest) ProtoReflect() protoreflect.Message { +func (x *DescribeNamespaceRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3644,69 +3684,50 @@ func (x *CreateIndexRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateIndexRequest.ProtoReflect.Descriptor instead. -func (*CreateIndexRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use DescribeNamespaceRequest.ProtoReflect.Descriptor instead. +func (*DescribeNamespaceRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{39} } -func (x *CreateIndexRequest) GetBase() *commonpb.MsgBase { +func (x *DescribeNamespaceRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *CreateIndexRequest) GetDbName() string { +func (x *DescribeNamespaceRequest) GetDbName() string { if x != nil { return x.DbName } return "" } -func (x *CreateIndexRequest) GetCollectionName() string { +func (x *DescribeNamespaceRequest) GetCollectionName() string { if x != nil { return x.CollectionName } return "" } -func (x *CreateIndexRequest) GetFieldName() string { - if x != nil { - return x.FieldName - } - return "" -} - -func (x *CreateIndexRequest) GetExtraParams() []*commonpb.KeyValuePair { - if x != nil { - return x.ExtraParams - } - return nil -} - -func (x *CreateIndexRequest) GetIndexName() string { +func (x *DescribeNamespaceRequest) GetNamespaceName() string { if x != nil { - return x.IndexName + return x.NamespaceName } return "" } -// Alter index -type AlterIndexRequest struct { +type DescribeNamespaceResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - IndexName string `protobuf:"bytes,4,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` - ExtraParams []*commonpb.KeyValuePair `protobuf:"bytes,5,rep,name=extra_params,json=extraParams,proto3" json:"extra_params,omitempty"` - DeleteKeys []string `protobuf:"bytes,6,rep,name=delete_keys,json=deleteKeys,proto3" json:"delete_keys,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Namespace *NamespaceInfo `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` } -func (x *AlterIndexRequest) Reset() { - *x = AlterIndexRequest{} +func (x *DescribeNamespaceResponse) Reset() { + *x = DescribeNamespaceResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3714,13 +3735,13 @@ func (x *AlterIndexRequest) Reset() { } } -func (x *AlterIndexRequest) String() string { +func (x *DescribeNamespaceResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AlterIndexRequest) ProtoMessage() {} +func (*DescribeNamespaceResponse) ProtoMessage() {} -func (x *AlterIndexRequest) ProtoReflect() protoreflect.Message { +func (x *DescribeNamespaceResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3732,74 +3753,40 @@ func (x *AlterIndexRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AlterIndexRequest.ProtoReflect.Descriptor instead. -func (*AlterIndexRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use DescribeNamespaceResponse.ProtoReflect.Descriptor instead. +func (*DescribeNamespaceResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{40} } -func (x *AlterIndexRequest) GetBase() *commonpb.MsgBase { - if x != nil { - return x.Base - } - return nil -} - -func (x *AlterIndexRequest) GetDbName() string { - if x != nil { - return x.DbName - } - return "" -} - -func (x *AlterIndexRequest) GetCollectionName() string { - if x != nil { - return x.CollectionName - } - return "" -} - -func (x *AlterIndexRequest) GetIndexName() string { - if x != nil { - return x.IndexName - } - return "" -} - -func (x *AlterIndexRequest) GetExtraParams() []*commonpb.KeyValuePair { +func (x *DescribeNamespaceResponse) GetStatus() *commonpb.Status { if x != nil { - return x.ExtraParams + return x.Status } return nil } -func (x *AlterIndexRequest) GetDeleteKeys() []string { +func (x *DescribeNamespaceResponse) GetNamespace() *NamespaceInfo { if x != nil { - return x.DeleteKeys + return x.Namespace } return nil } -// Get created index information. -// Current release of Milvus only supports showing latest built index. -type DescribeIndexRequest struct { +type ListNamespacesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Not useful for now - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - // The particular collection name in Milvus - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - // The vector field name in this particular collection - FieldName string `protobuf:"bytes,4,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` - // No need to set up for now @2021.06.30 - IndexName string `protobuf:"bytes,5,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` - Timestamp uint64 `protobuf:"varint,6,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + Prefix string `protobuf:"bytes,4,opt,name=prefix,proto3" json:"prefix,omitempty"` + PageSize int64 `protobuf:"varint,5,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + PageToken string `protobuf:"bytes,6,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` } -func (x *DescribeIndexRequest) Reset() { - *x = DescribeIndexRequest{} +func (x *ListNamespacesRequest) Reset() { + *x = ListNamespacesRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3807,13 +3794,13 @@ func (x *DescribeIndexRequest) Reset() { } } -func (x *DescribeIndexRequest) String() string { +func (x *ListNamespacesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DescribeIndexRequest) ProtoMessage() {} +func (*ListNamespacesRequest) ProtoMessage() {} -func (x *DescribeIndexRequest) ProtoReflect() protoreflect.Message { +func (x *ListNamespacesRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3825,82 +3812,65 @@ func (x *DescribeIndexRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DescribeIndexRequest.ProtoReflect.Descriptor instead. -func (*DescribeIndexRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ListNamespacesRequest.ProtoReflect.Descriptor instead. +func (*ListNamespacesRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{41} } -func (x *DescribeIndexRequest) GetBase() *commonpb.MsgBase { +func (x *ListNamespacesRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *DescribeIndexRequest) GetDbName() string { +func (x *ListNamespacesRequest) GetDbName() string { if x != nil { return x.DbName } return "" } -func (x *DescribeIndexRequest) GetCollectionName() string { +func (x *ListNamespacesRequest) GetCollectionName() string { if x != nil { return x.CollectionName } return "" } -func (x *DescribeIndexRequest) GetFieldName() string { +func (x *ListNamespacesRequest) GetPrefix() string { if x != nil { - return x.FieldName + return x.Prefix } return "" } -func (x *DescribeIndexRequest) GetIndexName() string { +func (x *ListNamespacesRequest) GetPageSize() int64 { if x != nil { - return x.IndexName + return x.PageSize } - return "" + return 0 } -func (x *DescribeIndexRequest) GetTimestamp() uint64 { +func (x *ListNamespacesRequest) GetPageToken() string { if x != nil { - return x.Timestamp + return x.PageToken } - return 0 + return "" } -// Index informations -type IndexDescription struct { +type ListNamespacesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Index name - IndexName string `protobuf:"bytes,1,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` - // Index id - IndexID int64 `protobuf:"varint,2,opt,name=indexID,proto3" json:"indexID,omitempty"` - // Will return index_type, metric_type, params(like nlist). - Params []*commonpb.KeyValuePair `protobuf:"bytes,3,rep,name=params,proto3" json:"params,omitempty"` - // The vector field name - FieldName string `protobuf:"bytes,4,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` - // index build progress - IndexedRows int64 `protobuf:"varint,5,opt,name=indexed_rows,json=indexedRows,proto3" json:"indexed_rows,omitempty"` - TotalRows int64 `protobuf:"varint,6,opt,name=total_rows,json=totalRows,proto3" json:"total_rows,omitempty"` - // index state - State commonpb.IndexState `protobuf:"varint,7,opt,name=state,proto3,enum=milvus.proto.common.IndexState" json:"state,omitempty"` - IndexStateFailReason string `protobuf:"bytes,8,opt,name=index_state_fail_reason,json=indexStateFailReason,proto3" json:"index_state_fail_reason,omitempty"` - PendingIndexRows int64 `protobuf:"varint,9,opt,name=pending_index_rows,json=pendingIndexRows,proto3" json:"pending_index_rows,omitempty"` - // minimal index version for current index - MinIndexVersion int32 `protobuf:"varint,10,opt,name=min_index_version,json=minIndexVersion,proto3" json:"min_index_version,omitempty"` - // maximum index version for current index - MaxIndexVersion int32 `protobuf:"varint,11,opt,name=max_index_version,json=maxIndexVersion,proto3" json:"max_index_version,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Namespaces []*NamespaceInfo `protobuf:"bytes,2,rep,name=namespaces,proto3" json:"namespaces,omitempty"` + NextPageToken string `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` } -func (x *IndexDescription) Reset() { - *x = IndexDescription{} +func (x *ListNamespacesResponse) Reset() { + *x = ListNamespacesResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3908,13 +3878,13 @@ func (x *IndexDescription) Reset() { } } -func (x *IndexDescription) String() string { +func (x *ListNamespacesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IndexDescription) ProtoMessage() {} +func (*ListNamespacesResponse) ProtoMessage() {} -func (x *IndexDescription) ProtoReflect() protoreflect.Message { +func (x *ListNamespacesResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -3926,117 +3896,129 @@ func (x *IndexDescription) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IndexDescription.ProtoReflect.Descriptor instead. -func (*IndexDescription) Descriptor() ([]byte, []int) { +// Deprecated: Use ListNamespacesResponse.ProtoReflect.Descriptor instead. +func (*ListNamespacesResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{42} } -func (x *IndexDescription) GetIndexName() string { - if x != nil { - return x.IndexName - } - return "" -} - -func (x *IndexDescription) GetIndexID() int64 { +func (x *ListNamespacesResponse) GetStatus() *commonpb.Status { if x != nil { - return x.IndexID + return x.Status } - return 0 + return nil } -func (x *IndexDescription) GetParams() []*commonpb.KeyValuePair { +func (x *ListNamespacesResponse) GetNamespaces() []*NamespaceInfo { if x != nil { - return x.Params + return x.Namespaces } return nil } -func (x *IndexDescription) GetFieldName() string { +func (x *ListNamespacesResponse) GetNextPageToken() string { if x != nil { - return x.FieldName + return x.NextPageToken } return "" } -func (x *IndexDescription) GetIndexedRows() int64 { - if x != nil { - return x.IndexedRows - } - return 0 +type DropNamespaceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + NamespaceName string `protobuf:"bytes,4,opt,name=namespace_name,json=namespaceName,proto3" json:"namespace_name,omitempty"` } -func (x *IndexDescription) GetTotalRows() int64 { - if x != nil { - return x.TotalRows +func (x *DropNamespaceRequest) Reset() { + *x = DropNamespaceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *IndexDescription) GetState() commonpb.IndexState { - if x != nil { - return x.State +func (x *DropNamespaceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DropNamespaceRequest) ProtoMessage() {} + +func (x *DropNamespaceRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return commonpb.IndexState(0) + return mi.MessageOf(x) } -func (x *IndexDescription) GetIndexStateFailReason() string { +// Deprecated: Use DropNamespaceRequest.ProtoReflect.Descriptor instead. +func (*DropNamespaceRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{43} +} + +func (x *DropNamespaceRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.IndexStateFailReason + return x.Base } - return "" + return nil } -func (x *IndexDescription) GetPendingIndexRows() int64 { +func (x *DropNamespaceRequest) GetDbName() string { if x != nil { - return x.PendingIndexRows + return x.DbName } - return 0 + return "" } -func (x *IndexDescription) GetMinIndexVersion() int32 { +func (x *DropNamespaceRequest) GetCollectionName() string { if x != nil { - return x.MinIndexVersion + return x.CollectionName } - return 0 + return "" } -func (x *IndexDescription) GetMaxIndexVersion() int32 { +func (x *DropNamespaceRequest) GetNamespaceName() string { if x != nil { - return x.MaxIndexVersion + return x.NamespaceName } - return 0 + return "" } -// Describe index response -type DescribeIndexResponse struct { +type DropNamespaceResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Response status - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - // All index informations, for now only return tha latest index you created for the collection. - IndexDescriptions []*IndexDescription `protobuf:"bytes,2,rep,name=index_descriptions,json=indexDescriptions,proto3" json:"index_descriptions,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Namespace *NamespaceInfo `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` } -func (x *DescribeIndexResponse) Reset() { - *x = DescribeIndexResponse{} +func (x *DropNamespaceResponse) Reset() { + *x = DropNamespaceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[43] + mi := &file_milvus_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DescribeIndexResponse) String() string { +func (x *DropNamespaceResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DescribeIndexResponse) ProtoMessage() {} +func (*DropNamespaceResponse) ProtoMessage() {} -func (x *DescribeIndexResponse) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[43] +func (x *DropNamespaceResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4047,59 +4029,53 @@ func (x *DescribeIndexResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DescribeIndexResponse.ProtoReflect.Descriptor instead. -func (*DescribeIndexResponse) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{43} +// Deprecated: Use DropNamespaceResponse.ProtoReflect.Descriptor instead. +func (*DropNamespaceResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{44} } -func (x *DescribeIndexResponse) GetStatus() *commonpb.Status { +func (x *DropNamespaceResponse) GetStatus() *commonpb.Status { if x != nil { return x.Status } return nil } -func (x *DescribeIndexResponse) GetIndexDescriptions() []*IndexDescription { +func (x *DropNamespaceResponse) GetNamespace() *NamespaceInfo { if x != nil { - return x.IndexDescriptions + return x.Namespace } return nil } -// Get index building progress -type GetIndexBuildProgressRequest struct { +type HasNamespaceRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Not useful for now - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - // The collection name in milvus - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - // The vector field name in this collection - FieldName string `protobuf:"bytes,4,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` - // Not useful for now - IndexName string `protobuf:"bytes,5,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + NamespaceName string `protobuf:"bytes,4,opt,name=namespace_name,json=namespaceName,proto3" json:"namespace_name,omitempty"` } -func (x *GetIndexBuildProgressRequest) Reset() { - *x = GetIndexBuildProgressRequest{} +func (x *HasNamespaceRequest) Reset() { + *x = HasNamespaceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[44] + mi := &file_milvus_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetIndexBuildProgressRequest) String() string { +func (x *HasNamespaceRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetIndexBuildProgressRequest) ProtoMessage() {} +func (*HasNamespaceRequest) ProtoMessage() {} -func (x *GetIndexBuildProgressRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[44] +func (x *HasNamespaceRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4110,73 +4086,65 @@ func (x *GetIndexBuildProgressRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetIndexBuildProgressRequest.ProtoReflect.Descriptor instead. -func (*GetIndexBuildProgressRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{44} +// Deprecated: Use HasNamespaceRequest.ProtoReflect.Descriptor instead. +func (*HasNamespaceRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{45} } -func (x *GetIndexBuildProgressRequest) GetBase() *commonpb.MsgBase { +func (x *HasNamespaceRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *GetIndexBuildProgressRequest) GetDbName() string { +func (x *HasNamespaceRequest) GetDbName() string { if x != nil { return x.DbName } return "" } -func (x *GetIndexBuildProgressRequest) GetCollectionName() string { +func (x *HasNamespaceRequest) GetCollectionName() string { if x != nil { return x.CollectionName } return "" } -func (x *GetIndexBuildProgressRequest) GetFieldName() string { - if x != nil { - return x.FieldName - } - return "" -} - -func (x *GetIndexBuildProgressRequest) GetIndexName() string { +func (x *HasNamespaceRequest) GetNamespaceName() string { if x != nil { - return x.IndexName + return x.NamespaceName } return "" } -type GetIndexBuildProgressResponse struct { +type HasNamespaceResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - IndexedRows int64 `protobuf:"varint,2,opt,name=indexed_rows,json=indexedRows,proto3" json:"indexed_rows,omitempty"` - TotalRows int64 `protobuf:"varint,3,opt,name=total_rows,json=totalRows,proto3" json:"total_rows,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Value bool `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"` } -func (x *GetIndexBuildProgressResponse) Reset() { - *x = GetIndexBuildProgressResponse{} +func (x *HasNamespaceResponse) Reset() { + *x = HasNamespaceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[45] + mi := &file_milvus_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetIndexBuildProgressResponse) String() string { +func (x *HasNamespaceResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetIndexBuildProgressResponse) ProtoMessage() {} +func (*HasNamespaceResponse) ProtoMessage() {} -func (x *GetIndexBuildProgressResponse) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[45] +func (x *HasNamespaceResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4187,61 +4155,54 @@ func (x *GetIndexBuildProgressResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetIndexBuildProgressResponse.ProtoReflect.Descriptor instead. -func (*GetIndexBuildProgressResponse) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{45} +// Deprecated: Use HasNamespaceResponse.ProtoReflect.Descriptor instead. +func (*HasNamespaceResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{46} } -func (x *GetIndexBuildProgressResponse) GetStatus() *commonpb.Status { +func (x *HasNamespaceResponse) GetStatus() *commonpb.Status { if x != nil { return x.Status } return nil } -func (x *GetIndexBuildProgressResponse) GetIndexedRows() int64 { - if x != nil { - return x.IndexedRows - } - return 0 -} - -func (x *GetIndexBuildProgressResponse) GetTotalRows() int64 { +func (x *HasNamespaceResponse) GetValue() bool { if x != nil { - return x.TotalRows + return x.Value } - return 0 + return false } -type GetIndexStateRequest struct { +type GetNamespaceStatsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` // must + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // must - FieldName string `protobuf:"bytes,4,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` - IndexName string `protobuf:"bytes,5,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` // No need to set up for now @2021.06.30 + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + NamespaceName string `protobuf:"bytes,4,opt,name=namespace_name,json=namespaceName,proto3" json:"namespace_name,omitempty"` + Exact bool `protobuf:"varint,5,opt,name=exact,proto3" json:"exact,omitempty"` } -func (x *GetIndexStateRequest) Reset() { - *x = GetIndexStateRequest{} +func (x *GetNamespaceStatsRequest) Reset() { + *x = GetNamespaceStatsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[46] + mi := &file_milvus_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetIndexStateRequest) String() string { +func (x *GetNamespaceStatsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetIndexStateRequest) ProtoMessage() {} +func (*GetNamespaceStatsRequest) ProtoMessage() {} -func (x *GetIndexStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[46] +func (x *GetNamespaceStatsRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4252,73 +4213,73 @@ func (x *GetIndexStateRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetIndexStateRequest.ProtoReflect.Descriptor instead. -func (*GetIndexStateRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{46} +// Deprecated: Use GetNamespaceStatsRequest.ProtoReflect.Descriptor instead. +func (*GetNamespaceStatsRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{47} } -func (x *GetIndexStateRequest) GetBase() *commonpb.MsgBase { +func (x *GetNamespaceStatsRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *GetIndexStateRequest) GetDbName() string { +func (x *GetNamespaceStatsRequest) GetDbName() string { if x != nil { return x.DbName } return "" } -func (x *GetIndexStateRequest) GetCollectionName() string { +func (x *GetNamespaceStatsRequest) GetCollectionName() string { if x != nil { return x.CollectionName } return "" } -func (x *GetIndexStateRequest) GetFieldName() string { +func (x *GetNamespaceStatsRequest) GetNamespaceName() string { if x != nil { - return x.FieldName + return x.NamespaceName } return "" } -func (x *GetIndexStateRequest) GetIndexName() string { +func (x *GetNamespaceStatsRequest) GetExact() bool { if x != nil { - return x.IndexName + return x.Exact } - return "" + return false } -type GetIndexStateResponse struct { +type GetNamespaceStatsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - State commonpb.IndexState `protobuf:"varint,2,opt,name=state,proto3,enum=milvus.proto.common.IndexState" json:"state,omitempty"` - FailReason string `protobuf:"bytes,3,opt,name=fail_reason,json=failReason,proto3" json:"fail_reason,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + NamespaceName string `protobuf:"bytes,2,opt,name=namespace_name,json=namespaceName,proto3" json:"namespace_name,omitempty"` + Stats *NamespaceStats `protobuf:"bytes,3,opt,name=stats,proto3" json:"stats,omitempty"` } -func (x *GetIndexStateResponse) Reset() { - *x = GetIndexStateResponse{} +func (x *GetNamespaceStatsResponse) Reset() { + *x = GetNamespaceStatsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[47] + mi := &file_milvus_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetIndexStateResponse) String() string { +func (x *GetNamespaceStatsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetIndexStateResponse) ProtoMessage() {} +func (*GetNamespaceStatsResponse) ProtoMessage() {} -func (x *GetIndexStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[47] +func (x *GetNamespaceStatsResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4329,62 +4290,59 @@ func (x *GetIndexStateResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetIndexStateResponse.ProtoReflect.Descriptor instead. -func (*GetIndexStateResponse) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{47} +// Deprecated: Use GetNamespaceStatsResponse.ProtoReflect.Descriptor instead. +func (*GetNamespaceStatsResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{48} } -func (x *GetIndexStateResponse) GetStatus() *commonpb.Status { +func (x *GetNamespaceStatsResponse) GetStatus() *commonpb.Status { if x != nil { return x.Status } return nil } -func (x *GetIndexStateResponse) GetState() commonpb.IndexState { +func (x *GetNamespaceStatsResponse) GetNamespaceName() string { if x != nil { - return x.State + return x.NamespaceName } - return commonpb.IndexState(0) + return "" } -func (x *GetIndexStateResponse) GetFailReason() string { +func (x *GetNamespaceStatsResponse) GetStats() *NamespaceStats { if x != nil { - return x.FailReason + return x.Stats } - return "" + return nil } -type DropIndexRequest struct { +type DescribeSegmentRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` // must - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // must - // Deprecated: not be used in the milvus - FieldName string `protobuf:"bytes,4,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` - IndexName string `protobuf:"bytes,5,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` -} - -func (x *DropIndexRequest) Reset() { - *x = DropIndexRequest{} + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + CollectionID int64 `protobuf:"varint,2,opt,name=collectionID,proto3" json:"collectionID,omitempty"` + SegmentID int64 `protobuf:"varint,3,opt,name=segmentID,proto3" json:"segmentID,omitempty"` +} + +func (x *DescribeSegmentRequest) Reset() { + *x = DescribeSegmentRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[48] + mi := &file_milvus_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DropIndexRequest) String() string { +func (x *DescribeSegmentRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DropIndexRequest) ProtoMessage() {} +func (*DescribeSegmentRequest) ProtoMessage() {} -func (x *DropIndexRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[48] +func (x *DescribeSegmentRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4395,79 +4353,61 @@ func (x *DropIndexRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DropIndexRequest.ProtoReflect.Descriptor instead. -func (*DropIndexRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{48} +// Deprecated: Use DescribeSegmentRequest.ProtoReflect.Descriptor instead. +func (*DescribeSegmentRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{49} } -func (x *DropIndexRequest) GetBase() *commonpb.MsgBase { +func (x *DescribeSegmentRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *DropIndexRequest) GetDbName() string { - if x != nil { - return x.DbName - } - return "" -} - -func (x *DropIndexRequest) GetCollectionName() string { - if x != nil { - return x.CollectionName - } - return "" -} - -func (x *DropIndexRequest) GetFieldName() string { +func (x *DescribeSegmentRequest) GetCollectionID() int64 { if x != nil { - return x.FieldName + return x.CollectionID } - return "" + return 0 } -func (x *DropIndexRequest) GetIndexName() string { +func (x *DescribeSegmentRequest) GetSegmentID() int64 { if x != nil { - return x.IndexName + return x.SegmentID } - return "" + return 0 } -type InsertRequest struct { +type DescribeSegmentResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - PartitionName string `protobuf:"bytes,4,opt,name=partition_name,json=partitionName,proto3" json:"partition_name,omitempty"` - FieldsData []*schemapb.FieldData `protobuf:"bytes,5,rep,name=fields_data,json=fieldsData,proto3" json:"fields_data,omitempty"` - HashKeys []uint32 `protobuf:"varint,6,rep,packed,name=hash_keys,json=hashKeys,proto3" json:"hash_keys,omitempty"` - NumRows uint32 `protobuf:"varint,7,opt,name=num_rows,json=numRows,proto3" json:"num_rows,omitempty"` - SchemaTimestamp uint64 `protobuf:"varint,8,opt,name=schema_timestamp,json=schemaTimestamp,proto3" json:"schema_timestamp,omitempty"` - Namespace *string `protobuf:"bytes,9,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + IndexID int64 `protobuf:"varint,2,opt,name=indexID,proto3" json:"indexID,omitempty"` + BuildID int64 `protobuf:"varint,3,opt,name=buildID,proto3" json:"buildID,omitempty"` + EnableIndex bool `protobuf:"varint,4,opt,name=enable_index,json=enableIndex,proto3" json:"enable_index,omitempty"` + FieldID int64 `protobuf:"varint,5,opt,name=fieldID,proto3" json:"fieldID,omitempty"` } -func (x *InsertRequest) Reset() { - *x = InsertRequest{} +func (x *DescribeSegmentResponse) Reset() { + *x = DescribeSegmentResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[49] + mi := &file_milvus_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *InsertRequest) String() string { +func (x *DescribeSegmentResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*InsertRequest) ProtoMessage() {} +func (*DescribeSegmentResponse) ProtoMessage() {} -func (x *InsertRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[49] +func (x *DescribeSegmentResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4478,104 +4418,73 @@ func (x *InsertRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use InsertRequest.ProtoReflect.Descriptor instead. -func (*InsertRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{49} +// Deprecated: Use DescribeSegmentResponse.ProtoReflect.Descriptor instead. +func (*DescribeSegmentResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{50} } -func (x *InsertRequest) GetBase() *commonpb.MsgBase { +func (x *DescribeSegmentResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Base + return x.Status } return nil } -func (x *InsertRequest) GetDbName() string { - if x != nil { - return x.DbName - } - return "" -} - -func (x *InsertRequest) GetCollectionName() string { - if x != nil { - return x.CollectionName - } - return "" -} - -func (x *InsertRequest) GetPartitionName() string { - if x != nil { - return x.PartitionName - } - return "" -} - -func (x *InsertRequest) GetFieldsData() []*schemapb.FieldData { +func (x *DescribeSegmentResponse) GetIndexID() int64 { if x != nil { - return x.FieldsData + return x.IndexID } - return nil + return 0 } -func (x *InsertRequest) GetHashKeys() []uint32 { +func (x *DescribeSegmentResponse) GetBuildID() int64 { if x != nil { - return x.HashKeys + return x.BuildID } - return nil + return 0 } -func (x *InsertRequest) GetNumRows() uint32 { +func (x *DescribeSegmentResponse) GetEnableIndex() bool { if x != nil { - return x.NumRows + return x.EnableIndex } - return 0 + return false } -func (x *InsertRequest) GetSchemaTimestamp() uint64 { +func (x *DescribeSegmentResponse) GetFieldID() int64 { if x != nil { - return x.SchemaTimestamp + return x.FieldID } return 0 } -func (x *InsertRequest) GetNamespace() string { - if x != nil && x.Namespace != nil { - return *x.Namespace - } - return "" -} - -type AddCollectionFieldRequest struct { +type ShowSegmentsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - CollectionID int64 `protobuf:"varint,4,opt,name=collectionID,proto3" json:"collectionID,omitempty"` - // The serialized `schema.FieldSchema` - Schema []byte `protobuf:"bytes,5,opt,name=schema,proto3" json:"schema,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + CollectionID int64 `protobuf:"varint,2,opt,name=collectionID,proto3" json:"collectionID,omitempty"` + PartitionID int64 `protobuf:"varint,3,opt,name=partitionID,proto3" json:"partitionID,omitempty"` } -func (x *AddCollectionFieldRequest) Reset() { - *x = AddCollectionFieldRequest{} +func (x *ShowSegmentsRequest) Reset() { + *x = ShowSegmentsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[50] + mi := &file_milvus_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AddCollectionFieldRequest) String() string { +func (x *ShowSegmentsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AddCollectionFieldRequest) ProtoMessage() {} +func (*ShowSegmentsRequest) ProtoMessage() {} -func (x *AddCollectionFieldRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[50] +func (x *ShowSegmentsRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4586,75 +4495,58 @@ func (x *AddCollectionFieldRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AddCollectionFieldRequest.ProtoReflect.Descriptor instead. -func (*AddCollectionFieldRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{50} +// Deprecated: Use ShowSegmentsRequest.ProtoReflect.Descriptor instead. +func (*ShowSegmentsRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{51} } -func (x *AddCollectionFieldRequest) GetBase() *commonpb.MsgBase { +func (x *ShowSegmentsRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *AddCollectionFieldRequest) GetDbName() string { - if x != nil { - return x.DbName - } - return "" -} - -func (x *AddCollectionFieldRequest) GetCollectionName() string { - if x != nil { - return x.CollectionName - } - return "" -} - -func (x *AddCollectionFieldRequest) GetCollectionID() int64 { +func (x *ShowSegmentsRequest) GetCollectionID() int64 { if x != nil { return x.CollectionID } return 0 } -func (x *AddCollectionFieldRequest) GetSchema() []byte { +func (x *ShowSegmentsRequest) GetPartitionID() int64 { if x != nil { - return x.Schema + return x.PartitionID } - return nil + return 0 } -type AddCollectionStructFieldRequest struct { +type ShowSegmentsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - CollectionID int64 `protobuf:"varint,4,opt,name=collectionID,proto3" json:"collectionID,omitempty"` - StructArrayFieldSchema *schemapb.StructArrayFieldSchema `protobuf:"bytes,5,opt,name=struct_array_field_schema,json=structArrayFieldSchema,proto3" json:"struct_array_field_schema,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + SegmentIDs []int64 `protobuf:"varint,2,rep,packed,name=segmentIDs,proto3" json:"segmentIDs,omitempty"` } -func (x *AddCollectionStructFieldRequest) Reset() { - *x = AddCollectionStructFieldRequest{} +func (x *ShowSegmentsResponse) Reset() { + *x = ShowSegmentsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[51] + mi := &file_milvus_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AddCollectionStructFieldRequest) String() string { +func (x *ShowSegmentsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AddCollectionStructFieldRequest) ProtoMessage() {} +func (*ShowSegmentsResponse) ProtoMessage() {} -func (x *AddCollectionStructFieldRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[51] +func (x *ShowSegmentsResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4665,75 +4557,61 @@ func (x *AddCollectionStructFieldRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AddCollectionStructFieldRequest.ProtoReflect.Descriptor instead. -func (*AddCollectionStructFieldRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{51} +// Deprecated: Use ShowSegmentsResponse.ProtoReflect.Descriptor instead. +func (*ShowSegmentsResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{52} } -func (x *AddCollectionStructFieldRequest) GetBase() *commonpb.MsgBase { +func (x *ShowSegmentsResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Base + return x.Status } return nil } -func (x *AddCollectionStructFieldRequest) GetDbName() string { - if x != nil { - return x.DbName - } - return "" -} - -func (x *AddCollectionStructFieldRequest) GetCollectionName() string { - if x != nil { - return x.CollectionName - } - return "" -} - -func (x *AddCollectionStructFieldRequest) GetCollectionID() int64 { - if x != nil { - return x.CollectionID - } - return 0 -} - -func (x *AddCollectionStructFieldRequest) GetStructArrayFieldSchema() *schemapb.StructArrayFieldSchema { +func (x *ShowSegmentsResponse) GetSegmentIDs() []int64 { if x != nil { - return x.StructArrayFieldSchema + return x.SegmentIDs } return nil } -type AddCollectionFunctionRequest struct { +// Create index for vector datas +type CreateIndexRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - CollectionID int64 `protobuf:"varint,4,opt,name=collectionID,proto3" json:"collectionID,omitempty"` - FunctionSchema *schemapb.FunctionSchema `protobuf:"bytes,5,opt,name=functionSchema,proto3" json:"functionSchema,omitempty"` + // Not useful for now + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + // The particular collection name you want to create index. + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + // The vector field name in this particular collection + FieldName string `protobuf:"bytes,4,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` + // Support keys: index_type,metric_type, params. Different index_type may has different params. + ExtraParams []*commonpb.KeyValuePair `protobuf:"bytes,5,rep,name=extra_params,json=extraParams,proto3" json:"extra_params,omitempty"` + // Version before 2.0.2 doesn't contain index_name, we use default index name. + IndexName string `protobuf:"bytes,6,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` } -func (x *AddCollectionFunctionRequest) Reset() { - *x = AddCollectionFunctionRequest{} +func (x *CreateIndexRequest) Reset() { + *x = CreateIndexRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[52] + mi := &file_milvus_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AddCollectionFunctionRequest) String() string { +func (x *CreateIndexRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AddCollectionFunctionRequest) ProtoMessage() {} +func (*CreateIndexRequest) ProtoMessage() {} -func (x *AddCollectionFunctionRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[52] +func (x *CreateIndexRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4744,47 +4622,55 @@ func (x *AddCollectionFunctionRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AddCollectionFunctionRequest.ProtoReflect.Descriptor instead. -func (*AddCollectionFunctionRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{52} +// Deprecated: Use CreateIndexRequest.ProtoReflect.Descriptor instead. +func (*CreateIndexRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{53} } -func (x *AddCollectionFunctionRequest) GetBase() *commonpb.MsgBase { +func (x *CreateIndexRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *AddCollectionFunctionRequest) GetDbName() string { +func (x *CreateIndexRequest) GetDbName() string { if x != nil { return x.DbName } return "" } -func (x *AddCollectionFunctionRequest) GetCollectionName() string { +func (x *CreateIndexRequest) GetCollectionName() string { if x != nil { return x.CollectionName } return "" } -func (x *AddCollectionFunctionRequest) GetCollectionID() int64 { +func (x *CreateIndexRequest) GetFieldName() string { if x != nil { - return x.CollectionID + return x.FieldName } - return 0 + return "" } -func (x *AddCollectionFunctionRequest) GetFunctionSchema() *schemapb.FunctionSchema { +func (x *CreateIndexRequest) GetExtraParams() []*commonpb.KeyValuePair { if x != nil { - return x.FunctionSchema + return x.ExtraParams } return nil } -type AlterCollectionFunctionRequest struct { +func (x *CreateIndexRequest) GetIndexName() string { + if x != nil { + return x.IndexName + } + return "" +} + +// Alter index +type AlterIndexRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -4792,28 +4678,28 @@ type AlterCollectionFunctionRequest struct { Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - CollectionID int64 `protobuf:"varint,4,opt,name=collectionID,proto3" json:"collectionID,omitempty"` - FunctionName string `protobuf:"bytes,5,opt,name=function_name,json=functionName,proto3" json:"function_name,omitempty"` - FunctionSchema *schemapb.FunctionSchema `protobuf:"bytes,6,opt,name=functionSchema,proto3" json:"functionSchema,omitempty"` + IndexName string `protobuf:"bytes,4,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` + ExtraParams []*commonpb.KeyValuePair `protobuf:"bytes,5,rep,name=extra_params,json=extraParams,proto3" json:"extra_params,omitempty"` + DeleteKeys []string `protobuf:"bytes,6,rep,name=delete_keys,json=deleteKeys,proto3" json:"delete_keys,omitempty"` } -func (x *AlterCollectionFunctionRequest) Reset() { - *x = AlterCollectionFunctionRequest{} +func (x *AlterIndexRequest) Reset() { + *x = AlterIndexRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[53] + mi := &file_milvus_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AlterCollectionFunctionRequest) String() string { +func (x *AlterIndexRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AlterCollectionFunctionRequest) ProtoMessage() {} +func (*AlterIndexRequest) ProtoMessage() {} -func (x *AlterCollectionFunctionRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[53] +func (x *AlterIndexRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4824,82 +4710,89 @@ func (x *AlterCollectionFunctionRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AlterCollectionFunctionRequest.ProtoReflect.Descriptor instead. -func (*AlterCollectionFunctionRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{53} +// Deprecated: Use AlterIndexRequest.ProtoReflect.Descriptor instead. +func (*AlterIndexRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{54} } -func (x *AlterCollectionFunctionRequest) GetBase() *commonpb.MsgBase { +func (x *AlterIndexRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *AlterCollectionFunctionRequest) GetDbName() string { +func (x *AlterIndexRequest) GetDbName() string { if x != nil { return x.DbName } return "" } -func (x *AlterCollectionFunctionRequest) GetCollectionName() string { +func (x *AlterIndexRequest) GetCollectionName() string { if x != nil { return x.CollectionName } return "" } -func (x *AlterCollectionFunctionRequest) GetCollectionID() int64 { +func (x *AlterIndexRequest) GetIndexName() string { if x != nil { - return x.CollectionID + return x.IndexName } - return 0 + return "" } -func (x *AlterCollectionFunctionRequest) GetFunctionName() string { +func (x *AlterIndexRequest) GetExtraParams() []*commonpb.KeyValuePair { if x != nil { - return x.FunctionName + return x.ExtraParams } - return "" + return nil } -func (x *AlterCollectionFunctionRequest) GetFunctionSchema() *schemapb.FunctionSchema { +func (x *AlterIndexRequest) GetDeleteKeys() []string { if x != nil { - return x.FunctionSchema + return x.DeleteKeys } return nil } -type DropCollectionFunctionRequest struct { +// Get created index information. +// Current release of Milvus only supports showing latest built index. +type DescribeIndexRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - CollectionID int64 `protobuf:"varint,4,opt,name=collectionID,proto3" json:"collectionID,omitempty"` - FunctionName string `protobuf:"bytes,5,opt,name=function_name,json=functionName,proto3" json:"function_name,omitempty"` + // Not useful for now + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + // The particular collection name in Milvus + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + // The vector field name in this particular collection + FieldName string `protobuf:"bytes,4,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` + // No need to set up for now @2021.06.30 + IndexName string `protobuf:"bytes,5,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` + Timestamp uint64 `protobuf:"varint,6,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } -func (x *DropCollectionFunctionRequest) Reset() { - *x = DropCollectionFunctionRequest{} +func (x *DescribeIndexRequest) Reset() { + *x = DescribeIndexRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[54] + mi := &file_milvus_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DropCollectionFunctionRequest) String() string { +func (x *DescribeIndexRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DropCollectionFunctionRequest) ProtoMessage() {} +func (*DescribeIndexRequest) ProtoMessage() {} -func (x *DropCollectionFunctionRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[54] +func (x *DescribeIndexRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4910,85 +4803,97 @@ func (x *DropCollectionFunctionRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DropCollectionFunctionRequest.ProtoReflect.Descriptor instead. -func (*DropCollectionFunctionRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{54} +// Deprecated: Use DescribeIndexRequest.ProtoReflect.Descriptor instead. +func (*DescribeIndexRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{55} } -func (x *DropCollectionFunctionRequest) GetBase() *commonpb.MsgBase { +func (x *DescribeIndexRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *DropCollectionFunctionRequest) GetDbName() string { +func (x *DescribeIndexRequest) GetDbName() string { if x != nil { return x.DbName } return "" } -func (x *DropCollectionFunctionRequest) GetCollectionName() string { +func (x *DescribeIndexRequest) GetCollectionName() string { if x != nil { return x.CollectionName } return "" } -func (x *DropCollectionFunctionRequest) GetCollectionID() int64 { +func (x *DescribeIndexRequest) GetFieldName() string { if x != nil { - return x.CollectionID + return x.FieldName } - return 0 + return "" } -func (x *DropCollectionFunctionRequest) GetFunctionName() string { +func (x *DescribeIndexRequest) GetIndexName() string { if x != nil { - return x.FunctionName + return x.IndexName } return "" } -type UpsertRequest struct { +func (x *DescribeIndexRequest) GetTimestamp() uint64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +// Index informations +type IndexDescription struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - PartitionName string `protobuf:"bytes,4,opt,name=partition_name,json=partitionName,proto3" json:"partition_name,omitempty"` - FieldsData []*schemapb.FieldData `protobuf:"bytes,5,rep,name=fields_data,json=fieldsData,proto3" json:"fields_data,omitempty"` - HashKeys []uint32 `protobuf:"varint,6,rep,packed,name=hash_keys,json=hashKeys,proto3" json:"hash_keys,omitempty"` - NumRows uint32 `protobuf:"varint,7,opt,name=num_rows,json=numRows,proto3" json:"num_rows,omitempty"` - SchemaTimestamp uint64 `protobuf:"varint,8,opt,name=schema_timestamp,json=schemaTimestamp,proto3" json:"schema_timestamp,omitempty"` - PartialUpdate bool `protobuf:"varint,9,opt,name=partial_update,json=partialUpdate,proto3" json:"partial_update,omitempty"` - Namespace *string `protobuf:"bytes,10,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` - // field_ops carries per-field FieldPartialUpdateOp directives describing - // how each FieldData should be merged during a partial upsert. Ops are - // matched to fields_data entries by field_name. A non-REPLACE op implies - // partial_update=true regardless of the partial_update flag. - FieldOps []*schemapb.FieldPartialUpdateOp `protobuf:"bytes,11,rep,name=field_ops,json=fieldOps,proto3" json:"field_ops,omitempty"` + // Index name + IndexName string `protobuf:"bytes,1,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` + // Index id + IndexID int64 `protobuf:"varint,2,opt,name=indexID,proto3" json:"indexID,omitempty"` + // Will return index_type, metric_type, params(like nlist). + Params []*commonpb.KeyValuePair `protobuf:"bytes,3,rep,name=params,proto3" json:"params,omitempty"` + // The vector field name + FieldName string `protobuf:"bytes,4,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` + // index build progress + IndexedRows int64 `protobuf:"varint,5,opt,name=indexed_rows,json=indexedRows,proto3" json:"indexed_rows,omitempty"` + TotalRows int64 `protobuf:"varint,6,opt,name=total_rows,json=totalRows,proto3" json:"total_rows,omitempty"` + // index state + State commonpb.IndexState `protobuf:"varint,7,opt,name=state,proto3,enum=milvus.proto.common.IndexState" json:"state,omitempty"` + IndexStateFailReason string `protobuf:"bytes,8,opt,name=index_state_fail_reason,json=indexStateFailReason,proto3" json:"index_state_fail_reason,omitempty"` + PendingIndexRows int64 `protobuf:"varint,9,opt,name=pending_index_rows,json=pendingIndexRows,proto3" json:"pending_index_rows,omitempty"` + // minimal index version for current index + MinIndexVersion int32 `protobuf:"varint,10,opt,name=min_index_version,json=minIndexVersion,proto3" json:"min_index_version,omitempty"` + // maximum index version for current index + MaxIndexVersion int32 `protobuf:"varint,11,opt,name=max_index_version,json=maxIndexVersion,proto3" json:"max_index_version,omitempty"` } -func (x *UpsertRequest) Reset() { - *x = UpsertRequest{} +func (x *IndexDescription) Reset() { + *x = IndexDescription{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[55] + mi := &file_milvus_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UpsertRequest) String() string { +func (x *IndexDescription) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UpsertRequest) ProtoMessage() {} +func (*IndexDescription) ProtoMessage() {} -func (x *UpsertRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[55] +func (x *IndexDescription) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4999,121 +4904,117 @@ func (x *UpsertRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UpsertRequest.ProtoReflect.Descriptor instead. -func (*UpsertRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{55} +// Deprecated: Use IndexDescription.ProtoReflect.Descriptor instead. +func (*IndexDescription) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{56} } -func (x *UpsertRequest) GetBase() *commonpb.MsgBase { +func (x *IndexDescription) GetIndexName() string { if x != nil { - return x.Base + return x.IndexName } - return nil + return "" } -func (x *UpsertRequest) GetDbName() string { +func (x *IndexDescription) GetIndexID() int64 { if x != nil { - return x.DbName + return x.IndexID } - return "" + return 0 } -func (x *UpsertRequest) GetCollectionName() string { +func (x *IndexDescription) GetParams() []*commonpb.KeyValuePair { if x != nil { - return x.CollectionName + return x.Params } - return "" + return nil } -func (x *UpsertRequest) GetPartitionName() string { +func (x *IndexDescription) GetFieldName() string { if x != nil { - return x.PartitionName + return x.FieldName } return "" } -func (x *UpsertRequest) GetFieldsData() []*schemapb.FieldData { +func (x *IndexDescription) GetIndexedRows() int64 { if x != nil { - return x.FieldsData + return x.IndexedRows } - return nil + return 0 } -func (x *UpsertRequest) GetHashKeys() []uint32 { +func (x *IndexDescription) GetTotalRows() int64 { if x != nil { - return x.HashKeys + return x.TotalRows } - return nil + return 0 } -func (x *UpsertRequest) GetNumRows() uint32 { +func (x *IndexDescription) GetState() commonpb.IndexState { if x != nil { - return x.NumRows + return x.State } - return 0 + return commonpb.IndexState(0) } -func (x *UpsertRequest) GetSchemaTimestamp() uint64 { +func (x *IndexDescription) GetIndexStateFailReason() string { if x != nil { - return x.SchemaTimestamp + return x.IndexStateFailReason } - return 0 + return "" } -func (x *UpsertRequest) GetPartialUpdate() bool { +func (x *IndexDescription) GetPendingIndexRows() int64 { if x != nil { - return x.PartialUpdate + return x.PendingIndexRows } - return false + return 0 } -func (x *UpsertRequest) GetNamespace() string { - if x != nil && x.Namespace != nil { - return *x.Namespace +func (x *IndexDescription) GetMinIndexVersion() int32 { + if x != nil { + return x.MinIndexVersion } - return "" + return 0 } -func (x *UpsertRequest) GetFieldOps() []*schemapb.FieldPartialUpdateOp { +func (x *IndexDescription) GetMaxIndexVersion() int32 { if x != nil { - return x.FieldOps + return x.MaxIndexVersion } - return nil + return 0 } -type MutationResult struct { +// Describe index response +type DescribeIndexResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - IDs *schemapb.IDs `protobuf:"bytes,2,opt,name=IDs,proto3" json:"IDs,omitempty"` // required for insert, delete, upsert - SuccIndex []uint32 `protobuf:"varint,3,rep,packed,name=succ_index,json=succIndex,proto3" json:"succ_index,omitempty"` // error indexes indicate - ErrIndex []uint32 `protobuf:"varint,4,rep,packed,name=err_index,json=errIndex,proto3" json:"err_index,omitempty"` // error indexes indicate - Acknowledged bool `protobuf:"varint,5,opt,name=acknowledged,proto3" json:"acknowledged,omitempty"` - InsertCnt int64 `protobuf:"varint,6,opt,name=insert_cnt,json=insertCnt,proto3" json:"insert_cnt,omitempty"` - DeleteCnt int64 `protobuf:"varint,7,opt,name=delete_cnt,json=deleteCnt,proto3" json:"delete_cnt,omitempty"` - UpsertCnt int64 `protobuf:"varint,8,opt,name=upsert_cnt,json=upsertCnt,proto3" json:"upsert_cnt,omitempty"` - Timestamp uint64 `protobuf:"varint,9,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + // Response status + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + // All index informations, for now only return tha latest index you created for the collection. + IndexDescriptions []*IndexDescription `protobuf:"bytes,2,rep,name=index_descriptions,json=indexDescriptions,proto3" json:"index_descriptions,omitempty"` } -func (x *MutationResult) Reset() { - *x = MutationResult{} +func (x *DescribeIndexResponse) Reset() { + *x = DescribeIndexResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[56] + mi := &file_milvus_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MutationResult) String() string { +func (x *DescribeIndexResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MutationResult) ProtoMessage() {} +func (*DescribeIndexResponse) ProtoMessage() {} -func (x *MutationResult) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[56] +func (x *DescribeIndexResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5124,106 +5025,59 @@ func (x *MutationResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MutationResult.ProtoReflect.Descriptor instead. -func (*MutationResult) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{56} +// Deprecated: Use DescribeIndexResponse.ProtoReflect.Descriptor instead. +func (*DescribeIndexResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{57} } -func (x *MutationResult) GetStatus() *commonpb.Status { +func (x *DescribeIndexResponse) GetStatus() *commonpb.Status { if x != nil { return x.Status } return nil } -func (x *MutationResult) GetIDs() *schemapb.IDs { - if x != nil { - return x.IDs - } - return nil -} - -func (x *MutationResult) GetSuccIndex() []uint32 { - if x != nil { - return x.SuccIndex - } - return nil -} - -func (x *MutationResult) GetErrIndex() []uint32 { +func (x *DescribeIndexResponse) GetIndexDescriptions() []*IndexDescription { if x != nil { - return x.ErrIndex + return x.IndexDescriptions } return nil } -func (x *MutationResult) GetAcknowledged() bool { - if x != nil { - return x.Acknowledged - } - return false -} - -func (x *MutationResult) GetInsertCnt() int64 { - if x != nil { - return x.InsertCnt - } - return 0 -} - -func (x *MutationResult) GetDeleteCnt() int64 { - if x != nil { - return x.DeleteCnt - } - return 0 -} - -func (x *MutationResult) GetUpsertCnt() int64 { - if x != nil { - return x.UpsertCnt - } - return 0 -} - -func (x *MutationResult) GetTimestamp() uint64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -type DeleteRequest struct { +// Get index building progress +type GetIndexBuildProgressRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - PartitionName string `protobuf:"bytes,4,opt,name=partition_name,json=partitionName,proto3" json:"partition_name,omitempty"` - Expr string `protobuf:"bytes,5,opt,name=expr,proto3" json:"expr,omitempty"` - HashKeys []uint32 `protobuf:"varint,6,rep,packed,name=hash_keys,json=hashKeys,proto3" json:"hash_keys,omitempty"` - ConsistencyLevel commonpb.ConsistencyLevel `protobuf:"varint,7,opt,name=consistency_level,json=consistencyLevel,proto3,enum=milvus.proto.common.ConsistencyLevel" json:"consistency_level,omitempty"` - ExprTemplateValues map[string]*schemapb.TemplateValue `protobuf:"bytes,8,rep,name=expr_template_values,json=exprTemplateValues,proto3" json:"expr_template_values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Not useful for now + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + // The collection name in milvus + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + // The vector field name in this collection + FieldName string `protobuf:"bytes,4,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` + // Not useful for now + IndexName string `protobuf:"bytes,5,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` } -func (x *DeleteRequest) Reset() { - *x = DeleteRequest{} +func (x *GetIndexBuildProgressRequest) Reset() { + *x = GetIndexBuildProgressRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[57] + mi := &file_milvus_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeleteRequest) String() string { +func (x *GetIndexBuildProgressRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeleteRequest) ProtoMessage() {} +func (*GetIndexBuildProgressRequest) ProtoMessage() {} -func (x *DeleteRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[57] +func (x *GetIndexBuildProgressRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5234,99 +5088,73 @@ func (x *DeleteRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeleteRequest.ProtoReflect.Descriptor instead. -func (*DeleteRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{57} +// Deprecated: Use GetIndexBuildProgressRequest.ProtoReflect.Descriptor instead. +func (*GetIndexBuildProgressRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{58} } -func (x *DeleteRequest) GetBase() *commonpb.MsgBase { +func (x *GetIndexBuildProgressRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *DeleteRequest) GetDbName() string { +func (x *GetIndexBuildProgressRequest) GetDbName() string { if x != nil { return x.DbName } return "" } -func (x *DeleteRequest) GetCollectionName() string { +func (x *GetIndexBuildProgressRequest) GetCollectionName() string { if x != nil { return x.CollectionName } return "" } -func (x *DeleteRequest) GetPartitionName() string { +func (x *GetIndexBuildProgressRequest) GetFieldName() string { if x != nil { - return x.PartitionName + return x.FieldName } return "" } -func (x *DeleteRequest) GetExpr() string { +func (x *GetIndexBuildProgressRequest) GetIndexName() string { if x != nil { - return x.Expr + return x.IndexName } return "" } -func (x *DeleteRequest) GetHashKeys() []uint32 { - if x != nil { - return x.HashKeys - } - return nil -} - -func (x *DeleteRequest) GetConsistencyLevel() commonpb.ConsistencyLevel { - if x != nil { - return x.ConsistencyLevel - } - return commonpb.ConsistencyLevel(0) -} - -func (x *DeleteRequest) GetExprTemplateValues() map[string]*schemapb.TemplateValue { - if x != nil { - return x.ExprTemplateValues - } - return nil -} - -type SubSearchRequest struct { +type GetIndexBuildProgressResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Dsl string `protobuf:"bytes,1,opt,name=dsl,proto3" json:"dsl,omitempty"` // must - // serialized `PlaceholderGroup` - PlaceholderGroup []byte `protobuf:"bytes,2,opt,name=placeholder_group,json=placeholderGroup,proto3" json:"placeholder_group,omitempty"` // must - DslType commonpb.DslType `protobuf:"varint,3,opt,name=dsl_type,json=dslType,proto3,enum=milvus.proto.common.DslType" json:"dsl_type,omitempty"` // must - SearchParams []*commonpb.KeyValuePair `protobuf:"bytes,4,rep,name=search_params,json=searchParams,proto3" json:"search_params,omitempty"` // must - Nq int64 `protobuf:"varint,5,opt,name=nq,proto3" json:"nq,omitempty"` - ExprTemplateValues map[string]*schemapb.TemplateValue `protobuf:"bytes,6,rep,name=expr_template_values,json=exprTemplateValues,proto3" json:"expr_template_values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Namespace *string `protobuf:"bytes,7,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + IndexedRows int64 `protobuf:"varint,2,opt,name=indexed_rows,json=indexedRows,proto3" json:"indexed_rows,omitempty"` + TotalRows int64 `protobuf:"varint,3,opt,name=total_rows,json=totalRows,proto3" json:"total_rows,omitempty"` } -func (x *SubSearchRequest) Reset() { - *x = SubSearchRequest{} +func (x *GetIndexBuildProgressResponse) Reset() { + *x = GetIndexBuildProgressResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[58] + mi := &file_milvus_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SubSearchRequest) String() string { +func (x *GetIndexBuildProgressResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SubSearchRequest) ProtoMessage() {} +func (*GetIndexBuildProgressResponse) ProtoMessage() {} -func (x *SubSearchRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[58] +func (x *GetIndexBuildProgressResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5337,61 +5165,33 @@ func (x *SubSearchRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SubSearchRequest.ProtoReflect.Descriptor instead. -func (*SubSearchRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{58} +// Deprecated: Use GetIndexBuildProgressResponse.ProtoReflect.Descriptor instead. +func (*GetIndexBuildProgressResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{59} } -func (x *SubSearchRequest) GetDsl() string { +func (x *GetIndexBuildProgressResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Dsl + return x.Status } - return "" + return nil } -func (x *SubSearchRequest) GetPlaceholderGroup() []byte { +func (x *GetIndexBuildProgressResponse) GetIndexedRows() int64 { if x != nil { - return x.PlaceholderGroup + return x.IndexedRows } - return nil + return 0 } -func (x *SubSearchRequest) GetDslType() commonpb.DslType { +func (x *GetIndexBuildProgressResponse) GetTotalRows() int64 { if x != nil { - return x.DslType - } - return commonpb.DslType(0) -} - -func (x *SubSearchRequest) GetSearchParams() []*commonpb.KeyValuePair { - if x != nil { - return x.SearchParams - } - return nil -} - -func (x *SubSearchRequest) GetNq() int64 { - if x != nil { - return x.Nq + return x.TotalRows } return 0 } -func (x *SubSearchRequest) GetExprTemplateValues() map[string]*schemapb.TemplateValue { - if x != nil { - return x.ExprTemplateValues - } - return nil -} - -func (x *SubSearchRequest) GetNamespace() string { - if x != nil && x.Namespace != nil { - return *x.Namespace - } - return "" -} - -type SearchRequest struct { +type GetIndexStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -5399,49 +5199,27 @@ type SearchRequest struct { Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` // must DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // must - PartitionNames []string `protobuf:"bytes,4,rep,name=partition_names,json=partitionNames,proto3" json:"partition_names,omitempty"` // must - Dsl string `protobuf:"bytes,5,opt,name=dsl,proto3" json:"dsl,omitempty"` // must - // Types that are assignable to SearchInput: - // - // *SearchRequest_PlaceholderGroup - // *SearchRequest_Ids - SearchInput isSearchRequest_SearchInput `protobuf_oneof:"search_input"` - DslType commonpb.DslType `protobuf:"varint,7,opt,name=dsl_type,json=dslType,proto3,enum=milvus.proto.common.DslType" json:"dsl_type,omitempty"` // must - OutputFields []string `protobuf:"bytes,8,rep,name=output_fields,json=outputFields,proto3" json:"output_fields,omitempty"` - SearchParams []*commonpb.KeyValuePair `protobuf:"bytes,9,rep,name=search_params,json=searchParams,proto3" json:"search_params,omitempty"` // must - TravelTimestamp uint64 `protobuf:"varint,10,opt,name=travel_timestamp,json=travelTimestamp,proto3" json:"travel_timestamp,omitempty"` - GuaranteeTimestamp uint64 `protobuf:"varint,11,opt,name=guarantee_timestamp,json=guaranteeTimestamp,proto3" json:"guarantee_timestamp,omitempty"` // guarantee_timestamp - Nq int64 `protobuf:"varint,12,opt,name=nq,proto3" json:"nq,omitempty"` - NotReturnAllMeta bool `protobuf:"varint,13,opt,name=not_return_all_meta,json=notReturnAllMeta,proto3" json:"not_return_all_meta,omitempty"` - ConsistencyLevel commonpb.ConsistencyLevel `protobuf:"varint,14,opt,name=consistency_level,json=consistencyLevel,proto3,enum=milvus.proto.common.ConsistencyLevel" json:"consistency_level,omitempty"` - UseDefaultConsistency bool `protobuf:"varint,15,opt,name=use_default_consistency,json=useDefaultConsistency,proto3" json:"use_default_consistency,omitempty"` - // Deprecated: Marked as deprecated in milvus.proto. - SearchByPrimaryKeys bool `protobuf:"varint,16,opt,name=search_by_primary_keys,json=searchByPrimaryKeys,proto3" json:"search_by_primary_keys,omitempty"` // use search_input instead - SubReqs []*SubSearchRequest `protobuf:"bytes,17,rep,name=sub_reqs,json=subReqs,proto3" json:"sub_reqs,omitempty"` - ExprTemplateValues map[string]*schemapb.TemplateValue `protobuf:"bytes,18,rep,name=expr_template_values,json=exprTemplateValues,proto3" json:"expr_template_values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - FunctionScore *schemapb.FunctionScore `protobuf:"bytes,19,opt,name=function_score,json=functionScore,proto3" json:"function_score,omitempty"` - Namespace *string `protobuf:"bytes,20,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` - Highlighter *commonpb.Highlighter `protobuf:"bytes,21,opt,name=highlighter,proto3" json:"highlighter,omitempty"` - SearchAggregation *commonpb.SearchAggregationSpec `protobuf:"bytes,23,opt,name=search_aggregation,json=searchAggregation,proto3" json:"search_aggregation,omitempty"` + FieldName string `protobuf:"bytes,4,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` + IndexName string `protobuf:"bytes,5,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` // No need to set up for now @2021.06.30 } -func (x *SearchRequest) Reset() { - *x = SearchRequest{} +func (x *GetIndexStateRequest) Reset() { + *x = GetIndexStateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[59] + mi := &file_milvus_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SearchRequest) String() string { +func (x *GetIndexStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SearchRequest) ProtoMessage() {} +func (*GetIndexStateRequest) ProtoMessage() {} -func (x *SearchRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[59] +func (x *GetIndexStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5452,223 +5230,222 @@ func (x *SearchRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SearchRequest.ProtoReflect.Descriptor instead. -func (*SearchRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{59} +// Deprecated: Use GetIndexStateRequest.ProtoReflect.Descriptor instead. +func (*GetIndexStateRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{60} } -func (x *SearchRequest) GetBase() *commonpb.MsgBase { +func (x *GetIndexStateRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *SearchRequest) GetDbName() string { +func (x *GetIndexStateRequest) GetDbName() string { if x != nil { return x.DbName } return "" } -func (x *SearchRequest) GetCollectionName() string { +func (x *GetIndexStateRequest) GetCollectionName() string { if x != nil { return x.CollectionName } return "" } -func (x *SearchRequest) GetPartitionNames() []string { +func (x *GetIndexStateRequest) GetFieldName() string { if x != nil { - return x.PartitionNames + return x.FieldName } - return nil + return "" } -func (x *SearchRequest) GetDsl() string { +func (x *GetIndexStateRequest) GetIndexName() string { if x != nil { - return x.Dsl + return x.IndexName } return "" } -func (m *SearchRequest) GetSearchInput() isSearchRequest_SearchInput { - if m != nil { - return m.SearchInput - } - return nil +type GetIndexStateResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + State commonpb.IndexState `protobuf:"varint,2,opt,name=state,proto3,enum=milvus.proto.common.IndexState" json:"state,omitempty"` + FailReason string `protobuf:"bytes,3,opt,name=fail_reason,json=failReason,proto3" json:"fail_reason,omitempty"` } -func (x *SearchRequest) GetPlaceholderGroup() []byte { - if x, ok := x.GetSearchInput().(*SearchRequest_PlaceholderGroup); ok { - return x.PlaceholderGroup +func (x *GetIndexStateResponse) Reset() { + *x = GetIndexStateResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *SearchRequest) GetIds() *schemapb.IDs { - if x, ok := x.GetSearchInput().(*SearchRequest_Ids); ok { - return x.Ids - } - return nil +func (x *GetIndexStateResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *SearchRequest) GetDslType() commonpb.DslType { - if x != nil { - return x.DslType +func (*GetIndexStateResponse) ProtoMessage() {} + +func (x *GetIndexStateResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return commonpb.DslType(0) + return mi.MessageOf(x) } -func (x *SearchRequest) GetOutputFields() []string { - if x != nil { - return x.OutputFields - } - return nil +// Deprecated: Use GetIndexStateResponse.ProtoReflect.Descriptor instead. +func (*GetIndexStateResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{61} } -func (x *SearchRequest) GetSearchParams() []*commonpb.KeyValuePair { +func (x *GetIndexStateResponse) GetStatus() *commonpb.Status { if x != nil { - return x.SearchParams + return x.Status } return nil } -func (x *SearchRequest) GetTravelTimestamp() uint64 { +func (x *GetIndexStateResponse) GetState() commonpb.IndexState { if x != nil { - return x.TravelTimestamp + return x.State } - return 0 + return commonpb.IndexState(0) } -func (x *SearchRequest) GetGuaranteeTimestamp() uint64 { +func (x *GetIndexStateResponse) GetFailReason() string { if x != nil { - return x.GuaranteeTimestamp + return x.FailReason } - return 0 + return "" } -func (x *SearchRequest) GetNq() int64 { - if x != nil { - return x.Nq - } - return 0 -} +type DropIndexRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *SearchRequest) GetNotReturnAllMeta() bool { - if x != nil { - return x.NotReturnAllMeta - } - return false + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` // must + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // must + // Deprecated: not be used in the milvus + FieldName string `protobuf:"bytes,4,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` + IndexName string `protobuf:"bytes,5,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` } -func (x *SearchRequest) GetConsistencyLevel() commonpb.ConsistencyLevel { - if x != nil { - return x.ConsistencyLevel +func (x *DropIndexRequest) Reset() { + *x = DropIndexRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return commonpb.ConsistencyLevel(0) } -func (x *SearchRequest) GetUseDefaultConsistency() bool { - if x != nil { - return x.UseDefaultConsistency - } - return false +func (x *DropIndexRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -// Deprecated: Marked as deprecated in milvus.proto. -func (x *SearchRequest) GetSearchByPrimaryKeys() bool { - if x != nil { - return x.SearchByPrimaryKeys +func (*DropIndexRequest) ProtoMessage() {} + +func (x *DropIndexRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return false + return mi.MessageOf(x) } -func (x *SearchRequest) GetSubReqs() []*SubSearchRequest { - if x != nil { - return x.SubReqs - } - return nil +// Deprecated: Use DropIndexRequest.ProtoReflect.Descriptor instead. +func (*DropIndexRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{62} } -func (x *SearchRequest) GetExprTemplateValues() map[string]*schemapb.TemplateValue { +func (x *DropIndexRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.ExprTemplateValues + return x.Base } return nil } -func (x *SearchRequest) GetFunctionScore() *schemapb.FunctionScore { +func (x *DropIndexRequest) GetDbName() string { if x != nil { - return x.FunctionScore + return x.DbName } - return nil + return "" } -func (x *SearchRequest) GetNamespace() string { - if x != nil && x.Namespace != nil { - return *x.Namespace +func (x *DropIndexRequest) GetCollectionName() string { + if x != nil { + return x.CollectionName } return "" } -func (x *SearchRequest) GetHighlighter() *commonpb.Highlighter { +func (x *DropIndexRequest) GetFieldName() string { if x != nil { - return x.Highlighter + return x.FieldName } - return nil + return "" } -func (x *SearchRequest) GetSearchAggregation() *commonpb.SearchAggregationSpec { +func (x *DropIndexRequest) GetIndexName() string { if x != nil { - return x.SearchAggregation + return x.IndexName } - return nil -} - -type isSearchRequest_SearchInput interface { - isSearchRequest_SearchInput() + return "" } -type SearchRequest_PlaceholderGroup struct { - PlaceholderGroup []byte `protobuf:"bytes,6,opt,name=placeholder_group,json=placeholderGroup,proto3,oneof"` // serialized `PlaceholderGroup` for vector search -} - -type SearchRequest_Ids struct { - Ids *schemapb.IDs `protobuf:"bytes,22,opt,name=ids,proto3,oneof"` // primary keys for search by IDs -} - -func (*SearchRequest_PlaceholderGroup) isSearchRequest_SearchInput() {} - -func (*SearchRequest_Ids) isSearchRequest_SearchInput() {} - -type Hits struct { +type InsertRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - IDs []int64 `protobuf:"varint,1,rep,packed,name=IDs,proto3" json:"IDs,omitempty"` - RowData [][]byte `protobuf:"bytes,2,rep,name=row_data,json=rowData,proto3" json:"row_data,omitempty"` - Scores []float32 `protobuf:"fixed32,3,rep,packed,name=scores,proto3" json:"scores,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + PartitionName string `protobuf:"bytes,4,opt,name=partition_name,json=partitionName,proto3" json:"partition_name,omitempty"` + FieldsData []*schemapb.FieldData `protobuf:"bytes,5,rep,name=fields_data,json=fieldsData,proto3" json:"fields_data,omitempty"` + HashKeys []uint32 `protobuf:"varint,6,rep,packed,name=hash_keys,json=hashKeys,proto3" json:"hash_keys,omitempty"` + NumRows uint32 `protobuf:"varint,7,opt,name=num_rows,json=numRows,proto3" json:"num_rows,omitempty"` + SchemaTimestamp uint64 `protobuf:"varint,8,opt,name=schema_timestamp,json=schemaTimestamp,proto3" json:"schema_timestamp,omitempty"` + Namespace *string `protobuf:"bytes,9,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` } -func (x *Hits) Reset() { - *x = Hits{} +func (x *InsertRequest) Reset() { + *x = InsertRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[60] + mi := &file_milvus_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Hits) String() string { +func (x *InsertRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Hits) ProtoMessage() {} +func (*InsertRequest) ProtoMessage() {} -func (x *Hits) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[60] +func (x *InsertRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5679,60 +5456,104 @@ func (x *Hits) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Hits.ProtoReflect.Descriptor instead. -func (*Hits) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{60} +// Deprecated: Use InsertRequest.ProtoReflect.Descriptor instead. +func (*InsertRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{63} } -func (x *Hits) GetIDs() []int64 { +func (x *InsertRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.IDs + return x.Base } return nil } -func (x *Hits) GetRowData() [][]byte { +func (x *InsertRequest) GetDbName() string { if x != nil { - return x.RowData + return x.DbName + } + return "" +} + +func (x *InsertRequest) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" +} + +func (x *InsertRequest) GetPartitionName() string { + if x != nil { + return x.PartitionName + } + return "" +} + +func (x *InsertRequest) GetFieldsData() []*schemapb.FieldData { + if x != nil { + return x.FieldsData } return nil } -func (x *Hits) GetScores() []float32 { +func (x *InsertRequest) GetHashKeys() []uint32 { if x != nil { - return x.Scores + return x.HashKeys } return nil } -type SearchResults struct { +func (x *InsertRequest) GetNumRows() uint32 { + if x != nil { + return x.NumRows + } + return 0 +} + +func (x *InsertRequest) GetSchemaTimestamp() uint64 { + if x != nil { + return x.SchemaTimestamp + } + return 0 +} + +func (x *InsertRequest) GetNamespace() string { + if x != nil && x.Namespace != nil { + return *x.Namespace + } + return "" +} + +type AddCollectionFieldRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Results *schemapb.SearchResultData `protobuf:"bytes,2,opt,name=results,proto3" json:"results,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - SessionTs uint64 `protobuf:"varint,4,opt,name=session_ts,json=sessionTs,proto3" json:"session_ts,omitempty"` // for session-like operation like iterator + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + CollectionID int64 `protobuf:"varint,4,opt,name=collectionID,proto3" json:"collectionID,omitempty"` + // The serialized `schema.FieldSchema` + Schema []byte `protobuf:"bytes,5,opt,name=schema,proto3" json:"schema,omitempty"` } -func (x *SearchResults) Reset() { - *x = SearchResults{} +func (x *AddCollectionFieldRequest) Reset() { + *x = AddCollectionFieldRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[61] + mi := &file_milvus_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SearchResults) String() string { +func (x *AddCollectionFieldRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SearchResults) ProtoMessage() {} +func (*AddCollectionFieldRequest) ProtoMessage() {} -func (x *SearchResults) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[61] +func (x *AddCollectionFieldRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5743,77 +5564,75 @@ func (x *SearchResults) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SearchResults.ProtoReflect.Descriptor instead. -func (*SearchResults) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{61} +// Deprecated: Use AddCollectionFieldRequest.ProtoReflect.Descriptor instead. +func (*AddCollectionFieldRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{64} } -func (x *SearchResults) GetStatus() *commonpb.Status { +func (x *AddCollectionFieldRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Status + return x.Base } return nil } -func (x *SearchResults) GetResults() *schemapb.SearchResultData { +func (x *AddCollectionFieldRequest) GetDbName() string { if x != nil { - return x.Results + return x.DbName } - return nil + return "" } -func (x *SearchResults) GetCollectionName() string { +func (x *AddCollectionFieldRequest) GetCollectionName() string { if x != nil { return x.CollectionName } return "" } -func (x *SearchResults) GetSessionTs() uint64 { +func (x *AddCollectionFieldRequest) GetCollectionID() int64 { if x != nil { - return x.SessionTs + return x.CollectionID } return 0 } -type HybridSearchRequest struct { +func (x *AddCollectionFieldRequest) GetSchema() []byte { + if x != nil { + return x.Schema + } + return nil +} + +type AddCollectionStructFieldRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` // must - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // must - PartitionNames []string `protobuf:"bytes,4,rep,name=partition_names,json=partitionNames,proto3" json:"partition_names,omitempty"` // must - Requests []*SearchRequest `protobuf:"bytes,5,rep,name=requests,proto3" json:"requests,omitempty"` - RankParams []*commonpb.KeyValuePair `protobuf:"bytes,6,rep,name=rank_params,json=rankParams,proto3" json:"rank_params,omitempty"` // must - TravelTimestamp uint64 `protobuf:"varint,7,opt,name=travel_timestamp,json=travelTimestamp,proto3" json:"travel_timestamp,omitempty"` - GuaranteeTimestamp uint64 `protobuf:"varint,8,opt,name=guarantee_timestamp,json=guaranteeTimestamp,proto3" json:"guarantee_timestamp,omitempty"` // guarantee_timestamp - NotReturnAllMeta bool `protobuf:"varint,9,opt,name=not_return_all_meta,json=notReturnAllMeta,proto3" json:"not_return_all_meta,omitempty"` - OutputFields []string `protobuf:"bytes,10,rep,name=output_fields,json=outputFields,proto3" json:"output_fields,omitempty"` - ConsistencyLevel commonpb.ConsistencyLevel `protobuf:"varint,11,opt,name=consistency_level,json=consistencyLevel,proto3,enum=milvus.proto.common.ConsistencyLevel" json:"consistency_level,omitempty"` - UseDefaultConsistency bool `protobuf:"varint,12,opt,name=use_default_consistency,json=useDefaultConsistency,proto3" json:"use_default_consistency,omitempty"` - FunctionScore *schemapb.FunctionScore `protobuf:"bytes,13,opt,name=function_score,json=functionScore,proto3" json:"function_score,omitempty"` - Namespace *string `protobuf:"bytes,14,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + CollectionID int64 `protobuf:"varint,4,opt,name=collectionID,proto3" json:"collectionID,omitempty"` + StructArrayFieldSchema *schemapb.StructArrayFieldSchema `protobuf:"bytes,5,opt,name=struct_array_field_schema,json=structArrayFieldSchema,proto3" json:"struct_array_field_schema,omitempty"` } -func (x *HybridSearchRequest) Reset() { - *x = HybridSearchRequest{} +func (x *AddCollectionStructFieldRequest) Reset() { + *x = AddCollectionStructFieldRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[62] + mi := &file_milvus_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *HybridSearchRequest) String() string { +func (x *AddCollectionStructFieldRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*HybridSearchRequest) ProtoMessage() {} +func (*AddCollectionStructFieldRequest) ProtoMessage() {} -func (x *HybridSearchRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[62] +func (x *AddCollectionStructFieldRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5824,136 +5643,155 @@ func (x *HybridSearchRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use HybridSearchRequest.ProtoReflect.Descriptor instead. -func (*HybridSearchRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{62} +// Deprecated: Use AddCollectionStructFieldRequest.ProtoReflect.Descriptor instead. +func (*AddCollectionStructFieldRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{65} } -func (x *HybridSearchRequest) GetBase() *commonpb.MsgBase { +func (x *AddCollectionStructFieldRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *HybridSearchRequest) GetDbName() string { +func (x *AddCollectionStructFieldRequest) GetDbName() string { if x != nil { return x.DbName } return "" } -func (x *HybridSearchRequest) GetCollectionName() string { +func (x *AddCollectionStructFieldRequest) GetCollectionName() string { if x != nil { return x.CollectionName } return "" } -func (x *HybridSearchRequest) GetPartitionNames() []string { +func (x *AddCollectionStructFieldRequest) GetCollectionID() int64 { if x != nil { - return x.PartitionNames + return x.CollectionID } - return nil + return 0 } -func (x *HybridSearchRequest) GetRequests() []*SearchRequest { +func (x *AddCollectionStructFieldRequest) GetStructArrayFieldSchema() *schemapb.StructArrayFieldSchema { if x != nil { - return x.Requests + return x.StructArrayFieldSchema } return nil } -func (x *HybridSearchRequest) GetRankParams() []*commonpb.KeyValuePair { - if x != nil { - return x.RankParams - } - return nil -} +type AddCollectionFunctionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *HybridSearchRequest) GetTravelTimestamp() uint64 { - if x != nil { - return x.TravelTimestamp - } - return 0 + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + CollectionID int64 `protobuf:"varint,4,opt,name=collectionID,proto3" json:"collectionID,omitempty"` + FunctionSchema *schemapb.FunctionSchema `protobuf:"bytes,5,opt,name=functionSchema,proto3" json:"functionSchema,omitempty"` } -func (x *HybridSearchRequest) GetGuaranteeTimestamp() uint64 { - if x != nil { - return x.GuaranteeTimestamp +func (x *AddCollectionFunctionRequest) Reset() { + *x = AddCollectionFunctionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *HybridSearchRequest) GetNotReturnAllMeta() bool { - if x != nil { - return x.NotReturnAllMeta - } - return false +func (x *AddCollectionFunctionRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *HybridSearchRequest) GetOutputFields() []string { - if x != nil { - return x.OutputFields - } - return nil -} +func (*AddCollectionFunctionRequest) ProtoMessage() {} -func (x *HybridSearchRequest) GetConsistencyLevel() commonpb.ConsistencyLevel { - if x != nil { - return x.ConsistencyLevel +func (x *AddCollectionFunctionRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[66] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return commonpb.ConsistencyLevel(0) + return mi.MessageOf(x) } -func (x *HybridSearchRequest) GetUseDefaultConsistency() bool { +// Deprecated: Use AddCollectionFunctionRequest.ProtoReflect.Descriptor instead. +func (*AddCollectionFunctionRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{66} +} + +func (x *AddCollectionFunctionRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.UseDefaultConsistency + return x.Base } - return false + return nil } -func (x *HybridSearchRequest) GetFunctionScore() *schemapb.FunctionScore { +func (x *AddCollectionFunctionRequest) GetDbName() string { if x != nil { - return x.FunctionScore + return x.DbName } - return nil + return "" } -func (x *HybridSearchRequest) GetNamespace() string { - if x != nil && x.Namespace != nil { - return *x.Namespace +func (x *AddCollectionFunctionRequest) GetCollectionName() string { + if x != nil { + return x.CollectionName } return "" } -type FlushRequest struct { +func (x *AddCollectionFunctionRequest) GetCollectionID() int64 { + if x != nil { + return x.CollectionID + } + return 0 +} + +func (x *AddCollectionFunctionRequest) GetFunctionSchema() *schemapb.FunctionSchema { + if x != nil { + return x.FunctionSchema + } + return nil +} + +type AlterCollectionFunctionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionNames []string `protobuf:"bytes,3,rep,name=collection_names,json=collectionNames,proto3" json:"collection_names,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + CollectionID int64 `protobuf:"varint,4,opt,name=collectionID,proto3" json:"collectionID,omitempty"` + FunctionName string `protobuf:"bytes,5,opt,name=function_name,json=functionName,proto3" json:"function_name,omitempty"` + FunctionSchema *schemapb.FunctionSchema `protobuf:"bytes,6,opt,name=functionSchema,proto3" json:"functionSchema,omitempty"` } -func (x *FlushRequest) Reset() { - *x = FlushRequest{} +func (x *AlterCollectionFunctionRequest) Reset() { + *x = AlterCollectionFunctionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[63] + mi := &file_milvus_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlushRequest) String() string { +func (x *AlterCollectionFunctionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlushRequest) ProtoMessage() {} +func (*AlterCollectionFunctionRequest) ProtoMessage() {} -func (x *FlushRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[63] +func (x *AlterCollectionFunctionRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5964,63 +5802,82 @@ func (x *FlushRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlushRequest.ProtoReflect.Descriptor instead. -func (*FlushRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{63} +// Deprecated: Use AlterCollectionFunctionRequest.ProtoReflect.Descriptor instead. +func (*AlterCollectionFunctionRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{67} } -func (x *FlushRequest) GetBase() *commonpb.MsgBase { +func (x *AlterCollectionFunctionRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *FlushRequest) GetDbName() string { +func (x *AlterCollectionFunctionRequest) GetDbName() string { if x != nil { return x.DbName } return "" } -func (x *FlushRequest) GetCollectionNames() []string { +func (x *AlterCollectionFunctionRequest) GetCollectionName() string { if x != nil { - return x.CollectionNames + return x.CollectionName + } + return "" +} + +func (x *AlterCollectionFunctionRequest) GetCollectionID() int64 { + if x != nil { + return x.CollectionID + } + return 0 +} + +func (x *AlterCollectionFunctionRequest) GetFunctionName() string { + if x != nil { + return x.FunctionName + } + return "" +} + +func (x *AlterCollectionFunctionRequest) GetFunctionSchema() *schemapb.FunctionSchema { + if x != nil { + return x.FunctionSchema } return nil } -type FlushResponse struct { +type DropCollectionFunctionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollSegIDs map[string]*schemapb.LongArray `protobuf:"bytes,3,rep,name=coll_segIDs,json=collSegIDs,proto3" json:"coll_segIDs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - FlushCollSegIDs map[string]*schemapb.LongArray `protobuf:"bytes,4,rep,name=flush_coll_segIDs,json=flushCollSegIDs,proto3" json:"flush_coll_segIDs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - CollSealTimes map[string]int64 `protobuf:"bytes,5,rep,name=coll_seal_times,json=collSealTimes,proto3" json:"coll_seal_times,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // physical time for backup tool - CollFlushTs map[string]uint64 `protobuf:"bytes,6,rep,name=coll_flush_ts,json=collFlushTs,proto3" json:"coll_flush_ts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // hybrid ts for geting flush tate - ChannelCps map[string]*msgpb.MsgPosition `protobuf:"bytes,7,rep,name=channel_cps,json=channelCps,proto3" json:"channel_cps,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + CollectionID int64 `protobuf:"varint,4,opt,name=collectionID,proto3" json:"collectionID,omitempty"` + FunctionName string `protobuf:"bytes,5,opt,name=function_name,json=functionName,proto3" json:"function_name,omitempty"` } -func (x *FlushResponse) Reset() { - *x = FlushResponse{} +func (x *DropCollectionFunctionRequest) Reset() { + *x = DropCollectionFunctionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[64] + mi := &file_milvus_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlushResponse) String() string { +func (x *DropCollectionFunctionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlushResponse) ProtoMessage() {} +func (*DropCollectionFunctionRequest) ProtoMessage() {} -func (x *FlushResponse) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[64] +func (x *DropCollectionFunctionRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6031,98 +5888,85 @@ func (x *FlushResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlushResponse.ProtoReflect.Descriptor instead. -func (*FlushResponse) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{64} +// Deprecated: Use DropCollectionFunctionRequest.ProtoReflect.Descriptor instead. +func (*DropCollectionFunctionRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{68} } -func (x *FlushResponse) GetStatus() *commonpb.Status { +func (x *DropCollectionFunctionRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Status + return x.Base } return nil } -func (x *FlushResponse) GetDbName() string { +func (x *DropCollectionFunctionRequest) GetDbName() string { if x != nil { return x.DbName } return "" } -func (x *FlushResponse) GetCollSegIDs() map[string]*schemapb.LongArray { - if x != nil { - return x.CollSegIDs - } - return nil -} - -func (x *FlushResponse) GetFlushCollSegIDs() map[string]*schemapb.LongArray { - if x != nil { - return x.FlushCollSegIDs - } - return nil -} - -func (x *FlushResponse) GetCollSealTimes() map[string]int64 { +func (x *DropCollectionFunctionRequest) GetCollectionName() string { if x != nil { - return x.CollSealTimes + return x.CollectionName } - return nil + return "" } -func (x *FlushResponse) GetCollFlushTs() map[string]uint64 { +func (x *DropCollectionFunctionRequest) GetCollectionID() int64 { if x != nil { - return x.CollFlushTs + return x.CollectionID } - return nil + return 0 } -func (x *FlushResponse) GetChannelCps() map[string]*msgpb.MsgPosition { +func (x *DropCollectionFunctionRequest) GetFunctionName() string { if x != nil { - return x.ChannelCps + return x.FunctionName } - return nil + return "" } -type QueryRequest struct { +type UpsertRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - Expr string `protobuf:"bytes,4,opt,name=expr,proto3" json:"expr,omitempty"` - OutputFields []string `protobuf:"bytes,5,rep,name=output_fields,json=outputFields,proto3" json:"output_fields,omitempty"` - PartitionNames []string `protobuf:"bytes,6,rep,name=partition_names,json=partitionNames,proto3" json:"partition_names,omitempty"` - TravelTimestamp uint64 `protobuf:"varint,7,opt,name=travel_timestamp,json=travelTimestamp,proto3" json:"travel_timestamp,omitempty"` - GuaranteeTimestamp uint64 `protobuf:"varint,8,opt,name=guarantee_timestamp,json=guaranteeTimestamp,proto3" json:"guarantee_timestamp,omitempty"` // guarantee_timestamp - QueryParams []*commonpb.KeyValuePair `protobuf:"bytes,9,rep,name=query_params,json=queryParams,proto3" json:"query_params,omitempty"` // optional - NotReturnAllMeta bool `protobuf:"varint,10,opt,name=not_return_all_meta,json=notReturnAllMeta,proto3" json:"not_return_all_meta,omitempty"` - ConsistencyLevel commonpb.ConsistencyLevel `protobuf:"varint,11,opt,name=consistency_level,json=consistencyLevel,proto3,enum=milvus.proto.common.ConsistencyLevel" json:"consistency_level,omitempty"` - UseDefaultConsistency bool `protobuf:"varint,12,opt,name=use_default_consistency,json=useDefaultConsistency,proto3" json:"use_default_consistency,omitempty"` - ExprTemplateValues map[string]*schemapb.TemplateValue `protobuf:"bytes,13,rep,name=expr_template_values,json=exprTemplateValues,proto3" json:"expr_template_values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Namespace *string `protobuf:"bytes,14,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + PartitionName string `protobuf:"bytes,4,opt,name=partition_name,json=partitionName,proto3" json:"partition_name,omitempty"` + FieldsData []*schemapb.FieldData `protobuf:"bytes,5,rep,name=fields_data,json=fieldsData,proto3" json:"fields_data,omitempty"` + HashKeys []uint32 `protobuf:"varint,6,rep,packed,name=hash_keys,json=hashKeys,proto3" json:"hash_keys,omitempty"` + NumRows uint32 `protobuf:"varint,7,opt,name=num_rows,json=numRows,proto3" json:"num_rows,omitempty"` + SchemaTimestamp uint64 `protobuf:"varint,8,opt,name=schema_timestamp,json=schemaTimestamp,proto3" json:"schema_timestamp,omitempty"` + PartialUpdate bool `protobuf:"varint,9,opt,name=partial_update,json=partialUpdate,proto3" json:"partial_update,omitempty"` + Namespace *string `protobuf:"bytes,10,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` + // field_ops carries per-field FieldPartialUpdateOp directives describing + // how each FieldData should be merged during a partial upsert. Ops are + // matched to fields_data entries by field_name. A non-REPLACE op implies + // partial_update=true regardless of the partial_update flag. + FieldOps []*schemapb.FieldPartialUpdateOp `protobuf:"bytes,11,rep,name=field_ops,json=fieldOps,proto3" json:"field_ops,omitempty"` } -func (x *QueryRequest) Reset() { - *x = QueryRequest{} +func (x *UpsertRequest) Reset() { + *x = UpsertRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[65] + mi := &file_milvus_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *QueryRequest) String() string { +func (x *UpsertRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QueryRequest) ProtoMessage() {} +func (*UpsertRequest) ProtoMessage() {} -func (x *QueryRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[65] +func (x *UpsertRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6133,134 +5977,121 @@ func (x *QueryRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use QueryRequest.ProtoReflect.Descriptor instead. -func (*QueryRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{65} +// Deprecated: Use UpsertRequest.ProtoReflect.Descriptor instead. +func (*UpsertRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{69} } -func (x *QueryRequest) GetBase() *commonpb.MsgBase { +func (x *UpsertRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *QueryRequest) GetDbName() string { +func (x *UpsertRequest) GetDbName() string { if x != nil { return x.DbName } return "" } -func (x *QueryRequest) GetCollectionName() string { +func (x *UpsertRequest) GetCollectionName() string { if x != nil { return x.CollectionName } return "" } -func (x *QueryRequest) GetExpr() string { +func (x *UpsertRequest) GetPartitionName() string { if x != nil { - return x.Expr + return x.PartitionName } return "" } -func (x *QueryRequest) GetOutputFields() []string { +func (x *UpsertRequest) GetFieldsData() []*schemapb.FieldData { if x != nil { - return x.OutputFields + return x.FieldsData } return nil } -func (x *QueryRequest) GetPartitionNames() []string { +func (x *UpsertRequest) GetHashKeys() []uint32 { if x != nil { - return x.PartitionNames + return x.HashKeys } return nil } -func (x *QueryRequest) GetTravelTimestamp() uint64 { +func (x *UpsertRequest) GetNumRows() uint32 { if x != nil { - return x.TravelTimestamp + return x.NumRows } return 0 } -func (x *QueryRequest) GetGuaranteeTimestamp() uint64 { +func (x *UpsertRequest) GetSchemaTimestamp() uint64 { if x != nil { - return x.GuaranteeTimestamp + return x.SchemaTimestamp } return 0 } -func (x *QueryRequest) GetQueryParams() []*commonpb.KeyValuePair { - if x != nil { - return x.QueryParams - } - return nil -} - -func (x *QueryRequest) GetNotReturnAllMeta() bool { +func (x *UpsertRequest) GetPartialUpdate() bool { if x != nil { - return x.NotReturnAllMeta + return x.PartialUpdate } return false } -func (x *QueryRequest) GetConsistencyLevel() commonpb.ConsistencyLevel { - if x != nil { - return x.ConsistencyLevel - } - return commonpb.ConsistencyLevel(0) -} - -func (x *QueryRequest) GetUseDefaultConsistency() bool { - if x != nil { - return x.UseDefaultConsistency +func (x *UpsertRequest) GetNamespace() string { + if x != nil && x.Namespace != nil { + return *x.Namespace } - return false + return "" } -func (x *QueryRequest) GetExprTemplateValues() map[string]*schemapb.TemplateValue { +func (x *UpsertRequest) GetFieldOps() []*schemapb.FieldPartialUpdateOp { if x != nil { - return x.ExprTemplateValues + return x.FieldOps } return nil } -func (x *QueryRequest) GetNamespace() string { - if x != nil && x.Namespace != nil { - return *x.Namespace - } - return "" -} - -type ElementIndices struct { +type MutationResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Indices *schemapb.LongArray `protobuf:"bytes,1,opt,name=indices,proto3" json:"indices,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + IDs *schemapb.IDs `protobuf:"bytes,2,opt,name=IDs,proto3" json:"IDs,omitempty"` // required for insert, delete, upsert + SuccIndex []uint32 `protobuf:"varint,3,rep,packed,name=succ_index,json=succIndex,proto3" json:"succ_index,omitempty"` // error indexes indicate + ErrIndex []uint32 `protobuf:"varint,4,rep,packed,name=err_index,json=errIndex,proto3" json:"err_index,omitempty"` // error indexes indicate + Acknowledged bool `protobuf:"varint,5,opt,name=acknowledged,proto3" json:"acknowledged,omitempty"` + InsertCnt int64 `protobuf:"varint,6,opt,name=insert_cnt,json=insertCnt,proto3" json:"insert_cnt,omitempty"` + DeleteCnt int64 `protobuf:"varint,7,opt,name=delete_cnt,json=deleteCnt,proto3" json:"delete_cnt,omitempty"` + UpsertCnt int64 `protobuf:"varint,8,opt,name=upsert_cnt,json=upsertCnt,proto3" json:"upsert_cnt,omitempty"` + Timestamp uint64 `protobuf:"varint,9,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } -func (x *ElementIndices) Reset() { - *x = ElementIndices{} +func (x *MutationResult) Reset() { + *x = MutationResult{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[66] + mi := &file_milvus_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ElementIndices) String() string { +func (x *MutationResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ElementIndices) ProtoMessage() {} +func (*MutationResult) ProtoMessage() {} -func (x *ElementIndices) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[66] +func (x *MutationResult) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6271,49 +6102,107 @@ func (x *ElementIndices) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ElementIndices.ProtoReflect.Descriptor instead. -func (*ElementIndices) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{66} +// Deprecated: Use MutationResult.ProtoReflect.Descriptor instead. +func (*MutationResult) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{70} } -func (x *ElementIndices) GetIndices() *schemapb.LongArray { +func (x *MutationResult) GetStatus() *commonpb.Status { if x != nil { - return x.Indices + return x.Status } return nil } -type QueryResults struct { +func (x *MutationResult) GetIDs() *schemapb.IDs { + if x != nil { + return x.IDs + } + return nil +} + +func (x *MutationResult) GetSuccIndex() []uint32 { + if x != nil { + return x.SuccIndex + } + return nil +} + +func (x *MutationResult) GetErrIndex() []uint32 { + if x != nil { + return x.ErrIndex + } + return nil +} + +func (x *MutationResult) GetAcknowledged() bool { + if x != nil { + return x.Acknowledged + } + return false +} + +func (x *MutationResult) GetInsertCnt() int64 { + if x != nil { + return x.InsertCnt + } + return 0 +} + +func (x *MutationResult) GetDeleteCnt() int64 { + if x != nil { + return x.DeleteCnt + } + return 0 +} + +func (x *MutationResult) GetUpsertCnt() int64 { + if x != nil { + return x.UpsertCnt + } + return 0 +} + +func (x *MutationResult) GetTimestamp() uint64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +type DeleteRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - FieldsData []*schemapb.FieldData `protobuf:"bytes,2,rep,name=fields_data,json=fieldsData,proto3" json:"fields_data,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - OutputFields []string `protobuf:"bytes,4,rep,name=output_fields,json=outputFields,proto3" json:"output_fields,omitempty"` - SessionTs uint64 `protobuf:"varint,5,opt,name=session_ts,json=sessionTs,proto3" json:"session_ts,omitempty"` // for session-like operation like iterator - PrimaryFieldName string `protobuf:"bytes,6,opt,name=primary_field_name,json=primaryFieldName,proto3" json:"primary_field_name,omitempty"` - ElementIndices []*ElementIndices `protobuf:"bytes,7,rep,name=element_indices,json=elementIndices,proto3" json:"element_indices,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + PartitionName string `protobuf:"bytes,4,opt,name=partition_name,json=partitionName,proto3" json:"partition_name,omitempty"` + Expr string `protobuf:"bytes,5,opt,name=expr,proto3" json:"expr,omitempty"` + HashKeys []uint32 `protobuf:"varint,6,rep,packed,name=hash_keys,json=hashKeys,proto3" json:"hash_keys,omitempty"` + ConsistencyLevel commonpb.ConsistencyLevel `protobuf:"varint,7,opt,name=consistency_level,json=consistencyLevel,proto3,enum=milvus.proto.common.ConsistencyLevel" json:"consistency_level,omitempty"` + ExprTemplateValues map[string]*schemapb.TemplateValue `protobuf:"bytes,8,rep,name=expr_template_values,json=exprTemplateValues,proto3" json:"expr_template_values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Namespace *string `protobuf:"bytes,9,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` } -func (x *QueryResults) Reset() { - *x = QueryResults{} +func (x *DeleteRequest) Reset() { + *x = DeleteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[67] + mi := &file_milvus_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *QueryResults) String() string { +func (x *DeleteRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QueryResults) ProtoMessage() {} +func (*DeleteRequest) ProtoMessage() {} -func (x *QueryResults) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[67] +func (x *DeleteRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6324,90 +6213,106 @@ func (x *QueryResults) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use QueryResults.ProtoReflect.Descriptor instead. -func (*QueryResults) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{67} +// Deprecated: Use DeleteRequest.ProtoReflect.Descriptor instead. +func (*DeleteRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{71} } -func (x *QueryResults) GetStatus() *commonpb.Status { +func (x *DeleteRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Status + return x.Base } return nil } -func (x *QueryResults) GetFieldsData() []*schemapb.FieldData { +func (x *DeleteRequest) GetDbName() string { if x != nil { - return x.FieldsData + return x.DbName } - return nil + return "" } -func (x *QueryResults) GetCollectionName() string { +func (x *DeleteRequest) GetCollectionName() string { if x != nil { return x.CollectionName } return "" } -func (x *QueryResults) GetOutputFields() []string { +func (x *DeleteRequest) GetPartitionName() string { if x != nil { - return x.OutputFields + return x.PartitionName } - return nil + return "" } -func (x *QueryResults) GetSessionTs() uint64 { +func (x *DeleteRequest) GetExpr() string { if x != nil { - return x.SessionTs + return x.Expr } - return 0 + return "" } -func (x *QueryResults) GetPrimaryFieldName() string { +func (x *DeleteRequest) GetHashKeys() []uint32 { if x != nil { - return x.PrimaryFieldName + return x.HashKeys } - return "" + return nil } -func (x *QueryResults) GetElementIndices() []*ElementIndices { +func (x *DeleteRequest) GetConsistencyLevel() commonpb.ConsistencyLevel { if x != nil { - return x.ElementIndices + return x.ConsistencyLevel + } + return commonpb.ConsistencyLevel(0) +} + +func (x *DeleteRequest) GetExprTemplateValues() map[string]*schemapb.TemplateValue { + if x != nil { + return x.ExprTemplateValues } return nil } -type QueryCursor struct { +func (x *DeleteRequest) GetNamespace() string { + if x != nil && x.Namespace != nil { + return *x.Namespace + } + return "" +} + +type SubSearchRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SessionTs uint64 `protobuf:"varint,1,opt,name=session_ts,json=sessionTs,proto3" json:"session_ts,omitempty"` - // Types that are assignable to CursorPk: - // - // *QueryCursor_StrPk - // *QueryCursor_IntPk - CursorPk isQueryCursor_CursorPk `protobuf_oneof:"cursor_pk"` + Dsl string `protobuf:"bytes,1,opt,name=dsl,proto3" json:"dsl,omitempty"` // must + // serialized `PlaceholderGroup` + PlaceholderGroup []byte `protobuf:"bytes,2,opt,name=placeholder_group,json=placeholderGroup,proto3" json:"placeholder_group,omitempty"` // must + DslType commonpb.DslType `protobuf:"varint,3,opt,name=dsl_type,json=dslType,proto3,enum=milvus.proto.common.DslType" json:"dsl_type,omitempty"` // must + SearchParams []*commonpb.KeyValuePair `protobuf:"bytes,4,rep,name=search_params,json=searchParams,proto3" json:"search_params,omitempty"` // must + Nq int64 `protobuf:"varint,5,opt,name=nq,proto3" json:"nq,omitempty"` + ExprTemplateValues map[string]*schemapb.TemplateValue `protobuf:"bytes,6,rep,name=expr_template_values,json=exprTemplateValues,proto3" json:"expr_template_values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Namespace *string `protobuf:"bytes,7,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` } -func (x *QueryCursor) Reset() { - *x = QueryCursor{} +func (x *SubSearchRequest) Reset() { + *x = SubSearchRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[68] + mi := &file_milvus_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *QueryCursor) String() string { +func (x *SubSearchRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QueryCursor) ProtoMessage() {} +func (*SubSearchRequest) ProtoMessage() {} -func (x *QueryCursor) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[68] +func (x *SubSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6418,83 +6323,111 @@ func (x *QueryCursor) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use QueryCursor.ProtoReflect.Descriptor instead. -func (*QueryCursor) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{68} +// Deprecated: Use SubSearchRequest.ProtoReflect.Descriptor instead. +func (*SubSearchRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{72} } -func (x *QueryCursor) GetSessionTs() uint64 { +func (x *SubSearchRequest) GetDsl() string { if x != nil { - return x.SessionTs + return x.Dsl } - return 0 + return "" } -func (m *QueryCursor) GetCursorPk() isQueryCursor_CursorPk { - if m != nil { - return m.CursorPk +func (x *SubSearchRequest) GetPlaceholderGroup() []byte { + if x != nil { + return x.PlaceholderGroup } return nil } -func (x *QueryCursor) GetStrPk() string { - if x, ok := x.GetCursorPk().(*QueryCursor_StrPk); ok { - return x.StrPk +func (x *SubSearchRequest) GetDslType() commonpb.DslType { + if x != nil { + return x.DslType } - return "" + return commonpb.DslType(0) } -func (x *QueryCursor) GetIntPk() int64 { - if x, ok := x.GetCursorPk().(*QueryCursor_IntPk); ok { - return x.IntPk +func (x *SubSearchRequest) GetSearchParams() []*commonpb.KeyValuePair { + if x != nil { + return x.SearchParams } - return 0 + return nil } -type isQueryCursor_CursorPk interface { - isQueryCursor_CursorPk() +func (x *SubSearchRequest) GetNq() int64 { + if x != nil { + return x.Nq + } + return 0 } -type QueryCursor_StrPk struct { - StrPk string `protobuf:"bytes,2,opt,name=str_pk,json=strPk,proto3,oneof"` +func (x *SubSearchRequest) GetExprTemplateValues() map[string]*schemapb.TemplateValue { + if x != nil { + return x.ExprTemplateValues + } + return nil } -type QueryCursor_IntPk struct { - IntPk int64 `protobuf:"varint,3,opt,name=int_pk,json=intPk,proto3,oneof"` +func (x *SubSearchRequest) GetNamespace() string { + if x != nil && x.Namespace != nil { + return *x.Namespace + } + return "" } -func (*QueryCursor_StrPk) isQueryCursor_CursorPk() {} - -func (*QueryCursor_IntPk) isQueryCursor_CursorPk() {} - -type VectorIDs struct { +type SearchRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - FieldName string `protobuf:"bytes,2,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` - IdArray *schemapb.IDs `protobuf:"bytes,3,opt,name=id_array,json=idArray,proto3" json:"id_array,omitempty"` - PartitionNames []string `protobuf:"bytes,4,rep,name=partition_names,json=partitionNames,proto3" json:"partition_names,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` // must + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // must + PartitionNames []string `protobuf:"bytes,4,rep,name=partition_names,json=partitionNames,proto3" json:"partition_names,omitempty"` // must + Dsl string `protobuf:"bytes,5,opt,name=dsl,proto3" json:"dsl,omitempty"` // must + // Types that are assignable to SearchInput: + // + // *SearchRequest_PlaceholderGroup + // *SearchRequest_Ids + SearchInput isSearchRequest_SearchInput `protobuf_oneof:"search_input"` + DslType commonpb.DslType `protobuf:"varint,7,opt,name=dsl_type,json=dslType,proto3,enum=milvus.proto.common.DslType" json:"dsl_type,omitempty"` // must + OutputFields []string `protobuf:"bytes,8,rep,name=output_fields,json=outputFields,proto3" json:"output_fields,omitempty"` + SearchParams []*commonpb.KeyValuePair `protobuf:"bytes,9,rep,name=search_params,json=searchParams,proto3" json:"search_params,omitempty"` // must + TravelTimestamp uint64 `protobuf:"varint,10,opt,name=travel_timestamp,json=travelTimestamp,proto3" json:"travel_timestamp,omitempty"` + GuaranteeTimestamp uint64 `protobuf:"varint,11,opt,name=guarantee_timestamp,json=guaranteeTimestamp,proto3" json:"guarantee_timestamp,omitempty"` // guarantee_timestamp + Nq int64 `protobuf:"varint,12,opt,name=nq,proto3" json:"nq,omitempty"` + NotReturnAllMeta bool `protobuf:"varint,13,opt,name=not_return_all_meta,json=notReturnAllMeta,proto3" json:"not_return_all_meta,omitempty"` + ConsistencyLevel commonpb.ConsistencyLevel `protobuf:"varint,14,opt,name=consistency_level,json=consistencyLevel,proto3,enum=milvus.proto.common.ConsistencyLevel" json:"consistency_level,omitempty"` + UseDefaultConsistency bool `protobuf:"varint,15,opt,name=use_default_consistency,json=useDefaultConsistency,proto3" json:"use_default_consistency,omitempty"` + // Deprecated: Marked as deprecated in milvus.proto. + SearchByPrimaryKeys bool `protobuf:"varint,16,opt,name=search_by_primary_keys,json=searchByPrimaryKeys,proto3" json:"search_by_primary_keys,omitempty"` // use search_input instead + SubReqs []*SubSearchRequest `protobuf:"bytes,17,rep,name=sub_reqs,json=subReqs,proto3" json:"sub_reqs,omitempty"` + ExprTemplateValues map[string]*schemapb.TemplateValue `protobuf:"bytes,18,rep,name=expr_template_values,json=exprTemplateValues,proto3" json:"expr_template_values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + FunctionScore *schemapb.FunctionScore `protobuf:"bytes,19,opt,name=function_score,json=functionScore,proto3" json:"function_score,omitempty"` + Namespace *string `protobuf:"bytes,20,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` + Highlighter *commonpb.Highlighter `protobuf:"bytes,21,opt,name=highlighter,proto3" json:"highlighter,omitempty"` + SearchAggregation *commonpb.SearchAggregationSpec `protobuf:"bytes,23,opt,name=search_aggregation,json=searchAggregation,proto3" json:"search_aggregation,omitempty"` } -func (x *VectorIDs) Reset() { - *x = VectorIDs{} +func (x *SearchRequest) Reset() { + *x = SearchRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[69] + mi := &file_milvus_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VectorIDs) String() string { +func (x *SearchRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VectorIDs) ProtoMessage() {} +func (*SearchRequest) ProtoMessage() {} -func (x *VectorIDs) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[69] +func (x *SearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6505,223 +6438,223 @@ func (x *VectorIDs) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use VectorIDs.ProtoReflect.Descriptor instead. -func (*VectorIDs) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{69} +// Deprecated: Use SearchRequest.ProtoReflect.Descriptor instead. +func (*SearchRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{73} } -func (x *VectorIDs) GetCollectionName() string { +func (x *SearchRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.CollectionName + return x.Base } - return "" + return nil } -func (x *VectorIDs) GetFieldName() string { +func (x *SearchRequest) GetDbName() string { if x != nil { - return x.FieldName + return x.DbName } return "" } -func (x *VectorIDs) GetIdArray() *schemapb.IDs { +func (x *SearchRequest) GetCollectionName() string { if x != nil { - return x.IdArray + return x.CollectionName } - return nil + return "" } -func (x *VectorIDs) GetPartitionNames() []string { +func (x *SearchRequest) GetPartitionNames() []string { if x != nil { return x.PartitionNames } return nil } -type VectorsArray struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Array: - // - // *VectorsArray_IdArray - // *VectorsArray_DataArray - Array isVectorsArray_Array `protobuf_oneof:"array"` +func (x *SearchRequest) GetDsl() string { + if x != nil { + return x.Dsl + } + return "" } -func (x *VectorsArray) Reset() { - *x = VectorsArray{} - if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[70] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (m *SearchRequest) GetSearchInput() isSearchRequest_SearchInput { + if m != nil { + return m.SearchInput } + return nil } -func (x *VectorsArray) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *SearchRequest) GetPlaceholderGroup() []byte { + if x, ok := x.GetSearchInput().(*SearchRequest_PlaceholderGroup); ok { + return x.PlaceholderGroup + } + return nil } -func (*VectorsArray) ProtoMessage() {} - -func (x *VectorsArray) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[70] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *SearchRequest) GetIds() *schemapb.IDs { + if x, ok := x.GetSearchInput().(*SearchRequest_Ids); ok { + return x.Ids } - return mi.MessageOf(x) + return nil } -// Deprecated: Use VectorsArray.ProtoReflect.Descriptor instead. -func (*VectorsArray) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{70} +func (x *SearchRequest) GetDslType() commonpb.DslType { + if x != nil { + return x.DslType + } + return commonpb.DslType(0) } -func (m *VectorsArray) GetArray() isVectorsArray_Array { - if m != nil { - return m.Array +func (x *SearchRequest) GetOutputFields() []string { + if x != nil { + return x.OutputFields } return nil } -func (x *VectorsArray) GetIdArray() *VectorIDs { - if x, ok := x.GetArray().(*VectorsArray_IdArray); ok { - return x.IdArray +func (x *SearchRequest) GetSearchParams() []*commonpb.KeyValuePair { + if x != nil { + return x.SearchParams } return nil } -func (x *VectorsArray) GetDataArray() *schemapb.VectorField { - if x, ok := x.GetArray().(*VectorsArray_DataArray); ok { - return x.DataArray +func (x *SearchRequest) GetTravelTimestamp() uint64 { + if x != nil { + return x.TravelTimestamp } - return nil + return 0 } -type isVectorsArray_Array interface { - isVectorsArray_Array() +func (x *SearchRequest) GetGuaranteeTimestamp() uint64 { + if x != nil { + return x.GuaranteeTimestamp + } + return 0 } -type VectorsArray_IdArray struct { - IdArray *VectorIDs `protobuf:"bytes,1,opt,name=id_array,json=idArray,proto3,oneof"` // vector ids +func (x *SearchRequest) GetNq() int64 { + if x != nil { + return x.Nq + } + return 0 } -type VectorsArray_DataArray struct { - DataArray *schemapb.VectorField `protobuf:"bytes,2,opt,name=data_array,json=dataArray,proto3,oneof"` // vectors data +func (x *SearchRequest) GetNotReturnAllMeta() bool { + if x != nil { + return x.NotReturnAllMeta + } + return false } -func (*VectorsArray_IdArray) isVectorsArray_Array() {} - -func (*VectorsArray_DataArray) isVectorsArray_Array() {} - -type CalcDistanceRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - OpLeft *VectorsArray `protobuf:"bytes,2,opt,name=op_left,json=opLeft,proto3" json:"op_left,omitempty"` // vectors on the left of operator - OpRight *VectorsArray `protobuf:"bytes,3,opt,name=op_right,json=opRight,proto3" json:"op_right,omitempty"` // vectors on the right of operator - Params []*commonpb.KeyValuePair `protobuf:"bytes,4,rep,name=params,proto3" json:"params,omitempty"` // "metric":"L2"/"IP"/"HAMMIN"/"TANIMOTO" +func (x *SearchRequest) GetConsistencyLevel() commonpb.ConsistencyLevel { + if x != nil { + return x.ConsistencyLevel + } + return commonpb.ConsistencyLevel(0) } -func (x *CalcDistanceRequest) Reset() { - *x = CalcDistanceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[71] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *SearchRequest) GetUseDefaultConsistency() bool { + if x != nil { + return x.UseDefaultConsistency } + return false } -func (x *CalcDistanceRequest) String() string { - return protoimpl.X.MessageStringOf(x) +// Deprecated: Marked as deprecated in milvus.proto. +func (x *SearchRequest) GetSearchByPrimaryKeys() bool { + if x != nil { + return x.SearchByPrimaryKeys + } + return false } -func (*CalcDistanceRequest) ProtoMessage() {} - -func (x *CalcDistanceRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[71] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *SearchRequest) GetSubReqs() []*SubSearchRequest { + if x != nil { + return x.SubReqs } - return mi.MessageOf(x) -} - -// Deprecated: Use CalcDistanceRequest.ProtoReflect.Descriptor instead. -func (*CalcDistanceRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{71} + return nil } -func (x *CalcDistanceRequest) GetBase() *commonpb.MsgBase { +func (x *SearchRequest) GetExprTemplateValues() map[string]*schemapb.TemplateValue { if x != nil { - return x.Base + return x.ExprTemplateValues } return nil } -func (x *CalcDistanceRequest) GetOpLeft() *VectorsArray { +func (x *SearchRequest) GetFunctionScore() *schemapb.FunctionScore { if x != nil { - return x.OpLeft + return x.FunctionScore } return nil } -func (x *CalcDistanceRequest) GetOpRight() *VectorsArray { +func (x *SearchRequest) GetNamespace() string { + if x != nil && x.Namespace != nil { + return *x.Namespace + } + return "" +} + +func (x *SearchRequest) GetHighlighter() *commonpb.Highlighter { if x != nil { - return x.OpRight + return x.Highlighter } return nil } -func (x *CalcDistanceRequest) GetParams() []*commonpb.KeyValuePair { +func (x *SearchRequest) GetSearchAggregation() *commonpb.SearchAggregationSpec { if x != nil { - return x.Params + return x.SearchAggregation } return nil } -type CalcDistanceResults struct { +type isSearchRequest_SearchInput interface { + isSearchRequest_SearchInput() +} + +type SearchRequest_PlaceholderGroup struct { + PlaceholderGroup []byte `protobuf:"bytes,6,opt,name=placeholder_group,json=placeholderGroup,proto3,oneof"` // serialized `PlaceholderGroup` for vector search +} + +type SearchRequest_Ids struct { + Ids *schemapb.IDs `protobuf:"bytes,22,opt,name=ids,proto3,oneof"` // primary keys for search by IDs +} + +func (*SearchRequest_PlaceholderGroup) isSearchRequest_SearchInput() {} + +func (*SearchRequest_Ids) isSearchRequest_SearchInput() {} + +type Hits struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - // num(op_left)*num(op_right) distance values, "HAMMIN" return integer distance - // - // Types that are assignable to Array: - // - // *CalcDistanceResults_IntDist - // *CalcDistanceResults_FloatDist - Array isCalcDistanceResults_Array `protobuf_oneof:"array"` + IDs []int64 `protobuf:"varint,1,rep,packed,name=IDs,proto3" json:"IDs,omitempty"` + RowData [][]byte `protobuf:"bytes,2,rep,name=row_data,json=rowData,proto3" json:"row_data,omitempty"` + Scores []float32 `protobuf:"fixed32,3,rep,packed,name=scores,proto3" json:"scores,omitempty"` } -func (x *CalcDistanceResults) Reset() { - *x = CalcDistanceResults{} +func (x *Hits) Reset() { + *x = Hits{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[72] + mi := &file_milvus_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CalcDistanceResults) String() string { +func (x *Hits) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CalcDistanceResults) ProtoMessage() {} +func (*Hits) ProtoMessage() {} -func (x *CalcDistanceResults) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[72] +func (x *Hits) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6732,87 +6665,60 @@ func (x *CalcDistanceResults) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CalcDistanceResults.ProtoReflect.Descriptor instead. -func (*CalcDistanceResults) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{72} +// Deprecated: Use Hits.ProtoReflect.Descriptor instead. +func (*Hits) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{74} } -func (x *CalcDistanceResults) GetStatus() *commonpb.Status { +func (x *Hits) GetIDs() []int64 { if x != nil { - return x.Status - } - return nil -} - -func (m *CalcDistanceResults) GetArray() isCalcDistanceResults_Array { - if m != nil { - return m.Array + return x.IDs } return nil } -func (x *CalcDistanceResults) GetIntDist() *schemapb.IntArray { - if x, ok := x.GetArray().(*CalcDistanceResults_IntDist); ok { - return x.IntDist +func (x *Hits) GetRowData() [][]byte { + if x != nil { + return x.RowData } return nil } -func (x *CalcDistanceResults) GetFloatDist() *schemapb.FloatArray { - if x, ok := x.GetArray().(*CalcDistanceResults_FloatDist); ok { - return x.FloatDist +func (x *Hits) GetScores() []float32 { + if x != nil { + return x.Scores } return nil } -type isCalcDistanceResults_Array interface { - isCalcDistanceResults_Array() -} - -type CalcDistanceResults_IntDist struct { - IntDist *schemapb.IntArray `protobuf:"bytes,2,opt,name=int_dist,json=intDist,proto3,oneof"` -} - -type CalcDistanceResults_FloatDist struct { - FloatDist *schemapb.FloatArray `protobuf:"bytes,3,opt,name=float_dist,json=floatDist,proto3,oneof"` -} - -func (*CalcDistanceResults_IntDist) isCalcDistanceResults_Array() {} - -func (*CalcDistanceResults_FloatDist) isCalcDistanceResults_Array() {} - -// Deprecated, FlushAll semantics changed to flushing the entire cluster. -// Specific collection to flush with database context -// This message allows targeting specific collections within a database for flush operations -type FlushAllTarget struct { +type SearchResults struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Database name to target for flush operation - DbName string `protobuf:"bytes,1,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - // Collection names within this database to flush - // If empty, flush all collections in this database - CollectionNames []string `protobuf:"bytes,2,rep,name=collection_names,json=collectionNames,proto3" json:"collection_names,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Results *schemapb.SearchResultData `protobuf:"bytes,2,opt,name=results,proto3" json:"results,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + SessionTs uint64 `protobuf:"varint,4,opt,name=session_ts,json=sessionTs,proto3" json:"session_ts,omitempty"` // for session-like operation like iterator } -func (x *FlushAllTarget) Reset() { - *x = FlushAllTarget{} +func (x *SearchResults) Reset() { + *x = SearchResults{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[73] + mi := &file_milvus_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlushAllTarget) String() string { +func (x *SearchResults) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlushAllTarget) ProtoMessage() {} +func (*SearchResults) ProtoMessage() {} -func (x *FlushAllTarget) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[73] +func (x *SearchResults) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6823,54 +6729,77 @@ func (x *FlushAllTarget) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlushAllTarget.ProtoReflect.Descriptor instead. -func (*FlushAllTarget) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{73} +// Deprecated: Use SearchResults.ProtoReflect.Descriptor instead. +func (*SearchResults) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{75} } -func (x *FlushAllTarget) GetDbName() string { +func (x *SearchResults) GetStatus() *commonpb.Status { if x != nil { - return x.DbName + return x.Status } - return "" + return nil } -func (x *FlushAllTarget) GetCollectionNames() []string { +func (x *SearchResults) GetResults() *schemapb.SearchResultData { if x != nil { - return x.CollectionNames + return x.Results } return nil } -type FlushAllRequest struct { +func (x *SearchResults) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" +} + +func (x *SearchResults) GetSessionTs() uint64 { + if x != nil { + return x.SessionTs + } + return 0 +} + +type HybridSearchRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - // Deprecated: Marked as deprecated in milvus.proto. - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - // Deprecated: Marked as deprecated in milvus.proto. - FlushTargets []*FlushAllTarget `protobuf:"bytes,3,rep,name=flush_targets,json=flushTargets,proto3" json:"flush_targets,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` // must + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // must + PartitionNames []string `protobuf:"bytes,4,rep,name=partition_names,json=partitionNames,proto3" json:"partition_names,omitempty"` // must + Requests []*SearchRequest `protobuf:"bytes,5,rep,name=requests,proto3" json:"requests,omitempty"` + RankParams []*commonpb.KeyValuePair `protobuf:"bytes,6,rep,name=rank_params,json=rankParams,proto3" json:"rank_params,omitempty"` // must + TravelTimestamp uint64 `protobuf:"varint,7,opt,name=travel_timestamp,json=travelTimestamp,proto3" json:"travel_timestamp,omitempty"` + GuaranteeTimestamp uint64 `protobuf:"varint,8,opt,name=guarantee_timestamp,json=guaranteeTimestamp,proto3" json:"guarantee_timestamp,omitempty"` // guarantee_timestamp + NotReturnAllMeta bool `protobuf:"varint,9,opt,name=not_return_all_meta,json=notReturnAllMeta,proto3" json:"not_return_all_meta,omitempty"` + OutputFields []string `protobuf:"bytes,10,rep,name=output_fields,json=outputFields,proto3" json:"output_fields,omitempty"` + ConsistencyLevel commonpb.ConsistencyLevel `protobuf:"varint,11,opt,name=consistency_level,json=consistencyLevel,proto3,enum=milvus.proto.common.ConsistencyLevel" json:"consistency_level,omitempty"` + UseDefaultConsistency bool `protobuf:"varint,12,opt,name=use_default_consistency,json=useDefaultConsistency,proto3" json:"use_default_consistency,omitempty"` + FunctionScore *schemapb.FunctionScore `protobuf:"bytes,13,opt,name=function_score,json=functionScore,proto3" json:"function_score,omitempty"` + Namespace *string `protobuf:"bytes,14,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` } -func (x *FlushAllRequest) Reset() { - *x = FlushAllRequest{} +func (x *HybridSearchRequest) Reset() { + *x = HybridSearchRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[74] + mi := &file_milvus_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlushAllRequest) String() string { +func (x *HybridSearchRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlushAllRequest) ProtoMessage() {} +func (*HybridSearchRequest) ProtoMessage() {} -func (x *FlushAllRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[74] +func (x *HybridSearchRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6881,197 +6810,121 @@ func (x *FlushAllRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlushAllRequest.ProtoReflect.Descriptor instead. -func (*FlushAllRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{74} +// Deprecated: Use HybridSearchRequest.ProtoReflect.Descriptor instead. +func (*HybridSearchRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{76} } -func (x *FlushAllRequest) GetBase() *commonpb.MsgBase { +func (x *HybridSearchRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -// Deprecated: Marked as deprecated in milvus.proto. -func (x *FlushAllRequest) GetDbName() string { +func (x *HybridSearchRequest) GetDbName() string { if x != nil { return x.DbName } return "" } -// Deprecated: Marked as deprecated in milvus.proto. -func (x *FlushAllRequest) GetFlushTargets() []*FlushAllTarget { +func (x *HybridSearchRequest) GetCollectionName() string { if x != nil { - return x.FlushTargets + return x.CollectionName } - return nil + return "" } -type ClusterInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *HybridSearchRequest) GetPartitionNames() []string { + if x != nil { + return x.PartitionNames + } + return nil +} - ClusterId string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` - Cchannel string `protobuf:"bytes,2,opt,name=cchannel,proto3" json:"cchannel,omitempty"` - Pchannels []string `protobuf:"bytes,3,rep,name=pchannels,proto3" json:"pchannels,omitempty"` +func (x *HybridSearchRequest) GetRequests() []*SearchRequest { + if x != nil { + return x.Requests + } + return nil } -func (x *ClusterInfo) Reset() { - *x = ClusterInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[75] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ClusterInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ClusterInfo) ProtoMessage() {} - -func (x *ClusterInfo) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[75] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ClusterInfo.ProtoReflect.Descriptor instead. -func (*ClusterInfo) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{75} -} - -func (x *ClusterInfo) GetClusterId() string { +func (x *HybridSearchRequest) GetRankParams() []*commonpb.KeyValuePair { if x != nil { - return x.ClusterId + return x.RankParams } - return "" + return nil } -func (x *ClusterInfo) GetCchannel() string { +func (x *HybridSearchRequest) GetTravelTimestamp() uint64 { if x != nil { - return x.Cchannel + return x.TravelTimestamp } - return "" + return 0 } -func (x *ClusterInfo) GetPchannels() []string { +func (x *HybridSearchRequest) GetGuaranteeTimestamp() uint64 { if x != nil { - return x.Pchannels - } - return nil -} - -type FlushAllResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - // Deprecated: Marked as deprecated in milvus.proto. - FlushAllTs uint64 `protobuf:"varint,2,opt,name=flush_all_ts,json=flushAllTs,proto3" json:"flush_all_ts,omitempty"` - // Deprecated: Marked as deprecated in milvus.proto. - FlushResults []*FlushAllResult `protobuf:"bytes,3,rep,name=flush_results,json=flushResults,proto3" json:"flush_results,omitempty"` - FlushAllMsgs map[string]*commonpb.ImmutableMessage `protobuf:"bytes,4,rep,name=flush_all_msgs,json=flushAllMsgs,proto3" json:"flush_all_msgs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // pchannel -> FlushAllMsg - ClusterInfo *ClusterInfo `protobuf:"bytes,5,opt,name=cluster_info,json=clusterInfo,proto3" json:"cluster_info,omitempty"` -} - -func (x *FlushAllResponse) Reset() { - *x = FlushAllResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[76] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + return x.GuaranteeTimestamp } + return 0 } -func (x *FlushAllResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FlushAllResponse) ProtoMessage() {} - -func (x *FlushAllResponse) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[76] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *HybridSearchRequest) GetNotReturnAllMeta() bool { + if x != nil { + return x.NotReturnAllMeta } - return mi.MessageOf(x) -} - -// Deprecated: Use FlushAllResponse.ProtoReflect.Descriptor instead. -func (*FlushAllResponse) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{76} + return false } -func (x *FlushAllResponse) GetStatus() *commonpb.Status { +func (x *HybridSearchRequest) GetOutputFields() []string { if x != nil { - return x.Status + return x.OutputFields } return nil } -// Deprecated: Marked as deprecated in milvus.proto. -func (x *FlushAllResponse) GetFlushAllTs() uint64 { +func (x *HybridSearchRequest) GetConsistencyLevel() commonpb.ConsistencyLevel { if x != nil { - return x.FlushAllTs + return x.ConsistencyLevel } - return 0 + return commonpb.ConsistencyLevel(0) } -// Deprecated: Marked as deprecated in milvus.proto. -func (x *FlushAllResponse) GetFlushResults() []*FlushAllResult { +func (x *HybridSearchRequest) GetUseDefaultConsistency() bool { if x != nil { - return x.FlushResults + return x.UseDefaultConsistency } - return nil + return false } -func (x *FlushAllResponse) GetFlushAllMsgs() map[string]*commonpb.ImmutableMessage { +func (x *HybridSearchRequest) GetFunctionScore() *schemapb.FunctionScore { if x != nil { - return x.FlushAllMsgs + return x.FunctionScore } return nil } -func (x *FlushAllResponse) GetClusterInfo() *ClusterInfo { - if x != nil { - return x.ClusterInfo +func (x *HybridSearchRequest) GetNamespace() string { + if x != nil && x.Namespace != nil { + return *x.Namespace } - return nil + return "" } -// Deprecated -// Flush result for a single flush target -type FlushAllResult struct { +type FlushRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Database name containing the collections - DbName string `protobuf:"bytes,1,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - // List of collections that were actually processed for this target - // If the target had empty collection_names (flush all), this shows all collections in the database - // If the target specified collection_names, this shows only those collections - CollectionResults []*FlushCollectionResult `protobuf:"bytes,2,rep,name=collection_results,json=collectionResults,proto3" json:"collection_results,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionNames []string `protobuf:"bytes,3,rep,name=collection_names,json=collectionNames,proto3" json:"collection_names,omitempty"` } -func (x *FlushAllResult) Reset() { - *x = FlushAllResult{} +func (x *FlushRequest) Reset() { + *x = FlushRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7079,13 +6932,13 @@ func (x *FlushAllResult) Reset() { } } -func (x *FlushAllResult) String() string { +func (x *FlushRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlushAllResult) ProtoMessage() {} +func (*FlushRequest) ProtoMessage() {} -func (x *FlushAllResult) ProtoReflect() protoreflect.Message { +func (x *FlushRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7097,46 +6950,48 @@ func (x *FlushAllResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlushAllResult.ProtoReflect.Descriptor instead. -func (*FlushAllResult) Descriptor() ([]byte, []int) { +// Deprecated: Use FlushRequest.ProtoReflect.Descriptor instead. +func (*FlushRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{77} } -func (x *FlushAllResult) GetDbName() string { +func (x *FlushRequest) GetBase() *commonpb.MsgBase { + if x != nil { + return x.Base + } + return nil +} + +func (x *FlushRequest) GetDbName() string { if x != nil { return x.DbName } return "" } -func (x *FlushAllResult) GetCollectionResults() []*FlushCollectionResult { +func (x *FlushRequest) GetCollectionNames() []string { if x != nil { - return x.CollectionResults + return x.CollectionNames } return nil } -type FlushCollectionResult struct { +type FlushResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Collection name - CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - // Segment IDs - SegmentIds *schemapb.LongArray `protobuf:"bytes,2,opt,name=segment_ids,json=segmentIds,proto3" json:"segment_ids,omitempty"` - // Segment IDs that were actually flushed - FlushSegmentIds *schemapb.LongArray `protobuf:"bytes,3,opt,name=flush_segment_ids,json=flushSegmentIds,proto3" json:"flush_segment_ids,omitempty"` - // Seal time (physical time for backup tools) - SealTime int64 `protobuf:"varint,4,opt,name=seal_time,json=sealTime,proto3" json:"seal_time,omitempty"` - // Flush timestamp (hybrid timestamp for getting flush state) - FlushTs uint64 `protobuf:"varint,5,opt,name=flush_ts,json=flushTs,proto3" json:"flush_ts,omitempty"` - // channel name to checkpoint position - ChannelCps map[string]*msgpb.MsgPosition `protobuf:"bytes,6,rep,name=channel_cps,json=channelCps,proto3" json:"channel_cps,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollSegIDs map[string]*schemapb.LongArray `protobuf:"bytes,3,rep,name=coll_segIDs,json=collSegIDs,proto3" json:"coll_segIDs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + FlushCollSegIDs map[string]*schemapb.LongArray `protobuf:"bytes,4,rep,name=flush_coll_segIDs,json=flushCollSegIDs,proto3" json:"flush_coll_segIDs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + CollSealTimes map[string]int64 `protobuf:"bytes,5,rep,name=coll_seal_times,json=collSealTimes,proto3" json:"coll_seal_times,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // physical time for backup tool + CollFlushTs map[string]uint64 `protobuf:"bytes,6,rep,name=coll_flush_ts,json=collFlushTs,proto3" json:"coll_flush_ts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // hybrid ts for geting flush tate + ChannelCps map[string]*msgpb.MsgPosition `protobuf:"bytes,7,rep,name=channel_cps,json=channelCps,proto3" json:"channel_cps,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } -func (x *FlushCollectionResult) Reset() { - *x = FlushCollectionResult{} +func (x *FlushResponse) Reset() { + *x = FlushResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7144,13 +6999,13 @@ func (x *FlushCollectionResult) Reset() { } } -func (x *FlushCollectionResult) String() string { +func (x *FlushResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlushCollectionResult) ProtoMessage() {} +func (*FlushResponse) ProtoMessage() {} -func (x *FlushCollectionResult) ProtoReflect() protoreflect.Message { +func (x *FlushResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7162,84 +7017,97 @@ func (x *FlushCollectionResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlushCollectionResult.ProtoReflect.Descriptor instead. -func (*FlushCollectionResult) Descriptor() ([]byte, []int) { +// Deprecated: Use FlushResponse.ProtoReflect.Descriptor instead. +func (*FlushResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{78} } -func (x *FlushCollectionResult) GetCollectionName() string { +func (x *FlushResponse) GetStatus() *commonpb.Status { if x != nil { - return x.CollectionName + return x.Status + } + return nil +} + +func (x *FlushResponse) GetDbName() string { + if x != nil { + return x.DbName } return "" } -func (x *FlushCollectionResult) GetSegmentIds() *schemapb.LongArray { +func (x *FlushResponse) GetCollSegIDs() map[string]*schemapb.LongArray { if x != nil { - return x.SegmentIds + return x.CollSegIDs } return nil } -func (x *FlushCollectionResult) GetFlushSegmentIds() *schemapb.LongArray { +func (x *FlushResponse) GetFlushCollSegIDs() map[string]*schemapb.LongArray { if x != nil { - return x.FlushSegmentIds + return x.FlushCollSegIDs } return nil } -func (x *FlushCollectionResult) GetSealTime() int64 { +func (x *FlushResponse) GetCollSealTimes() map[string]int64 { if x != nil { - return x.SealTime + return x.CollSealTimes } - return 0 + return nil } -func (x *FlushCollectionResult) GetFlushTs() uint64 { +func (x *FlushResponse) GetCollFlushTs() map[string]uint64 { if x != nil { - return x.FlushTs + return x.CollFlushTs } - return 0 + return nil } -func (x *FlushCollectionResult) GetChannelCps() map[string]*msgpb.MsgPosition { +func (x *FlushResponse) GetChannelCps() map[string]*msgpb.MsgPosition { if x != nil { return x.ChannelCps } return nil } -type PersistentSegmentInfo struct { +type QueryRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SegmentID int64 `protobuf:"varint,1,opt,name=segmentID,proto3" json:"segmentID,omitempty"` - CollectionID int64 `protobuf:"varint,2,opt,name=collectionID,proto3" json:"collectionID,omitempty"` - PartitionID int64 `protobuf:"varint,3,opt,name=partitionID,proto3" json:"partitionID,omitempty"` - NumRows int64 `protobuf:"varint,4,opt,name=num_rows,json=numRows,proto3" json:"num_rows,omitempty"` - State commonpb.SegmentState `protobuf:"varint,5,opt,name=state,proto3,enum=milvus.proto.common.SegmentState" json:"state,omitempty"` - Level commonpb.SegmentLevel `protobuf:"varint,6,opt,name=level,proto3,enum=milvus.proto.common.SegmentLevel" json:"level,omitempty"` - IsSorted bool `protobuf:"varint,7,opt,name=is_sorted,json=isSorted,proto3" json:"is_sorted,omitempty"` - StorageVersion int64 `protobuf:"varint,8,opt,name=storage_version,json=storageVersion,proto3" json:"storage_version,omitempty"` -} - -func (x *PersistentSegmentInfo) Reset() { - *x = PersistentSegmentInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[79] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PersistentSegmentInfo) String() string { + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + Expr string `protobuf:"bytes,4,opt,name=expr,proto3" json:"expr,omitempty"` + OutputFields []string `protobuf:"bytes,5,rep,name=output_fields,json=outputFields,proto3" json:"output_fields,omitempty"` + PartitionNames []string `protobuf:"bytes,6,rep,name=partition_names,json=partitionNames,proto3" json:"partition_names,omitempty"` + TravelTimestamp uint64 `protobuf:"varint,7,opt,name=travel_timestamp,json=travelTimestamp,proto3" json:"travel_timestamp,omitempty"` + GuaranteeTimestamp uint64 `protobuf:"varint,8,opt,name=guarantee_timestamp,json=guaranteeTimestamp,proto3" json:"guarantee_timestamp,omitempty"` // guarantee_timestamp + QueryParams []*commonpb.KeyValuePair `protobuf:"bytes,9,rep,name=query_params,json=queryParams,proto3" json:"query_params,omitempty"` // optional + NotReturnAllMeta bool `protobuf:"varint,10,opt,name=not_return_all_meta,json=notReturnAllMeta,proto3" json:"not_return_all_meta,omitempty"` + ConsistencyLevel commonpb.ConsistencyLevel `protobuf:"varint,11,opt,name=consistency_level,json=consistencyLevel,proto3,enum=milvus.proto.common.ConsistencyLevel" json:"consistency_level,omitempty"` + UseDefaultConsistency bool `protobuf:"varint,12,opt,name=use_default_consistency,json=useDefaultConsistency,proto3" json:"use_default_consistency,omitempty"` + ExprTemplateValues map[string]*schemapb.TemplateValue `protobuf:"bytes,13,rep,name=expr_template_values,json=exprTemplateValues,proto3" json:"expr_template_values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Namespace *string `protobuf:"bytes,14,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` +} + +func (x *QueryRequest) Reset() { + *x = QueryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PersistentSegmentInfo) ProtoMessage() {} +func (*QueryRequest) ProtoMessage() {} -func (x *PersistentSegmentInfo) ProtoReflect() protoreflect.Message { +func (x *QueryRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7251,79 +7119,119 @@ func (x *PersistentSegmentInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PersistentSegmentInfo.ProtoReflect.Descriptor instead. -func (*PersistentSegmentInfo) Descriptor() ([]byte, []int) { +// Deprecated: Use QueryRequest.ProtoReflect.Descriptor instead. +func (*QueryRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{79} } -func (x *PersistentSegmentInfo) GetSegmentID() int64 { +func (x *QueryRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.SegmentID + return x.Base } - return 0 + return nil } -func (x *PersistentSegmentInfo) GetCollectionID() int64 { +func (x *QueryRequest) GetDbName() string { if x != nil { - return x.CollectionID + return x.DbName } - return 0 + return "" } -func (x *PersistentSegmentInfo) GetPartitionID() int64 { +func (x *QueryRequest) GetCollectionName() string { if x != nil { - return x.PartitionID + return x.CollectionName + } + return "" +} + +func (x *QueryRequest) GetExpr() string { + if x != nil { + return x.Expr + } + return "" +} + +func (x *QueryRequest) GetOutputFields() []string { + if x != nil { + return x.OutputFields + } + return nil +} + +func (x *QueryRequest) GetPartitionNames() []string { + if x != nil { + return x.PartitionNames + } + return nil +} + +func (x *QueryRequest) GetTravelTimestamp() uint64 { + if x != nil { + return x.TravelTimestamp } return 0 } -func (x *PersistentSegmentInfo) GetNumRows() int64 { +func (x *QueryRequest) GetGuaranteeTimestamp() uint64 { if x != nil { - return x.NumRows + return x.GuaranteeTimestamp } return 0 } -func (x *PersistentSegmentInfo) GetState() commonpb.SegmentState { +func (x *QueryRequest) GetQueryParams() []*commonpb.KeyValuePair { if x != nil { - return x.State + return x.QueryParams } - return commonpb.SegmentState(0) + return nil } -func (x *PersistentSegmentInfo) GetLevel() commonpb.SegmentLevel { +func (x *QueryRequest) GetNotReturnAllMeta() bool { if x != nil { - return x.Level + return x.NotReturnAllMeta } - return commonpb.SegmentLevel(0) + return false } -func (x *PersistentSegmentInfo) GetIsSorted() bool { +func (x *QueryRequest) GetConsistencyLevel() commonpb.ConsistencyLevel { if x != nil { - return x.IsSorted + return x.ConsistencyLevel + } + return commonpb.ConsistencyLevel(0) +} + +func (x *QueryRequest) GetUseDefaultConsistency() bool { + if x != nil { + return x.UseDefaultConsistency } return false } -func (x *PersistentSegmentInfo) GetStorageVersion() int64 { +func (x *QueryRequest) GetExprTemplateValues() map[string]*schemapb.TemplateValue { if x != nil { - return x.StorageVersion + return x.ExprTemplateValues } - return 0 + return nil } -type GetPersistentSegmentInfoRequest struct { +func (x *QueryRequest) GetNamespace() string { + if x != nil && x.Namespace != nil { + return *x.Namespace + } + return "" +} + +type ElementIndices struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` // must - DbName string `protobuf:"bytes,2,opt,name=dbName,proto3" json:"dbName,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collectionName,proto3" json:"collectionName,omitempty"` // must + Indices *schemapb.LongArray `protobuf:"bytes,1,opt,name=indices,proto3" json:"indices,omitempty"` } -func (x *GetPersistentSegmentInfoRequest) Reset() { - *x = GetPersistentSegmentInfoRequest{} +func (x *ElementIndices) Reset() { + *x = ElementIndices{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7331,13 +7239,13 @@ func (x *GetPersistentSegmentInfoRequest) Reset() { } } -func (x *GetPersistentSegmentInfoRequest) String() string { +func (x *ElementIndices) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetPersistentSegmentInfoRequest) ProtoMessage() {} +func (*ElementIndices) ProtoMessage() {} -func (x *GetPersistentSegmentInfoRequest) ProtoReflect() protoreflect.Message { +func (x *ElementIndices) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7349,43 +7257,34 @@ func (x *GetPersistentSegmentInfoRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetPersistentSegmentInfoRequest.ProtoReflect.Descriptor instead. -func (*GetPersistentSegmentInfoRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ElementIndices.ProtoReflect.Descriptor instead. +func (*ElementIndices) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{80} } -func (x *GetPersistentSegmentInfoRequest) GetBase() *commonpb.MsgBase { +func (x *ElementIndices) GetIndices() *schemapb.LongArray { if x != nil { - return x.Base + return x.Indices } return nil } -func (x *GetPersistentSegmentInfoRequest) GetDbName() string { - if x != nil { - return x.DbName - } - return "" -} - -func (x *GetPersistentSegmentInfoRequest) GetCollectionName() string { - if x != nil { - return x.CollectionName - } - return "" -} - -type GetPersistentSegmentInfoResponse struct { +type QueryResults struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Infos []*PersistentSegmentInfo `protobuf:"bytes,2,rep,name=infos,proto3" json:"infos,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + FieldsData []*schemapb.FieldData `protobuf:"bytes,2,rep,name=fields_data,json=fieldsData,proto3" json:"fields_data,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + OutputFields []string `protobuf:"bytes,4,rep,name=output_fields,json=outputFields,proto3" json:"output_fields,omitempty"` + SessionTs uint64 `protobuf:"varint,5,opt,name=session_ts,json=sessionTs,proto3" json:"session_ts,omitempty"` // for session-like operation like iterator + PrimaryFieldName string `protobuf:"bytes,6,opt,name=primary_field_name,json=primaryFieldName,proto3" json:"primary_field_name,omitempty"` + ElementIndices []*ElementIndices `protobuf:"bytes,7,rep,name=element_indices,json=elementIndices,proto3" json:"element_indices,omitempty"` } -func (x *GetPersistentSegmentInfoResponse) Reset() { - *x = GetPersistentSegmentInfoResponse{} +func (x *QueryResults) Reset() { + *x = QueryResults{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7393,13 +7292,13 @@ func (x *GetPersistentSegmentInfoResponse) Reset() { } } -func (x *GetPersistentSegmentInfoResponse) String() string { +func (x *QueryResults) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetPersistentSegmentInfoResponse) ProtoMessage() {} +func (*QueryResults) ProtoMessage() {} -func (x *GetPersistentSegmentInfoResponse) ProtoReflect() protoreflect.Message { +func (x *QueryResults) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7411,50 +7310,75 @@ func (x *GetPersistentSegmentInfoResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetPersistentSegmentInfoResponse.ProtoReflect.Descriptor instead. -func (*GetPersistentSegmentInfoResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use QueryResults.ProtoReflect.Descriptor instead. +func (*QueryResults) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{81} } -func (x *GetPersistentSegmentInfoResponse) GetStatus() *commonpb.Status { +func (x *QueryResults) GetStatus() *commonpb.Status { if x != nil { return x.Status } return nil } -func (x *GetPersistentSegmentInfoResponse) GetInfos() []*PersistentSegmentInfo { +func (x *QueryResults) GetFieldsData() []*schemapb.FieldData { if x != nil { - return x.Infos + return x.FieldsData } return nil } -type QuerySegmentInfo struct { +func (x *QueryResults) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" +} + +func (x *QueryResults) GetOutputFields() []string { + if x != nil { + return x.OutputFields + } + return nil +} + +func (x *QueryResults) GetSessionTs() uint64 { + if x != nil { + return x.SessionTs + } + return 0 +} + +func (x *QueryResults) GetPrimaryFieldName() string { + if x != nil { + return x.PrimaryFieldName + } + return "" +} + +func (x *QueryResults) GetElementIndices() []*ElementIndices { + if x != nil { + return x.ElementIndices + } + return nil +} + +type QueryCursor struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SegmentID int64 `protobuf:"varint,1,opt,name=segmentID,proto3" json:"segmentID,omitempty"` - CollectionID int64 `protobuf:"varint,2,opt,name=collectionID,proto3" json:"collectionID,omitempty"` - PartitionID int64 `protobuf:"varint,3,opt,name=partitionID,proto3" json:"partitionID,omitempty"` - MemSize int64 `protobuf:"varint,4,opt,name=mem_size,json=memSize,proto3" json:"mem_size,omitempty"` - NumRows int64 `protobuf:"varint,5,opt,name=num_rows,json=numRows,proto3" json:"num_rows,omitempty"` - IndexName string `protobuf:"bytes,6,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` - IndexID int64 `protobuf:"varint,7,opt,name=indexID,proto3" json:"indexID,omitempty"` - // deprecated, check node_ids(NodeIds) field + SessionTs uint64 `protobuf:"varint,1,opt,name=session_ts,json=sessionTs,proto3" json:"session_ts,omitempty"` + // Types that are assignable to CursorPk: // - // Deprecated: Marked as deprecated in milvus.proto. - NodeID int64 `protobuf:"varint,8,opt,name=nodeID,proto3" json:"nodeID,omitempty"` - State commonpb.SegmentState `protobuf:"varint,9,opt,name=state,proto3,enum=milvus.proto.common.SegmentState" json:"state,omitempty"` - NodeIds []int64 `protobuf:"varint,10,rep,packed,name=nodeIds,proto3" json:"nodeIds,omitempty"` - Level commonpb.SegmentLevel `protobuf:"varint,11,opt,name=level,proto3,enum=milvus.proto.common.SegmentLevel" json:"level,omitempty"` - IsSorted bool `protobuf:"varint,12,opt,name=is_sorted,json=isSorted,proto3" json:"is_sorted,omitempty"` - StorageVersion int64 `protobuf:"varint,13,opt,name=storage_version,json=storageVersion,proto3" json:"storage_version,omitempty"` + // *QueryCursor_StrPk + // *QueryCursor_IntPk + CursorPk isQueryCursor_CursorPk `protobuf_oneof:"cursor_pk"` } -func (x *QuerySegmentInfo) Reset() { - *x = QuerySegmentInfo{} +func (x *QueryCursor) Reset() { + *x = QueryCursor{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7462,13 +7386,13 @@ func (x *QuerySegmentInfo) Reset() { } } -func (x *QuerySegmentInfo) String() string { +func (x *QueryCursor) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QuerySegmentInfo) ProtoMessage() {} +func (*QueryCursor) ProtoMessage() {} -func (x *QuerySegmentInfo) ProtoReflect() protoreflect.Message { +func (x *QueryCursor) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7480,115 +7404,68 @@ func (x *QuerySegmentInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use QuerySegmentInfo.ProtoReflect.Descriptor instead. -func (*QuerySegmentInfo) Descriptor() ([]byte, []int) { +// Deprecated: Use QueryCursor.ProtoReflect.Descriptor instead. +func (*QueryCursor) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{82} } -func (x *QuerySegmentInfo) GetSegmentID() int64 { - if x != nil { - return x.SegmentID - } - return 0 -} - -func (x *QuerySegmentInfo) GetCollectionID() int64 { - if x != nil { - return x.CollectionID - } - return 0 -} - -func (x *QuerySegmentInfo) GetPartitionID() int64 { - if x != nil { - return x.PartitionID - } - return 0 -} - -func (x *QuerySegmentInfo) GetMemSize() int64 { +func (x *QueryCursor) GetSessionTs() uint64 { if x != nil { - return x.MemSize + return x.SessionTs } return 0 } -func (x *QuerySegmentInfo) GetNumRows() int64 { - if x != nil { - return x.NumRows +func (m *QueryCursor) GetCursorPk() isQueryCursor_CursorPk { + if m != nil { + return m.CursorPk } - return 0 + return nil } -func (x *QuerySegmentInfo) GetIndexName() string { - if x != nil { - return x.IndexName +func (x *QueryCursor) GetStrPk() string { + if x, ok := x.GetCursorPk().(*QueryCursor_StrPk); ok { + return x.StrPk } return "" } -func (x *QuerySegmentInfo) GetIndexID() int64 { - if x != nil { - return x.IndexID - } - return 0 -} - -// Deprecated: Marked as deprecated in milvus.proto. -func (x *QuerySegmentInfo) GetNodeID() int64 { - if x != nil { - return x.NodeID +func (x *QueryCursor) GetIntPk() int64 { + if x, ok := x.GetCursorPk().(*QueryCursor_IntPk); ok { + return x.IntPk } return 0 } -func (x *QuerySegmentInfo) GetState() commonpb.SegmentState { - if x != nil { - return x.State - } - return commonpb.SegmentState(0) +type isQueryCursor_CursorPk interface { + isQueryCursor_CursorPk() } -func (x *QuerySegmentInfo) GetNodeIds() []int64 { - if x != nil { - return x.NodeIds - } - return nil +type QueryCursor_StrPk struct { + StrPk string `protobuf:"bytes,2,opt,name=str_pk,json=strPk,proto3,oneof"` } -func (x *QuerySegmentInfo) GetLevel() commonpb.SegmentLevel { - if x != nil { - return x.Level - } - return commonpb.SegmentLevel(0) +type QueryCursor_IntPk struct { + IntPk int64 `protobuf:"varint,3,opt,name=int_pk,json=intPk,proto3,oneof"` } -func (x *QuerySegmentInfo) GetIsSorted() bool { - if x != nil { - return x.IsSorted - } - return false -} +func (*QueryCursor_StrPk) isQueryCursor_CursorPk() {} -func (x *QuerySegmentInfo) GetStorageVersion() int64 { - if x != nil { - return x.StorageVersion - } - return 0 -} +func (*QueryCursor_IntPk) isQueryCursor_CursorPk() {} -type GetQuerySegmentInfoRequest struct { +type VectorIDs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` // must - DbName string `protobuf:"bytes,2,opt,name=dbName,proto3" json:"dbName,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collectionName,proto3" json:"collectionName,omitempty"` // must + CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + FieldName string `protobuf:"bytes,2,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` + IdArray *schemapb.IDs `protobuf:"bytes,3,opt,name=id_array,json=idArray,proto3" json:"id_array,omitempty"` + PartitionNames []string `protobuf:"bytes,4,rep,name=partition_names,json=partitionNames,proto3" json:"partition_names,omitempty"` } -func (x *GetQuerySegmentInfoRequest) Reset() { - *x = GetQuerySegmentInfoRequest{} +func (x *VectorIDs) Reset() { + *x = VectorIDs{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7596,13 +7473,13 @@ func (x *GetQuerySegmentInfoRequest) Reset() { } } -func (x *GetQuerySegmentInfoRequest) String() string { +func (x *VectorIDs) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetQuerySegmentInfoRequest) ProtoMessage() {} +func (*VectorIDs) ProtoMessage() {} -func (x *GetQuerySegmentInfoRequest) ProtoReflect() protoreflect.Message { +func (x *VectorIDs) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7614,43 +7491,53 @@ func (x *GetQuerySegmentInfoRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetQuerySegmentInfoRequest.ProtoReflect.Descriptor instead. -func (*GetQuerySegmentInfoRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use VectorIDs.ProtoReflect.Descriptor instead. +func (*VectorIDs) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{83} } -func (x *GetQuerySegmentInfoRequest) GetBase() *commonpb.MsgBase { +func (x *VectorIDs) GetCollectionName() string { if x != nil { - return x.Base + return x.CollectionName } - return nil + return "" } -func (x *GetQuerySegmentInfoRequest) GetDbName() string { +func (x *VectorIDs) GetFieldName() string { if x != nil { - return x.DbName + return x.FieldName } return "" } -func (x *GetQuerySegmentInfoRequest) GetCollectionName() string { +func (x *VectorIDs) GetIdArray() *schemapb.IDs { if x != nil { - return x.CollectionName + return x.IdArray } - return "" + return nil } -type GetQuerySegmentInfoResponse struct { +func (x *VectorIDs) GetPartitionNames() []string { + if x != nil { + return x.PartitionNames + } + return nil +} + +type VectorsArray struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Infos []*QuerySegmentInfo `protobuf:"bytes,2,rep,name=infos,proto3" json:"infos,omitempty"` + // Types that are assignable to Array: + // + // *VectorsArray_IdArray + // *VectorsArray_DataArray + Array isVectorsArray_Array `protobuf_oneof:"array"` } -func (x *GetQuerySegmentInfoResponse) Reset() { - *x = GetQuerySegmentInfoResponse{} +func (x *VectorsArray) Reset() { + *x = VectorsArray{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7658,13 +7545,13 @@ func (x *GetQuerySegmentInfoResponse) Reset() { } } -func (x *GetQuerySegmentInfoResponse) String() string { +func (x *VectorsArray) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetQuerySegmentInfoResponse) ProtoMessage() {} +func (*VectorsArray) ProtoMessage() {} -func (x *GetQuerySegmentInfoResponse) ProtoReflect() protoreflect.Message { +func (x *VectorsArray) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7676,35 +7563,61 @@ func (x *GetQuerySegmentInfoResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetQuerySegmentInfoResponse.ProtoReflect.Descriptor instead. -func (*GetQuerySegmentInfoResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use VectorsArray.ProtoReflect.Descriptor instead. +func (*VectorsArray) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{84} } -func (x *GetQuerySegmentInfoResponse) GetStatus() *commonpb.Status { - if x != nil { - return x.Status +func (m *VectorsArray) GetArray() isVectorsArray_Array { + if m != nil { + return m.Array } return nil } -func (x *GetQuerySegmentInfoResponse) GetInfos() []*QuerySegmentInfo { - if x != nil { - return x.Infos +func (x *VectorsArray) GetIdArray() *VectorIDs { + if x, ok := x.GetArray().(*VectorsArray_IdArray); ok { + return x.IdArray } return nil } -type DummyRequest struct { +func (x *VectorsArray) GetDataArray() *schemapb.VectorField { + if x, ok := x.GetArray().(*VectorsArray_DataArray); ok { + return x.DataArray + } + return nil +} + +type isVectorsArray_Array interface { + isVectorsArray_Array() +} + +type VectorsArray_IdArray struct { + IdArray *VectorIDs `protobuf:"bytes,1,opt,name=id_array,json=idArray,proto3,oneof"` // vector ids +} + +type VectorsArray_DataArray struct { + DataArray *schemapb.VectorField `protobuf:"bytes,2,opt,name=data_array,json=dataArray,proto3,oneof"` // vectors data +} + +func (*VectorsArray_IdArray) isVectorsArray_Array() {} + +func (*VectorsArray_DataArray) isVectorsArray_Array() {} + +type CalcDistanceRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RequestType string `protobuf:"bytes,1,opt,name=request_type,json=requestType,proto3" json:"request_type,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + OpLeft *VectorsArray `protobuf:"bytes,2,opt,name=op_left,json=opLeft,proto3" json:"op_left,omitempty"` // vectors on the left of operator + OpRight *VectorsArray `protobuf:"bytes,3,opt,name=op_right,json=opRight,proto3" json:"op_right,omitempty"` // vectors on the right of operator + Params []*commonpb.KeyValuePair `protobuf:"bytes,4,rep,name=params,proto3" json:"params,omitempty"` // "metric":"L2"/"IP"/"HAMMIN"/"TANIMOTO" } -func (x *DummyRequest) Reset() { - *x = DummyRequest{} +func (x *CalcDistanceRequest) Reset() { + *x = CalcDistanceRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7712,13 +7625,13 @@ func (x *DummyRequest) Reset() { } } -func (x *DummyRequest) String() string { +func (x *CalcDistanceRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DummyRequest) ProtoMessage() {} +func (*CalcDistanceRequest) ProtoMessage() {} -func (x *DummyRequest) ProtoReflect() protoreflect.Message { +func (x *CalcDistanceRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7730,42 +7643,70 @@ func (x *DummyRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DummyRequest.ProtoReflect.Descriptor instead. -func (*DummyRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use CalcDistanceRequest.ProtoReflect.Descriptor instead. +func (*CalcDistanceRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{85} } -func (x *DummyRequest) GetRequestType() string { +func (x *CalcDistanceRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.RequestType + return x.Base } - return "" + return nil } -type DummyResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Response string `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"` +func (x *CalcDistanceRequest) GetOpLeft() *VectorsArray { + if x != nil { + return x.OpLeft + } + return nil } -func (x *DummyResponse) Reset() { - *x = DummyResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[86] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *CalcDistanceRequest) GetOpRight() *VectorsArray { + if x != nil { + return x.OpRight } + return nil } -func (x *DummyResponse) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *CalcDistanceRequest) GetParams() []*commonpb.KeyValuePair { + if x != nil { + return x.Params + } + return nil } -func (*DummyResponse) ProtoMessage() {} +type CalcDistanceResults struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *DummyResponse) ProtoReflect() protoreflect.Message { + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + // num(op_left)*num(op_right) distance values, "HAMMIN" return integer distance + // + // Types that are assignable to Array: + // + // *CalcDistanceResults_IntDist + // *CalcDistanceResults_FloatDist + Array isCalcDistanceResults_Array `protobuf_oneof:"array"` +} + +func (x *CalcDistanceResults) Reset() { + *x = CalcDistanceResults{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CalcDistanceResults) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CalcDistanceResults) ProtoMessage() {} + +func (x *CalcDistanceResults) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7777,82 +7718,87 @@ func (x *DummyResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DummyResponse.ProtoReflect.Descriptor instead. -func (*DummyResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use CalcDistanceResults.ProtoReflect.Descriptor instead. +func (*CalcDistanceResults) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{86} } -func (x *DummyResponse) GetResponse() string { +func (x *CalcDistanceResults) GetStatus() *commonpb.Status { if x != nil { - return x.Response + return x.Status } - return "" + return nil } -type RegisterLinkRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (m *CalcDistanceResults) GetArray() isCalcDistanceResults_Array { + if m != nil { + return m.Array + } + return nil } -func (x *RegisterLinkRequest) Reset() { - *x = RegisterLinkRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[87] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *CalcDistanceResults) GetIntDist() *schemapb.IntArray { + if x, ok := x.GetArray().(*CalcDistanceResults_IntDist); ok { + return x.IntDist } + return nil } -func (x *RegisterLinkRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *CalcDistanceResults) GetFloatDist() *schemapb.FloatArray { + if x, ok := x.GetArray().(*CalcDistanceResults_FloatDist); ok { + return x.FloatDist + } + return nil } -func (*RegisterLinkRequest) ProtoMessage() {} +type isCalcDistanceResults_Array interface { + isCalcDistanceResults_Array() +} -func (x *RegisterLinkRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[87] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +type CalcDistanceResults_IntDist struct { + IntDist *schemapb.IntArray `protobuf:"bytes,2,opt,name=int_dist,json=intDist,proto3,oneof"` } -// Deprecated: Use RegisterLinkRequest.ProtoReflect.Descriptor instead. -func (*RegisterLinkRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{87} +type CalcDistanceResults_FloatDist struct { + FloatDist *schemapb.FloatArray `protobuf:"bytes,3,opt,name=float_dist,json=floatDist,proto3,oneof"` } -type RegisterLinkResponse struct { +func (*CalcDistanceResults_IntDist) isCalcDistanceResults_Array() {} + +func (*CalcDistanceResults_FloatDist) isCalcDistanceResults_Array() {} + +// Deprecated, FlushAll semantics changed to flushing the entire cluster. +// Specific collection to flush with database context +// This message allows targeting specific collections within a database for flush operations +type FlushAllTarget struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Address *commonpb.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - Status *commonpb.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + // Database name to target for flush operation + DbName string `protobuf:"bytes,1,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + // Collection names within this database to flush + // If empty, flush all collections in this database + CollectionNames []string `protobuf:"bytes,2,rep,name=collection_names,json=collectionNames,proto3" json:"collection_names,omitempty"` } -func (x *RegisterLinkResponse) Reset() { - *x = RegisterLinkResponse{} +func (x *FlushAllTarget) Reset() { + *x = FlushAllTarget{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[88] + mi := &file_milvus_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RegisterLinkResponse) String() string { +func (x *FlushAllTarget) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RegisterLinkResponse) ProtoMessage() {} +func (*FlushAllTarget) ProtoMessage() {} -func (x *RegisterLinkResponse) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[88] +func (x *FlushAllTarget) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7863,51 +7809,54 @@ func (x *RegisterLinkResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RegisterLinkResponse.ProtoReflect.Descriptor instead. -func (*RegisterLinkResponse) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{88} +// Deprecated: Use FlushAllTarget.ProtoReflect.Descriptor instead. +func (*FlushAllTarget) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{87} } -func (x *RegisterLinkResponse) GetAddress() *commonpb.Address { +func (x *FlushAllTarget) GetDbName() string { if x != nil { - return x.Address + return x.DbName } - return nil + return "" } -func (x *RegisterLinkResponse) GetStatus() *commonpb.Status { +func (x *FlushAllTarget) GetCollectionNames() []string { if x != nil { - return x.Status + return x.CollectionNames } return nil } -type GetMetricsRequest struct { +type FlushAllRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - Request string `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` // request is of jsonic format + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + // Deprecated: Marked as deprecated in milvus.proto. + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + // Deprecated: Marked as deprecated in milvus.proto. + FlushTargets []*FlushAllTarget `protobuf:"bytes,3,rep,name=flush_targets,json=flushTargets,proto3" json:"flush_targets,omitempty"` } -func (x *GetMetricsRequest) Reset() { - *x = GetMetricsRequest{} +func (x *FlushAllRequest) Reset() { + *x = FlushAllRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[89] + mi := &file_milvus_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetMetricsRequest) String() string { +func (x *FlushAllRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetMetricsRequest) ProtoMessage() {} +func (*FlushAllRequest) ProtoMessage() {} -func (x *GetMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[89] +func (x *FlushAllRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7918,52 +7867,61 @@ func (x *GetMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetMetricsRequest.ProtoReflect.Descriptor instead. -func (*GetMetricsRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{89} +// Deprecated: Use FlushAllRequest.ProtoReflect.Descriptor instead. +func (*FlushAllRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{88} } -func (x *GetMetricsRequest) GetBase() *commonpb.MsgBase { +func (x *FlushAllRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *GetMetricsRequest) GetRequest() string { +// Deprecated: Marked as deprecated in milvus.proto. +func (x *FlushAllRequest) GetDbName() string { if x != nil { - return x.Request + return x.DbName } return "" } -type GetMetricsResponse struct { +// Deprecated: Marked as deprecated in milvus.proto. +func (x *FlushAllRequest) GetFlushTargets() []*FlushAllTarget { + if x != nil { + return x.FlushTargets + } + return nil +} + +type ClusterInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Response string `protobuf:"bytes,2,opt,name=response,proto3" json:"response,omitempty"` // response is of jsonic format - ComponentName string `protobuf:"bytes,3,opt,name=component_name,json=componentName,proto3" json:"component_name,omitempty"` // metrics from which component + ClusterId string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + Cchannel string `protobuf:"bytes,2,opt,name=cchannel,proto3" json:"cchannel,omitempty"` + Pchannels []string `protobuf:"bytes,3,rep,name=pchannels,proto3" json:"pchannels,omitempty"` } -func (x *GetMetricsResponse) Reset() { - *x = GetMetricsResponse{} +func (x *ClusterInfo) Reset() { + *x = ClusterInfo{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[90] + mi := &file_milvus_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetMetricsResponse) String() string { +func (x *ClusterInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetMetricsResponse) ProtoMessage() {} +func (*ClusterInfo) ProtoMessage() {} -func (x *GetMetricsResponse) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[90] +func (x *ClusterInfo) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7974,60 +7932,63 @@ func (x *GetMetricsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetMetricsResponse.ProtoReflect.Descriptor instead. -func (*GetMetricsResponse) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{90} +// Deprecated: Use ClusterInfo.ProtoReflect.Descriptor instead. +func (*ClusterInfo) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{89} } -func (x *GetMetricsResponse) GetStatus() *commonpb.Status { +func (x *ClusterInfo) GetClusterId() string { if x != nil { - return x.Status + return x.ClusterId } - return nil + return "" } -func (x *GetMetricsResponse) GetResponse() string { +func (x *ClusterInfo) GetCchannel() string { if x != nil { - return x.Response + return x.Cchannel } return "" } -func (x *GetMetricsResponse) GetComponentName() string { +func (x *ClusterInfo) GetPchannels() []string { if x != nil { - return x.ComponentName + return x.Pchannels } - return "" + return nil } -type ComponentInfo struct { +type FlushAllResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - NodeID int64 `protobuf:"varint,1,opt,name=nodeID,proto3" json:"nodeID,omitempty"` - Role string `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"` - StateCode commonpb.StateCode `protobuf:"varint,3,opt,name=state_code,json=stateCode,proto3,enum=milvus.proto.common.StateCode" json:"state_code,omitempty"` - ExtraInfo []*commonpb.KeyValuePair `protobuf:"bytes,4,rep,name=extra_info,json=extraInfo,proto3" json:"extra_info,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + // Deprecated: Marked as deprecated in milvus.proto. + FlushAllTs uint64 `protobuf:"varint,2,opt,name=flush_all_ts,json=flushAllTs,proto3" json:"flush_all_ts,omitempty"` + // Deprecated: Marked as deprecated in milvus.proto. + FlushResults []*FlushAllResult `protobuf:"bytes,3,rep,name=flush_results,json=flushResults,proto3" json:"flush_results,omitempty"` + FlushAllMsgs map[string]*commonpb.ImmutableMessage `protobuf:"bytes,4,rep,name=flush_all_msgs,json=flushAllMsgs,proto3" json:"flush_all_msgs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // pchannel -> FlushAllMsg + ClusterInfo *ClusterInfo `protobuf:"bytes,5,opt,name=cluster_info,json=clusterInfo,proto3" json:"cluster_info,omitempty"` } -func (x *ComponentInfo) Reset() { - *x = ComponentInfo{} +func (x *FlushAllResponse) Reset() { + *x = FlushAllResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[91] + mi := &file_milvus_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ComponentInfo) String() string { +func (x *FlushAllResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ComponentInfo) ProtoMessage() {} +func (*FlushAllResponse) ProtoMessage() {} -func (x *ComponentInfo) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[91] +func (x *FlushAllResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8038,66 +7999,80 @@ func (x *ComponentInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ComponentInfo.ProtoReflect.Descriptor instead. -func (*ComponentInfo) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{91} +// Deprecated: Use FlushAllResponse.ProtoReflect.Descriptor instead. +func (*FlushAllResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{90} } -func (x *ComponentInfo) GetNodeID() int64 { +func (x *FlushAllResponse) GetStatus() *commonpb.Status { if x != nil { - return x.NodeID + return x.Status } - return 0 + return nil } -func (x *ComponentInfo) GetRole() string { +// Deprecated: Marked as deprecated in milvus.proto. +func (x *FlushAllResponse) GetFlushAllTs() uint64 { if x != nil { - return x.Role + return x.FlushAllTs } - return "" + return 0 } -func (x *ComponentInfo) GetStateCode() commonpb.StateCode { +// Deprecated: Marked as deprecated in milvus.proto. +func (x *FlushAllResponse) GetFlushResults() []*FlushAllResult { if x != nil { - return x.StateCode + return x.FlushResults } - return commonpb.StateCode(0) + return nil } -func (x *ComponentInfo) GetExtraInfo() []*commonpb.KeyValuePair { +func (x *FlushAllResponse) GetFlushAllMsgs() map[string]*commonpb.ImmutableMessage { if x != nil { - return x.ExtraInfo + return x.FlushAllMsgs } return nil } -type ComponentStates struct { +func (x *FlushAllResponse) GetClusterInfo() *ClusterInfo { + if x != nil { + return x.ClusterInfo + } + return nil +} + +// Deprecated +// Flush result for a single flush target +type FlushAllResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - State *ComponentInfo `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"` - SubcomponentStates []*ComponentInfo `protobuf:"bytes,2,rep,name=subcomponent_states,json=subcomponentStates,proto3" json:"subcomponent_states,omitempty"` - Status *commonpb.Status `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` + // Database name containing the collections + DbName string `protobuf:"bytes,1,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + // List of collections that were actually processed for this target + // If the target had empty collection_names (flush all), this shows all collections in the database + // If the target specified collection_names, this shows only those collections + CollectionResults []*FlushCollectionResult `protobuf:"bytes,2,rep,name=collection_results,json=collectionResults,proto3" json:"collection_results,omitempty"` } -func (x *ComponentStates) Reset() { - *x = ComponentStates{} +func (x *FlushAllResult) Reset() { + *x = FlushAllResult{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[92] + mi := &file_milvus_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ComponentStates) String() string { +func (x *FlushAllResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ComponentStates) ProtoMessage() {} +func (*FlushAllResult) ProtoMessage() {} -func (x *ComponentStates) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[92] +func (x *FlushAllResult) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8108,101 +8083,61 @@ func (x *ComponentStates) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ComponentStates.ProtoReflect.Descriptor instead. -func (*ComponentStates) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{92} -} - -func (x *ComponentStates) GetState() *ComponentInfo { - if x != nil { - return x.State - } - return nil +// Deprecated: Use FlushAllResult.ProtoReflect.Descriptor instead. +func (*FlushAllResult) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{91} } -func (x *ComponentStates) GetSubcomponentStates() []*ComponentInfo { +func (x *FlushAllResult) GetDbName() string { if x != nil { - return x.SubcomponentStates + return x.DbName } - return nil + return "" } -func (x *ComponentStates) GetStatus() *commonpb.Status { +func (x *FlushAllResult) GetCollectionResults() []*FlushCollectionResult { if x != nil { - return x.Status + return x.CollectionResults } return nil } -type GetComponentStatesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *GetComponentStatesRequest) Reset() { - *x = GetComponentStatesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[93] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetComponentStatesRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetComponentStatesRequest) ProtoMessage() {} - -func (x *GetComponentStatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[93] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetComponentStatesRequest.ProtoReflect.Descriptor instead. -func (*GetComponentStatesRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{93} -} - -// Do load balancing operation from src_nodeID to dst_nodeID. -type LoadBalanceRequest struct { +type FlushCollectionResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - SrcNodeID int64 `protobuf:"varint,2,opt,name=src_nodeID,json=srcNodeID,proto3" json:"src_nodeID,omitempty"` - DstNodeIDs []int64 `protobuf:"varint,3,rep,packed,name=dst_nodeIDs,json=dstNodeIDs,proto3" json:"dst_nodeIDs,omitempty"` - SealedSegmentIDs []int64 `protobuf:"varint,4,rep,packed,name=sealed_segmentIDs,json=sealedSegmentIDs,proto3" json:"sealed_segmentIDs,omitempty"` - CollectionName string `protobuf:"bytes,5,opt,name=collectionName,proto3" json:"collectionName,omitempty"` - DbName string `protobuf:"bytes,6,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + // Collection name + CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + // Segment IDs + SegmentIds *schemapb.LongArray `protobuf:"bytes,2,opt,name=segment_ids,json=segmentIds,proto3" json:"segment_ids,omitempty"` + // Segment IDs that were actually flushed + FlushSegmentIds *schemapb.LongArray `protobuf:"bytes,3,opt,name=flush_segment_ids,json=flushSegmentIds,proto3" json:"flush_segment_ids,omitempty"` + // Seal time (physical time for backup tools) + SealTime int64 `protobuf:"varint,4,opt,name=seal_time,json=sealTime,proto3" json:"seal_time,omitempty"` + // Flush timestamp (hybrid timestamp for getting flush state) + FlushTs uint64 `protobuf:"varint,5,opt,name=flush_ts,json=flushTs,proto3" json:"flush_ts,omitempty"` + // channel name to checkpoint position + ChannelCps map[string]*msgpb.MsgPosition `protobuf:"bytes,6,rep,name=channel_cps,json=channelCps,proto3" json:"channel_cps,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } -func (x *LoadBalanceRequest) Reset() { - *x = LoadBalanceRequest{} +func (x *FlushCollectionResult) Reset() { + *x = FlushCollectionResult{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[94] + mi := &file_milvus_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LoadBalanceRequest) String() string { +func (x *FlushCollectionResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LoadBalanceRequest) ProtoMessage() {} +func (*FlushCollectionResult) ProtoMessage() {} -func (x *LoadBalanceRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[94] +func (x *FlushCollectionResult) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8213,87 +8148,85 @@ func (x *LoadBalanceRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LoadBalanceRequest.ProtoReflect.Descriptor instead. -func (*LoadBalanceRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{94} +// Deprecated: Use FlushCollectionResult.ProtoReflect.Descriptor instead. +func (*FlushCollectionResult) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{92} } -func (x *LoadBalanceRequest) GetBase() *commonpb.MsgBase { +func (x *FlushCollectionResult) GetCollectionName() string { if x != nil { - return x.Base + return x.CollectionName } - return nil + return "" } -func (x *LoadBalanceRequest) GetSrcNodeID() int64 { +func (x *FlushCollectionResult) GetSegmentIds() *schemapb.LongArray { if x != nil { - return x.SrcNodeID + return x.SegmentIds } - return 0 + return nil } -func (x *LoadBalanceRequest) GetDstNodeIDs() []int64 { +func (x *FlushCollectionResult) GetFlushSegmentIds() *schemapb.LongArray { if x != nil { - return x.DstNodeIDs + return x.FlushSegmentIds } return nil } -func (x *LoadBalanceRequest) GetSealedSegmentIDs() []int64 { +func (x *FlushCollectionResult) GetSealTime() int64 { if x != nil { - return x.SealedSegmentIDs + return x.SealTime } - return nil + return 0 } -func (x *LoadBalanceRequest) GetCollectionName() string { +func (x *FlushCollectionResult) GetFlushTs() uint64 { if x != nil { - return x.CollectionName + return x.FlushTs } - return "" + return 0 } -func (x *LoadBalanceRequest) GetDbName() string { +func (x *FlushCollectionResult) GetChannelCps() map[string]*msgpb.MsgPosition { if x != nil { - return x.DbName + return x.ChannelCps } - return "" + return nil } -type ManualCompactionRequest struct { +type PersistentSegmentInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CollectionID int64 `protobuf:"varint,1,opt,name=collectionID,proto3" json:"collectionID,omitempty"` - Timetravel uint64 `protobuf:"varint,2,opt,name=timetravel,proto3" json:"timetravel,omitempty"` - MajorCompaction bool `protobuf:"varint,3,opt,name=majorCompaction,proto3" json:"majorCompaction,omitempty"` - CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - DbName string `protobuf:"bytes,5,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - PartitionId int64 `protobuf:"varint,6,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"` - Channel string `protobuf:"bytes,7,opt,name=channel,proto3" json:"channel,omitempty"` - SegmentIds []int64 `protobuf:"varint,8,rep,packed,name=segment_ids,json=segmentIds,proto3" json:"segment_ids,omitempty"` - L0Compaction bool `protobuf:"varint,9,opt,name=l0Compaction,proto3" json:"l0Compaction,omitempty"` - TargetSize int64 `protobuf:"varint,10,opt,name=target_size,json=targetSize,proto3" json:"target_size,omitempty"` + SegmentID int64 `protobuf:"varint,1,opt,name=segmentID,proto3" json:"segmentID,omitempty"` + CollectionID int64 `protobuf:"varint,2,opt,name=collectionID,proto3" json:"collectionID,omitempty"` + PartitionID int64 `protobuf:"varint,3,opt,name=partitionID,proto3" json:"partitionID,omitempty"` + NumRows int64 `protobuf:"varint,4,opt,name=num_rows,json=numRows,proto3" json:"num_rows,omitempty"` + State commonpb.SegmentState `protobuf:"varint,5,opt,name=state,proto3,enum=milvus.proto.common.SegmentState" json:"state,omitempty"` + Level commonpb.SegmentLevel `protobuf:"varint,6,opt,name=level,proto3,enum=milvus.proto.common.SegmentLevel" json:"level,omitempty"` + IsSorted bool `protobuf:"varint,7,opt,name=is_sorted,json=isSorted,proto3" json:"is_sorted,omitempty"` + StorageVersion int64 `protobuf:"varint,8,opt,name=storage_version,json=storageVersion,proto3" json:"storage_version,omitempty"` } -func (x *ManualCompactionRequest) Reset() { - *x = ManualCompactionRequest{} +func (x *PersistentSegmentInfo) Reset() { + *x = PersistentSegmentInfo{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[95] + mi := &file_milvus_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ManualCompactionRequest) String() string { +func (x *PersistentSegmentInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ManualCompactionRequest) ProtoMessage() {} +func (*PersistentSegmentInfo) ProtoMessage() {} -func (x *ManualCompactionRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[95] +func (x *PersistentSegmentInfo) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8304,108 +8237,94 @@ func (x *ManualCompactionRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ManualCompactionRequest.ProtoReflect.Descriptor instead. -func (*ManualCompactionRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{95} +// Deprecated: Use PersistentSegmentInfo.ProtoReflect.Descriptor instead. +func (*PersistentSegmentInfo) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{93} } -func (x *ManualCompactionRequest) GetCollectionID() int64 { +func (x *PersistentSegmentInfo) GetSegmentID() int64 { if x != nil { - return x.CollectionID + return x.SegmentID } return 0 } -func (x *ManualCompactionRequest) GetTimetravel() uint64 { +func (x *PersistentSegmentInfo) GetCollectionID() int64 { if x != nil { - return x.Timetravel + return x.CollectionID } return 0 } -func (x *ManualCompactionRequest) GetMajorCompaction() bool { +func (x *PersistentSegmentInfo) GetPartitionID() int64 { if x != nil { - return x.MajorCompaction + return x.PartitionID } - return false + return 0 } -func (x *ManualCompactionRequest) GetCollectionName() string { +func (x *PersistentSegmentInfo) GetNumRows() int64 { if x != nil { - return x.CollectionName + return x.NumRows } - return "" + return 0 } -func (x *ManualCompactionRequest) GetDbName() string { +func (x *PersistentSegmentInfo) GetState() commonpb.SegmentState { if x != nil { - return x.DbName + return x.State } - return "" + return commonpb.SegmentState(0) } -func (x *ManualCompactionRequest) GetPartitionId() int64 { +func (x *PersistentSegmentInfo) GetLevel() commonpb.SegmentLevel { if x != nil { - return x.PartitionId - } - return 0 -} - -func (x *ManualCompactionRequest) GetChannel() string { - if x != nil { - return x.Channel - } - return "" -} - -func (x *ManualCompactionRequest) GetSegmentIds() []int64 { - if x != nil { - return x.SegmentIds + return x.Level } - return nil + return commonpb.SegmentLevel(0) } -func (x *ManualCompactionRequest) GetL0Compaction() bool { +func (x *PersistentSegmentInfo) GetIsSorted() bool { if x != nil { - return x.L0Compaction + return x.IsSorted } return false } -func (x *ManualCompactionRequest) GetTargetSize() int64 { +func (x *PersistentSegmentInfo) GetStorageVersion() int64 { if x != nil { - return x.TargetSize + return x.StorageVersion } return 0 } -type ManualCompactionResponse struct { +type GetPersistentSegmentInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - CompactionID int64 `protobuf:"varint,2,opt,name=compactionID,proto3" json:"compactionID,omitempty"` - CompactionPlanCount int32 `protobuf:"varint,3,opt,name=compactionPlanCount,proto3" json:"compactionPlanCount,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` // must + DbName string `protobuf:"bytes,2,opt,name=dbName,proto3" json:"dbName,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collectionName,proto3" json:"collectionName,omitempty"` // must } -func (x *ManualCompactionResponse) Reset() { - *x = ManualCompactionResponse{} +func (x *GetPersistentSegmentInfoRequest) Reset() { + *x = GetPersistentSegmentInfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[96] + mi := &file_milvus_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ManualCompactionResponse) String() string { +func (x *GetPersistentSegmentInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ManualCompactionResponse) ProtoMessage() {} +func (*GetPersistentSegmentInfoRequest) ProtoMessage() {} -func (x *ManualCompactionResponse) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[96] +func (x *GetPersistentSegmentInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8416,57 +8335,58 @@ func (x *ManualCompactionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ManualCompactionResponse.ProtoReflect.Descriptor instead. -func (*ManualCompactionResponse) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{96} +// Deprecated: Use GetPersistentSegmentInfoRequest.ProtoReflect.Descriptor instead. +func (*GetPersistentSegmentInfoRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{94} } -func (x *ManualCompactionResponse) GetStatus() *commonpb.Status { +func (x *GetPersistentSegmentInfoRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Status + return x.Base } return nil } -func (x *ManualCompactionResponse) GetCompactionID() int64 { +func (x *GetPersistentSegmentInfoRequest) GetDbName() string { if x != nil { - return x.CompactionID + return x.DbName } - return 0 + return "" } -func (x *ManualCompactionResponse) GetCompactionPlanCount() int32 { +func (x *GetPersistentSegmentInfoRequest) GetCollectionName() string { if x != nil { - return x.CompactionPlanCount + return x.CollectionName } - return 0 + return "" } -type GetCompactionStateRequest struct { +type GetPersistentSegmentInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CompactionID int64 `protobuf:"varint,1,opt,name=compactionID,proto3" json:"compactionID,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Infos []*PersistentSegmentInfo `protobuf:"bytes,2,rep,name=infos,proto3" json:"infos,omitempty"` } -func (x *GetCompactionStateRequest) Reset() { - *x = GetCompactionStateRequest{} +func (x *GetPersistentSegmentInfoResponse) Reset() { + *x = GetPersistentSegmentInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[97] + mi := &file_milvus_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetCompactionStateRequest) String() string { +func (x *GetPersistentSegmentInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetCompactionStateRequest) ProtoMessage() {} +func (*GetPersistentSegmentInfoResponse) ProtoMessage() {} -func (x *GetCompactionStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[97] +func (x *GetPersistentSegmentInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8477,48 +8397,65 @@ func (x *GetCompactionStateRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetCompactionStateRequest.ProtoReflect.Descriptor instead. -func (*GetCompactionStateRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{97} +// Deprecated: Use GetPersistentSegmentInfoResponse.ProtoReflect.Descriptor instead. +func (*GetPersistentSegmentInfoResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{95} } -func (x *GetCompactionStateRequest) GetCompactionID() int64 { +func (x *GetPersistentSegmentInfoResponse) GetStatus() *commonpb.Status { if x != nil { - return x.CompactionID + return x.Status } - return 0 + return nil } -type GetCompactionStateResponse struct { +func (x *GetPersistentSegmentInfoResponse) GetInfos() []*PersistentSegmentInfo { + if x != nil { + return x.Infos + } + return nil +} + +type QuerySegmentInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - State commonpb.CompactionState `protobuf:"varint,2,opt,name=state,proto3,enum=milvus.proto.common.CompactionState" json:"state,omitempty"` - ExecutingPlanNo int64 `protobuf:"varint,3,opt,name=executingPlanNo,proto3" json:"executingPlanNo,omitempty"` - TimeoutPlanNo int64 `protobuf:"varint,4,opt,name=timeoutPlanNo,proto3" json:"timeoutPlanNo,omitempty"` - CompletedPlanNo int64 `protobuf:"varint,5,opt,name=completedPlanNo,proto3" json:"completedPlanNo,omitempty"` - FailedPlanNo int64 `protobuf:"varint,6,opt,name=failedPlanNo,proto3" json:"failedPlanNo,omitempty"` + SegmentID int64 `protobuf:"varint,1,opt,name=segmentID,proto3" json:"segmentID,omitempty"` + CollectionID int64 `protobuf:"varint,2,opt,name=collectionID,proto3" json:"collectionID,omitempty"` + PartitionID int64 `protobuf:"varint,3,opt,name=partitionID,proto3" json:"partitionID,omitempty"` + MemSize int64 `protobuf:"varint,4,opt,name=mem_size,json=memSize,proto3" json:"mem_size,omitempty"` + NumRows int64 `protobuf:"varint,5,opt,name=num_rows,json=numRows,proto3" json:"num_rows,omitempty"` + IndexName string `protobuf:"bytes,6,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` + IndexID int64 `protobuf:"varint,7,opt,name=indexID,proto3" json:"indexID,omitempty"` + // deprecated, check node_ids(NodeIds) field + // + // Deprecated: Marked as deprecated in milvus.proto. + NodeID int64 `protobuf:"varint,8,opt,name=nodeID,proto3" json:"nodeID,omitempty"` + State commonpb.SegmentState `protobuf:"varint,9,opt,name=state,proto3,enum=milvus.proto.common.SegmentState" json:"state,omitempty"` + NodeIds []int64 `protobuf:"varint,10,rep,packed,name=nodeIds,proto3" json:"nodeIds,omitempty"` + Level commonpb.SegmentLevel `protobuf:"varint,11,opt,name=level,proto3,enum=milvus.proto.common.SegmentLevel" json:"level,omitempty"` + IsSorted bool `protobuf:"varint,12,opt,name=is_sorted,json=isSorted,proto3" json:"is_sorted,omitempty"` + StorageVersion int64 `protobuf:"varint,13,opt,name=storage_version,json=storageVersion,proto3" json:"storage_version,omitempty"` } -func (x *GetCompactionStateResponse) Reset() { - *x = GetCompactionStateResponse{} +func (x *QuerySegmentInfo) Reset() { + *x = QuerySegmentInfo{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[98] + mi := &file_milvus_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetCompactionStateResponse) String() string { +func (x *QuerySegmentInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetCompactionStateResponse) ProtoMessage() {} +func (*QuerySegmentInfo) ProtoMessage() {} -func (x *GetCompactionStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[98] +func (x *QuerySegmentInfo) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8529,78 +8466,130 @@ func (x *GetCompactionStateResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetCompactionStateResponse.ProtoReflect.Descriptor instead. -func (*GetCompactionStateResponse) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{98} +// Deprecated: Use QuerySegmentInfo.ProtoReflect.Descriptor instead. +func (*QuerySegmentInfo) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{96} } -func (x *GetCompactionStateResponse) GetStatus() *commonpb.Status { +func (x *QuerySegmentInfo) GetSegmentID() int64 { if x != nil { - return x.Status + return x.SegmentID } - return nil + return 0 } -func (x *GetCompactionStateResponse) GetState() commonpb.CompactionState { +func (x *QuerySegmentInfo) GetCollectionID() int64 { if x != nil { - return x.State + return x.CollectionID } - return commonpb.CompactionState(0) + return 0 } -func (x *GetCompactionStateResponse) GetExecutingPlanNo() int64 { +func (x *QuerySegmentInfo) GetPartitionID() int64 { if x != nil { - return x.ExecutingPlanNo + return x.PartitionID } return 0 } -func (x *GetCompactionStateResponse) GetTimeoutPlanNo() int64 { +func (x *QuerySegmentInfo) GetMemSize() int64 { if x != nil { - return x.TimeoutPlanNo + return x.MemSize } return 0 } -func (x *GetCompactionStateResponse) GetCompletedPlanNo() int64 { +func (x *QuerySegmentInfo) GetNumRows() int64 { if x != nil { - return x.CompletedPlanNo + return x.NumRows } return 0 } -func (x *GetCompactionStateResponse) GetFailedPlanNo() int64 { +func (x *QuerySegmentInfo) GetIndexName() string { if x != nil { - return x.FailedPlanNo + return x.IndexName + } + return "" +} + +func (x *QuerySegmentInfo) GetIndexID() int64 { + if x != nil { + return x.IndexID } return 0 } -type GetCompactionPlansRequest struct { +// Deprecated: Marked as deprecated in milvus.proto. +func (x *QuerySegmentInfo) GetNodeID() int64 { + if x != nil { + return x.NodeID + } + return 0 +} + +func (x *QuerySegmentInfo) GetState() commonpb.SegmentState { + if x != nil { + return x.State + } + return commonpb.SegmentState(0) +} + +func (x *QuerySegmentInfo) GetNodeIds() []int64 { + if x != nil { + return x.NodeIds + } + return nil +} + +func (x *QuerySegmentInfo) GetLevel() commonpb.SegmentLevel { + if x != nil { + return x.Level + } + return commonpb.SegmentLevel(0) +} + +func (x *QuerySegmentInfo) GetIsSorted() bool { + if x != nil { + return x.IsSorted + } + return false +} + +func (x *QuerySegmentInfo) GetStorageVersion() int64 { + if x != nil { + return x.StorageVersion + } + return 0 +} + +type GetQuerySegmentInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CompactionID int64 `protobuf:"varint,1,opt,name=compactionID,proto3" json:"compactionID,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` // must + DbName string `protobuf:"bytes,2,opt,name=dbName,proto3" json:"dbName,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collectionName,proto3" json:"collectionName,omitempty"` // must } -func (x *GetCompactionPlansRequest) Reset() { - *x = GetCompactionPlansRequest{} +func (x *GetQuerySegmentInfoRequest) Reset() { + *x = GetQuerySegmentInfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[99] + mi := &file_milvus_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetCompactionPlansRequest) String() string { +func (x *GetQuerySegmentInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetCompactionPlansRequest) ProtoMessage() {} +func (*GetQuerySegmentInfoRequest) ProtoMessage() {} -func (x *GetCompactionPlansRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[99] +func (x *GetQuerySegmentInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8611,45 +8600,58 @@ func (x *GetCompactionPlansRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetCompactionPlansRequest.ProtoReflect.Descriptor instead. -func (*GetCompactionPlansRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{99} +// Deprecated: Use GetQuerySegmentInfoRequest.ProtoReflect.Descriptor instead. +func (*GetQuerySegmentInfoRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{97} } -func (x *GetCompactionPlansRequest) GetCompactionID() int64 { +func (x *GetQuerySegmentInfoRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.CompactionID + return x.Base } - return 0 + return nil } -type GetCompactionPlansResponse struct { +func (x *GetQuerySegmentInfoRequest) GetDbName() string { + if x != nil { + return x.DbName + } + return "" +} + +func (x *GetQuerySegmentInfoRequest) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" +} + +type GetQuerySegmentInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - State commonpb.CompactionState `protobuf:"varint,2,opt,name=state,proto3,enum=milvus.proto.common.CompactionState" json:"state,omitempty"` - MergeInfos []*CompactionMergeInfo `protobuf:"bytes,3,rep,name=mergeInfos,proto3" json:"mergeInfos,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Infos []*QuerySegmentInfo `protobuf:"bytes,2,rep,name=infos,proto3" json:"infos,omitempty"` } -func (x *GetCompactionPlansResponse) Reset() { - *x = GetCompactionPlansResponse{} +func (x *GetQuerySegmentInfoResponse) Reset() { + *x = GetQuerySegmentInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[100] + mi := &file_milvus_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetCompactionPlansResponse) String() string { +func (x *GetQuerySegmentInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetCompactionPlansResponse) ProtoMessage() {} +func (*GetQuerySegmentInfoResponse) ProtoMessage() {} -func (x *GetCompactionPlansResponse) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[100] +func (x *GetQuerySegmentInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8660,58 +8662,50 @@ func (x *GetCompactionPlansResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetCompactionPlansResponse.ProtoReflect.Descriptor instead. -func (*GetCompactionPlansResponse) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{100} +// Deprecated: Use GetQuerySegmentInfoResponse.ProtoReflect.Descriptor instead. +func (*GetQuerySegmentInfoResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{98} } -func (x *GetCompactionPlansResponse) GetStatus() *commonpb.Status { +func (x *GetQuerySegmentInfoResponse) GetStatus() *commonpb.Status { if x != nil { return x.Status } return nil } -func (x *GetCompactionPlansResponse) GetState() commonpb.CompactionState { - if x != nil { - return x.State - } - return commonpb.CompactionState(0) -} - -func (x *GetCompactionPlansResponse) GetMergeInfos() []*CompactionMergeInfo { +func (x *GetQuerySegmentInfoResponse) GetInfos() []*QuerySegmentInfo { if x != nil { - return x.MergeInfos + return x.Infos } return nil } -type CompactionMergeInfo struct { +type DummyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Sources []int64 `protobuf:"varint,1,rep,packed,name=sources,proto3" json:"sources,omitempty"` - Target int64 `protobuf:"varint,2,opt,name=target,proto3" json:"target,omitempty"` + RequestType string `protobuf:"bytes,1,opt,name=request_type,json=requestType,proto3" json:"request_type,omitempty"` } -func (x *CompactionMergeInfo) Reset() { - *x = CompactionMergeInfo{} +func (x *DummyRequest) Reset() { + *x = DummyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[101] + mi := &file_milvus_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CompactionMergeInfo) String() string { +func (x *DummyRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CompactionMergeInfo) ProtoMessage() {} +func (*DummyRequest) ProtoMessage() {} -func (x *CompactionMergeInfo) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[101] +func (x *DummyRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8722,53 +8716,43 @@ func (x *CompactionMergeInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CompactionMergeInfo.ProtoReflect.Descriptor instead. -func (*CompactionMergeInfo) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{101} -} - -func (x *CompactionMergeInfo) GetSources() []int64 { - if x != nil { - return x.Sources - } - return nil +// Deprecated: Use DummyRequest.ProtoReflect.Descriptor instead. +func (*DummyRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{99} } -func (x *CompactionMergeInfo) GetTarget() int64 { +func (x *DummyRequest) GetRequestType() string { if x != nil { - return x.Target + return x.RequestType } - return 0 + return "" } -type GetFlushStateRequest struct { +type DummyResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SegmentIDs []int64 `protobuf:"varint,1,rep,packed,name=segmentIDs,proto3" json:"segmentIDs,omitempty"` - FlushTs uint64 `protobuf:"varint,2,opt,name=flush_ts,json=flushTs,proto3" json:"flush_ts,omitempty"` - DbName string `protobuf:"bytes,3,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + Response string `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"` } -func (x *GetFlushStateRequest) Reset() { - *x = GetFlushStateRequest{} +func (x *DummyResponse) Reset() { + *x = DummyResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[102] + mi := &file_milvus_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetFlushStateRequest) String() string { +func (x *DummyResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetFlushStateRequest) ProtoMessage() {} +func (*DummyResponse) ProtoMessage() {} -func (x *GetFlushStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[102] +func (x *DummyResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8779,65 +8763,82 @@ func (x *GetFlushStateRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetFlushStateRequest.ProtoReflect.Descriptor instead. -func (*GetFlushStateRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{102} +// Deprecated: Use DummyResponse.ProtoReflect.Descriptor instead. +func (*DummyResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{100} } -func (x *GetFlushStateRequest) GetSegmentIDs() []int64 { +func (x *DummyResponse) GetResponse() string { if x != nil { - return x.SegmentIDs + return x.Response } - return nil + return "" } -func (x *GetFlushStateRequest) GetFlushTs() uint64 { - if x != nil { - return x.FlushTs - } - return 0 +type RegisterLinkRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (x *GetFlushStateRequest) GetDbName() string { - if x != nil { - return x.DbName +func (x *RegisterLinkRequest) Reset() { + *x = RegisterLinkRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[101] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *GetFlushStateRequest) GetCollectionName() string { - if x != nil { - return x.CollectionName +func (x *RegisterLinkRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterLinkRequest) ProtoMessage() {} + +func (x *RegisterLinkRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[101] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -type GetFlushStateResponse struct { +// Deprecated: Use RegisterLinkRequest.ProtoReflect.Descriptor instead. +func (*RegisterLinkRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{101} +} + +type RegisterLinkResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Flushed bool `protobuf:"varint,2,opt,name=flushed,proto3" json:"flushed,omitempty"` + Address *commonpb.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Status *commonpb.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` } -func (x *GetFlushStateResponse) Reset() { - *x = GetFlushStateResponse{} +func (x *RegisterLinkResponse) Reset() { + *x = RegisterLinkResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[103] + mi := &file_milvus_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetFlushStateResponse) String() string { +func (x *RegisterLinkResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetFlushStateResponse) ProtoMessage() {} +func (*RegisterLinkResponse) ProtoMessage() {} -func (x *GetFlushStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[103] +func (x *RegisterLinkResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8848,57 +8849,51 @@ func (x *GetFlushStateResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetFlushStateResponse.ProtoReflect.Descriptor instead. -func (*GetFlushStateResponse) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{103} +// Deprecated: Use RegisterLinkResponse.ProtoReflect.Descriptor instead. +func (*RegisterLinkResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{102} } -func (x *GetFlushStateResponse) GetStatus() *commonpb.Status { +func (x *RegisterLinkResponse) GetAddress() *commonpb.Address { if x != nil { - return x.Status + return x.Address } return nil } -func (x *GetFlushStateResponse) GetFlushed() bool { +func (x *RegisterLinkResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Flushed + return x.Status } - return false + return nil } -type GetFlushAllStateRequest struct { +type GetMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - // Deprecated: Marked as deprecated in milvus.proto. - FlushAllTs uint64 `protobuf:"varint,2,opt,name=flush_all_ts,json=flushAllTs,proto3" json:"flush_all_ts,omitempty"` - // Deprecated: Marked as deprecated in milvus.proto. - DbName string `protobuf:"bytes,3,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - // Deprecated: Marked as deprecated in milvus.proto. - FlushTargets []*FlushAllTarget `protobuf:"bytes,4,rep,name=flush_targets,json=flushTargets,proto3" json:"flush_targets,omitempty"` - FlushAllTss map[string]uint64 `protobuf:"bytes,5,rep,name=flush_all_tss,json=flushAllTss,proto3" json:"flush_all_tss,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // pchannel -> flush all ts + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + Request string `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` // request is of jsonic format } -func (x *GetFlushAllStateRequest) Reset() { - *x = GetFlushAllStateRequest{} +func (x *GetMetricsRequest) Reset() { + *x = GetMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[104] + mi := &file_milvus_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetFlushAllStateRequest) String() string { +func (x *GetMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetFlushAllStateRequest) ProtoMessage() {} +func (*GetMetricsRequest) ProtoMessage() {} -func (x *GetFlushAllStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[104] +func (x *GetMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8909,81 +8904,52 @@ func (x *GetFlushAllStateRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetFlushAllStateRequest.ProtoReflect.Descriptor instead. -func (*GetFlushAllStateRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{104} +// Deprecated: Use GetMetricsRequest.ProtoReflect.Descriptor instead. +func (*GetMetricsRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{103} } -func (x *GetFlushAllStateRequest) GetBase() *commonpb.MsgBase { +func (x *GetMetricsRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -// Deprecated: Marked as deprecated in milvus.proto. -func (x *GetFlushAllStateRequest) GetFlushAllTs() uint64 { +func (x *GetMetricsRequest) GetRequest() string { if x != nil { - return x.FlushAllTs + return x.Request } - return 0 + return "" } -// Deprecated: Marked as deprecated in milvus.proto. -func (x *GetFlushAllStateRequest) GetDbName() string { - if x != nil { - return x.DbName - } - return "" -} - -// Deprecated: Marked as deprecated in milvus.proto. -func (x *GetFlushAllStateRequest) GetFlushTargets() []*FlushAllTarget { - if x != nil { - return x.FlushTargets - } - return nil -} - -func (x *GetFlushAllStateRequest) GetFlushAllTss() map[string]uint64 { - if x != nil { - return x.FlushAllTss - } - return nil -} - -type GetFlushAllStateResponse struct { +type GetMetricsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - // True if all data in the cluster are flushed - Flushed bool `protobuf:"varint,2,opt,name=flushed,proto3" json:"flushed,omitempty"` - // Detailed flush state for each database - // Provides per-database and per-collection flush status information - // - // Deprecated: Marked as deprecated in milvus.proto. - FlushStates []*FlushAllState `protobuf:"bytes,3,rep,name=flush_states,json=flushStates,proto3" json:"flush_states,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Response string `protobuf:"bytes,2,opt,name=response,proto3" json:"response,omitempty"` // response is of jsonic format + ComponentName string `protobuf:"bytes,3,opt,name=component_name,json=componentName,proto3" json:"component_name,omitempty"` // metrics from which component } -func (x *GetFlushAllStateResponse) Reset() { - *x = GetFlushAllStateResponse{} +func (x *GetMetricsResponse) Reset() { + *x = GetMetricsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[105] + mi := &file_milvus_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetFlushAllStateResponse) String() string { +func (x *GetMetricsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetFlushAllStateResponse) ProtoMessage() {} +func (*GetMetricsResponse) ProtoMessage() {} -func (x *GetFlushAllStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[105] +func (x *GetMetricsResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8994,63 +8960,60 @@ func (x *GetFlushAllStateResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetFlushAllStateResponse.ProtoReflect.Descriptor instead. -func (*GetFlushAllStateResponse) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{105} +// Deprecated: Use GetMetricsResponse.ProtoReflect.Descriptor instead. +func (*GetMetricsResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{104} } -func (x *GetFlushAllStateResponse) GetStatus() *commonpb.Status { +func (x *GetMetricsResponse) GetStatus() *commonpb.Status { if x != nil { return x.Status } return nil } -func (x *GetFlushAllStateResponse) GetFlushed() bool { +func (x *GetMetricsResponse) GetResponse() string { if x != nil { - return x.Flushed + return x.Response } - return false + return "" } -// Deprecated: Marked as deprecated in milvus.proto. -func (x *GetFlushAllStateResponse) GetFlushStates() []*FlushAllState { +func (x *GetMetricsResponse) GetComponentName() string { if x != nil { - return x.FlushStates + return x.ComponentName } - return nil + return "" } -// Deprecated -type FlushAllState struct { +type ComponentInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Database name for this flush state report - DbName string `protobuf:"bytes,1,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - // Collection-level flush state mapping - // Key: collection name, Value: true if collection is fully flushed - CollectionFlushStates map[string]bool `protobuf:"bytes,2,rep,name=collection_flush_states,json=collectionFlushStates,proto3" json:"collection_flush_states,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + NodeID int64 `protobuf:"varint,1,opt,name=nodeID,proto3" json:"nodeID,omitempty"` + Role string `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"` + StateCode commonpb.StateCode `protobuf:"varint,3,opt,name=state_code,json=stateCode,proto3,enum=milvus.proto.common.StateCode" json:"state_code,omitempty"` + ExtraInfo []*commonpb.KeyValuePair `protobuf:"bytes,4,rep,name=extra_info,json=extraInfo,proto3" json:"extra_info,omitempty"` } -func (x *FlushAllState) Reset() { - *x = FlushAllState{} +func (x *ComponentInfo) Reset() { + *x = ComponentInfo{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[106] + mi := &file_milvus_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlushAllState) String() string { +func (x *ComponentInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlushAllState) ProtoMessage() {} +func (*ComponentInfo) ProtoMessage() {} -func (x *FlushAllState) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[106] +func (x *ComponentInfo) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9061,57 +9024,66 @@ func (x *FlushAllState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlushAllState.ProtoReflect.Descriptor instead. -func (*FlushAllState) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{106} +// Deprecated: Use ComponentInfo.ProtoReflect.Descriptor instead. +func (*ComponentInfo) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{105} } -func (x *FlushAllState) GetDbName() string { +func (x *ComponentInfo) GetNodeID() int64 { if x != nil { - return x.DbName + return x.NodeID + } + return 0 +} + +func (x *ComponentInfo) GetRole() string { + if x != nil { + return x.Role } return "" } -func (x *FlushAllState) GetCollectionFlushStates() map[string]bool { +func (x *ComponentInfo) GetStateCode() commonpb.StateCode { if x != nil { - return x.CollectionFlushStates + return x.StateCode + } + return commonpb.StateCode(0) +} + +func (x *ComponentInfo) GetExtraInfo() []*commonpb.KeyValuePair { + if x != nil { + return x.ExtraInfo } return nil } -type ImportRequest struct { +type ComponentStates struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // target collection - PartitionName string `protobuf:"bytes,2,opt,name=partition_name,json=partitionName,proto3" json:"partition_name,omitempty"` // target partition - ChannelNames []string `protobuf:"bytes,3,rep,name=channel_names,json=channelNames,proto3" json:"channel_names,omitempty"` // channel names for the collection - RowBased bool `protobuf:"varint,4,opt,name=row_based,json=rowBased,proto3" json:"row_based,omitempty"` // the file is row-based or column-based - Files []string `protobuf:"bytes,5,rep,name=files,proto3" json:"files,omitempty"` // file paths to be imported - Options []*commonpb.KeyValuePair `protobuf:"bytes,6,rep,name=options,proto3" json:"options,omitempty"` // import options, bucket, etc. - DbName string `protobuf:"bytes,7,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` // target database - ClusteringInfo []byte `protobuf:"bytes,8,opt,name=clustering_info,json=clusteringInfo,proto3" json:"clustering_info,omitempty"` // serialized `schema.ClusteringInfo` + State *ComponentInfo `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"` + SubcomponentStates []*ComponentInfo `protobuf:"bytes,2,rep,name=subcomponent_states,json=subcomponentStates,proto3" json:"subcomponent_states,omitempty"` + Status *commonpb.Status `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` } -func (x *ImportRequest) Reset() { - *x = ImportRequest{} +func (x *ComponentStates) Reset() { + *x = ComponentStates{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[107] + mi := &file_milvus_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ImportRequest) String() string { +func (x *ComponentStates) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ImportRequest) ProtoMessage() {} +func (*ComponentStates) ProtoMessage() {} -func (x *ImportRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[107] +func (x *ComponentStates) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9122,78 +9094,86 @@ func (x *ImportRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ImportRequest.ProtoReflect.Descriptor instead. -func (*ImportRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{107} +// Deprecated: Use ComponentStates.ProtoReflect.Descriptor instead. +func (*ComponentStates) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{106} } -func (x *ImportRequest) GetCollectionName() string { +func (x *ComponentStates) GetState() *ComponentInfo { if x != nil { - return x.CollectionName + return x.State } - return "" + return nil } -func (x *ImportRequest) GetPartitionName() string { +func (x *ComponentStates) GetSubcomponentStates() []*ComponentInfo { if x != nil { - return x.PartitionName + return x.SubcomponentStates } - return "" + return nil } -func (x *ImportRequest) GetChannelNames() []string { +func (x *ComponentStates) GetStatus() *commonpb.Status { if x != nil { - return x.ChannelNames + return x.Status } return nil } -func (x *ImportRequest) GetRowBased() bool { - if x != nil { - return x.RowBased - } - return false +type GetComponentStatesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (x *ImportRequest) GetFiles() []string { - if x != nil { - return x.Files +func (x *GetComponentStatesRequest) Reset() { + *x = GetComponentStatesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[107] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *ImportRequest) GetOptions() []*commonpb.KeyValuePair { - if x != nil { - return x.Options - } - return nil +func (x *GetComponentStatesRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *ImportRequest) GetDbName() string { - if x != nil { - return x.DbName +func (*GetComponentStatesRequest) ProtoMessage() {} + +func (x *GetComponentStatesRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[107] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (x *ImportRequest) GetClusteringInfo() []byte { - if x != nil { - return x.ClusteringInfo - } - return nil +// Deprecated: Use GetComponentStatesRequest.ProtoReflect.Descriptor instead. +func (*GetComponentStatesRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{107} } -type ImportResponse struct { +// Do load balancing operation from src_nodeID to dst_nodeID. +type LoadBalanceRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Tasks []int64 `protobuf:"varint,2,rep,packed,name=tasks,proto3" json:"tasks,omitempty"` // id array of import tasks + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + SrcNodeID int64 `protobuf:"varint,2,opt,name=src_nodeID,json=srcNodeID,proto3" json:"src_nodeID,omitempty"` + DstNodeIDs []int64 `protobuf:"varint,3,rep,packed,name=dst_nodeIDs,json=dstNodeIDs,proto3" json:"dst_nodeIDs,omitempty"` + SealedSegmentIDs []int64 `protobuf:"varint,4,rep,packed,name=sealed_segmentIDs,json=sealedSegmentIDs,proto3" json:"sealed_segmentIDs,omitempty"` + CollectionName string `protobuf:"bytes,5,opt,name=collectionName,proto3" json:"collectionName,omitempty"` + DbName string `protobuf:"bytes,6,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` } -func (x *ImportResponse) Reset() { - *x = ImportResponse{} +func (x *LoadBalanceRequest) Reset() { + *x = LoadBalanceRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -9201,13 +9181,13 @@ func (x *ImportResponse) Reset() { } } -func (x *ImportResponse) String() string { +func (x *LoadBalanceRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ImportResponse) ProtoMessage() {} +func (*LoadBalanceRequest) ProtoMessage() {} -func (x *ImportResponse) ProtoReflect() protoreflect.Message { +func (x *LoadBalanceRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -9219,105 +9199,87 @@ func (x *ImportResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ImportResponse.ProtoReflect.Descriptor instead. -func (*ImportResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use LoadBalanceRequest.ProtoReflect.Descriptor instead. +func (*LoadBalanceRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{108} } -func (x *ImportResponse) GetStatus() *commonpb.Status { +func (x *LoadBalanceRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Status + return x.Base } return nil } -func (x *ImportResponse) GetTasks() []int64 { +func (x *LoadBalanceRequest) GetSrcNodeID() int64 { if x != nil { - return x.Tasks + return x.SrcNodeID } - return nil + return 0 } -type GetImportStateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Task int64 `protobuf:"varint,1,opt,name=task,proto3" json:"task,omitempty"` // id of an import task -} - -func (x *GetImportStateRequest) Reset() { - *x = GetImportStateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[109] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *LoadBalanceRequest) GetDstNodeIDs() []int64 { + if x != nil { + return x.DstNodeIDs } + return nil } -func (x *GetImportStateRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetImportStateRequest) ProtoMessage() {} - -func (x *GetImportStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[109] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *LoadBalanceRequest) GetSealedSegmentIDs() []int64 { + if x != nil { + return x.SealedSegmentIDs } - return mi.MessageOf(x) + return nil } -// Deprecated: Use GetImportStateRequest.ProtoReflect.Descriptor instead. -func (*GetImportStateRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{109} +func (x *LoadBalanceRequest) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" } -func (x *GetImportStateRequest) GetTask() int64 { +func (x *LoadBalanceRequest) GetDbName() string { if x != nil { - return x.Task + return x.DbName } - return 0 + return "" } -type GetImportStateResponse struct { +type ManualCompactionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - State commonpb.ImportState `protobuf:"varint,2,opt,name=state,proto3,enum=milvus.proto.common.ImportState" json:"state,omitempty"` // is this import task finished or not - RowCount int64 `protobuf:"varint,3,opt,name=row_count,json=rowCount,proto3" json:"row_count,omitempty"` // if the task is finished, this value is how many rows are imported. if the task is not finished, this value is how many rows are parsed. return 0 if failed. - IdList []int64 `protobuf:"varint,4,rep,packed,name=id_list,json=idList,proto3" json:"id_list,omitempty"` // auto generated ids if the primary key is autoid - Infos []*commonpb.KeyValuePair `protobuf:"bytes,5,rep,name=infos,proto3" json:"infos,omitempty"` // more information about the task, progress percent, file path, failed reason, etc. - Id int64 `protobuf:"varint,6,opt,name=id,proto3" json:"id,omitempty"` // id of an import task - CollectionId int64 `protobuf:"varint,7,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"` // collection ID of the import task. - SegmentIds []int64 `protobuf:"varint,8,rep,packed,name=segment_ids,json=segmentIds,proto3" json:"segment_ids,omitempty"` // a list of segment IDs created by the import task. - CreateTs int64 `protobuf:"varint,9,opt,name=create_ts,json=createTs,proto3" json:"create_ts,omitempty"` // timestamp when the import task is created. + CollectionID int64 `protobuf:"varint,1,opt,name=collectionID,proto3" json:"collectionID,omitempty"` + Timetravel uint64 `protobuf:"varint,2,opt,name=timetravel,proto3" json:"timetravel,omitempty"` + MajorCompaction bool `protobuf:"varint,3,opt,name=majorCompaction,proto3" json:"majorCompaction,omitempty"` + CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + DbName string `protobuf:"bytes,5,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + PartitionId int64 `protobuf:"varint,6,opt,name=partition_id,json=partitionId,proto3" json:"partition_id,omitempty"` + Channel string `protobuf:"bytes,7,opt,name=channel,proto3" json:"channel,omitempty"` + SegmentIds []int64 `protobuf:"varint,8,rep,packed,name=segment_ids,json=segmentIds,proto3" json:"segment_ids,omitempty"` + L0Compaction bool `protobuf:"varint,9,opt,name=l0Compaction,proto3" json:"l0Compaction,omitempty"` + TargetSize int64 `protobuf:"varint,10,opt,name=target_size,json=targetSize,proto3" json:"target_size,omitempty"` } -func (x *GetImportStateResponse) Reset() { - *x = GetImportStateResponse{} +func (x *ManualCompactionRequest) Reset() { + *x = ManualCompactionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[110] + mi := &file_milvus_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetImportStateResponse) String() string { +func (x *ManualCompactionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetImportStateResponse) ProtoMessage() {} +func (*ManualCompactionRequest) ProtoMessage() {} -func (x *GetImportStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[110] +func (x *ManualCompactionRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9328,101 +9290,108 @@ func (x *GetImportStateResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetImportStateResponse.ProtoReflect.Descriptor instead. -func (*GetImportStateResponse) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{110} +// Deprecated: Use ManualCompactionRequest.ProtoReflect.Descriptor instead. +func (*ManualCompactionRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{109} } -func (x *GetImportStateResponse) GetStatus() *commonpb.Status { +func (x *ManualCompactionRequest) GetCollectionID() int64 { if x != nil { - return x.Status + return x.CollectionID } - return nil + return 0 } -func (x *GetImportStateResponse) GetState() commonpb.ImportState { +func (x *ManualCompactionRequest) GetTimetravel() uint64 { if x != nil { - return x.State + return x.Timetravel } - return commonpb.ImportState(0) + return 0 } -func (x *GetImportStateResponse) GetRowCount() int64 { +func (x *ManualCompactionRequest) GetMajorCompaction() bool { if x != nil { - return x.RowCount + return x.MajorCompaction } - return 0 + return false } -func (x *GetImportStateResponse) GetIdList() []int64 { +func (x *ManualCompactionRequest) GetCollectionName() string { if x != nil { - return x.IdList + return x.CollectionName } - return nil + return "" } -func (x *GetImportStateResponse) GetInfos() []*commonpb.KeyValuePair { +func (x *ManualCompactionRequest) GetDbName() string { if x != nil { - return x.Infos + return x.DbName } - return nil + return "" } -func (x *GetImportStateResponse) GetId() int64 { +func (x *ManualCompactionRequest) GetPartitionId() int64 { if x != nil { - return x.Id + return x.PartitionId } return 0 } -func (x *GetImportStateResponse) GetCollectionId() int64 { +func (x *ManualCompactionRequest) GetChannel() string { if x != nil { - return x.CollectionId + return x.Channel } - return 0 + return "" } -func (x *GetImportStateResponse) GetSegmentIds() []int64 { +func (x *ManualCompactionRequest) GetSegmentIds() []int64 { if x != nil { return x.SegmentIds } return nil } -func (x *GetImportStateResponse) GetCreateTs() int64 { +func (x *ManualCompactionRequest) GetL0Compaction() bool { if x != nil { - return x.CreateTs + return x.L0Compaction + } + return false +} + +func (x *ManualCompactionRequest) GetTargetSize() int64 { + if x != nil { + return x.TargetSize } return 0 } -type ListImportTasksRequest struct { +type ManualCompactionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // target collection, list all tasks if the name is empty - Limit int64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` // maximum number of tasks returned, list all tasks if the value is 0 - DbName string `protobuf:"bytes,3,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + CompactionID int64 `protobuf:"varint,2,opt,name=compactionID,proto3" json:"compactionID,omitempty"` + CompactionPlanCount int32 `protobuf:"varint,3,opt,name=compactionPlanCount,proto3" json:"compactionPlanCount,omitempty"` } -func (x *ListImportTasksRequest) Reset() { - *x = ListImportTasksRequest{} +func (x *ManualCompactionResponse) Reset() { + *x = ManualCompactionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[111] + mi := &file_milvus_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ListImportTasksRequest) String() string { +func (x *ManualCompactionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListImportTasksRequest) ProtoMessage() {} +func (*ManualCompactionResponse) ProtoMessage() {} -func (x *ListImportTasksRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[111] +func (x *ManualCompactionResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9433,58 +9402,57 @@ func (x *ListImportTasksRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListImportTasksRequest.ProtoReflect.Descriptor instead. -func (*ListImportTasksRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{111} +// Deprecated: Use ManualCompactionResponse.ProtoReflect.Descriptor instead. +func (*ManualCompactionResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{110} } -func (x *ListImportTasksRequest) GetCollectionName() string { +func (x *ManualCompactionResponse) GetStatus() *commonpb.Status { if x != nil { - return x.CollectionName + return x.Status } - return "" + return nil } -func (x *ListImportTasksRequest) GetLimit() int64 { +func (x *ManualCompactionResponse) GetCompactionID() int64 { if x != nil { - return x.Limit + return x.CompactionID } return 0 } -func (x *ListImportTasksRequest) GetDbName() string { +func (x *ManualCompactionResponse) GetCompactionPlanCount() int32 { if x != nil { - return x.DbName + return x.CompactionPlanCount } - return "" + return 0 } -type ListImportTasksResponse struct { +type GetCompactionStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Tasks []*GetImportStateResponse `protobuf:"bytes,2,rep,name=tasks,proto3" json:"tasks,omitempty"` // list of all import tasks + CompactionID int64 `protobuf:"varint,1,opt,name=compactionID,proto3" json:"compactionID,omitempty"` } -func (x *ListImportTasksResponse) Reset() { - *x = ListImportTasksResponse{} +func (x *GetCompactionStateRequest) Reset() { + *x = GetCompactionStateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[112] + mi := &file_milvus_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ListImportTasksResponse) String() string { +func (x *GetCompactionStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListImportTasksResponse) ProtoMessage() {} +func (*GetCompactionStateRequest) ProtoMessage() {} -func (x *ListImportTasksResponse) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[112] +func (x *GetCompactionStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9495,54 +9463,48 @@ func (x *ListImportTasksResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListImportTasksResponse.ProtoReflect.Descriptor instead. -func (*ListImportTasksResponse) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{112} -} - -func (x *ListImportTasksResponse) GetStatus() *commonpb.Status { - if x != nil { - return x.Status - } - return nil +// Deprecated: Use GetCompactionStateRequest.ProtoReflect.Descriptor instead. +func (*GetCompactionStateRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{111} } -func (x *ListImportTasksResponse) GetTasks() []*GetImportStateResponse { +func (x *GetCompactionStateRequest) GetCompactionID() int64 { if x != nil { - return x.Tasks + return x.CompactionID } - return nil + return 0 } -type GetReplicasRequest struct { +type GetCompactionStateResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - CollectionID int64 `protobuf:"varint,2,opt,name=collectionID,proto3" json:"collectionID,omitempty"` - WithShardNodes bool `protobuf:"varint,3,opt,name=with_shard_nodes,json=withShardNodes,proto3" json:"with_shard_nodes,omitempty"` - CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - DbName string `protobuf:"bytes,5,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + State commonpb.CompactionState `protobuf:"varint,2,opt,name=state,proto3,enum=milvus.proto.common.CompactionState" json:"state,omitempty"` + ExecutingPlanNo int64 `protobuf:"varint,3,opt,name=executingPlanNo,proto3" json:"executingPlanNo,omitempty"` + TimeoutPlanNo int64 `protobuf:"varint,4,opt,name=timeoutPlanNo,proto3" json:"timeoutPlanNo,omitempty"` + CompletedPlanNo int64 `protobuf:"varint,5,opt,name=completedPlanNo,proto3" json:"completedPlanNo,omitempty"` + FailedPlanNo int64 `protobuf:"varint,6,opt,name=failedPlanNo,proto3" json:"failedPlanNo,omitempty"` } -func (x *GetReplicasRequest) Reset() { - *x = GetReplicasRequest{} +func (x *GetCompactionStateResponse) Reset() { + *x = GetCompactionStateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[113] + mi := &file_milvus_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetReplicasRequest) String() string { +func (x *GetCompactionStateResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetReplicasRequest) ProtoMessage() {} +func (*GetCompactionStateResponse) ProtoMessage() {} -func (x *GetReplicasRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[113] +func (x *GetCompactionStateResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9553,72 +9515,78 @@ func (x *GetReplicasRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetReplicasRequest.ProtoReflect.Descriptor instead. -func (*GetReplicasRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{113} -} - -func (x *GetReplicasRequest) GetBase() *commonpb.MsgBase { +// Deprecated: Use GetCompactionStateResponse.ProtoReflect.Descriptor instead. +func (*GetCompactionStateResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{112} +} + +func (x *GetCompactionStateResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Base + return x.Status } return nil } -func (x *GetReplicasRequest) GetCollectionID() int64 { +func (x *GetCompactionStateResponse) GetState() commonpb.CompactionState { if x != nil { - return x.CollectionID + return x.State + } + return commonpb.CompactionState(0) +} + +func (x *GetCompactionStateResponse) GetExecutingPlanNo() int64 { + if x != nil { + return x.ExecutingPlanNo } return 0 } -func (x *GetReplicasRequest) GetWithShardNodes() bool { +func (x *GetCompactionStateResponse) GetTimeoutPlanNo() int64 { if x != nil { - return x.WithShardNodes + return x.TimeoutPlanNo } - return false + return 0 } -func (x *GetReplicasRequest) GetCollectionName() string { +func (x *GetCompactionStateResponse) GetCompletedPlanNo() int64 { if x != nil { - return x.CollectionName + return x.CompletedPlanNo } - return "" + return 0 } -func (x *GetReplicasRequest) GetDbName() string { +func (x *GetCompactionStateResponse) GetFailedPlanNo() int64 { if x != nil { - return x.DbName + return x.FailedPlanNo } - return "" + return 0 } -type GetReplicasResponse struct { +type GetCompactionPlansRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Replicas []*ReplicaInfo `protobuf:"bytes,2,rep,name=replicas,proto3" json:"replicas,omitempty"` + CompactionID int64 `protobuf:"varint,1,opt,name=compactionID,proto3" json:"compactionID,omitempty"` } -func (x *GetReplicasResponse) Reset() { - *x = GetReplicasResponse{} +func (x *GetCompactionPlansRequest) Reset() { + *x = GetCompactionPlansRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[114] + mi := &file_milvus_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetReplicasResponse) String() string { +func (x *GetCompactionPlansRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetReplicasResponse) ProtoMessage() {} +func (*GetCompactionPlansRequest) ProtoMessage() {} -func (x *GetReplicasResponse) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[114] +func (x *GetCompactionPlansRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9629,57 +9597,45 @@ func (x *GetReplicasResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetReplicasResponse.ProtoReflect.Descriptor instead. -func (*GetReplicasResponse) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{114} -} - -func (x *GetReplicasResponse) GetStatus() *commonpb.Status { - if x != nil { - return x.Status - } - return nil +// Deprecated: Use GetCompactionPlansRequest.ProtoReflect.Descriptor instead. +func (*GetCompactionPlansRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{113} } -func (x *GetReplicasResponse) GetReplicas() []*ReplicaInfo { +func (x *GetCompactionPlansRequest) GetCompactionID() int64 { if x != nil { - return x.Replicas + return x.CompactionID } - return nil + return 0 } -type ReplicaInfo struct { +type GetCompactionPlansResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ReplicaID int64 `protobuf:"varint,1,opt,name=replicaID,proto3" json:"replicaID,omitempty"` - CollectionID int64 `protobuf:"varint,2,opt,name=collectionID,proto3" json:"collectionID,omitempty"` - PartitionIds []int64 `protobuf:"varint,3,rep,packed,name=partition_ids,json=partitionIds,proto3" json:"partition_ids,omitempty"` // empty indicates to load collection - ShardReplicas []*ShardReplica `protobuf:"bytes,4,rep,name=shard_replicas,json=shardReplicas,proto3" json:"shard_replicas,omitempty"` - NodeIds []int64 `protobuf:"varint,5,rep,packed,name=node_ids,json=nodeIds,proto3" json:"node_ids,omitempty"` // include leaders - ResourceGroupName string `protobuf:"bytes,6,opt,name=resource_group_name,json=resourceGroupName,proto3" json:"resource_group_name,omitempty"` - // outbound access rg -> node num - NumOutboundNode map[string]int32 `protobuf:"bytes,7,rep,name=num_outbound_node,json=numOutboundNode,proto3" json:"num_outbound_node,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + State commonpb.CompactionState `protobuf:"varint,2,opt,name=state,proto3,enum=milvus.proto.common.CompactionState" json:"state,omitempty"` + MergeInfos []*CompactionMergeInfo `protobuf:"bytes,3,rep,name=mergeInfos,proto3" json:"mergeInfos,omitempty"` } -func (x *ReplicaInfo) Reset() { - *x = ReplicaInfo{} +func (x *GetCompactionPlansResponse) Reset() { + *x = GetCompactionPlansResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[115] + mi := &file_milvus_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ReplicaInfo) String() string { +func (x *GetCompactionPlansResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ReplicaInfo) ProtoMessage() {} +func (*GetCompactionPlansResponse) ProtoMessage() {} -func (x *ReplicaInfo) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[115] +func (x *GetCompactionPlansResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9690,75 +9646,100 @@ func (x *ReplicaInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ReplicaInfo.ProtoReflect.Descriptor instead. -func (*ReplicaInfo) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{115} +// Deprecated: Use GetCompactionPlansResponse.ProtoReflect.Descriptor instead. +func (*GetCompactionPlansResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{114} } -func (x *ReplicaInfo) GetReplicaID() int64 { +func (x *GetCompactionPlansResponse) GetStatus() *commonpb.Status { if x != nil { - return x.ReplicaID + return x.Status } - return 0 + return nil } -func (x *ReplicaInfo) GetCollectionID() int64 { +func (x *GetCompactionPlansResponse) GetState() commonpb.CompactionState { if x != nil { - return x.CollectionID + return x.State } - return 0 + return commonpb.CompactionState(0) } -func (x *ReplicaInfo) GetPartitionIds() []int64 { +func (x *GetCompactionPlansResponse) GetMergeInfos() []*CompactionMergeInfo { if x != nil { - return x.PartitionIds + return x.MergeInfos } return nil } -func (x *ReplicaInfo) GetShardReplicas() []*ShardReplica { - if x != nil { - return x.ShardReplicas +type CompactionMergeInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sources []int64 `protobuf:"varint,1,rep,packed,name=sources,proto3" json:"sources,omitempty"` + Target int64 `protobuf:"varint,2,opt,name=target,proto3" json:"target,omitempty"` +} + +func (x *CompactionMergeInfo) Reset() { + *x = CompactionMergeInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[115] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *ReplicaInfo) GetNodeIds() []int64 { - if x != nil { - return x.NodeIds +func (x *CompactionMergeInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CompactionMergeInfo) ProtoMessage() {} + +func (x *CompactionMergeInfo) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[115] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *ReplicaInfo) GetResourceGroupName() string { +// Deprecated: Use CompactionMergeInfo.ProtoReflect.Descriptor instead. +func (*CompactionMergeInfo) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{115} +} + +func (x *CompactionMergeInfo) GetSources() []int64 { if x != nil { - return x.ResourceGroupName + return x.Sources } - return "" + return nil } -func (x *ReplicaInfo) GetNumOutboundNode() map[string]int32 { +func (x *CompactionMergeInfo) GetTarget() int64 { if x != nil { - return x.NumOutboundNode + return x.Target } - return nil + return 0 } -type ShardReplica struct { +type GetFlushStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - LeaderID int64 `protobuf:"varint,1,opt,name=leaderID,proto3" json:"leaderID,omitempty"` - LeaderAddr string `protobuf:"bytes,2,opt,name=leader_addr,json=leaderAddr,proto3" json:"leader_addr,omitempty"` // IP:port - DmChannelName string `protobuf:"bytes,3,opt,name=dm_channel_name,json=dmChannelName,proto3" json:"dm_channel_name,omitempty"` - // optional, DO NOT save it in meta, set it only for GetReplicas() - // if with_shard_nodes is true - NodeIds []int64 `protobuf:"varint,4,rep,packed,name=node_ids,json=nodeIds,proto3" json:"node_ids,omitempty"` + SegmentIDs []int64 `protobuf:"varint,1,rep,packed,name=segmentIDs,proto3" json:"segmentIDs,omitempty"` + FlushTs uint64 `protobuf:"varint,2,opt,name=flush_ts,json=flushTs,proto3" json:"flush_ts,omitempty"` + DbName string `protobuf:"bytes,3,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` } -func (x *ShardReplica) Reset() { - *x = ShardReplica{} +func (x *GetFlushStateRequest) Reset() { + *x = GetFlushStateRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -9766,13 +9747,13 @@ func (x *ShardReplica) Reset() { } } -func (x *ShardReplica) String() string { +func (x *GetFlushStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ShardReplica) ProtoMessage() {} +func (*GetFlushStateRequest) ProtoMessage() {} -func (x *ShardReplica) ProtoReflect() protoreflect.Message { +func (x *GetFlushStateRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -9784,58 +9765,50 @@ func (x *ShardReplica) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ShardReplica.ProtoReflect.Descriptor instead. -func (*ShardReplica) Descriptor() ([]byte, []int) { +// Deprecated: Use GetFlushStateRequest.ProtoReflect.Descriptor instead. +func (*GetFlushStateRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{116} } -func (x *ShardReplica) GetLeaderID() int64 { +func (x *GetFlushStateRequest) GetSegmentIDs() []int64 { if x != nil { - return x.LeaderID + return x.SegmentIDs } - return 0 + return nil } -func (x *ShardReplica) GetLeaderAddr() string { +func (x *GetFlushStateRequest) GetFlushTs() uint64 { if x != nil { - return x.LeaderAddr + return x.FlushTs } - return "" + return 0 } -func (x *ShardReplica) GetDmChannelName() string { +func (x *GetFlushStateRequest) GetDbName() string { if x != nil { - return x.DmChannelName + return x.DbName } return "" } -func (x *ShardReplica) GetNodeIds() []int64 { +func (x *GetFlushStateRequest) GetCollectionName() string { if x != nil { - return x.NodeIds + return x.CollectionName } - return nil + return "" } -type CreateCredentialRequest struct { +type GetFlushStateResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Not useful for now - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - // username - Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` - // ciphertext password - Password string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"` - // create time - CreatedUtcTimestamps uint64 `protobuf:"varint,4,opt,name=created_utc_timestamps,json=createdUtcTimestamps,proto3" json:"created_utc_timestamps,omitempty"` - // modify time - ModifiedUtcTimestamps uint64 `protobuf:"varint,5,opt,name=modified_utc_timestamps,json=modifiedUtcTimestamps,proto3" json:"modified_utc_timestamps,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Flushed bool `protobuf:"varint,2,opt,name=flushed,proto3" json:"flushed,omitempty"` } -func (x *CreateCredentialRequest) Reset() { - *x = CreateCredentialRequest{} +func (x *GetFlushStateResponse) Reset() { + *x = GetFlushStateResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -9843,13 +9816,13 @@ func (x *CreateCredentialRequest) Reset() { } } -func (x *CreateCredentialRequest) String() string { +func (x *GetFlushStateResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateCredentialRequest) ProtoMessage() {} +func (*GetFlushStateResponse) ProtoMessage() {} -func (x *CreateCredentialRequest) ProtoReflect() protoreflect.Message { +func (x *GetFlushStateResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -9861,67 +9834,42 @@ func (x *CreateCredentialRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateCredentialRequest.ProtoReflect.Descriptor instead. -func (*CreateCredentialRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetFlushStateResponse.ProtoReflect.Descriptor instead. +func (*GetFlushStateResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{117} } -func (x *CreateCredentialRequest) GetBase() *commonpb.MsgBase { +func (x *GetFlushStateResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Base + return x.Status } return nil } -func (x *CreateCredentialRequest) GetUsername() string { - if x != nil { - return x.Username - } - return "" -} - -func (x *CreateCredentialRequest) GetPassword() string { - if x != nil { - return x.Password - } - return "" -} - -func (x *CreateCredentialRequest) GetCreatedUtcTimestamps() uint64 { - if x != nil { - return x.CreatedUtcTimestamps - } - return 0 -} - -func (x *CreateCredentialRequest) GetModifiedUtcTimestamps() uint64 { +func (x *GetFlushStateResponse) GetFlushed() bool { if x != nil { - return x.ModifiedUtcTimestamps + return x.Flushed } - return 0 + return false } -type UpdateCredentialRequest struct { +type GetFlushAllStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Not useful for now Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - // username - Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` - // old password - OldPassword string `protobuf:"bytes,3,opt,name=oldPassword,proto3" json:"oldPassword,omitempty"` - // new password - NewPassword string `protobuf:"bytes,4,opt,name=newPassword,proto3" json:"newPassword,omitempty"` - // create time - CreatedUtcTimestamps uint64 `protobuf:"varint,5,opt,name=created_utc_timestamps,json=createdUtcTimestamps,proto3" json:"created_utc_timestamps,omitempty"` - // modify time - ModifiedUtcTimestamps uint64 `protobuf:"varint,6,opt,name=modified_utc_timestamps,json=modifiedUtcTimestamps,proto3" json:"modified_utc_timestamps,omitempty"` + // Deprecated: Marked as deprecated in milvus.proto. + FlushAllTs uint64 `protobuf:"varint,2,opt,name=flush_all_ts,json=flushAllTs,proto3" json:"flush_all_ts,omitempty"` + // Deprecated: Marked as deprecated in milvus.proto. + DbName string `protobuf:"bytes,3,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + // Deprecated: Marked as deprecated in milvus.proto. + FlushTargets []*FlushAllTarget `protobuf:"bytes,4,rep,name=flush_targets,json=flushTargets,proto3" json:"flush_targets,omitempty"` + FlushAllTss map[string]uint64 `protobuf:"bytes,5,rep,name=flush_all_tss,json=flushAllTss,proto3" json:"flush_all_tss,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // pchannel -> flush all ts } -func (x *UpdateCredentialRequest) Reset() { - *x = UpdateCredentialRequest{} +func (x *GetFlushAllStateRequest) Reset() { + *x = GetFlushAllStateRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -9929,13 +9877,13 @@ func (x *UpdateCredentialRequest) Reset() { } } -func (x *UpdateCredentialRequest) String() string { +func (x *GetFlushAllStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UpdateCredentialRequest) ProtoMessage() {} +func (*GetFlushAllStateRequest) ProtoMessage() {} -func (x *UpdateCredentialRequest) ProtoReflect() protoreflect.Message { +func (x *GetFlushAllStateRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -9947,66 +9895,66 @@ func (x *UpdateCredentialRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UpdateCredentialRequest.ProtoReflect.Descriptor instead. -func (*UpdateCredentialRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetFlushAllStateRequest.ProtoReflect.Descriptor instead. +func (*GetFlushAllStateRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{118} } -func (x *UpdateCredentialRequest) GetBase() *commonpb.MsgBase { +func (x *GetFlushAllStateRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *UpdateCredentialRequest) GetUsername() string { - if x != nil { - return x.Username - } - return "" -} - -func (x *UpdateCredentialRequest) GetOldPassword() string { +// Deprecated: Marked as deprecated in milvus.proto. +func (x *GetFlushAllStateRequest) GetFlushAllTs() uint64 { if x != nil { - return x.OldPassword + return x.FlushAllTs } - return "" + return 0 } -func (x *UpdateCredentialRequest) GetNewPassword() string { +// Deprecated: Marked as deprecated in milvus.proto. +func (x *GetFlushAllStateRequest) GetDbName() string { if x != nil { - return x.NewPassword + return x.DbName } return "" } -func (x *UpdateCredentialRequest) GetCreatedUtcTimestamps() uint64 { +// Deprecated: Marked as deprecated in milvus.proto. +func (x *GetFlushAllStateRequest) GetFlushTargets() []*FlushAllTarget { if x != nil { - return x.CreatedUtcTimestamps + return x.FlushTargets } - return 0 + return nil } -func (x *UpdateCredentialRequest) GetModifiedUtcTimestamps() uint64 { +func (x *GetFlushAllStateRequest) GetFlushAllTss() map[string]uint64 { if x != nil { - return x.ModifiedUtcTimestamps + return x.FlushAllTss } - return 0 + return nil } -type DeleteCredentialRequest struct { +type GetFlushAllStateResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Not useful for now - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - // Not useful for now - Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + // True if all data in the cluster are flushed + Flushed bool `protobuf:"varint,2,opt,name=flushed,proto3" json:"flushed,omitempty"` + // Detailed flush state for each database + // Provides per-database and per-collection flush status information + // + // Deprecated: Marked as deprecated in milvus.proto. + FlushStates []*FlushAllState `protobuf:"bytes,3,rep,name=flush_states,json=flushStates,proto3" json:"flush_states,omitempty"` } -func (x *DeleteCredentialRequest) Reset() { - *x = DeleteCredentialRequest{} +func (x *GetFlushAllStateResponse) Reset() { + *x = GetFlushAllStateResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10014,13 +9962,13 @@ func (x *DeleteCredentialRequest) Reset() { } } -func (x *DeleteCredentialRequest) String() string { +func (x *GetFlushAllStateResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeleteCredentialRequest) ProtoMessage() {} +func (*GetFlushAllStateResponse) ProtoMessage() {} -func (x *DeleteCredentialRequest) ProtoReflect() protoreflect.Message { +func (x *GetFlushAllStateResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10032,38 +9980,48 @@ func (x *DeleteCredentialRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeleteCredentialRequest.ProtoReflect.Descriptor instead. -func (*DeleteCredentialRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetFlushAllStateResponse.ProtoReflect.Descriptor instead. +func (*GetFlushAllStateResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{119} } -func (x *DeleteCredentialRequest) GetBase() *commonpb.MsgBase { +func (x *GetFlushAllStateResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Base + return x.Status } return nil } -func (x *DeleteCredentialRequest) GetUsername() string { +func (x *GetFlushAllStateResponse) GetFlushed() bool { if x != nil { - return x.Username + return x.Flushed } - return "" + return false } -type ListCredUsersResponse struct { +// Deprecated: Marked as deprecated in milvus.proto. +func (x *GetFlushAllStateResponse) GetFlushStates() []*FlushAllState { + if x != nil { + return x.FlushStates + } + return nil +} + +// Deprecated +type FlushAllState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Contain error_code and reason - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - // username array - Usernames []string `protobuf:"bytes,2,rep,name=usernames,proto3" json:"usernames,omitempty"` + // Database name for this flush state report + DbName string `protobuf:"bytes,1,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + // Collection-level flush state mapping + // Key: collection name, Value: true if collection is fully flushed + CollectionFlushStates map[string]bool `protobuf:"bytes,2,rep,name=collection_flush_states,json=collectionFlushStates,proto3" json:"collection_flush_states,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } -func (x *ListCredUsersResponse) Reset() { - *x = ListCredUsersResponse{} +func (x *FlushAllState) Reset() { + *x = FlushAllState{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10071,13 +10029,13 @@ func (x *ListCredUsersResponse) Reset() { } } -func (x *ListCredUsersResponse) String() string { +func (x *FlushAllState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListCredUsersResponse) ProtoMessage() {} +func (*FlushAllState) ProtoMessage() {} -func (x *ListCredUsersResponse) ProtoReflect() protoreflect.Message { +func (x *FlushAllState) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10089,36 +10047,42 @@ func (x *ListCredUsersResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListCredUsersResponse.ProtoReflect.Descriptor instead. -func (*ListCredUsersResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use FlushAllState.ProtoReflect.Descriptor instead. +func (*FlushAllState) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{120} } -func (x *ListCredUsersResponse) GetStatus() *commonpb.Status { +func (x *FlushAllState) GetDbName() string { if x != nil { - return x.Status + return x.DbName } - return nil + return "" } -func (x *ListCredUsersResponse) GetUsernames() []string { +func (x *FlushAllState) GetCollectionFlushStates() map[string]bool { if x != nil { - return x.Usernames + return x.CollectionFlushStates } return nil } -type ListCredUsersRequest struct { +type ImportRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Not useful for now - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // target collection + PartitionName string `protobuf:"bytes,2,opt,name=partition_name,json=partitionName,proto3" json:"partition_name,omitempty"` // target partition + ChannelNames []string `protobuf:"bytes,3,rep,name=channel_names,json=channelNames,proto3" json:"channel_names,omitempty"` // channel names for the collection + RowBased bool `protobuf:"varint,4,opt,name=row_based,json=rowBased,proto3" json:"row_based,omitempty"` // the file is row-based or column-based + Files []string `protobuf:"bytes,5,rep,name=files,proto3" json:"files,omitempty"` // file paths to be imported + Options []*commonpb.KeyValuePair `protobuf:"bytes,6,rep,name=options,proto3" json:"options,omitempty"` // import options, bucket, etc. + DbName string `protobuf:"bytes,7,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` // target database + ClusteringInfo []byte `protobuf:"bytes,8,opt,name=clustering_info,json=clusteringInfo,proto3" json:"clustering_info,omitempty"` // serialized `schema.ClusteringInfo` } -func (x *ListCredUsersRequest) Reset() { - *x = ListCredUsersRequest{} +func (x *ImportRequest) Reset() { + *x = ImportRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10126,13 +10090,13 @@ func (x *ListCredUsersRequest) Reset() { } } -func (x *ListCredUsersRequest) String() string { +func (x *ImportRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListCredUsersRequest) ProtoMessage() {} +func (*ImportRequest) ProtoMessage() {} -func (x *ListCredUsersRequest) ProtoReflect() protoreflect.Message { +func (x *ImportRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10144,44 +10108,93 @@ func (x *ListCredUsersRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListCredUsersRequest.ProtoReflect.Descriptor instead. -func (*ListCredUsersRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ImportRequest.ProtoReflect.Descriptor instead. +func (*ImportRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{121} } -func (x *ListCredUsersRequest) GetBase() *commonpb.MsgBase { +func (x *ImportRequest) GetCollectionName() string { if x != nil { - return x.Base + return x.CollectionName } - return nil + return "" } -// https://wiki.lfaidata.foundation/display/MIL/MEP+29+--+Support+Role-Based+Access+Control -type RoleEntity struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *ImportRequest) GetPartitionName() string { + if x != nil { + return x.PartitionName + } + return "" +} - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +func (x *ImportRequest) GetChannelNames() []string { + if x != nil { + return x.ChannelNames + } + return nil } -func (x *RoleEntity) Reset() { - *x = RoleEntity{} - if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[122] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ImportRequest) GetRowBased() bool { + if x != nil { + return x.RowBased } + return false } -func (x *RoleEntity) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *ImportRequest) GetFiles() []string { + if x != nil { + return x.Files + } + return nil } -func (*RoleEntity) ProtoMessage() {} +func (x *ImportRequest) GetOptions() []*commonpb.KeyValuePair { + if x != nil { + return x.Options + } + return nil +} -func (x *RoleEntity) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[122] +func (x *ImportRequest) GetDbName() string { + if x != nil { + return x.DbName + } + return "" +} + +func (x *ImportRequest) GetClusteringInfo() []byte { + if x != nil { + return x.ClusteringInfo + } + return nil +} + +type ImportResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Tasks []int64 `protobuf:"varint,2,rep,packed,name=tasks,proto3" json:"tasks,omitempty"` // id array of import tasks +} + +func (x *ImportResponse) Reset() { + *x = ImportResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[122] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImportResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportResponse) ProtoMessage() {} + +func (x *ImportResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10192,28 +10205,35 @@ func (x *RoleEntity) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RoleEntity.ProtoReflect.Descriptor instead. -func (*RoleEntity) Descriptor() ([]byte, []int) { +// Deprecated: Use ImportResponse.ProtoReflect.Descriptor instead. +func (*ImportResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{122} } -func (x *RoleEntity) GetName() string { +func (x *ImportResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Name + return x.Status } - return "" + return nil } -type UserEntity struct { +func (x *ImportResponse) GetTasks() []int64 { + if x != nil { + return x.Tasks + } + return nil +} + +type GetImportStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Task int64 `protobuf:"varint,1,opt,name=task,proto3" json:"task,omitempty"` // id of an import task } -func (x *UserEntity) Reset() { - *x = UserEntity{} +func (x *GetImportStateRequest) Reset() { + *x = GetImportStateRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10221,13 +10241,13 @@ func (x *UserEntity) Reset() { } } -func (x *UserEntity) String() string { +func (x *GetImportStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UserEntity) ProtoMessage() {} +func (*GetImportStateRequest) ProtoMessage() {} -func (x *UserEntity) ProtoReflect() protoreflect.Message { +func (x *GetImportStateRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10239,31 +10259,36 @@ func (x *UserEntity) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UserEntity.ProtoReflect.Descriptor instead. -func (*UserEntity) Descriptor() ([]byte, []int) { +// Deprecated: Use GetImportStateRequest.ProtoReflect.Descriptor instead. +func (*GetImportStateRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{123} } -func (x *UserEntity) GetName() string { +func (x *GetImportStateRequest) GetTask() int64 { if x != nil { - return x.Name + return x.Task } - return "" + return 0 } -type CreateRoleRequest struct { +type GetImportStateResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Not useful for now - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - // role - Entity *RoleEntity `protobuf:"bytes,2,opt,name=entity,proto3" json:"entity,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + State commonpb.ImportState `protobuf:"varint,2,opt,name=state,proto3,enum=milvus.proto.common.ImportState" json:"state,omitempty"` // is this import task finished or not + RowCount int64 `protobuf:"varint,3,opt,name=row_count,json=rowCount,proto3" json:"row_count,omitempty"` // if the task is finished, this value is how many rows are imported. if the task is not finished, this value is how many rows are parsed. return 0 if failed. + IdList []int64 `protobuf:"varint,4,rep,packed,name=id_list,json=idList,proto3" json:"id_list,omitempty"` // auto generated ids if the primary key is autoid + Infos []*commonpb.KeyValuePair `protobuf:"bytes,5,rep,name=infos,proto3" json:"infos,omitempty"` // more information about the task, progress percent, file path, failed reason, etc. + Id int64 `protobuf:"varint,6,opt,name=id,proto3" json:"id,omitempty"` // id of an import task + CollectionId int64 `protobuf:"varint,7,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"` // collection ID of the import task. + SegmentIds []int64 `protobuf:"varint,8,rep,packed,name=segment_ids,json=segmentIds,proto3" json:"segment_ids,omitempty"` // a list of segment IDs created by the import task. + CreateTs int64 `protobuf:"varint,9,opt,name=create_ts,json=createTs,proto3" json:"create_ts,omitempty"` // timestamp when the import task is created. } -func (x *CreateRoleRequest) Reset() { - *x = CreateRoleRequest{} +func (x *GetImportStateResponse) Reset() { + *x = GetImportStateResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10271,13 +10296,13 @@ func (x *CreateRoleRequest) Reset() { } } -func (x *CreateRoleRequest) String() string { +func (x *GetImportStateResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateRoleRequest) ProtoMessage() {} +func (*GetImportStateResponse) ProtoMessage() {} -func (x *CreateRoleRequest) ProtoReflect() protoreflect.Message { +func (x *GetImportStateResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10289,40 +10314,86 @@ func (x *CreateRoleRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateRoleRequest.ProtoReflect.Descriptor instead. -func (*CreateRoleRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetImportStateResponse.ProtoReflect.Descriptor instead. +func (*GetImportStateResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{124} } -func (x *CreateRoleRequest) GetBase() *commonpb.MsgBase { +func (x *GetImportStateResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Base + return x.Status } return nil } -func (x *CreateRoleRequest) GetEntity() *RoleEntity { +func (x *GetImportStateResponse) GetState() commonpb.ImportState { if x != nil { - return x.Entity + return x.State + } + return commonpb.ImportState(0) +} + +func (x *GetImportStateResponse) GetRowCount() int64 { + if x != nil { + return x.RowCount + } + return 0 +} + +func (x *GetImportStateResponse) GetIdList() []int64 { + if x != nil { + return x.IdList } return nil } -type DropRoleRequest struct { +func (x *GetImportStateResponse) GetInfos() []*commonpb.KeyValuePair { + if x != nil { + return x.Infos + } + return nil +} + +func (x *GetImportStateResponse) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *GetImportStateResponse) GetCollectionId() int64 { + if x != nil { + return x.CollectionId + } + return 0 +} + +func (x *GetImportStateResponse) GetSegmentIds() []int64 { + if x != nil { + return x.SegmentIds + } + return nil +} + +func (x *GetImportStateResponse) GetCreateTs() int64 { + if x != nil { + return x.CreateTs + } + return 0 +} + +type ListImportTasksRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Not useful for now - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - // role name - RoleName string `protobuf:"bytes,2,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` - // force to drop the role even if there is permission binding - ForceDrop bool `protobuf:"varint,3,opt,name=force_drop,json=forceDrop,proto3" json:"force_drop,omitempty"` + CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // target collection, list all tasks if the name is empty + Limit int64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` // maximum number of tasks returned, list all tasks if the value is 0 + DbName string `protobuf:"bytes,3,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` } -func (x *DropRoleRequest) Reset() { - *x = DropRoleRequest{} +func (x *ListImportTasksRequest) Reset() { + *x = ListImportTasksRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10330,13 +10401,13 @@ func (x *DropRoleRequest) Reset() { } } -func (x *DropRoleRequest) String() string { +func (x *ListImportTasksRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DropRoleRequest) ProtoMessage() {} +func (*ListImportTasksRequest) ProtoMessage() {} -func (x *DropRoleRequest) ProtoReflect() protoreflect.Message { +func (x *ListImportTasksRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10348,45 +10419,43 @@ func (x *DropRoleRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DropRoleRequest.ProtoReflect.Descriptor instead. -func (*DropRoleRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ListImportTasksRequest.ProtoReflect.Descriptor instead. +func (*ListImportTasksRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{125} } -func (x *DropRoleRequest) GetBase() *commonpb.MsgBase { +func (x *ListImportTasksRequest) GetCollectionName() string { if x != nil { - return x.Base + return x.CollectionName } - return nil + return "" } -func (x *DropRoleRequest) GetRoleName() string { +func (x *ListImportTasksRequest) GetLimit() int64 { if x != nil { - return x.RoleName + return x.Limit } - return "" + return 0 } -func (x *DropRoleRequest) GetForceDrop() bool { +func (x *ListImportTasksRequest) GetDbName() string { if x != nil { - return x.ForceDrop + return x.DbName } - return false + return "" } -type CreatePrivilegeGroupRequest struct { +type ListImportTasksResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Not useful for now - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - // group name - GroupName string `protobuf:"bytes,2,opt,name=group_name,json=groupName,proto3" json:"group_name,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Tasks []*GetImportStateResponse `protobuf:"bytes,2,rep,name=tasks,proto3" json:"tasks,omitempty"` // list of all import tasks } -func (x *CreatePrivilegeGroupRequest) Reset() { - *x = CreatePrivilegeGroupRequest{} +func (x *ListImportTasksResponse) Reset() { + *x = ListImportTasksResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10394,13 +10463,13 @@ func (x *CreatePrivilegeGroupRequest) Reset() { } } -func (x *CreatePrivilegeGroupRequest) String() string { +func (x *ListImportTasksResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreatePrivilegeGroupRequest) ProtoMessage() {} +func (*ListImportTasksResponse) ProtoMessage() {} -func (x *CreatePrivilegeGroupRequest) ProtoReflect() protoreflect.Message { +func (x *ListImportTasksResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10412,52 +10481,53 @@ func (x *CreatePrivilegeGroupRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreatePrivilegeGroupRequest.ProtoReflect.Descriptor instead. -func (*CreatePrivilegeGroupRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ListImportTasksResponse.ProtoReflect.Descriptor instead. +func (*ListImportTasksResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{126} } -func (x *CreatePrivilegeGroupRequest) GetBase() *commonpb.MsgBase { +func (x *ListImportTasksResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Base + return x.Status } return nil } -func (x *CreatePrivilegeGroupRequest) GetGroupName() string { +func (x *ListImportTasksResponse) GetTasks() []*GetImportStateResponse { if x != nil { - return x.GroupName + return x.Tasks } - return "" + return nil } -type DropPrivilegeGroupRequest struct { +type GetReplicasRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Not useful for now - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - // group name - GroupName string `protobuf:"bytes,2,opt,name=group_name,json=groupName,proto3" json:"group_name,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + CollectionID int64 `protobuf:"varint,2,opt,name=collectionID,proto3" json:"collectionID,omitempty"` + WithShardNodes bool `protobuf:"varint,3,opt,name=with_shard_nodes,json=withShardNodes,proto3" json:"with_shard_nodes,omitempty"` + CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + DbName string `protobuf:"bytes,5,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` } -func (x *DropPrivilegeGroupRequest) Reset() { - *x = DropPrivilegeGroupRequest{} - if protoimpl.UnsafeEnabled { +func (x *GetReplicasRequest) Reset() { + *x = GetReplicasRequest{} + if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DropPrivilegeGroupRequest) String() string { +func (x *GetReplicasRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DropPrivilegeGroupRequest) ProtoMessage() {} +func (*GetReplicasRequest) ProtoMessage() {} -func (x *DropPrivilegeGroupRequest) ProtoReflect() protoreflect.Message { +func (x *GetReplicasRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10469,36 +10539,57 @@ func (x *DropPrivilegeGroupRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DropPrivilegeGroupRequest.ProtoReflect.Descriptor instead. -func (*DropPrivilegeGroupRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetReplicasRequest.ProtoReflect.Descriptor instead. +func (*GetReplicasRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{127} } -func (x *DropPrivilegeGroupRequest) GetBase() *commonpb.MsgBase { +func (x *GetReplicasRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *DropPrivilegeGroupRequest) GetGroupName() string { +func (x *GetReplicasRequest) GetCollectionID() int64 { if x != nil { - return x.GroupName + return x.CollectionID + } + return 0 +} + +func (x *GetReplicasRequest) GetWithShardNodes() bool { + if x != nil { + return x.WithShardNodes + } + return false +} + +func (x *GetReplicasRequest) GetCollectionName() string { + if x != nil { + return x.CollectionName } return "" } -type ListPrivilegeGroupsRequest struct { +func (x *GetReplicasRequest) GetDbName() string { + if x != nil { + return x.DbName + } + return "" +} + +type GetReplicasResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Not useful for now - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Replicas []*ReplicaInfo `protobuf:"bytes,2,rep,name=replicas,proto3" json:"replicas,omitempty"` } -func (x *ListPrivilegeGroupsRequest) Reset() { - *x = ListPrivilegeGroupsRequest{} +func (x *GetReplicasResponse) Reset() { + *x = GetReplicasResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10506,13 +10597,13 @@ func (x *ListPrivilegeGroupsRequest) Reset() { } } -func (x *ListPrivilegeGroupsRequest) String() string { +func (x *GetReplicasResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListPrivilegeGroupsRequest) ProtoMessage() {} +func (*GetReplicasResponse) ProtoMessage() {} -func (x *ListPrivilegeGroupsRequest) ProtoReflect() protoreflect.Message { +func (x *GetReplicasResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10524,29 +10615,42 @@ func (x *ListPrivilegeGroupsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListPrivilegeGroupsRequest.ProtoReflect.Descriptor instead. -func (*ListPrivilegeGroupsRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetReplicasResponse.ProtoReflect.Descriptor instead. +func (*GetReplicasResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{128} } -func (x *ListPrivilegeGroupsRequest) GetBase() *commonpb.MsgBase { +func (x *GetReplicasResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Base + return x.Status } return nil } -type ListPrivilegeGroupsResponse struct { +func (x *GetReplicasResponse) GetReplicas() []*ReplicaInfo { + if x != nil { + return x.Replicas + } + return nil +} + +type ReplicaInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - PrivilegeGroups []*PrivilegeGroupInfo `protobuf:"bytes,2,rep,name=privilege_groups,json=privilegeGroups,proto3" json:"privilege_groups,omitempty"` + ReplicaID int64 `protobuf:"varint,1,opt,name=replicaID,proto3" json:"replicaID,omitempty"` + CollectionID int64 `protobuf:"varint,2,opt,name=collectionID,proto3" json:"collectionID,omitempty"` + PartitionIds []int64 `protobuf:"varint,3,rep,packed,name=partition_ids,json=partitionIds,proto3" json:"partition_ids,omitempty"` // empty indicates to load collection + ShardReplicas []*ShardReplica `protobuf:"bytes,4,rep,name=shard_replicas,json=shardReplicas,proto3" json:"shard_replicas,omitempty"` + NodeIds []int64 `protobuf:"varint,5,rep,packed,name=node_ids,json=nodeIds,proto3" json:"node_ids,omitempty"` // include leaders + ResourceGroupName string `protobuf:"bytes,6,opt,name=resource_group_name,json=resourceGroupName,proto3" json:"resource_group_name,omitempty"` + // outbound access rg -> node num + NumOutboundNode map[string]int32 `protobuf:"bytes,7,rep,name=num_outbound_node,json=numOutboundNode,proto3" json:"num_outbound_node,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } -func (x *ListPrivilegeGroupsResponse) Reset() { - *x = ListPrivilegeGroupsResponse{} +func (x *ReplicaInfo) Reset() { + *x = ReplicaInfo{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10554,13 +10658,13 @@ func (x *ListPrivilegeGroupsResponse) Reset() { } } -func (x *ListPrivilegeGroupsResponse) String() string { +func (x *ReplicaInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListPrivilegeGroupsResponse) ProtoMessage() {} +func (*ReplicaInfo) ProtoMessage() {} -func (x *ListPrivilegeGroupsResponse) ProtoReflect() protoreflect.Message { +func (x *ReplicaInfo) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10572,42 +10676,75 @@ func (x *ListPrivilegeGroupsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListPrivilegeGroupsResponse.ProtoReflect.Descriptor instead. -func (*ListPrivilegeGroupsResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ReplicaInfo.ProtoReflect.Descriptor instead. +func (*ReplicaInfo) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{129} } -func (x *ListPrivilegeGroupsResponse) GetStatus() *commonpb.Status { +func (x *ReplicaInfo) GetReplicaID() int64 { if x != nil { - return x.Status + return x.ReplicaID + } + return 0 +} + +func (x *ReplicaInfo) GetCollectionID() int64 { + if x != nil { + return x.CollectionID + } + return 0 +} + +func (x *ReplicaInfo) GetPartitionIds() []int64 { + if x != nil { + return x.PartitionIds } return nil } -func (x *ListPrivilegeGroupsResponse) GetPrivilegeGroups() []*PrivilegeGroupInfo { +func (x *ReplicaInfo) GetShardReplicas() []*ShardReplica { if x != nil { - return x.PrivilegeGroups + return x.ShardReplicas } return nil } -type OperatePrivilegeGroupRequest struct { +func (x *ReplicaInfo) GetNodeIds() []int64 { + if x != nil { + return x.NodeIds + } + return nil +} + +func (x *ReplicaInfo) GetResourceGroupName() string { + if x != nil { + return x.ResourceGroupName + } + return "" +} + +func (x *ReplicaInfo) GetNumOutboundNode() map[string]int32 { + if x != nil { + return x.NumOutboundNode + } + return nil +} + +type ShardReplica struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Not useful for now - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - // group name - GroupName string `protobuf:"bytes,2,opt,name=group_name,json=groupName,proto3" json:"group_name,omitempty"` - // privileges - Privileges []*PrivilegeEntity `protobuf:"bytes,3,rep,name=privileges,proto3" json:"privileges,omitempty"` - // operation type - Type OperatePrivilegeGroupType `protobuf:"varint,4,opt,name=type,proto3,enum=milvus.proto.milvus.OperatePrivilegeGroupType" json:"type,omitempty"` + LeaderID int64 `protobuf:"varint,1,opt,name=leaderID,proto3" json:"leaderID,omitempty"` + LeaderAddr string `protobuf:"bytes,2,opt,name=leader_addr,json=leaderAddr,proto3" json:"leader_addr,omitempty"` // IP:port + DmChannelName string `protobuf:"bytes,3,opt,name=dm_channel_name,json=dmChannelName,proto3" json:"dm_channel_name,omitempty"` + // optional, DO NOT save it in meta, set it only for GetReplicas() + // if with_shard_nodes is true + NodeIds []int64 `protobuf:"varint,4,rep,packed,name=node_ids,json=nodeIds,proto3" json:"node_ids,omitempty"` } -func (x *OperatePrivilegeGroupRequest) Reset() { - *x = OperatePrivilegeGroupRequest{} +func (x *ShardReplica) Reset() { + *x = ShardReplica{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10615,13 +10752,13 @@ func (x *OperatePrivilegeGroupRequest) Reset() { } } -func (x *OperatePrivilegeGroupRequest) String() string { +func (x *ShardReplica) String() string { return protoimpl.X.MessageStringOf(x) } -func (*OperatePrivilegeGroupRequest) ProtoMessage() {} +func (*ShardReplica) ProtoMessage() {} -func (x *OperatePrivilegeGroupRequest) ProtoReflect() protoreflect.Message { +func (x *ShardReplica) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10633,40 +10770,40 @@ func (x *OperatePrivilegeGroupRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use OperatePrivilegeGroupRequest.ProtoReflect.Descriptor instead. -func (*OperatePrivilegeGroupRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ShardReplica.ProtoReflect.Descriptor instead. +func (*ShardReplica) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{130} } -func (x *OperatePrivilegeGroupRequest) GetBase() *commonpb.MsgBase { +func (x *ShardReplica) GetLeaderID() int64 { if x != nil { - return x.Base + return x.LeaderID } - return nil + return 0 } -func (x *OperatePrivilegeGroupRequest) GetGroupName() string { +func (x *ShardReplica) GetLeaderAddr() string { if x != nil { - return x.GroupName + return x.LeaderAddr } return "" } -func (x *OperatePrivilegeGroupRequest) GetPrivileges() []*PrivilegeEntity { +func (x *ShardReplica) GetDmChannelName() string { if x != nil { - return x.Privileges + return x.DmChannelName } - return nil + return "" } -func (x *OperatePrivilegeGroupRequest) GetType() OperatePrivilegeGroupType { +func (x *ShardReplica) GetNodeIds() []int64 { if x != nil { - return x.Type + return x.NodeIds } - return OperatePrivilegeGroupType_AddPrivilegesToGroup + return nil } -type OperateUserRoleRequest struct { +type CreateCredentialRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -10675,14 +10812,16 @@ type OperateUserRoleRequest struct { Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` // username Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` - // role name - RoleName string `protobuf:"bytes,3,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` - // operation type - Type OperateUserRoleType `protobuf:"varint,4,opt,name=type,proto3,enum=milvus.proto.milvus.OperateUserRoleType" json:"type,omitempty"` + // ciphertext password + Password string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"` + // create time + CreatedUtcTimestamps uint64 `protobuf:"varint,4,opt,name=created_utc_timestamps,json=createdUtcTimestamps,proto3" json:"created_utc_timestamps,omitempty"` + // modify time + ModifiedUtcTimestamps uint64 `protobuf:"varint,5,opt,name=modified_utc_timestamps,json=modifiedUtcTimestamps,proto3" json:"modified_utc_timestamps,omitempty"` } -func (x *OperateUserRoleRequest) Reset() { - *x = OperateUserRoleRequest{} +func (x *CreateCredentialRequest) Reset() { + *x = CreateCredentialRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10690,13 +10829,13 @@ func (x *OperateUserRoleRequest) Reset() { } } -func (x *OperateUserRoleRequest) String() string { +func (x *CreateCredentialRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*OperateUserRoleRequest) ProtoMessage() {} +func (*CreateCredentialRequest) ProtoMessage() {} -func (x *OperateUserRoleRequest) ProtoReflect() protoreflect.Message { +func (x *CreateCredentialRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10708,50 +10847,67 @@ func (x *OperateUserRoleRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use OperateUserRoleRequest.ProtoReflect.Descriptor instead. -func (*OperateUserRoleRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use CreateCredentialRequest.ProtoReflect.Descriptor instead. +func (*CreateCredentialRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{131} } -func (x *OperateUserRoleRequest) GetBase() *commonpb.MsgBase { +func (x *CreateCredentialRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *OperateUserRoleRequest) GetUsername() string { +func (x *CreateCredentialRequest) GetUsername() string { if x != nil { return x.Username } return "" } -func (x *OperateUserRoleRequest) GetRoleName() string { +func (x *CreateCredentialRequest) GetPassword() string { if x != nil { - return x.RoleName + return x.Password } return "" } -func (x *OperateUserRoleRequest) GetType() OperateUserRoleType { +func (x *CreateCredentialRequest) GetCreatedUtcTimestamps() uint64 { if x != nil { - return x.Type + return x.CreatedUtcTimestamps } - return OperateUserRoleType_AddUserToRole + return 0 } -type PrivilegeGroupInfo struct { +func (x *CreateCredentialRequest) GetModifiedUtcTimestamps() uint64 { + if x != nil { + return x.ModifiedUtcTimestamps + } + return 0 +} + +type UpdateCredentialRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - GroupName string `protobuf:"bytes,1,opt,name=group_name,json=groupName,proto3" json:"group_name,omitempty"` - Privileges []*PrivilegeEntity `protobuf:"bytes,2,rep,name=privileges,proto3" json:"privileges,omitempty"` + // Not useful for now + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + // username + Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` + // old password + OldPassword string `protobuf:"bytes,3,opt,name=oldPassword,proto3" json:"oldPassword,omitempty"` + // new password + NewPassword string `protobuf:"bytes,4,opt,name=newPassword,proto3" json:"newPassword,omitempty"` + // create time + CreatedUtcTimestamps uint64 `protobuf:"varint,5,opt,name=created_utc_timestamps,json=createdUtcTimestamps,proto3" json:"created_utc_timestamps,omitempty"` + // modify time + ModifiedUtcTimestamps uint64 `protobuf:"varint,6,opt,name=modified_utc_timestamps,json=modifiedUtcTimestamps,proto3" json:"modified_utc_timestamps,omitempty"` } -func (x *PrivilegeGroupInfo) Reset() { - *x = PrivilegeGroupInfo{} +func (x *UpdateCredentialRequest) Reset() { + *x = UpdateCredentialRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10759,13 +10915,13 @@ func (x *PrivilegeGroupInfo) Reset() { } } -func (x *PrivilegeGroupInfo) String() string { +func (x *UpdateCredentialRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PrivilegeGroupInfo) ProtoMessage() {} +func (*UpdateCredentialRequest) ProtoMessage() {} -func (x *PrivilegeGroupInfo) ProtoReflect() protoreflect.Message { +func (x *UpdateCredentialRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10777,40 +10933,66 @@ func (x *PrivilegeGroupInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PrivilegeGroupInfo.ProtoReflect.Descriptor instead. -func (*PrivilegeGroupInfo) Descriptor() ([]byte, []int) { +// Deprecated: Use UpdateCredentialRequest.ProtoReflect.Descriptor instead. +func (*UpdateCredentialRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{132} } -func (x *PrivilegeGroupInfo) GetGroupName() string { +func (x *UpdateCredentialRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.GroupName + return x.Base + } + return nil +} + +func (x *UpdateCredentialRequest) GetUsername() string { + if x != nil { + return x.Username } return "" } -func (x *PrivilegeGroupInfo) GetPrivileges() []*PrivilegeEntity { +func (x *UpdateCredentialRequest) GetOldPassword() string { if x != nil { - return x.Privileges + return x.OldPassword } - return nil + return "" } -type SelectRoleRequest struct { +func (x *UpdateCredentialRequest) GetNewPassword() string { + if x != nil { + return x.NewPassword + } + return "" +} + +func (x *UpdateCredentialRequest) GetCreatedUtcTimestamps() uint64 { + if x != nil { + return x.CreatedUtcTimestamps + } + return 0 +} + +func (x *UpdateCredentialRequest) GetModifiedUtcTimestamps() uint64 { + if x != nil { + return x.ModifiedUtcTimestamps + } + return 0 +} + +type DeleteCredentialRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Not useful for now Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - // role - Role *RoleEntity `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"` - // include user info - IncludeUserInfo bool `protobuf:"varint,3,opt,name=include_user_info,json=includeUserInfo,proto3" json:"include_user_info,omitempty"` + // Not useful for now + Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` } -func (x *SelectRoleRequest) Reset() { - *x = SelectRoleRequest{} +func (x *DeleteCredentialRequest) Reset() { + *x = DeleteCredentialRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10818,13 +11000,13 @@ func (x *SelectRoleRequest) Reset() { } } -func (x *SelectRoleRequest) String() string { +func (x *DeleteCredentialRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SelectRoleRequest) ProtoMessage() {} +func (*DeleteCredentialRequest) ProtoMessage() {} -func (x *SelectRoleRequest) ProtoReflect() protoreflect.Message { +func (x *DeleteCredentialRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10836,43 +11018,38 @@ func (x *SelectRoleRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SelectRoleRequest.ProtoReflect.Descriptor instead. -func (*SelectRoleRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use DeleteCredentialRequest.ProtoReflect.Descriptor instead. +func (*DeleteCredentialRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{133} } -func (x *SelectRoleRequest) GetBase() *commonpb.MsgBase { +func (x *DeleteCredentialRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *SelectRoleRequest) GetRole() *RoleEntity { - if x != nil { - return x.Role - } - return nil -} - -func (x *SelectRoleRequest) GetIncludeUserInfo() bool { +func (x *DeleteCredentialRequest) GetUsername() string { if x != nil { - return x.IncludeUserInfo + return x.Username } - return false + return "" } -type RoleResult struct { +type ListCredUsersResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Role *RoleEntity `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"` - Users []*UserEntity `protobuf:"bytes,2,rep,name=users,proto3" json:"users,omitempty"` + // Contain error_code and reason + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + // username array + Usernames []string `protobuf:"bytes,2,rep,name=usernames,proto3" json:"usernames,omitempty"` } -func (x *RoleResult) Reset() { - *x = RoleResult{} +func (x *ListCredUsersResponse) Reset() { + *x = ListCredUsersResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10880,13 +11057,13 @@ func (x *RoleResult) Reset() { } } -func (x *RoleResult) String() string { +func (x *ListCredUsersResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RoleResult) ProtoMessage() {} +func (*ListCredUsersResponse) ProtoMessage() {} -func (x *RoleResult) ProtoReflect() protoreflect.Message { +func (x *ListCredUsersResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10898,38 +11075,36 @@ func (x *RoleResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RoleResult.ProtoReflect.Descriptor instead. -func (*RoleResult) Descriptor() ([]byte, []int) { +// Deprecated: Use ListCredUsersResponse.ProtoReflect.Descriptor instead. +func (*ListCredUsersResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{134} } -func (x *RoleResult) GetRole() *RoleEntity { +func (x *ListCredUsersResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Role + return x.Status } return nil } -func (x *RoleResult) GetUsers() []*UserEntity { +func (x *ListCredUsersResponse) GetUsernames() []string { if x != nil { - return x.Users + return x.Usernames } return nil } -type SelectRoleResponse struct { +type ListCredUsersRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Not useful for now - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - // role result array - Results []*RoleResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` } -func (x *SelectRoleResponse) Reset() { - *x = SelectRoleResponse{} +func (x *ListCredUsersRequest) Reset() { + *x = ListCredUsersRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10937,13 +11112,13 @@ func (x *SelectRoleResponse) Reset() { } } -func (x *SelectRoleResponse) String() string { +func (x *ListCredUsersRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SelectRoleResponse) ProtoMessage() {} +func (*ListCredUsersRequest) ProtoMessage() {} -func (x *SelectRoleResponse) ProtoReflect() protoreflect.Message { +func (x *ListCredUsersRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10955,40 +11130,29 @@ func (x *SelectRoleResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SelectRoleResponse.ProtoReflect.Descriptor instead. -func (*SelectRoleResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ListCredUsersRequest.ProtoReflect.Descriptor instead. +func (*ListCredUsersRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{135} } -func (x *SelectRoleResponse) GetStatus() *commonpb.Status { - if x != nil { - return x.Status - } - return nil -} - -func (x *SelectRoleResponse) GetResults() []*RoleResult { +func (x *ListCredUsersRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Results + return x.Base } return nil } -type SelectUserRequest struct { +// https://wiki.lfaidata.foundation/display/MIL/MEP+29+--+Support+Role-Based+Access+Control +type RoleEntity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Not useful for now - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - // user - User *UserEntity `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"` - // include user info - IncludeRoleInfo bool `protobuf:"varint,3,opt,name=include_role_info,json=includeRoleInfo,proto3" json:"include_role_info,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } -func (x *SelectUserRequest) Reset() { - *x = SelectUserRequest{} +func (x *RoleEntity) Reset() { + *x = RoleEntity{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -10996,13 +11160,13 @@ func (x *SelectUserRequest) Reset() { } } -func (x *SelectUserRequest) String() string { +func (x *RoleEntity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SelectUserRequest) ProtoMessage() {} +func (*RoleEntity) ProtoMessage() {} -func (x *SelectUserRequest) ProtoReflect() protoreflect.Message { +func (x *RoleEntity) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11014,43 +11178,28 @@ func (x *SelectUserRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SelectUserRequest.ProtoReflect.Descriptor instead. -func (*SelectUserRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use RoleEntity.ProtoReflect.Descriptor instead. +func (*RoleEntity) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{136} } -func (x *SelectUserRequest) GetBase() *commonpb.MsgBase { - if x != nil { - return x.Base - } - return nil -} - -func (x *SelectUserRequest) GetUser() *UserEntity { - if x != nil { - return x.User - } - return nil -} - -func (x *SelectUserRequest) GetIncludeRoleInfo() bool { +func (x *RoleEntity) GetName() string { if x != nil { - return x.IncludeRoleInfo + return x.Name } - return false + return "" } -type UserResult struct { +type UserEntity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - User *UserEntity `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` - Roles []*RoleEntity `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } -func (x *UserResult) Reset() { - *x = UserResult{} +func (x *UserEntity) Reset() { + *x = UserEntity{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11058,13 +11207,13 @@ func (x *UserResult) Reset() { } } -func (x *UserResult) String() string { +func (x *UserEntity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UserResult) ProtoMessage() {} +func (*UserEntity) ProtoMessage() {} -func (x *UserResult) ProtoReflect() protoreflect.Message { +func (x *UserEntity) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11076,38 +11225,31 @@ func (x *UserResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UserResult.ProtoReflect.Descriptor instead. -func (*UserResult) Descriptor() ([]byte, []int) { +// Deprecated: Use UserEntity.ProtoReflect.Descriptor instead. +func (*UserEntity) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{137} } -func (x *UserResult) GetUser() *UserEntity { - if x != nil { - return x.User - } - return nil -} - -func (x *UserResult) GetRoles() []*RoleEntity { +func (x *UserEntity) GetName() string { if x != nil { - return x.Roles + return x.Name } - return nil + return "" } -type SelectUserResponse struct { +type CreateRoleRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Not useful for now - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - // user result array - Results []*UserResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + // role + Entity *RoleEntity `protobuf:"bytes,2,opt,name=entity,proto3" json:"entity,omitempty"` } -func (x *SelectUserResponse) Reset() { - *x = SelectUserResponse{} +func (x *CreateRoleRequest) Reset() { + *x = CreateRoleRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11115,13 +11257,13 @@ func (x *SelectUserResponse) Reset() { } } -func (x *SelectUserResponse) String() string { +func (x *CreateRoleRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SelectUserResponse) ProtoMessage() {} +func (*CreateRoleRequest) ProtoMessage() {} -func (x *SelectUserResponse) ProtoReflect() protoreflect.Message { +func (x *CreateRoleRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11133,35 +11275,40 @@ func (x *SelectUserResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SelectUserResponse.ProtoReflect.Descriptor instead. -func (*SelectUserResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use CreateRoleRequest.ProtoReflect.Descriptor instead. +func (*CreateRoleRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{138} } -func (x *SelectUserResponse) GetStatus() *commonpb.Status { +func (x *CreateRoleRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Status + return x.Base } return nil } -func (x *SelectUserResponse) GetResults() []*UserResult { +func (x *CreateRoleRequest) GetEntity() *RoleEntity { if x != nil { - return x.Results + return x.Entity } return nil } -type ObjectEntity struct { +type DropRoleRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Not useful for now + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + // role name + RoleName string `protobuf:"bytes,2,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` + // force to drop the role even if there is permission binding + ForceDrop bool `protobuf:"varint,3,opt,name=force_drop,json=forceDrop,proto3" json:"force_drop,omitempty"` } -func (x *ObjectEntity) Reset() { - *x = ObjectEntity{} +func (x *DropRoleRequest) Reset() { + *x = DropRoleRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11169,13 +11316,13 @@ func (x *ObjectEntity) Reset() { } } -func (x *ObjectEntity) String() string { +func (x *DropRoleRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ObjectEntity) ProtoMessage() {} +func (*DropRoleRequest) ProtoMessage() {} -func (x *ObjectEntity) ProtoReflect() protoreflect.Message { +func (x *DropRoleRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11187,28 +11334,45 @@ func (x *ObjectEntity) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ObjectEntity.ProtoReflect.Descriptor instead. -func (*ObjectEntity) Descriptor() ([]byte, []int) { +// Deprecated: Use DropRoleRequest.ProtoReflect.Descriptor instead. +func (*DropRoleRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{139} } -func (x *ObjectEntity) GetName() string { +func (x *DropRoleRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Name + return x.Base + } + return nil +} + +func (x *DropRoleRequest) GetRoleName() string { + if x != nil { + return x.RoleName } return "" } -type PrivilegeEntity struct { +func (x *DropRoleRequest) GetForceDrop() bool { + if x != nil { + return x.ForceDrop + } + return false +} + +type CreatePrivilegeGroupRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Not useful for now + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + // group name + GroupName string `protobuf:"bytes,2,opt,name=group_name,json=groupName,proto3" json:"group_name,omitempty"` } -func (x *PrivilegeEntity) Reset() { - *x = PrivilegeEntity{} +func (x *CreatePrivilegeGroupRequest) Reset() { + *x = CreatePrivilegeGroupRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11216,13 +11380,13 @@ func (x *PrivilegeEntity) Reset() { } } -func (x *PrivilegeEntity) String() string { +func (x *CreatePrivilegeGroupRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PrivilegeEntity) ProtoMessage() {} +func (*CreatePrivilegeGroupRequest) ProtoMessage() {} -func (x *PrivilegeEntity) ProtoReflect() protoreflect.Message { +func (x *CreatePrivilegeGroupRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11234,29 +11398,38 @@ func (x *PrivilegeEntity) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PrivilegeEntity.ProtoReflect.Descriptor instead. -func (*PrivilegeEntity) Descriptor() ([]byte, []int) { +// Deprecated: Use CreatePrivilegeGroupRequest.ProtoReflect.Descriptor instead. +func (*CreatePrivilegeGroupRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{140} } -func (x *PrivilegeEntity) GetName() string { +func (x *CreatePrivilegeGroupRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Name + return x.Base + } + return nil +} + +func (x *CreatePrivilegeGroupRequest) GetGroupName() string { + if x != nil { + return x.GroupName } return "" } -type GrantorEntity struct { +type DropPrivilegeGroupRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - User *UserEntity `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` - Privilege *PrivilegeEntity `protobuf:"bytes,2,opt,name=privilege,proto3" json:"privilege,omitempty"` + // Not useful for now + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + // group name + GroupName string `protobuf:"bytes,2,opt,name=group_name,json=groupName,proto3" json:"group_name,omitempty"` } -func (x *GrantorEntity) Reset() { - *x = GrantorEntity{} +func (x *DropPrivilegeGroupRequest) Reset() { + *x = DropPrivilegeGroupRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11264,13 +11437,13 @@ func (x *GrantorEntity) Reset() { } } -func (x *GrantorEntity) String() string { +func (x *DropPrivilegeGroupRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GrantorEntity) ProtoMessage() {} +func (*DropPrivilegeGroupRequest) ProtoMessage() {} -func (x *GrantorEntity) ProtoReflect() protoreflect.Message { +func (x *DropPrivilegeGroupRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[141] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11282,35 +11455,36 @@ func (x *GrantorEntity) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GrantorEntity.ProtoReflect.Descriptor instead. -func (*GrantorEntity) Descriptor() ([]byte, []int) { +// Deprecated: Use DropPrivilegeGroupRequest.ProtoReflect.Descriptor instead. +func (*DropPrivilegeGroupRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{141} } -func (x *GrantorEntity) GetUser() *UserEntity { +func (x *DropPrivilegeGroupRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.User + return x.Base } return nil } -func (x *GrantorEntity) GetPrivilege() *PrivilegeEntity { +func (x *DropPrivilegeGroupRequest) GetGroupName() string { if x != nil { - return x.Privilege + return x.GroupName } - return nil + return "" } -type GrantPrivilegeEntity struct { +type ListPrivilegeGroupsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Entities []*GrantorEntity `protobuf:"bytes,1,rep,name=entities,proto3" json:"entities,omitempty"` + // Not useful for now + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` } -func (x *GrantPrivilegeEntity) Reset() { - *x = GrantPrivilegeEntity{} +func (x *ListPrivilegeGroupsRequest) Reset() { + *x = ListPrivilegeGroupsRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11318,13 +11492,13 @@ func (x *GrantPrivilegeEntity) Reset() { } } -func (x *GrantPrivilegeEntity) String() string { +func (x *ListPrivilegeGroupsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GrantPrivilegeEntity) ProtoMessage() {} +func (*ListPrivilegeGroupsRequest) ProtoMessage() {} -func (x *GrantPrivilegeEntity) ProtoReflect() protoreflect.Message { +func (x *ListPrivilegeGroupsRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[142] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11336,37 +11510,29 @@ func (x *GrantPrivilegeEntity) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GrantPrivilegeEntity.ProtoReflect.Descriptor instead. -func (*GrantPrivilegeEntity) Descriptor() ([]byte, []int) { +// Deprecated: Use ListPrivilegeGroupsRequest.ProtoReflect.Descriptor instead. +func (*ListPrivilegeGroupsRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{142} } -func (x *GrantPrivilegeEntity) GetEntities() []*GrantorEntity { +func (x *ListPrivilegeGroupsRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Entities + return x.Base } return nil } -type GrantEntity struct { +type ListPrivilegeGroupsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // role - Role *RoleEntity `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"` - // object - Object *ObjectEntity `protobuf:"bytes,2,opt,name=object,proto3" json:"object,omitempty"` - // object name - ObjectName string `protobuf:"bytes,3,opt,name=object_name,json=objectName,proto3" json:"object_name,omitempty"` - // privilege - Grantor *GrantorEntity `protobuf:"bytes,4,opt,name=grantor,proto3" json:"grantor,omitempty"` - // db name - DbName string `protobuf:"bytes,5,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + PrivilegeGroups []*PrivilegeGroupInfo `protobuf:"bytes,2,rep,name=privilege_groups,json=privilegeGroups,proto3" json:"privilege_groups,omitempty"` } -func (x *GrantEntity) Reset() { - *x = GrantEntity{} +func (x *ListPrivilegeGroupsResponse) Reset() { + *x = ListPrivilegeGroupsResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11374,13 +11540,13 @@ func (x *GrantEntity) Reset() { } } -func (x *GrantEntity) String() string { +func (x *ListPrivilegeGroupsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GrantEntity) ProtoMessage() {} +func (*ListPrivilegeGroupsResponse) ProtoMessage() {} -func (x *GrantEntity) ProtoReflect() protoreflect.Message { +func (x *ListPrivilegeGroupsResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11392,59 +11558,42 @@ func (x *GrantEntity) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GrantEntity.ProtoReflect.Descriptor instead. -func (*GrantEntity) Descriptor() ([]byte, []int) { +// Deprecated: Use ListPrivilegeGroupsResponse.ProtoReflect.Descriptor instead. +func (*ListPrivilegeGroupsResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{143} } -func (x *GrantEntity) GetRole() *RoleEntity { - if x != nil { - return x.Role - } - return nil -} - -func (x *GrantEntity) GetObject() *ObjectEntity { +func (x *ListPrivilegeGroupsResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Object + return x.Status } return nil } -func (x *GrantEntity) GetObjectName() string { - if x != nil { - return x.ObjectName - } - return "" -} - -func (x *GrantEntity) GetGrantor() *GrantorEntity { +func (x *ListPrivilegeGroupsResponse) GetPrivilegeGroups() []*PrivilegeGroupInfo { if x != nil { - return x.Grantor + return x.PrivilegeGroups } return nil } -func (x *GrantEntity) GetDbName() string { - if x != nil { - return x.DbName - } - return "" -} - -type SelectGrantRequest struct { +type OperatePrivilegeGroupRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Not useful for now Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - // grant - Entity *GrantEntity `protobuf:"bytes,2,opt,name=entity,proto3" json:"entity,omitempty"` + // group name + GroupName string `protobuf:"bytes,2,opt,name=group_name,json=groupName,proto3" json:"group_name,omitempty"` + // privileges + Privileges []*PrivilegeEntity `protobuf:"bytes,3,rep,name=privileges,proto3" json:"privileges,omitempty"` + // operation type + Type OperatePrivilegeGroupType `protobuf:"varint,4,opt,name=type,proto3,enum=milvus.proto.milvus.OperatePrivilegeGroupType" json:"type,omitempty"` } -func (x *SelectGrantRequest) Reset() { - *x = SelectGrantRequest{} +func (x *OperatePrivilegeGroupRequest) Reset() { + *x = OperatePrivilegeGroupRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11452,13 +11601,13 @@ func (x *SelectGrantRequest) Reset() { } } -func (x *SelectGrantRequest) String() string { +func (x *OperatePrivilegeGroupRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SelectGrantRequest) ProtoMessage() {} +func (*OperatePrivilegeGroupRequest) ProtoMessage() {} -func (x *SelectGrantRequest) ProtoReflect() protoreflect.Message { +func (x *OperatePrivilegeGroupRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11470,38 +11619,56 @@ func (x *SelectGrantRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SelectGrantRequest.ProtoReflect.Descriptor instead. -func (*SelectGrantRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use OperatePrivilegeGroupRequest.ProtoReflect.Descriptor instead. +func (*OperatePrivilegeGroupRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{144} } -func (x *SelectGrantRequest) GetBase() *commonpb.MsgBase { +func (x *OperatePrivilegeGroupRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *SelectGrantRequest) GetEntity() *GrantEntity { +func (x *OperatePrivilegeGroupRequest) GetGroupName() string { if x != nil { - return x.Entity + return x.GroupName + } + return "" +} + +func (x *OperatePrivilegeGroupRequest) GetPrivileges() []*PrivilegeEntity { + if x != nil { + return x.Privileges } return nil } -type SelectGrantResponse struct { +func (x *OperatePrivilegeGroupRequest) GetType() OperatePrivilegeGroupType { + if x != nil { + return x.Type + } + return OperatePrivilegeGroupType_AddPrivilegesToGroup +} + +type OperateUserRoleRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Not useful for now - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - // grant info array - Entities []*GrantEntity `protobuf:"bytes,2,rep,name=entities,proto3" json:"entities,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + // username + Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` + // role name + RoleName string `protobuf:"bytes,3,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` + // operation type + Type OperateUserRoleType `protobuf:"varint,4,opt,name=type,proto3,enum=milvus.proto.milvus.OperateUserRoleType" json:"type,omitempty"` } -func (x *SelectGrantResponse) Reset() { - *x = SelectGrantResponse{} +func (x *OperateUserRoleRequest) Reset() { + *x = OperateUserRoleRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11509,13 +11676,13 @@ func (x *SelectGrantResponse) Reset() { } } -func (x *SelectGrantResponse) String() string { +func (x *OperateUserRoleRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SelectGrantResponse) ProtoMessage() {} +func (*OperateUserRoleRequest) ProtoMessage() {} -func (x *SelectGrantResponse) ProtoReflect() protoreflect.Message { +func (x *OperateUserRoleRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[145] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11527,42 +11694,50 @@ func (x *SelectGrantResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SelectGrantResponse.ProtoReflect.Descriptor instead. -func (*SelectGrantResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use OperateUserRoleRequest.ProtoReflect.Descriptor instead. +func (*OperateUserRoleRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{145} } -func (x *SelectGrantResponse) GetStatus() *commonpb.Status { +func (x *OperateUserRoleRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Status + return x.Base } return nil } -func (x *SelectGrantResponse) GetEntities() []*GrantEntity { +func (x *OperateUserRoleRequest) GetUsername() string { if x != nil { - return x.Entities + return x.Username } - return nil + return "" } -type OperatePrivilegeRequest struct { +func (x *OperateUserRoleRequest) GetRoleName() string { + if x != nil { + return x.RoleName + } + return "" +} + +func (x *OperateUserRoleRequest) GetType() OperateUserRoleType { + if x != nil { + return x.Type + } + return OperateUserRoleType_AddUserToRole +} + +type PrivilegeGroupInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Not useful for now - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - // grant - Entity *GrantEntity `protobuf:"bytes,2,opt,name=entity,proto3" json:"entity,omitempty"` - // operation type - Type OperatePrivilegeType `protobuf:"varint,3,opt,name=type,proto3,enum=milvus.proto.milvus.OperatePrivilegeType" json:"type,omitempty"` - // version - Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` + GroupName string `protobuf:"bytes,1,opt,name=group_name,json=groupName,proto3" json:"group_name,omitempty"` + Privileges []*PrivilegeEntity `protobuf:"bytes,2,rep,name=privileges,proto3" json:"privileges,omitempty"` } -func (x *OperatePrivilegeRequest) Reset() { - *x = OperatePrivilegeRequest{} +func (x *PrivilegeGroupInfo) Reset() { + *x = PrivilegeGroupInfo{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11570,13 +11745,13 @@ func (x *OperatePrivilegeRequest) Reset() { } } -func (x *OperatePrivilegeRequest) String() string { +func (x *PrivilegeGroupInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*OperatePrivilegeRequest) ProtoMessage() {} +func (*PrivilegeGroupInfo) ProtoMessage() {} -func (x *OperatePrivilegeRequest) ProtoReflect() protoreflect.Message { +func (x *PrivilegeGroupInfo) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[146] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11588,40 +11763,26 @@ func (x *OperatePrivilegeRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use OperatePrivilegeRequest.ProtoReflect.Descriptor instead. -func (*OperatePrivilegeRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use PrivilegeGroupInfo.ProtoReflect.Descriptor instead. +func (*PrivilegeGroupInfo) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{146} } -func (x *OperatePrivilegeRequest) GetBase() *commonpb.MsgBase { +func (x *PrivilegeGroupInfo) GetGroupName() string { if x != nil { - return x.Base + return x.GroupName } - return nil + return "" } -func (x *OperatePrivilegeRequest) GetEntity() *GrantEntity { +func (x *PrivilegeGroupInfo) GetPrivileges() []*PrivilegeEntity { if x != nil { - return x.Entity + return x.Privileges } return nil } -func (x *OperatePrivilegeRequest) GetType() OperatePrivilegeType { - if x != nil { - return x.Type - } - return OperatePrivilegeType_Grant -} - -func (x *OperatePrivilegeRequest) GetVersion() string { - if x != nil { - return x.Version - } - return "" -} - -type OperatePrivilegeV2Request struct { +type SelectRoleRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -11630,18 +11791,12 @@ type OperatePrivilegeV2Request struct { Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` // role Role *RoleEntity `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"` - // privilege - Grantor *GrantorEntity `protobuf:"bytes,3,opt,name=grantor,proto3" json:"grantor,omitempty"` - // operation type - Type OperatePrivilegeType `protobuf:"varint,4,opt,name=type,proto3,enum=milvus.proto.milvus.OperatePrivilegeType" json:"type,omitempty"` - // db name - DbName string `protobuf:"bytes,5,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - // collection name - CollectionName string `protobuf:"bytes,6,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + // include user info + IncludeUserInfo bool `protobuf:"varint,3,opt,name=include_user_info,json=includeUserInfo,proto3" json:"include_user_info,omitempty"` } -func (x *OperatePrivilegeV2Request) Reset() { - *x = OperatePrivilegeV2Request{} +func (x *SelectRoleRequest) Reset() { + *x = SelectRoleRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11649,13 +11804,13 @@ func (x *OperatePrivilegeV2Request) Reset() { } } -func (x *OperatePrivilegeV2Request) String() string { +func (x *SelectRoleRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*OperatePrivilegeV2Request) ProtoMessage() {} +func (*SelectRoleRequest) ProtoMessage() {} -func (x *OperatePrivilegeV2Request) ProtoReflect() protoreflect.Message { +func (x *SelectRoleRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[147] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11667,65 +11822,43 @@ func (x *OperatePrivilegeV2Request) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use OperatePrivilegeV2Request.ProtoReflect.Descriptor instead. -func (*OperatePrivilegeV2Request) Descriptor() ([]byte, []int) { +// Deprecated: Use SelectRoleRequest.ProtoReflect.Descriptor instead. +func (*SelectRoleRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{147} } -func (x *OperatePrivilegeV2Request) GetBase() *commonpb.MsgBase { +func (x *SelectRoleRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *OperatePrivilegeV2Request) GetRole() *RoleEntity { +func (x *SelectRoleRequest) GetRole() *RoleEntity { if x != nil { return x.Role } return nil } -func (x *OperatePrivilegeV2Request) GetGrantor() *GrantorEntity { - if x != nil { - return x.Grantor - } - return nil -} - -func (x *OperatePrivilegeV2Request) GetType() OperatePrivilegeType { - if x != nil { - return x.Type - } - return OperatePrivilegeType_Grant -} - -func (x *OperatePrivilegeV2Request) GetDbName() string { - if x != nil { - return x.DbName - } - return "" -} - -func (x *OperatePrivilegeV2Request) GetCollectionName() string { +func (x *SelectRoleRequest) GetIncludeUserInfo() bool { if x != nil { - return x.CollectionName + return x.IncludeUserInfo } - return "" + return false } -type UserInfo struct { +type RoleResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` - Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"` - Roles []*RoleEntity `protobuf:"bytes,3,rep,name=roles,proto3" json:"roles,omitempty"` + Role *RoleEntity `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"` + Users []*UserEntity `protobuf:"bytes,2,rep,name=users,proto3" json:"users,omitempty"` } -func (x *UserInfo) Reset() { - *x = UserInfo{} +func (x *RoleResult) Reset() { + *x = RoleResult{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11733,13 +11866,13 @@ func (x *UserInfo) Reset() { } } -func (x *UserInfo) String() string { +func (x *RoleResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UserInfo) ProtoMessage() {} +func (*RoleResult) ProtoMessage() {} -func (x *UserInfo) ProtoReflect() protoreflect.Message { +func (x *RoleResult) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[148] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11751,49 +11884,38 @@ func (x *UserInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UserInfo.ProtoReflect.Descriptor instead. -func (*UserInfo) Descriptor() ([]byte, []int) { +// Deprecated: Use RoleResult.ProtoReflect.Descriptor instead. +func (*RoleResult) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{148} } -func (x *UserInfo) GetUser() string { - if x != nil { - return x.User - } - return "" -} - -func (x *UserInfo) GetPassword() string { +func (x *RoleResult) GetRole() *RoleEntity { if x != nil { - return x.Password + return x.Role } - return "" + return nil } -func (x *UserInfo) GetRoles() []*RoleEntity { +func (x *RoleResult) GetUsers() []*UserEntity { if x != nil { - return x.Roles + return x.Users } return nil } -type RBACMeta struct { +type SelectRoleResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // user - Users []*UserInfo `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"` - // role - Roles []*RoleEntity `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` - // (role, object, previledge) - Grants []*GrantEntity `protobuf:"bytes,3,rep,name=grants,proto3" json:"grants,omitempty"` - // privilege group info - PrivilegeGroups []*PrivilegeGroupInfo `protobuf:"bytes,4,rep,name=privilege_groups,json=privilegeGroups,proto3" json:"privilege_groups,omitempty"` + // Not useful for now + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + // role result array + Results []*RoleResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` } -func (x *RBACMeta) Reset() { - *x = RBACMeta{} +func (x *SelectRoleResponse) Reset() { + *x = SelectRoleResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11801,13 +11923,13 @@ func (x *RBACMeta) Reset() { } } -func (x *RBACMeta) String() string { +func (x *SelectRoleResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RBACMeta) ProtoMessage() {} +func (*SelectRoleResponse) ProtoMessage() {} -func (x *RBACMeta) ProtoReflect() protoreflect.Message { +func (x *SelectRoleResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[149] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11819,50 +11941,40 @@ func (x *RBACMeta) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RBACMeta.ProtoReflect.Descriptor instead. -func (*RBACMeta) Descriptor() ([]byte, []int) { +// Deprecated: Use SelectRoleResponse.ProtoReflect.Descriptor instead. +func (*SelectRoleResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{149} } -func (x *RBACMeta) GetUsers() []*UserInfo { - if x != nil { - return x.Users - } - return nil -} - -func (x *RBACMeta) GetRoles() []*RoleEntity { - if x != nil { - return x.Roles - } - return nil -} - -func (x *RBACMeta) GetGrants() []*GrantEntity { +func (x *SelectRoleResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Grants + return x.Status } return nil } -func (x *RBACMeta) GetPrivilegeGroups() []*PrivilegeGroupInfo { +func (x *SelectRoleResponse) GetResults() []*RoleResult { if x != nil { - return x.PrivilegeGroups + return x.Results } return nil } -type BackupRBACMetaRequest struct { +type SelectUserRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Not useful for now Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + // user + User *UserEntity `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"` + // include user info + IncludeRoleInfo bool `protobuf:"varint,3,opt,name=include_role_info,json=includeRoleInfo,proto3" json:"include_role_info,omitempty"` } -func (x *BackupRBACMetaRequest) Reset() { - *x = BackupRBACMetaRequest{} +func (x *SelectUserRequest) Reset() { + *x = SelectUserRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11870,13 +11982,13 @@ func (x *BackupRBACMetaRequest) Reset() { } } -func (x *BackupRBACMetaRequest) String() string { +func (x *SelectUserRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BackupRBACMetaRequest) ProtoMessage() {} +func (*SelectUserRequest) ProtoMessage() {} -func (x *BackupRBACMetaRequest) ProtoReflect() protoreflect.Message { +func (x *SelectUserRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[150] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11888,29 +12000,43 @@ func (x *BackupRBACMetaRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BackupRBACMetaRequest.ProtoReflect.Descriptor instead. -func (*BackupRBACMetaRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use SelectUserRequest.ProtoReflect.Descriptor instead. +func (*SelectUserRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{150} } -func (x *BackupRBACMetaRequest) GetBase() *commonpb.MsgBase { +func (x *SelectUserRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -type BackupRBACMetaResponse struct { +func (x *SelectUserRequest) GetUser() *UserEntity { + if x != nil { + return x.User + } + return nil +} + +func (x *SelectUserRequest) GetIncludeRoleInfo() bool { + if x != nil { + return x.IncludeRoleInfo + } + return false +} + +type UserResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - RBACMeta *RBACMeta `protobuf:"bytes,2,opt,name=RBAC_meta,json=RBACMeta,proto3" json:"RBAC_meta,omitempty"` + User *UserEntity `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` + Roles []*RoleEntity `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` } -func (x *BackupRBACMetaResponse) Reset() { - *x = BackupRBACMetaResponse{} +func (x *UserResult) Reset() { + *x = UserResult{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11918,13 +12044,13 @@ func (x *BackupRBACMetaResponse) Reset() { } } -func (x *BackupRBACMetaResponse) String() string { +func (x *UserResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BackupRBACMetaResponse) ProtoMessage() {} +func (*UserResult) ProtoMessage() {} -func (x *BackupRBACMetaResponse) ProtoReflect() protoreflect.Message { +func (x *UserResult) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[151] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11936,37 +12062,38 @@ func (x *BackupRBACMetaResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BackupRBACMetaResponse.ProtoReflect.Descriptor instead. -func (*BackupRBACMetaResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use UserResult.ProtoReflect.Descriptor instead. +func (*UserResult) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{151} } -func (x *BackupRBACMetaResponse) GetStatus() *commonpb.Status { +func (x *UserResult) GetUser() *UserEntity { if x != nil { - return x.Status + return x.User } return nil } -func (x *BackupRBACMetaResponse) GetRBACMeta() *RBACMeta { +func (x *UserResult) GetRoles() []*RoleEntity { if x != nil { - return x.RBACMeta + return x.Roles } return nil } -type RestoreRBACMetaRequest struct { +type SelectUserResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Not useful for now - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - RBACMeta *RBACMeta `protobuf:"bytes,2,opt,name=RBAC_meta,json=RBACMeta,proto3" json:"RBAC_meta,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + // user result array + Results []*UserResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` } -func (x *RestoreRBACMetaRequest) Reset() { - *x = RestoreRBACMetaRequest{} +func (x *SelectUserResponse) Reset() { + *x = SelectUserResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11974,13 +12101,13 @@ func (x *RestoreRBACMetaRequest) Reset() { } } -func (x *RestoreRBACMetaRequest) String() string { +func (x *SelectUserResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RestoreRBACMetaRequest) ProtoMessage() {} +func (*SelectUserResponse) ProtoMessage() {} -func (x *RestoreRBACMetaRequest) ProtoReflect() protoreflect.Message { +func (x *SelectUserResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[152] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -11992,39 +12119,35 @@ func (x *RestoreRBACMetaRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RestoreRBACMetaRequest.ProtoReflect.Descriptor instead. -func (*RestoreRBACMetaRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use SelectUserResponse.ProtoReflect.Descriptor instead. +func (*SelectUserResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{152} } -func (x *RestoreRBACMetaRequest) GetBase() *commonpb.MsgBase { +func (x *SelectUserResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Base + return x.Status } return nil } -func (x *RestoreRBACMetaRequest) GetRBACMeta() *RBACMeta { +func (x *SelectUserResponse) GetResults() []*UserResult { if x != nil { - return x.RBACMeta + return x.Results } return nil } -type GetLoadingProgressRequest struct { +type ObjectEntity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Not useful for now - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - CollectionName string `protobuf:"bytes,2,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - PartitionNames []string `protobuf:"bytes,3,rep,name=partition_names,json=partitionNames,proto3" json:"partition_names,omitempty"` - DbName string `protobuf:"bytes,4,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } -func (x *GetLoadingProgressRequest) Reset() { - *x = GetLoadingProgressRequest{} +func (x *ObjectEntity) Reset() { + *x = ObjectEntity{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12032,13 +12155,13 @@ func (x *GetLoadingProgressRequest) Reset() { } } -func (x *GetLoadingProgressRequest) String() string { +func (x *ObjectEntity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetLoadingProgressRequest) ProtoMessage() {} +func (*ObjectEntity) ProtoMessage() {} -func (x *GetLoadingProgressRequest) ProtoReflect() protoreflect.Message { +func (x *ObjectEntity) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[153] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12050,51 +12173,28 @@ func (x *GetLoadingProgressRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetLoadingProgressRequest.ProtoReflect.Descriptor instead. -func (*GetLoadingProgressRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ObjectEntity.ProtoReflect.Descriptor instead. +func (*ObjectEntity) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{153} } -func (x *GetLoadingProgressRequest) GetBase() *commonpb.MsgBase { - if x != nil { - return x.Base - } - return nil -} - -func (x *GetLoadingProgressRequest) GetCollectionName() string { - if x != nil { - return x.CollectionName - } - return "" -} - -func (x *GetLoadingProgressRequest) GetPartitionNames() []string { - if x != nil { - return x.PartitionNames - } - return nil -} - -func (x *GetLoadingProgressRequest) GetDbName() string { +func (x *ObjectEntity) GetName() string { if x != nil { - return x.DbName + return x.Name } return "" } -type GetLoadingProgressResponse struct { +type PrivilegeEntity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Progress int64 `protobuf:"varint,2,opt,name=progress,proto3" json:"progress,omitempty"` - RefreshProgress int64 `protobuf:"varint,3,opt,name=refresh_progress,json=refreshProgress,proto3" json:"refresh_progress,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } -func (x *GetLoadingProgressResponse) Reset() { - *x = GetLoadingProgressResponse{} +func (x *PrivilegeEntity) Reset() { + *x = PrivilegeEntity{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[154] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12102,13 +12202,13 @@ func (x *GetLoadingProgressResponse) Reset() { } } -func (x *GetLoadingProgressResponse) String() string { +func (x *PrivilegeEntity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetLoadingProgressResponse) ProtoMessage() {} +func (*PrivilegeEntity) ProtoMessage() {} -func (x *GetLoadingProgressResponse) ProtoReflect() protoreflect.Message { +func (x *PrivilegeEntity) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[154] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12120,46 +12220,29 @@ func (x *GetLoadingProgressResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetLoadingProgressResponse.ProtoReflect.Descriptor instead. -func (*GetLoadingProgressResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use PrivilegeEntity.ProtoReflect.Descriptor instead. +func (*PrivilegeEntity) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{154} } -func (x *GetLoadingProgressResponse) GetStatus() *commonpb.Status { - if x != nil { - return x.Status - } - return nil -} - -func (x *GetLoadingProgressResponse) GetProgress() int64 { - if x != nil { - return x.Progress - } - return 0 -} - -func (x *GetLoadingProgressResponse) GetRefreshProgress() int64 { +func (x *PrivilegeEntity) GetName() string { if x != nil { - return x.RefreshProgress + return x.Name } - return 0 + return "" } -type GetLoadStateRequest struct { +type GrantorEntity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Not useful for now - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - CollectionName string `protobuf:"bytes,2,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - PartitionNames []string `protobuf:"bytes,3,rep,name=partition_names,json=partitionNames,proto3" json:"partition_names,omitempty"` - DbName string `protobuf:"bytes,4,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + User *UserEntity `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` + Privilege *PrivilegeEntity `protobuf:"bytes,2,opt,name=privilege,proto3" json:"privilege,omitempty"` } -func (x *GetLoadStateRequest) Reset() { - *x = GetLoadStateRequest{} +func (x *GrantorEntity) Reset() { + *x = GrantorEntity{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12167,13 +12250,13 @@ func (x *GetLoadStateRequest) Reset() { } } -func (x *GetLoadStateRequest) String() string { +func (x *GrantorEntity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetLoadStateRequest) ProtoMessage() {} +func (*GrantorEntity) ProtoMessage() {} -func (x *GetLoadStateRequest) ProtoReflect() protoreflect.Message { +func (x *GrantorEntity) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[155] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12185,50 +12268,35 @@ func (x *GetLoadStateRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetLoadStateRequest.ProtoReflect.Descriptor instead. -func (*GetLoadStateRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GrantorEntity.ProtoReflect.Descriptor instead. +func (*GrantorEntity) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{155} } -func (x *GetLoadStateRequest) GetBase() *commonpb.MsgBase { +func (x *GrantorEntity) GetUser() *UserEntity { if x != nil { - return x.Base + return x.User } return nil } -func (x *GetLoadStateRequest) GetCollectionName() string { - if x != nil { - return x.CollectionName - } - return "" -} - -func (x *GetLoadStateRequest) GetPartitionNames() []string { +func (x *GrantorEntity) GetPrivilege() *PrivilegeEntity { if x != nil { - return x.PartitionNames + return x.Privilege } return nil } -func (x *GetLoadStateRequest) GetDbName() string { - if x != nil { - return x.DbName - } - return "" -} - -type GetLoadStateResponse struct { +type GrantPrivilegeEntity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - State commonpb.LoadState `protobuf:"varint,2,opt,name=state,proto3,enum=milvus.proto.common.LoadState" json:"state,omitempty"` + Entities []*GrantorEntity `protobuf:"bytes,1,rep,name=entities,proto3" json:"entities,omitempty"` } -func (x *GetLoadStateResponse) Reset() { - *x = GetLoadStateResponse{} +func (x *GrantPrivilegeEntity) Reset() { + *x = GrantPrivilegeEntity{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12236,13 +12304,13 @@ func (x *GetLoadStateResponse) Reset() { } } -func (x *GetLoadStateResponse) String() string { +func (x *GrantPrivilegeEntity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetLoadStateResponse) ProtoMessage() {} +func (*GrantPrivilegeEntity) ProtoMessage() {} -func (x *GetLoadStateResponse) ProtoReflect() protoreflect.Message { +func (x *GrantPrivilegeEntity) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[156] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12254,35 +12322,37 @@ func (x *GetLoadStateResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetLoadStateResponse.ProtoReflect.Descriptor instead. -func (*GetLoadStateResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GrantPrivilegeEntity.ProtoReflect.Descriptor instead. +func (*GrantPrivilegeEntity) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{156} } -func (x *GetLoadStateResponse) GetStatus() *commonpb.Status { +func (x *GrantPrivilegeEntity) GetEntities() []*GrantorEntity { if x != nil { - return x.Status + return x.Entities } return nil } -func (x *GetLoadStateResponse) GetState() commonpb.LoadState { - if x != nil { - return x.State - } - return commonpb.LoadState(0) -} - -type MilvusExt struct { +type GrantEntity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + // role + Role *RoleEntity `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"` + // object + Object *ObjectEntity `protobuf:"bytes,2,opt,name=object,proto3" json:"object,omitempty"` + // object name + ObjectName string `protobuf:"bytes,3,opt,name=object_name,json=objectName,proto3" json:"object_name,omitempty"` + // privilege + Grantor *GrantorEntity `protobuf:"bytes,4,opt,name=grantor,proto3" json:"grantor,omitempty"` + // db name + DbName string `protobuf:"bytes,5,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` } -func (x *MilvusExt) Reset() { - *x = MilvusExt{} +func (x *GrantEntity) Reset() { + *x = GrantEntity{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12290,13 +12360,13 @@ func (x *MilvusExt) Reset() { } } -func (x *MilvusExt) String() string { +func (x *GrantEntity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MilvusExt) ProtoMessage() {} +func (*GrantEntity) ProtoMessage() {} -func (x *MilvusExt) ProtoReflect() protoreflect.Message { +func (x *GrantEntity) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[157] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12308,26 +12378,59 @@ func (x *MilvusExt) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MilvusExt.ProtoReflect.Descriptor instead. -func (*MilvusExt) Descriptor() ([]byte, []int) { +// Deprecated: Use GrantEntity.ProtoReflect.Descriptor instead. +func (*GrantEntity) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{157} } -func (x *MilvusExt) GetVersion() string { +func (x *GrantEntity) GetRole() *RoleEntity { if x != nil { - return x.Version + return x.Role } - return "" -} - -type GetVersionRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields + return nil } -func (x *GetVersionRequest) Reset() { - *x = GetVersionRequest{} +func (x *GrantEntity) GetObject() *ObjectEntity { + if x != nil { + return x.Object + } + return nil +} + +func (x *GrantEntity) GetObjectName() string { + if x != nil { + return x.ObjectName + } + return "" +} + +func (x *GrantEntity) GetGrantor() *GrantorEntity { + if x != nil { + return x.Grantor + } + return nil +} + +func (x *GrantEntity) GetDbName() string { + if x != nil { + return x.DbName + } + return "" +} + +type SelectGrantRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Not useful for now + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + // grant + Entity *GrantEntity `protobuf:"bytes,2,opt,name=entity,proto3" json:"entity,omitempty"` +} + +func (x *SelectGrantRequest) Reset() { + *x = SelectGrantRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12335,13 +12438,13 @@ func (x *GetVersionRequest) Reset() { } } -func (x *GetVersionRequest) String() string { +func (x *SelectGrantRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetVersionRequest) ProtoMessage() {} +func (*SelectGrantRequest) ProtoMessage() {} -func (x *GetVersionRequest) ProtoReflect() protoreflect.Message { +func (x *SelectGrantRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[158] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12353,22 +12456,38 @@ func (x *GetVersionRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetVersionRequest.ProtoReflect.Descriptor instead. -func (*GetVersionRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use SelectGrantRequest.ProtoReflect.Descriptor instead. +func (*SelectGrantRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{158} } -type GetVersionResponse struct { +func (x *SelectGrantRequest) GetBase() *commonpb.MsgBase { + if x != nil { + return x.Base + } + return nil +} + +func (x *SelectGrantRequest) GetEntity() *GrantEntity { + if x != nil { + return x.Entity + } + return nil +} + +type SelectGrantResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + // Not useful for now + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + // grant info array + Entities []*GrantEntity `protobuf:"bytes,2,rep,name=entities,proto3" json:"entities,omitempty"` } -func (x *GetVersionResponse) Reset() { - *x = GetVersionResponse{} +func (x *SelectGrantResponse) Reset() { + *x = SelectGrantResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[159] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12376,13 +12495,13 @@ func (x *GetVersionResponse) Reset() { } } -func (x *GetVersionResponse) String() string { +func (x *SelectGrantResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetVersionResponse) ProtoMessage() {} +func (*SelectGrantResponse) ProtoMessage() {} -func (x *GetVersionResponse) ProtoReflect() protoreflect.Message { +func (x *SelectGrantResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[159] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12394,33 +12513,42 @@ func (x *GetVersionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetVersionResponse.ProtoReflect.Descriptor instead. -func (*GetVersionResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use SelectGrantResponse.ProtoReflect.Descriptor instead. +func (*SelectGrantResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{159} } -func (x *GetVersionResponse) GetStatus() *commonpb.Status { +func (x *SelectGrantResponse) GetStatus() *commonpb.Status { if x != nil { return x.Status } return nil } -func (x *GetVersionResponse) GetVersion() string { +func (x *SelectGrantResponse) GetEntities() []*GrantEntity { if x != nil { - return x.Version + return x.Entities } - return "" + return nil } -type CheckHealthRequest struct { +type OperatePrivilegeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Not useful for now + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + // grant + Entity *GrantEntity `protobuf:"bytes,2,opt,name=entity,proto3" json:"entity,omitempty"` + // operation type + Type OperatePrivilegeType `protobuf:"varint,3,opt,name=type,proto3,enum=milvus.proto.milvus.OperatePrivilegeType" json:"type,omitempty"` + // version + Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` } -func (x *CheckHealthRequest) Reset() { - *x = CheckHealthRequest{} +func (x *OperatePrivilegeRequest) Reset() { + *x = OperatePrivilegeRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[160] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12428,13 +12556,13 @@ func (x *CheckHealthRequest) Reset() { } } -func (x *CheckHealthRequest) String() string { +func (x *OperatePrivilegeRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CheckHealthRequest) ProtoMessage() {} +func (*OperatePrivilegeRequest) ProtoMessage() {} -func (x *CheckHealthRequest) ProtoReflect() protoreflect.Message { +func (x *OperatePrivilegeRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[160] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12446,24 +12574,60 @@ func (x *CheckHealthRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CheckHealthRequest.ProtoReflect.Descriptor instead. -func (*CheckHealthRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use OperatePrivilegeRequest.ProtoReflect.Descriptor instead. +func (*OperatePrivilegeRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{160} } -type CheckHealthResponse struct { +func (x *OperatePrivilegeRequest) GetBase() *commonpb.MsgBase { + if x != nil { + return x.Base + } + return nil +} + +func (x *OperatePrivilegeRequest) GetEntity() *GrantEntity { + if x != nil { + return x.Entity + } + return nil +} + +func (x *OperatePrivilegeRequest) GetType() OperatePrivilegeType { + if x != nil { + return x.Type + } + return OperatePrivilegeType_Grant +} + +func (x *OperatePrivilegeRequest) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +type OperatePrivilegeV2Request struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - IsHealthy bool `protobuf:"varint,2,opt,name=isHealthy,proto3" json:"isHealthy,omitempty"` - Reasons []string `protobuf:"bytes,3,rep,name=reasons,proto3" json:"reasons,omitempty"` - QuotaStates []QuotaState `protobuf:"varint,4,rep,packed,name=quota_states,json=quotaStates,proto3,enum=milvus.proto.milvus.QuotaState" json:"quota_states,omitempty"` + // Not useful for now + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + // role + Role *RoleEntity `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"` + // privilege + Grantor *GrantorEntity `protobuf:"bytes,3,opt,name=grantor,proto3" json:"grantor,omitempty"` + // operation type + Type OperatePrivilegeType `protobuf:"varint,4,opt,name=type,proto3,enum=milvus.proto.milvus.OperatePrivilegeType" json:"type,omitempty"` + // db name + DbName string `protobuf:"bytes,5,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + // collection name + CollectionName string `protobuf:"bytes,6,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` } -func (x *CheckHealthResponse) Reset() { - *x = CheckHealthResponse{} +func (x *OperatePrivilegeV2Request) Reset() { + *x = OperatePrivilegeV2Request{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[161] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12471,13 +12635,13 @@ func (x *CheckHealthResponse) Reset() { } } -func (x *CheckHealthResponse) String() string { +func (x *OperatePrivilegeV2Request) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CheckHealthResponse) ProtoMessage() {} +func (*OperatePrivilegeV2Request) ProtoMessage() {} -func (x *CheckHealthResponse) ProtoReflect() protoreflect.Message { +func (x *OperatePrivilegeV2Request) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[161] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12489,51 +12653,65 @@ func (x *CheckHealthResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CheckHealthResponse.ProtoReflect.Descriptor instead. -func (*CheckHealthResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use OperatePrivilegeV2Request.ProtoReflect.Descriptor instead. +func (*OperatePrivilegeV2Request) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{161} } -func (x *CheckHealthResponse) GetStatus() *commonpb.Status { +func (x *OperatePrivilegeV2Request) GetBase() *commonpb.MsgBase { if x != nil { - return x.Status + return x.Base } return nil } -func (x *CheckHealthResponse) GetIsHealthy() bool { +func (x *OperatePrivilegeV2Request) GetRole() *RoleEntity { if x != nil { - return x.IsHealthy + return x.Role } - return false + return nil } -func (x *CheckHealthResponse) GetReasons() []string { +func (x *OperatePrivilegeV2Request) GetGrantor() *GrantorEntity { if x != nil { - return x.Reasons + return x.Grantor } return nil } -func (x *CheckHealthResponse) GetQuotaStates() []QuotaState { +func (x *OperatePrivilegeV2Request) GetType() OperatePrivilegeType { if x != nil { - return x.QuotaStates + return x.Type } - return nil + return OperatePrivilegeType_Grant } -type CreateResourceGroupRequest struct { +func (x *OperatePrivilegeV2Request) GetDbName() string { + if x != nil { + return x.DbName + } + return "" +} + +func (x *OperatePrivilegeV2Request) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" +} + +type UserInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - ResourceGroup string `protobuf:"bytes,2,opt,name=resource_group,json=resourceGroup,proto3" json:"resource_group,omitempty"` - Config *rgpb.ResourceGroupConfig `protobuf:"bytes,3,opt,name=config,proto3" json:"config,omitempty"` + User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` + Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"` + Roles []*RoleEntity `protobuf:"bytes,3,rep,name=roles,proto3" json:"roles,omitempty"` } -func (x *CreateResourceGroupRequest) Reset() { - *x = CreateResourceGroupRequest{} +func (x *UserInfo) Reset() { + *x = UserInfo{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[162] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12541,13 +12719,13 @@ func (x *CreateResourceGroupRequest) Reset() { } } -func (x *CreateResourceGroupRequest) String() string { +func (x *UserInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateResourceGroupRequest) ProtoMessage() {} +func (*UserInfo) ProtoMessage() {} -func (x *CreateResourceGroupRequest) ProtoReflect() protoreflect.Message { +func (x *UserInfo) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[162] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12559,43 +12737,49 @@ func (x *CreateResourceGroupRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateResourceGroupRequest.ProtoReflect.Descriptor instead. -func (*CreateResourceGroupRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use UserInfo.ProtoReflect.Descriptor instead. +func (*UserInfo) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{162} } -func (x *CreateResourceGroupRequest) GetBase() *commonpb.MsgBase { +func (x *UserInfo) GetUser() string { if x != nil { - return x.Base + return x.User } - return nil + return "" } -func (x *CreateResourceGroupRequest) GetResourceGroup() string { +func (x *UserInfo) GetPassword() string { if x != nil { - return x.ResourceGroup + return x.Password } return "" } -func (x *CreateResourceGroupRequest) GetConfig() *rgpb.ResourceGroupConfig { +func (x *UserInfo) GetRoles() []*RoleEntity { if x != nil { - return x.Config + return x.Roles } return nil } -type UpdateResourceGroupsRequest struct { +type RBACMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - ResourceGroups map[string]*rgpb.ResourceGroupConfig `protobuf:"bytes,2,rep,name=resource_groups,json=resourceGroups,proto3" json:"resource_groups,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` -} + // user + Users []*UserInfo `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"` + // role + Roles []*RoleEntity `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` + // (role, object, previledge) + Grants []*GrantEntity `protobuf:"bytes,3,rep,name=grants,proto3" json:"grants,omitempty"` + // privilege group info + PrivilegeGroups []*PrivilegeGroupInfo `protobuf:"bytes,4,rep,name=privilege_groups,json=privilegeGroups,proto3" json:"privilege_groups,omitempty"` +} -func (x *UpdateResourceGroupsRequest) Reset() { - *x = UpdateResourceGroupsRequest{} +func (x *RBACMeta) Reset() { + *x = RBACMeta{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[163] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12603,13 +12787,13 @@ func (x *UpdateResourceGroupsRequest) Reset() { } } -func (x *UpdateResourceGroupsRequest) String() string { +func (x *RBACMeta) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UpdateResourceGroupsRequest) ProtoMessage() {} +func (*RBACMeta) ProtoMessage() {} -func (x *UpdateResourceGroupsRequest) ProtoReflect() protoreflect.Message { +func (x *RBACMeta) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[163] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12621,36 +12805,50 @@ func (x *UpdateResourceGroupsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UpdateResourceGroupsRequest.ProtoReflect.Descriptor instead. -func (*UpdateResourceGroupsRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use RBACMeta.ProtoReflect.Descriptor instead. +func (*RBACMeta) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{163} } -func (x *UpdateResourceGroupsRequest) GetBase() *commonpb.MsgBase { +func (x *RBACMeta) GetUsers() []*UserInfo { if x != nil { - return x.Base + return x.Users } return nil } -func (x *UpdateResourceGroupsRequest) GetResourceGroups() map[string]*rgpb.ResourceGroupConfig { +func (x *RBACMeta) GetRoles() []*RoleEntity { if x != nil { - return x.ResourceGroups + return x.Roles } return nil } -type DropResourceGroupRequest struct { +func (x *RBACMeta) GetGrants() []*GrantEntity { + if x != nil { + return x.Grants + } + return nil +} + +func (x *RBACMeta) GetPrivilegeGroups() []*PrivilegeGroupInfo { + if x != nil { + return x.PrivilegeGroups + } + return nil +} + +type BackupRBACMetaRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - ResourceGroup string `protobuf:"bytes,2,opt,name=resource_group,json=resourceGroup,proto3" json:"resource_group,omitempty"` + // Not useful for now + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` } -func (x *DropResourceGroupRequest) Reset() { - *x = DropResourceGroupRequest{} +func (x *BackupRBACMetaRequest) Reset() { + *x = BackupRBACMetaRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[164] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12658,13 +12856,13 @@ func (x *DropResourceGroupRequest) Reset() { } } -func (x *DropResourceGroupRequest) String() string { +func (x *BackupRBACMetaRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DropResourceGroupRequest) ProtoMessage() {} +func (*BackupRBACMetaRequest) ProtoMessage() {} -func (x *DropResourceGroupRequest) ProtoReflect() protoreflect.Message { +func (x *BackupRBACMetaRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[164] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12676,39 +12874,29 @@ func (x *DropResourceGroupRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DropResourceGroupRequest.ProtoReflect.Descriptor instead. -func (*DropResourceGroupRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use BackupRBACMetaRequest.ProtoReflect.Descriptor instead. +func (*BackupRBACMetaRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{164} } -func (x *DropResourceGroupRequest) GetBase() *commonpb.MsgBase { +func (x *BackupRBACMetaRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *DropResourceGroupRequest) GetResourceGroup() string { - if x != nil { - return x.ResourceGroup - } - return "" -} - -// transfer `nodeNum` nodes from `source_resource_group` to `target_resource_group` -type TransferNodeRequest struct { +type BackupRBACMetaResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - SourceResourceGroup string `protobuf:"bytes,2,opt,name=source_resource_group,json=sourceResourceGroup,proto3" json:"source_resource_group,omitempty"` - TargetResourceGroup string `protobuf:"bytes,3,opt,name=target_resource_group,json=targetResourceGroup,proto3" json:"target_resource_group,omitempty"` - NumNode int32 `protobuf:"varint,4,opt,name=num_node,json=numNode,proto3" json:"num_node,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + RBACMeta *RBACMeta `protobuf:"bytes,2,opt,name=RBAC_meta,json=RBACMeta,proto3" json:"RBAC_meta,omitempty"` } -func (x *TransferNodeRequest) Reset() { - *x = TransferNodeRequest{} +func (x *BackupRBACMetaResponse) Reset() { + *x = BackupRBACMetaResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[165] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12716,13 +12904,13 @@ func (x *TransferNodeRequest) Reset() { } } -func (x *TransferNodeRequest) String() string { +func (x *BackupRBACMetaResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TransferNodeRequest) ProtoMessage() {} +func (*BackupRBACMetaResponse) ProtoMessage() {} -func (x *TransferNodeRequest) ProtoReflect() protoreflect.Message { +func (x *BackupRBACMetaResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[165] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12734,55 +12922,37 @@ func (x *TransferNodeRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TransferNodeRequest.ProtoReflect.Descriptor instead. -func (*TransferNodeRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use BackupRBACMetaResponse.ProtoReflect.Descriptor instead. +func (*BackupRBACMetaResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{165} } -func (x *TransferNodeRequest) GetBase() *commonpb.MsgBase { +func (x *BackupRBACMetaResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Base + return x.Status } return nil } -func (x *TransferNodeRequest) GetSourceResourceGroup() string { - if x != nil { - return x.SourceResourceGroup - } - return "" -} - -func (x *TransferNodeRequest) GetTargetResourceGroup() string { - if x != nil { - return x.TargetResourceGroup - } - return "" -} - -func (x *TransferNodeRequest) GetNumNode() int32 { +func (x *BackupRBACMetaResponse) GetRBACMeta() *RBACMeta { if x != nil { - return x.NumNode + return x.RBACMeta } - return 0 + return nil } -// transfer `replicaNum` replicas in `collectionID` from `source_resource_group` to `target_resource_group` -type TransferReplicaRequest struct { +type RestoreRBACMetaRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - SourceResourceGroup string `protobuf:"bytes,2,opt,name=source_resource_group,json=sourceResourceGroup,proto3" json:"source_resource_group,omitempty"` - TargetResourceGroup string `protobuf:"bytes,3,opt,name=target_resource_group,json=targetResourceGroup,proto3" json:"target_resource_group,omitempty"` - CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - NumReplica int64 `protobuf:"varint,5,opt,name=num_replica,json=numReplica,proto3" json:"num_replica,omitempty"` - DbName string `protobuf:"bytes,6,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + // Not useful for now + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + RBACMeta *RBACMeta `protobuf:"bytes,2,opt,name=RBAC_meta,json=RBACMeta,proto3" json:"RBAC_meta,omitempty"` } -func (x *TransferReplicaRequest) Reset() { - *x = TransferReplicaRequest{} +func (x *RestoreRBACMetaRequest) Reset() { + *x = RestoreRBACMetaRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[166] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12790,13 +12960,13 @@ func (x *TransferReplicaRequest) Reset() { } } -func (x *TransferReplicaRequest) String() string { +func (x *RestoreRBACMetaRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TransferReplicaRequest) ProtoMessage() {} +func (*RestoreRBACMetaRequest) ProtoMessage() {} -func (x *TransferReplicaRequest) ProtoReflect() protoreflect.Message { +func (x *RestoreRBACMetaRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[166] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12808,63 +12978,39 @@ func (x *TransferReplicaRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TransferReplicaRequest.ProtoReflect.Descriptor instead. -func (*TransferReplicaRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use RestoreRBACMetaRequest.ProtoReflect.Descriptor instead. +func (*RestoreRBACMetaRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{166} } -func (x *TransferReplicaRequest) GetBase() *commonpb.MsgBase { +func (x *RestoreRBACMetaRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *TransferReplicaRequest) GetSourceResourceGroup() string { - if x != nil { - return x.SourceResourceGroup - } - return "" -} - -func (x *TransferReplicaRequest) GetTargetResourceGroup() string { - if x != nil { - return x.TargetResourceGroup - } - return "" -} - -func (x *TransferReplicaRequest) GetCollectionName() string { - if x != nil { - return x.CollectionName - } - return "" -} - -func (x *TransferReplicaRequest) GetNumReplica() int64 { - if x != nil { - return x.NumReplica - } - return 0 -} - -func (x *TransferReplicaRequest) GetDbName() string { +func (x *RestoreRBACMetaRequest) GetRBACMeta() *RBACMeta { if x != nil { - return x.DbName + return x.RBACMeta } - return "" + return nil } -type ListResourceGroupsRequest struct { +type GetLoadingProgressRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + // Not useful for now + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + CollectionName string `protobuf:"bytes,2,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + PartitionNames []string `protobuf:"bytes,3,rep,name=partition_names,json=partitionNames,proto3" json:"partition_names,omitempty"` + DbName string `protobuf:"bytes,4,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` } -func (x *ListResourceGroupsRequest) Reset() { - *x = ListResourceGroupsRequest{} +func (x *GetLoadingProgressRequest) Reset() { + *x = GetLoadingProgressRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[167] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12872,13 +13018,13 @@ func (x *ListResourceGroupsRequest) Reset() { } } -func (x *ListResourceGroupsRequest) String() string { +func (x *GetLoadingProgressRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListResourceGroupsRequest) ProtoMessage() {} +func (*GetLoadingProgressRequest) ProtoMessage() {} -func (x *ListResourceGroupsRequest) ProtoReflect() protoreflect.Message { +func (x *GetLoadingProgressRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[167] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12890,29 +13036,51 @@ func (x *ListResourceGroupsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListResourceGroupsRequest.ProtoReflect.Descriptor instead. -func (*ListResourceGroupsRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetLoadingProgressRequest.ProtoReflect.Descriptor instead. +func (*GetLoadingProgressRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{167} } -func (x *ListResourceGroupsRequest) GetBase() *commonpb.MsgBase { +func (x *GetLoadingProgressRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -type ListResourceGroupsResponse struct { +func (x *GetLoadingProgressRequest) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" +} + +func (x *GetLoadingProgressRequest) GetPartitionNames() []string { + if x != nil { + return x.PartitionNames + } + return nil +} + +func (x *GetLoadingProgressRequest) GetDbName() string { + if x != nil { + return x.DbName + } + return "" +} + +type GetLoadingProgressResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - ResourceGroups []string `protobuf:"bytes,2,rep,name=resource_groups,json=resourceGroups,proto3" json:"resource_groups,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Progress int64 `protobuf:"varint,2,opt,name=progress,proto3" json:"progress,omitempty"` + RefreshProgress int64 `protobuf:"varint,3,opt,name=refresh_progress,json=refreshProgress,proto3" json:"refresh_progress,omitempty"` } -func (x *ListResourceGroupsResponse) Reset() { - *x = ListResourceGroupsResponse{} +func (x *GetLoadingProgressResponse) Reset() { + *x = GetLoadingProgressResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[168] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12920,13 +13088,13 @@ func (x *ListResourceGroupsResponse) Reset() { } } -func (x *ListResourceGroupsResponse) String() string { +func (x *GetLoadingProgressResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListResourceGroupsResponse) ProtoMessage() {} +func (*GetLoadingProgressResponse) ProtoMessage() {} -func (x *ListResourceGroupsResponse) ProtoReflect() protoreflect.Message { +func (x *GetLoadingProgressResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[168] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12938,36 +13106,46 @@ func (x *ListResourceGroupsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListResourceGroupsResponse.ProtoReflect.Descriptor instead. -func (*ListResourceGroupsResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetLoadingProgressResponse.ProtoReflect.Descriptor instead. +func (*GetLoadingProgressResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{168} } -func (x *ListResourceGroupsResponse) GetStatus() *commonpb.Status { +func (x *GetLoadingProgressResponse) GetStatus() *commonpb.Status { if x != nil { return x.Status } return nil } -func (x *ListResourceGroupsResponse) GetResourceGroups() []string { +func (x *GetLoadingProgressResponse) GetProgress() int64 { if x != nil { - return x.ResourceGroups + return x.Progress } - return nil + return 0 } -type DescribeResourceGroupRequest struct { +func (x *GetLoadingProgressResponse) GetRefreshProgress() int64 { + if x != nil { + return x.RefreshProgress + } + return 0 +} + +type GetLoadStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - ResourceGroup string `protobuf:"bytes,2,opt,name=resource_group,json=resourceGroup,proto3" json:"resource_group,omitempty"` + // Not useful for now + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + CollectionName string `protobuf:"bytes,2,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + PartitionNames []string `protobuf:"bytes,3,rep,name=partition_names,json=partitionNames,proto3" json:"partition_names,omitempty"` + DbName string `protobuf:"bytes,4,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` } -func (x *DescribeResourceGroupRequest) Reset() { - *x = DescribeResourceGroupRequest{} +func (x *GetLoadStateRequest) Reset() { + *x = GetLoadStateRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[169] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12975,13 +13153,13 @@ func (x *DescribeResourceGroupRequest) Reset() { } } -func (x *DescribeResourceGroupRequest) String() string { +func (x *GetLoadStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DescribeResourceGroupRequest) ProtoMessage() {} +func (*GetLoadStateRequest) ProtoMessage() {} -func (x *DescribeResourceGroupRequest) ProtoReflect() protoreflect.Message { +func (x *GetLoadStateRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[169] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12993,36 +13171,50 @@ func (x *DescribeResourceGroupRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DescribeResourceGroupRequest.ProtoReflect.Descriptor instead. -func (*DescribeResourceGroupRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetLoadStateRequest.ProtoReflect.Descriptor instead. +func (*GetLoadStateRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{169} } -func (x *DescribeResourceGroupRequest) GetBase() *commonpb.MsgBase { +func (x *GetLoadStateRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *DescribeResourceGroupRequest) GetResourceGroup() string { +func (x *GetLoadStateRequest) GetCollectionName() string { if x != nil { - return x.ResourceGroup + return x.CollectionName } return "" } -type DescribeResourceGroupResponse struct { +func (x *GetLoadStateRequest) GetPartitionNames() []string { + if x != nil { + return x.PartitionNames + } + return nil +} + +func (x *GetLoadStateRequest) GetDbName() string { + if x != nil { + return x.DbName + } + return "" +} + +type GetLoadStateResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - ResourceGroup *ResourceGroup `protobuf:"bytes,2,opt,name=resource_group,json=resourceGroup,proto3" json:"resource_group,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + State commonpb.LoadState `protobuf:"varint,2,opt,name=state,proto3,enum=milvus.proto.common.LoadState" json:"state,omitempty"` } -func (x *DescribeResourceGroupResponse) Reset() { - *x = DescribeResourceGroupResponse{} +func (x *GetLoadStateResponse) Reset() { + *x = GetLoadStateResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[170] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13030,13 +13222,13 @@ func (x *DescribeResourceGroupResponse) Reset() { } } -func (x *DescribeResourceGroupResponse) String() string { +func (x *GetLoadStateResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DescribeResourceGroupResponse) ProtoMessage() {} +func (*GetLoadStateResponse) ProtoMessage() {} -func (x *DescribeResourceGroupResponse) ProtoReflect() protoreflect.Message { +func (x *GetLoadStateResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[170] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13048,47 +13240,35 @@ func (x *DescribeResourceGroupResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DescribeResourceGroupResponse.ProtoReflect.Descriptor instead. -func (*DescribeResourceGroupResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetLoadStateResponse.ProtoReflect.Descriptor instead. +func (*GetLoadStateResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{170} } -func (x *DescribeResourceGroupResponse) GetStatus() *commonpb.Status { +func (x *GetLoadStateResponse) GetStatus() *commonpb.Status { if x != nil { return x.Status } return nil } -func (x *DescribeResourceGroupResponse) GetResourceGroup() *ResourceGroup { +func (x *GetLoadStateResponse) GetState() commonpb.LoadState { if x != nil { - return x.ResourceGroup + return x.State } - return nil + return commonpb.LoadState(0) } -type ResourceGroup struct { +type MilvusExt struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Capacity int32 `protobuf:"varint,2,opt,name=capacity,proto3" json:"capacity,omitempty"` - NumAvailableNode int32 `protobuf:"varint,3,opt,name=num_available_node,json=numAvailableNode,proto3" json:"num_available_node,omitempty"` - // collection name -> loaded replica num - NumLoadedReplica map[string]int32 `protobuf:"bytes,4,rep,name=num_loaded_replica,json=numLoadedReplica,proto3" json:"num_loaded_replica,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - // collection name -> accessed other rg's node num - NumOutgoingNode map[string]int32 `protobuf:"bytes,5,rep,name=num_outgoing_node,json=numOutgoingNode,proto3" json:"num_outgoing_node,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - // collection name -> be accessed node num by other rg - NumIncomingNode map[string]int32 `protobuf:"bytes,6,rep,name=num_incoming_node,json=numIncomingNode,proto3" json:"num_incoming_node,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - // resource group configuration. - Config *rgpb.ResourceGroupConfig `protobuf:"bytes,7,opt,name=config,proto3" json:"config,omitempty"` - // query node belong to this resource group now. - Nodes []*commonpb.NodeInfo `protobuf:"bytes,8,rep,name=nodes,proto3" json:"nodes,omitempty"` + Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` } -func (x *ResourceGroup) Reset() { - *x = ResourceGroup{} +func (x *MilvusExt) Reset() { + *x = MilvusExt{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[171] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13096,13 +13276,13 @@ func (x *ResourceGroup) Reset() { } } -func (x *ResourceGroup) String() string { +func (x *MilvusExt) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResourceGroup) ProtoMessage() {} +func (*MilvusExt) ProtoMessage() {} -func (x *ResourceGroup) ProtoReflect() protoreflect.Message { +func (x *MilvusExt) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[171] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13114,81 +13294,26 @@ func (x *ResourceGroup) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ResourceGroup.ProtoReflect.Descriptor instead. -func (*ResourceGroup) Descriptor() ([]byte, []int) { +// Deprecated: Use MilvusExt.ProtoReflect.Descriptor instead. +func (*MilvusExt) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{171} } -func (x *ResourceGroup) GetName() string { +func (x *MilvusExt) GetVersion() string { if x != nil { - return x.Name + return x.Version } return "" } -func (x *ResourceGroup) GetCapacity() int32 { - if x != nil { - return x.Capacity - } - return 0 -} - -func (x *ResourceGroup) GetNumAvailableNode() int32 { - if x != nil { - return x.NumAvailableNode - } - return 0 -} - -func (x *ResourceGroup) GetNumLoadedReplica() map[string]int32 { - if x != nil { - return x.NumLoadedReplica - } - return nil -} - -func (x *ResourceGroup) GetNumOutgoingNode() map[string]int32 { - if x != nil { - return x.NumOutgoingNode - } - return nil -} - -func (x *ResourceGroup) GetNumIncomingNode() map[string]int32 { - if x != nil { - return x.NumIncomingNode - } - return nil -} - -func (x *ResourceGroup) GetConfig() *rgpb.ResourceGroupConfig { - if x != nil { - return x.Config - } - return nil -} - -func (x *ResourceGroup) GetNodes() []*commonpb.NodeInfo { - if x != nil { - return x.Nodes - } - return nil -} - -type RenameCollectionRequest struct { +type GetVersionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - OldName string `protobuf:"bytes,3,opt,name=oldName,proto3" json:"oldName,omitempty"` - NewName string `protobuf:"bytes,4,opt,name=newName,proto3" json:"newName,omitempty"` - NewDBName string `protobuf:"bytes,5,opt,name=newDBName,proto3" json:"newDBName,omitempty"` } -func (x *RenameCollectionRequest) Reset() { - *x = RenameCollectionRequest{} +func (x *GetVersionRequest) Reset() { + *x = GetVersionRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[172] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13196,13 +13321,13 @@ func (x *RenameCollectionRequest) Reset() { } } -func (x *RenameCollectionRequest) String() string { +func (x *GetVersionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RenameCollectionRequest) ProtoMessage() {} +func (*GetVersionRequest) ProtoMessage() {} -func (x *RenameCollectionRequest) ProtoReflect() protoreflect.Message { +func (x *GetVersionRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[172] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13214,64 +13339,22 @@ func (x *RenameCollectionRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RenameCollectionRequest.ProtoReflect.Descriptor instead. -func (*RenameCollectionRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetVersionRequest.ProtoReflect.Descriptor instead. +func (*GetVersionRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{172} } -func (x *RenameCollectionRequest) GetBase() *commonpb.MsgBase { - if x != nil { - return x.Base - } - return nil -} - -func (x *RenameCollectionRequest) GetDbName() string { - if x != nil { - return x.DbName - } - return "" -} - -func (x *RenameCollectionRequest) GetOldName() string { - if x != nil { - return x.OldName - } - return "" -} - -func (x *RenameCollectionRequest) GetNewName() string { - if x != nil { - return x.NewName - } - return "" -} - -func (x *RenameCollectionRequest) GetNewDBName() string { - if x != nil { - return x.NewDBName - } - return "" -} - -type GetIndexStatisticsRequest struct { +type GetVersionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Not useful for now - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - // Not useful for now - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - // The particular collection name in Milvus - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - // The index name in this particular collection - IndexName string `protobuf:"bytes,4,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` - Timestamp uint64 `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` } -func (x *GetIndexStatisticsRequest) Reset() { - *x = GetIndexStatisticsRequest{} +func (x *GetVersionResponse) Reset() { + *x = GetVersionResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[173] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13279,13 +13362,13 @@ func (x *GetIndexStatisticsRequest) Reset() { } } -func (x *GetIndexStatisticsRequest) String() string { +func (x *GetVersionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetIndexStatisticsRequest) ProtoMessage() {} +func (*GetVersionResponse) ProtoMessage() {} -func (x *GetIndexStatisticsRequest) ProtoReflect() protoreflect.Message { +func (x *GetVersionResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[173] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13297,59 +13380,33 @@ func (x *GetIndexStatisticsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetIndexStatisticsRequest.ProtoReflect.Descriptor instead. -func (*GetIndexStatisticsRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetVersionResponse.ProtoReflect.Descriptor instead. +func (*GetVersionResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{173} } -func (x *GetIndexStatisticsRequest) GetBase() *commonpb.MsgBase { +func (x *GetVersionResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Base + return x.Status } return nil } -func (x *GetIndexStatisticsRequest) GetDbName() string { +func (x *GetVersionResponse) GetVersion() string { if x != nil { - return x.DbName + return x.Version } return "" } -func (x *GetIndexStatisticsRequest) GetCollectionName() string { - if x != nil { - return x.CollectionName - } - return "" -} - -func (x *GetIndexStatisticsRequest) GetIndexName() string { - if x != nil { - return x.IndexName - } - return "" -} - -func (x *GetIndexStatisticsRequest) GetTimestamp() uint64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -type GetIndexStatisticsResponse struct { +type CheckHealthRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - // Response status - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - // All index information. - IndexDescriptions []*IndexDescription `protobuf:"bytes,2,rep,name=index_descriptions,json=indexDescriptions,proto3" json:"index_descriptions,omitempty"` } -func (x *GetIndexStatisticsResponse) Reset() { - *x = GetIndexStatisticsResponse{} +func (x *CheckHealthRequest) Reset() { + *x = CheckHealthRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[174] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13357,13 +13414,13 @@ func (x *GetIndexStatisticsResponse) Reset() { } } -func (x *GetIndexStatisticsResponse) String() string { +func (x *CheckHealthRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetIndexStatisticsResponse) ProtoMessage() {} +func (*CheckHealthRequest) ProtoMessage() {} -func (x *GetIndexStatisticsResponse) ProtoReflect() protoreflect.Message { +func (x *CheckHealthRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[174] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13375,36 +13432,24 @@ func (x *GetIndexStatisticsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetIndexStatisticsResponse.ProtoReflect.Descriptor instead. -func (*GetIndexStatisticsResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use CheckHealthRequest.ProtoReflect.Descriptor instead. +func (*CheckHealthRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{174} } -func (x *GetIndexStatisticsResponse) GetStatus() *commonpb.Status { - if x != nil { - return x.Status - } - return nil -} - -func (x *GetIndexStatisticsResponse) GetIndexDescriptions() []*IndexDescription { - if x != nil { - return x.IndexDescriptions - } - return nil -} - -type ConnectRequest struct { +type CheckHealthResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - ClientInfo *commonpb.ClientInfo `protobuf:"bytes,2,opt,name=client_info,json=clientInfo,proto3" json:"client_info,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + IsHealthy bool `protobuf:"varint,2,opt,name=isHealthy,proto3" json:"isHealthy,omitempty"` + Reasons []string `protobuf:"bytes,3,rep,name=reasons,proto3" json:"reasons,omitempty"` + QuotaStates []QuotaState `protobuf:"varint,4,rep,packed,name=quota_states,json=quotaStates,proto3,enum=milvus.proto.milvus.QuotaState" json:"quota_states,omitempty"` } -func (x *ConnectRequest) Reset() { - *x = ConnectRequest{} +func (x *CheckHealthResponse) Reset() { + *x = CheckHealthResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[175] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13412,13 +13457,13 @@ func (x *ConnectRequest) Reset() { } } -func (x *ConnectRequest) String() string { +func (x *CheckHealthResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ConnectRequest) ProtoMessage() {} +func (*CheckHealthResponse) ProtoMessage() {} -func (x *ConnectRequest) ProtoReflect() protoreflect.Message { +func (x *CheckHealthResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[175] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13430,37 +13475,51 @@ func (x *ConnectRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ConnectRequest.ProtoReflect.Descriptor instead. -func (*ConnectRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use CheckHealthResponse.ProtoReflect.Descriptor instead. +func (*CheckHealthResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{175} } -func (x *ConnectRequest) GetBase() *commonpb.MsgBase { +func (x *CheckHealthResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Base + return x.Status } return nil } -func (x *ConnectRequest) GetClientInfo() *commonpb.ClientInfo { +func (x *CheckHealthResponse) GetIsHealthy() bool { if x != nil { - return x.ClientInfo + return x.IsHealthy + } + return false +} + +func (x *CheckHealthResponse) GetReasons() []string { + if x != nil { + return x.Reasons } return nil } -type ConnectResponse struct { +func (x *CheckHealthResponse) GetQuotaStates() []QuotaState { + if x != nil { + return x.QuotaStates + } + return nil +} + +type CreateResourceGroupRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - ServerInfo *commonpb.ServerInfo `protobuf:"bytes,2,opt,name=server_info,json=serverInfo,proto3" json:"server_info,omitempty"` - Identifier int64 `protobuf:"varint,3,opt,name=identifier,proto3" json:"identifier,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + ResourceGroup string `protobuf:"bytes,2,opt,name=resource_group,json=resourceGroup,proto3" json:"resource_group,omitempty"` + Config *rgpb.ResourceGroupConfig `protobuf:"bytes,3,opt,name=config,proto3" json:"config,omitempty"` } -func (x *ConnectResponse) Reset() { - *x = ConnectResponse{} +func (x *CreateResourceGroupRequest) Reset() { + *x = CreateResourceGroupRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[176] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13468,13 +13527,13 @@ func (x *ConnectResponse) Reset() { } } -func (x *ConnectResponse) String() string { +func (x *CreateResourceGroupRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ConnectResponse) ProtoMessage() {} +func (*CreateResourceGroupRequest) ProtoMessage() {} -func (x *ConnectResponse) ProtoReflect() protoreflect.Message { +func (x *CreateResourceGroupRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[176] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13486,42 +13545,43 @@ func (x *ConnectResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ConnectResponse.ProtoReflect.Descriptor instead. -func (*ConnectResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use CreateResourceGroupRequest.ProtoReflect.Descriptor instead. +func (*CreateResourceGroupRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{176} } -func (x *ConnectResponse) GetStatus() *commonpb.Status { +func (x *CreateResourceGroupRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Status + return x.Base } return nil } -func (x *ConnectResponse) GetServerInfo() *commonpb.ServerInfo { +func (x *CreateResourceGroupRequest) GetResourceGroup() string { if x != nil { - return x.ServerInfo + return x.ResourceGroup } - return nil + return "" } -func (x *ConnectResponse) GetIdentifier() int64 { +func (x *CreateResourceGroupRequest) GetConfig() *rgpb.ResourceGroupConfig { if x != nil { - return x.Identifier + return x.Config } - return 0 + return nil } -type AllocTimestampRequest struct { +type UpdateResourceGroupsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + ResourceGroups map[string]*rgpb.ResourceGroupConfig `protobuf:"bytes,2,rep,name=resource_groups,json=resourceGroups,proto3" json:"resource_groups,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } -func (x *AllocTimestampRequest) Reset() { - *x = AllocTimestampRequest{} +func (x *UpdateResourceGroupsRequest) Reset() { + *x = UpdateResourceGroupsRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[177] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13529,13 +13589,13 @@ func (x *AllocTimestampRequest) Reset() { } } -func (x *AllocTimestampRequest) String() string { +func (x *UpdateResourceGroupsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AllocTimestampRequest) ProtoMessage() {} +func (*UpdateResourceGroupsRequest) ProtoMessage() {} -func (x *AllocTimestampRequest) ProtoReflect() protoreflect.Message { +func (x *UpdateResourceGroupsRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[177] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13547,29 +13607,36 @@ func (x *AllocTimestampRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AllocTimestampRequest.ProtoReflect.Descriptor instead. -func (*AllocTimestampRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use UpdateResourceGroupsRequest.ProtoReflect.Descriptor instead. +func (*UpdateResourceGroupsRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{177} } -func (x *AllocTimestampRequest) GetBase() *commonpb.MsgBase { +func (x *UpdateResourceGroupsRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -type AllocTimestampResponse struct { +func (x *UpdateResourceGroupsRequest) GetResourceGroups() map[string]*rgpb.ResourceGroupConfig { + if x != nil { + return x.ResourceGroups + } + return nil +} + +type DropResourceGroupRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Timestamp uint64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + ResourceGroup string `protobuf:"bytes,2,opt,name=resource_group,json=resourceGroup,proto3" json:"resource_group,omitempty"` } -func (x *AllocTimestampResponse) Reset() { - *x = AllocTimestampResponse{} +func (x *DropResourceGroupRequest) Reset() { + *x = DropResourceGroupRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[178] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13577,13 +13644,13 @@ func (x *AllocTimestampResponse) Reset() { } } -func (x *AllocTimestampResponse) String() string { +func (x *DropResourceGroupRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AllocTimestampResponse) ProtoMessage() {} +func (*DropResourceGroupRequest) ProtoMessage() {} -func (x *AllocTimestampResponse) ProtoReflect() protoreflect.Message { +func (x *DropResourceGroupRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[178] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13595,37 +13662,39 @@ func (x *AllocTimestampResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AllocTimestampResponse.ProtoReflect.Descriptor instead. -func (*AllocTimestampResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use DropResourceGroupRequest.ProtoReflect.Descriptor instead. +func (*DropResourceGroupRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{178} } -func (x *AllocTimestampResponse) GetStatus() *commonpb.Status { +func (x *DropResourceGroupRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Status + return x.Base } return nil } -func (x *AllocTimestampResponse) GetTimestamp() uint64 { +func (x *DropResourceGroupRequest) GetResourceGroup() string { if x != nil { - return x.Timestamp + return x.ResourceGroup } - return 0 + return "" } -type CreateDatabaseRequest struct { +// transfer `nodeNum` nodes from `source_resource_group` to `target_resource_group` +type TransferNodeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - Properties []*commonpb.KeyValuePair `protobuf:"bytes,3,rep,name=properties,proto3" json:"properties,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + SourceResourceGroup string `protobuf:"bytes,2,opt,name=source_resource_group,json=sourceResourceGroup,proto3" json:"source_resource_group,omitempty"` + TargetResourceGroup string `protobuf:"bytes,3,opt,name=target_resource_group,json=targetResourceGroup,proto3" json:"target_resource_group,omitempty"` + NumNode int32 `protobuf:"varint,4,opt,name=num_node,json=numNode,proto3" json:"num_node,omitempty"` } -func (x *CreateDatabaseRequest) Reset() { - *x = CreateDatabaseRequest{} +func (x *TransferNodeRequest) Reset() { + *x = TransferNodeRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[179] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13633,13 +13702,13 @@ func (x *CreateDatabaseRequest) Reset() { } } -func (x *CreateDatabaseRequest) String() string { +func (x *TransferNodeRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateDatabaseRequest) ProtoMessage() {} +func (*TransferNodeRequest) ProtoMessage() {} -func (x *CreateDatabaseRequest) ProtoReflect() protoreflect.Message { +func (x *TransferNodeRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[179] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13651,43 +13720,55 @@ func (x *CreateDatabaseRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateDatabaseRequest.ProtoReflect.Descriptor instead. -func (*CreateDatabaseRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use TransferNodeRequest.ProtoReflect.Descriptor instead. +func (*TransferNodeRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{179} } -func (x *CreateDatabaseRequest) GetBase() *commonpb.MsgBase { +func (x *TransferNodeRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *CreateDatabaseRequest) GetDbName() string { +func (x *TransferNodeRequest) GetSourceResourceGroup() string { if x != nil { - return x.DbName + return x.SourceResourceGroup } return "" } -func (x *CreateDatabaseRequest) GetProperties() []*commonpb.KeyValuePair { +func (x *TransferNodeRequest) GetTargetResourceGroup() string { if x != nil { - return x.Properties + return x.TargetResourceGroup } - return nil + return "" } -type DropDatabaseRequest struct { +func (x *TransferNodeRequest) GetNumNode() int32 { + if x != nil { + return x.NumNode + } + return 0 +} + +// transfer `replicaNum` replicas in `collectionID` from `source_resource_group` to `target_resource_group` +type TransferReplicaRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + SourceResourceGroup string `protobuf:"bytes,2,opt,name=source_resource_group,json=sourceResourceGroup,proto3" json:"source_resource_group,omitempty"` + TargetResourceGroup string `protobuf:"bytes,3,opt,name=target_resource_group,json=targetResourceGroup,proto3" json:"target_resource_group,omitempty"` + CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + NumReplica int64 `protobuf:"varint,5,opt,name=num_replica,json=numReplica,proto3" json:"num_replica,omitempty"` + DbName string `protobuf:"bytes,6,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` } -func (x *DropDatabaseRequest) Reset() { - *x = DropDatabaseRequest{} +func (x *TransferReplicaRequest) Reset() { + *x = TransferReplicaRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[180] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13695,13 +13776,13 @@ func (x *DropDatabaseRequest) Reset() { } } -func (x *DropDatabaseRequest) String() string { +func (x *TransferReplicaRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DropDatabaseRequest) ProtoMessage() {} +func (*TransferReplicaRequest) ProtoMessage() {} -func (x *DropDatabaseRequest) ProtoReflect() protoreflect.Message { +func (x *TransferReplicaRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[180] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13713,26 +13794,54 @@ func (x *DropDatabaseRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DropDatabaseRequest.ProtoReflect.Descriptor instead. -func (*DropDatabaseRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use TransferReplicaRequest.ProtoReflect.Descriptor instead. +func (*TransferReplicaRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{180} } -func (x *DropDatabaseRequest) GetBase() *commonpb.MsgBase { +func (x *TransferReplicaRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *DropDatabaseRequest) GetDbName() string { +func (x *TransferReplicaRequest) GetSourceResourceGroup() string { + if x != nil { + return x.SourceResourceGroup + } + return "" +} + +func (x *TransferReplicaRequest) GetTargetResourceGroup() string { + if x != nil { + return x.TargetResourceGroup + } + return "" +} + +func (x *TransferReplicaRequest) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" +} + +func (x *TransferReplicaRequest) GetNumReplica() int64 { + if x != nil { + return x.NumReplica + } + return 0 +} + +func (x *TransferReplicaRequest) GetDbName() string { if x != nil { return x.DbName } return "" } -type ListDatabasesRequest struct { +type ListResourceGroupsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -13740,8 +13849,8 @@ type ListDatabasesRequest struct { Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` } -func (x *ListDatabasesRequest) Reset() { - *x = ListDatabasesRequest{} +func (x *ListResourceGroupsRequest) Reset() { + *x = ListResourceGroupsRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[181] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13749,13 +13858,13 @@ func (x *ListDatabasesRequest) Reset() { } } -func (x *ListDatabasesRequest) String() string { +func (x *ListResourceGroupsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListDatabasesRequest) ProtoMessage() {} +func (*ListResourceGroupsRequest) ProtoMessage() {} -func (x *ListDatabasesRequest) ProtoReflect() protoreflect.Message { +func (x *ListResourceGroupsRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[181] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13767,31 +13876,29 @@ func (x *ListDatabasesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListDatabasesRequest.ProtoReflect.Descriptor instead. -func (*ListDatabasesRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ListResourceGroupsRequest.ProtoReflect.Descriptor instead. +func (*ListResourceGroupsRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{181} } -func (x *ListDatabasesRequest) GetBase() *commonpb.MsgBase { +func (x *ListResourceGroupsRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -type ListDatabasesResponse struct { +type ListResourceGroupsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - DbNames []string `protobuf:"bytes,2,rep,name=db_names,json=dbNames,proto3" json:"db_names,omitempty"` - CreatedTimestamp []uint64 `protobuf:"varint,3,rep,packed,name=created_timestamp,json=createdTimestamp,proto3" json:"created_timestamp,omitempty"` - DbIds []int64 `protobuf:"varint,4,rep,packed,name=db_ids,json=dbIds,proto3" json:"db_ids,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + ResourceGroups []string `protobuf:"bytes,2,rep,name=resource_groups,json=resourceGroups,proto3" json:"resource_groups,omitempty"` } -func (x *ListDatabasesResponse) Reset() { - *x = ListDatabasesResponse{} +func (x *ListResourceGroupsResponse) Reset() { + *x = ListResourceGroupsResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[182] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13799,13 +13906,13 @@ func (x *ListDatabasesResponse) Reset() { } } -func (x *ListDatabasesResponse) String() string { +func (x *ListResourceGroupsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListDatabasesResponse) ProtoMessage() {} +func (*ListResourceGroupsResponse) ProtoMessage() {} -func (x *ListDatabasesResponse) ProtoReflect() protoreflect.Message { +func (x *ListResourceGroupsResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[182] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13817,53 +13924,36 @@ func (x *ListDatabasesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListDatabasesResponse.ProtoReflect.Descriptor instead. -func (*ListDatabasesResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ListResourceGroupsResponse.ProtoReflect.Descriptor instead. +func (*ListResourceGroupsResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{182} } -func (x *ListDatabasesResponse) GetStatus() *commonpb.Status { +func (x *ListResourceGroupsResponse) GetStatus() *commonpb.Status { if x != nil { return x.Status } return nil } -func (x *ListDatabasesResponse) GetDbNames() []string { - if x != nil { - return x.DbNames - } - return nil -} - -func (x *ListDatabasesResponse) GetCreatedTimestamp() []uint64 { - if x != nil { - return x.CreatedTimestamp - } - return nil -} - -func (x *ListDatabasesResponse) GetDbIds() []int64 { +func (x *ListResourceGroupsResponse) GetResourceGroups() []string { if x != nil { - return x.DbIds + return x.ResourceGroups } return nil } -type AlterDatabaseRequest struct { +type DescribeResourceGroupRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - DbId string `protobuf:"bytes,3,opt,name=db_id,json=dbId,proto3" json:"db_id,omitempty"` - Properties []*commonpb.KeyValuePair `protobuf:"bytes,4,rep,name=properties,proto3" json:"properties,omitempty"` - DeleteKeys []string `protobuf:"bytes,5,rep,name=delete_keys,json=deleteKeys,proto3" json:"delete_keys,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + ResourceGroup string `protobuf:"bytes,2,opt,name=resource_group,json=resourceGroup,proto3" json:"resource_group,omitempty"` } -func (x *AlterDatabaseRequest) Reset() { - *x = AlterDatabaseRequest{} +func (x *DescribeResourceGroupRequest) Reset() { + *x = DescribeResourceGroupRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[183] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13871,13 +13961,13 @@ func (x *AlterDatabaseRequest) Reset() { } } -func (x *AlterDatabaseRequest) String() string { +func (x *DescribeResourceGroupRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AlterDatabaseRequest) ProtoMessage() {} +func (*DescribeResourceGroupRequest) ProtoMessage() {} -func (x *AlterDatabaseRequest) ProtoReflect() protoreflect.Message { +func (x *DescribeResourceGroupRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[183] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13889,57 +13979,36 @@ func (x *AlterDatabaseRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AlterDatabaseRequest.ProtoReflect.Descriptor instead. -func (*AlterDatabaseRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use DescribeResourceGroupRequest.ProtoReflect.Descriptor instead. +func (*DescribeResourceGroupRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{183} } -func (x *AlterDatabaseRequest) GetBase() *commonpb.MsgBase { +func (x *DescribeResourceGroupRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *AlterDatabaseRequest) GetDbName() string { - if x != nil { - return x.DbName - } - return "" -} - -func (x *AlterDatabaseRequest) GetDbId() string { +func (x *DescribeResourceGroupRequest) GetResourceGroup() string { if x != nil { - return x.DbId + return x.ResourceGroup } return "" } -func (x *AlterDatabaseRequest) GetProperties() []*commonpb.KeyValuePair { - if x != nil { - return x.Properties - } - return nil -} - -func (x *AlterDatabaseRequest) GetDeleteKeys() []string { - if x != nil { - return x.DeleteKeys - } - return nil -} - -type DescribeDatabaseRequest struct { +type DescribeResourceGroupResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + ResourceGroup *ResourceGroup `protobuf:"bytes,2,opt,name=resource_group,json=resourceGroup,proto3" json:"resource_group,omitempty"` } -func (x *DescribeDatabaseRequest) Reset() { - *x = DescribeDatabaseRequest{} +func (x *DescribeResourceGroupResponse) Reset() { + *x = DescribeResourceGroupResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[184] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13947,13 +14016,13 @@ func (x *DescribeDatabaseRequest) Reset() { } } -func (x *DescribeDatabaseRequest) String() string { +func (x *DescribeResourceGroupResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DescribeDatabaseRequest) ProtoMessage() {} +func (*DescribeResourceGroupResponse) ProtoMessage() {} -func (x *DescribeDatabaseRequest) ProtoReflect() protoreflect.Message { +func (x *DescribeResourceGroupResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[184] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -13965,39 +14034,47 @@ func (x *DescribeDatabaseRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DescribeDatabaseRequest.ProtoReflect.Descriptor instead. -func (*DescribeDatabaseRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use DescribeResourceGroupResponse.ProtoReflect.Descriptor instead. +func (*DescribeResourceGroupResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{184} } -func (x *DescribeDatabaseRequest) GetBase() *commonpb.MsgBase { +func (x *DescribeResourceGroupResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Base + return x.Status } return nil } -func (x *DescribeDatabaseRequest) GetDbName() string { +func (x *DescribeResourceGroupResponse) GetResourceGroup() *ResourceGroup { if x != nil { - return x.DbName + return x.ResourceGroup } - return "" + return nil } -type DescribeDatabaseResponse struct { +type ResourceGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - DbID int64 `protobuf:"varint,3,opt,name=dbID,proto3" json:"dbID,omitempty"` - CreatedTimestamp uint64 `protobuf:"varint,4,opt,name=created_timestamp,json=createdTimestamp,proto3" json:"created_timestamp,omitempty"` - Properties []*commonpb.KeyValuePair `protobuf:"bytes,5,rep,name=properties,proto3" json:"properties,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Capacity int32 `protobuf:"varint,2,opt,name=capacity,proto3" json:"capacity,omitempty"` + NumAvailableNode int32 `protobuf:"varint,3,opt,name=num_available_node,json=numAvailableNode,proto3" json:"num_available_node,omitempty"` + // collection name -> loaded replica num + NumLoadedReplica map[string]int32 `protobuf:"bytes,4,rep,name=num_loaded_replica,json=numLoadedReplica,proto3" json:"num_loaded_replica,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + // collection name -> accessed other rg's node num + NumOutgoingNode map[string]int32 `protobuf:"bytes,5,rep,name=num_outgoing_node,json=numOutgoingNode,proto3" json:"num_outgoing_node,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + // collection name -> be accessed node num by other rg + NumIncomingNode map[string]int32 `protobuf:"bytes,6,rep,name=num_incoming_node,json=numIncomingNode,proto3" json:"num_incoming_node,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + // resource group configuration. + Config *rgpb.ResourceGroupConfig `protobuf:"bytes,7,opt,name=config,proto3" json:"config,omitempty"` + // query node belong to this resource group now. + Nodes []*commonpb.NodeInfo `protobuf:"bytes,8,rep,name=nodes,proto3" json:"nodes,omitempty"` } -func (x *DescribeDatabaseResponse) Reset() { - *x = DescribeDatabaseResponse{} +func (x *ResourceGroup) Reset() { + *x = ResourceGroup{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[185] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14005,13 +14082,13 @@ func (x *DescribeDatabaseResponse) Reset() { } } -func (x *DescribeDatabaseResponse) String() string { +func (x *ResourceGroup) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DescribeDatabaseResponse) ProtoMessage() {} +func (*ResourceGroup) ProtoMessage() {} -func (x *DescribeDatabaseResponse) ProtoReflect() protoreflect.Message { +func (x *ResourceGroup) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[185] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14023,63 +14100,81 @@ func (x *DescribeDatabaseResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DescribeDatabaseResponse.ProtoReflect.Descriptor instead. -func (*DescribeDatabaseResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ResourceGroup.ProtoReflect.Descriptor instead. +func (*ResourceGroup) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{185} } -func (x *DescribeDatabaseResponse) GetStatus() *commonpb.Status { +func (x *ResourceGroup) GetName() string { if x != nil { - return x.Status + return x.Name } - return nil + return "" } -func (x *DescribeDatabaseResponse) GetDbName() string { +func (x *ResourceGroup) GetCapacity() int32 { if x != nil { - return x.DbName + return x.Capacity } - return "" + return 0 } -func (x *DescribeDatabaseResponse) GetDbID() int64 { +func (x *ResourceGroup) GetNumAvailableNode() int32 { if x != nil { - return x.DbID + return x.NumAvailableNode } return 0 } -func (x *DescribeDatabaseResponse) GetCreatedTimestamp() uint64 { +func (x *ResourceGroup) GetNumLoadedReplica() map[string]int32 { if x != nil { - return x.CreatedTimestamp + return x.NumLoadedReplica } - return 0 + return nil } -func (x *DescribeDatabaseResponse) GetProperties() []*commonpb.KeyValuePair { +func (x *ResourceGroup) GetNumOutgoingNode() map[string]int32 { if x != nil { - return x.Properties + return x.NumOutgoingNode } return nil } -// Deprecated: Marked as deprecated in milvus.proto. -type ReplicateMessageRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - ChannelName string `protobuf:"bytes,2,opt,name=channel_name,json=channelName,proto3" json:"channel_name,omitempty"` - BeginTs uint64 `protobuf:"varint,3,opt,name=BeginTs,proto3" json:"BeginTs,omitempty"` - EndTs uint64 `protobuf:"varint,4,opt,name=EndTs,proto3" json:"EndTs,omitempty"` - Msgs [][]byte `protobuf:"bytes,5,rep,name=Msgs,proto3" json:"Msgs,omitempty"` - StartPositions []*msgpb.MsgPosition `protobuf:"bytes,6,rep,name=StartPositions,proto3" json:"StartPositions,omitempty"` - EndPositions []*msgpb.MsgPosition `protobuf:"bytes,7,rep,name=EndPositions,proto3" json:"EndPositions,omitempty"` +func (x *ResourceGroup) GetNumIncomingNode() map[string]int32 { + if x != nil { + return x.NumIncomingNode + } + return nil } -func (x *ReplicateMessageRequest) Reset() { - *x = ReplicateMessageRequest{} +func (x *ResourceGroup) GetConfig() *rgpb.ResourceGroupConfig { + if x != nil { + return x.Config + } + return nil +} + +func (x *ResourceGroup) GetNodes() []*commonpb.NodeInfo { + if x != nil { + return x.Nodes + } + return nil +} + +type RenameCollectionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + OldName string `protobuf:"bytes,3,opt,name=oldName,proto3" json:"oldName,omitempty"` + NewName string `protobuf:"bytes,4,opt,name=newName,proto3" json:"newName,omitempty"` + NewDBName string `protobuf:"bytes,5,opt,name=newDBName,proto3" json:"newDBName,omitempty"` +} + +func (x *RenameCollectionRequest) Reset() { + *x = RenameCollectionRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[186] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14087,13 +14182,13 @@ func (x *ReplicateMessageRequest) Reset() { } } -func (x *ReplicateMessageRequest) String() string { +func (x *RenameCollectionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ReplicateMessageRequest) ProtoMessage() {} +func (*RenameCollectionRequest) ProtoMessage() {} -func (x *ReplicateMessageRequest) ProtoReflect() protoreflect.Message { +func (x *RenameCollectionRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[186] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14105,72 +14200,64 @@ func (x *ReplicateMessageRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ReplicateMessageRequest.ProtoReflect.Descriptor instead. -func (*ReplicateMessageRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use RenameCollectionRequest.ProtoReflect.Descriptor instead. +func (*RenameCollectionRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{186} } -func (x *ReplicateMessageRequest) GetBase() *commonpb.MsgBase { +func (x *RenameCollectionRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *ReplicateMessageRequest) GetChannelName() string { +func (x *RenameCollectionRequest) GetDbName() string { if x != nil { - return x.ChannelName + return x.DbName } return "" } -func (x *ReplicateMessageRequest) GetBeginTs() uint64 { - if x != nil { - return x.BeginTs - } - return 0 -} - -func (x *ReplicateMessageRequest) GetEndTs() uint64 { - if x != nil { - return x.EndTs - } - return 0 -} - -func (x *ReplicateMessageRequest) GetMsgs() [][]byte { +func (x *RenameCollectionRequest) GetOldName() string { if x != nil { - return x.Msgs + return x.OldName } - return nil + return "" } -func (x *ReplicateMessageRequest) GetStartPositions() []*msgpb.MsgPosition { +func (x *RenameCollectionRequest) GetNewName() string { if x != nil { - return x.StartPositions + return x.NewName } - return nil + return "" } -func (x *ReplicateMessageRequest) GetEndPositions() []*msgpb.MsgPosition { +func (x *RenameCollectionRequest) GetNewDBName() string { if x != nil { - return x.EndPositions + return x.NewDBName } - return nil + return "" } -// Deprecated: Marked as deprecated in milvus.proto. -type ReplicateMessageResponse struct { +type GetIndexStatisticsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Position string `protobuf:"bytes,2,opt,name=position,proto3" json:"position,omitempty"` + // Not useful for now + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + // Not useful for now + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + // The particular collection name in Milvus + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + // The index name in this particular collection + IndexName string `protobuf:"bytes,4,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` + Timestamp uint64 `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } -func (x *ReplicateMessageResponse) Reset() { - *x = ReplicateMessageResponse{} +func (x *GetIndexStatisticsRequest) Reset() { + *x = GetIndexStatisticsRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[187] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14178,13 +14265,13 @@ func (x *ReplicateMessageResponse) Reset() { } } -func (x *ReplicateMessageResponse) String() string { +func (x *GetIndexStatisticsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ReplicateMessageResponse) ProtoMessage() {} +func (*GetIndexStatisticsRequest) ProtoMessage() {} -func (x *ReplicateMessageResponse) ProtoReflect() protoreflect.Message { +func (x *GetIndexStatisticsRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[187] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14196,37 +14283,59 @@ func (x *ReplicateMessageResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ReplicateMessageResponse.ProtoReflect.Descriptor instead. -func (*ReplicateMessageResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetIndexStatisticsRequest.ProtoReflect.Descriptor instead. +func (*GetIndexStatisticsRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{187} } -func (x *ReplicateMessageResponse) GetStatus() *commonpb.Status { +func (x *GetIndexStatisticsRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Status + return x.Base } return nil } -func (x *ReplicateMessageResponse) GetPosition() string { +func (x *GetIndexStatisticsRequest) GetDbName() string { if x != nil { - return x.Position + return x.DbName } return "" } -type ImportAuthPlaceholder struct { +func (x *GetIndexStatisticsRequest) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" +} + +func (x *GetIndexStatisticsRequest) GetIndexName() string { + if x != nil { + return x.IndexName + } + return "" +} + +func (x *GetIndexStatisticsRequest) GetTimestamp() uint64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +type GetIndexStatisticsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - DbName string `protobuf:"bytes,1,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,2,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - PartitionName string `protobuf:"bytes,3,opt,name=partition_name,json=partitionName,proto3" json:"partition_name,omitempty"` + // Response status + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + // All index information. + IndexDescriptions []*IndexDescription `protobuf:"bytes,2,rep,name=index_descriptions,json=indexDescriptions,proto3" json:"index_descriptions,omitempty"` } -func (x *ImportAuthPlaceholder) Reset() { - *x = ImportAuthPlaceholder{} +func (x *GetIndexStatisticsResponse) Reset() { + *x = GetIndexStatisticsResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[188] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14234,13 +14343,13 @@ func (x *ImportAuthPlaceholder) Reset() { } } -func (x *ImportAuthPlaceholder) String() string { +func (x *GetIndexStatisticsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ImportAuthPlaceholder) ProtoMessage() {} +func (*GetIndexStatisticsResponse) ProtoMessage() {} -func (x *ImportAuthPlaceholder) ProtoReflect() protoreflect.Message { +func (x *GetIndexStatisticsResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[188] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14252,42 +14361,36 @@ func (x *ImportAuthPlaceholder) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ImportAuthPlaceholder.ProtoReflect.Descriptor instead. -func (*ImportAuthPlaceholder) Descriptor() ([]byte, []int) { +// Deprecated: Use GetIndexStatisticsResponse.ProtoReflect.Descriptor instead. +func (*GetIndexStatisticsResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{188} } -func (x *ImportAuthPlaceholder) GetDbName() string { - if x != nil { - return x.DbName - } - return "" -} - -func (x *ImportAuthPlaceholder) GetCollectionName() string { +func (x *GetIndexStatisticsResponse) GetStatus() *commonpb.Status { if x != nil { - return x.CollectionName + return x.Status } - return "" + return nil } -func (x *ImportAuthPlaceholder) GetPartitionName() string { +func (x *GetIndexStatisticsResponse) GetIndexDescriptions() []*IndexDescription { if x != nil { - return x.PartitionName + return x.IndexDescriptions } - return "" + return nil } -type GetImportProgressAuthPlaceholder struct { +type ConnectRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - DbName string `protobuf:"bytes,1,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + ClientInfo *commonpb.ClientInfo `protobuf:"bytes,2,opt,name=client_info,json=clientInfo,proto3" json:"client_info,omitempty"` } -func (x *GetImportProgressAuthPlaceholder) Reset() { - *x = GetImportProgressAuthPlaceholder{} +func (x *ConnectRequest) Reset() { + *x = ConnectRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[189] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14295,13 +14398,13 @@ func (x *GetImportProgressAuthPlaceholder) Reset() { } } -func (x *GetImportProgressAuthPlaceholder) String() string { +func (x *ConnectRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetImportProgressAuthPlaceholder) ProtoMessage() {} +func (*ConnectRequest) ProtoMessage() {} -func (x *GetImportProgressAuthPlaceholder) ProtoReflect() protoreflect.Message { +func (x *ConnectRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[189] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14313,29 +14416,37 @@ func (x *GetImportProgressAuthPlaceholder) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetImportProgressAuthPlaceholder.ProtoReflect.Descriptor instead. -func (*GetImportProgressAuthPlaceholder) Descriptor() ([]byte, []int) { +// Deprecated: Use ConnectRequest.ProtoReflect.Descriptor instead. +func (*ConnectRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{189} } -func (x *GetImportProgressAuthPlaceholder) GetDbName() string { +func (x *ConnectRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.DbName + return x.Base } - return "" + return nil } -type ListImportsAuthPlaceholder struct { +func (x *ConnectRequest) GetClientInfo() *commonpb.ClientInfo { + if x != nil { + return x.ClientInfo + } + return nil +} + +type ConnectResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - DbName string `protobuf:"bytes,3,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + ServerInfo *commonpb.ServerInfo `protobuf:"bytes,2,opt,name=server_info,json=serverInfo,proto3" json:"server_info,omitempty"` + Identifier int64 `protobuf:"varint,3,opt,name=identifier,proto3" json:"identifier,omitempty"` } -func (x *ListImportsAuthPlaceholder) Reset() { - *x = ListImportsAuthPlaceholder{} +func (x *ConnectResponse) Reset() { + *x = ConnectResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[190] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14343,13 +14454,13 @@ func (x *ListImportsAuthPlaceholder) Reset() { } } -func (x *ListImportsAuthPlaceholder) String() string { +func (x *ConnectResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListImportsAuthPlaceholder) ProtoMessage() {} +func (*ConnectResponse) ProtoMessage() {} -func (x *ListImportsAuthPlaceholder) ProtoReflect() protoreflect.Message { +func (x *ConnectResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[190] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14361,43 +14472,42 @@ func (x *ListImportsAuthPlaceholder) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListImportsAuthPlaceholder.ProtoReflect.Descriptor instead. -func (*ListImportsAuthPlaceholder) Descriptor() ([]byte, []int) { +// Deprecated: Use ConnectResponse.ProtoReflect.Descriptor instead. +func (*ConnectResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{190} } -func (x *ListImportsAuthPlaceholder) GetDbName() string { +func (x *ConnectResponse) GetStatus() *commonpb.Status { if x != nil { - return x.DbName + return x.Status } - return "" + return nil } -func (x *ListImportsAuthPlaceholder) GetCollectionName() string { +func (x *ConnectResponse) GetServerInfo() *commonpb.ServerInfo { if x != nil { - return x.CollectionName + return x.ServerInfo } - return "" + return nil } -type RunAnalyzerRequest struct { +func (x *ConnectResponse) GetIdentifier() int64 { + if x != nil { + return x.Identifier + } + return 0 +} + +type AllocTimestampRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - AnalyzerParams string `protobuf:"bytes,2,opt,name=analyzer_params,json=analyzerParams,proto3" json:"analyzer_params,omitempty"` - Placeholder [][]byte `protobuf:"bytes,3,rep,name=placeholder,proto3" json:"placeholder,omitempty"` - WithDetail bool `protobuf:"varint,4,opt,name=with_detail,json=withDetail,proto3" json:"with_detail,omitempty"` - WithHash bool `protobuf:"varint,5,opt,name=with_hash,json=withHash,proto3" json:"with_hash,omitempty"` - DbName string `protobuf:"bytes,6,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,7,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - FieldName string `protobuf:"bytes,8,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` - AnalyzerNames []string `protobuf:"bytes,9,rep,name=analyzer_names,json=analyzerNames,proto3" json:"analyzer_names,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` } -func (x *RunAnalyzerRequest) Reset() { - *x = RunAnalyzerRequest{} +func (x *AllocTimestampRequest) Reset() { + *x = AllocTimestampRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[191] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14405,13 +14515,13 @@ func (x *RunAnalyzerRequest) Reset() { } } -func (x *RunAnalyzerRequest) String() string { +func (x *AllocTimestampRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RunAnalyzerRequest) ProtoMessage() {} +func (*AllocTimestampRequest) ProtoMessage() {} -func (x *RunAnalyzerRequest) ProtoReflect() protoreflect.Message { +func (x *AllocTimestampRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[191] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14423,89 +14533,29 @@ func (x *RunAnalyzerRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RunAnalyzerRequest.ProtoReflect.Descriptor instead. -func (*RunAnalyzerRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use AllocTimestampRequest.ProtoReflect.Descriptor instead. +func (*AllocTimestampRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{191} } -func (x *RunAnalyzerRequest) GetBase() *commonpb.MsgBase { +func (x *AllocTimestampRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *RunAnalyzerRequest) GetAnalyzerParams() string { - if x != nil { - return x.AnalyzerParams - } - return "" -} - -func (x *RunAnalyzerRequest) GetPlaceholder() [][]byte { - if x != nil { - return x.Placeholder - } - return nil -} - -func (x *RunAnalyzerRequest) GetWithDetail() bool { - if x != nil { - return x.WithDetail - } - return false -} - -func (x *RunAnalyzerRequest) GetWithHash() bool { - if x != nil { - return x.WithHash - } - return false -} - -func (x *RunAnalyzerRequest) GetDbName() string { - if x != nil { - return x.DbName - } - return "" -} - -func (x *RunAnalyzerRequest) GetCollectionName() string { - if x != nil { - return x.CollectionName - } - return "" -} - -func (x *RunAnalyzerRequest) GetFieldName() string { - if x != nil { - return x.FieldName - } - return "" -} - -func (x *RunAnalyzerRequest) GetAnalyzerNames() []string { - if x != nil { - return x.AnalyzerNames - } - return nil -} - -type AnalyzerToken struct { +type AllocTimestampResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` - StartOffset int64 `protobuf:"varint,2,opt,name=start_offset,json=startOffset,proto3" json:"start_offset,omitempty"` - EndOffset int64 `protobuf:"varint,3,opt,name=end_offset,json=endOffset,proto3" json:"end_offset,omitempty"` - Position int64 `protobuf:"varint,4,opt,name=position,proto3" json:"position,omitempty"` - PositionLength int64 `protobuf:"varint,5,opt,name=position_length,json=positionLength,proto3" json:"position_length,omitempty"` - Hash uint32 `protobuf:"varint,6,opt,name=hash,proto3" json:"hash,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Timestamp uint64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } -func (x *AnalyzerToken) Reset() { - *x = AnalyzerToken{} +func (x *AllocTimestampResponse) Reset() { + *x = AllocTimestampResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[192] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14513,13 +14563,13 @@ func (x *AnalyzerToken) Reset() { } } -func (x *AnalyzerToken) String() string { +func (x *AllocTimestampResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AnalyzerToken) ProtoMessage() {} +func (*AllocTimestampResponse) ProtoMessage() {} -func (x *AnalyzerToken) ProtoReflect() protoreflect.Message { +func (x *AllocTimestampResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[192] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14531,63 +14581,37 @@ func (x *AnalyzerToken) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AnalyzerToken.ProtoReflect.Descriptor instead. -func (*AnalyzerToken) Descriptor() ([]byte, []int) { +// Deprecated: Use AllocTimestampResponse.ProtoReflect.Descriptor instead. +func (*AllocTimestampResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{192} } -func (x *AnalyzerToken) GetToken() string { - if x != nil { - return x.Token - } - return "" -} - -func (x *AnalyzerToken) GetStartOffset() int64 { - if x != nil { - return x.StartOffset - } - return 0 -} - -func (x *AnalyzerToken) GetEndOffset() int64 { - if x != nil { - return x.EndOffset - } - return 0 -} - -func (x *AnalyzerToken) GetPosition() int64 { - if x != nil { - return x.Position - } - return 0 -} - -func (x *AnalyzerToken) GetPositionLength() int64 { +func (x *AllocTimestampResponse) GetStatus() *commonpb.Status { if x != nil { - return x.PositionLength + return x.Status } - return 0 + return nil } -func (x *AnalyzerToken) GetHash() uint32 { +func (x *AllocTimestampResponse) GetTimestamp() uint64 { if x != nil { - return x.Hash + return x.Timestamp } return 0 } -type AnalyzerResult struct { +type CreateDatabaseRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Tokens []*AnalyzerToken `protobuf:"bytes,1,rep,name=tokens,proto3" json:"tokens,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + Properties []*commonpb.KeyValuePair `protobuf:"bytes,3,rep,name=properties,proto3" json:"properties,omitempty"` } -func (x *AnalyzerResult) Reset() { - *x = AnalyzerResult{} +func (x *CreateDatabaseRequest) Reset() { + *x = CreateDatabaseRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[193] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14595,13 +14619,13 @@ func (x *AnalyzerResult) Reset() { } } -func (x *AnalyzerResult) String() string { +func (x *CreateDatabaseRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AnalyzerResult) ProtoMessage() {} +func (*CreateDatabaseRequest) ProtoMessage() {} -func (x *AnalyzerResult) ProtoReflect() protoreflect.Message { +func (x *CreateDatabaseRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[193] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14613,29 +14637,43 @@ func (x *AnalyzerResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AnalyzerResult.ProtoReflect.Descriptor instead. -func (*AnalyzerResult) Descriptor() ([]byte, []int) { +// Deprecated: Use CreateDatabaseRequest.ProtoReflect.Descriptor instead. +func (*CreateDatabaseRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{193} } -func (x *AnalyzerResult) GetTokens() []*AnalyzerToken { +func (x *CreateDatabaseRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Tokens + return x.Base } return nil } -type RunAnalyzerResponse struct { +func (x *CreateDatabaseRequest) GetDbName() string { + if x != nil { + return x.DbName + } + return "" +} + +func (x *CreateDatabaseRequest) GetProperties() []*commonpb.KeyValuePair { + if x != nil { + return x.Properties + } + return nil +} + +type DropDatabaseRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Results []*AnalyzerResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` } -func (x *RunAnalyzerResponse) Reset() { - *x = RunAnalyzerResponse{} +func (x *DropDatabaseRequest) Reset() { + *x = DropDatabaseRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[194] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14643,13 +14681,13 @@ func (x *RunAnalyzerResponse) Reset() { } } -func (x *RunAnalyzerResponse) String() string { +func (x *DropDatabaseRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RunAnalyzerResponse) ProtoMessage() {} +func (*DropDatabaseRequest) ProtoMessage() {} -func (x *RunAnalyzerResponse) ProtoReflect() protoreflect.Message { +func (x *DropDatabaseRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[194] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14661,37 +14699,35 @@ func (x *RunAnalyzerResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RunAnalyzerResponse.ProtoReflect.Descriptor instead. -func (*RunAnalyzerResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use DropDatabaseRequest.ProtoReflect.Descriptor instead. +func (*DropDatabaseRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{194} } -func (x *RunAnalyzerResponse) GetStatus() *commonpb.Status { +func (x *DropDatabaseRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Status + return x.Base } return nil } -func (x *RunAnalyzerResponse) GetResults() []*AnalyzerResult { +func (x *DropDatabaseRequest) GetDbName() string { if x != nil { - return x.Results + return x.DbName } - return nil + return "" } -type FileResourceInfo struct { +type ListDatabasesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` } -func (x *FileResourceInfo) Reset() { - *x = FileResourceInfo{} +func (x *ListDatabasesRequest) Reset() { + *x = ListDatabasesRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[195] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14699,13 +14735,13 @@ func (x *FileResourceInfo) Reset() { } } -func (x *FileResourceInfo) String() string { +func (x *ListDatabasesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FileResourceInfo) ProtoMessage() {} +func (*ListDatabasesRequest) ProtoMessage() {} -func (x *FileResourceInfo) ProtoReflect() protoreflect.Message { +func (x *ListDatabasesRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[195] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14717,44 +14753,31 @@ func (x *FileResourceInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FileResourceInfo.ProtoReflect.Descriptor instead. -func (*FileResourceInfo) Descriptor() ([]byte, []int) { +// Deprecated: Use ListDatabasesRequest.ProtoReflect.Descriptor instead. +func (*ListDatabasesRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{195} } -func (x *FileResourceInfo) GetId() int64 { - if x != nil { - return x.Id - } - return 0 -} - -func (x *FileResourceInfo) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *FileResourceInfo) GetPath() string { +func (x *ListDatabasesRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Path + return x.Base } - return "" + return nil } -type AddFileResourceRequest struct { +type ListDatabasesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + DbNames []string `protobuf:"bytes,2,rep,name=db_names,json=dbNames,proto3" json:"db_names,omitempty"` + CreatedTimestamp []uint64 `protobuf:"varint,3,rep,packed,name=created_timestamp,json=createdTimestamp,proto3" json:"created_timestamp,omitempty"` + DbIds []int64 `protobuf:"varint,4,rep,packed,name=db_ids,json=dbIds,proto3" json:"db_ids,omitempty"` } -func (x *AddFileResourceRequest) Reset() { - *x = AddFileResourceRequest{} +func (x *ListDatabasesResponse) Reset() { + *x = ListDatabasesResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[196] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14762,13 +14785,13 @@ func (x *AddFileResourceRequest) Reset() { } } -func (x *AddFileResourceRequest) String() string { +func (x *ListDatabasesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AddFileResourceRequest) ProtoMessage() {} +func (*ListDatabasesResponse) ProtoMessage() {} -func (x *AddFileResourceRequest) ProtoReflect() protoreflect.Message { +func (x *ListDatabasesResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[196] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14780,43 +14803,53 @@ func (x *AddFileResourceRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AddFileResourceRequest.ProtoReflect.Descriptor instead. -func (*AddFileResourceRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ListDatabasesResponse.ProtoReflect.Descriptor instead. +func (*ListDatabasesResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{196} } -func (x *AddFileResourceRequest) GetBase() *commonpb.MsgBase { +func (x *ListDatabasesResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Base + return x.Status } return nil } -func (x *AddFileResourceRequest) GetName() string { +func (x *ListDatabasesResponse) GetDbNames() []string { if x != nil { - return x.Name + return x.DbNames } - return "" + return nil } -func (x *AddFileResourceRequest) GetPath() string { +func (x *ListDatabasesResponse) GetCreatedTimestamp() []uint64 { if x != nil { - return x.Path + return x.CreatedTimestamp } - return "" + return nil } -type RemoveFileResourceRequest struct { +func (x *ListDatabasesResponse) GetDbIds() []int64 { + if x != nil { + return x.DbIds + } + return nil +} + +type AlterDatabaseRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + DbId string `protobuf:"bytes,3,opt,name=db_id,json=dbId,proto3" json:"db_id,omitempty"` + Properties []*commonpb.KeyValuePair `protobuf:"bytes,4,rep,name=properties,proto3" json:"properties,omitempty"` + DeleteKeys []string `protobuf:"bytes,5,rep,name=delete_keys,json=deleteKeys,proto3" json:"delete_keys,omitempty"` } -func (x *RemoveFileResourceRequest) Reset() { - *x = RemoveFileResourceRequest{} +func (x *AlterDatabaseRequest) Reset() { + *x = AlterDatabaseRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[197] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14824,13 +14857,13 @@ func (x *RemoveFileResourceRequest) Reset() { } } -func (x *RemoveFileResourceRequest) String() string { +func (x *AlterDatabaseRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RemoveFileResourceRequest) ProtoMessage() {} +func (*AlterDatabaseRequest) ProtoMessage() {} -func (x *RemoveFileResourceRequest) ProtoReflect() protoreflect.Message { +func (x *AlterDatabaseRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[197] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14842,35 +14875,57 @@ func (x *RemoveFileResourceRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RemoveFileResourceRequest.ProtoReflect.Descriptor instead. -func (*RemoveFileResourceRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use AlterDatabaseRequest.ProtoReflect.Descriptor instead. +func (*AlterDatabaseRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{197} } -func (x *RemoveFileResourceRequest) GetBase() *commonpb.MsgBase { +func (x *AlterDatabaseRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *RemoveFileResourceRequest) GetName() string { +func (x *AlterDatabaseRequest) GetDbName() string { if x != nil { - return x.Name + return x.DbName } return "" } -type ListFileResourcesRequest struct { +func (x *AlterDatabaseRequest) GetDbId() string { + if x != nil { + return x.DbId + } + return "" +} + +func (x *AlterDatabaseRequest) GetProperties() []*commonpb.KeyValuePair { + if x != nil { + return x.Properties + } + return nil +} + +func (x *AlterDatabaseRequest) GetDeleteKeys() []string { + if x != nil { + return x.DeleteKeys + } + return nil +} + +type DescribeDatabaseRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` } -func (x *ListFileResourcesRequest) Reset() { - *x = ListFileResourcesRequest{} +func (x *DescribeDatabaseRequest) Reset() { + *x = DescribeDatabaseRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[198] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14878,13 +14933,13 @@ func (x *ListFileResourcesRequest) Reset() { } } -func (x *ListFileResourcesRequest) String() string { +func (x *DescribeDatabaseRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListFileResourcesRequest) ProtoMessage() {} +func (*DescribeDatabaseRequest) ProtoMessage() {} -func (x *ListFileResourcesRequest) ProtoReflect() protoreflect.Message { +func (x *DescribeDatabaseRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[198] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14896,29 +14951,39 @@ func (x *ListFileResourcesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListFileResourcesRequest.ProtoReflect.Descriptor instead. -func (*ListFileResourcesRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use DescribeDatabaseRequest.ProtoReflect.Descriptor instead. +func (*DescribeDatabaseRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{198} } -func (x *ListFileResourcesRequest) GetBase() *commonpb.MsgBase { +func (x *DescribeDatabaseRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -type ListFileResourcesResponse struct { +func (x *DescribeDatabaseRequest) GetDbName() string { + if x != nil { + return x.DbName + } + return "" +} + +type DescribeDatabaseResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Resources []*FileResourceInfo `protobuf:"bytes,2,rep,name=resources,proto3" json:"resources,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + DbID int64 `protobuf:"varint,3,opt,name=dbID,proto3" json:"dbID,omitempty"` + CreatedTimestamp uint64 `protobuf:"varint,4,opt,name=created_timestamp,json=createdTimestamp,proto3" json:"created_timestamp,omitempty"` + Properties []*commonpb.KeyValuePair `protobuf:"bytes,5,rep,name=properties,proto3" json:"properties,omitempty"` } -func (x *ListFileResourcesResponse) Reset() { - *x = ListFileResourcesResponse{} +func (x *DescribeDatabaseResponse) Reset() { + *x = DescribeDatabaseResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[199] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14926,13 +14991,13 @@ func (x *ListFileResourcesResponse) Reset() { } } -func (x *ListFileResourcesResponse) String() string { +func (x *DescribeDatabaseResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListFileResourcesResponse) ProtoMessage() {} +func (*DescribeDatabaseResponse) ProtoMessage() {} -func (x *ListFileResourcesResponse) ProtoReflect() protoreflect.Message { +func (x *DescribeDatabaseResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[199] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14944,38 +15009,63 @@ func (x *ListFileResourcesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListFileResourcesResponse.ProtoReflect.Descriptor instead. -func (*ListFileResourcesResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use DescribeDatabaseResponse.ProtoReflect.Descriptor instead. +func (*DescribeDatabaseResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{199} } -func (x *ListFileResourcesResponse) GetStatus() *commonpb.Status { +func (x *DescribeDatabaseResponse) GetStatus() *commonpb.Status { if x != nil { return x.Status } return nil } -func (x *ListFileResourcesResponse) GetResources() []*FileResourceInfo { +func (x *DescribeDatabaseResponse) GetDbName() string { if x != nil { - return x.Resources + return x.DbName + } + return "" +} + +func (x *DescribeDatabaseResponse) GetDbID() int64 { + if x != nil { + return x.DbID + } + return 0 +} + +func (x *DescribeDatabaseResponse) GetCreatedTimestamp() uint64 { + if x != nil { + return x.CreatedTimestamp + } + return 0 +} + +func (x *DescribeDatabaseResponse) GetProperties() []*commonpb.KeyValuePair { + if x != nil { + return x.Properties } return nil } -// User Tag Management -type AddUserTagsRequest struct { +// Deprecated: Marked as deprecated in milvus.proto. +type ReplicateMessageRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - UserName string `protobuf:"bytes,2,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - Tags map[string]string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + ChannelName string `protobuf:"bytes,2,opt,name=channel_name,json=channelName,proto3" json:"channel_name,omitempty"` + BeginTs uint64 `protobuf:"varint,3,opt,name=BeginTs,proto3" json:"BeginTs,omitempty"` + EndTs uint64 `protobuf:"varint,4,opt,name=EndTs,proto3" json:"EndTs,omitempty"` + Msgs [][]byte `protobuf:"bytes,5,rep,name=Msgs,proto3" json:"Msgs,omitempty"` + StartPositions []*msgpb.MsgPosition `protobuf:"bytes,6,rep,name=StartPositions,proto3" json:"StartPositions,omitempty"` + EndPositions []*msgpb.MsgPosition `protobuf:"bytes,7,rep,name=EndPositions,proto3" json:"EndPositions,omitempty"` } -func (x *AddUserTagsRequest) Reset() { - *x = AddUserTagsRequest{} +func (x *ReplicateMessageRequest) Reset() { + *x = ReplicateMessageRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[200] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -14983,13 +15073,13 @@ func (x *AddUserTagsRequest) Reset() { } } -func (x *AddUserTagsRequest) String() string { +func (x *ReplicateMessageRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AddUserTagsRequest) ProtoMessage() {} +func (*ReplicateMessageRequest) ProtoMessage() {} -func (x *AddUserTagsRequest) ProtoReflect() protoreflect.Message { +func (x *ReplicateMessageRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[200] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15001,44 +15091,72 @@ func (x *AddUserTagsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AddUserTagsRequest.ProtoReflect.Descriptor instead. -func (*AddUserTagsRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ReplicateMessageRequest.ProtoReflect.Descriptor instead. +func (*ReplicateMessageRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{200} } -func (x *AddUserTagsRequest) GetBase() *commonpb.MsgBase { +func (x *ReplicateMessageRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *AddUserTagsRequest) GetUserName() string { +func (x *ReplicateMessageRequest) GetChannelName() string { if x != nil { - return x.UserName + return x.ChannelName } return "" } -func (x *AddUserTagsRequest) GetTags() map[string]string { +func (x *ReplicateMessageRequest) GetBeginTs() uint64 { if x != nil { - return x.Tags + return x.BeginTs + } + return 0 +} + +func (x *ReplicateMessageRequest) GetEndTs() uint64 { + if x != nil { + return x.EndTs + } + return 0 +} + +func (x *ReplicateMessageRequest) GetMsgs() [][]byte { + if x != nil { + return x.Msgs } return nil } -type DeleteUserTagsRequest struct { +func (x *ReplicateMessageRequest) GetStartPositions() []*msgpb.MsgPosition { + if x != nil { + return x.StartPositions + } + return nil +} + +func (x *ReplicateMessageRequest) GetEndPositions() []*msgpb.MsgPosition { + if x != nil { + return x.EndPositions + } + return nil +} + +// Deprecated: Marked as deprecated in milvus.proto. +type ReplicateMessageResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - UserName string `protobuf:"bytes,2,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - TagKeys []string `protobuf:"bytes,3,rep,name=tag_keys,json=tagKeys,proto3" json:"tag_keys,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Position string `protobuf:"bytes,2,opt,name=position,proto3" json:"position,omitempty"` } -func (x *DeleteUserTagsRequest) Reset() { - *x = DeleteUserTagsRequest{} +func (x *ReplicateMessageResponse) Reset() { + *x = ReplicateMessageResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[201] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15046,13 +15164,13 @@ func (x *DeleteUserTagsRequest) Reset() { } } -func (x *DeleteUserTagsRequest) String() string { +func (x *ReplicateMessageResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeleteUserTagsRequest) ProtoMessage() {} +func (*ReplicateMessageResponse) ProtoMessage() {} -func (x *DeleteUserTagsRequest) ProtoReflect() protoreflect.Message { +func (x *ReplicateMessageResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[201] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15064,43 +15182,37 @@ func (x *DeleteUserTagsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeleteUserTagsRequest.ProtoReflect.Descriptor instead. -func (*DeleteUserTagsRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ReplicateMessageResponse.ProtoReflect.Descriptor instead. +func (*ReplicateMessageResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{201} } -func (x *DeleteUserTagsRequest) GetBase() *commonpb.MsgBase { +func (x *ReplicateMessageResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Base + return x.Status } return nil } -func (x *DeleteUserTagsRequest) GetUserName() string { +func (x *ReplicateMessageResponse) GetPosition() string { if x != nil { - return x.UserName + return x.Position } return "" } -func (x *DeleteUserTagsRequest) GetTagKeys() []string { - if x != nil { - return x.TagKeys - } - return nil -} - -type GetUserTagsRequest struct { +type ImportAuthPlaceholder struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - UserName string `protobuf:"bytes,2,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + DbName string `protobuf:"bytes,1,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,2,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + PartitionName string `protobuf:"bytes,3,opt,name=partition_name,json=partitionName,proto3" json:"partition_name,omitempty"` } -func (x *GetUserTagsRequest) Reset() { - *x = GetUserTagsRequest{} +func (x *ImportAuthPlaceholder) Reset() { + *x = ImportAuthPlaceholder{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[202] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15108,13 +15220,13 @@ func (x *GetUserTagsRequest) Reset() { } } -func (x *GetUserTagsRequest) String() string { +func (x *ImportAuthPlaceholder) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetUserTagsRequest) ProtoMessage() {} +func (*ImportAuthPlaceholder) ProtoMessage() {} -func (x *GetUserTagsRequest) ProtoReflect() protoreflect.Message { +func (x *ImportAuthPlaceholder) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[202] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15126,36 +15238,42 @@ func (x *GetUserTagsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetUserTagsRequest.ProtoReflect.Descriptor instead. -func (*GetUserTagsRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ImportAuthPlaceholder.ProtoReflect.Descriptor instead. +func (*ImportAuthPlaceholder) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{202} } -func (x *GetUserTagsRequest) GetBase() *commonpb.MsgBase { +func (x *ImportAuthPlaceholder) GetDbName() string { if x != nil { - return x.Base + return x.DbName } - return nil + return "" } -func (x *GetUserTagsRequest) GetUserName() string { +func (x *ImportAuthPlaceholder) GetCollectionName() string { if x != nil { - return x.UserName + return x.CollectionName } return "" } -type GetUserTagsResponse struct { +func (x *ImportAuthPlaceholder) GetPartitionName() string { + if x != nil { + return x.PartitionName + } + return "" +} + +type GetImportProgressAuthPlaceholder struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Tags map[string]string `protobuf:"bytes,2,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + DbName string `protobuf:"bytes,1,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` } -func (x *GetUserTagsResponse) Reset() { - *x = GetUserTagsResponse{} +func (x *GetImportProgressAuthPlaceholder) Reset() { + *x = GetImportProgressAuthPlaceholder{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[203] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15163,13 +15281,13 @@ func (x *GetUserTagsResponse) Reset() { } } -func (x *GetUserTagsResponse) String() string { +func (x *GetImportProgressAuthPlaceholder) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetUserTagsResponse) ProtoMessage() {} +func (*GetImportProgressAuthPlaceholder) ProtoMessage() {} -func (x *GetUserTagsResponse) ProtoReflect() protoreflect.Message { +func (x *GetImportProgressAuthPlaceholder) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[203] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15181,37 +15299,29 @@ func (x *GetUserTagsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetUserTagsResponse.ProtoReflect.Descriptor instead. -func (*GetUserTagsResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetImportProgressAuthPlaceholder.ProtoReflect.Descriptor instead. +func (*GetImportProgressAuthPlaceholder) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{203} } -func (x *GetUserTagsResponse) GetStatus() *commonpb.Status { - if x != nil { - return x.Status - } - return nil -} - -func (x *GetUserTagsResponse) GetTags() map[string]string { +func (x *GetImportProgressAuthPlaceholder) GetDbName() string { if x != nil { - return x.Tags + return x.DbName } - return nil + return "" } -type ListUsersWithTagRequest struct { +type ListImportsAuthPlaceholder struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - TagKey string `protobuf:"bytes,2,opt,name=tag_key,json=tagKey,proto3" json:"tag_key,omitempty"` - TagValue string `protobuf:"bytes,3,opt,name=tag_value,json=tagValue,proto3" json:"tag_value,omitempty"` + DbName string `protobuf:"bytes,3,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` } -func (x *ListUsersWithTagRequest) Reset() { - *x = ListUsersWithTagRequest{} +func (x *ListImportsAuthPlaceholder) Reset() { + *x = ListImportsAuthPlaceholder{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[204] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15219,13 +15329,13 @@ func (x *ListUsersWithTagRequest) Reset() { } } -func (x *ListUsersWithTagRequest) String() string { +func (x *ListImportsAuthPlaceholder) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListUsersWithTagRequest) ProtoMessage() {} +func (*ListImportsAuthPlaceholder) ProtoMessage() {} -func (x *ListUsersWithTagRequest) ProtoReflect() protoreflect.Message { +func (x *ListImportsAuthPlaceholder) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[204] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15237,43 +15347,43 @@ func (x *ListUsersWithTagRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListUsersWithTagRequest.ProtoReflect.Descriptor instead. -func (*ListUsersWithTagRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ListImportsAuthPlaceholder.ProtoReflect.Descriptor instead. +func (*ListImportsAuthPlaceholder) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{204} } -func (x *ListUsersWithTagRequest) GetBase() *commonpb.MsgBase { - if x != nil { - return x.Base - } - return nil -} - -func (x *ListUsersWithTagRequest) GetTagKey() string { +func (x *ListImportsAuthPlaceholder) GetDbName() string { if x != nil { - return x.TagKey + return x.DbName } return "" } -func (x *ListUsersWithTagRequest) GetTagValue() string { +func (x *ListImportsAuthPlaceholder) GetCollectionName() string { if x != nil { - return x.TagValue + return x.CollectionName } return "" } -type ListUsersWithTagResponse struct { +type RunAnalyzerRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - UserNames []string `protobuf:"bytes,2,rep,name=user_names,json=userNames,proto3" json:"user_names,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + AnalyzerParams string `protobuf:"bytes,2,opt,name=analyzer_params,json=analyzerParams,proto3" json:"analyzer_params,omitempty"` + Placeholder [][]byte `protobuf:"bytes,3,rep,name=placeholder,proto3" json:"placeholder,omitempty"` + WithDetail bool `protobuf:"varint,4,opt,name=with_detail,json=withDetail,proto3" json:"with_detail,omitempty"` + WithHash bool `protobuf:"varint,5,opt,name=with_hash,json=withHash,proto3" json:"with_hash,omitempty"` + DbName string `protobuf:"bytes,6,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,7,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + FieldName string `protobuf:"bytes,8,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` + AnalyzerNames []string `protobuf:"bytes,9,rep,name=analyzer_names,json=analyzerNames,proto3" json:"analyzer_names,omitempty"` } -func (x *ListUsersWithTagResponse) Reset() { - *x = ListUsersWithTagResponse{} +func (x *RunAnalyzerRequest) Reset() { + *x = RunAnalyzerRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[205] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15281,13 +15391,13 @@ func (x *ListUsersWithTagResponse) Reset() { } } -func (x *ListUsersWithTagResponse) String() string { +func (x *RunAnalyzerRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListUsersWithTagResponse) ProtoMessage() {} +func (*RunAnalyzerRequest) ProtoMessage() {} -func (x *ListUsersWithTagResponse) ProtoReflect() protoreflect.Message { +func (x *RunAnalyzerRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[205] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15299,44 +15409,89 @@ func (x *ListUsersWithTagResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListUsersWithTagResponse.ProtoReflect.Descriptor instead. -func (*ListUsersWithTagResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use RunAnalyzerRequest.ProtoReflect.Descriptor instead. +func (*RunAnalyzerRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{205} } -func (x *ListUsersWithTagResponse) GetStatus() *commonpb.Status { +func (x *RunAnalyzerRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Status + return x.Base } return nil } -func (x *ListUsersWithTagResponse) GetUserNames() []string { +func (x *RunAnalyzerRequest) GetAnalyzerParams() string { if x != nil { - return x.UserNames + return x.AnalyzerParams + } + return "" +} + +func (x *RunAnalyzerRequest) GetPlaceholder() [][]byte { + if x != nil { + return x.Placeholder } return nil } -// Row Policy Management -type CreateRowPolicyRequest struct { +func (x *RunAnalyzerRequest) GetWithDetail() bool { + if x != nil { + return x.WithDetail + } + return false +} + +func (x *RunAnalyzerRequest) GetWithHash() bool { + if x != nil { + return x.WithHash + } + return false +} + +func (x *RunAnalyzerRequest) GetDbName() string { + if x != nil { + return x.DbName + } + return "" +} + +func (x *RunAnalyzerRequest) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" +} + +func (x *RunAnalyzerRequest) GetFieldName() string { + if x != nil { + return x.FieldName + } + return "" +} + +func (x *RunAnalyzerRequest) GetAnalyzerNames() []string { + if x != nil { + return x.AnalyzerNames + } + return nil +} + +type AnalyzerToken struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - PolicyName string `protobuf:"bytes,4,opt,name=policy_name,json=policyName,proto3" json:"policy_name,omitempty"` - Actions []RowPolicyAction `protobuf:"varint,5,rep,packed,name=actions,proto3,enum=milvus.proto.milvus.RowPolicyAction" json:"actions,omitempty"` // actions this policy controls - Roles []string `protobuf:"bytes,6,rep,name=roles,proto3" json:"roles,omitempty"` // role names that this policy applies to - UsingExpr string `protobuf:"bytes,7,opt,name=using_expr,json=usingExpr,proto3" json:"using_expr,omitempty"` // expression for filtering data during queries - CheckExpr string `protobuf:"bytes,8,opt,name=check_expr,json=checkExpr,proto3" json:"check_expr,omitempty"` // expression for validating data during mutations - Description string `protobuf:"bytes,9,opt,name=description,proto3" json:"description,omitempty"` // optional description + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` + StartOffset int64 `protobuf:"varint,2,opt,name=start_offset,json=startOffset,proto3" json:"start_offset,omitempty"` + EndOffset int64 `protobuf:"varint,3,opt,name=end_offset,json=endOffset,proto3" json:"end_offset,omitempty"` + Position int64 `protobuf:"varint,4,opt,name=position,proto3" json:"position,omitempty"` + PositionLength int64 `protobuf:"varint,5,opt,name=position_length,json=positionLength,proto3" json:"position_length,omitempty"` + Hash uint32 `protobuf:"varint,6,opt,name=hash,proto3" json:"hash,omitempty"` } -func (x *CreateRowPolicyRequest) Reset() { - *x = CreateRowPolicyRequest{} +func (x *AnalyzerToken) Reset() { + *x = AnalyzerToken{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[206] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15344,13 +15499,13 @@ func (x *CreateRowPolicyRequest) Reset() { } } -func (x *CreateRowPolicyRequest) String() string { +func (x *AnalyzerToken) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateRowPolicyRequest) ProtoMessage() {} +func (*AnalyzerToken) ProtoMessage() {} -func (x *CreateRowPolicyRequest) ProtoReflect() protoreflect.Message { +func (x *AnalyzerToken) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[206] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15362,87 +15517,63 @@ func (x *CreateRowPolicyRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateRowPolicyRequest.ProtoReflect.Descriptor instead. -func (*CreateRowPolicyRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use AnalyzerToken.ProtoReflect.Descriptor instead. +func (*AnalyzerToken) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{206} } -func (x *CreateRowPolicyRequest) GetBase() *commonpb.MsgBase { +func (x *AnalyzerToken) GetToken() string { if x != nil { - return x.Base + return x.Token } - return nil + return "" } -func (x *CreateRowPolicyRequest) GetDbName() string { +func (x *AnalyzerToken) GetStartOffset() int64 { if x != nil { - return x.DbName + return x.StartOffset } - return "" + return 0 } -func (x *CreateRowPolicyRequest) GetCollectionName() string { +func (x *AnalyzerToken) GetEndOffset() int64 { if x != nil { - return x.CollectionName + return x.EndOffset } - return "" + return 0 } -func (x *CreateRowPolicyRequest) GetPolicyName() string { +func (x *AnalyzerToken) GetPosition() int64 { if x != nil { - return x.PolicyName + return x.Position } - return "" -} - -func (x *CreateRowPolicyRequest) GetActions() []RowPolicyAction { - if x != nil { - return x.Actions - } - return nil -} - -func (x *CreateRowPolicyRequest) GetRoles() []string { - if x != nil { - return x.Roles - } - return nil -} - -func (x *CreateRowPolicyRequest) GetUsingExpr() string { - if x != nil { - return x.UsingExpr - } - return "" + return 0 } -func (x *CreateRowPolicyRequest) GetCheckExpr() string { +func (x *AnalyzerToken) GetPositionLength() int64 { if x != nil { - return x.CheckExpr + return x.PositionLength } - return "" + return 0 } -func (x *CreateRowPolicyRequest) GetDescription() string { +func (x *AnalyzerToken) GetHash() uint32 { if x != nil { - return x.Description + return x.Hash } - return "" + return 0 } -type DropRowPolicyRequest struct { +type AnalyzerResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - PolicyName string `protobuf:"bytes,4,opt,name=policy_name,json=policyName,proto3" json:"policy_name,omitempty"` + Tokens []*AnalyzerToken `protobuf:"bytes,1,rep,name=tokens,proto3" json:"tokens,omitempty"` } -func (x *DropRowPolicyRequest) Reset() { - *x = DropRowPolicyRequest{} +func (x *AnalyzerResult) Reset() { + *x = AnalyzerResult{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[207] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15450,13 +15581,13 @@ func (x *DropRowPolicyRequest) Reset() { } } -func (x *DropRowPolicyRequest) String() string { +func (x *AnalyzerResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DropRowPolicyRequest) ProtoMessage() {} +func (*AnalyzerResult) ProtoMessage() {} -func (x *DropRowPolicyRequest) ProtoReflect() protoreflect.Message { +func (x *AnalyzerResult) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[207] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15468,51 +15599,29 @@ func (x *DropRowPolicyRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DropRowPolicyRequest.ProtoReflect.Descriptor instead. -func (*DropRowPolicyRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use AnalyzerResult.ProtoReflect.Descriptor instead. +func (*AnalyzerResult) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{207} } -func (x *DropRowPolicyRequest) GetBase() *commonpb.MsgBase { +func (x *AnalyzerResult) GetTokens() []*AnalyzerToken { if x != nil { - return x.Base + return x.Tokens } return nil } -func (x *DropRowPolicyRequest) GetDbName() string { - if x != nil { - return x.DbName - } - return "" -} - -func (x *DropRowPolicyRequest) GetCollectionName() string { - if x != nil { - return x.CollectionName - } - return "" -} - -func (x *DropRowPolicyRequest) GetPolicyName() string { - if x != nil { - return x.PolicyName - } - return "" -} - -type ListRowPoliciesRequest struct { +type RunAnalyzerResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Results []*AnalyzerResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` } -func (x *ListRowPoliciesRequest) Reset() { - *x = ListRowPoliciesRequest{} +func (x *RunAnalyzerResponse) Reset() { + *x = RunAnalyzerResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[208] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15520,13 +15629,13 @@ func (x *ListRowPoliciesRequest) Reset() { } } -func (x *ListRowPoliciesRequest) String() string { +func (x *RunAnalyzerResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListRowPoliciesRequest) ProtoMessage() {} +func (*RunAnalyzerResponse) ProtoMessage() {} -func (x *ListRowPoliciesRequest) ProtoReflect() protoreflect.Message { +func (x *RunAnalyzerResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[208] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15538,48 +15647,37 @@ func (x *ListRowPoliciesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListRowPoliciesRequest.ProtoReflect.Descriptor instead. -func (*ListRowPoliciesRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use RunAnalyzerResponse.ProtoReflect.Descriptor instead. +func (*RunAnalyzerResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{208} } -func (x *ListRowPoliciesRequest) GetBase() *commonpb.MsgBase { +func (x *RunAnalyzerResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Base + return x.Status } return nil } -func (x *ListRowPoliciesRequest) GetDbName() string { - if x != nil { - return x.DbName - } - return "" -} - -func (x *ListRowPoliciesRequest) GetCollectionName() string { +func (x *RunAnalyzerResponse) GetResults() []*AnalyzerResult { if x != nil { - return x.CollectionName + return x.Results } - return "" + return nil } -type RowPolicy struct { +type FileResourceInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PolicyName string `protobuf:"bytes,1,opt,name=policy_name,json=policyName,proto3" json:"policy_name,omitempty"` - Actions []RowPolicyAction `protobuf:"varint,2,rep,packed,name=actions,proto3,enum=milvus.proto.milvus.RowPolicyAction" json:"actions,omitempty"` - Roles []string `protobuf:"bytes,3,rep,name=roles,proto3" json:"roles,omitempty"` - UsingExpr string `protobuf:"bytes,4,opt,name=using_expr,json=usingExpr,proto3" json:"using_expr,omitempty"` - CheckExpr string `protobuf:"bytes,5,opt,name=check_expr,json=checkExpr,proto3" json:"check_expr,omitempty"` - Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"` - CreatedAt int64 `protobuf:"varint,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"` } -func (x *RowPolicy) Reset() { - *x = RowPolicy{} +func (x *FileResourceInfo) Reset() { + *x = FileResourceInfo{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[209] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15587,13 +15685,13 @@ func (x *RowPolicy) Reset() { } } -func (x *RowPolicy) String() string { +func (x *FileResourceInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RowPolicy) ProtoMessage() {} +func (*FileResourceInfo) ProtoMessage() {} -func (x *RowPolicy) ProtoReflect() protoreflect.Message { +func (x *FileResourceInfo) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[209] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15605,73 +15703,44 @@ func (x *RowPolicy) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RowPolicy.ProtoReflect.Descriptor instead. -func (*RowPolicy) Descriptor() ([]byte, []int) { +// Deprecated: Use FileResourceInfo.ProtoReflect.Descriptor instead. +func (*FileResourceInfo) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{209} } -func (x *RowPolicy) GetPolicyName() string { - if x != nil { - return x.PolicyName - } - return "" -} - -func (x *RowPolicy) GetActions() []RowPolicyAction { - if x != nil { - return x.Actions - } - return nil -} - -func (x *RowPolicy) GetRoles() []string { - if x != nil { - return x.Roles - } - return nil -} - -func (x *RowPolicy) GetUsingExpr() string { +func (x *FileResourceInfo) GetId() int64 { if x != nil { - return x.UsingExpr + return x.Id } - return "" + return 0 } -func (x *RowPolicy) GetCheckExpr() string { +func (x *FileResourceInfo) GetName() string { if x != nil { - return x.CheckExpr + return x.Name } return "" } -func (x *RowPolicy) GetDescription() string { +func (x *FileResourceInfo) GetPath() string { if x != nil { - return x.Description + return x.Path } return "" } -func (x *RowPolicy) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -type ListRowPoliciesResponse struct { +type AddFileResourceRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Policies []*RowPolicy `protobuf:"bytes,2,rep,name=policies,proto3" json:"policies,omitempty"` - DbName string `protobuf:"bytes,3,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"` } -func (x *ListRowPoliciesResponse) Reset() { - *x = ListRowPoliciesResponse{} +func (x *AddFileResourceRequest) Reset() { + *x = AddFileResourceRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[210] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15679,13 +15748,13 @@ func (x *ListRowPoliciesResponse) Reset() { } } -func (x *ListRowPoliciesResponse) String() string { +func (x *AddFileResourceRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListRowPoliciesResponse) ProtoMessage() {} +func (*AddFileResourceRequest) ProtoMessage() {} -func (x *ListRowPoliciesResponse) ProtoReflect() protoreflect.Message { +func (x *AddFileResourceRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[210] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15697,52 +15766,43 @@ func (x *ListRowPoliciesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListRowPoliciesResponse.ProtoReflect.Descriptor instead. -func (*ListRowPoliciesResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use AddFileResourceRequest.ProtoReflect.Descriptor instead. +func (*AddFileResourceRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{210} } -func (x *ListRowPoliciesResponse) GetStatus() *commonpb.Status { - if x != nil { - return x.Status - } - return nil -} - -func (x *ListRowPoliciesResponse) GetPolicies() []*RowPolicy { +func (x *AddFileResourceRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Policies + return x.Base } return nil } -func (x *ListRowPoliciesResponse) GetDbName() string { +func (x *AddFileResourceRequest) GetName() string { if x != nil { - return x.DbName + return x.Name } return "" } -func (x *ListRowPoliciesResponse) GetCollectionName() string { +func (x *AddFileResourceRequest) GetPath() string { if x != nil { - return x.CollectionName + return x.Path } return "" } -type UpdateReplicateConfigurationRequest struct { +type RemoveFileResourceRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ReplicateConfiguration *commonpb.ReplicateConfiguration `protobuf:"bytes,1,opt,name=replicate_configuration,json=replicateConfiguration,proto3" json:"replicate_configuration,omitempty"` - // If true, the current cluster will be promoted to primary forcefully. - // This is intended for failover scenarios. - ForcePromote bool `protobuf:"varint,2,opt,name=force_promote,json=forcePromote,proto3" json:"force_promote,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` } -func (x *UpdateReplicateConfigurationRequest) Reset() { - *x = UpdateReplicateConfigurationRequest{} +func (x *RemoveFileResourceRequest) Reset() { + *x = RemoveFileResourceRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[211] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15750,13 +15810,13 @@ func (x *UpdateReplicateConfigurationRequest) Reset() { } } -func (x *UpdateReplicateConfigurationRequest) String() string { +func (x *RemoveFileResourceRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UpdateReplicateConfigurationRequest) ProtoMessage() {} +func (*RemoveFileResourceRequest) ProtoMessage() {} -func (x *UpdateReplicateConfigurationRequest) ProtoReflect() protoreflect.Message { +func (x *RemoveFileResourceRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[211] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15768,33 +15828,35 @@ func (x *UpdateReplicateConfigurationRequest) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use UpdateReplicateConfigurationRequest.ProtoReflect.Descriptor instead. -func (*UpdateReplicateConfigurationRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use RemoveFileResourceRequest.ProtoReflect.Descriptor instead. +func (*RemoveFileResourceRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{211} } -func (x *UpdateReplicateConfigurationRequest) GetReplicateConfiguration() *commonpb.ReplicateConfiguration { +func (x *RemoveFileResourceRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.ReplicateConfiguration + return x.Base } return nil } -func (x *UpdateReplicateConfigurationRequest) GetForcePromote() bool { +func (x *RemoveFileResourceRequest) GetName() string { if x != nil { - return x.ForcePromote + return x.Name } - return false + return "" } -type GetReplicateConfigurationRequest struct { +type ListFileResourcesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` } -func (x *GetReplicateConfigurationRequest) Reset() { - *x = GetReplicateConfigurationRequest{} +func (x *ListFileResourcesRequest) Reset() { + *x = ListFileResourcesRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[212] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15802,13 +15864,13 @@ func (x *GetReplicateConfigurationRequest) Reset() { } } -func (x *GetReplicateConfigurationRequest) String() string { +func (x *ListFileResourcesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetReplicateConfigurationRequest) ProtoMessage() {} +func (*ListFileResourcesRequest) ProtoMessage() {} -func (x *GetReplicateConfigurationRequest) ProtoReflect() protoreflect.Message { +func (x *ListFileResourcesRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[212] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15820,22 +15882,29 @@ func (x *GetReplicateConfigurationRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetReplicateConfigurationRequest.ProtoReflect.Descriptor instead. -func (*GetReplicateConfigurationRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ListFileResourcesRequest.ProtoReflect.Descriptor instead. +func (*ListFileResourcesRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{212} } -type GetReplicateConfigurationResponse struct { +func (x *ListFileResourcesRequest) GetBase() *commonpb.MsgBase { + if x != nil { + return x.Base + } + return nil +} + +type ListFileResourcesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Configuration *commonpb.ReplicateConfiguration `protobuf:"bytes,2,opt,name=configuration,proto3" json:"configuration,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Resources []*FileResourceInfo `protobuf:"bytes,2,rep,name=resources,proto3" json:"resources,omitempty"` } -func (x *GetReplicateConfigurationResponse) Reset() { - *x = GetReplicateConfigurationResponse{} +func (x *ListFileResourcesResponse) Reset() { + *x = ListFileResourcesResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[213] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15843,13 +15912,13 @@ func (x *GetReplicateConfigurationResponse) Reset() { } } -func (x *GetReplicateConfigurationResponse) String() string { +func (x *ListFileResourcesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetReplicateConfigurationResponse) ProtoMessage() {} +func (*ListFileResourcesResponse) ProtoMessage() {} -func (x *GetReplicateConfigurationResponse) ProtoReflect() protoreflect.Message { +func (x *ListFileResourcesResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[213] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15861,36 +15930,38 @@ func (x *GetReplicateConfigurationResponse) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use GetReplicateConfigurationResponse.ProtoReflect.Descriptor instead. -func (*GetReplicateConfigurationResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ListFileResourcesResponse.ProtoReflect.Descriptor instead. +func (*ListFileResourcesResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{213} } -func (x *GetReplicateConfigurationResponse) GetStatus() *commonpb.Status { +func (x *ListFileResourcesResponse) GetStatus() *commonpb.Status { if x != nil { return x.Status } return nil } -func (x *GetReplicateConfigurationResponse) GetConfiguration() *commonpb.ReplicateConfiguration { +func (x *ListFileResourcesResponse) GetResources() []*FileResourceInfo { if x != nil { - return x.Configuration + return x.Resources } return nil } -type GetReplicateInfoRequest struct { +// User Tag Management +type AddUserTagsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SourceClusterId string `protobuf:"bytes,1,opt,name=source_cluster_id,json=sourceClusterId,proto3" json:"source_cluster_id,omitempty"` - TargetPchannel string `protobuf:"bytes,2,opt,name=target_pchannel,json=targetPchannel,proto3" json:"target_pchannel,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + Tags map[string]string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } -func (x *GetReplicateInfoRequest) Reset() { - *x = GetReplicateInfoRequest{} +func (x *AddUserTagsRequest) Reset() { + *x = AddUserTagsRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[214] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15898,13 +15969,13 @@ func (x *GetReplicateInfoRequest) Reset() { } } -func (x *GetReplicateInfoRequest) String() string { +func (x *AddUserTagsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetReplicateInfoRequest) ProtoMessage() {} +func (*AddUserTagsRequest) ProtoMessage() {} -func (x *GetReplicateInfoRequest) ProtoReflect() protoreflect.Message { +func (x *AddUserTagsRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[214] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15916,39 +15987,44 @@ func (x *GetReplicateInfoRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetReplicateInfoRequest.ProtoReflect.Descriptor instead. -func (*GetReplicateInfoRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use AddUserTagsRequest.ProtoReflect.Descriptor instead. +func (*AddUserTagsRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{214} } -func (x *GetReplicateInfoRequest) GetSourceClusterId() string { +func (x *AddUserTagsRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.SourceClusterId + return x.Base } - return "" + return nil } -func (x *GetReplicateInfoRequest) GetTargetPchannel() string { +func (x *AddUserTagsRequest) GetUserName() string { if x != nil { - return x.TargetPchannel + return x.UserName } return "" } -type GetReplicateInfoResponse struct { +func (x *AddUserTagsRequest) GetTags() map[string]string { + if x != nil { + return x.Tags + } + return nil +} + +type DeleteUserTagsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Checkpoint *commonpb.ReplicateCheckpoint `protobuf:"bytes,1,opt,name=checkpoint,proto3" json:"checkpoint,omitempty"` - // salvage_checkpoint is captured during force promote. - // It represents the last synced position from the old primary. - // Data salvage tools can use this to dump unsynchronized messages from the old primary. - SalvageCheckpoint *commonpb.ReplicateCheckpoint `protobuf:"bytes,2,opt,name=salvage_checkpoint,json=salvageCheckpoint,proto3" json:"salvage_checkpoint,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + TagKeys []string `protobuf:"bytes,3,rep,name=tag_keys,json=tagKeys,proto3" json:"tag_keys,omitempty"` } -func (x *GetReplicateInfoResponse) Reset() { - *x = GetReplicateInfoResponse{} +func (x *DeleteUserTagsRequest) Reset() { + *x = DeleteUserTagsRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[215] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15956,13 +16032,13 @@ func (x *GetReplicateInfoResponse) Reset() { } } -func (x *GetReplicateInfoResponse) String() string { +func (x *DeleteUserTagsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetReplicateInfoResponse) ProtoMessage() {} +func (*DeleteUserTagsRequest) ProtoMessage() {} -func (x *GetReplicateInfoResponse) ProtoReflect() protoreflect.Message { +func (x *DeleteUserTagsRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[215] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -15974,36 +16050,43 @@ func (x *GetReplicateInfoResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetReplicateInfoResponse.ProtoReflect.Descriptor instead. -func (*GetReplicateInfoResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use DeleteUserTagsRequest.ProtoReflect.Descriptor instead. +func (*DeleteUserTagsRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{215} } -func (x *GetReplicateInfoResponse) GetCheckpoint() *commonpb.ReplicateCheckpoint { +func (x *DeleteUserTagsRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Checkpoint + return x.Base } return nil } -func (x *GetReplicateInfoResponse) GetSalvageCheckpoint() *commonpb.ReplicateCheckpoint { +func (x *DeleteUserTagsRequest) GetUserName() string { if x != nil { - return x.SalvageCheckpoint + return x.UserName + } + return "" +} + +func (x *DeleteUserTagsRequest) GetTagKeys() []string { + if x != nil { + return x.TagKeys } return nil } -type ReplicateMessage struct { +type GetUserTagsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SourceClusterId string `protobuf:"bytes,1,opt,name=source_cluster_id,json=sourceClusterId,proto3" json:"source_cluster_id,omitempty"` // the cluster id of source cluster - Message *commonpb.ImmutableMessage `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` // replicate message to be sent + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` } -func (x *ReplicateMessage) Reset() { - *x = ReplicateMessage{} +func (x *GetUserTagsRequest) Reset() { + *x = GetUserTagsRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[216] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16011,13 +16094,13 @@ func (x *ReplicateMessage) Reset() { } } -func (x *ReplicateMessage) String() string { +func (x *GetUserTagsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ReplicateMessage) ProtoMessage() {} +func (*GetUserTagsRequest) ProtoMessage() {} -func (x *ReplicateMessage) ProtoReflect() protoreflect.Message { +func (x *GetUserTagsRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[216] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16029,38 +16112,36 @@ func (x *ReplicateMessage) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ReplicateMessage.ProtoReflect.Descriptor instead. -func (*ReplicateMessage) Descriptor() ([]byte, []int) { +// Deprecated: Use GetUserTagsRequest.ProtoReflect.Descriptor instead. +func (*GetUserTagsRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{216} } -func (x *ReplicateMessage) GetSourceClusterId() string { +func (x *GetUserTagsRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.SourceClusterId + return x.Base } - return "" + return nil } -func (x *ReplicateMessage) GetMessage() *commonpb.ImmutableMessage { +func (x *GetUserTagsRequest) GetUserName() string { if x != nil { - return x.Message + return x.UserName } - return nil + return "" } -type ReplicateRequest struct { +type GetUserTagsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Types that are assignable to Request: - // - // *ReplicateRequest_ReplicateMessage - Request isReplicateRequest_Request `protobuf_oneof:"request"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Tags map[string]string `protobuf:"bytes,2,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } -func (x *ReplicateRequest) Reset() { - *x = ReplicateRequest{} +func (x *GetUserTagsResponse) Reset() { + *x = GetUserTagsResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[217] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16068,13 +16149,13 @@ func (x *ReplicateRequest) Reset() { } } -func (x *ReplicateRequest) String() string { +func (x *GetUserTagsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ReplicateRequest) ProtoMessage() {} +func (*GetUserTagsResponse) ProtoMessage() {} -func (x *ReplicateRequest) ProtoReflect() protoreflect.Message { +func (x *GetUserTagsResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[217] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16086,45 +16167,37 @@ func (x *ReplicateRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ReplicateRequest.ProtoReflect.Descriptor instead. -func (*ReplicateRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetUserTagsResponse.ProtoReflect.Descriptor instead. +func (*GetUserTagsResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{217} } -func (m *ReplicateRequest) GetRequest() isReplicateRequest_Request { - if m != nil { - return m.Request +func (x *GetUserTagsResponse) GetStatus() *commonpb.Status { + if x != nil { + return x.Status } return nil } -func (x *ReplicateRequest) GetReplicateMessage() *ReplicateMessage { - if x, ok := x.GetRequest().(*ReplicateRequest_ReplicateMessage); ok { - return x.ReplicateMessage +func (x *GetUserTagsResponse) GetTags() map[string]string { + if x != nil { + return x.Tags } return nil } -type isReplicateRequest_Request interface { - isReplicateRequest_Request() -} - -type ReplicateRequest_ReplicateMessage struct { - ReplicateMessage *ReplicateMessage `protobuf:"bytes,1,opt,name=replicate_message,json=replicateMessage,proto3,oneof"` -} - -func (*ReplicateRequest_ReplicateMessage) isReplicateRequest_Request() {} - -type ReplicateConfirmedMessageInfo struct { +type ListUsersWithTagRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ConfirmedTimeTick uint64 `protobuf:"varint,1,opt,name=confirmed_time_tick,json=confirmedTimeTick,proto3" json:"confirmed_time_tick,omitempty"` // the source time tick of the last confirmed message that persisted into target WAL. + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + TagKey string `protobuf:"bytes,2,opt,name=tag_key,json=tagKey,proto3" json:"tag_key,omitempty"` + TagValue string `protobuf:"bytes,3,opt,name=tag_value,json=tagValue,proto3" json:"tag_value,omitempty"` } -func (x *ReplicateConfirmedMessageInfo) Reset() { - *x = ReplicateConfirmedMessageInfo{} +func (x *ListUsersWithTagRequest) Reset() { + *x = ListUsersWithTagRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[218] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16132,13 +16205,13 @@ func (x *ReplicateConfirmedMessageInfo) Reset() { } } -func (x *ReplicateConfirmedMessageInfo) String() string { +func (x *ListUsersWithTagRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ReplicateConfirmedMessageInfo) ProtoMessage() {} +func (*ListUsersWithTagRequest) ProtoMessage() {} -func (x *ReplicateConfirmedMessageInfo) ProtoReflect() protoreflect.Message { +func (x *ListUsersWithTagRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[218] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16150,31 +16223,43 @@ func (x *ReplicateConfirmedMessageInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ReplicateConfirmedMessageInfo.ProtoReflect.Descriptor instead. -func (*ReplicateConfirmedMessageInfo) Descriptor() ([]byte, []int) { +// Deprecated: Use ListUsersWithTagRequest.ProtoReflect.Descriptor instead. +func (*ListUsersWithTagRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{218} } -func (x *ReplicateConfirmedMessageInfo) GetConfirmedTimeTick() uint64 { +func (x *ListUsersWithTagRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.ConfirmedTimeTick + return x.Base } - return 0 + return nil } -type ReplicateResponse struct { +func (x *ListUsersWithTagRequest) GetTagKey() string { + if x != nil { + return x.TagKey + } + return "" +} + +func (x *ListUsersWithTagRequest) GetTagValue() string { + if x != nil { + return x.TagValue + } + return "" +} + +type ListUsersWithTagResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Types that are assignable to Response: - // - // *ReplicateResponse_ReplicateConfirmedMessageInfo - Response isReplicateResponse_Response `protobuf_oneof:"response"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + UserNames []string `protobuf:"bytes,2,rep,name=user_names,json=userNames,proto3" json:"user_names,omitempty"` } -func (x *ReplicateResponse) Reset() { - *x = ReplicateResponse{} +func (x *ListUsersWithTagResponse) Reset() { + *x = ListUsersWithTagResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[219] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16182,13 +16267,13 @@ func (x *ReplicateResponse) Reset() { } } -func (x *ReplicateResponse) String() string { +func (x *ListUsersWithTagResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ReplicateResponse) ProtoMessage() {} +func (*ListUsersWithTagResponse) ProtoMessage() {} -func (x *ReplicateResponse) ProtoReflect() protoreflect.Message { +func (x *ListUsersWithTagResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[219] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16200,53 +16285,44 @@ func (x *ReplicateResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ReplicateResponse.ProtoReflect.Descriptor instead. -func (*ReplicateResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ListUsersWithTagResponse.ProtoReflect.Descriptor instead. +func (*ListUsersWithTagResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{219} } -func (m *ReplicateResponse) GetResponse() isReplicateResponse_Response { - if m != nil { - return m.Response +func (x *ListUsersWithTagResponse) GetStatus() *commonpb.Status { + if x != nil { + return x.Status } return nil } -func (x *ReplicateResponse) GetReplicateConfirmedMessageInfo() *ReplicateConfirmedMessageInfo { - if x, ok := x.GetResponse().(*ReplicateResponse_ReplicateConfirmedMessageInfo); ok { - return x.ReplicateConfirmedMessageInfo +func (x *ListUsersWithTagResponse) GetUserNames() []string { + if x != nil { + return x.UserNames } return nil } -type isReplicateResponse_Response interface { - isReplicateResponse_Response() -} - -type ReplicateResponse_ReplicateConfirmedMessageInfo struct { - ReplicateConfirmedMessageInfo *ReplicateConfirmedMessageInfo `protobuf:"bytes,1,opt,name=replicate_confirmed_message_info,json=replicateConfirmedMessageInfo,proto3,oneof"` -} - -func (*ReplicateResponse_ReplicateConfirmedMessageInfo) isReplicateResponse_Response() {} - -// DumpMessagesRequest is used to dump messages from a WAL range for data salvage. -// -// Usage: After force failover, use GetReplicateInfo to get the salvage_checkpoint, -// then call DumpMessages with the checkpoint's message_id and timetick to retrieve -// unsynchronized messages from the old primary cluster. -type DumpMessagesRequest struct { +// Row Policy Management +type CreateRowPolicyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Pchannel string `protobuf:"bytes,1,opt,name=pchannel,proto3" json:"pchannel,omitempty"` // Physical channel name to dump from (required) - StartMessageId *commonpb.MessageID `protobuf:"bytes,2,opt,name=start_message_id,json=startMessageId,proto3" json:"start_message_id,omitempty"` // Start position in WAL (required) - typically from salvage_checkpoint.message_id - StartTimetick uint64 `protobuf:"varint,3,opt,name=start_timetick,json=startTimetick,proto3" json:"start_timetick,omitempty"` // Start timetick filter (optional) - only dump messages with timetick >= start_timetick, typically from salvage_checkpoint.time_tick - EndTimetick uint64 `protobuf:"varint,4,opt,name=end_timetick,json=endTimetick,proto3" json:"end_timetick,omitempty"` // End timetick filter (optional) - only dump messages with timetick <= end_timetick, 0 means no limit (stream until cancelled) + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + PolicyName string `protobuf:"bytes,4,opt,name=policy_name,json=policyName,proto3" json:"policy_name,omitempty"` + Actions []RowPolicyAction `protobuf:"varint,5,rep,packed,name=actions,proto3,enum=milvus.proto.milvus.RowPolicyAction" json:"actions,omitempty"` // actions this policy controls + Roles []string `protobuf:"bytes,6,rep,name=roles,proto3" json:"roles,omitempty"` // role names that this policy applies to + UsingExpr string `protobuf:"bytes,7,opt,name=using_expr,json=usingExpr,proto3" json:"using_expr,omitempty"` // expression for filtering data during queries + CheckExpr string `protobuf:"bytes,8,opt,name=check_expr,json=checkExpr,proto3" json:"check_expr,omitempty"` // expression for validating data during mutations + Description string `protobuf:"bytes,9,opt,name=description,proto3" json:"description,omitempty"` // optional description } -func (x *DumpMessagesRequest) Reset() { - *x = DumpMessagesRequest{} +func (x *CreateRowPolicyRequest) Reset() { + *x = CreateRowPolicyRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[220] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16254,13 +16330,13 @@ func (x *DumpMessagesRequest) Reset() { } } -func (x *DumpMessagesRequest) String() string { +func (x *CreateRowPolicyRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DumpMessagesRequest) ProtoMessage() {} +func (*CreateRowPolicyRequest) ProtoMessage() {} -func (x *DumpMessagesRequest) ProtoReflect() protoreflect.Message { +func (x *CreateRowPolicyRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[220] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16272,55 +16348,87 @@ func (x *DumpMessagesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DumpMessagesRequest.ProtoReflect.Descriptor instead. -func (*DumpMessagesRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use CreateRowPolicyRequest.ProtoReflect.Descriptor instead. +func (*CreateRowPolicyRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{220} } -func (x *DumpMessagesRequest) GetPchannel() string { +func (x *CreateRowPolicyRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Pchannel + return x.Base + } + return nil +} + +func (x *CreateRowPolicyRequest) GetDbName() string { + if x != nil { + return x.DbName } return "" } -func (x *DumpMessagesRequest) GetStartMessageId() *commonpb.MessageID { +func (x *CreateRowPolicyRequest) GetCollectionName() string { if x != nil { - return x.StartMessageId + return x.CollectionName + } + return "" +} + +func (x *CreateRowPolicyRequest) GetPolicyName() string { + if x != nil { + return x.PolicyName + } + return "" +} + +func (x *CreateRowPolicyRequest) GetActions() []RowPolicyAction { + if x != nil { + return x.Actions } return nil } -func (x *DumpMessagesRequest) GetStartTimetick() uint64 { +func (x *CreateRowPolicyRequest) GetRoles() []string { if x != nil { - return x.StartTimetick + return x.Roles } - return 0 + return nil } -func (x *DumpMessagesRequest) GetEndTimetick() uint64 { +func (x *CreateRowPolicyRequest) GetUsingExpr() string { if x != nil { - return x.EndTimetick + return x.UsingExpr } - return 0 + return "" } -// DumpMessagesResponse streams messages from the WAL. -// Each response contains either an error status or a message (never both). -type DumpMessagesResponse struct { +func (x *CreateRowPolicyRequest) GetCheckExpr() string { + if x != nil { + return x.CheckExpr + } + return "" +} + +func (x *CreateRowPolicyRequest) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +type DropRowPolicyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Types that are assignable to Response: - // - // *DumpMessagesResponse_Status - // *DumpMessagesResponse_Message - Response isDumpMessagesResponse_Response `protobuf_oneof:"response"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + PolicyName string `protobuf:"bytes,4,opt,name=policy_name,json=policyName,proto3" json:"policy_name,omitempty"` } -func (x *DumpMessagesResponse) Reset() { - *x = DumpMessagesResponse{} +func (x *DropRowPolicyRequest) Reset() { + *x = DropRowPolicyRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[221] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16328,13 +16436,13 @@ func (x *DumpMessagesResponse) Reset() { } } -func (x *DumpMessagesResponse) String() string { +func (x *DropRowPolicyRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DumpMessagesResponse) ProtoMessage() {} +func (*DropRowPolicyRequest) ProtoMessage() {} -func (x *DumpMessagesResponse) ProtoReflect() protoreflect.Message { +func (x *DropRowPolicyRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[221] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16346,63 +16454,51 @@ func (x *DumpMessagesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DumpMessagesResponse.ProtoReflect.Descriptor instead. -func (*DumpMessagesResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use DropRowPolicyRequest.ProtoReflect.Descriptor instead. +func (*DropRowPolicyRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{221} } -func (m *DumpMessagesResponse) GetResponse() isDumpMessagesResponse_Response { - if m != nil { - return m.Response +func (x *DropRowPolicyRequest) GetBase() *commonpb.MsgBase { + if x != nil { + return x.Base } return nil } -func (x *DumpMessagesResponse) GetStatus() *commonpb.Status { - if x, ok := x.GetResponse().(*DumpMessagesResponse_Status); ok { - return x.Status +func (x *DropRowPolicyRequest) GetDbName() string { + if x != nil { + return x.DbName } - return nil + return "" } -func (x *DumpMessagesResponse) GetMessage() *commonpb.ImmutableMessage { - if x, ok := x.GetResponse().(*DumpMessagesResponse_Message); ok { - return x.Message +func (x *DropRowPolicyRequest) GetCollectionName() string { + if x != nil { + return x.CollectionName } - return nil -} - -type isDumpMessagesResponse_Response interface { - isDumpMessagesResponse_Response() -} - -type DumpMessagesResponse_Status struct { - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3,oneof"` // Error status (only sent when an error occurs) + return "" } -type DumpMessagesResponse_Message struct { - Message *commonpb.ImmutableMessage `protobuf:"bytes,2,opt,name=message,proto3,oneof"` // A dumped message (filtered to exclude system messages) +func (x *DropRowPolicyRequest) GetPolicyName() string { + if x != nil { + return x.PolicyName + } + return "" } -func (*DumpMessagesResponse_Status) isDumpMessagesResponse_Response() {} - -func (*DumpMessagesResponse_Message) isDumpMessagesResponse_Response() {} - -// Truncate collection in milvus -type TruncateCollectionRequest struct { +type ListRowPoliciesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Not useful for now - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - // The unique collection name in milvus.(Required) - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` } -func (x *TruncateCollectionRequest) Reset() { - *x = TruncateCollectionRequest{} +func (x *ListRowPoliciesRequest) Reset() { + *x = ListRowPoliciesRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[222] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16410,13 +16506,13 @@ func (x *TruncateCollectionRequest) Reset() { } } -func (x *TruncateCollectionRequest) String() string { +func (x *ListRowPoliciesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TruncateCollectionRequest) ProtoMessage() {} +func (*ListRowPoliciesRequest) ProtoMessage() {} -func (x *TruncateCollectionRequest) ProtoReflect() protoreflect.Message { +func (x *ListRowPoliciesRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[222] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16428,42 +16524,48 @@ func (x *TruncateCollectionRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TruncateCollectionRequest.ProtoReflect.Descriptor instead. -func (*TruncateCollectionRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ListRowPoliciesRequest.ProtoReflect.Descriptor instead. +func (*ListRowPoliciesRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{222} } -func (x *TruncateCollectionRequest) GetBase() *commonpb.MsgBase { +func (x *ListRowPoliciesRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *TruncateCollectionRequest) GetDbName() string { +func (x *ListRowPoliciesRequest) GetDbName() string { if x != nil { return x.DbName } return "" } -func (x *TruncateCollectionRequest) GetCollectionName() string { +func (x *ListRowPoliciesRequest) GetCollectionName() string { if x != nil { return x.CollectionName } return "" } -type TruncateCollectionResponse struct { +type RowPolicy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + PolicyName string `protobuf:"bytes,1,opt,name=policy_name,json=policyName,proto3" json:"policy_name,omitempty"` + Actions []RowPolicyAction `protobuf:"varint,2,rep,packed,name=actions,proto3,enum=milvus.proto.milvus.RowPolicyAction" json:"actions,omitempty"` + Roles []string `protobuf:"bytes,3,rep,name=roles,proto3" json:"roles,omitempty"` + UsingExpr string `protobuf:"bytes,4,opt,name=using_expr,json=usingExpr,proto3" json:"using_expr,omitempty"` + CheckExpr string `protobuf:"bytes,5,opt,name=check_expr,json=checkExpr,proto3" json:"check_expr,omitempty"` + Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"` + CreatedAt int64 `protobuf:"varint,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` } -func (x *TruncateCollectionResponse) Reset() { - *x = TruncateCollectionResponse{} +func (x *RowPolicy) Reset() { + *x = RowPolicy{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[223] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16471,13 +16573,13 @@ func (x *TruncateCollectionResponse) Reset() { } } -func (x *TruncateCollectionResponse) String() string { +func (x *RowPolicy) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TruncateCollectionResponse) ProtoMessage() {} +func (*RowPolicy) ProtoMessage() {} -func (x *TruncateCollectionResponse) ProtoReflect() protoreflect.Message { +func (x *RowPolicy) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[223] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16489,31 +16591,73 @@ func (x *TruncateCollectionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TruncateCollectionResponse.ProtoReflect.Descriptor instead. -func (*TruncateCollectionResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use RowPolicy.ProtoReflect.Descriptor instead. +func (*RowPolicy) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{223} } -func (x *TruncateCollectionResponse) GetStatus() *commonpb.Status { +func (x *RowPolicy) GetPolicyName() string { if x != nil { - return x.Status + return x.PolicyName } - return nil + return "" } -type ComputePhraseMatchSlopRequest struct { +func (x *RowPolicy) GetActions() []RowPolicyAction { + if x != nil { + return x.Actions + } + return nil +} + +func (x *RowPolicy) GetRoles() []string { + if x != nil { + return x.Roles + } + return nil +} + +func (x *RowPolicy) GetUsingExpr() string { + if x != nil { + return x.UsingExpr + } + return "" +} + +func (x *RowPolicy) GetCheckExpr() string { + if x != nil { + return x.CheckExpr + } + return "" +} + +func (x *RowPolicy) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *RowPolicy) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +type ListRowPoliciesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - AnalyzerParams string `protobuf:"bytes,2,opt,name=analyzer_params,json=analyzerParams,proto3" json:"analyzer_params,omitempty"` - QueryText string `protobuf:"bytes,3,opt,name=query_text,json=queryText,proto3" json:"query_text,omitempty"` - DataTexts []string `protobuf:"bytes,4,rep,name=data_texts,json=dataTexts,proto3" json:"data_texts,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Policies []*RowPolicy `protobuf:"bytes,2,rep,name=policies,proto3" json:"policies,omitempty"` + DbName string `protobuf:"bytes,3,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` } -func (x *ComputePhraseMatchSlopRequest) Reset() { - *x = ComputePhraseMatchSlopRequest{} +func (x *ListRowPoliciesResponse) Reset() { + *x = ListRowPoliciesResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[224] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16521,13 +16665,13 @@ func (x *ComputePhraseMatchSlopRequest) Reset() { } } -func (x *ComputePhraseMatchSlopRequest) String() string { +func (x *ListRowPoliciesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ComputePhraseMatchSlopRequest) ProtoMessage() {} +func (*ListRowPoliciesResponse) ProtoMessage() {} -func (x *ComputePhraseMatchSlopRequest) ProtoReflect() protoreflect.Message { +func (x *ListRowPoliciesResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[224] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16539,51 +16683,52 @@ func (x *ComputePhraseMatchSlopRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ComputePhraseMatchSlopRequest.ProtoReflect.Descriptor instead. -func (*ComputePhraseMatchSlopRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ListRowPoliciesResponse.ProtoReflect.Descriptor instead. +func (*ListRowPoliciesResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{224} } -func (x *ComputePhraseMatchSlopRequest) GetBase() *commonpb.MsgBase { +func (x *ListRowPoliciesResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Base + return x.Status } return nil } -func (x *ComputePhraseMatchSlopRequest) GetAnalyzerParams() string { +func (x *ListRowPoliciesResponse) GetPolicies() []*RowPolicy { if x != nil { - return x.AnalyzerParams + return x.Policies } - return "" + return nil } -func (x *ComputePhraseMatchSlopRequest) GetQueryText() string { +func (x *ListRowPoliciesResponse) GetDbName() string { if x != nil { - return x.QueryText + return x.DbName } return "" } -func (x *ComputePhraseMatchSlopRequest) GetDataTexts() []string { +func (x *ListRowPoliciesResponse) GetCollectionName() string { if x != nil { - return x.DataTexts + return x.CollectionName } - return nil + return "" } -type ComputePhraseMatchSlopResponse struct { +type UpdateReplicateConfigurationRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - IsMatch []bool `protobuf:"varint,2,rep,packed,name=is_match,json=isMatch,proto3" json:"is_match,omitempty"` - Slops []int64 `protobuf:"varint,3,rep,packed,name=slops,proto3" json:"slops,omitempty"` + ReplicateConfiguration *commonpb.ReplicateConfiguration `protobuf:"bytes,1,opt,name=replicate_configuration,json=replicateConfiguration,proto3" json:"replicate_configuration,omitempty"` + // If true, the current cluster will be promoted to primary forcefully. + // This is intended for failover scenarios. + ForcePromote bool `protobuf:"varint,2,opt,name=force_promote,json=forcePromote,proto3" json:"force_promote,omitempty"` } -func (x *ComputePhraseMatchSlopResponse) Reset() { - *x = ComputePhraseMatchSlopResponse{} +func (x *UpdateReplicateConfigurationRequest) Reset() { + *x = UpdateReplicateConfigurationRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[225] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16591,13 +16736,13 @@ func (x *ComputePhraseMatchSlopResponse) Reset() { } } -func (x *ComputePhraseMatchSlopResponse) String() string { +func (x *UpdateReplicateConfigurationRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ComputePhraseMatchSlopResponse) ProtoMessage() {} +func (*UpdateReplicateConfigurationRequest) ProtoMessage() {} -func (x *ComputePhraseMatchSlopResponse) ProtoReflect() protoreflect.Message { +func (x *UpdateReplicateConfigurationRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[225] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16609,48 +16754,33 @@ func (x *ComputePhraseMatchSlopResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ComputePhraseMatchSlopResponse.ProtoReflect.Descriptor instead. -func (*ComputePhraseMatchSlopResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use UpdateReplicateConfigurationRequest.ProtoReflect.Descriptor instead. +func (*UpdateReplicateConfigurationRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{225} } -func (x *ComputePhraseMatchSlopResponse) GetStatus() *commonpb.Status { - if x != nil { - return x.Status - } - return nil -} - -func (x *ComputePhraseMatchSlopResponse) GetIsMatch() []bool { +func (x *UpdateReplicateConfigurationRequest) GetReplicateConfiguration() *commonpb.ReplicateConfiguration { if x != nil { - return x.IsMatch + return x.ReplicateConfiguration } return nil } -func (x *ComputePhraseMatchSlopResponse) GetSlops() []int64 { +func (x *UpdateReplicateConfigurationRequest) GetForcePromote() bool { if x != nil { - return x.Slops + return x.ForcePromote } - return nil + return false } -// Snapshot Management -type CreateSnapshotRequest struct { +type GetReplicateConfigurationRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // user-defined snapshot name - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` // user-defined snapshot description - DbName string `protobuf:"bytes,4,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` // db name - CollectionName string `protobuf:"bytes,5,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // collection name - CompactionProtectionSeconds int64 `protobuf:"varint,6,opt,name=compaction_protection_seconds,json=compactionProtectionSeconds,proto3" json:"compaction_protection_seconds,omitempty"` // duration in seconds to protect referenced segments from compaction, 0 = no protection } -func (x *CreateSnapshotRequest) Reset() { - *x = CreateSnapshotRequest{} +func (x *GetReplicateConfigurationRequest) Reset() { + *x = GetReplicateConfigurationRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[226] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16658,13 +16788,13 @@ func (x *CreateSnapshotRequest) Reset() { } } -func (x *CreateSnapshotRequest) String() string { +func (x *GetReplicateConfigurationRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateSnapshotRequest) ProtoMessage() {} +func (*GetReplicateConfigurationRequest) ProtoMessage() {} -func (x *CreateSnapshotRequest) ProtoReflect() protoreflect.Message { +func (x *GetReplicateConfigurationRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[226] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16676,66 +16806,22 @@ func (x *CreateSnapshotRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateSnapshotRequest.ProtoReflect.Descriptor instead. -func (*CreateSnapshotRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetReplicateConfigurationRequest.ProtoReflect.Descriptor instead. +func (*GetReplicateConfigurationRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{226} } -func (x *CreateSnapshotRequest) GetBase() *commonpb.MsgBase { - if x != nil { - return x.Base - } - return nil -} - -func (x *CreateSnapshotRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *CreateSnapshotRequest) GetDescription() string { - if x != nil { - return x.Description - } - return "" -} - -func (x *CreateSnapshotRequest) GetDbName() string { - if x != nil { - return x.DbName - } - return "" -} - -func (x *CreateSnapshotRequest) GetCollectionName() string { - if x != nil { - return x.CollectionName - } - return "" -} - -func (x *CreateSnapshotRequest) GetCompactionProtectionSeconds() int64 { - if x != nil { - return x.CompactionProtectionSeconds - } - return 0 -} - -type DropSnapshotRequest struct { +type GetReplicateConfigurationResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // snapshot name - DbName string `protobuf:"bytes,3,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` // db name - CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // collection name + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Configuration *commonpb.ReplicateConfiguration `protobuf:"bytes,2,opt,name=configuration,proto3" json:"configuration,omitempty"` } -func (x *DropSnapshotRequest) Reset() { - *x = DropSnapshotRequest{} +func (x *GetReplicateConfigurationResponse) Reset() { + *x = GetReplicateConfigurationResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[227] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16743,13 +16829,13 @@ func (x *DropSnapshotRequest) Reset() { } } -func (x *DropSnapshotRequest) String() string { +func (x *GetReplicateConfigurationResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DropSnapshotRequest) ProtoMessage() {} +func (*GetReplicateConfigurationResponse) ProtoMessage() {} -func (x *DropSnapshotRequest) ProtoReflect() protoreflect.Message { +func (x *GetReplicateConfigurationResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[227] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16761,51 +16847,36 @@ func (x *DropSnapshotRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DropSnapshotRequest.ProtoReflect.Descriptor instead. -func (*DropSnapshotRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetReplicateConfigurationResponse.ProtoReflect.Descriptor instead. +func (*GetReplicateConfigurationResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{227} } -func (x *DropSnapshotRequest) GetBase() *commonpb.MsgBase { +func (x *GetReplicateConfigurationResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Base + return x.Status } return nil } -func (x *DropSnapshotRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *DropSnapshotRequest) GetDbName() string { - if x != nil { - return x.DbName - } - return "" -} - -func (x *DropSnapshotRequest) GetCollectionName() string { +func (x *GetReplicateConfigurationResponse) GetConfiguration() *commonpb.ReplicateConfiguration { if x != nil { - return x.CollectionName + return x.Configuration } - return "" + return nil } -type ListSnapshotsRequest struct { +type GetReplicateInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` // db name - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // collection name, if collection_name is empty, it will list all snapshots. + SourceClusterId string `protobuf:"bytes,1,opt,name=source_cluster_id,json=sourceClusterId,proto3" json:"source_cluster_id,omitempty"` + TargetPchannel string `protobuf:"bytes,2,opt,name=target_pchannel,json=targetPchannel,proto3" json:"target_pchannel,omitempty"` } -func (x *ListSnapshotsRequest) Reset() { - *x = ListSnapshotsRequest{} +func (x *GetReplicateInfoRequest) Reset() { + *x = GetReplicateInfoRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[228] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16813,13 +16884,13 @@ func (x *ListSnapshotsRequest) Reset() { } } -func (x *ListSnapshotsRequest) String() string { +func (x *GetReplicateInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListSnapshotsRequest) ProtoMessage() {} +func (*GetReplicateInfoRequest) ProtoMessage() {} -func (x *ListSnapshotsRequest) ProtoReflect() protoreflect.Message { +func (x *GetReplicateInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[228] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16831,45 +16902,39 @@ func (x *ListSnapshotsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListSnapshotsRequest.ProtoReflect.Descriptor instead. -func (*ListSnapshotsRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetReplicateInfoRequest.ProtoReflect.Descriptor instead. +func (*GetReplicateInfoRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{228} } -func (x *ListSnapshotsRequest) GetBase() *commonpb.MsgBase { - if x != nil { - return x.Base - } - return nil -} - -func (x *ListSnapshotsRequest) GetDbName() string { +func (x *GetReplicateInfoRequest) GetSourceClusterId() string { if x != nil { - return x.DbName + return x.SourceClusterId } return "" } -func (x *ListSnapshotsRequest) GetCollectionName() string { +func (x *GetReplicateInfoRequest) GetTargetPchannel() string { if x != nil { - return x.CollectionName + return x.TargetPchannel } return "" } -// return all snapshots for the given collection -// Note: list snapshots is not a privilege check operation -type ListSnapshotsResponse struct { +type GetReplicateInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Snapshots []string `protobuf:"bytes,2,rep,name=snapshots,proto3" json:"snapshots,omitempty"` + Checkpoint *commonpb.ReplicateCheckpoint `protobuf:"bytes,1,opt,name=checkpoint,proto3" json:"checkpoint,omitempty"` + // salvage_checkpoint is captured during force promote. + // It represents the last synced position from the old primary. + // Data salvage tools can use this to dump unsynchronized messages from the old primary. + SalvageCheckpoint *commonpb.ReplicateCheckpoint `protobuf:"bytes,2,opt,name=salvage_checkpoint,json=salvageCheckpoint,proto3" json:"salvage_checkpoint,omitempty"` } -func (x *ListSnapshotsResponse) Reset() { - *x = ListSnapshotsResponse{} +func (x *GetReplicateInfoResponse) Reset() { + *x = GetReplicateInfoResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[229] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16877,13 +16942,13 @@ func (x *ListSnapshotsResponse) Reset() { } } -func (x *ListSnapshotsResponse) String() string { +func (x *GetReplicateInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListSnapshotsResponse) ProtoMessage() {} +func (*GetReplicateInfoResponse) ProtoMessage() {} -func (x *ListSnapshotsResponse) ProtoReflect() protoreflect.Message { +func (x *GetReplicateInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[229] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16895,38 +16960,36 @@ func (x *ListSnapshotsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListSnapshotsResponse.ProtoReflect.Descriptor instead. -func (*ListSnapshotsResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetReplicateInfoResponse.ProtoReflect.Descriptor instead. +func (*GetReplicateInfoResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{229} } -func (x *ListSnapshotsResponse) GetStatus() *commonpb.Status { +func (x *GetReplicateInfoResponse) GetCheckpoint() *commonpb.ReplicateCheckpoint { if x != nil { - return x.Status + return x.Checkpoint } return nil } -func (x *ListSnapshotsResponse) GetSnapshots() []string { +func (x *GetReplicateInfoResponse) GetSalvageCheckpoint() *commonpb.ReplicateCheckpoint { if x != nil { - return x.Snapshots + return x.SalvageCheckpoint } return nil } -type DescribeSnapshotRequest struct { +type ReplicateMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // snapshot name - DbName string `protobuf:"bytes,3,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` // db name - CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // collection name + SourceClusterId string `protobuf:"bytes,1,opt,name=source_cluster_id,json=sourceClusterId,proto3" json:"source_cluster_id,omitempty"` // the cluster id of source cluster + Message *commonpb.ImmutableMessage `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` // replicate message to be sent } -func (x *DescribeSnapshotRequest) Reset() { - *x = DescribeSnapshotRequest{} +func (x *ReplicateMessage) Reset() { + *x = ReplicateMessage{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[230] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16934,13 +16997,13 @@ func (x *DescribeSnapshotRequest) Reset() { } } -func (x *DescribeSnapshotRequest) String() string { +func (x *ReplicateMessage) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DescribeSnapshotRequest) ProtoMessage() {} +func (*ReplicateMessage) ProtoMessage() {} -func (x *DescribeSnapshotRequest) ProtoReflect() protoreflect.Message { +func (x *ReplicateMessage) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[230] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -16952,55 +17015,38 @@ func (x *DescribeSnapshotRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DescribeSnapshotRequest.ProtoReflect.Descriptor instead. -func (*DescribeSnapshotRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ReplicateMessage.ProtoReflect.Descriptor instead. +func (*ReplicateMessage) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{230} } -func (x *DescribeSnapshotRequest) GetBase() *commonpb.MsgBase { - if x != nil { - return x.Base - } - return nil -} - -func (x *DescribeSnapshotRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *DescribeSnapshotRequest) GetDbName() string { +func (x *ReplicateMessage) GetSourceClusterId() string { if x != nil { - return x.DbName + return x.SourceClusterId } return "" } -func (x *DescribeSnapshotRequest) GetCollectionName() string { +func (x *ReplicateMessage) GetMessage() *commonpb.ImmutableMessage { if x != nil { - return x.CollectionName + return x.Message } - return "" + return nil } -type DescribeSnapshotResponse struct { +type ReplicateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // user-defined snapshot name - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` // user-defined snapshot description - CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // collection name - PartitionNames []string `protobuf:"bytes,5,rep,name=partition_names,json=partitionNames,proto3" json:"partition_names,omitempty"` // the partition names in the snapshot. - CreateTs int64 `protobuf:"varint,6,opt,name=create_ts,json=createTs,proto3" json:"create_ts,omitempty"` // create timestamp, all stream data before this timestamp will be flushed to segment list. - S3Location string `protobuf:"bytes,7,opt,name=s3_location,json=s3Location,proto3" json:"s3_location,omitempty"` // s3 location of the snapshot meta file if snapshot is exported to s3. + // Types that are assignable to Request: + // + // *ReplicateRequest_ReplicateMessage + Request isReplicateRequest_Request `protobuf_oneof:"request"` } -func (x *DescribeSnapshotResponse) Reset() { - *x = DescribeSnapshotResponse{} +func (x *ReplicateRequest) Reset() { + *x = ReplicateRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[231] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -17008,13 +17054,13 @@ func (x *DescribeSnapshotResponse) Reset() { } } -func (x *DescribeSnapshotResponse) String() string { +func (x *ReplicateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DescribeSnapshotResponse) ProtoMessage() {} +func (*ReplicateRequest) ProtoMessage() {} -func (x *DescribeSnapshotResponse) ProtoReflect() protoreflect.Message { +func (x *ReplicateRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[231] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -17026,77 +17072,45 @@ func (x *DescribeSnapshotResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DescribeSnapshotResponse.ProtoReflect.Descriptor instead. -func (*DescribeSnapshotResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ReplicateRequest.ProtoReflect.Descriptor instead. +func (*ReplicateRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{231} } -func (x *DescribeSnapshotResponse) GetStatus() *commonpb.Status { - if x != nil { - return x.Status +func (m *ReplicateRequest) GetRequest() isReplicateRequest_Request { + if m != nil { + return m.Request } return nil } -func (x *DescribeSnapshotResponse) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *DescribeSnapshotResponse) GetDescription() string { - if x != nil { - return x.Description - } - return "" -} - -func (x *DescribeSnapshotResponse) GetCollectionName() string { - if x != nil { - return x.CollectionName - } - return "" -} - -func (x *DescribeSnapshotResponse) GetPartitionNames() []string { - if x != nil { - return x.PartitionNames +func (x *ReplicateRequest) GetReplicateMessage() *ReplicateMessage { + if x, ok := x.GetRequest().(*ReplicateRequest_ReplicateMessage); ok { + return x.ReplicateMessage } return nil } -func (x *DescribeSnapshotResponse) GetCreateTs() int64 { - if x != nil { - return x.CreateTs - } - return 0 +type isReplicateRequest_Request interface { + isReplicateRequest_Request() } -func (x *DescribeSnapshotResponse) GetS3Location() string { - if x != nil { - return x.S3Location - } - return "" +type ReplicateRequest_ReplicateMessage struct { + ReplicateMessage *ReplicateMessage `protobuf:"bytes,1,opt,name=replicate_message,json=replicateMessage,proto3,oneof"` } -// restore a snapshot to a new collection -type RestoreSnapshotRequest struct { +func (*ReplicateRequest_ReplicateMessage) isReplicateRequest_Request() {} + +type ReplicateConfirmedMessageInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // snapshot name - DbName string `protobuf:"bytes,3,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` // source db name (where the snapshot lives) - CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // source collection name (where the snapshot lives) - RewriteData bool `protobuf:"varint,5,opt,name=rewrite_data,json=rewriteData,proto3" json:"rewrite_data,omitempty"` // if true, use import to rewrite data to collection - TargetDbName string `protobuf:"bytes,6,opt,name=target_db_name,json=targetDbName,proto3" json:"target_db_name,omitempty"` // target db name (where to restore to) - TargetCollectionName string `protobuf:"bytes,7,opt,name=target_collection_name,json=targetCollectionName,proto3" json:"target_collection_name,omitempty"` // target collection name (must not exist) + ConfirmedTimeTick uint64 `protobuf:"varint,1,opt,name=confirmed_time_tick,json=confirmedTimeTick,proto3" json:"confirmed_time_tick,omitempty"` // the source time tick of the last confirmed message that persisted into target WAL. } -func (x *RestoreSnapshotRequest) Reset() { - *x = RestoreSnapshotRequest{} +func (x *ReplicateConfirmedMessageInfo) Reset() { + *x = ReplicateConfirmedMessageInfo{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[232] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -17104,13 +17118,13 @@ func (x *RestoreSnapshotRequest) Reset() { } } -func (x *RestoreSnapshotRequest) String() string { +func (x *ReplicateConfirmedMessageInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RestoreSnapshotRequest) ProtoMessage() {} +func (*ReplicateConfirmedMessageInfo) ProtoMessage() {} -func (x *RestoreSnapshotRequest) ProtoReflect() protoreflect.Message { +func (x *ReplicateConfirmedMessageInfo) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[232] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -17122,86 +17136,118 @@ func (x *RestoreSnapshotRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RestoreSnapshotRequest.ProtoReflect.Descriptor instead. -func (*RestoreSnapshotRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ReplicateConfirmedMessageInfo.ProtoReflect.Descriptor instead. +func (*ReplicateConfirmedMessageInfo) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{232} } -func (x *RestoreSnapshotRequest) GetBase() *commonpb.MsgBase { +func (x *ReplicateConfirmedMessageInfo) GetConfirmedTimeTick() uint64 { if x != nil { - return x.Base + return x.ConfirmedTimeTick } - return nil + return 0 } -func (x *RestoreSnapshotRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} +type ReplicateResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *RestoreSnapshotRequest) GetDbName() string { - if x != nil { - return x.DbName - } - return "" + // Types that are assignable to Response: + // + // *ReplicateResponse_ReplicateConfirmedMessageInfo + Response isReplicateResponse_Response `protobuf_oneof:"response"` } -func (x *RestoreSnapshotRequest) GetCollectionName() string { - if x != nil { - return x.CollectionName +func (x *ReplicateResponse) Reset() { + *x = ReplicateResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[233] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *RestoreSnapshotRequest) GetRewriteData() bool { - if x != nil { - return x.RewriteData - } - return false +func (x *ReplicateResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *RestoreSnapshotRequest) GetTargetDbName() string { - if x != nil { - return x.TargetDbName +func (*ReplicateResponse) ProtoMessage() {} + +func (x *ReplicateResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[233] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (x *RestoreSnapshotRequest) GetTargetCollectionName() string { - if x != nil { - return x.TargetCollectionName +// Deprecated: Use ReplicateResponse.ProtoReflect.Descriptor instead. +func (*ReplicateResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{233} +} + +func (m *ReplicateResponse) GetResponse() isReplicateResponse_Response { + if m != nil { + return m.Response } - return "" + return nil } -type RestoreSnapshotResponse struct { +func (x *ReplicateResponse) GetReplicateConfirmedMessageInfo() *ReplicateConfirmedMessageInfo { + if x, ok := x.GetResponse().(*ReplicateResponse_ReplicateConfirmedMessageInfo); ok { + return x.ReplicateConfirmedMessageInfo + } + return nil +} + +type isReplicateResponse_Response interface { + isReplicateResponse_Response() +} + +type ReplicateResponse_ReplicateConfirmedMessageInfo struct { + ReplicateConfirmedMessageInfo *ReplicateConfirmedMessageInfo `protobuf:"bytes,1,opt,name=replicate_confirmed_message_info,json=replicateConfirmedMessageInfo,proto3,oneof"` +} + +func (*ReplicateResponse_ReplicateConfirmedMessageInfo) isReplicateResponse_Response() {} + +// DumpMessagesRequest is used to dump messages from a WAL range for data salvage. +// +// Usage: After force failover, use GetReplicateInfo to get the salvage_checkpoint, +// then call DumpMessages with the checkpoint's message_id and timetick to retrieve +// unsynchronized messages from the old primary cluster. +type DumpMessagesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - JobId int64 `protobuf:"varint,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` + Pchannel string `protobuf:"bytes,1,opt,name=pchannel,proto3" json:"pchannel,omitempty"` // Physical channel name to dump from (required) + StartMessageId *commonpb.MessageID `protobuf:"bytes,2,opt,name=start_message_id,json=startMessageId,proto3" json:"start_message_id,omitempty"` // Start position in WAL (required) - typically from salvage_checkpoint.message_id + StartTimetick uint64 `protobuf:"varint,3,opt,name=start_timetick,json=startTimetick,proto3" json:"start_timetick,omitempty"` // Start timetick filter (optional) - only dump messages with timetick >= start_timetick, typically from salvage_checkpoint.time_tick + EndTimetick uint64 `protobuf:"varint,4,opt,name=end_timetick,json=endTimetick,proto3" json:"end_timetick,omitempty"` // End timetick filter (optional) - only dump messages with timetick <= end_timetick, 0 means no limit (stream until cancelled) } -func (x *RestoreSnapshotResponse) Reset() { - *x = RestoreSnapshotResponse{} +func (x *DumpMessagesRequest) Reset() { + *x = DumpMessagesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[233] + mi := &file_milvus_proto_msgTypes[234] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RestoreSnapshotResponse) String() string { +func (x *DumpMessagesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RestoreSnapshotResponse) ProtoMessage() {} +func (*DumpMessagesRequest) ProtoMessage() {} -func (x *RestoreSnapshotResponse) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[233] +func (x *DumpMessagesRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[234] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17212,58 +17258,70 @@ func (x *RestoreSnapshotResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RestoreSnapshotResponse.ProtoReflect.Descriptor instead. -func (*RestoreSnapshotResponse) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{233} +// Deprecated: Use DumpMessagesRequest.ProtoReflect.Descriptor instead. +func (*DumpMessagesRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{234} } -func (x *RestoreSnapshotResponse) GetStatus() *commonpb.Status { +func (x *DumpMessagesRequest) GetPchannel() string { if x != nil { - return x.Status + return x.Pchannel + } + return "" +} + +func (x *DumpMessagesRequest) GetStartMessageId() *commonpb.MessageID { + if x != nil { + return x.StartMessageId } return nil } -func (x *RestoreSnapshotResponse) GetJobId() int64 { +func (x *DumpMessagesRequest) GetStartTimetick() uint64 { if x != nil { - return x.JobId + return x.StartTimetick } return 0 } -type RestoreSnapshotInfo struct { +func (x *DumpMessagesRequest) GetEndTimetick() uint64 { + if x != nil { + return x.EndTimetick + } + return 0 +} + +// DumpMessagesResponse streams messages from the WAL. +// Each response contains either an error status or a message (never both). +type DumpMessagesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - JobId int64 `protobuf:"varint,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` - SnapshotName string `protobuf:"bytes,2,opt,name=snapshot_name,json=snapshotName,proto3" json:"snapshot_name,omitempty"` - DbName string `protobuf:"bytes,3,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - State RestoreSnapshotState `protobuf:"varint,5,opt,name=state,proto3,enum=milvus.proto.milvus.RestoreSnapshotState" json:"state,omitempty"` - Progress int32 `protobuf:"varint,6,opt,name=progress,proto3" json:"progress,omitempty"` // progress percentage (0-100) - Reason string `protobuf:"bytes,7,opt,name=reason,proto3" json:"reason,omitempty"` - StartTime uint64 `protobuf:"varint,8,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // start timestamp in milliseconds - TimeCost uint64 `protobuf:"varint,9,opt,name=time_cost,json=timeCost,proto3" json:"time_cost,omitempty"` // time cost in milliseconds + // Types that are assignable to Response: + // + // *DumpMessagesResponse_Status + // *DumpMessagesResponse_Message + Response isDumpMessagesResponse_Response `protobuf_oneof:"response"` } -func (x *RestoreSnapshotInfo) Reset() { - *x = RestoreSnapshotInfo{} +func (x *DumpMessagesResponse) Reset() { + *x = DumpMessagesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[234] + mi := &file_milvus_proto_msgTypes[235] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RestoreSnapshotInfo) String() string { +func (x *DumpMessagesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RestoreSnapshotInfo) ProtoMessage() {} +func (*DumpMessagesResponse) ProtoMessage() {} -func (x *RestoreSnapshotInfo) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[234] +func (x *DumpMessagesResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[235] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17274,100 +17332,78 @@ func (x *RestoreSnapshotInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RestoreSnapshotInfo.ProtoReflect.Descriptor instead. -func (*RestoreSnapshotInfo) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{234} -} - -func (x *RestoreSnapshotInfo) GetJobId() int64 { - if x != nil { - return x.JobId - } - return 0 +// Deprecated: Use DumpMessagesResponse.ProtoReflect.Descriptor instead. +func (*DumpMessagesResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{235} } -func (x *RestoreSnapshotInfo) GetSnapshotName() string { - if x != nil { - return x.SnapshotName +func (m *DumpMessagesResponse) GetResponse() isDumpMessagesResponse_Response { + if m != nil { + return m.Response } - return "" + return nil } -func (x *RestoreSnapshotInfo) GetDbName() string { - if x != nil { - return x.DbName +func (x *DumpMessagesResponse) GetStatus() *commonpb.Status { + if x, ok := x.GetResponse().(*DumpMessagesResponse_Status); ok { + return x.Status } - return "" + return nil } -func (x *RestoreSnapshotInfo) GetCollectionName() string { - if x != nil { - return x.CollectionName +func (x *DumpMessagesResponse) GetMessage() *commonpb.ImmutableMessage { + if x, ok := x.GetResponse().(*DumpMessagesResponse_Message); ok { + return x.Message } - return "" + return nil } -func (x *RestoreSnapshotInfo) GetState() RestoreSnapshotState { - if x != nil { - return x.State - } - return RestoreSnapshotState_RestoreSnapshotNone +type isDumpMessagesResponse_Response interface { + isDumpMessagesResponse_Response() } -func (x *RestoreSnapshotInfo) GetProgress() int32 { - if x != nil { - return x.Progress - } - return 0 +type DumpMessagesResponse_Status struct { + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3,oneof"` // Error status (only sent when an error occurs) } -func (x *RestoreSnapshotInfo) GetReason() string { - if x != nil { - return x.Reason - } - return "" +type DumpMessagesResponse_Message struct { + Message *commonpb.ImmutableMessage `protobuf:"bytes,2,opt,name=message,proto3,oneof"` // A dumped message (filtered to exclude system messages) } -func (x *RestoreSnapshotInfo) GetStartTime() uint64 { - if x != nil { - return x.StartTime - } - return 0 -} +func (*DumpMessagesResponse_Status) isDumpMessagesResponse_Response() {} -func (x *RestoreSnapshotInfo) GetTimeCost() uint64 { - if x != nil { - return x.TimeCost - } - return 0 -} +func (*DumpMessagesResponse_Message) isDumpMessagesResponse_Response() {} -type GetRestoreSnapshotStateRequest struct { +// Truncate collection in milvus +type TruncateCollectionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - JobId int64 `protobuf:"varint,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // restore job ID + // Not useful for now + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + // The unique collection name in milvus.(Required) + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` } -func (x *GetRestoreSnapshotStateRequest) Reset() { - *x = GetRestoreSnapshotStateRequest{} +func (x *TruncateCollectionRequest) Reset() { + *x = TruncateCollectionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[235] + mi := &file_milvus_proto_msgTypes[236] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetRestoreSnapshotStateRequest) String() string { +func (x *TruncateCollectionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetRestoreSnapshotStateRequest) ProtoMessage() {} +func (*TruncateCollectionRequest) ProtoMessage() {} -func (x *GetRestoreSnapshotStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[235] +func (x *TruncateCollectionRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[236] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17378,51 +17414,57 @@ func (x *GetRestoreSnapshotStateRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetRestoreSnapshotStateRequest.ProtoReflect.Descriptor instead. -func (*GetRestoreSnapshotStateRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{235} +// Deprecated: Use TruncateCollectionRequest.ProtoReflect.Descriptor instead. +func (*TruncateCollectionRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{236} } -func (x *GetRestoreSnapshotStateRequest) GetBase() *commonpb.MsgBase { +func (x *TruncateCollectionRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *GetRestoreSnapshotStateRequest) GetJobId() int64 { +func (x *TruncateCollectionRequest) GetDbName() string { if x != nil { - return x.JobId + return x.DbName } - return 0 + return "" } -type GetRestoreSnapshotStateResponse struct { +func (x *TruncateCollectionRequest) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" +} + +type TruncateCollectionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Info *RestoreSnapshotInfo `protobuf:"bytes,2,opt,name=info,proto3" json:"info,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` } -func (x *GetRestoreSnapshotStateResponse) Reset() { - *x = GetRestoreSnapshotStateResponse{} +func (x *TruncateCollectionResponse) Reset() { + *x = TruncateCollectionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[236] + mi := &file_milvus_proto_msgTypes[237] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetRestoreSnapshotStateResponse) String() string { +func (x *TruncateCollectionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetRestoreSnapshotStateResponse) ProtoMessage() {} +func (*TruncateCollectionResponse) ProtoMessage() {} -func (x *GetRestoreSnapshotStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[236] +func (x *TruncateCollectionResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[237] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17433,52 +17475,46 @@ func (x *GetRestoreSnapshotStateResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetRestoreSnapshotStateResponse.ProtoReflect.Descriptor instead. -func (*GetRestoreSnapshotStateResponse) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{236} +// Deprecated: Use TruncateCollectionResponse.ProtoReflect.Descriptor instead. +func (*TruncateCollectionResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{237} } -func (x *GetRestoreSnapshotStateResponse) GetStatus() *commonpb.Status { +func (x *TruncateCollectionResponse) GetStatus() *commonpb.Status { if x != nil { return x.Status } return nil } -func (x *GetRestoreSnapshotStateResponse) GetInfo() *RestoreSnapshotInfo { - if x != nil { - return x.Info - } - return nil -} - -type ListRestoreSnapshotJobsRequest struct { +type ComputePhraseMatchSlopRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + AnalyzerParams string `protobuf:"bytes,2,opt,name=analyzer_params,json=analyzerParams,proto3" json:"analyzer_params,omitempty"` + QueryText string `protobuf:"bytes,3,opt,name=query_text,json=queryText,proto3" json:"query_text,omitempty"` + DataTexts []string `protobuf:"bytes,4,rep,name=data_texts,json=dataTexts,proto3" json:"data_texts,omitempty"` } -func (x *ListRestoreSnapshotJobsRequest) Reset() { - *x = ListRestoreSnapshotJobsRequest{} +func (x *ComputePhraseMatchSlopRequest) Reset() { + *x = ComputePhraseMatchSlopRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[237] + mi := &file_milvus_proto_msgTypes[238] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ListRestoreSnapshotJobsRequest) String() string { +func (x *ComputePhraseMatchSlopRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListRestoreSnapshotJobsRequest) ProtoMessage() {} +func (*ComputePhraseMatchSlopRequest) ProtoMessage() {} -func (x *ListRestoreSnapshotJobsRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[237] +func (x *ComputePhraseMatchSlopRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[238] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17489,58 +17525,66 @@ func (x *ListRestoreSnapshotJobsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListRestoreSnapshotJobsRequest.ProtoReflect.Descriptor instead. -func (*ListRestoreSnapshotJobsRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{237} +// Deprecated: Use ComputePhraseMatchSlopRequest.ProtoReflect.Descriptor instead. +func (*ComputePhraseMatchSlopRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{238} } -func (x *ListRestoreSnapshotJobsRequest) GetBase() *commonpb.MsgBase { +func (x *ComputePhraseMatchSlopRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *ListRestoreSnapshotJobsRequest) GetDbName() string { +func (x *ComputePhraseMatchSlopRequest) GetAnalyzerParams() string { if x != nil { - return x.DbName + return x.AnalyzerParams } return "" } -func (x *ListRestoreSnapshotJobsRequest) GetCollectionName() string { +func (x *ComputePhraseMatchSlopRequest) GetQueryText() string { if x != nil { - return x.CollectionName + return x.QueryText } return "" } -type ListRestoreSnapshotJobsResponse struct { +func (x *ComputePhraseMatchSlopRequest) GetDataTexts() []string { + if x != nil { + return x.DataTexts + } + return nil +} + +type ComputePhraseMatchSlopResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Jobs []*RestoreSnapshotInfo `protobuf:"bytes,2,rep,name=jobs,proto3" json:"jobs,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + IsMatch []bool `protobuf:"varint,2,rep,packed,name=is_match,json=isMatch,proto3" json:"is_match,omitempty"` + Slops []int64 `protobuf:"varint,3,rep,packed,name=slops,proto3" json:"slops,omitempty"` } -func (x *ListRestoreSnapshotJobsResponse) Reset() { - *x = ListRestoreSnapshotJobsResponse{} +func (x *ComputePhraseMatchSlopResponse) Reset() { + *x = ComputePhraseMatchSlopResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[238] + mi := &file_milvus_proto_msgTypes[239] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ListRestoreSnapshotJobsResponse) String() string { +func (x *ComputePhraseMatchSlopResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListRestoreSnapshotJobsResponse) ProtoMessage() {} +func (*ComputePhraseMatchSlopResponse) ProtoMessage() {} -func (x *ListRestoreSnapshotJobsResponse) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[238] +func (x *ComputePhraseMatchSlopResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[239] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17551,54 +17595,63 @@ func (x *ListRestoreSnapshotJobsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListRestoreSnapshotJobsResponse.ProtoReflect.Descriptor instead. -func (*ListRestoreSnapshotJobsResponse) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{238} +// Deprecated: Use ComputePhraseMatchSlopResponse.ProtoReflect.Descriptor instead. +func (*ComputePhraseMatchSlopResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{239} } -func (x *ListRestoreSnapshotJobsResponse) GetStatus() *commonpb.Status { +func (x *ComputePhraseMatchSlopResponse) GetStatus() *commonpb.Status { if x != nil { return x.Status } return nil } -func (x *ListRestoreSnapshotJobsResponse) GetJobs() []*RestoreSnapshotInfo { +func (x *ComputePhraseMatchSlopResponse) GetIsMatch() []bool { if x != nil { - return x.Jobs + return x.IsMatch } return nil } -type PinSnapshotDataRequest struct { +func (x *ComputePhraseMatchSlopResponse) GetSlops() []int64 { + if x != nil { + return x.Slops + } + return nil +} + +// Snapshot Management +type CreateSnapshotRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // snapshot name - DbName string `protobuf:"bytes,3,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` // database name - CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // collection name - TtlSeconds int64 `protobuf:"varint,5,opt,name=ttl_seconds,json=ttlSeconds,proto3" json:"ttl_seconds,omitempty"` // optional: 0 = no expiry, >0 = auto-expire in seconds + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // user-defined snapshot name + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` // user-defined snapshot description + DbName string `protobuf:"bytes,4,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` // db name + CollectionName string `protobuf:"bytes,5,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // collection name + CompactionProtectionSeconds int64 `protobuf:"varint,6,opt,name=compaction_protection_seconds,json=compactionProtectionSeconds,proto3" json:"compaction_protection_seconds,omitempty"` // duration in seconds to protect referenced segments from compaction, 0 = no protection } -func (x *PinSnapshotDataRequest) Reset() { - *x = PinSnapshotDataRequest{} +func (x *CreateSnapshotRequest) Reset() { + *x = CreateSnapshotRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[239] + mi := &file_milvus_proto_msgTypes[240] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PinSnapshotDataRequest) String() string { +func (x *CreateSnapshotRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PinSnapshotDataRequest) ProtoMessage() {} +func (*CreateSnapshotRequest) ProtoMessage() {} -func (x *PinSnapshotDataRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[239] +func (x *CreateSnapshotRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[240] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17609,72 +17662,81 @@ func (x *PinSnapshotDataRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PinSnapshotDataRequest.ProtoReflect.Descriptor instead. -func (*PinSnapshotDataRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{239} +// Deprecated: Use CreateSnapshotRequest.ProtoReflect.Descriptor instead. +func (*CreateSnapshotRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{240} } -func (x *PinSnapshotDataRequest) GetBase() *commonpb.MsgBase { +func (x *CreateSnapshotRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *PinSnapshotDataRequest) GetName() string { +func (x *CreateSnapshotRequest) GetName() string { if x != nil { return x.Name } return "" } -func (x *PinSnapshotDataRequest) GetDbName() string { +func (x *CreateSnapshotRequest) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *CreateSnapshotRequest) GetDbName() string { if x != nil { return x.DbName } return "" } -func (x *PinSnapshotDataRequest) GetCollectionName() string { +func (x *CreateSnapshotRequest) GetCollectionName() string { if x != nil { return x.CollectionName } return "" } -func (x *PinSnapshotDataRequest) GetTtlSeconds() int64 { +func (x *CreateSnapshotRequest) GetCompactionProtectionSeconds() int64 { if x != nil { - return x.TtlSeconds + return x.CompactionProtectionSeconds } return 0 } -type PinSnapshotDataResponse struct { +type DropSnapshotRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - PinId int64 `protobuf:"varint,2,opt,name=pin_id,json=pinId,proto3" json:"pin_id,omitempty"` // allocated pin ID for Unpin + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // snapshot name + DbName string `protobuf:"bytes,3,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` // db name + CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // collection name } -func (x *PinSnapshotDataResponse) Reset() { - *x = PinSnapshotDataResponse{} +func (x *DropSnapshotRequest) Reset() { + *x = DropSnapshotRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[240] + mi := &file_milvus_proto_msgTypes[241] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PinSnapshotDataResponse) String() string { +func (x *DropSnapshotRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PinSnapshotDataResponse) ProtoMessage() {} +func (*DropSnapshotRequest) ProtoMessage() {} -func (x *PinSnapshotDataResponse) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[240] +func (x *DropSnapshotRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[241] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17685,51 +17747,66 @@ func (x *PinSnapshotDataResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PinSnapshotDataResponse.ProtoReflect.Descriptor instead. -func (*PinSnapshotDataResponse) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{240} +// Deprecated: Use DropSnapshotRequest.ProtoReflect.Descriptor instead. +func (*DropSnapshotRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{241} } -func (x *PinSnapshotDataResponse) GetStatus() *commonpb.Status { +func (x *DropSnapshotRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Status + return x.Base } return nil } -func (x *PinSnapshotDataResponse) GetPinId() int64 { +func (x *DropSnapshotRequest) GetName() string { if x != nil { - return x.PinId + return x.Name } - return 0 + return "" } -type UnpinSnapshotDataRequest struct { +func (x *DropSnapshotRequest) GetDbName() string { + if x != nil { + return x.DbName + } + return "" +} + +func (x *DropSnapshotRequest) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" +} + +type ListSnapshotsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - PinId int64 `protobuf:"varint,2,opt,name=pin_id,json=pinId,proto3" json:"pin_id,omitempty"` // pin ID from PinSnapshotData response + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` // db name + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // collection name, if collection_name is empty, it will list all snapshots. } -func (x *UnpinSnapshotDataRequest) Reset() { - *x = UnpinSnapshotDataRequest{} +func (x *ListSnapshotsRequest) Reset() { + *x = ListSnapshotsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[241] + mi := &file_milvus_proto_msgTypes[242] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UnpinSnapshotDataRequest) String() string { +func (x *ListSnapshotsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UnpinSnapshotDataRequest) ProtoMessage() {} +func (*ListSnapshotsRequest) ProtoMessage() {} -func (x *UnpinSnapshotDataRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[241] +func (x *ListSnapshotsRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[242] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17740,54 +17817,60 @@ func (x *UnpinSnapshotDataRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UnpinSnapshotDataRequest.ProtoReflect.Descriptor instead. -func (*UnpinSnapshotDataRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{241} +// Deprecated: Use ListSnapshotsRequest.ProtoReflect.Descriptor instead. +func (*ListSnapshotsRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{242} } -func (x *UnpinSnapshotDataRequest) GetBase() *commonpb.MsgBase { +func (x *ListSnapshotsRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *UnpinSnapshotDataRequest) GetPinId() int64 { +func (x *ListSnapshotsRequest) GetDbName() string { if x != nil { - return x.PinId + return x.DbName } - return 0 + return "" } -type AlterCollectionSchemaRequest struct { +func (x *ListSnapshotsRequest) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" +} + +// return all snapshots for the given collection +// Note: list snapshots is not a privilege check operation +type ListSnapshotsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - CollectionID int64 `protobuf:"varint,4,opt,name=collectionID,proto3" json:"collectionID,omitempty"` - Action *AlterCollectionSchemaRequest_Action `protobuf:"bytes,5,opt,name=action,proto3" json:"action,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Snapshots []string `protobuf:"bytes,2,rep,name=snapshots,proto3" json:"snapshots,omitempty"` } -func (x *AlterCollectionSchemaRequest) Reset() { - *x = AlterCollectionSchemaRequest{} +func (x *ListSnapshotsResponse) Reset() { + *x = ListSnapshotsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[242] + mi := &file_milvus_proto_msgTypes[243] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AlterCollectionSchemaRequest) String() string { +func (x *ListSnapshotsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AlterCollectionSchemaRequest) ProtoMessage() {} +func (*ListSnapshotsResponse) ProtoMessage() {} -func (x *AlterCollectionSchemaRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[242] +func (x *ListSnapshotsResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[243] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17798,72 +17881,53 @@ func (x *AlterCollectionSchemaRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AlterCollectionSchemaRequest.ProtoReflect.Descriptor instead. -func (*AlterCollectionSchemaRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{242} +// Deprecated: Use ListSnapshotsResponse.ProtoReflect.Descriptor instead. +func (*ListSnapshotsResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{243} } -func (x *AlterCollectionSchemaRequest) GetBase() *commonpb.MsgBase { +func (x *ListSnapshotsResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Base + return x.Status } return nil } -func (x *AlterCollectionSchemaRequest) GetDbName() string { - if x != nil { - return x.DbName - } - return "" -} - -func (x *AlterCollectionSchemaRequest) GetCollectionName() string { - if x != nil { - return x.CollectionName - } - return "" -} - -func (x *AlterCollectionSchemaRequest) GetCollectionID() int64 { - if x != nil { - return x.CollectionID - } - return 0 -} - -func (x *AlterCollectionSchemaRequest) GetAction() *AlterCollectionSchemaRequest_Action { +func (x *ListSnapshotsResponse) GetSnapshots() []string { if x != nil { - return x.Action + return x.Snapshots } return nil } -type AlterCollectionSchemaResponse struct { +type DescribeSnapshotRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AlterStatus *commonpb.Status `protobuf:"bytes,1,opt,name=alter_status,json=alterStatus,proto3" json:"alter_status,omitempty"` - IndexStatus *commonpb.Status `protobuf:"bytes,2,opt,name=index_status,json=indexStatus,proto3" json:"index_status,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // snapshot name + DbName string `protobuf:"bytes,3,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` // db name + CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // collection name } -func (x *AlterCollectionSchemaResponse) Reset() { - *x = AlterCollectionSchemaResponse{} +func (x *DescribeSnapshotRequest) Reset() { + *x = DescribeSnapshotRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[243] + mi := &file_milvus_proto_msgTypes[244] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AlterCollectionSchemaResponse) String() string { +func (x *DescribeSnapshotRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AlterCollectionSchemaResponse) ProtoMessage() {} +func (*DescribeSnapshotRequest) ProtoMessage() {} -func (x *AlterCollectionSchemaResponse) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[243] +func (x *DescribeSnapshotRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[244] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17874,54 +17938,70 @@ func (x *AlterCollectionSchemaResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AlterCollectionSchemaResponse.ProtoReflect.Descriptor instead. -func (*AlterCollectionSchemaResponse) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{243} +// Deprecated: Use DescribeSnapshotRequest.ProtoReflect.Descriptor instead. +func (*DescribeSnapshotRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{244} } -func (x *AlterCollectionSchemaResponse) GetAlterStatus() *commonpb.Status { +func (x *DescribeSnapshotRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.AlterStatus + return x.Base } return nil } -func (x *AlterCollectionSchemaResponse) GetIndexStatus() *commonpb.Status { +func (x *DescribeSnapshotRequest) GetName() string { if x != nil { - return x.IndexStatus + return x.Name } - return nil + return "" } -type BatchUpdateManifestRequest struct { +func (x *DescribeSnapshotRequest) GetDbName() string { + if x != nil { + return x.DbName + } + return "" +} + +func (x *DescribeSnapshotRequest) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" +} + +type DescribeSnapshotResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` - FieldNames []string `protobuf:"bytes,4,rep,name=field_names,json=fieldNames,proto3" json:"field_names,omitempty"` // work as hint for now - Items []*BatchUpdateManifestItem `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // user-defined snapshot name + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` // user-defined snapshot description + CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // collection name + PartitionNames []string `protobuf:"bytes,5,rep,name=partition_names,json=partitionNames,proto3" json:"partition_names,omitempty"` // the partition names in the snapshot. + CreateTs int64 `protobuf:"varint,6,opt,name=create_ts,json=createTs,proto3" json:"create_ts,omitempty"` // create timestamp, all stream data before this timestamp will be flushed to segment list. + S3Location string `protobuf:"bytes,7,opt,name=s3_location,json=s3Location,proto3" json:"s3_location,omitempty"` // s3 location of the snapshot meta file if snapshot is exported to s3. } -func (x *BatchUpdateManifestRequest) Reset() { - *x = BatchUpdateManifestRequest{} +func (x *DescribeSnapshotResponse) Reset() { + *x = DescribeSnapshotResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[244] + mi := &file_milvus_proto_msgTypes[245] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BatchUpdateManifestRequest) String() string { +func (x *DescribeSnapshotResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BatchUpdateManifestRequest) ProtoMessage() {} +func (*DescribeSnapshotResponse) ProtoMessage() {} -func (x *BatchUpdateManifestRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[244] +func (x *DescribeSnapshotResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[245] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17932,117 +18012,77 @@ func (x *BatchUpdateManifestRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BatchUpdateManifestRequest.ProtoReflect.Descriptor instead. -func (*BatchUpdateManifestRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{244} +// Deprecated: Use DescribeSnapshotResponse.ProtoReflect.Descriptor instead. +func (*DescribeSnapshotResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{245} } -func (x *BatchUpdateManifestRequest) GetBase() *commonpb.MsgBase { +func (x *DescribeSnapshotResponse) GetStatus() *commonpb.Status { if x != nil { - return x.Base + return x.Status } return nil } -func (x *BatchUpdateManifestRequest) GetDbName() string { +func (x *DescribeSnapshotResponse) GetName() string { if x != nil { - return x.DbName + return x.Name } return "" } -func (x *BatchUpdateManifestRequest) GetCollectionName() string { +func (x *DescribeSnapshotResponse) GetDescription() string { if x != nil { - return x.CollectionName + return x.Description } return "" } -func (x *BatchUpdateManifestRequest) GetFieldNames() []string { +func (x *DescribeSnapshotResponse) GetCollectionName() string { if x != nil { - return x.FieldNames + return x.CollectionName } - return nil + return "" } -func (x *BatchUpdateManifestRequest) GetItems() []*BatchUpdateManifestItem { +func (x *DescribeSnapshotResponse) GetPartitionNames() []string { if x != nil { - return x.Items + return x.PartitionNames } return nil } -type BatchUpdateManifestItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SegmentId int64 `protobuf:"varint,1,opt,name=segment_id,json=segmentId,proto3" json:"segment_id,omitempty"` - ManifestVersion int64 `protobuf:"varint,2,opt,name=manifest_version,json=manifestVersion,proto3" json:"manifest_version,omitempty"` -} - -func (x *BatchUpdateManifestItem) Reset() { - *x = BatchUpdateManifestItem{} - if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[245] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BatchUpdateManifestItem) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BatchUpdateManifestItem) ProtoMessage() {} - -func (x *BatchUpdateManifestItem) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[245] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BatchUpdateManifestItem.ProtoReflect.Descriptor instead. -func (*BatchUpdateManifestItem) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{245} -} - -func (x *BatchUpdateManifestItem) GetSegmentId() int64 { +func (x *DescribeSnapshotResponse) GetCreateTs() int64 { if x != nil { - return x.SegmentId + return x.CreateTs } return 0 } -func (x *BatchUpdateManifestItem) GetManifestVersion() int64 { +func (x *DescribeSnapshotResponse) GetS3Location() string { if x != nil { - return x.ManifestVersion + return x.S3Location } - return 0 + return "" } -// Client Heartbeat -type ClientHeartbeatRequest struct { +// restore a snapshot to a new collection +type RestoreSnapshotRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ClientInfo *commonpb.ClientInfo `protobuf:"bytes,1,opt,name=client_info,json=clientInfo,proto3" json:"client_info,omitempty"` - ReportTimestamp int64 `protobuf:"varint,2,opt,name=report_timestamp,json=reportTimestamp,proto3" json:"report_timestamp,omitempty"` - Metrics []*commonpb.OperationMetrics `protobuf:"bytes,3,rep,name=metrics,proto3" json:"metrics,omitempty"` - CommandReplies []*commonpb.CommandReply `protobuf:"bytes,4,rep,name=command_replies,json=commandReplies,proto3" json:"command_replies,omitempty"` - ConfigHash string `protobuf:"bytes,5,opt,name=config_hash,json=configHash,proto3" json:"config_hash,omitempty"` - LastCommandTimestamp int64 `protobuf:"varint,6,opt,name=last_command_timestamp,json=lastCommandTimestamp,proto3" json:"last_command_timestamp,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // snapshot name + DbName string `protobuf:"bytes,3,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` // source db name (where the snapshot lives) + CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // source collection name (where the snapshot lives) + RewriteData bool `protobuf:"varint,5,opt,name=rewrite_data,json=rewriteData,proto3" json:"rewrite_data,omitempty"` // if true, use import to rewrite data to collection + TargetDbName string `protobuf:"bytes,6,opt,name=target_db_name,json=targetDbName,proto3" json:"target_db_name,omitempty"` // target db name (where to restore to) + TargetCollectionName string `protobuf:"bytes,7,opt,name=target_collection_name,json=targetCollectionName,proto3" json:"target_collection_name,omitempty"` // target collection name (must not exist) } -func (x *ClientHeartbeatRequest) Reset() { - *x = ClientHeartbeatRequest{} +func (x *RestoreSnapshotRequest) Reset() { + *x = RestoreSnapshotRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[246] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18050,13 +18090,13 @@ func (x *ClientHeartbeatRequest) Reset() { } } -func (x *ClientHeartbeatRequest) String() string { +func (x *RestoreSnapshotRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientHeartbeatRequest) ProtoMessage() {} +func (*RestoreSnapshotRequest) ProtoMessage() {} -func (x *ClientHeartbeatRequest) ProtoReflect() protoreflect.Message { +func (x *RestoreSnapshotRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[246] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18068,65 +18108,71 @@ func (x *ClientHeartbeatRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ClientHeartbeatRequest.ProtoReflect.Descriptor instead. -func (*ClientHeartbeatRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use RestoreSnapshotRequest.ProtoReflect.Descriptor instead. +func (*RestoreSnapshotRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{246} } -func (x *ClientHeartbeatRequest) GetClientInfo() *commonpb.ClientInfo { +func (x *RestoreSnapshotRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.ClientInfo + return x.Base } return nil } -func (x *ClientHeartbeatRequest) GetReportTimestamp() int64 { +func (x *RestoreSnapshotRequest) GetName() string { if x != nil { - return x.ReportTimestamp + return x.Name } - return 0 + return "" } -func (x *ClientHeartbeatRequest) GetMetrics() []*commonpb.OperationMetrics { +func (x *RestoreSnapshotRequest) GetDbName() string { if x != nil { - return x.Metrics + return x.DbName } - return nil + return "" } -func (x *ClientHeartbeatRequest) GetCommandReplies() []*commonpb.CommandReply { +func (x *RestoreSnapshotRequest) GetCollectionName() string { if x != nil { - return x.CommandReplies + return x.CollectionName } - return nil + return "" } -func (x *ClientHeartbeatRequest) GetConfigHash() string { +func (x *RestoreSnapshotRequest) GetRewriteData() bool { if x != nil { - return x.ConfigHash + return x.RewriteData + } + return false +} + +func (x *RestoreSnapshotRequest) GetTargetDbName() string { + if x != nil { + return x.TargetDbName } return "" } -func (x *ClientHeartbeatRequest) GetLastCommandTimestamp() int64 { +func (x *RestoreSnapshotRequest) GetTargetCollectionName() string { if x != nil { - return x.LastCommandTimestamp + return x.TargetCollectionName } - return 0 + return "" } -type ClientHeartbeatResponse struct { +type RestoreSnapshotResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - ServerTimestamp int64 `protobuf:"varint,2,opt,name=server_timestamp,json=serverTimestamp,proto3" json:"server_timestamp,omitempty"` - Commands []*commonpb.ClientCommand `protobuf:"bytes,3,rep,name=commands,proto3" json:"commands,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + JobId int64 `protobuf:"varint,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` } -func (x *ClientHeartbeatResponse) Reset() { - *x = ClientHeartbeatResponse{} +func (x *RestoreSnapshotResponse) Reset() { + *x = RestoreSnapshotResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[247] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18134,13 +18180,13 @@ func (x *ClientHeartbeatResponse) Reset() { } } -func (x *ClientHeartbeatResponse) String() string { +func (x *RestoreSnapshotResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientHeartbeatResponse) ProtoMessage() {} +func (*RestoreSnapshotResponse) ProtoMessage() {} -func (x *ClientHeartbeatResponse) ProtoReflect() protoreflect.Message { +func (x *RestoreSnapshotResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[247] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18152,45 +18198,43 @@ func (x *ClientHeartbeatResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ClientHeartbeatResponse.ProtoReflect.Descriptor instead. -func (*ClientHeartbeatResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use RestoreSnapshotResponse.ProtoReflect.Descriptor instead. +func (*RestoreSnapshotResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{247} } -func (x *ClientHeartbeatResponse) GetStatus() *commonpb.Status { +func (x *RestoreSnapshotResponse) GetStatus() *commonpb.Status { if x != nil { return x.Status } return nil } -func (x *ClientHeartbeatResponse) GetServerTimestamp() int64 { +func (x *RestoreSnapshotResponse) GetJobId() int64 { if x != nil { - return x.ServerTimestamp + return x.JobId } return 0 } -func (x *ClientHeartbeatResponse) GetCommands() []*commonpb.ClientCommand { - if x != nil { - return x.Commands - } - return nil -} - -// Get Client Telemetry -type GetClientTelemetryRequest struct { +type RestoreSnapshotInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"` - ClientId string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - IncludeMetrics bool `protobuf:"varint,3,opt,name=include_metrics,json=includeMetrics,proto3" json:"include_metrics,omitempty"` + JobId int64 `protobuf:"varint,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` + SnapshotName string `protobuf:"bytes,2,opt,name=snapshot_name,json=snapshotName,proto3" json:"snapshot_name,omitempty"` + DbName string `protobuf:"bytes,3,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + State RestoreSnapshotState `protobuf:"varint,5,opt,name=state,proto3,enum=milvus.proto.milvus.RestoreSnapshotState" json:"state,omitempty"` + Progress int32 `protobuf:"varint,6,opt,name=progress,proto3" json:"progress,omitempty"` // progress percentage (0-100) + Reason string `protobuf:"bytes,7,opt,name=reason,proto3" json:"reason,omitempty"` + StartTime uint64 `protobuf:"varint,8,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // start timestamp in milliseconds + TimeCost uint64 `protobuf:"varint,9,opt,name=time_cost,json=timeCost,proto3" json:"time_cost,omitempty"` // time cost in milliseconds } -func (x *GetClientTelemetryRequest) Reset() { - *x = GetClientTelemetryRequest{} +func (x *RestoreSnapshotInfo) Reset() { + *x = RestoreSnapshotInfo{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[248] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18198,13 +18242,13 @@ func (x *GetClientTelemetryRequest) Reset() { } } -func (x *GetClientTelemetryRequest) String() string { +func (x *RestoreSnapshotInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetClientTelemetryRequest) ProtoMessage() {} +func (*RestoreSnapshotInfo) ProtoMessage() {} -func (x *GetClientTelemetryRequest) ProtoReflect() protoreflect.Message { +func (x *RestoreSnapshotInfo) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[248] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18216,46 +18260,85 @@ func (x *GetClientTelemetryRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetClientTelemetryRequest.ProtoReflect.Descriptor instead. -func (*GetClientTelemetryRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use RestoreSnapshotInfo.ProtoReflect.Descriptor instead. +func (*RestoreSnapshotInfo) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{248} } -func (x *GetClientTelemetryRequest) GetDatabase() string { +func (x *RestoreSnapshotInfo) GetJobId() int64 { if x != nil { - return x.Database + return x.JobId + } + return 0 +} + +func (x *RestoreSnapshotInfo) GetSnapshotName() string { + if x != nil { + return x.SnapshotName } return "" } -func (x *GetClientTelemetryRequest) GetClientId() string { +func (x *RestoreSnapshotInfo) GetDbName() string { if x != nil { - return x.ClientId + return x.DbName } return "" } -func (x *GetClientTelemetryRequest) GetIncludeMetrics() bool { +func (x *RestoreSnapshotInfo) GetCollectionName() string { if x != nil { - return x.IncludeMetrics + return x.CollectionName } - return false + return "" } -type ClientTelemetry struct { +func (x *RestoreSnapshotInfo) GetState() RestoreSnapshotState { + if x != nil { + return x.State + } + return RestoreSnapshotState_RestoreSnapshotNone +} + +func (x *RestoreSnapshotInfo) GetProgress() int32 { + if x != nil { + return x.Progress + } + return 0 +} + +func (x *RestoreSnapshotInfo) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *RestoreSnapshotInfo) GetStartTime() uint64 { + if x != nil { + return x.StartTime + } + return 0 +} + +func (x *RestoreSnapshotInfo) GetTimeCost() uint64 { + if x != nil { + return x.TimeCost + } + return 0 +} + +type GetRestoreSnapshotStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ClientInfo *commonpb.ClientInfo `protobuf:"bytes,1,opt,name=client_info,json=clientInfo,proto3" json:"client_info,omitempty"` - LastHeartbeatTime int64 `protobuf:"varint,2,opt,name=last_heartbeat_time,json=lastHeartbeatTime,proto3" json:"last_heartbeat_time,omitempty"` - Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` - Databases []string `protobuf:"bytes,4,rep,name=databases,proto3" json:"databases,omitempty"` - Metrics []*commonpb.OperationMetrics `protobuf:"bytes,5,rep,name=metrics,proto3" json:"metrics,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + JobId int64 `protobuf:"varint,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // restore job ID } -func (x *ClientTelemetry) Reset() { - *x = ClientTelemetry{} +func (x *GetRestoreSnapshotStateRequest) Reset() { + *x = GetRestoreSnapshotStateRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[249] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18263,13 +18346,13 @@ func (x *ClientTelemetry) Reset() { } } -func (x *ClientTelemetry) String() string { +func (x *GetRestoreSnapshotStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClientTelemetry) ProtoMessage() {} +func (*GetRestoreSnapshotStateRequest) ProtoMessage() {} -func (x *ClientTelemetry) ProtoReflect() protoreflect.Message { +func (x *GetRestoreSnapshotStateRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[249] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18281,58 +18364,36 @@ func (x *ClientTelemetry) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ClientTelemetry.ProtoReflect.Descriptor instead. -func (*ClientTelemetry) Descriptor() ([]byte, []int) { +// Deprecated: Use GetRestoreSnapshotStateRequest.ProtoReflect.Descriptor instead. +func (*GetRestoreSnapshotStateRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{249} } -func (x *ClientTelemetry) GetClientInfo() *commonpb.ClientInfo { +func (x *GetRestoreSnapshotStateRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.ClientInfo + return x.Base } return nil } -func (x *ClientTelemetry) GetLastHeartbeatTime() int64 { +func (x *GetRestoreSnapshotStateRequest) GetJobId() int64 { if x != nil { - return x.LastHeartbeatTime + return x.JobId } return 0 } -func (x *ClientTelemetry) GetStatus() string { - if x != nil { - return x.Status - } - return "" -} - -func (x *ClientTelemetry) GetDatabases() []string { - if x != nil { - return x.Databases - } - return nil -} - -func (x *ClientTelemetry) GetMetrics() []*commonpb.OperationMetrics { - if x != nil { - return x.Metrics - } - return nil -} - -type GetClientTelemetryResponse struct { +type GetRestoreSnapshotStateResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Clients []*ClientTelemetry `protobuf:"bytes,2,rep,name=clients,proto3" json:"clients,omitempty"` - Aggregated *commonpb.Metrics `protobuf:"bytes,3,opt,name=aggregated,proto3" json:"aggregated,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Info *RestoreSnapshotInfo `protobuf:"bytes,2,opt,name=info,proto3" json:"info,omitempty"` } -func (x *GetClientTelemetryResponse) Reset() { - *x = GetClientTelemetryResponse{} +func (x *GetRestoreSnapshotStateResponse) Reset() { + *x = GetRestoreSnapshotStateResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[250] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18340,13 +18401,13 @@ func (x *GetClientTelemetryResponse) Reset() { } } -func (x *GetClientTelemetryResponse) String() string { +func (x *GetRestoreSnapshotStateResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetClientTelemetryResponse) ProtoMessage() {} +func (*GetRestoreSnapshotStateResponse) ProtoMessage() {} -func (x *GetClientTelemetryResponse) ProtoReflect() protoreflect.Message { +func (x *GetRestoreSnapshotStateResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[250] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18358,48 +18419,37 @@ func (x *GetClientTelemetryResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetClientTelemetryResponse.ProtoReflect.Descriptor instead. -func (*GetClientTelemetryResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetRestoreSnapshotStateResponse.ProtoReflect.Descriptor instead. +func (*GetRestoreSnapshotStateResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{250} } -func (x *GetClientTelemetryResponse) GetStatus() *commonpb.Status { +func (x *GetRestoreSnapshotStateResponse) GetStatus() *commonpb.Status { if x != nil { return x.Status } return nil } -func (x *GetClientTelemetryResponse) GetClients() []*ClientTelemetry { - if x != nil { - return x.Clients - } - return nil -} - -func (x *GetClientTelemetryResponse) GetAggregated() *commonpb.Metrics { +func (x *GetRestoreSnapshotStateResponse) GetInfo() *RestoreSnapshotInfo { if x != nil { - return x.Aggregated + return x.Info } return nil } -// Push Client Command -type PushClientCommandRequest struct { +type ListRestoreSnapshotJobsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CommandType string `protobuf:"bytes,1,opt,name=command_type,json=commandType,proto3" json:"command_type,omitempty"` - Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` - TargetClientId string `protobuf:"bytes,3,opt,name=target_client_id,json=targetClientId,proto3" json:"target_client_id,omitempty"` - TargetDatabase string `protobuf:"bytes,4,opt,name=target_database,json=targetDatabase,proto3" json:"target_database,omitempty"` - TtlSeconds int64 `protobuf:"varint,5,opt,name=ttl_seconds,json=ttlSeconds,proto3" json:"ttl_seconds,omitempty"` - Persistent bool `protobuf:"varint,6,opt,name=persistent,proto3" json:"persistent,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` } -func (x *PushClientCommandRequest) Reset() { - *x = PushClientCommandRequest{} +func (x *ListRestoreSnapshotJobsRequest) Reset() { + *x = ListRestoreSnapshotJobsRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[251] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18407,13 +18457,13 @@ func (x *PushClientCommandRequest) Reset() { } } -func (x *PushClientCommandRequest) String() string { +func (x *ListRestoreSnapshotJobsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PushClientCommandRequest) ProtoMessage() {} +func (*ListRestoreSnapshotJobsRequest) ProtoMessage() {} -func (x *PushClientCommandRequest) ProtoReflect() protoreflect.Message { +func (x *ListRestoreSnapshotJobsRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[251] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18425,64 +18475,43 @@ func (x *PushClientCommandRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PushClientCommandRequest.ProtoReflect.Descriptor instead. -func (*PushClientCommandRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ListRestoreSnapshotJobsRequest.ProtoReflect.Descriptor instead. +func (*ListRestoreSnapshotJobsRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{251} } -func (x *PushClientCommandRequest) GetCommandType() string { +func (x *ListRestoreSnapshotJobsRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.CommandType - } - return "" -} - -func (x *PushClientCommandRequest) GetPayload() []byte { - if x != nil { - return x.Payload + return x.Base } return nil } -func (x *PushClientCommandRequest) GetTargetClientId() string { +func (x *ListRestoreSnapshotJobsRequest) GetDbName() string { if x != nil { - return x.TargetClientId + return x.DbName } return "" } -func (x *PushClientCommandRequest) GetTargetDatabase() string { +func (x *ListRestoreSnapshotJobsRequest) GetCollectionName() string { if x != nil { - return x.TargetDatabase + return x.CollectionName } return "" } -func (x *PushClientCommandRequest) GetTtlSeconds() int64 { - if x != nil { - return x.TtlSeconds - } - return 0 -} - -func (x *PushClientCommandRequest) GetPersistent() bool { - if x != nil { - return x.Persistent - } - return false -} - -type PushClientCommandResponse struct { +type ListRestoreSnapshotJobsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - CommandId string `protobuf:"bytes,2,opt,name=command_id,json=commandId,proto3" json:"command_id,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Jobs []*RestoreSnapshotInfo `protobuf:"bytes,2,rep,name=jobs,proto3" json:"jobs,omitempty"` } -func (x *PushClientCommandResponse) Reset() { - *x = PushClientCommandResponse{} +func (x *ListRestoreSnapshotJobsResponse) Reset() { + *x = ListRestoreSnapshotJobsResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[252] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18490,13 +18519,13 @@ func (x *PushClientCommandResponse) Reset() { } } -func (x *PushClientCommandResponse) String() string { +func (x *ListRestoreSnapshotJobsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PushClientCommandResponse) ProtoMessage() {} +func (*ListRestoreSnapshotJobsResponse) ProtoMessage() {} -func (x *PushClientCommandResponse) ProtoReflect() protoreflect.Message { +func (x *ListRestoreSnapshotJobsResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[252] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18508,36 +18537,39 @@ func (x *PushClientCommandResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PushClientCommandResponse.ProtoReflect.Descriptor instead. -func (*PushClientCommandResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ListRestoreSnapshotJobsResponse.ProtoReflect.Descriptor instead. +func (*ListRestoreSnapshotJobsResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{252} } -func (x *PushClientCommandResponse) GetStatus() *commonpb.Status { +func (x *ListRestoreSnapshotJobsResponse) GetStatus() *commonpb.Status { if x != nil { return x.Status } return nil } -func (x *PushClientCommandResponse) GetCommandId() string { +func (x *ListRestoreSnapshotJobsResponse) GetJobs() []*RestoreSnapshotInfo { if x != nil { - return x.CommandId + return x.Jobs } - return "" + return nil } -// Delete Client Command -type DeleteClientCommandRequest struct { +type PinSnapshotDataRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CommandId string `protobuf:"bytes,1,opt,name=command_id,json=commandId,proto3" json:"command_id,omitempty"` + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // snapshot name + DbName string `protobuf:"bytes,3,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` // database name + CollectionName string `protobuf:"bytes,4,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // collection name + TtlSeconds int64 `protobuf:"varint,5,opt,name=ttl_seconds,json=ttlSeconds,proto3" json:"ttl_seconds,omitempty"` // optional: 0 = no expiry, >0 = auto-expire in seconds } -func (x *DeleteClientCommandRequest) Reset() { - *x = DeleteClientCommandRequest{} +func (x *PinSnapshotDataRequest) Reset() { + *x = PinSnapshotDataRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[253] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18545,13 +18577,13 @@ func (x *DeleteClientCommandRequest) Reset() { } } -func (x *DeleteClientCommandRequest) String() string { +func (x *PinSnapshotDataRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeleteClientCommandRequest) ProtoMessage() {} +func (*PinSnapshotDataRequest) ProtoMessage() {} -func (x *DeleteClientCommandRequest) ProtoReflect() protoreflect.Message { +func (x *PinSnapshotDataRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[253] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18563,28 +18595,57 @@ func (x *DeleteClientCommandRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeleteClientCommandRequest.ProtoReflect.Descriptor instead. -func (*DeleteClientCommandRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use PinSnapshotDataRequest.ProtoReflect.Descriptor instead. +func (*PinSnapshotDataRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{253} } -func (x *DeleteClientCommandRequest) GetCommandId() string { +func (x *PinSnapshotDataRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.CommandId + return x.Base + } + return nil +} + +func (x *PinSnapshotDataRequest) GetName() string { + if x != nil { + return x.Name } return "" } -type DeleteClientCommandResponse struct { +func (x *PinSnapshotDataRequest) GetDbName() string { + if x != nil { + return x.DbName + } + return "" +} + +func (x *PinSnapshotDataRequest) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" +} + +func (x *PinSnapshotDataRequest) GetTtlSeconds() int64 { + if x != nil { + return x.TtlSeconds + } + return 0 +} + +type PinSnapshotDataResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + PinId int64 `protobuf:"varint,2,opt,name=pin_id,json=pinId,proto3" json:"pin_id,omitempty"` // allocated pin ID for Unpin } -func (x *DeleteClientCommandResponse) Reset() { - *x = DeleteClientCommandResponse{} +func (x *PinSnapshotDataResponse) Reset() { + *x = PinSnapshotDataResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[254] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18592,13 +18653,13 @@ func (x *DeleteClientCommandResponse) Reset() { } } -func (x *DeleteClientCommandResponse) String() string { +func (x *PinSnapshotDataResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeleteClientCommandResponse) ProtoMessage() {} +func (*PinSnapshotDataResponse) ProtoMessage() {} -func (x *DeleteClientCommandResponse) ProtoReflect() protoreflect.Message { +func (x *PinSnapshotDataResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[254] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18610,32 +18671,36 @@ func (x *DeleteClientCommandResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeleteClientCommandResponse.ProtoReflect.Descriptor instead. -func (*DeleteClientCommandResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use PinSnapshotDataResponse.ProtoReflect.Descriptor instead. +func (*PinSnapshotDataResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{254} } -func (x *DeleteClientCommandResponse) GetStatus() *commonpb.Status { +func (x *PinSnapshotDataResponse) GetStatus() *commonpb.Status { if x != nil { return x.Status } return nil } -type RefreshExternalCollectionRequest struct { +func (x *PinSnapshotDataResponse) GetPinId() int64 { + if x != nil { + return x.PinId + } + return 0 +} + +type UnpinSnapshotDataRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` // Database name - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // Collection name (required) - ExternalSource string `protobuf:"bytes,4,opt,name=external_source,json=externalSource,proto3" json:"external_source,omitempty"` // Optional: new external source path - ExternalSpec string `protobuf:"bytes,5,opt,name=external_spec,json=externalSpec,proto3" json:"external_spec,omitempty"` // Optional: new external spec configuration + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + PinId int64 `protobuf:"varint,2,opt,name=pin_id,json=pinId,proto3" json:"pin_id,omitempty"` // pin ID from PinSnapshotData response } -func (x *RefreshExternalCollectionRequest) Reset() { - *x = RefreshExternalCollectionRequest{} +func (x *UnpinSnapshotDataRequest) Reset() { + *x = UnpinSnapshotDataRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[255] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18643,13 +18708,13 @@ func (x *RefreshExternalCollectionRequest) Reset() { } } -func (x *RefreshExternalCollectionRequest) String() string { +func (x *UnpinSnapshotDataRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RefreshExternalCollectionRequest) ProtoMessage() {} +func (*UnpinSnapshotDataRequest) ProtoMessage() {} -func (x *RefreshExternalCollectionRequest) ProtoReflect() protoreflect.Message { +func (x *UnpinSnapshotDataRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[255] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18661,57 +18726,39 @@ func (x *RefreshExternalCollectionRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RefreshExternalCollectionRequest.ProtoReflect.Descriptor instead. -func (*RefreshExternalCollectionRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use UnpinSnapshotDataRequest.ProtoReflect.Descriptor instead. +func (*UnpinSnapshotDataRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{255} } -func (x *RefreshExternalCollectionRequest) GetBase() *commonpb.MsgBase { +func (x *UnpinSnapshotDataRequest) GetBase() *commonpb.MsgBase { if x != nil { return x.Base } return nil } -func (x *RefreshExternalCollectionRequest) GetDbName() string { - if x != nil { - return x.DbName - } - return "" -} - -func (x *RefreshExternalCollectionRequest) GetCollectionName() string { - if x != nil { - return x.CollectionName - } - return "" -} - -func (x *RefreshExternalCollectionRequest) GetExternalSource() string { - if x != nil { - return x.ExternalSource - } - return "" -} - -func (x *RefreshExternalCollectionRequest) GetExternalSpec() string { +func (x *UnpinSnapshotDataRequest) GetPinId() int64 { if x != nil { - return x.ExternalSpec + return x.PinId } - return "" + return 0 } -type RefreshExternalCollectionResponse struct { +type AlterCollectionSchemaRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - JobId int64 `protobuf:"varint,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // Unique job identifier for tracking + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + CollectionID int64 `protobuf:"varint,4,opt,name=collectionID,proto3" json:"collectionID,omitempty"` + Action *AlterCollectionSchemaRequest_Action `protobuf:"bytes,5,opt,name=action,proto3" json:"action,omitempty"` } -func (x *RefreshExternalCollectionResponse) Reset() { - *x = RefreshExternalCollectionResponse{} +func (x *AlterCollectionSchemaRequest) Reset() { + *x = AlterCollectionSchemaRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[256] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18719,13 +18766,13 @@ func (x *RefreshExternalCollectionResponse) Reset() { } } -func (x *RefreshExternalCollectionResponse) String() string { +func (x *AlterCollectionSchemaRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RefreshExternalCollectionResponse) ProtoMessage() {} +func (*AlterCollectionSchemaRequest) ProtoMessage() {} -func (x *RefreshExternalCollectionResponse) ProtoReflect() protoreflect.Message { +func (x *AlterCollectionSchemaRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[256] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18737,36 +18784,57 @@ func (x *RefreshExternalCollectionResponse) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use RefreshExternalCollectionResponse.ProtoReflect.Descriptor instead. -func (*RefreshExternalCollectionResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use AlterCollectionSchemaRequest.ProtoReflect.Descriptor instead. +func (*AlterCollectionSchemaRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{256} } -func (x *RefreshExternalCollectionResponse) GetStatus() *commonpb.Status { +func (x *AlterCollectionSchemaRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Status + return x.Base } return nil } -func (x *RefreshExternalCollectionResponse) GetJobId() int64 { +func (x *AlterCollectionSchemaRequest) GetDbName() string { if x != nil { - return x.JobId + return x.DbName + } + return "" +} + +func (x *AlterCollectionSchemaRequest) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" +} + +func (x *AlterCollectionSchemaRequest) GetCollectionID() int64 { + if x != nil { + return x.CollectionID } return 0 } -type GetRefreshExternalCollectionProgressRequest struct { +func (x *AlterCollectionSchemaRequest) GetAction() *AlterCollectionSchemaRequest_Action { + if x != nil { + return x.Action + } + return nil +} + +type AlterCollectionSchemaResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - JobId int64 `protobuf:"varint,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // Job ID from RefreshExternalCollection response + AlterStatus *commonpb.Status `protobuf:"bytes,1,opt,name=alter_status,json=alterStatus,proto3" json:"alter_status,omitempty"` + IndexStatus *commonpb.Status `protobuf:"bytes,2,opt,name=index_status,json=indexStatus,proto3" json:"index_status,omitempty"` } -func (x *GetRefreshExternalCollectionProgressRequest) Reset() { - *x = GetRefreshExternalCollectionProgressRequest{} +func (x *AlterCollectionSchemaResponse) Reset() { + *x = AlterCollectionSchemaResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[257] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18774,13 +18842,13 @@ func (x *GetRefreshExternalCollectionProgressRequest) Reset() { } } -func (x *GetRefreshExternalCollectionProgressRequest) String() string { +func (x *AlterCollectionSchemaResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetRefreshExternalCollectionProgressRequest) ProtoMessage() {} +func (*AlterCollectionSchemaResponse) ProtoMessage() {} -func (x *GetRefreshExternalCollectionProgressRequest) ProtoReflect() protoreflect.Message { +func (x *AlterCollectionSchemaResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[257] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18792,43 +18860,39 @@ func (x *GetRefreshExternalCollectionProgressRequest) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use GetRefreshExternalCollectionProgressRequest.ProtoReflect.Descriptor instead. -func (*GetRefreshExternalCollectionProgressRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use AlterCollectionSchemaResponse.ProtoReflect.Descriptor instead. +func (*AlterCollectionSchemaResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{257} } -func (x *GetRefreshExternalCollectionProgressRequest) GetBase() *commonpb.MsgBase { +func (x *AlterCollectionSchemaResponse) GetAlterStatus() *commonpb.Status { if x != nil { - return x.Base + return x.AlterStatus } return nil } -func (x *GetRefreshExternalCollectionProgressRequest) GetJobId() int64 { +func (x *AlterCollectionSchemaResponse) GetIndexStatus() *commonpb.Status { if x != nil { - return x.JobId + return x.IndexStatus } - return 0 + return nil } -type RefreshExternalCollectionJobInfo struct { +type BatchUpdateManifestRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - JobId int64 `protobuf:"varint,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // Job identifier - CollectionName string `protobuf:"bytes,2,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // Collection name - State RefreshExternalCollectionState `protobuf:"varint,3,opt,name=state,proto3,enum=milvus.proto.milvus.RefreshExternalCollectionState" json:"state,omitempty"` // Current job state - Progress int64 `protobuf:"varint,4,opt,name=progress,proto3" json:"progress,omitempty"` // Progress percentage (0-100) - Reason string `protobuf:"bytes,5,opt,name=reason,proto3" json:"reason,omitempty"` // Error message if failed - ExternalSource string `protobuf:"bytes,6,opt,name=external_source,json=externalSource,proto3" json:"external_source,omitempty"` // External source used for this job - StartTime int64 `protobuf:"varint,7,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // Job start timestamp (Unix epoch ms) - EndTime int64 `protobuf:"varint,8,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // Job end timestamp (0 if not completed) - ExternalSpec string `protobuf:"bytes,9,opt,name=external_spec,json=externalSpec,proto3" json:"external_spec,omitempty"` // External spec used for this job + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` + FieldNames []string `protobuf:"bytes,4,rep,name=field_names,json=fieldNames,proto3" json:"field_names,omitempty"` // work as hint for now + Items []*BatchUpdateManifestItem `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"` } -func (x *RefreshExternalCollectionJobInfo) Reset() { - *x = RefreshExternalCollectionJobInfo{} +func (x *BatchUpdateManifestRequest) Reset() { + *x = BatchUpdateManifestRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[258] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18836,13 +18900,13 @@ func (x *RefreshExternalCollectionJobInfo) Reset() { } } -func (x *RefreshExternalCollectionJobInfo) String() string { +func (x *BatchUpdateManifestRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RefreshExternalCollectionJobInfo) ProtoMessage() {} +func (*BatchUpdateManifestRequest) ProtoMessage() {} -func (x *RefreshExternalCollectionJobInfo) ProtoReflect() protoreflect.Message { +func (x *BatchUpdateManifestRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[258] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18854,85 +18918,57 @@ func (x *RefreshExternalCollectionJobInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RefreshExternalCollectionJobInfo.ProtoReflect.Descriptor instead. -func (*RefreshExternalCollectionJobInfo) Descriptor() ([]byte, []int) { +// Deprecated: Use BatchUpdateManifestRequest.ProtoReflect.Descriptor instead. +func (*BatchUpdateManifestRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{258} } -func (x *RefreshExternalCollectionJobInfo) GetJobId() int64 { - if x != nil { - return x.JobId - } - return 0 -} - -func (x *RefreshExternalCollectionJobInfo) GetCollectionName() string { - if x != nil { - return x.CollectionName - } - return "" -} - -func (x *RefreshExternalCollectionJobInfo) GetState() RefreshExternalCollectionState { - if x != nil { - return x.State - } - return RefreshExternalCollectionState_RefreshPending -} - -func (x *RefreshExternalCollectionJobInfo) GetProgress() int64 { +func (x *BatchUpdateManifestRequest) GetBase() *commonpb.MsgBase { if x != nil { - return x.Progress + return x.Base } - return 0 + return nil } -func (x *RefreshExternalCollectionJobInfo) GetReason() string { +func (x *BatchUpdateManifestRequest) GetDbName() string { if x != nil { - return x.Reason + return x.DbName } return "" } -func (x *RefreshExternalCollectionJobInfo) GetExternalSource() string { +func (x *BatchUpdateManifestRequest) GetCollectionName() string { if x != nil { - return x.ExternalSource + return x.CollectionName } return "" } -func (x *RefreshExternalCollectionJobInfo) GetStartTime() int64 { - if x != nil { - return x.StartTime - } - return 0 -} - -func (x *RefreshExternalCollectionJobInfo) GetEndTime() int64 { +func (x *BatchUpdateManifestRequest) GetFieldNames() []string { if x != nil { - return x.EndTime + return x.FieldNames } - return 0 + return nil } -func (x *RefreshExternalCollectionJobInfo) GetExternalSpec() string { +func (x *BatchUpdateManifestRequest) GetItems() []*BatchUpdateManifestItem { if x != nil { - return x.ExternalSpec + return x.Items } - return "" + return nil } -type GetRefreshExternalCollectionProgressResponse struct { +type BatchUpdateManifestItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - JobInfo *RefreshExternalCollectionJobInfo `protobuf:"bytes,2,opt,name=job_info,json=jobInfo,proto3" json:"job_info,omitempty"` + SegmentId int64 `protobuf:"varint,1,opt,name=segment_id,json=segmentId,proto3" json:"segment_id,omitempty"` + ManifestVersion int64 `protobuf:"varint,2,opt,name=manifest_version,json=manifestVersion,proto3" json:"manifest_version,omitempty"` } -func (x *GetRefreshExternalCollectionProgressResponse) Reset() { - *x = GetRefreshExternalCollectionProgressResponse{} +func (x *BatchUpdateManifestItem) Reset() { + *x = BatchUpdateManifestItem{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[259] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18940,13 +18976,13 @@ func (x *GetRefreshExternalCollectionProgressResponse) Reset() { } } -func (x *GetRefreshExternalCollectionProgressResponse) String() string { +func (x *BatchUpdateManifestItem) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetRefreshExternalCollectionProgressResponse) ProtoMessage() {} +func (*BatchUpdateManifestItem) ProtoMessage() {} -func (x *GetRefreshExternalCollectionProgressResponse) ProtoReflect() protoreflect.Message { +func (x *BatchUpdateManifestItem) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[259] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18958,37 +18994,41 @@ func (x *GetRefreshExternalCollectionProgressResponse) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use GetRefreshExternalCollectionProgressResponse.ProtoReflect.Descriptor instead. -func (*GetRefreshExternalCollectionProgressResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use BatchUpdateManifestItem.ProtoReflect.Descriptor instead. +func (*BatchUpdateManifestItem) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{259} } -func (x *GetRefreshExternalCollectionProgressResponse) GetStatus() *commonpb.Status { +func (x *BatchUpdateManifestItem) GetSegmentId() int64 { if x != nil { - return x.Status + return x.SegmentId } - return nil + return 0 } -func (x *GetRefreshExternalCollectionProgressResponse) GetJobInfo() *RefreshExternalCollectionJobInfo { +func (x *BatchUpdateManifestItem) GetManifestVersion() int64 { if x != nil { - return x.JobInfo + return x.ManifestVersion } - return nil + return 0 } -type ListRefreshExternalCollectionJobsRequest struct { +// Client Heartbeat +type ClientHeartbeatRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` - DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` // Database name - CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // Collection name (optional, if empty lists all) + ClientInfo *commonpb.ClientInfo `protobuf:"bytes,1,opt,name=client_info,json=clientInfo,proto3" json:"client_info,omitempty"` + ReportTimestamp int64 `protobuf:"varint,2,opt,name=report_timestamp,json=reportTimestamp,proto3" json:"report_timestamp,omitempty"` + Metrics []*commonpb.OperationMetrics `protobuf:"bytes,3,rep,name=metrics,proto3" json:"metrics,omitempty"` + CommandReplies []*commonpb.CommandReply `protobuf:"bytes,4,rep,name=command_replies,json=commandReplies,proto3" json:"command_replies,omitempty"` + ConfigHash string `protobuf:"bytes,5,opt,name=config_hash,json=configHash,proto3" json:"config_hash,omitempty"` + LastCommandTimestamp int64 `protobuf:"varint,6,opt,name=last_command_timestamp,json=lastCommandTimestamp,proto3" json:"last_command_timestamp,omitempty"` } -func (x *ListRefreshExternalCollectionJobsRequest) Reset() { - *x = ListRefreshExternalCollectionJobsRequest{} +func (x *ClientHeartbeatRequest) Reset() { + *x = ClientHeartbeatRequest{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[260] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18996,13 +19036,13 @@ func (x *ListRefreshExternalCollectionJobsRequest) Reset() { } } -func (x *ListRefreshExternalCollectionJobsRequest) String() string { +func (x *ClientHeartbeatRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListRefreshExternalCollectionJobsRequest) ProtoMessage() {} +func (*ClientHeartbeatRequest) ProtoMessage() {} -func (x *ListRefreshExternalCollectionJobsRequest) ProtoReflect() protoreflect.Message { +func (x *ClientHeartbeatRequest) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[260] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19014,43 +19054,65 @@ func (x *ListRefreshExternalCollectionJobsRequest) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use ListRefreshExternalCollectionJobsRequest.ProtoReflect.Descriptor instead. -func (*ListRefreshExternalCollectionJobsRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ClientHeartbeatRequest.ProtoReflect.Descriptor instead. +func (*ClientHeartbeatRequest) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{260} } -func (x *ListRefreshExternalCollectionJobsRequest) GetBase() *commonpb.MsgBase { +func (x *ClientHeartbeatRequest) GetClientInfo() *commonpb.ClientInfo { if x != nil { - return x.Base + return x.ClientInfo } return nil } -func (x *ListRefreshExternalCollectionJobsRequest) GetDbName() string { +func (x *ClientHeartbeatRequest) GetReportTimestamp() int64 { if x != nil { - return x.DbName + return x.ReportTimestamp } - return "" + return 0 } -func (x *ListRefreshExternalCollectionJobsRequest) GetCollectionName() string { +func (x *ClientHeartbeatRequest) GetMetrics() []*commonpb.OperationMetrics { if x != nil { - return x.CollectionName + return x.Metrics + } + return nil +} + +func (x *ClientHeartbeatRequest) GetCommandReplies() []*commonpb.CommandReply { + if x != nil { + return x.CommandReplies + } + return nil +} + +func (x *ClientHeartbeatRequest) GetConfigHash() string { + if x != nil { + return x.ConfigHash } return "" } -type ListRefreshExternalCollectionJobsResponse struct { +func (x *ClientHeartbeatRequest) GetLastCommandTimestamp() int64 { + if x != nil { + return x.LastCommandTimestamp + } + return 0 +} + +type ClientHeartbeatResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Jobs []*RefreshExternalCollectionJobInfo `protobuf:"bytes,2,rep,name=jobs,proto3" json:"jobs,omitempty"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + ServerTimestamp int64 `protobuf:"varint,2,opt,name=server_timestamp,json=serverTimestamp,proto3" json:"server_timestamp,omitempty"` + Commands []*commonpb.ClientCommand `protobuf:"bytes,3,rep,name=commands,proto3" json:"commands,omitempty"` } -func (x *ListRefreshExternalCollectionJobsResponse) Reset() { - *x = ListRefreshExternalCollectionJobsResponse{} +func (x *ClientHeartbeatResponse) Reset() { + *x = ClientHeartbeatResponse{} if protoimpl.UnsafeEnabled { mi := &file_milvus_proto_msgTypes[261] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19058,13 +19120,13 @@ func (x *ListRefreshExternalCollectionJobsResponse) Reset() { } } -func (x *ListRefreshExternalCollectionJobsResponse) String() string { +func (x *ClientHeartbeatResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListRefreshExternalCollectionJobsResponse) ProtoMessage() {} +func (*ClientHeartbeatResponse) ProtoMessage() {} -func (x *ListRefreshExternalCollectionJobsResponse) ProtoReflect() protoreflect.Message { +func (x *ClientHeartbeatResponse) ProtoReflect() protoreflect.Message { mi := &file_milvus_proto_msgTypes[261] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19076,55 +19138,60 @@ func (x *ListRefreshExternalCollectionJobsResponse) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use ListRefreshExternalCollectionJobsResponse.ProtoReflect.Descriptor instead. -func (*ListRefreshExternalCollectionJobsResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ClientHeartbeatResponse.ProtoReflect.Descriptor instead. +func (*ClientHeartbeatResponse) Descriptor() ([]byte, []int) { return file_milvus_proto_rawDescGZIP(), []int{261} } -func (x *ListRefreshExternalCollectionJobsResponse) GetStatus() *commonpb.Status { +func (x *ClientHeartbeatResponse) GetStatus() *commonpb.Status { if x != nil { return x.Status } return nil } -func (x *ListRefreshExternalCollectionJobsResponse) GetJobs() []*RefreshExternalCollectionJobInfo { +func (x *ClientHeartbeatResponse) GetServerTimestamp() int64 { if x != nil { - return x.Jobs + return x.ServerTimestamp + } + return 0 +} + +func (x *ClientHeartbeatResponse) GetCommands() []*commonpb.ClientCommand { + if x != nil { + return x.Commands } return nil } -// The serialized `schema.FieldSchema` -type AlterCollectionSchemaRequest_FieldInfo struct { +// Get Client Telemetry +type GetClientTelemetryRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - FieldSchema *schemapb.FieldSchema `protobuf:"bytes,1,opt,name=field_schema,json=fieldSchema,proto3" json:"field_schema,omitempty"` - // Version before 2.0.2 doesn't contain index_name, we use default index name. - IndexName string `protobuf:"bytes,2,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` - // Support keys: index_type,metric_type, params. Different index_type may has different params. - ExtraParams []*commonpb.KeyValuePair `protobuf:"bytes,3,rep,name=extra_params,json=extraParams,proto3" json:"extra_params,omitempty"` + Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"` + ClientId string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + IncludeMetrics bool `protobuf:"varint,3,opt,name=include_metrics,json=includeMetrics,proto3" json:"include_metrics,omitempty"` } -func (x *AlterCollectionSchemaRequest_FieldInfo) Reset() { - *x = AlterCollectionSchemaRequest_FieldInfo{} +func (x *GetClientTelemetryRequest) Reset() { + *x = GetClientTelemetryRequest{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[284] + mi := &file_milvus_proto_msgTypes[262] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AlterCollectionSchemaRequest_FieldInfo) String() string { +func (x *GetClientTelemetryRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AlterCollectionSchemaRequest_FieldInfo) ProtoMessage() {} +func (*GetClientTelemetryRequest) ProtoMessage() {} -func (x *AlterCollectionSchemaRequest_FieldInfo) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[284] +func (x *GetClientTelemetryRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[262] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19135,60 +19202,61 @@ func (x *AlterCollectionSchemaRequest_FieldInfo) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use AlterCollectionSchemaRequest_FieldInfo.ProtoReflect.Descriptor instead. -func (*AlterCollectionSchemaRequest_FieldInfo) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{242, 0} +// Deprecated: Use GetClientTelemetryRequest.ProtoReflect.Descriptor instead. +func (*GetClientTelemetryRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{262} } -func (x *AlterCollectionSchemaRequest_FieldInfo) GetFieldSchema() *schemapb.FieldSchema { +func (x *GetClientTelemetryRequest) GetDatabase() string { if x != nil { - return x.FieldSchema + return x.Database } - return nil + return "" } -func (x *AlterCollectionSchemaRequest_FieldInfo) GetIndexName() string { +func (x *GetClientTelemetryRequest) GetClientId() string { if x != nil { - return x.IndexName + return x.ClientId } return "" } -func (x *AlterCollectionSchemaRequest_FieldInfo) GetExtraParams() []*commonpb.KeyValuePair { +func (x *GetClientTelemetryRequest) GetIncludeMetrics() bool { if x != nil { - return x.ExtraParams + return x.IncludeMetrics } - return nil + return false } -// Add fields and functions request -type AlterCollectionSchemaRequest_AddRequest struct { +type ClientTelemetry struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - FieldInfos []*AlterCollectionSchemaRequest_FieldInfo `protobuf:"bytes,1,rep,name=field_infos,json=fieldInfos,proto3" json:"field_infos,omitempty"` - FuncSchema []*schemapb.FunctionSchema `protobuf:"bytes,2,rep,name=func_schema,json=funcSchema,proto3" json:"func_schema,omitempty"` - DoPhysicalBackfill bool `protobuf:"varint,3,opt,name=do_physical_backfill,json=doPhysicalBackfill,proto3" json:"do_physical_backfill,omitempty"` + ClientInfo *commonpb.ClientInfo `protobuf:"bytes,1,opt,name=client_info,json=clientInfo,proto3" json:"client_info,omitempty"` + LastHeartbeatTime int64 `protobuf:"varint,2,opt,name=last_heartbeat_time,json=lastHeartbeatTime,proto3" json:"last_heartbeat_time,omitempty"` + Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` + Databases []string `protobuf:"bytes,4,rep,name=databases,proto3" json:"databases,omitempty"` + Metrics []*commonpb.OperationMetrics `protobuf:"bytes,5,rep,name=metrics,proto3" json:"metrics,omitempty"` } -func (x *AlterCollectionSchemaRequest_AddRequest) Reset() { - *x = AlterCollectionSchemaRequest_AddRequest{} +func (x *ClientTelemetry) Reset() { + *x = ClientTelemetry{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[285] + mi := &file_milvus_proto_msgTypes[263] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AlterCollectionSchemaRequest_AddRequest) String() string { +func (x *ClientTelemetry) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AlterCollectionSchemaRequest_AddRequest) ProtoMessage() {} +func (*ClientTelemetry) ProtoMessage() {} -func (x *AlterCollectionSchemaRequest_AddRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[285] +func (x *ClientTelemetry) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[263] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19199,63 +19267,73 @@ func (x *AlterCollectionSchemaRequest_AddRequest) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use AlterCollectionSchemaRequest_AddRequest.ProtoReflect.Descriptor instead. -func (*AlterCollectionSchemaRequest_AddRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{242, 1} +// Deprecated: Use ClientTelemetry.ProtoReflect.Descriptor instead. +func (*ClientTelemetry) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{263} } -func (x *AlterCollectionSchemaRequest_AddRequest) GetFieldInfos() []*AlterCollectionSchemaRequest_FieldInfo { +func (x *ClientTelemetry) GetClientInfo() *commonpb.ClientInfo { if x != nil { - return x.FieldInfos + return x.ClientInfo } return nil } -func (x *AlterCollectionSchemaRequest_AddRequest) GetFuncSchema() []*schemapb.FunctionSchema { +func (x *ClientTelemetry) GetLastHeartbeatTime() int64 { if x != nil { - return x.FuncSchema + return x.LastHeartbeatTime + } + return 0 +} + +func (x *ClientTelemetry) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *ClientTelemetry) GetDatabases() []string { + if x != nil { + return x.Databases } return nil } -func (x *AlterCollectionSchemaRequest_AddRequest) GetDoPhysicalBackfill() bool { +func (x *ClientTelemetry) GetMetrics() []*commonpb.OperationMetrics { if x != nil { - return x.DoPhysicalBackfill + return x.Metrics } - return false + return nil } -// Drop field or function request -type AlterCollectionSchemaRequest_DropRequest struct { +type GetClientTelemetryResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Types that are assignable to Identifier: - // - // *AlterCollectionSchemaRequest_DropRequest_FieldName - // *AlterCollectionSchemaRequest_DropRequest_FieldId - // *AlterCollectionSchemaRequest_DropRequest_FunctionName - Identifier isAlterCollectionSchemaRequest_DropRequest_Identifier `protobuf_oneof:"identifier"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Clients []*ClientTelemetry `protobuf:"bytes,2,rep,name=clients,proto3" json:"clients,omitempty"` + Aggregated *commonpb.Metrics `protobuf:"bytes,3,opt,name=aggregated,proto3" json:"aggregated,omitempty"` } -func (x *AlterCollectionSchemaRequest_DropRequest) Reset() { - *x = AlterCollectionSchemaRequest_DropRequest{} +func (x *GetClientTelemetryResponse) Reset() { + *x = GetClientTelemetryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[286] + mi := &file_milvus_proto_msgTypes[264] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AlterCollectionSchemaRequest_DropRequest) String() string { +func (x *GetClientTelemetryResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AlterCollectionSchemaRequest_DropRequest) ProtoMessage() {} +func (*GetClientTelemetryResponse) ProtoMessage() {} -func (x *AlterCollectionSchemaRequest_DropRequest) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[286] +func (x *GetClientTelemetryResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[264] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19266,94 +19344,146 @@ func (x *AlterCollectionSchemaRequest_DropRequest) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use AlterCollectionSchemaRequest_DropRequest.ProtoReflect.Descriptor instead. -func (*AlterCollectionSchemaRequest_DropRequest) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{242, 2} +// Deprecated: Use GetClientTelemetryResponse.ProtoReflect.Descriptor instead. +func (*GetClientTelemetryResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{264} } -func (m *AlterCollectionSchemaRequest_DropRequest) GetIdentifier() isAlterCollectionSchemaRequest_DropRequest_Identifier { - if m != nil { - return m.Identifier +func (x *GetClientTelemetryResponse) GetStatus() *commonpb.Status { + if x != nil { + return x.Status } return nil } -func (x *AlterCollectionSchemaRequest_DropRequest) GetFieldName() string { - if x, ok := x.GetIdentifier().(*AlterCollectionSchemaRequest_DropRequest_FieldName); ok { - return x.FieldName +func (x *GetClientTelemetryResponse) GetClients() []*ClientTelemetry { + if x != nil { + return x.Clients } - return "" + return nil } -func (x *AlterCollectionSchemaRequest_DropRequest) GetFieldId() int64 { - if x, ok := x.GetIdentifier().(*AlterCollectionSchemaRequest_DropRequest_FieldId); ok { - return x.FieldId +func (x *GetClientTelemetryResponse) GetAggregated() *commonpb.Metrics { + if x != nil { + return x.Aggregated } - return 0 + return nil } -func (x *AlterCollectionSchemaRequest_DropRequest) GetFunctionName() string { - if x, ok := x.GetIdentifier().(*AlterCollectionSchemaRequest_DropRequest_FunctionName); ok { - return x.FunctionName +// Push Client Command +type PushClientCommandRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommandType string `protobuf:"bytes,1,opt,name=command_type,json=commandType,proto3" json:"command_type,omitempty"` + Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` + TargetClientId string `protobuf:"bytes,3,opt,name=target_client_id,json=targetClientId,proto3" json:"target_client_id,omitempty"` + TargetDatabase string `protobuf:"bytes,4,opt,name=target_database,json=targetDatabase,proto3" json:"target_database,omitempty"` + TtlSeconds int64 `protobuf:"varint,5,opt,name=ttl_seconds,json=ttlSeconds,proto3" json:"ttl_seconds,omitempty"` + Persistent bool `protobuf:"varint,6,opt,name=persistent,proto3" json:"persistent,omitempty"` +} + +func (x *PushClientCommandRequest) Reset() { + *x = PushClientCommandRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[265] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -type isAlterCollectionSchemaRequest_DropRequest_Identifier interface { - isAlterCollectionSchemaRequest_DropRequest_Identifier() +func (x *PushClientCommandRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -type AlterCollectionSchemaRequest_DropRequest_FieldName struct { - FieldName string `protobuf:"bytes,1,opt,name=field_name,json=fieldName,proto3,oneof"` +func (*PushClientCommandRequest) ProtoMessage() {} + +func (x *PushClientCommandRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[265] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -type AlterCollectionSchemaRequest_DropRequest_FieldId struct { - FieldId int64 `protobuf:"varint,2,opt,name=field_id,json=fieldId,proto3,oneof"` +// Deprecated: Use PushClientCommandRequest.ProtoReflect.Descriptor instead. +func (*PushClientCommandRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{265} } -type AlterCollectionSchemaRequest_DropRequest_FunctionName struct { - FunctionName string `protobuf:"bytes,3,opt,name=function_name,json=functionName,proto3,oneof"` +func (x *PushClientCommandRequest) GetCommandType() string { + if x != nil { + return x.CommandType + } + return "" } -func (*AlterCollectionSchemaRequest_DropRequest_FieldName) isAlterCollectionSchemaRequest_DropRequest_Identifier() { +func (x *PushClientCommandRequest) GetPayload() []byte { + if x != nil { + return x.Payload + } + return nil } -func (*AlterCollectionSchemaRequest_DropRequest_FieldId) isAlterCollectionSchemaRequest_DropRequest_Identifier() { +func (x *PushClientCommandRequest) GetTargetClientId() string { + if x != nil { + return x.TargetClientId + } + return "" } -func (*AlterCollectionSchemaRequest_DropRequest_FunctionName) isAlterCollectionSchemaRequest_DropRequest_Identifier() { +func (x *PushClientCommandRequest) GetTargetDatabase() string { + if x != nil { + return x.TargetDatabase + } + return "" } -// Action to perform on the collection schema -type AlterCollectionSchemaRequest_Action struct { +func (x *PushClientCommandRequest) GetTtlSeconds() int64 { + if x != nil { + return x.TtlSeconds + } + return 0 +} + +func (x *PushClientCommandRequest) GetPersistent() bool { + if x != nil { + return x.Persistent + } + return false +} + +type PushClientCommandResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Types that are assignable to Op: - // - // *AlterCollectionSchemaRequest_Action_AddRequest - // *AlterCollectionSchemaRequest_Action_DropRequest - Op isAlterCollectionSchemaRequest_Action_Op `protobuf_oneof:"op"` + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + CommandId string `protobuf:"bytes,2,opt,name=command_id,json=commandId,proto3" json:"command_id,omitempty"` } -func (x *AlterCollectionSchemaRequest_Action) Reset() { - *x = AlterCollectionSchemaRequest_Action{} +func (x *PushClientCommandResponse) Reset() { + *x = PushClientCommandResponse{} if protoimpl.UnsafeEnabled { - mi := &file_milvus_proto_msgTypes[287] + mi := &file_milvus_proto_msgTypes[266] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AlterCollectionSchemaRequest_Action) String() string { +func (x *PushClientCommandResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AlterCollectionSchemaRequest_Action) ProtoMessage() {} +func (*PushClientCommandResponse) ProtoMessage() {} -func (x *AlterCollectionSchemaRequest_Action) ProtoReflect() protoreflect.Message { - mi := &file_milvus_proto_msgTypes[287] +func (x *PushClientCommandResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[266] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19364,38 +19494,894 @@ func (x *AlterCollectionSchemaRequest_Action) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use AlterCollectionSchemaRequest_Action.ProtoReflect.Descriptor instead. -func (*AlterCollectionSchemaRequest_Action) Descriptor() ([]byte, []int) { - return file_milvus_proto_rawDescGZIP(), []int{242, 3} +// Deprecated: Use PushClientCommandResponse.ProtoReflect.Descriptor instead. +func (*PushClientCommandResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{266} } -func (m *AlterCollectionSchemaRequest_Action) GetOp() isAlterCollectionSchemaRequest_Action_Op { - if m != nil { - return m.Op +func (x *PushClientCommandResponse) GetStatus() *commonpb.Status { + if x != nil { + return x.Status } return nil } -func (x *AlterCollectionSchemaRequest_Action) GetAddRequest() *AlterCollectionSchemaRequest_AddRequest { - if x, ok := x.GetOp().(*AlterCollectionSchemaRequest_Action_AddRequest); ok { - return x.AddRequest +func (x *PushClientCommandResponse) GetCommandId() string { + if x != nil { + return x.CommandId } - return nil + return "" } -func (x *AlterCollectionSchemaRequest_Action) GetDropRequest() *AlterCollectionSchemaRequest_DropRequest { - if x, ok := x.GetOp().(*AlterCollectionSchemaRequest_Action_DropRequest); ok { - return x.DropRequest - } - return nil -} +// Delete Client Command +type DeleteClientCommandRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -type isAlterCollectionSchemaRequest_Action_Op interface { - isAlterCollectionSchemaRequest_Action_Op() + CommandId string `protobuf:"bytes,1,opt,name=command_id,json=commandId,proto3" json:"command_id,omitempty"` } -type AlterCollectionSchemaRequest_Action_AddRequest struct { - AddRequest *AlterCollectionSchemaRequest_AddRequest `protobuf:"bytes,1,opt,name=add_request,json=addRequest,proto3,oneof"` +func (x *DeleteClientCommandRequest) Reset() { + *x = DeleteClientCommandRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[267] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteClientCommandRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteClientCommandRequest) ProtoMessage() {} + +func (x *DeleteClientCommandRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[267] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteClientCommandRequest.ProtoReflect.Descriptor instead. +func (*DeleteClientCommandRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{267} +} + +func (x *DeleteClientCommandRequest) GetCommandId() string { + if x != nil { + return x.CommandId + } + return "" +} + +type DeleteClientCommandResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *DeleteClientCommandResponse) Reset() { + *x = DeleteClientCommandResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[268] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteClientCommandResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteClientCommandResponse) ProtoMessage() {} + +func (x *DeleteClientCommandResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[268] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteClientCommandResponse.ProtoReflect.Descriptor instead. +func (*DeleteClientCommandResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{268} +} + +func (x *DeleteClientCommandResponse) GetStatus() *commonpb.Status { + if x != nil { + return x.Status + } + return nil +} + +type RefreshExternalCollectionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` // Database name + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // Collection name (required) + ExternalSource string `protobuf:"bytes,4,opt,name=external_source,json=externalSource,proto3" json:"external_source,omitempty"` // Optional: new external source path + ExternalSpec string `protobuf:"bytes,5,opt,name=external_spec,json=externalSpec,proto3" json:"external_spec,omitempty"` // Optional: new external spec configuration +} + +func (x *RefreshExternalCollectionRequest) Reset() { + *x = RefreshExternalCollectionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[269] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RefreshExternalCollectionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RefreshExternalCollectionRequest) ProtoMessage() {} + +func (x *RefreshExternalCollectionRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[269] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RefreshExternalCollectionRequest.ProtoReflect.Descriptor instead. +func (*RefreshExternalCollectionRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{269} +} + +func (x *RefreshExternalCollectionRequest) GetBase() *commonpb.MsgBase { + if x != nil { + return x.Base + } + return nil +} + +func (x *RefreshExternalCollectionRequest) GetDbName() string { + if x != nil { + return x.DbName + } + return "" +} + +func (x *RefreshExternalCollectionRequest) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" +} + +func (x *RefreshExternalCollectionRequest) GetExternalSource() string { + if x != nil { + return x.ExternalSource + } + return "" +} + +func (x *RefreshExternalCollectionRequest) GetExternalSpec() string { + if x != nil { + return x.ExternalSpec + } + return "" +} + +type RefreshExternalCollectionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + JobId int64 `protobuf:"varint,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // Unique job identifier for tracking +} + +func (x *RefreshExternalCollectionResponse) Reset() { + *x = RefreshExternalCollectionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[270] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RefreshExternalCollectionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RefreshExternalCollectionResponse) ProtoMessage() {} + +func (x *RefreshExternalCollectionResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[270] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RefreshExternalCollectionResponse.ProtoReflect.Descriptor instead. +func (*RefreshExternalCollectionResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{270} +} + +func (x *RefreshExternalCollectionResponse) GetStatus() *commonpb.Status { + if x != nil { + return x.Status + } + return nil +} + +func (x *RefreshExternalCollectionResponse) GetJobId() int64 { + if x != nil { + return x.JobId + } + return 0 +} + +type GetRefreshExternalCollectionProgressRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + JobId int64 `protobuf:"varint,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // Job ID from RefreshExternalCollection response +} + +func (x *GetRefreshExternalCollectionProgressRequest) Reset() { + *x = GetRefreshExternalCollectionProgressRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[271] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetRefreshExternalCollectionProgressRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRefreshExternalCollectionProgressRequest) ProtoMessage() {} + +func (x *GetRefreshExternalCollectionProgressRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[271] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetRefreshExternalCollectionProgressRequest.ProtoReflect.Descriptor instead. +func (*GetRefreshExternalCollectionProgressRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{271} +} + +func (x *GetRefreshExternalCollectionProgressRequest) GetBase() *commonpb.MsgBase { + if x != nil { + return x.Base + } + return nil +} + +func (x *GetRefreshExternalCollectionProgressRequest) GetJobId() int64 { + if x != nil { + return x.JobId + } + return 0 +} + +type RefreshExternalCollectionJobInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + JobId int64 `protobuf:"varint,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // Job identifier + CollectionName string `protobuf:"bytes,2,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // Collection name + State RefreshExternalCollectionState `protobuf:"varint,3,opt,name=state,proto3,enum=milvus.proto.milvus.RefreshExternalCollectionState" json:"state,omitempty"` // Current job state + Progress int64 `protobuf:"varint,4,opt,name=progress,proto3" json:"progress,omitempty"` // Progress percentage (0-100) + Reason string `protobuf:"bytes,5,opt,name=reason,proto3" json:"reason,omitempty"` // Error message if failed + ExternalSource string `protobuf:"bytes,6,opt,name=external_source,json=externalSource,proto3" json:"external_source,omitempty"` // External source used for this job + StartTime int64 `protobuf:"varint,7,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // Job start timestamp (Unix epoch ms) + EndTime int64 `protobuf:"varint,8,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // Job end timestamp (0 if not completed) + ExternalSpec string `protobuf:"bytes,9,opt,name=external_spec,json=externalSpec,proto3" json:"external_spec,omitempty"` // External spec used for this job +} + +func (x *RefreshExternalCollectionJobInfo) Reset() { + *x = RefreshExternalCollectionJobInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[272] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RefreshExternalCollectionJobInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RefreshExternalCollectionJobInfo) ProtoMessage() {} + +func (x *RefreshExternalCollectionJobInfo) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[272] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RefreshExternalCollectionJobInfo.ProtoReflect.Descriptor instead. +func (*RefreshExternalCollectionJobInfo) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{272} +} + +func (x *RefreshExternalCollectionJobInfo) GetJobId() int64 { + if x != nil { + return x.JobId + } + return 0 +} + +func (x *RefreshExternalCollectionJobInfo) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" +} + +func (x *RefreshExternalCollectionJobInfo) GetState() RefreshExternalCollectionState { + if x != nil { + return x.State + } + return RefreshExternalCollectionState_RefreshPending +} + +func (x *RefreshExternalCollectionJobInfo) GetProgress() int64 { + if x != nil { + return x.Progress + } + return 0 +} + +func (x *RefreshExternalCollectionJobInfo) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *RefreshExternalCollectionJobInfo) GetExternalSource() string { + if x != nil { + return x.ExternalSource + } + return "" +} + +func (x *RefreshExternalCollectionJobInfo) GetStartTime() int64 { + if x != nil { + return x.StartTime + } + return 0 +} + +func (x *RefreshExternalCollectionJobInfo) GetEndTime() int64 { + if x != nil { + return x.EndTime + } + return 0 +} + +func (x *RefreshExternalCollectionJobInfo) GetExternalSpec() string { + if x != nil { + return x.ExternalSpec + } + return "" +} + +type GetRefreshExternalCollectionProgressResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + JobInfo *RefreshExternalCollectionJobInfo `protobuf:"bytes,2,opt,name=job_info,json=jobInfo,proto3" json:"job_info,omitempty"` +} + +func (x *GetRefreshExternalCollectionProgressResponse) Reset() { + *x = GetRefreshExternalCollectionProgressResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[273] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetRefreshExternalCollectionProgressResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRefreshExternalCollectionProgressResponse) ProtoMessage() {} + +func (x *GetRefreshExternalCollectionProgressResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[273] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetRefreshExternalCollectionProgressResponse.ProtoReflect.Descriptor instead. +func (*GetRefreshExternalCollectionProgressResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{273} +} + +func (x *GetRefreshExternalCollectionProgressResponse) GetStatus() *commonpb.Status { + if x != nil { + return x.Status + } + return nil +} + +func (x *GetRefreshExternalCollectionProgressResponse) GetJobInfo() *RefreshExternalCollectionJobInfo { + if x != nil { + return x.JobInfo + } + return nil +} + +type ListRefreshExternalCollectionJobsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"` + DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"` // Database name + CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"` // Collection name (optional, if empty lists all) +} + +func (x *ListRefreshExternalCollectionJobsRequest) Reset() { + *x = ListRefreshExternalCollectionJobsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[274] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListRefreshExternalCollectionJobsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRefreshExternalCollectionJobsRequest) ProtoMessage() {} + +func (x *ListRefreshExternalCollectionJobsRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[274] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRefreshExternalCollectionJobsRequest.ProtoReflect.Descriptor instead. +func (*ListRefreshExternalCollectionJobsRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{274} +} + +func (x *ListRefreshExternalCollectionJobsRequest) GetBase() *commonpb.MsgBase { + if x != nil { + return x.Base + } + return nil +} + +func (x *ListRefreshExternalCollectionJobsRequest) GetDbName() string { + if x != nil { + return x.DbName + } + return "" +} + +func (x *ListRefreshExternalCollectionJobsRequest) GetCollectionName() string { + if x != nil { + return x.CollectionName + } + return "" +} + +type ListRefreshExternalCollectionJobsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Jobs []*RefreshExternalCollectionJobInfo `protobuf:"bytes,2,rep,name=jobs,proto3" json:"jobs,omitempty"` +} + +func (x *ListRefreshExternalCollectionJobsResponse) Reset() { + *x = ListRefreshExternalCollectionJobsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[275] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListRefreshExternalCollectionJobsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRefreshExternalCollectionJobsResponse) ProtoMessage() {} + +func (x *ListRefreshExternalCollectionJobsResponse) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[275] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRefreshExternalCollectionJobsResponse.ProtoReflect.Descriptor instead. +func (*ListRefreshExternalCollectionJobsResponse) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{275} +} + +func (x *ListRefreshExternalCollectionJobsResponse) GetStatus() *commonpb.Status { + if x != nil { + return x.Status + } + return nil +} + +func (x *ListRefreshExternalCollectionJobsResponse) GetJobs() []*RefreshExternalCollectionJobInfo { + if x != nil { + return x.Jobs + } + return nil +} + +// The serialized `schema.FieldSchema` +type AlterCollectionSchemaRequest_FieldInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FieldSchema *schemapb.FieldSchema `protobuf:"bytes,1,opt,name=field_schema,json=fieldSchema,proto3" json:"field_schema,omitempty"` + // Version before 2.0.2 doesn't contain index_name, we use default index name. + IndexName string `protobuf:"bytes,2,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` + // Support keys: index_type,metric_type, params. Different index_type may has different params. + ExtraParams []*commonpb.KeyValuePair `protobuf:"bytes,3,rep,name=extra_params,json=extraParams,proto3" json:"extra_params,omitempty"` +} + +func (x *AlterCollectionSchemaRequest_FieldInfo) Reset() { + *x = AlterCollectionSchemaRequest_FieldInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[298] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AlterCollectionSchemaRequest_FieldInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AlterCollectionSchemaRequest_FieldInfo) ProtoMessage() {} + +func (x *AlterCollectionSchemaRequest_FieldInfo) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[298] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AlterCollectionSchemaRequest_FieldInfo.ProtoReflect.Descriptor instead. +func (*AlterCollectionSchemaRequest_FieldInfo) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{256, 0} +} + +func (x *AlterCollectionSchemaRequest_FieldInfo) GetFieldSchema() *schemapb.FieldSchema { + if x != nil { + return x.FieldSchema + } + return nil +} + +func (x *AlterCollectionSchemaRequest_FieldInfo) GetIndexName() string { + if x != nil { + return x.IndexName + } + return "" +} + +func (x *AlterCollectionSchemaRequest_FieldInfo) GetExtraParams() []*commonpb.KeyValuePair { + if x != nil { + return x.ExtraParams + } + return nil +} + +// Add fields and functions request +type AlterCollectionSchemaRequest_AddRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FieldInfos []*AlterCollectionSchemaRequest_FieldInfo `protobuf:"bytes,1,rep,name=field_infos,json=fieldInfos,proto3" json:"field_infos,omitempty"` + FuncSchema []*schemapb.FunctionSchema `protobuf:"bytes,2,rep,name=func_schema,json=funcSchema,proto3" json:"func_schema,omitempty"` + DoPhysicalBackfill bool `protobuf:"varint,3,opt,name=do_physical_backfill,json=doPhysicalBackfill,proto3" json:"do_physical_backfill,omitempty"` +} + +func (x *AlterCollectionSchemaRequest_AddRequest) Reset() { + *x = AlterCollectionSchemaRequest_AddRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[299] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AlterCollectionSchemaRequest_AddRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AlterCollectionSchemaRequest_AddRequest) ProtoMessage() {} + +func (x *AlterCollectionSchemaRequest_AddRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[299] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AlterCollectionSchemaRequest_AddRequest.ProtoReflect.Descriptor instead. +func (*AlterCollectionSchemaRequest_AddRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{256, 1} +} + +func (x *AlterCollectionSchemaRequest_AddRequest) GetFieldInfos() []*AlterCollectionSchemaRequest_FieldInfo { + if x != nil { + return x.FieldInfos + } + return nil +} + +func (x *AlterCollectionSchemaRequest_AddRequest) GetFuncSchema() []*schemapb.FunctionSchema { + if x != nil { + return x.FuncSchema + } + return nil +} + +func (x *AlterCollectionSchemaRequest_AddRequest) GetDoPhysicalBackfill() bool { + if x != nil { + return x.DoPhysicalBackfill + } + return false +} + +// Drop field or function request +type AlterCollectionSchemaRequest_DropRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Identifier: + // + // *AlterCollectionSchemaRequest_DropRequest_FieldName + // *AlterCollectionSchemaRequest_DropRequest_FieldId + // *AlterCollectionSchemaRequest_DropRequest_FunctionName + Identifier isAlterCollectionSchemaRequest_DropRequest_Identifier `protobuf_oneof:"identifier"` +} + +func (x *AlterCollectionSchemaRequest_DropRequest) Reset() { + *x = AlterCollectionSchemaRequest_DropRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[300] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AlterCollectionSchemaRequest_DropRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AlterCollectionSchemaRequest_DropRequest) ProtoMessage() {} + +func (x *AlterCollectionSchemaRequest_DropRequest) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[300] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AlterCollectionSchemaRequest_DropRequest.ProtoReflect.Descriptor instead. +func (*AlterCollectionSchemaRequest_DropRequest) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{256, 2} +} + +func (m *AlterCollectionSchemaRequest_DropRequest) GetIdentifier() isAlterCollectionSchemaRequest_DropRequest_Identifier { + if m != nil { + return m.Identifier + } + return nil +} + +func (x *AlterCollectionSchemaRequest_DropRequest) GetFieldName() string { + if x, ok := x.GetIdentifier().(*AlterCollectionSchemaRequest_DropRequest_FieldName); ok { + return x.FieldName + } + return "" +} + +func (x *AlterCollectionSchemaRequest_DropRequest) GetFieldId() int64 { + if x, ok := x.GetIdentifier().(*AlterCollectionSchemaRequest_DropRequest_FieldId); ok { + return x.FieldId + } + return 0 +} + +func (x *AlterCollectionSchemaRequest_DropRequest) GetFunctionName() string { + if x, ok := x.GetIdentifier().(*AlterCollectionSchemaRequest_DropRequest_FunctionName); ok { + return x.FunctionName + } + return "" +} + +type isAlterCollectionSchemaRequest_DropRequest_Identifier interface { + isAlterCollectionSchemaRequest_DropRequest_Identifier() +} + +type AlterCollectionSchemaRequest_DropRequest_FieldName struct { + FieldName string `protobuf:"bytes,1,opt,name=field_name,json=fieldName,proto3,oneof"` +} + +type AlterCollectionSchemaRequest_DropRequest_FieldId struct { + FieldId int64 `protobuf:"varint,2,opt,name=field_id,json=fieldId,proto3,oneof"` +} + +type AlterCollectionSchemaRequest_DropRequest_FunctionName struct { + FunctionName string `protobuf:"bytes,3,opt,name=function_name,json=functionName,proto3,oneof"` +} + +func (*AlterCollectionSchemaRequest_DropRequest_FieldName) isAlterCollectionSchemaRequest_DropRequest_Identifier() { +} + +func (*AlterCollectionSchemaRequest_DropRequest_FieldId) isAlterCollectionSchemaRequest_DropRequest_Identifier() { +} + +func (*AlterCollectionSchemaRequest_DropRequest_FunctionName) isAlterCollectionSchemaRequest_DropRequest_Identifier() { +} + +// Action to perform on the collection schema +type AlterCollectionSchemaRequest_Action struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Op: + // + // *AlterCollectionSchemaRequest_Action_AddRequest + // *AlterCollectionSchemaRequest_Action_DropRequest + Op isAlterCollectionSchemaRequest_Action_Op `protobuf_oneof:"op"` +} + +func (x *AlterCollectionSchemaRequest_Action) Reset() { + *x = AlterCollectionSchemaRequest_Action{} + if protoimpl.UnsafeEnabled { + mi := &file_milvus_proto_msgTypes[301] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AlterCollectionSchemaRequest_Action) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AlterCollectionSchemaRequest_Action) ProtoMessage() {} + +func (x *AlterCollectionSchemaRequest_Action) ProtoReflect() protoreflect.Message { + mi := &file_milvus_proto_msgTypes[301] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AlterCollectionSchemaRequest_Action.ProtoReflect.Descriptor instead. +func (*AlterCollectionSchemaRequest_Action) Descriptor() ([]byte, []int) { + return file_milvus_proto_rawDescGZIP(), []int{256, 3} +} + +func (m *AlterCollectionSchemaRequest_Action) GetOp() isAlterCollectionSchemaRequest_Action_Op { + if m != nil { + return m.Op + } + return nil +} + +func (x *AlterCollectionSchemaRequest_Action) GetAddRequest() *AlterCollectionSchemaRequest_AddRequest { + if x, ok := x.GetOp().(*AlterCollectionSchemaRequest_Action_AddRequest); ok { + return x.AddRequest + } + return nil +} + +func (x *AlterCollectionSchemaRequest_Action) GetDropRequest() *AlterCollectionSchemaRequest_DropRequest { + if x, ok := x.GetOp().(*AlterCollectionSchemaRequest_Action_DropRequest); ok { + return x.DropRequest + } + return nil +} + +type isAlterCollectionSchemaRequest_Action_Op interface { + isAlterCollectionSchemaRequest_Action_Op() +} + +type AlterCollectionSchemaRequest_Action_AddRequest struct { + AddRequest *AlterCollectionSchemaRequest_AddRequest `protobuf:"bytes,1,opt,name=add_request,json=addRequest,proto3,oneof"` } type AlterCollectionSchemaRequest_Action_DropRequest struct { @@ -19955,80 +20941,155 @@ var file_milvus_proto_rawDesc = []byte{ 0x70, 0x73, 0x12, 0x35, 0x0a, 0x14, 0x69, 0x6e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, 0x13, 0x69, 0x6e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x65, - 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x73, 0x22, 0x8c, 0x01, 0x0a, 0x16, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, - 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x22, 0xbf, 0x01, 0x0a, 0x17, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x21, 0x0a, - 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x44, 0x22, 0x8d, 0x01, 0x0a, 0x13, 0x53, - 0x68, 0x6f, 0x77, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, - 0x62, 0x61, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x6b, 0x0a, 0x14, 0x53, 0x68, - 0x6f, 0x77, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x22, 0x95, 0x02, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, - 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, - 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x44, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, - 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x65, 0x78, 0x74, 0x72, - 0x61, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x0b, 0x18, 0x03, 0x22, - 0x96, 0x02, 0x0a, 0x11, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, - 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x72, - 0x61, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, + 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x73, 0x22, 0xd8, 0x02, 0x0a, 0x0e, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x5f, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x11, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x67, + 0x69, 0x63, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, + 0x74, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x37, 0x0a, 0x18, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x75, 0x74, 0x63, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x6c, + 0x61, 0x73, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x55, 0x74, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x22, 0x91, 0x02, 0x0a, 0x0d, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, + 0x74, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x74, 0x63, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0xbc, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, + 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, + 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, + 0xca, 0x3e, 0x04, 0x10, 0x27, 0x18, 0x03, 0x22, 0x90, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0xbe, 0x01, 0x0a, 0x18, 0x44, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, + 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x29, 0x18, 0x03, 0x22, 0x92, 0x01, 0x0a, 0x19, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x40, + 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x22, 0xe8, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, + 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, + 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, + 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, + 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x29, 0x18, 0x03, 0x22, 0xb9, 0x01, 0x0a, 0x16, + 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x42, 0x0a, 0x0a, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xba, 0x01, 0x0a, 0x14, 0x44, 0x72, 0x6f, 0x70, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, - 0x72, 0x52, 0x0b, 0x65, 0x78, 0x74, 0x72, 0x61, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1f, - 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x3a, - 0x07, 0xca, 0x3e, 0x04, 0x10, 0x0b, 0x18, 0x03, 0x22, 0xef, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, + 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, + 0x10, 0x28, 0x18, 0x03, 0x22, 0x8e, 0x01, 0x0a, 0x15, 0x44, 0x72, 0x6f, 0x70, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0xb9, 0x01, 0x0a, 0x13, 0x48, 0x61, 0x73, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, + 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, + 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x2a, 0x18, + 0x03, 0x22, 0x61, 0x0a, 0x14, 0x48, 0x61, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd4, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, @@ -20036,101 +21097,174 @@ var file_milvus_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x0c, 0x18, 0x03, 0x22, 0xdb, 0x03, 0x0a, 0x10, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x44, 0x12, 0x39, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, - 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x06, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x5f, 0x72, 0x6f, - 0x77, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, - 0x64, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, - 0x6f, 0x77, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x52, 0x6f, 0x77, 0x73, 0x12, 0x35, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x17, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x5f, - 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, - 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x6f, 0x77, 0x73, - 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6d, 0x69, 0x6e, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, - 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa2, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x54, 0x0a, 0x12, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xd9, 0x01, - 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x50, - 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, - 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, - 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, - 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x0c, 0x18, 0x03, 0x22, 0x96, 0x01, 0x0a, 0x1d, 0x47, 0x65, - 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x78, 0x61, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x65, 0x78, 0x61, + 0x63, 0x74, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x29, 0x18, 0x03, 0x22, 0xb2, 0x01, 0x0a, 0x19, + 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, + 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, + 0x22, 0x8c, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, + 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x22, + 0xbf, 0x01, 0x0a, 0x17, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x77, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x52, - 0x6f, 0x77, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x77, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x6f, - 0x77, 0x73, 0x22, 0xd1, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, - 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x75, 0x69, + 0x6c, 0x64, 0x49, 0x44, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, + 0x44, 0x22, 0x8d, 0x01, 0x0a, 0x13, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, + 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, + 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x22, 0x6b, 0x0a, 0x14, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, - 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, - 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x03, 0x52, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x22, 0x95, + 0x02, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, + 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, + 0x72, 0x52, 0x0b, 0x65, 0x78, 0x74, 0x72, 0x61, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1d, + 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, - 0x3e, 0x04, 0x10, 0x0c, 0x18, 0x03, 0x22, 0xa4, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, - 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x66, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xcd, 0x01, - 0x0a, 0x10, 0x44, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x3e, 0x04, 0x10, 0x0b, 0x18, 0x03, 0x22, 0x96, 0x02, 0x0a, 0x11, 0x41, 0x6c, 0x74, 0x65, 0x72, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, + 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, + 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x44, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x65, 0x78, 0x74, 0x72, 0x61, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, + 0x6b, 0x65, 0x79, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x0b, 0x18, 0x03, 0x22, + 0xef, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, + 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x0c, 0x18, + 0x03, 0x22, 0xdb, 0x03, 0x0a, 0x10, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x44, 0x12, + 0x39, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, + 0x69, 0x72, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x1d, 0x0a, 0x0a, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x35, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x35, 0x0a, 0x17, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x14, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x65, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, + 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, + 0xa2, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x54, + 0x0a, 0x12, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x11, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xd9, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, + 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x0c, 0x18, 0x03, + 0x22, 0x96, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x75, 0x69, + 0x6c, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x6f, 0x77, 0x73, 0x22, 0xd1, 0x01, 0x0a, 0x14, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, @@ -20142,33 +21276,31 @@ var file_milvus_proto_rawDesc = []byte{ 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x0d, 0x18, 0x03, 0x22, 0x88, 0x03, - 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, - 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0b, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x68, - 0x61, 0x73, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, - 0x68, 0x61, 0x73, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, - 0x72, 0x6f, 0x77, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x52, - 0x6f, 0x77, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x21, - 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x08, 0x18, 0x03, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0xd4, 0x01, 0x0a, 0x19, 0x41, 0x64, 0x64, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, + 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x0c, 0x18, 0x03, 0x22, 0xa4, 0x01, + 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xcd, 0x01, 0x0a, 0x10, 0x44, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, + 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, + 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, + 0x10, 0x0d, 0x18, 0x03, 0x22, 0x88, 0x03, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, @@ -20176,13 +21308,109 @@ var file_milvus_proto_rawDesc = []byte{ 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x47, 0x18, 0x03, 0x22, - 0xaa, 0x02, 0x0a, 0x1f, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x3f, 0x0a, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x68, 0x61, 0x73, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x12, + 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x08, 0x18, + 0x03, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, + 0xd4, 0x01, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, + 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, + 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x07, 0xca, + 0x3e, 0x04, 0x10, 0x47, 0x18, 0x03, 0x22, 0xaa, 0x02, 0x0a, 0x1f, 0x41, 0x64, 0x64, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, + 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, + 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, + 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, + 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, + 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x12, 0x66, 0x0a, 0x19, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x5f, 0x61, 0x72, 0x72, + 0x61, 0x79, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x53, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x52, 0x16, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, + 0x47, 0x18, 0x03, 0x22, 0x97, 0x02, 0x0a, 0x1c, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, + 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x4b, 0x0a, 0x0e, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0e, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, + 0x10, 0x01, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xbe, 0x02, + 0x0a, 0x1e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, + 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4b, 0x0a, + 0x0e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0e, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, + 0x01, 0x10, 0x01, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xf0, + 0x01, 0x0a, 0x1d, 0x44, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, + 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x12, 0xca, + 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x01, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x01, 0x22, 0xf7, 0x03, 0x0a, 0x0d, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, @@ -20190,70 +21418,52 @@ var file_milvus_proto_rawDesc = []byte{ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x66, 0x0a, 0x19, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x16, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x47, 0x18, 0x03, 0x22, 0x97, 0x02, 0x0a, - 0x1c, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, - 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, - 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x4b, 0x0a, 0x0e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x52, 0x0e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x01, 0x18, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xbe, 0x02, 0x0a, 0x1e, 0x41, 0x6c, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, - 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, - 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, - 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x0e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x52, 0x0e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x01, 0x18, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xf0, 0x01, 0x0a, 0x1d, 0x44, 0x72, 0x6f, 0x70, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, - 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, - 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, - 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x01, 0x18, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xf7, 0x03, 0x0a, 0x0d, 0x55, - 0x70, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, + 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, + 0x0a, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x08, 0x68, 0x61, 0x73, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x19, 0x0a, 0x08, + 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x70, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x4f, 0x70, 0x73, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x19, 0x18, 0x03, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0xcc, 0x02, 0x0a, 0x0e, + 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x33, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x03, 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x49, 0x44, 0x73, 0x52, 0x03, 0x49, 0x44, 0x73, 0x12, + 0x1d, 0x0a, 0x0a, 0x73, 0x75, 0x63, 0x63, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x75, 0x63, 0x63, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, + 0x0a, 0x09, 0x65, 0x72, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x08, 0x65, 0x72, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x61, + 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0c, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x43, 0x6e, 0x74, 0x12, 0x1d, + 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x75, 0x70, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x75, 0x70, 0x73, 0x65, 0x72, 0x74, 0x43, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xc2, 0x04, 0x0a, 0x0d, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, @@ -20263,1926 +21473,2184 @@ var file_milvus_proto_rawDesc = []byte{ 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x68, - 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x68, 0x61, 0x73, - 0x68, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x6f, 0x77, - 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, - 0x12, 0x29, 0x0a, 0x10, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, - 0x70, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4f, 0x70, 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x73, 0x3a, 0x07, 0xca, - 0x3e, 0x04, 0x10, 0x19, 0x18, 0x03, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x22, 0xcc, 0x02, 0x0a, 0x0e, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x03, - 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, - 0x49, 0x44, 0x73, 0x52, 0x03, 0x49, 0x44, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x75, 0x63, 0x63, - 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x75, - 0x63, 0x63, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x5f, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x72, 0x72, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, - 0x64, 0x67, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x63, 0x6b, 0x6e, - 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x65, - 0x72, 0x74, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x69, 0x6e, - 0x73, 0x65, 0x72, 0x74, 0x43, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x73, 0x65, 0x72, 0x74, - 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x73, 0x65, - 0x72, 0x74, 0x43, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x22, 0x91, 0x04, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, - 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x65, 0x78, 0x70, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x65, 0x78, 0x70, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6b, 0x65, 0x79, - 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x68, 0x61, 0x73, 0x68, 0x4b, 0x65, 0x79, - 0x73, 0x12, 0x52, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, - 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x6c, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x72, 0x5f, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x08, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x12, 0x65, 0x78, 0x70, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x1a, 0x69, 0x0a, 0x17, 0x45, 0x78, 0x70, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x38, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x07, - 0xca, 0x3e, 0x04, 0x10, 0x09, 0x18, 0x03, 0x22, 0xef, 0x03, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x64, 0x73, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x6c, 0x12, 0x2b, - 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x70, 0x6c, 0x61, 0x63, 0x65, - 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x37, 0x0a, 0x08, 0x64, - 0x73, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x73, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x64, 0x73, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0c, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x0e, 0x0a, 0x02, - 0x6e, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x6e, 0x71, 0x12, 0x6f, 0x0a, 0x14, - 0x65, 0x78, 0x70, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x53, 0x75, 0x62, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x65, 0x78, 0x70, 0x72, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x21, 0x0a, - 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x1a, 0x69, 0x0a, 0x17, 0x45, 0x78, 0x70, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x38, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0xf0, 0x0a, 0x0a, 0x0d, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, - 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, - 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6c, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x6c, 0x12, 0x2d, 0x0a, 0x11, 0x70, 0x6c, - 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, - 0x6c, 0x64, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2c, 0x0a, 0x03, 0x69, 0x64, 0x73, - 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x49, 0x44, 0x73, - 0x48, 0x00, 0x52, 0x03, 0x69, 0x64, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x64, 0x73, 0x6c, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x44, 0x73, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x64, 0x73, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x46, 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, - 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, - 0x10, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2f, 0x0a, 0x13, 0x67, 0x75, 0x61, 0x72, - 0x61, 0x6e, 0x74, 0x65, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x67, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x6e, 0x71, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x6e, 0x71, 0x12, 0x2d, 0x0a, 0x13, 0x6e, 0x6f, 0x74, - 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x61, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6e, 0x6f, 0x74, 0x52, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x52, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0e, 0x20, + 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x78, 0x70, 0x72, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x78, 0x70, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x68, + 0x61, 0x73, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, + 0x68, 0x61, 0x73, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x52, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x36, 0x0a, 0x17, - 0x75, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x75, - 0x73, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x63, 0x79, 0x12, 0x37, 0x0a, 0x16, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x62, - 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x13, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x42, 0x79, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x40, 0x0a, - 0x08, 0x73, 0x75, 0x62, 0x5f, 0x72, 0x65, 0x71, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x73, 0x75, 0x62, 0x52, 0x65, 0x71, 0x73, 0x12, - 0x6c, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x65, 0x78, 0x70, 0x72, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, - 0x0e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, - 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x0b, 0x68, - 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x65, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, - 0x65, 0x72, 0x52, 0x0b, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x65, 0x72, 0x12, - 0x59, 0x0a, 0x12, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x11, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x69, 0x0a, 0x17, 0x45, 0x78, - 0x70, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x0e, 0x18, 0x03, 0x42, 0x0e, - 0x0a, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x4b, 0x0a, 0x04, - 0x48, 0x69, 0x74, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x03, 0x52, 0x03, 0x49, 0x44, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x77, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x07, 0x72, 0x6f, 0x77, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x02, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x22, 0xcd, 0x01, 0x0a, 0x0d, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x3f, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x73, 0x22, 0xf7, 0x05, 0x0a, 0x13, 0x48, 0x79, - 0x62, 0x72, 0x69, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, - 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, - 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3e, - 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x42, - 0x0a, 0x0b, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x06, 0x20, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x6c, 0x0a, 0x14, + 0x65, 0x78, 0x70, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, + 0x78, 0x70, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x65, 0x78, 0x70, 0x72, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, + 0x17, 0x45, 0x78, 0x70, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x09, 0x18, + 0x03, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, + 0xef, 0x03, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x64, 0x73, 0x6c, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, + 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x10, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x37, 0x0a, 0x08, 0x64, 0x73, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x73, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x07, 0x64, 0x73, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, 0x0d, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0a, 0x72, 0x61, 0x6e, 0x6b, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x74, 0x72, - 0x61, 0x76, 0x65, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2f, 0x0a, - 0x13, 0x67, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x67, 0x75, 0x61, 0x72, - 0x61, 0x6e, 0x74, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2d, - 0x0a, 0x13, 0x6e, 0x6f, 0x74, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x61, 0x6c, 0x6c, - 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6e, 0x6f, 0x74, - 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x23, 0x0a, - 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x0a, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x73, 0x12, 0x52, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x36, 0x0a, 0x17, 0x75, 0x73, 0x65, 0x5f, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x75, 0x73, 0x65, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x49, - 0x0a, 0x0e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x0d, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x3a, 0x07, 0xca, 0x3e, - 0x04, 0x10, 0x0e, 0x18, 0x03, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x0c, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, - 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, - 0x0f, 0x20, 0x03, 0x22, 0xc7, 0x07, 0x0a, 0x0d, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x67, 0x49, - 0x44, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, - 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6c, - 0x6c, 0x53, 0x65, 0x67, 0x49, 0x44, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x6f, - 0x6c, 0x6c, 0x53, 0x65, 0x67, 0x49, 0x44, 0x73, 0x12, 0x63, 0x0a, 0x11, 0x66, 0x6c, 0x75, 0x73, - 0x68, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x67, 0x49, 0x44, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x6c, - 0x6c, 0x53, 0x65, 0x67, 0x49, 0x44, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x66, 0x6c, - 0x75, 0x73, 0x68, 0x43, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x67, 0x49, 0x44, 0x73, 0x12, 0x5d, 0x0a, - 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, - 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x53, - 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x63, - 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x57, 0x0a, 0x0d, - 0x63, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x74, 0x73, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x75, 0x73, - 0x68, 0x54, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, - 0x75, 0x73, 0x68, 0x54, 0x73, 0x12, 0x53, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x5f, 0x63, 0x70, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x70, 0x73, 0x1a, 0x5d, 0x0a, 0x0f, 0x43, 0x6f, - 0x6c, 0x6c, 0x53, 0x65, 0x67, 0x49, 0x44, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x6e, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x02, 0x6e, 0x71, 0x12, 0x6f, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x72, 0x5f, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x12, 0x65, 0x78, 0x70, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x17, 0x45, 0x78, 0x70, 0x72, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x22, 0xf0, 0x0a, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, + 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, + 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, + 0x73, 0x6c, 0x12, 0x2d, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, + 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, + 0x10, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x2c, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x49, 0x44, 0x73, 0x48, 0x00, 0x52, 0x03, 0x69, 0x64, 0x73, 0x12, + 0x37, 0x0a, 0x08, 0x64, 0x73, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x73, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x07, 0x64, 0x73, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x46, 0x0a, + 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0f, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x2f, 0x0a, 0x13, 0x67, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x67, + 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x6e, 0x71, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x6e, + 0x71, 0x12, 0x2d, 0x0a, 0x13, 0x6e, 0x6f, 0x74, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, + 0x61, 0x6c, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, + 0x6e, 0x6f, 0x74, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x74, 0x61, + 0x12, 0x52, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x36, 0x0a, 0x17, 0x75, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x75, 0x73, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x37, 0x0a, 0x16, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x62, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, + 0x52, 0x13, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x79, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x5f, 0x72, 0x65, 0x71, + 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, 0x75, + 0x62, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, + 0x73, 0x75, 0x62, 0x52, 0x65, 0x71, 0x73, 0x12, 0x6c, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x72, 0x5f, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x12, 0x65, 0x78, 0x70, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x0e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x52, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x0b, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, + 0x65, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x48, + 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x65, 0x72, 0x52, 0x0b, 0x68, 0x69, 0x67, 0x68, + 0x6c, 0x69, 0x67, 0x68, 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x12, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x17, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, + 0x11, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x1a, 0x69, 0x0a, 0x17, 0x45, 0x78, 0x70, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x34, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x38, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4c, 0x6f, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x62, 0x0a, 0x14, 0x46, 0x6c, 0x75, - 0x73, 0x68, 0x43, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x67, 0x49, 0x44, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x34, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4c, 0x6f, 0x6e, 0x67, 0x41, 0x72, 0x72, - 0x61, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, - 0x12, 0x43, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, - 0x3e, 0x0a, 0x10, 0x43, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x54, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, - 0x5c, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x70, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd3, 0x06, - 0x0a, 0x0c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, - 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, - 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x07, 0xca, + 0x3e, 0x04, 0x10, 0x0e, 0x18, 0x03, 0x42, 0x0e, 0x0a, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x22, 0x4b, 0x0a, 0x04, 0x48, 0x69, 0x74, 0x73, 0x12, 0x10, 0x0a, 0x03, + 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x49, 0x44, 0x73, 0x12, 0x19, + 0x0a, 0x08, 0x72, 0x6f, 0x77, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, + 0x52, 0x07, 0x72, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x02, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x73, 0x22, 0xcd, 0x01, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3f, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x78, 0x70, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x65, 0x78, 0x70, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, - 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x2f, 0x0a, 0x13, 0x67, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x67, 0x75, - 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x12, 0x44, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2d, 0x0a, 0x13, 0x6e, 0x6f, 0x74, 0x5f, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x0a, 0x20, + 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, + 0x73, 0x22, 0xf7, 0x05, 0x0a, 0x13, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, + 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, + 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, + 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0b, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0a, + 0x72, 0x61, 0x6e, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x72, + 0x61, 0x76, 0x65, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2f, 0x0a, 0x13, 0x67, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, + 0x65, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x12, 0x67, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2d, 0x0a, 0x13, 0x6e, 0x6f, 0x74, 0x5f, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6e, 0x6f, 0x74, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x6c, - 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x52, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x36, 0x0a, 0x17, 0x75, 0x73, 0x65, - 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x75, 0x73, 0x65, 0x44, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x12, 0x6b, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x39, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x65, 0x78, 0x70, 0x72, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x21, - 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x1a, 0x69, 0x0a, 0x17, 0x45, 0x78, 0x70, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x38, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x07, 0xca, 0x3e, - 0x04, 0x10, 0x10, 0x18, 0x03, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x22, 0x4a, 0x0a, 0x0e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, - 0x64, 0x69, 0x63, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x52, 0x0a, 0x11, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x10, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x36, + 0x0a, 0x17, 0x75, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x15, 0x75, 0x73, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x49, 0x0a, 0x0e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x52, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x0e, 0x18, 0x03, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x0c, + 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, + 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, + 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x0f, 0x20, 0x03, 0x22, 0xc7, 0x07, 0x0a, 0x0d, + 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x0b, 0x63, + 0x6f, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x67, 0x49, 0x44, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x32, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x67, 0x49, 0x44, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x67, 0x49, 0x44, 0x73, + 0x12, 0x63, 0x0a, 0x11, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x5f, 0x73, + 0x65, 0x67, 0x49, 0x44, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x46, 0x6c, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x67, 0x49, 0x44, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x6c, 0x6c, 0x53, + 0x65, 0x67, 0x49, 0x44, 0x73, 0x12, 0x5d, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x5f, 0x73, 0x65, + 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x61, 0x6c, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x12, 0x57, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, 0x75, + 0x73, 0x68, 0x5f, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x43, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x54, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x54, 0x73, 0x12, 0x53, 0x0a, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x70, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x70, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, + 0x70, 0x73, 0x1a, 0x5d, 0x0a, 0x0f, 0x43, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x67, 0x49, 0x44, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x34, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4c, 0x6f, 0x6e, - 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x22, - 0xed, 0x02, 0x0a, 0x0c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, - 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3f, 0x0a, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, + 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x62, 0x0a, 0x14, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x6c, 0x6c, 0x53, 0x65, + 0x67, 0x49, 0x44, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x34, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x23, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x54, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x10, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, - 0x69, 0x63, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x52, - 0x0e, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x22, - 0x6b, 0x0a, 0x0b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x1d, - 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x73, 0x12, 0x17, 0x0a, - 0x06, 0x73, 0x74, 0x72, 0x5f, 0x70, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x72, 0x50, 0x6b, 0x12, 0x17, 0x0a, 0x06, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x6b, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x74, 0x50, 0x6b, 0x42, - 0x0b, 0x0a, 0x09, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x5f, 0x70, 0x6b, 0x22, 0xb1, 0x01, 0x0a, - 0x09, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x08, 0x69, 0x64, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x49, 0x44, 0x73, 0x52, 0x07, - 0x69, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x22, 0x97, 0x01, 0x0a, 0x0c, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x41, 0x72, 0x72, 0x61, - 0x79, 0x12, 0x3b, 0x0a, 0x08, 0x69, 0x64, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x49, 0x44, 0x73, 0x48, 0x00, 0x52, 0x07, 0x69, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x41, - 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x41, 0x72, 0x72, 0x61, - 0x79, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x72, 0x72, 0x61, 0x79, 0x22, 0xfc, 0x01, 0x0a, 0x13, 0x43, - 0x61, 0x6c, 0x63, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, - 0x62, 0x61, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6f, 0x70, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x52, 0x06, 0x6f, 0x70, 0x4c, 0x65, 0x66, 0x74, - 0x12, 0x3c, 0x0a, 0x08, 0x6f, 0x70, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x41, 0x72, 0x72, 0x61, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x39, - 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x4c, 0x6f, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x43, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x61, + 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x43, 0x6f, 0x6c, 0x6c, 0x46, + 0x6c, 0x75, 0x73, 0x68, 0x54, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5c, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x43, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, + 0x73, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd3, 0x06, 0x0a, 0x0c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, + 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x78, + 0x70, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x78, 0x70, 0x72, 0x12, 0x23, + 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, + 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2f, 0x0a, 0x13, 0x67, 0x75, 0x61, 0x72, 0x61, + 0x6e, 0x74, 0x65, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x67, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x44, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, - 0x72, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xd1, 0x01, 0x0a, 0x13, 0x43, 0x61, - 0x6c, 0x63, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x73, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x69, - 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x49, - 0x6e, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x74, 0x44, 0x69, - 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x6c, 0x6f, - 0x61, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x48, 0x00, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x61, 0x74, - 0x44, 0x69, 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x72, 0x72, 0x61, 0x79, 0x22, 0x54, 0x0a, - 0x0e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, - 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x22, 0xc2, 0x01, 0x0a, 0x0f, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, - 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x64, 0x62, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, - 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x72, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2d, + 0x0a, 0x13, 0x6e, 0x6f, 0x74, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x61, 0x6c, 0x6c, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6e, 0x6f, 0x74, + 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x52, 0x0a, + 0x11, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, + 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, + 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x12, 0x36, 0x0a, 0x17, 0x75, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x15, 0x75, 0x73, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x43, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x6b, 0x0a, 0x14, 0x65, 0x78, 0x70, + 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x12, 0x65, 0x78, 0x70, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x17, 0x45, 0x78, 0x70, + 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x10, 0x18, 0x03, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x4a, 0x0a, 0x0e, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x12, 0x38, 0x0a, + 0x07, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4c, 0x6f, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x52, 0x07, + 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x22, 0xed, 0x02, 0x0a, 0x0c, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3f, 0x0a, + 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x27, + 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x70, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x65, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x52, 0x0e, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x22, 0x6b, 0x0a, 0x0b, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x54, 0x73, 0x12, 0x17, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x5f, 0x70, 0x6b, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x72, 0x50, 0x6b, 0x12, 0x17, + 0x0a, 0x06, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, + 0x52, 0x05, 0x69, 0x6e, 0x74, 0x50, 0x6b, 0x42, 0x0b, 0x0a, 0x09, 0x63, 0x75, 0x72, 0x73, 0x6f, + 0x72, 0x5f, 0x70, 0x6b, 0x22, 0xb1, 0x01, 0x0a, 0x09, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x49, + 0x44, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x08, 0x69, 0x64, + 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x2e, 0x49, 0x44, 0x73, 0x52, 0x07, 0x69, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, + 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x97, 0x01, 0x0a, 0x0c, 0x56, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x3b, 0x0a, 0x08, 0x69, 0x64, 0x5f, + 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x73, 0x48, 0x00, 0x52, 0x07, 0x69, + 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x41, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, + 0x72, 0x72, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x09, + 0x64, 0x61, 0x74, 0x61, 0x41, 0x72, 0x72, 0x61, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x72, 0x72, + 0x61, 0x79, 0x22, 0xfc, 0x01, 0x0a, 0x13, 0x43, 0x61, 0x6c, 0x63, 0x44, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, + 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, + 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, + 0x6f, 0x70, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x73, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x26, 0x18, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x66, 0x0a, 0x0b, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, - 0x22, 0xc7, 0x03, 0x0a, 0x10, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0c, 0x66, 0x6c, - 0x75, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x54, 0x73, - 0x12, 0x4c, 0x0a, 0x0d, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, - 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x02, 0x18, 0x01, - 0x52, 0x0c, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x5d, - 0x0a, 0x0e, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x6d, 0x73, 0x67, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, - 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x6c, - 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x4d, 0x73, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0c, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x4d, 0x73, 0x67, 0x73, 0x12, 0x43, 0x0a, - 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x1a, 0x66, 0x0a, 0x11, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x4d, 0x73, - 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x49, - 0x6d, 0x6d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x84, 0x01, 0x0a, 0x0e, 0x46, - 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x17, 0x0a, - 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x59, 0x0a, 0x12, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x11, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x73, 0x22, 0xc0, 0x03, 0x0a, 0x15, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0b, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, - 0x4c, 0x6f, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x52, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x4a, 0x0a, 0x11, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4c, 0x6f, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x52, 0x0f, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, - 0x0a, 0x08, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x54, 0x73, 0x12, 0x5b, 0x0a, 0x0b, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x70, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, + 0x76, 0x75, 0x73, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, + 0x52, 0x06, 0x6f, 0x70, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x6f, 0x70, 0x5f, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x52, 0x07, 0x6f, + 0x70, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x39, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x22, 0xd1, 0x01, 0x0a, 0x13, 0x43, 0x61, 0x6c, 0x63, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3a, + 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x49, 0x6e, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x48, + 0x00, 0x52, 0x07, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0a, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x48, + 0x00, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x44, 0x69, 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x61, 0x72, 0x72, 0x61, 0x79, 0x22, 0x54, 0x0a, 0x0e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, + 0x6c, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xc2, 0x01, 0x0a, 0x0f, + 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, + 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4c, + 0x0a, 0x0d, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, + 0x68, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, + 0x66, 0x6c, 0x75, 0x73, 0x68, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x3a, 0x12, 0xca, 0x3e, + 0x0f, 0x08, 0x01, 0x10, 0x26, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, + 0x22, 0x66, 0x0a, 0x0b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x63, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x63, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x22, 0xc7, 0x03, 0x0a, 0x10, 0x46, 0x6c, 0x75, + 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0c, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, + 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x66, 0x6c, + 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x54, 0x73, 0x12, 0x4c, 0x0a, 0x0d, 0x66, 0x6c, 0x75, 0x73, + 0x68, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x5d, 0x0a, 0x0e, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, + 0x61, 0x6c, 0x6c, 0x5f, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x43, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x43, 0x70, 0x73, 0x1a, 0x5c, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x43, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x73, - 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0xce, 0x02, 0x0a, 0x15, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, - 0x0a, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x37, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, - 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, - 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, - 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x20, - 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x40, 0x0a, 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0xd3, 0x03, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, - 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, - 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6e, - 0x75, 0x6d, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6e, - 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x44, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x44, 0x12, - 0x1a, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x42, - 0x02, 0x18, 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x12, 0x37, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x73, 0x18, - 0x0a, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x73, 0x12, 0x37, - 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x4d, 0x73, + 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, + 0x6c, 0x4d, 0x73, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x66, 0x0a, 0x11, 0x46, 0x6c, + 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x4d, 0x73, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x49, 0x6d, 0x6d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x84, 0x01, 0x0a, 0x0e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x59, + 0x0a, 0x12, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0xc0, 0x03, 0x0a, 0x15, 0x46, 0x6c, + 0x75, 0x73, 0x68, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0b, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4c, 0x6f, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, + 0x79, 0x52, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x4a, 0x0a, + 0x11, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4c, + 0x6f, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x52, 0x0f, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x61, + 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, + 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, + 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x54, + 0x73, 0x12, 0x5b, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x70, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, + 0x73, 0x68, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x70, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x70, 0x73, 0x1a, 0x5c, + 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xce, 0x02, 0x0a, + 0x15, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, + 0x6d, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6e, 0x75, + 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x37, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x37, + 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x73, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x53, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8e, 0x01, - 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, - 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x8f, - 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x3b, 0x0a, 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, - 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x75, 0x6d, 0x6d, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x0d, 0x44, 0x75, 0x6d, 0x6d, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x36, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x93, 0x01, + 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, + 0x61, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x61, 0x6d, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x5f, 0x0a, - 0x11, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, - 0x62, 0x61, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x8c, - 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xbc, 0x01, - 0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x40, 0x0a, 0x0a, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, - 0x72, 0x52, 0x09, 0x65, 0x78, 0x74, 0x72, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xd5, 0x01, 0x0a, - 0x0f, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, - 0x12, 0x38, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x53, 0x0a, 0x13, 0x73, 0x75, - 0x62, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x73, 0x75, 0x62, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, - 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x22, 0x1b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, - 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0xfd, 0x01, 0x0a, 0x12, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, - 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x72, - 0x63, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, - 0x73, 0x72, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x73, 0x74, - 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, - 0x64, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x65, - 0x61, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x10, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x11, 0x18, - 0x05, 0x22, 0xf5, 0x02, 0x0a, 0x17, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, - 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x74, 0x72, 0x61, 0x76, 0x65, - 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x61, 0x6a, 0x6f, - 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, - 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x03, 0x52, - 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6c, - 0x30, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0c, 0x6c, 0x30, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, - 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x07, 0x18, 0x04, 0x22, 0xa5, 0x01, 0x0a, 0x18, 0x4d, 0x61, - 0x6e, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x40, 0x0a, + 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x22, + 0xd3, 0x03, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x1d, + 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, + 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, + 0x65, 0x49, 0x44, 0x12, 0x37, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x6e, + 0x6f, 0x64, 0x65, 0x49, 0x64, 0x73, 0x12, 0x37, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8e, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, + 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, + 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, - 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, - 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, - 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x3f, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, - 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x22, 0xab, 0x02, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x70, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, - 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x12, 0x24, 0x0a, 0x0d, - 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x50, 0x6c, 0x61, 0x6e, - 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x50, - 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x12, 0x22, 0x0a, 0x0c, - 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0c, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, - 0x22, 0x3f, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, - 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x22, 0xd7, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3b, 0x0a, 0x05, 0x69, + 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x75, 0x6d, 0x6d, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x0d, 0x44, + 0x75, 0x6d, 0x6d, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x83, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x48, 0x0a, 0x0a, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x70, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x0a, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x47, 0x0a, 0x13, 0x43, - 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x03, 0x52, 0x07, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, - 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, - 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x03, 0x52, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x12, 0x19, 0x0a, - 0x08, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x54, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, - 0x2b, 0x18, 0x04, 0x22, 0x66, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x07, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x22, 0xff, 0x02, 0x0a, 0x17, - 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, - 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0c, 0x66, 0x6c, 0x75, - 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, - 0x02, 0x18, 0x01, 0x52, 0x0a, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x54, 0x73, 0x12, - 0x1b, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x0d, - 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, - 0x6c, 0x6c, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x66, 0x6c, - 0x75, 0x73, 0x68, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x61, 0x0a, 0x0d, 0x66, 0x6c, - 0x75, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x73, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x3d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, - 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, - 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x54, 0x73, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0b, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x54, 0x73, 0x73, 0x1a, 0x3e, 0x0a, - 0x10, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x54, 0x73, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb4, 0x01, - 0x0a, 0x18, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x18, 0x0a, 0x07, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x07, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x12, 0x49, 0x0a, 0x0c, 0x66, 0x6c, 0x75, - 0x73, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x5f, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, + 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, + 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, + 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x12, + 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, + 0x6f, 0x6c, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x40, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x09, 0x65, 0x78, 0x74, 0x72, 0x61, + 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xd5, 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, + 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x53, 0x0a, 0x13, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, + 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x73, 0x22, 0xe9, 0x01, 0x0a, 0x0d, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, - 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x75, 0x0a, 0x17, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, - 0x75, 0x73, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x3d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, - 0x6c, 0x75, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x15, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x75, 0x73, 0x68, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x1a, 0x48, 0x0a, 0x1a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0xbf, 0x02, 0x0a, 0x0d, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x77, 0x5f, 0x62, - 0x61, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x6f, 0x77, 0x42, - 0x61, 0x73, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x07, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x12, - 0x18, 0x01, 0x22, 0x5b, 0x0a, 0x0e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x73, - 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, - 0x2b, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x22, 0xe7, 0x02, 0x0a, - 0x16, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x36, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x72, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x03, 0x52, 0x06, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x05, 0x69, 0x6e, - 0x66, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x1b, 0x0a, 0x19, + 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xfd, 0x01, 0x0a, 0x12, 0x4c, 0x6f, + 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, + 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x72, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x49, + 0x44, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x73, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49, + 0x44, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x10, 0x73, + 0x65, 0x61, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x12, + 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, + 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x11, 0x18, 0x05, 0x22, 0xf5, 0x02, 0x0a, 0x17, 0x4d, 0x61, + 0x6e, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, + 0x65, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, + 0x69, 0x6d, 0x65, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x61, 0x6a, + 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, + 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, + 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x30, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6c, 0x30, 0x43, 0x6f, 0x6d, + 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x07, 0x18, + 0x04, 0x22, 0xa5, 0x01, 0x0a, 0x18, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x6c, 0x61, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x3f, 0x0a, 0x19, 0x47, 0x65, 0x74, + 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xab, 0x02, 0x0a, 0x1a, 0x47, + 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x05, 0x69, 0x6e, - 0x66, 0x6f, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x5f, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x54, 0x73, 0x22, 0x70, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, - 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, - 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3a, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6c, + 0x61, 0x6e, 0x4e, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x50, + 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, + 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x50, 0x6c, + 0x61, 0x6e, 0x4e, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x50, 0x6c, + 0x61, 0x6e, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x66, 0x61, 0x69, 0x6c, + 0x65, 0x64, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x22, 0x3f, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, + 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xd7, 0x01, 0x0a, 0x1a, 0x47, 0x65, + 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3a, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x0a, 0x6d, 0x65, 0x72, + 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x72, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x73, 0x22, 0x47, 0x0a, 0x13, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x9c, 0x01, 0x0a, + 0x14, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x49, 0x44, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x74, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x54, 0x73, + 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, + 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x2b, 0x18, 0x04, 0x22, 0x66, 0x0a, 0x15, 0x47, + 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x74, 0x61, 0x73, - 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, - 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, 0xd6, 0x01, 0x0a, - 0x12, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, - 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x10, 0x77, 0x69, 0x74, - 0x68, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0e, 0x77, 0x69, 0x74, 0x68, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4e, 0x6f, - 0x64, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, - 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, - 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6c, 0x75, + 0x73, 0x68, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x6c, 0x75, 0x73, + 0x68, 0x65, 0x64, 0x22, 0xff, 0x02, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, + 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x3c, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, - 0x22, 0xb0, 0x03, 0x0a, 0x0b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x49, 0x44, 0x12, 0x22, - 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x48, 0x0a, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x64, - 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x03, 0x52, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x73, 0x12, 0x2e, 0x0a, 0x13, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x61, 0x0a, 0x11, - 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6e, 0x6f, 0x64, - 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4e, 0x75, 0x6d, 0x4f, 0x75, 0x74, - 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, - 0x6e, 0x75, 0x6d, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x1a, - 0x42, 0x0a, 0x14, 0x4e, 0x75, 0x6d, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x6f, - 0x64, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x8e, 0x01, 0x0a, 0x0c, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x49, 0x44, - 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, - 0x72, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x6d, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x6d, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x6e, 0x6f, 0x64, - 0x65, 0x49, 0x64, 0x73, 0x22, 0x85, 0x02, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, - 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x74, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x55, 0x74, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, - 0x12, 0x36, 0x0a, 0x17, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x75, 0x74, 0x63, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x15, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x55, 0x74, 0x63, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, - 0x13, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xa4, 0x02, 0x0a, - 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, + 0x65, 0x12, 0x24, 0x0a, 0x0c, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x74, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x66, 0x6c, 0x75, + 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x54, 0x73, 0x12, 0x1b, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x64, 0x62, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x73, 0x12, 0x61, 0x0a, 0x0d, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, + 0x74, 0x73, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, + 0x54, 0x73, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x41, + 0x6c, 0x6c, 0x54, 0x73, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, + 0x6c, 0x54, 0x73, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb4, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, + 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6c, 0x75, 0x73, 0x68, + 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, + 0x64, 0x12, 0x49, 0x0a, 0x0c, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, + 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, + 0x0b, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x22, 0xe9, 0x01, 0x0a, + 0x0d, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, + 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x75, 0x0a, 0x17, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, + 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x1a, 0x48, + 0x0a, 0x1a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x75, 0x73, + 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xbf, 0x02, 0x0a, 0x0d, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, + 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x77, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x08, 0x72, 0x6f, 0x77, 0x42, 0x61, 0x73, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, + 0x6f, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x12, 0x18, 0x01, 0x22, 0x5b, 0x0a, 0x0e, 0x49, 0x6d, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, + 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x2b, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x6d, + 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, + 0x74, 0x61, 0x73, 0x6b, 0x22, 0xe7, 0x02, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x36, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x72, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x08, 0x72, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x64, 0x5f, + 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x69, 0x64, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x37, 0x0a, 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x50, 0x61, 0x69, 0x72, 0x52, 0x05, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x73, 0x22, 0x70, + 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, + 0x22, 0x91, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, + 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x41, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x74, + 0x61, 0x73, 0x6b, 0x73, 0x22, 0xd6, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, + 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x12, 0x28, 0x0a, 0x10, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x77, 0x69, 0x74, + 0x68, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x88, 0x01, + 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3c, 0x0a, 0x08, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x22, 0xb0, 0x03, 0x0a, 0x0b, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x03, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, + 0x48, 0x0a, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, + 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x6e, 0x6f, 0x64, + 0x65, 0x49, 0x64, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x11, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x61, 0x0a, 0x11, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x75, 0x74, 0x62, + 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x35, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x49, 0x6e, 0x66, + 0x6f, 0x2e, 0x4e, 0x75, 0x6d, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x6f, 0x64, + 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x4f, 0x75, 0x74, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x1a, 0x42, 0x0a, 0x14, 0x4e, 0x75, 0x6d, 0x4f, 0x75, + 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8e, 0x01, 0x0a, 0x0c, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x1a, 0x0a, 0x08, + 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, + 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x6d, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x64, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x03, 0x52, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x73, 0x22, 0x85, 0x02, 0x0a, + 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x6c, 0x64, 0x50, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x6c, 0x64, - 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x50, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, - 0x65, 0x77, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x74, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x55, 0x74, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, - 0x12, 0x36, 0x0a, 0x17, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x75, 0x74, 0x63, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x15, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x55, 0x74, 0x63, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x3a, 0x09, 0xca, 0x3e, 0x06, 0x08, 0x02, 0x10, - 0x14, 0x18, 0x02, 0x22, 0x7b, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, - 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x12, 0xca, 0x3e, - 0x0f, 0x08, 0x01, 0x10, 0x15, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, - 0x22, 0x6a, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, - 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x5c, 0x0a, 0x14, - 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, - 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x16, 0x18, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x20, 0x0a, 0x0a, 0x52, 0x6f, - 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x20, 0x0a, 0x0a, - 0x55, 0x73, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x92, - 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, + 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x74, + 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x14, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x74, 0x63, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x6d, 0x6f, 0x64, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x5f, 0x75, 0x74, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x6d, 0x6f, 0x64, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x55, 0x74, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, + 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x13, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x01, 0x22, 0xa4, 0x02, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, + 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x6f, 0x6c, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x6c, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x74, + 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x14, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x74, 0x63, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x6d, 0x6f, 0x64, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x5f, 0x75, 0x74, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x6d, 0x6f, 0x64, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x55, 0x74, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, + 0x3a, 0x09, 0xca, 0x3e, 0x06, 0x08, 0x02, 0x10, 0x14, 0x18, 0x02, 0x22, 0x7b, 0x0a, 0x17, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, + 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x15, 0x18, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x6a, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, + 0x43, 0x72, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x22, 0x5c, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, + 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x3a, 0x12, + 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x16, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x22, 0x20, 0x0a, 0x0a, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x20, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x92, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, + 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x37, + 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, + 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x13, + 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x93, 0x01, 0x0a, 0x0f, + 0x44, 0x72, 0x6f, 0x70, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x09, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x3a, 0x12, 0xca, + 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x15, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x01, 0x22, 0x82, 0x01, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, + 0x61, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, + 0x6d, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x38, 0x18, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x80, 0x01, 0x0a, 0x19, 0x44, 0x72, 0x6f, 0x70, 0x50, + 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, - 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x6f, 0x6c, - 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x3a, - 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x13, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0x01, 0x22, 0x93, 0x01, 0x0a, 0x0f, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x6f, 0x6c, 0x65, + 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x39, 0x18, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x62, 0x0a, 0x1a, 0x4c, 0x69, 0x73, + 0x74, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, - 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, - 0x64, 0x72, 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x6f, 0x72, 0x63, - 0x65, 0x44, 0x72, 0x6f, 0x70, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x15, 0x18, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x82, 0x01, 0x0a, 0x1b, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, - 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, - 0x01, 0x10, 0x38, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x80, - 0x01, 0x0a, 0x19, 0x44, 0x72, 0x6f, 0x70, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, - 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1d, - 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x12, 0xca, - 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x39, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x01, 0x22, 0x62, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, - 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, + 0x10, 0x3a, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xa6, 0x01, + 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, - 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x3a, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xa6, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x52, 0x0a, 0x10, 0x70, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, - 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x70, - 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0x8d, - 0x02, 0x0a, 0x1c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x52, 0x0a, 0x10, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0x8d, 0x02, 0x0a, 0x1c, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, + 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x73, 0x12, 0x42, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x3b, 0x18, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xd5, 0x01, 0x0a, 0x16, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, + 0x61, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, + 0x01, 0x10, 0x17, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x79, + 0x0a, 0x12, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x50, 0x72, + 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x0a, 0x70, + 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x11, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x44, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, - 0x6c, 0x65, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, - 0x01, 0x10, 0x3b, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xd5, - 0x01, 0x0a, 0x16, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, + 0x65, 0x12, 0x33, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x16, 0x18, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x78, 0x0a, 0x0a, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x75, 0x73, 0x65, + 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, + 0x22, 0x84, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x07, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0xb1, 0x01, 0x0a, 0x11, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, + 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, + 0x33, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x04, + 0x75, 0x73, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, + 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x3a, 0x09, 0xca, 0x3e, 0x06, 0x08, 0x02, 0x10, 0x18, 0x18, 0x02, 0x22, 0x78, 0x0a, 0x0a, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x75, 0x73, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x35, + 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x05, + 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x39, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x22, 0x0a, 0x0c, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x25, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x45, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x0d, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x04, 0x75, 0x73, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x42, + 0x0a, 0x09, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, + 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x09, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, + 0x67, 0x65, 0x22, 0x56, 0x0a, 0x14, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x08, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0xf5, 0x01, 0x0a, 0x0b, 0x47, + 0x72, 0x61, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x04, 0x72, 0x6f, + 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, + 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, + 0x39, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x67, + 0x72, 0x61, 0x6e, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, + 0x6d, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, - 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, - 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, - 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x17, 0x18, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x79, 0x0a, 0x12, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x70, - 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x45, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, - 0x73, 0x22, 0xba, 0x01, 0x0a, 0x11, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, + 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x16, 0x18, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x88, 0x01, 0x0a, 0x13, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3c, 0x0a, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, + 0x72, 0x61, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x22, 0xf2, 0x01, 0x0a, 0x17, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, + 0x73, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x45, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x17, 0x18, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xd5, 0x02, 0x0a, 0x19, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x6f, - 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x2a, - 0x0a, 0x11, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, - 0x01, 0x10, 0x16, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x78, - 0x0a, 0x0a, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x33, 0x0a, 0x04, - 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, + 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x3c, + 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x6f, 0x72, 0x12, 0x3d, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x04, 0x72, 0x6f, 0x6c, - 0x65, 0x12, 0x35, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, - 0xb1, 0x01, 0x0a, 0x11, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, - 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x66, - 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x3a, 0x09, 0xca, 0x3e, 0x06, 0x08, 0x02, 0x10, - 0x18, 0x18, 0x02, 0x22, 0x78, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x12, 0x33, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x35, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, + 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, + 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x12, 0xca, + 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x17, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x01, 0x22, 0x71, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, + 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, + 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x35, 0x0a, + 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x05, 0x72, + 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x84, 0x02, 0x0a, 0x08, 0x52, 0x42, 0x41, 0x43, 0x4d, 0x65, 0x74, + 0x61, 0x12, 0x33, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, - 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x84, 0x01, - 0x0a, 0x12, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x73, 0x22, 0x22, 0x0a, 0x0c, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x88, 0x01, 0x0a, 0x0d, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x12, 0x33, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, - 0x09, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x22, 0x56, 0x0a, 0x14, 0x47, 0x72, - 0x61, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, - 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x22, 0xf5, 0x01, 0x0a, 0x0b, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x12, 0x33, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x6f, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, - 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x6f, - 0x72, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x12, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x38, 0x0a, + 0x06, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, + 0x06, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x10, 0x70, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x70, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0x5d, 0x0a, 0x15, 0x42, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x42, 0x41, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, + 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x33, 0x18, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x89, 0x01, 0x0a, 0x16, 0x42, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x42, 0x41, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3a, 0x0a, 0x09, 0x52, 0x42, + 0x41, 0x43, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x52, 0x42, 0x41, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x52, 0x42, + 0x41, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x22, 0x9a, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x52, 0x42, 0x41, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, - 0x61, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x45, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x3a, 0x12, 0xca, - 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x16, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x01, 0x22, 0x88, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x61, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x52, 0x42, 0x41, 0x43, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x42, 0x41, + 0x43, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x52, 0x42, 0x41, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x3a, + 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x34, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x01, 0x22, 0xc1, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x69, + 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, + 0x61, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, + 0xca, 0x3e, 0x04, 0x10, 0x21, 0x18, 0x02, 0x22, 0x98, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x4c, + 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, + 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x22, 0xbb, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, + 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, + 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0f, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x17, + 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x21, 0x18, 0x02, + 0x22, 0x81, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3c, - 0x0a, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0xf2, 0x01, 0x0a, - 0x17, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, - 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x12, 0xca, - 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x17, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x01, 0x22, 0xd5, 0x02, 0x0a, 0x19, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x34, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, - 0x65, 0x12, 0x33, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x6f, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x72, - 0x61, 0x6e, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x07, 0x67, 0x72, 0x61, - 0x6e, 0x74, 0x6f, 0x72, 0x12, 0x3d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x17, 0x18, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x71, 0x0a, 0x08, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x35, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x45, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x84, 0x02, 0x0a, - 0x08, 0x52, 0x42, 0x41, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x33, 0x0a, 0x05, 0x75, 0x73, 0x65, - 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x35, - 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x05, - 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x06, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x72, 0x61, 0x6e, - 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x12, - 0x52, 0x0a, 0x10, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x5f, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x22, 0x25, 0x0a, 0x09, 0x4d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x45, 0x78, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x13, 0x0a, 0x11, 0x47, + 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x63, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x14, 0x0a, 0x12, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xc6, 0x01, 0x0a, 0x13, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x48, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x48, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, + 0x12, 0x42, 0x0a, 0x0c, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x51, 0x75, 0x6f, + 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x73, 0x22, 0xc7, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, + 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3c, 0x0a, 0x06, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x72, 0x67, 0x2e, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, + 0x01, 0x10, 0x1a, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xbb, + 0x02, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, + 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, + 0x12, 0x6d, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x0f, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x22, 0x5d, 0x0a, 0x15, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x42, 0x41, - 0x43, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, - 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x3a, 0x12, - 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x33, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x01, 0x22, 0x89, 0x01, 0x0a, 0x16, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x42, 0x41, - 0x43, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x3a, 0x0a, 0x09, 0x52, 0x42, 0x41, 0x43, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x42, 0x41, 0x43, - 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x52, 0x42, 0x41, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x22, 0x9a, - 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x42, 0x41, 0x43, 0x4d, 0x65, - 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, - 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x52, - 0x42, 0x41, 0x43, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x42, 0x41, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x52, - 0x42, 0x41, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x34, - 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xc1, 0x01, 0x0a, 0x19, - 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x1a, + 0x67, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x72, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, + 0x30, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x87, 0x01, 0x0a, + 0x18, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, - 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x17, 0x0a, - 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x21, 0x18, 0x02, 0x22, - 0x98, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, - 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x29, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0xbb, 0x01, 0x0a, 0x13, 0x47, - 0x65, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x1b, 0x18, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xde, 0x01, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, + 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, + 0x12, 0x32, 0x0a, 0x15, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x13, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x12, 0x32, 0x0a, 0x15, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x13, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x4e, + 0x6f, 0x64, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x1e, 0x18, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xa9, 0x02, 0x0a, 0x16, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, - 0x62, 0x61, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, - 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x3a, - 0x07, 0xca, 0x3e, 0x04, 0x10, 0x21, 0x18, 0x02, 0x22, 0x81, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, - 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x61, 0x64, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x25, 0x0a, 0x09, - 0x4d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x45, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0x13, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x63, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x62, 0x61, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x32, 0x0a, 0x15, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x27, 0x0a, 0x0f, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x3a, + 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x1f, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x01, 0x22, 0x61, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x14, 0x0a, - 0x12, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0xc6, 0x01, 0x0a, 0x13, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x12, 0x18, - 0x0a, 0x07, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x07, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x42, 0x0a, 0x0c, 0x71, 0x75, 0x6f, 0x74, - 0x61, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, + 0x73, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x1d, 0x18, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x7a, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x1c, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, + 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x3a, 0x12, 0xca, 0x3e, + 0x0f, 0x08, 0x01, 0x10, 0x1c, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, + 0x22, 0x9f, 0x01, 0x0a, 0x1d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x49, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x22, 0xdf, 0x05, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x70, 0x61, + 0x63, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x61, 0x70, 0x61, + 0x63, 0x69, 0x74, 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x12, 0x66, 0x0a, 0x12, 0x6e, 0x75, 0x6d, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, + 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x0b, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x22, 0xc7, 0x01, 0x0a, - 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, - 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x25, 0x0a, - 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x4e, 0x75, 0x6d, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x4c, 0x6f, 0x61, + 0x64, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x63, 0x0a, 0x11, 0x6e, 0x75, + 0x6d, 0x5f, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4e, 0x75, 0x6d, 0x4f, 0x75, 0x74, + 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, + 0x6e, 0x75, 0x6d, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x4e, 0x6f, 0x64, 0x65, 0x12, + 0x63, 0x0a, 0x11, 0x6e, 0x75, 0x6d, 0x5f, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4e, + 0x75, 0x6d, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, + 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x72, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x1a, 0x18, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xbb, 0x02, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, - 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x44, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x1a, 0x67, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x3a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x72, - 0x67, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x30, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0x01, 0x22, 0x87, 0x01, 0x0a, 0x18, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, - 0x61, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, - 0x01, 0x10, 0x1b, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xde, - 0x01, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, + 0x69, 0x67, 0x12, 0x33, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x1a, 0x43, 0x0a, 0x15, 0x4e, 0x75, 0x6d, 0x4c, 0x6f, + 0x61, 0x64, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, + 0x4e, 0x75, 0x6d, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x4e, 0x6f, 0x64, 0x65, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x42, 0x0a, 0x14, 0x4e, 0x75, 0x6d, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x4e, + 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0xca, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, + 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, + 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x6c, + 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x44, 0x42, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x44, 0x42, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x12, 0xca, + 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x22, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x01, 0x22, 0xd5, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, + 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, + 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x0c, 0x18, 0x03, 0x22, 0xa7, 0x01, 0x0a, 0x1a, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x54, 0x0a, + 0x12, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x11, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, - 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x32, 0x0a, 0x15, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x4e, 0x6f, 0x64, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, - 0x08, 0x01, 0x10, 0x1e, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, - 0xa9, 0x02, 0x0a, 0x16, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, - 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, - 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x15, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x32, 0x0a, 0x15, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x13, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, - 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x17, - 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x1f, - 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x61, 0x0a, 0x19, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, - 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, - 0x01, 0x10, 0x1d, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x7a, - 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, + 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xa8, 0x01, 0x0a, 0x0f, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x49, 0x0a, 0x15, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, + 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x1c, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, - 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x25, 0x0a, - 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x1c, 0x18, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x9f, 0x01, 0x0a, 0x1d, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, + 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, + 0x22, 0x6b, 0x0a, 0x16, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x49, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0d, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xdf, 0x05, 0x0a, 0x0d, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x2c, 0x0a, 0x12, - 0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x6f, - 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x41, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x66, 0x0a, 0x12, 0x6e, 0x75, - 0x6d, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4e, 0x75, 0x6d, 0x4c, 0x6f, - 0x61, 0x64, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x12, 0x63, 0x0a, 0x11, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, - 0x6e, 0x67, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x4e, 0x75, 0x6d, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x4e, 0x6f, 0x64, - 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x4f, 0x75, 0x74, 0x67, 0x6f, - 0x69, 0x6e, 0x67, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x63, 0x0a, 0x11, 0x6e, 0x75, 0x6d, 0x5f, 0x69, - 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4e, 0x75, 0x6d, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, - 0x6e, 0x67, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6e, 0x75, 0x6d, - 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x06, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x72, 0x67, 0x2e, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x33, 0x0a, 0x05, 0x6e, 0x6f, - 0x64, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x1a, - 0x43, 0x0a, 0x15, 0x4e, 0x75, 0x6d, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4e, 0x75, 0x6d, 0x4f, 0x75, 0x74, 0x67, 0x6f, - 0x69, 0x6e, 0x67, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4e, 0x75, 0x6d, 0x49, - 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xca, 0x01, 0x0a, - 0x17, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, - 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x6e, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6e, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x44, 0x42, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x44, - 0x42, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x22, 0x18, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xd5, 0x01, 0x0a, 0x19, 0x47, 0x65, - 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, + 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xb9, 0x01, + 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x0c, 0x18, - 0x03, 0x22, 0xa7, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x6d, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x69, 0x65, 0x73, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x23, 0x18, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x74, 0x0a, 0x13, 0x44, 0x72, 0x6f, + 0x70, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, + 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, + 0x08, 0x01, 0x10, 0x24, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, + 0x48, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, + 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x22, 0xab, 0x01, 0x0a, 0x15, 0x4c, 0x69, + 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x62, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x64, 0x62, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x10, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x15, 0x0a, 0x06, 0x64, 0x62, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03, + 0x52, 0x05, 0x64, 0x62, 0x49, 0x64, 0x73, 0x22, 0xee, 0x01, 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, + 0x72, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, + 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x13, 0x0a, 0x05, 0x64, + 0x62, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x62, 0x49, 0x64, + 0x12, 0x41, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x6b, 0x65, + 0x79, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x4b, 0x65, 0x79, 0x73, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x31, 0x18, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x78, 0x0a, 0x17, 0x44, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x62, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, + 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x12, + 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x32, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x22, 0xec, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x64, 0x62, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x64, 0x62, 0x49, + 0x44, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x41, + 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, + 0x73, 0x22, 0xc0, 0x02, 0x0a, 0x17, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, + 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, + 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x54, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x45, 0x6e, 0x64, 0x54, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x45, 0x6e, 0x64, + 0x54, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x4d, 0x73, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0c, + 0x52, 0x04, 0x4d, 0x73, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x73, + 0x67, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, + 0x0c, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0c, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x3a, 0x02, 0x18, 0x01, 0x22, 0x6f, 0x0a, 0x18, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x54, 0x0a, 0x12, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x89, 0x01, 0x0a, 0x15, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x41, 0x75, 0x74, 0x68, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, + 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x12, 0x18, + 0x02, 0x22, 0x4f, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, + 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x75, 0x74, 0x68, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x68, + 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x12, + 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x45, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x22, 0x72, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x41, 0x75, 0x74, 0x68, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, + 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, + 0x6d, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x46, 0x18, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xd7, 0x02, 0x0a, 0x12, 0x52, 0x75, 0x6e, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, + 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, + 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x63, + 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0b, 0x70, + 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x69, + 0x74, 0x68, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0a, 0x77, 0x69, 0x74, 0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x77, + 0x69, 0x74, 0x68, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, + 0x77, 0x69, 0x74, 0x68, 0x48, 0x61, 0x73, 0x68, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6e, 0x61, + 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0d, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x22, 0xc0, 0x01, 0x0a, 0x0d, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, + 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x65, 0x6e, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, + 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x68, + 0x61, 0x73, 0x68, 0x22, 0x4c, 0x0a, 0x0e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x7a, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x73, 0x22, 0x89, 0x01, 0x0a, 0x13, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, + 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x4a, 0x0a, + 0x10, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x86, 0x01, 0x0a, 0x16, 0x41, 0x64, + 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, + 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x3a, 0x12, + 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x48, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x22, 0x75, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x69, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x49, 0x18, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x60, 0x0a, 0x18, 0x4c, 0x69, 0x73, + 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, + 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x4a, + 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x95, 0x01, 0x0a, 0x19, + 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x43, + 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x0e, - 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x22, 0xee, 0x01, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x54, + 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, + 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, + 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x04, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x64, + 0x64, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, + 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x09, 0xca, 0x3e, 0x06, 0x08, 0x02, + 0x10, 0x14, 0x18, 0x02, 0x22, 0x8c, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, - 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x22, 0xa8, 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, - 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x49, 0x0a, - 0x15, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, - 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x22, 0x6b, 0x0a, 0x16, 0x41, 0x6c, 0x6c, 0x6f, - 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xb9, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, - 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, - 0x72, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x3a, 0x12, 0xca, - 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x23, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x01, 0x22, 0x74, 0x0a, 0x13, 0x44, 0x72, 0x6f, 0x70, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, - 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, - 0x61, 0x6d, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x24, 0x18, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x48, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, - 0x65, 0x22, 0xab, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, + 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, + 0x08, 0x74, 0x61, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x07, 0x74, 0x61, 0x67, 0x4b, 0x65, 0x79, 0x73, 0x3a, 0x09, 0xca, 0x3e, 0x06, 0x08, 0x02, 0x10, + 0x14, 0x18, 0x02, 0x22, 0x6e, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, + 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, + 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x09, 0xca, 0x3e, 0x06, 0x08, 0x02, 0x10, + 0x18, 0x18, 0x02, 0x22, 0xcb, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, + 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x19, 0x0a, 0x08, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x07, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x62, 0x5f, 0x69, - 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x64, 0x62, 0x49, 0x64, 0x73, 0x22, - 0xee, 0x01, 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, - 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x13, 0x0a, 0x05, 0x64, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x64, 0x62, 0x49, 0x64, 0x12, 0x41, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, - 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x3a, 0x12, 0xca, 0x3e, - 0x0f, 0x08, 0x01, 0x10, 0x31, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, - 0x22, 0x78, 0x0a, 0x17, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, - 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, - 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x32, 0x18, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xec, 0x01, 0x0a, 0x18, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, + 0x12, 0x46, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0x95, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x57, + 0x69, 0x74, 0x68, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, + 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, + 0x17, 0x0a, 0x07, 0x74, 0x61, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x74, 0x61, 0x67, 0x4b, 0x65, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x67, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x02, 0x10, 0x18, 0x18, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x6e, 0x0a, 0x18, 0x4c, 0x69, 0x73, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x54, 0x61, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xec, 0x02, 0x0a, 0x16, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, + 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, + 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, + 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x70, 0x72, 0x12, 0x1d, + 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x78, 0x70, 0x72, 0x12, 0x20, 0x0a, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, + 0x07, 0xca, 0x3e, 0x04, 0x10, 0x13, 0x18, 0x03, 0x22, 0xb4, 0x01, 0x0a, 0x14, 0x44, 0x72, 0x6f, + 0x70, 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, + 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x15, 0x18, 0x03, 0x22, + 0x95, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, + 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, + 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, + 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, + 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, + 0xca, 0x3e, 0x04, 0x10, 0x16, 0x18, 0x03, 0x22, 0x81, 0x02, 0x0a, 0x09, 0x52, 0x6f, 0x77, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x6f, + 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, + 0x75, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x70, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x78, 0x70, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xcc, 0x01, 0x0a, 0x17, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x0a, 0x07, - 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, - 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x62, 0x49, 0x44, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x04, 0x64, 0x62, 0x49, 0x44, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x41, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0a, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xc0, 0x02, 0x0a, 0x17, 0x52, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, - 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x65, - 0x67, 0x69, 0x6e, 0x54, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x42, 0x65, 0x67, - 0x69, 0x6e, 0x54, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6e, 0x64, 0x54, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x05, 0x45, 0x6e, 0x64, 0x54, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x4d, 0x73, - 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x4d, 0x73, 0x67, 0x73, 0x12, 0x45, - 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x0c, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, - 0x73, 0x67, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x45, 0x6e, 0x64, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x6f, 0x0a, 0x18, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, - 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x89, 0x01, - 0x0a, 0x15, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x75, 0x74, 0x68, 0x50, 0x6c, 0x61, 0x63, - 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, - 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x12, 0x18, 0x02, 0x22, 0x4f, 0x0a, 0x20, 0x47, 0x65, 0x74, - 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x75, - 0x74, 0x68, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x17, 0x0a, - 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x45, 0x18, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x72, 0x0a, 0x1a, 0x4c, 0x69, - 0x73, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x41, 0x75, 0x74, 0x68, 0x50, 0x6c, 0x61, - 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3a, 0x0a, 0x08, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x08, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, - 0x01, 0x10, 0x46, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xd7, - 0x02, 0x0a, 0x12, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, - 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x61, 0x6c, 0x79, - 0x7a, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, - 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x69, 0x74, 0x68, 0x48, 0x61, 0x73, 0x68, - 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6e, 0x61, 0x6c, 0x79, - 0x7a, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xc0, 0x01, 0x0a, 0x0d, 0x41, 0x6e, 0x61, - 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x4f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, - 0x0a, 0x0f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x4c, 0x0a, 0x0e, 0x41, - 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3a, 0x0a, - 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x89, 0x01, 0x0a, 0x13, 0x52, 0x75, - 0x6e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x4a, 0x0a, 0x10, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x22, 0x86, 0x01, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, - 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x48, 0x18, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x75, 0x0a, 0x19, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, - 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x12, 0xca, - 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x49, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x01, 0x22, 0x60, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, - 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xc4, 0x01, 0x0a, 0x23, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x64, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x16, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x6f, 0x72, 0x63, + 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0c, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x3a, 0x12, 0xca, + 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x4e, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x01, 0x22, 0x36, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x55, 0x18, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xab, 0x01, 0x0a, 0x21, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x51, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x3a, - 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x4a, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0x01, 0x22, 0x95, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0xee, 0x01, 0x0a, 0x12, - 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, - 0x62, 0x61, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x45, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x31, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x3a, 0x09, 0xca, 0x3e, 0x06, 0x08, 0x02, 0x10, 0x14, 0x18, 0x02, 0x22, 0x8c, 0x01, 0x0a, - 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, - 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x61, 0x67, 0x5f, 0x6b, 0x65, 0x79, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x61, 0x67, 0x4b, 0x65, 0x79, 0x73, - 0x3a, 0x09, 0xca, 0x3e, 0x06, 0x08, 0x02, 0x10, 0x14, 0x18, 0x02, 0x22, 0x6e, 0x0a, 0x12, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x6e, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6e, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x27, + 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0xbd, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x52, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x57, + 0x0a, 0x12, 0x73, 0x61, 0x6c, 0x76, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x11, 0x73, 0x61, 0x6c, 0x76, 0x61, 0x67, 0x65, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x7f, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x49, + 0x6d, 0x6d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x73, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x54, 0x0a, 0x11, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, + 0x52, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4f, 0x0a, + 0x1d, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, + 0x6d, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, + 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x22, 0x9e, + 0x01, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x48, 0x00, 0x52, 0x1d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xc5, 0x01, 0x0a, 0x13, 0x44, 0x75, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x12, 0x48, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x52, 0x0e, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, + 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x6b, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x74, 0x69, 0x63, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x74, 0x69, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x6e, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x6b, 0x22, 0x9c, 0x01, 0x0a, 0x14, 0x44, 0x75, 0x6d, 0x70, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x35, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x41, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x49, + 0x6d, 0x6d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, + 0x00, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x19, 0x54, 0x72, 0x75, 0x6e, 0x63, + 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, + 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, + 0x02, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x51, 0x0a, 0x1a, + 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0xb8, 0x01, 0x0a, 0x1d, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x50, 0x68, 0x72, 0x61, 0x73, + 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6c, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, - 0x61, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x3a, 0x09, 0xca, 0x3e, 0x06, 0x08, 0x02, 0x10, 0x18, 0x18, 0x02, 0x22, 0xcb, 0x01, 0x0a, 0x13, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x46, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, - 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x95, 0x01, 0x0a, 0x17, 0x4c, 0x69, - 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x54, 0x61, 0x67, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, - 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x67, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x67, 0x4b, 0x65, 0x79, - 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x12, 0xca, - 0x3e, 0x0f, 0x08, 0x02, 0x10, 0x18, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x01, 0x22, 0x6e, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x57, 0x69, - 0x74, 0x68, 0x54, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, + 0x61, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6e, + 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x78, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x09, 0x64, 0x61, 0x74, 0x61, 0x54, 0x65, 0x78, 0x74, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x1e, 0x43, + 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x53, 0x6c, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x22, 0xec, 0x02, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, + 0x75, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x6c, 0x6f, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x73, 0x6c, + 0x6f, 0x70, 0x73, 0x22, 0x8e, 0x02, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, + 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, + 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1b, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x3a, 0x07, 0xca, 0x3e, 0x04, + 0x10, 0x4f, 0x18, 0x05, 0x22, 0xa6, 0x01, 0x0a, 0x13, 0x44, 0x72, 0x6f, 0x70, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, - 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x69, 0x6e, 0x67, - 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x69, - 0x6e, 0x67, 0x45, 0x78, 0x70, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, - 0x65, 0x78, 0x70, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, - 0x6b, 0x45, 0x78, 0x70, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x13, 0x18, 0x03, - 0x22, 0xb4, 0x01, 0x0a, 0x14, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, - 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, - 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, - 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, - 0xca, 0x3e, 0x04, 0x10, 0x15, 0x18, 0x03, 0x22, 0x95, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x50, 0x18, 0x04, 0x22, 0x93, 0x01, + 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, + 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, + 0x52, 0x18, 0x03, 0x22, 0x6a, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x22, + 0xaa, 0x01, 0x0a, 0x17, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, + 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x51, 0x18, 0x04, 0x22, 0x95, 0x02, 0x0a, + 0x18, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, + 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x5f, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x33, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x33, 0x4c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa8, 0x02, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, + 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x72, + 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x5f, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x62, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x34, 0x0a, 0x16, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x53, 0x18, 0x04, 0x22, + 0x65, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0xc4, 0x02, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x15, + 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x73, 0x74, 0x22, 0x69, 0x0a, + 0x1e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, + 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x3c, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, + 0x9d, 0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, @@ -22190,1609 +23658,1343 @@ var file_milvus_proto_rawDesc = []byte{ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x16, 0x18, 0x03, 0x22, - 0x81, 0x02, 0x0a, 0x09, 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1f, 0x0a, - 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, - 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, - 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, - 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, - 0x70, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x45, - 0x78, 0x70, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x65, 0x78, 0x70, - 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x78, - 0x70, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x22, 0xcc, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x77, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x3a, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x6f, 0x77, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, - 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x22, 0xc4, 0x01, 0x0a, 0x23, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x64, 0x0a, 0x17, 0x72, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x16, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x50, 0x72, - 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x4e, 0x18, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x36, 0x0a, 0x20, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x3a, 0x12, 0xca, - 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x55, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x01, 0x22, 0xab, 0x01, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x51, 0x0a, 0x0d, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x6e, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x5f, 0x70, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, - 0xbd, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0a, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0a, 0x63, 0x68, 0x65, 0x63, - 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x57, 0x0a, 0x12, 0x73, 0x61, 0x6c, 0x76, 0x61, 0x67, - 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x11, 0x73, 0x61, - 0x6c, 0x76, 0x61, 0x67, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, - 0x7f, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x3f, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x49, 0x6d, 0x6d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x22, 0x73, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x54, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4f, 0x0a, 0x1d, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, - 0x6d, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x22, 0x9e, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x20, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, - 0x6d, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x1d, 0x72, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x0a, 0x0a, 0x08, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x13, 0x44, 0x75, 0x6d, 0x70, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1a, 0x0a, 0x08, 0x70, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x70, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x48, 0x0a, 0x10, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x49, 0x44, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x6b, 0x12, 0x21, 0x0a, 0x0c, - 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0b, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x6b, 0x22, - 0x9c, 0x01, 0x0a, 0x14, 0x44, 0x75, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x53, 0x18, 0x03, 0x22, + 0x94, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3c, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x22, 0xd5, 0x01, 0x0a, 0x16, 0x50, 0x69, 0x6e, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, + 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x74, 0x6c, + 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, + 0x74, 0x74, 0x6c, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, + 0x01, 0x10, 0x57, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x65, + 0x0a, 0x17, 0x50, 0x69, 0x6e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, + 0x0a, 0x06, 0x70, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x70, 0x69, 0x6e, 0x49, 0x64, 0x22, 0x77, 0x0a, 0x18, 0x55, 0x6e, 0x70, 0x69, 0x6e, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, + 0x61, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x69, 0x6e, 0x49, 0x64, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, + 0x01, 0x10, 0x58, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x87, + 0x08, 0x0a, 0x1c, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, + 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x50, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xb5, 0x01, 0x0a, 0x09, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, + 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1d, 0x0a, 0x0a, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0c, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x65, 0x78, 0x74, 0x72, 0x61, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x1a, 0xe2, 0x01, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x5c, 0x0a, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, + 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x44, + 0x0a, 0x0b, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x6f, 0x5f, 0x70, 0x68, 0x79, 0x73, 0x69, + 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x12, 0x64, 0x6f, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x61, + 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x1a, 0x80, 0x01, 0x0a, 0x0b, 0x44, 0x72, 0x6f, 0x70, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x1a, 0xd3, 0x01, 0x0a, 0x06, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x41, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x64, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x62, 0x0a, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, + 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x72, + 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x3a, + 0x07, 0xca, 0x3e, 0x04, 0x10, 0x54, 0x18, 0x03, 0x22, 0x9f, 0x01, 0x0a, 0x1d, 0x41, 0x6c, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0c, 0x61, 0x6c, + 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0b, 0x61, + 0x6c, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3e, 0x0a, 0x0c, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0b, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xfe, 0x01, 0x0a, 0x1a, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, + 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, + 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, + 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x42, + 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x08, 0x18, 0x03, 0x22, 0x63, 0x0a, 0x17, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, + 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, + 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x22, 0xe9, 0x02, 0x0a, 0x16, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, + 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x0a, + 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3f, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x48, 0x61, 0x73, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xb9, 0x01, 0x0a, + 0x17, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x41, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x49, 0x6d, 0x6d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa3, - 0x01, 0x0a, 0x19, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, - 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x0a, + 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, - 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, - 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x02, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0x01, 0x22, 0x51, 0x0a, 0x1a, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x1d, 0x43, 0x6f, 0x6d, 0x70, - 0x75, 0x74, 0x65, 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6c, - 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, - 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x61, - 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x65, - 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, - 0x65, 0x78, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x65, 0x78, 0x74, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x54, 0x65, 0x78, - 0x74, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x1e, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x50, 0x68, - 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6c, 0x6f, 0x70, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, - 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x03, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6c, 0x6f, 0x70, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x73, 0x6c, 0x6f, 0x70, 0x73, 0x22, 0x8e, 0x02, 0x0a, 0x15, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, - 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, - 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x42, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, - 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x6f, - 0x6e, 0x64, 0x73, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x4f, 0x18, 0x05, 0x22, 0xa6, 0x01, 0x0a, - 0x13, 0x44, 0x72, 0x6f, 0x70, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, - 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, - 0x04, 0x10, 0x50, 0x18, 0x04, 0x22, 0x93, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, - 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, + 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x08, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x22, 0x7d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x27, + 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xfa, 0x01, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x40, 0x0a, 0x0b, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, + 0x13, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6c, 0x61, 0x73, 0x74, + 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x22, 0xcf, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, + 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3c, 0x0a, 0x0a, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, - 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x52, 0x18, 0x03, 0x22, 0x6a, 0x0a, 0x15, 0x4c, - 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x22, 0xaa, 0x01, 0x0a, 0x17, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x62, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, - 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, 0xca, 0x3e, 0x04, - 0x10, 0x51, 0x18, 0x04, 0x22, 0x95, 0x02, 0x0a, 0x18, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x0a, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x22, 0xeb, 0x01, 0x0a, 0x18, 0x50, 0x75, 0x73, 0x68, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x74, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x74, 0x6c, 0x53, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x22, 0x6f, 0x0a, 0x19, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, - 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1b, - 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x08, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, - 0x33, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x33, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa8, 0x02, 0x0a, - 0x16, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, - 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, - 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x64, 0x62, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x44, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, - 0xca, 0x3e, 0x04, 0x10, 0x53, 0x18, 0x04, 0x22, 0x65, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0xc4, - 0x02, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, - 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x23, 0x0a, - 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, - 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x69, 0x6d, - 0x65, 0x43, 0x6f, 0x73, 0x74, 0x22, 0x69, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, - 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, - 0x22, 0x94, 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3c, 0x0a, 0x04, 0x69, 0x6e, 0x66, - 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, - 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x9d, 0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4a, - 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, - 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, - 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, - 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, - 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x07, - 0xca, 0x3e, 0x04, 0x10, 0x53, 0x18, 0x03, 0x22, 0x94, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4a, - 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x3c, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, - 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x22, 0xd5, - 0x01, 0x0a, 0x16, 0x50, 0x69, 0x6e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, - 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x74, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x74, 0x6c, 0x53, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x73, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x57, 0x18, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x65, 0x0a, 0x17, 0x50, 0x69, 0x6e, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x49, 0x64, 0x22, 0x52, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x69, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x69, 0x6e, 0x49, 0x64, 0x22, 0x77, 0x0a, - 0x18, 0x55, 0x6e, 0x70, 0x69, 0x6e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, - 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x70, - 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x69, 0x6e, - 0x49, 0x64, 0x3a, 0x12, 0xca, 0x3e, 0x0f, 0x08, 0x01, 0x10, 0x58, 0x18, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0x87, 0x08, 0x0a, 0x1c, 0x41, 0x6c, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, - 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, - 0x50, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x38, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x1a, 0xb5, 0x01, 0x0a, 0x09, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x43, 0x0a, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xed, 0x01, 0x0a, 0x20, 0x52, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, + 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0xe2, 0x01, 0x0a, 0x0a, 0x41, 0x64, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5c, 0x0a, 0x0b, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x52, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x30, 0x0a, 0x14, - 0x64, 0x6f, 0x5f, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x63, 0x6b, - 0x66, 0x69, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x6f, 0x50, 0x68, - 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x1a, 0x80, - 0x01, 0x0a, 0x0b, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, - 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0d, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x1a, 0xd3, 0x01, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x0b, - 0x61, 0x64, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, - 0x00, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x62, 0x0a, - 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x42, 0x04, 0x0a, 0x02, 0x6f, 0x70, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x54, 0x18, 0x03, - 0x22, 0x9f, 0x01, 0x0a, 0x1d, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0c, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0b, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x3e, 0x0a, 0x0c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0xfe, 0x01, 0x0a, 0x1a, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, - 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x49, - 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, - 0x08, 0x18, 0x03, 0x22, 0x63, 0x0a, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1d, - 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, - 0x10, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, - 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe9, 0x02, 0x0a, 0x16, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, - 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x12, 0x3f, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x0e, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x0a, - 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x61, 0x73, 0x68, 0x12, 0x34, - 0x0a, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, - 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x22, 0xb9, 0x01, 0x0a, 0x17, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x48, - 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, - 0x22, 0x7d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, - 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, - 0xfa, 0x01, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, - 0x74, 0x72, 0x79, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, - 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, - 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, - 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, - 0x09, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x07, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xcf, 0x01, 0x0a, - 0x1a, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, - 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, + 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, + 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x3a, 0x07, 0xca, + 0x3e, 0x04, 0x10, 0x56, 0x18, 0x03, 0x22, 0x6f, 0x0a, 0x21, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x3e, 0x0a, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x65, - 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, - 0x12, 0x3c, 0x0a, 0x0a, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, + 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x76, 0x0a, 0x2b, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x52, 0x0a, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x22, 0xeb, - 0x01, 0x0a, 0x18, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, - 0x74, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0a, 0x74, 0x74, 0x6c, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1e, 0x0a, 0x0a, - 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x6f, 0x0a, 0x19, - 0x50, 0x75, 0x73, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, - 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x3b, 0x0a, - 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x1b, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xed, - 0x01, 0x0a, 0x20, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, - 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, - 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x70, 0x65, - 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x53, 0x70, 0x65, 0x63, 0x3a, 0x07, 0xca, 0x3e, 0x04, 0x10, 0x56, 0x18, 0x03, 0x22, 0x6f, - 0x0a, 0x21, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, + 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, + 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, - 0x76, 0x0a, 0x2b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, - 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, - 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0xe9, 0x02, 0x0a, 0x20, 0x52, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x15, 0x0a, 0x06, - 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, - 0x62, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x65, - 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, - 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, - 0x70, 0x65, 0x63, 0x22, 0xb5, 0x01, 0x0a, 0x2c, 0x47, 0x65, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x50, 0x0a, 0x08, 0x6a, 0x6f, 0x62, - 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x9e, 0x01, 0x0a, 0x28, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, - 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xab, 0x01, 0x0a, - 0x29, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, - 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x49, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, + 0xe9, 0x02, 0x0a, 0x20, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x2a, 0x25, 0x0a, 0x08, 0x53, 0x68, - 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x6c, 0x6c, 0x10, 0x00, 0x12, - 0x0c, 0x0a, 0x08, 0x49, 0x6e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x10, 0x01, 0x1a, 0x02, 0x18, - 0x01, 0x2a, 0x54, 0x0a, 0x19, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, - 0x0a, 0x14, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x73, 0x54, - 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x10, 0x01, 0x2a, 0x40, 0x0a, 0x13, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, - 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x52, 0x6f, 0x6c, 0x65, 0x10, - 0x00, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x46, - 0x72, 0x6f, 0x6d, 0x52, 0x6f, 0x6c, 0x65, 0x10, 0x01, 0x2a, 0x3b, 0x0a, 0x0e, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0b, 0x0a, 0x07, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x2a, 0x2d, 0x0a, 0x14, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, - 0x0a, 0x05, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x65, 0x76, - 0x6f, 0x6b, 0x65, 0x10, 0x01, 0x2a, 0x6c, 0x0a, 0x0a, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, - 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x65, 0x61, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x10, - 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, - 0x64, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x6e, 0x79, 0x54, 0x6f, 0x52, 0x65, 0x61, - 0x64, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x65, 0x6e, 0x79, 0x54, 0x6f, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x65, 0x6e, 0x79, 0x54, 0x6f, 0x44, 0x44, - 0x4c, 0x10, 0x06, 0x2a, 0x4c, 0x0a, 0x0f, 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x09, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x10, - 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x10, 0x01, 0x12, 0x0a, 0x0a, - 0x06, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x10, - 0x04, 0x2a, 0xa2, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x65, - 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, 0x6f, 0x6e, - 0x65, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, - 0x1c, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, - 0x6f, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x1c, 0x0a, - 0x18, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x52, - 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x10, 0x04, 0x2a, 0x74, 0x0a, 0x1e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, - 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x32, 0x86, 0x6d, 0x0a, - 0x0d, 0x4d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5f, - 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, - 0x5b, 0x0a, 0x0e, 0x44, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x0d, - 0x48, 0x61, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x48, 0x61, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x42, - 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, - 0x0e, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x11, 0x52, 0x65, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, + 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, + 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x22, 0xb5, 0x01, 0x0a, 0x2c, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x50, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x49, + 0x6e, 0x66, 0x6f, 0x22, 0x9e, 0x01, 0x0a, 0x28, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x66, 0x72, + 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x77, 0x0a, - 0x12, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x86, 0x01, 0x0a, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x33, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x86, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x33, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x34, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x0f, 0x53, 0x68, 0x6f, 0x77, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, - 0x68, 0x6f, 0x77, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x0f, 0x41, 0x6c, 0x74, 0x65, - 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, + 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xab, 0x01, 0x0a, 0x29, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x49, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x66, 0x72, + 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6a, 0x6f, + 0x62, 0x73, 0x2a, 0x25, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, + 0x0a, 0x03, 0x41, 0x6c, 0x6c, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x6e, 0x4d, 0x65, 0x6d, + 0x6f, 0x72, 0x79, 0x10, 0x01, 0x1a, 0x02, 0x18, 0x01, 0x2a, 0x54, 0x0a, 0x19, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x50, 0x72, 0x69, + 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x73, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x10, 0x00, + 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x10, 0x01, 0x2a, + 0x40, 0x0a, 0x13, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, + 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x54, 0x6f, 0x52, 0x6f, 0x6c, 0x65, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x6f, 0x6c, 0x65, 0x10, + 0x01, 0x2a, 0x3b, 0x0a, 0x0e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x10, 0x00, + 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x10, 0x01, 0x12, 0x0e, + 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x2a, 0x2d, + 0x0a, 0x14, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, + 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x10, + 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x10, 0x01, 0x2a, 0x6c, 0x0a, + 0x0a, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, + 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x65, 0x61, 0x64, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x44, + 0x65, 0x6e, 0x79, 0x54, 0x6f, 0x52, 0x65, 0x61, 0x64, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x44, + 0x65, 0x6e, 0x79, 0x54, 0x6f, 0x57, 0x72, 0x69, 0x74, 0x65, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, + 0x44, 0x65, 0x6e, 0x79, 0x54, 0x6f, 0x44, 0x44, 0x4c, 0x10, 0x06, 0x2a, 0x4c, 0x0a, 0x0f, 0x52, + 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x09, + 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x12, 0x0a, 0x0a, + 0x06, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x10, 0x04, 0x2a, 0xa2, 0x01, 0x0a, 0x14, 0x52, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x52, + 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x50, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x04, 0x2a, 0x74, + 0x0a, 0x1e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, + 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x52, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x10, + 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x46, 0x61, 0x69, 0x6c, + 0x65, 0x64, 0x10, 0x03, 0x32, 0xa0, 0x72, 0x0a, 0x0d, 0x4d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5f, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, - 0x30, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, - 0x12, 0x69, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x0e, 0x44, 0x72, 0x6f, 0x70, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x17, 0x41, - 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6c, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x16, 0x44, 0x72, - 0x6f, 0x70, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x77, 0x0a, 0x12, 0x54, 0x72, 0x75, 0x6e, 0x63, - 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x5d, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x44, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x0d, 0x48, 0x61, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x48, 0x61, 0x73, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x0e, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x6f, + 0x61, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x00, 0x12, 0x61, 0x0a, 0x11, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x77, 0x0a, 0x12, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, + 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x86, + 0x01, 0x0a, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x34, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x86, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x63, 0x73, 0x12, 0x33, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, + 0x65, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x6e, 0x0a, 0x0f, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x5d, 0x0a, 0x0f, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, - 0x59, 0x0a, 0x0d, 0x44, 0x72, 0x6f, 0x70, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x50, 0x61, 0x72, 0x74, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x0c, 0x48, 0x61, - 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x48, 0x61, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x0e, 0x4c, 0x6f, 0x61, - 0x64, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x2e, 0x6d, 0x69, + 0x67, 0x0a, 0x14, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x30, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6c, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x31, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x17, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x16, 0x44, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, + 0x77, 0x0a, 0x12, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x54, 0x72, 0x75, 0x6e, + 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x54, 0x72, 0x75, 0x6e, + 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x11, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, - 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x2e, 0x6d, 0x69, + 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x0d, 0x44, 0x72, 0x6f, 0x70, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, + 0x72, 0x6f, 0x70, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x0c, 0x48, 0x61, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x48, 0x61, 0x73, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x5b, 0x0a, 0x0e, 0x4c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x61, + 0x0a, 0x11, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, + 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x00, 0x12, 0x83, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x32, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x33, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x0e, 0x53, 0x68, 0x6f, 0x77, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x53, 0x68, 0x6f, 0x77, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, 0x68, 0x6f, 0x77, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x11, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x0e, 0x4c, 0x69, + 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x0d, 0x44, 0x72, 0x6f, 0x70, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, + 0x72, 0x6f, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x65, 0x0a, 0x0c, 0x48, 0x61, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x48, 0x61, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x83, 0x01, 0x0a, 0x16, 0x47, 0x65, - 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x63, 0x73, 0x12, 0x32, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, - 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, - 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x6b, 0x0a, 0x0e, 0x53, 0x68, 0x6f, 0x77, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x50, 0x61, 0x72, 0x74, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, + 0x73, 0x2e, 0x48, 0x61, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x77, 0x0a, 0x12, - 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x61, 0x64, - 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x61, 0x64, - 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x61, 0x64, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4c, - 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0b, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x27, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x09, 0x44, 0x72, 0x6f, 0x70, 0x41, 0x6c, 0x69, 0x61, 0x73, - 0x12, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x41, 0x6c, 0x69, 0x61, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0a, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x41, - 0x6c, 0x69, 0x61, 0x73, 0x12, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, - 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x0d, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x29, 0x2e, 0x6d, + 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x69, - 0x61, 0x73, 0x65, 0x73, 0x12, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, - 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, + 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x77, + 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4c, 0x6f, + 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, + 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, + 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0b, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, - 0x12, 0x53, 0x0a, 0x0a, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, + 0x76, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x0d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x77, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x09, 0x44, 0x72, 0x6f, 0x70, 0x41, 0x6c, 0x69, + 0x61, 0x73, 0x12, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x41, 0x6c, 0x69, + 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0a, 0x41, 0x6c, 0x74, 0x65, + 0x72, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6c, 0x74, + 0x65, 0x72, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x68, 0x0a, + 0x0d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x29, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x41, 0x6c, 0x69, + 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x83, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x31, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x75, - 0x69, 0x6c, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x51, 0x0a, 0x09, 0x44, - 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x41, + 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x12, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0b, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x27, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0a, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x0d, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, - 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x53, - 0x0a, 0x06, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x12, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x49, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x22, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x06, 0x55, 0x70, 0x73, 0x65, - 0x72, 0x74, 0x12, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4d, 0x75, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x52, 0x0a, - 0x06, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, - 0x00, 0x12, 0x5e, 0x0a, 0x0c, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x69, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x77, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x0d, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, - 0x00, 0x12, 0x50, 0x0a, 0x05, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x12, 0x21, 0x2e, 0x6d, 0x69, 0x6c, + 0x73, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x83, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x31, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x42, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x51, 0x0a, + 0x09, 0x44, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, + 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, + 0x12, 0x53, 0x0a, 0x06, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x12, 0x22, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, + 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x06, 0x55, 0x70, + 0x73, 0x65, 0x72, 0x74, 0x12, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4d, + 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, + 0x52, 0x0a, 0x06, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x21, 0x2e, 0x6d, + 0x76, 0x75, 0x73, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x0c, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x05, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x12, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x73, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x0c, 0x43, 0x61, 0x6c, 0x63, 0x44, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x44, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, + 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x08, 0x46, 0x6c, - 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x12, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, - 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x2e, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x0c, 0x43, 0x61, 0x6c, 0x63, 0x44, 0x69, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x61, 0x6c, + 0x63, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x44, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x08, + 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x12, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, + 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x2e, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x18, + 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x34, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, + 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x68, 0x0a, + 0x0d, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x29, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x46, 0x6c, + 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x18, 0x41, 0x64, - 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x34, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x64, 0x64, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x0d, 0x47, - 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x29, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, - 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, - 0x68, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x73, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x89, 0x01, 0x0a, 0x18, 0x47, + 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x34, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, - 0x74, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x89, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, - 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x34, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x50, - 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x7a, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x62, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, - 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x05, 0x44, 0x75, 0x6d, 0x6d, 0x79, 0x12, 0x21, 0x2e, + 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x44, 0x75, 0x6d, 0x6d, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x75, 0x6d, 0x6d, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x0c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4c, - 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5f, 0x0a, - 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x26, 0x2e, 0x6d, 0x69, + 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7a, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x62, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x73, 0x12, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x05, 0x44, 0x75, 0x6d, 0x6d, 0x79, 0x12, + 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x75, 0x6d, 0x6d, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x75, 0x6d, 0x6d, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x0c, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, + 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x5f, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x26, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x6c, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, + 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x22, 0x00, 0x12, 0x55, + 0x0a, 0x0b, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x27, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x77, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, - 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, - 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0b, - 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x27, 0x2e, 0x6d, 0x69, + 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x22, 0x00, 0x12, 0x77, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x10, - 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x71, + 0x0a, 0x10, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x43, + 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x6d, - 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, + 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x50, 0x6c, 0x61, 0x6e, + 0x73, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x06, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x12, - 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x53, 0x0a, 0x06, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x22, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x49, 0x6d, - 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x47, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x49, - 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, - 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x0e, 0x47, 0x65, 0x74, + 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, + 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, + 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x43, - 0x72, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, - 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x53, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, - 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x08, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x6f, - 0x6c, 0x65, 0x12, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x6f, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x0f, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x10, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x12, 0x2c, 0x2e, 0x6d, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x2c, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, + 0x75, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x12, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x56, 0x32, 0x12, - 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x62, - 0x0a, 0x0b, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x27, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x0d, 0x4c, 0x69, 0x73, + 0x74, 0x43, 0x72, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x43, 0x72, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, + 0x65, 0x12, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x08, 0x44, 0x72, 0x6f, 0x70, + 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x52, + 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x0f, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x2b, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, - 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x12, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2f, + 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x61, - 0x0a, 0x11, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x12, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, - 0x00, 0x12, 0x67, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x30, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0c, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6c, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x0a, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x10, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x12, 0x2c, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x12, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x56, + 0x32, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, + 0x12, 0x62, 0x0a, 0x0b, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, + 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, + 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x12, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x13, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, + 0x12, 0x61, 0x0a, 0x11, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x72, 0x6f, 0x70, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x00, 0x12, 0x77, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x80, 0x01, 0x0a, 0x15, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x31, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5f, - 0x0a, 0x10, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, - 0x75, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x66, 0x65, 0x64, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x66, 0x65, 0x64, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x62, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x33, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x66, 0x65, 0x64, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x66, 0x65, 0x64, 0x65, 0x72, 0x2e, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x56, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x23, 0x2e, 0x6d, 0x69, + 0x73, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x30, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x0e, 0x41, 0x6c, 0x6c, 0x6f, - 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, + 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0c, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0x00, 0x12, 0x77, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6c, 0x6c, - 0x6f, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0c, 0x44, 0x72, 0x6f, 0x70, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, - 0x73, 0x65, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x44, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x0d, 0x4c, - 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x12, 0x29, 0x2e, 0x6d, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x80, 0x01, + 0x0a, 0x15, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x31, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x5f, 0x0a, 0x10, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, + 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x00, 0x12, 0x75, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x66, 0x65, 0x64, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x66, 0x65, 0x64, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x87, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x44, 0x61, 0x74, 0x61, 0x12, 0x33, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x66, 0x65, 0x64, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x66, 0x65, 0x64, 0x65, 0x72, 0x2e, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x56, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x23, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x0e, 0x41, 0x6c, + 0x6c, 0x6f, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6c, 0x74, - 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, - 0x12, 0x71, 0x0a, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x62, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x67, 0x0a, 0x0a, 0x42, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x52, 0x42, 0x41, 0x43, 0x12, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x42, 0x61, - 0x63, 0x6b, 0x75, 0x70, 0x52, 0x42, 0x41, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, - 0x52, 0x42, 0x41, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x59, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x42, 0x41, - 0x43, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, - 0x42, 0x41, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, + 0x75, 0x73, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, + 0x6c, 0x6c, 0x6f, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0c, 0x44, 0x72, 0x6f, 0x70, 0x44, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x44, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x67, 0x0a, - 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x30, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x12, 0x44, 0x72, 0x6f, 0x70, 0x50, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2e, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x7a, 0x0a, 0x13, 0x4c, - 0x69, 0x73, 0x74, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x73, 0x12, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x15, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x31, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x50, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x68, 0x0a, + 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x12, 0x29, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, + 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, + 0x6c, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x00, 0x12, 0x62, 0x0a, 0x0b, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, - 0x72, 0x12, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x61, 0x6c, 0x79, - 0x7a, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x46, 0x69, 0x6c, - 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x22, 0x00, 0x12, 0x71, 0x0a, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x62, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x41, 0x64, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, - 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2e, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x11, 0x4c, 0x69, - 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, - 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x55, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x12, - 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x12, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x67, 0x0a, 0x0a, 0x42, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x42, 0x41, 0x43, 0x12, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, + 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x42, 0x41, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x42, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x52, 0x42, 0x41, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, + 0x42, 0x41, 0x43, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x52, 0x42, 0x41, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, + 0x67, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, + 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x30, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x12, 0x44, 0x72, 0x6f, 0x70, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2e, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, + 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x7a, 0x0a, + 0x13, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x12, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x15, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x31, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, - 0x61, 0x67, 0x73, 0x12, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, + 0x75, 0x73, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x0b, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x7a, 0x65, 0x72, 0x12, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x54, 0x61, 0x67, 0x12, 0x2c, 0x2e, 0x6d, + 0x75, 0x73, 0x2e, 0x52, 0x75, 0x6e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x46, + 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2b, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x41, 0x64, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2e, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x11, + 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x12, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, + 0x73, 0x12, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x54, + 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x0e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x12, 0x2a, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x54, 0x61, 0x67, 0x73, 0x12, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x10, 0x4c, 0x69, + 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x54, 0x61, 0x67, 0x12, 0x2c, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x57, 0x69, + 0x74, 0x68, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, - 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, + 0x54, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, + 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x77, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x0d, + 0x44, 0x72, 0x6f, 0x70, 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x54, 0x61, - 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x0f, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2b, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x77, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, + 0x12, 0x8c, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x0d, 0x44, 0x72, - 0x6f, 0x70, 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x77, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x6f, 0x77, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x77, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x8c, - 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x71, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x71, 0x0a, - 0x10, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x6c, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x67, - 0x0a, 0x0c, 0x44, 0x75, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x28, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x75, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, - 0x75, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x83, 0x01, 0x0a, 0x16, 0x43, 0x6f, 0x6d, 0x70, - 0x75, 0x74, 0x65, 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6c, - 0x6f, 0x70, 0x12, 0x32, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, - 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6c, 0x6f, 0x70, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6d, - 0x70, 0x75, 0x74, 0x65, 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, - 0x6c, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, - 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, - 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, - 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0c, 0x44, 0x72, - 0x6f, 0x70, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6c, + 0x63, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x25, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, + 0x12, 0x67, 0x0a, 0x0c, 0x44, 0x75, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x75, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 0x74, 0x73, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, - 0x6f, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x71, 0x0a, - 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x6e, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 0x74, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, - 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x86, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x6d, + 0x2e, 0x44, 0x75, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x83, 0x01, 0x0a, 0x16, 0x43, 0x6f, + 0x6d, 0x70, 0x75, 0x74, 0x65, 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x53, 0x6c, 0x6f, 0x70, 0x12, 0x32, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x75, + 0x74, 0x65, 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x6c, 0x6f, + 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, + 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x53, 0x6c, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x5b, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x12, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0c, + 0x44, 0x72, 0x6f, 0x70, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, - 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x34, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x86, 0x01, 0x0a, 0x17, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x33, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4a, - 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, - 0x73, 0x68, 0x6f, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x0f, 0x50, 0x69, 0x6e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x50, 0x69, 0x6e, 0x53, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x50, 0x69, 0x6e, 0x53, 0x6e, 0x61, 0x70, - 0x73, 0x68, 0x6f, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x61, 0x0a, 0x11, 0x55, 0x6e, 0x70, 0x69, 0x6e, 0x53, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x55, 0x6e, - 0x70, 0x69, 0x6e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x75, 0x73, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x80, 0x01, 0x0a, 0x15, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, - 0x31, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, - 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, - 0x8c, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xad, - 0x01, 0x0a, 0x24, 0x47, 0x65, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x40, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x71, 0x0a, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x12, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, + 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x86, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x33, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x86, 0x01, 0x0a, 0x17, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x33, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x0f, 0x50, 0x69, 0x6e, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x50, 0x69, + 0x6e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x50, 0x69, 0x6e, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x11, 0x55, 0x6e, 0x70, 0x69, 0x6e, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x55, 0x6e, 0x70, 0x69, 0x6e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x80, 0x01, 0x0a, 0x15, 0x41, 0x6c, 0x74, 0x65, + 0x72, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x12, 0x31, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x13, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, + 0x74, 0x12, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x00, 0x12, 0x8c, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x35, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0xad, 0x01, 0x0a, 0x24, 0x47, 0x65, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x40, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa4, - 0x01, 0x0a, 0x21, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x3d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x32, 0xf3, 0x03, 0x0a, 0x16, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x6e, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, - 0x65, 0x61, 0x74, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, - 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x77, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x11, 0x50, 0x75, 0x73, - 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x2d, - 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, - 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, - 0x76, 0x75, 0x73, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x7a, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x32, 0x75, 0x0a, 0x0c, 0x50, - 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x65, 0x0a, 0x0c, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x28, 0x2e, 0x6d, 0x69, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x3a, 0x63, 0x0a, 0x0e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x5f, 0x65, 0x78, 0x74, - 0x5f, 0x6f, 0x62, 0x6a, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, + 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, + 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0xa4, 0x01, 0x0a, 0x21, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x3d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x32, 0xf3, 0x03, 0x0a, 0x16, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x6e, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x72, + 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x48, + 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x77, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, + 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, + 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x47, + 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x11, 0x50, + 0x75, 0x73, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x12, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, + 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x7a, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x2f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, - 0x4d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x45, 0x78, 0x74, 0x52, 0x0c, 0x6d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x45, 0x78, 0x74, 0x4f, 0x62, 0x6a, 0x42, 0x6d, 0x0a, 0x0e, 0x69, 0x6f, 0x2e, 0x6d, 0x69, - 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x42, 0x0b, 0x4d, 0x69, 0x6c, 0x76, 0x75, - 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2d, 0x69, 0x6f, 0x2f, 0x6d, - 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2d, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x33, 0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x70, 0x62, 0xa0, 0x01, - 0x01, 0xaa, 0x02, 0x12, 0x4d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x32, 0x75, 0x0a, + 0x0c, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x65, 0x0a, + 0x0c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x28, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x3a, 0x63, 0x0a, 0x0e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x5f, 0x65, + 0x78, 0x74, 0x5f, 0x6f, 0x62, 0x6a, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, + 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, + 0x73, 0x2e, 0x4d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x45, 0x78, 0x74, 0x52, 0x0c, 0x6d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x45, 0x78, 0x74, 0x4f, 0x62, 0x6a, 0x42, 0x6d, 0x0a, 0x0e, 0x69, 0x6f, 0x2e, + 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x42, 0x0b, 0x4d, 0x69, 0x6c, + 0x76, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2d, 0x69, 0x6f, + 0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, + 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x33, 0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x70, 0x62, + 0xa0, 0x01, 0x01, 0xaa, 0x02, 0x12, 0x4d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -23808,7 +25010,7 @@ func file_milvus_proto_rawDescGZIP() []byte { } var file_milvus_proto_enumTypes = make([]protoimpl.EnumInfo, 9) -var file_milvus_proto_msgTypes = make([]protoimpl.MessageInfo, 288) +var file_milvus_proto_msgTypes = make([]protoimpl.MessageInfo, 302) var file_milvus_proto_goTypes = []interface{}{ (ShowType)(0), // 0: milvus.proto.milvus.ShowType (OperatePrivilegeGroupType)(0), // 1: milvus.proto.milvus.OperatePrivilegeGroupType @@ -23854,984 +25056,1029 @@ var file_milvus_proto_goTypes = []interface{}{ (*GetPartitionStatisticsResponse)(nil), // 41: milvus.proto.milvus.GetPartitionStatisticsResponse (*ShowPartitionsRequest)(nil), // 42: milvus.proto.milvus.ShowPartitionsRequest (*ShowPartitionsResponse)(nil), // 43: milvus.proto.milvus.ShowPartitionsResponse - (*DescribeSegmentRequest)(nil), // 44: milvus.proto.milvus.DescribeSegmentRequest - (*DescribeSegmentResponse)(nil), // 45: milvus.proto.milvus.DescribeSegmentResponse - (*ShowSegmentsRequest)(nil), // 46: milvus.proto.milvus.ShowSegmentsRequest - (*ShowSegmentsResponse)(nil), // 47: milvus.proto.milvus.ShowSegmentsResponse - (*CreateIndexRequest)(nil), // 48: milvus.proto.milvus.CreateIndexRequest - (*AlterIndexRequest)(nil), // 49: milvus.proto.milvus.AlterIndexRequest - (*DescribeIndexRequest)(nil), // 50: milvus.proto.milvus.DescribeIndexRequest - (*IndexDescription)(nil), // 51: milvus.proto.milvus.IndexDescription - (*DescribeIndexResponse)(nil), // 52: milvus.proto.milvus.DescribeIndexResponse - (*GetIndexBuildProgressRequest)(nil), // 53: milvus.proto.milvus.GetIndexBuildProgressRequest - (*GetIndexBuildProgressResponse)(nil), // 54: milvus.proto.milvus.GetIndexBuildProgressResponse - (*GetIndexStateRequest)(nil), // 55: milvus.proto.milvus.GetIndexStateRequest - (*GetIndexStateResponse)(nil), // 56: milvus.proto.milvus.GetIndexStateResponse - (*DropIndexRequest)(nil), // 57: milvus.proto.milvus.DropIndexRequest - (*InsertRequest)(nil), // 58: milvus.proto.milvus.InsertRequest - (*AddCollectionFieldRequest)(nil), // 59: milvus.proto.milvus.AddCollectionFieldRequest - (*AddCollectionStructFieldRequest)(nil), // 60: milvus.proto.milvus.AddCollectionStructFieldRequest - (*AddCollectionFunctionRequest)(nil), // 61: milvus.proto.milvus.AddCollectionFunctionRequest - (*AlterCollectionFunctionRequest)(nil), // 62: milvus.proto.milvus.AlterCollectionFunctionRequest - (*DropCollectionFunctionRequest)(nil), // 63: milvus.proto.milvus.DropCollectionFunctionRequest - (*UpsertRequest)(nil), // 64: milvus.proto.milvus.UpsertRequest - (*MutationResult)(nil), // 65: milvus.proto.milvus.MutationResult - (*DeleteRequest)(nil), // 66: milvus.proto.milvus.DeleteRequest - (*SubSearchRequest)(nil), // 67: milvus.proto.milvus.SubSearchRequest - (*SearchRequest)(nil), // 68: milvus.proto.milvus.SearchRequest - (*Hits)(nil), // 69: milvus.proto.milvus.Hits - (*SearchResults)(nil), // 70: milvus.proto.milvus.SearchResults - (*HybridSearchRequest)(nil), // 71: milvus.proto.milvus.HybridSearchRequest - (*FlushRequest)(nil), // 72: milvus.proto.milvus.FlushRequest - (*FlushResponse)(nil), // 73: milvus.proto.milvus.FlushResponse - (*QueryRequest)(nil), // 74: milvus.proto.milvus.QueryRequest - (*ElementIndices)(nil), // 75: milvus.proto.milvus.ElementIndices - (*QueryResults)(nil), // 76: milvus.proto.milvus.QueryResults - (*QueryCursor)(nil), // 77: milvus.proto.milvus.QueryCursor - (*VectorIDs)(nil), // 78: milvus.proto.milvus.VectorIDs - (*VectorsArray)(nil), // 79: milvus.proto.milvus.VectorsArray - (*CalcDistanceRequest)(nil), // 80: milvus.proto.milvus.CalcDistanceRequest - (*CalcDistanceResults)(nil), // 81: milvus.proto.milvus.CalcDistanceResults - (*FlushAllTarget)(nil), // 82: milvus.proto.milvus.FlushAllTarget - (*FlushAllRequest)(nil), // 83: milvus.proto.milvus.FlushAllRequest - (*ClusterInfo)(nil), // 84: milvus.proto.milvus.ClusterInfo - (*FlushAllResponse)(nil), // 85: milvus.proto.milvus.FlushAllResponse - (*FlushAllResult)(nil), // 86: milvus.proto.milvus.FlushAllResult - (*FlushCollectionResult)(nil), // 87: milvus.proto.milvus.FlushCollectionResult - (*PersistentSegmentInfo)(nil), // 88: milvus.proto.milvus.PersistentSegmentInfo - (*GetPersistentSegmentInfoRequest)(nil), // 89: milvus.proto.milvus.GetPersistentSegmentInfoRequest - (*GetPersistentSegmentInfoResponse)(nil), // 90: milvus.proto.milvus.GetPersistentSegmentInfoResponse - (*QuerySegmentInfo)(nil), // 91: milvus.proto.milvus.QuerySegmentInfo - (*GetQuerySegmentInfoRequest)(nil), // 92: milvus.proto.milvus.GetQuerySegmentInfoRequest - (*GetQuerySegmentInfoResponse)(nil), // 93: milvus.proto.milvus.GetQuerySegmentInfoResponse - (*DummyRequest)(nil), // 94: milvus.proto.milvus.DummyRequest - (*DummyResponse)(nil), // 95: milvus.proto.milvus.DummyResponse - (*RegisterLinkRequest)(nil), // 96: milvus.proto.milvus.RegisterLinkRequest - (*RegisterLinkResponse)(nil), // 97: milvus.proto.milvus.RegisterLinkResponse - (*GetMetricsRequest)(nil), // 98: milvus.proto.milvus.GetMetricsRequest - (*GetMetricsResponse)(nil), // 99: milvus.proto.milvus.GetMetricsResponse - (*ComponentInfo)(nil), // 100: milvus.proto.milvus.ComponentInfo - (*ComponentStates)(nil), // 101: milvus.proto.milvus.ComponentStates - (*GetComponentStatesRequest)(nil), // 102: milvus.proto.milvus.GetComponentStatesRequest - (*LoadBalanceRequest)(nil), // 103: milvus.proto.milvus.LoadBalanceRequest - (*ManualCompactionRequest)(nil), // 104: milvus.proto.milvus.ManualCompactionRequest - (*ManualCompactionResponse)(nil), // 105: milvus.proto.milvus.ManualCompactionResponse - (*GetCompactionStateRequest)(nil), // 106: milvus.proto.milvus.GetCompactionStateRequest - (*GetCompactionStateResponse)(nil), // 107: milvus.proto.milvus.GetCompactionStateResponse - (*GetCompactionPlansRequest)(nil), // 108: milvus.proto.milvus.GetCompactionPlansRequest - (*GetCompactionPlansResponse)(nil), // 109: milvus.proto.milvus.GetCompactionPlansResponse - (*CompactionMergeInfo)(nil), // 110: milvus.proto.milvus.CompactionMergeInfo - (*GetFlushStateRequest)(nil), // 111: milvus.proto.milvus.GetFlushStateRequest - (*GetFlushStateResponse)(nil), // 112: milvus.proto.milvus.GetFlushStateResponse - (*GetFlushAllStateRequest)(nil), // 113: milvus.proto.milvus.GetFlushAllStateRequest - (*GetFlushAllStateResponse)(nil), // 114: milvus.proto.milvus.GetFlushAllStateResponse - (*FlushAllState)(nil), // 115: milvus.proto.milvus.FlushAllState - (*ImportRequest)(nil), // 116: milvus.proto.milvus.ImportRequest - (*ImportResponse)(nil), // 117: milvus.proto.milvus.ImportResponse - (*GetImportStateRequest)(nil), // 118: milvus.proto.milvus.GetImportStateRequest - (*GetImportStateResponse)(nil), // 119: milvus.proto.milvus.GetImportStateResponse - (*ListImportTasksRequest)(nil), // 120: milvus.proto.milvus.ListImportTasksRequest - (*ListImportTasksResponse)(nil), // 121: milvus.proto.milvus.ListImportTasksResponse - (*GetReplicasRequest)(nil), // 122: milvus.proto.milvus.GetReplicasRequest - (*GetReplicasResponse)(nil), // 123: milvus.proto.milvus.GetReplicasResponse - (*ReplicaInfo)(nil), // 124: milvus.proto.milvus.ReplicaInfo - (*ShardReplica)(nil), // 125: milvus.proto.milvus.ShardReplica - (*CreateCredentialRequest)(nil), // 126: milvus.proto.milvus.CreateCredentialRequest - (*UpdateCredentialRequest)(nil), // 127: milvus.proto.milvus.UpdateCredentialRequest - (*DeleteCredentialRequest)(nil), // 128: milvus.proto.milvus.DeleteCredentialRequest - (*ListCredUsersResponse)(nil), // 129: milvus.proto.milvus.ListCredUsersResponse - (*ListCredUsersRequest)(nil), // 130: milvus.proto.milvus.ListCredUsersRequest - (*RoleEntity)(nil), // 131: milvus.proto.milvus.RoleEntity - (*UserEntity)(nil), // 132: milvus.proto.milvus.UserEntity - (*CreateRoleRequest)(nil), // 133: milvus.proto.milvus.CreateRoleRequest - (*DropRoleRequest)(nil), // 134: milvus.proto.milvus.DropRoleRequest - (*CreatePrivilegeGroupRequest)(nil), // 135: milvus.proto.milvus.CreatePrivilegeGroupRequest - (*DropPrivilegeGroupRequest)(nil), // 136: milvus.proto.milvus.DropPrivilegeGroupRequest - (*ListPrivilegeGroupsRequest)(nil), // 137: milvus.proto.milvus.ListPrivilegeGroupsRequest - (*ListPrivilegeGroupsResponse)(nil), // 138: milvus.proto.milvus.ListPrivilegeGroupsResponse - (*OperatePrivilegeGroupRequest)(nil), // 139: milvus.proto.milvus.OperatePrivilegeGroupRequest - (*OperateUserRoleRequest)(nil), // 140: milvus.proto.milvus.OperateUserRoleRequest - (*PrivilegeGroupInfo)(nil), // 141: milvus.proto.milvus.PrivilegeGroupInfo - (*SelectRoleRequest)(nil), // 142: milvus.proto.milvus.SelectRoleRequest - (*RoleResult)(nil), // 143: milvus.proto.milvus.RoleResult - (*SelectRoleResponse)(nil), // 144: milvus.proto.milvus.SelectRoleResponse - (*SelectUserRequest)(nil), // 145: milvus.proto.milvus.SelectUserRequest - (*UserResult)(nil), // 146: milvus.proto.milvus.UserResult - (*SelectUserResponse)(nil), // 147: milvus.proto.milvus.SelectUserResponse - (*ObjectEntity)(nil), // 148: milvus.proto.milvus.ObjectEntity - (*PrivilegeEntity)(nil), // 149: milvus.proto.milvus.PrivilegeEntity - (*GrantorEntity)(nil), // 150: milvus.proto.milvus.GrantorEntity - (*GrantPrivilegeEntity)(nil), // 151: milvus.proto.milvus.GrantPrivilegeEntity - (*GrantEntity)(nil), // 152: milvus.proto.milvus.GrantEntity - (*SelectGrantRequest)(nil), // 153: milvus.proto.milvus.SelectGrantRequest - (*SelectGrantResponse)(nil), // 154: milvus.proto.milvus.SelectGrantResponse - (*OperatePrivilegeRequest)(nil), // 155: milvus.proto.milvus.OperatePrivilegeRequest - (*OperatePrivilegeV2Request)(nil), // 156: milvus.proto.milvus.OperatePrivilegeV2Request - (*UserInfo)(nil), // 157: milvus.proto.milvus.UserInfo - (*RBACMeta)(nil), // 158: milvus.proto.milvus.RBACMeta - (*BackupRBACMetaRequest)(nil), // 159: milvus.proto.milvus.BackupRBACMetaRequest - (*BackupRBACMetaResponse)(nil), // 160: milvus.proto.milvus.BackupRBACMetaResponse - (*RestoreRBACMetaRequest)(nil), // 161: milvus.proto.milvus.RestoreRBACMetaRequest - (*GetLoadingProgressRequest)(nil), // 162: milvus.proto.milvus.GetLoadingProgressRequest - (*GetLoadingProgressResponse)(nil), // 163: milvus.proto.milvus.GetLoadingProgressResponse - (*GetLoadStateRequest)(nil), // 164: milvus.proto.milvus.GetLoadStateRequest - (*GetLoadStateResponse)(nil), // 165: milvus.proto.milvus.GetLoadStateResponse - (*MilvusExt)(nil), // 166: milvus.proto.milvus.MilvusExt - (*GetVersionRequest)(nil), // 167: milvus.proto.milvus.GetVersionRequest - (*GetVersionResponse)(nil), // 168: milvus.proto.milvus.GetVersionResponse - (*CheckHealthRequest)(nil), // 169: milvus.proto.milvus.CheckHealthRequest - (*CheckHealthResponse)(nil), // 170: milvus.proto.milvus.CheckHealthResponse - (*CreateResourceGroupRequest)(nil), // 171: milvus.proto.milvus.CreateResourceGroupRequest - (*UpdateResourceGroupsRequest)(nil), // 172: milvus.proto.milvus.UpdateResourceGroupsRequest - (*DropResourceGroupRequest)(nil), // 173: milvus.proto.milvus.DropResourceGroupRequest - (*TransferNodeRequest)(nil), // 174: milvus.proto.milvus.TransferNodeRequest - (*TransferReplicaRequest)(nil), // 175: milvus.proto.milvus.TransferReplicaRequest - (*ListResourceGroupsRequest)(nil), // 176: milvus.proto.milvus.ListResourceGroupsRequest - (*ListResourceGroupsResponse)(nil), // 177: milvus.proto.milvus.ListResourceGroupsResponse - (*DescribeResourceGroupRequest)(nil), // 178: milvus.proto.milvus.DescribeResourceGroupRequest - (*DescribeResourceGroupResponse)(nil), // 179: milvus.proto.milvus.DescribeResourceGroupResponse - (*ResourceGroup)(nil), // 180: milvus.proto.milvus.ResourceGroup - (*RenameCollectionRequest)(nil), // 181: milvus.proto.milvus.RenameCollectionRequest - (*GetIndexStatisticsRequest)(nil), // 182: milvus.proto.milvus.GetIndexStatisticsRequest - (*GetIndexStatisticsResponse)(nil), // 183: milvus.proto.milvus.GetIndexStatisticsResponse - (*ConnectRequest)(nil), // 184: milvus.proto.milvus.ConnectRequest - (*ConnectResponse)(nil), // 185: milvus.proto.milvus.ConnectResponse - (*AllocTimestampRequest)(nil), // 186: milvus.proto.milvus.AllocTimestampRequest - (*AllocTimestampResponse)(nil), // 187: milvus.proto.milvus.AllocTimestampResponse - (*CreateDatabaseRequest)(nil), // 188: milvus.proto.milvus.CreateDatabaseRequest - (*DropDatabaseRequest)(nil), // 189: milvus.proto.milvus.DropDatabaseRequest - (*ListDatabasesRequest)(nil), // 190: milvus.proto.milvus.ListDatabasesRequest - (*ListDatabasesResponse)(nil), // 191: milvus.proto.milvus.ListDatabasesResponse - (*AlterDatabaseRequest)(nil), // 192: milvus.proto.milvus.AlterDatabaseRequest - (*DescribeDatabaseRequest)(nil), // 193: milvus.proto.milvus.DescribeDatabaseRequest - (*DescribeDatabaseResponse)(nil), // 194: milvus.proto.milvus.DescribeDatabaseResponse - (*ReplicateMessageRequest)(nil), // 195: milvus.proto.milvus.ReplicateMessageRequest - (*ReplicateMessageResponse)(nil), // 196: milvus.proto.milvus.ReplicateMessageResponse - (*ImportAuthPlaceholder)(nil), // 197: milvus.proto.milvus.ImportAuthPlaceholder - (*GetImportProgressAuthPlaceholder)(nil), // 198: milvus.proto.milvus.GetImportProgressAuthPlaceholder - (*ListImportsAuthPlaceholder)(nil), // 199: milvus.proto.milvus.ListImportsAuthPlaceholder - (*RunAnalyzerRequest)(nil), // 200: milvus.proto.milvus.RunAnalyzerRequest - (*AnalyzerToken)(nil), // 201: milvus.proto.milvus.AnalyzerToken - (*AnalyzerResult)(nil), // 202: milvus.proto.milvus.AnalyzerResult - (*RunAnalyzerResponse)(nil), // 203: milvus.proto.milvus.RunAnalyzerResponse - (*FileResourceInfo)(nil), // 204: milvus.proto.milvus.FileResourceInfo - (*AddFileResourceRequest)(nil), // 205: milvus.proto.milvus.AddFileResourceRequest - (*RemoveFileResourceRequest)(nil), // 206: milvus.proto.milvus.RemoveFileResourceRequest - (*ListFileResourcesRequest)(nil), // 207: milvus.proto.milvus.ListFileResourcesRequest - (*ListFileResourcesResponse)(nil), // 208: milvus.proto.milvus.ListFileResourcesResponse - (*AddUserTagsRequest)(nil), // 209: milvus.proto.milvus.AddUserTagsRequest - (*DeleteUserTagsRequest)(nil), // 210: milvus.proto.milvus.DeleteUserTagsRequest - (*GetUserTagsRequest)(nil), // 211: milvus.proto.milvus.GetUserTagsRequest - (*GetUserTagsResponse)(nil), // 212: milvus.proto.milvus.GetUserTagsResponse - (*ListUsersWithTagRequest)(nil), // 213: milvus.proto.milvus.ListUsersWithTagRequest - (*ListUsersWithTagResponse)(nil), // 214: milvus.proto.milvus.ListUsersWithTagResponse - (*CreateRowPolicyRequest)(nil), // 215: milvus.proto.milvus.CreateRowPolicyRequest - (*DropRowPolicyRequest)(nil), // 216: milvus.proto.milvus.DropRowPolicyRequest - (*ListRowPoliciesRequest)(nil), // 217: milvus.proto.milvus.ListRowPoliciesRequest - (*RowPolicy)(nil), // 218: milvus.proto.milvus.RowPolicy - (*ListRowPoliciesResponse)(nil), // 219: milvus.proto.milvus.ListRowPoliciesResponse - (*UpdateReplicateConfigurationRequest)(nil), // 220: milvus.proto.milvus.UpdateReplicateConfigurationRequest - (*GetReplicateConfigurationRequest)(nil), // 221: milvus.proto.milvus.GetReplicateConfigurationRequest - (*GetReplicateConfigurationResponse)(nil), // 222: milvus.proto.milvus.GetReplicateConfigurationResponse - (*GetReplicateInfoRequest)(nil), // 223: milvus.proto.milvus.GetReplicateInfoRequest - (*GetReplicateInfoResponse)(nil), // 224: milvus.proto.milvus.GetReplicateInfoResponse - (*ReplicateMessage)(nil), // 225: milvus.proto.milvus.ReplicateMessage - (*ReplicateRequest)(nil), // 226: milvus.proto.milvus.ReplicateRequest - (*ReplicateConfirmedMessageInfo)(nil), // 227: milvus.proto.milvus.ReplicateConfirmedMessageInfo - (*ReplicateResponse)(nil), // 228: milvus.proto.milvus.ReplicateResponse - (*DumpMessagesRequest)(nil), // 229: milvus.proto.milvus.DumpMessagesRequest - (*DumpMessagesResponse)(nil), // 230: milvus.proto.milvus.DumpMessagesResponse - (*TruncateCollectionRequest)(nil), // 231: milvus.proto.milvus.TruncateCollectionRequest - (*TruncateCollectionResponse)(nil), // 232: milvus.proto.milvus.TruncateCollectionResponse - (*ComputePhraseMatchSlopRequest)(nil), // 233: milvus.proto.milvus.ComputePhraseMatchSlopRequest - (*ComputePhraseMatchSlopResponse)(nil), // 234: milvus.proto.milvus.ComputePhraseMatchSlopResponse - (*CreateSnapshotRequest)(nil), // 235: milvus.proto.milvus.CreateSnapshotRequest - (*DropSnapshotRequest)(nil), // 236: milvus.proto.milvus.DropSnapshotRequest - (*ListSnapshotsRequest)(nil), // 237: milvus.proto.milvus.ListSnapshotsRequest - (*ListSnapshotsResponse)(nil), // 238: milvus.proto.milvus.ListSnapshotsResponse - (*DescribeSnapshotRequest)(nil), // 239: milvus.proto.milvus.DescribeSnapshotRequest - (*DescribeSnapshotResponse)(nil), // 240: milvus.proto.milvus.DescribeSnapshotResponse - (*RestoreSnapshotRequest)(nil), // 241: milvus.proto.milvus.RestoreSnapshotRequest - (*RestoreSnapshotResponse)(nil), // 242: milvus.proto.milvus.RestoreSnapshotResponse - (*RestoreSnapshotInfo)(nil), // 243: milvus.proto.milvus.RestoreSnapshotInfo - (*GetRestoreSnapshotStateRequest)(nil), // 244: milvus.proto.milvus.GetRestoreSnapshotStateRequest - (*GetRestoreSnapshotStateResponse)(nil), // 245: milvus.proto.milvus.GetRestoreSnapshotStateResponse - (*ListRestoreSnapshotJobsRequest)(nil), // 246: milvus.proto.milvus.ListRestoreSnapshotJobsRequest - (*ListRestoreSnapshotJobsResponse)(nil), // 247: milvus.proto.milvus.ListRestoreSnapshotJobsResponse - (*PinSnapshotDataRequest)(nil), // 248: milvus.proto.milvus.PinSnapshotDataRequest - (*PinSnapshotDataResponse)(nil), // 249: milvus.proto.milvus.PinSnapshotDataResponse - (*UnpinSnapshotDataRequest)(nil), // 250: milvus.proto.milvus.UnpinSnapshotDataRequest - (*AlterCollectionSchemaRequest)(nil), // 251: milvus.proto.milvus.AlterCollectionSchemaRequest - (*AlterCollectionSchemaResponse)(nil), // 252: milvus.proto.milvus.AlterCollectionSchemaResponse - (*BatchUpdateManifestRequest)(nil), // 253: milvus.proto.milvus.BatchUpdateManifestRequest - (*BatchUpdateManifestItem)(nil), // 254: milvus.proto.milvus.BatchUpdateManifestItem - (*ClientHeartbeatRequest)(nil), // 255: milvus.proto.milvus.ClientHeartbeatRequest - (*ClientHeartbeatResponse)(nil), // 256: milvus.proto.milvus.ClientHeartbeatResponse - (*GetClientTelemetryRequest)(nil), // 257: milvus.proto.milvus.GetClientTelemetryRequest - (*ClientTelemetry)(nil), // 258: milvus.proto.milvus.ClientTelemetry - (*GetClientTelemetryResponse)(nil), // 259: milvus.proto.milvus.GetClientTelemetryResponse - (*PushClientCommandRequest)(nil), // 260: milvus.proto.milvus.PushClientCommandRequest - (*PushClientCommandResponse)(nil), // 261: milvus.proto.milvus.PushClientCommandResponse - (*DeleteClientCommandRequest)(nil), // 262: milvus.proto.milvus.DeleteClientCommandRequest - (*DeleteClientCommandResponse)(nil), // 263: milvus.proto.milvus.DeleteClientCommandResponse - (*RefreshExternalCollectionRequest)(nil), // 264: milvus.proto.milvus.RefreshExternalCollectionRequest - (*RefreshExternalCollectionResponse)(nil), // 265: milvus.proto.milvus.RefreshExternalCollectionResponse - (*GetRefreshExternalCollectionProgressRequest)(nil), // 266: milvus.proto.milvus.GetRefreshExternalCollectionProgressRequest - (*RefreshExternalCollectionJobInfo)(nil), // 267: milvus.proto.milvus.RefreshExternalCollectionJobInfo - (*GetRefreshExternalCollectionProgressResponse)(nil), // 268: milvus.proto.milvus.GetRefreshExternalCollectionProgressResponse - (*ListRefreshExternalCollectionJobsRequest)(nil), // 269: milvus.proto.milvus.ListRefreshExternalCollectionJobsRequest - (*ListRefreshExternalCollectionJobsResponse)(nil), // 270: milvus.proto.milvus.ListRefreshExternalCollectionJobsResponse - nil, // 271: milvus.proto.milvus.LoadCollectionRequest.LoadParamsEntry - nil, // 272: milvus.proto.milvus.LoadPartitionsRequest.LoadParamsEntry - nil, // 273: milvus.proto.milvus.DeleteRequest.ExprTemplateValuesEntry - nil, // 274: milvus.proto.milvus.SubSearchRequest.ExprTemplateValuesEntry - nil, // 275: milvus.proto.milvus.SearchRequest.ExprTemplateValuesEntry - nil, // 276: milvus.proto.milvus.FlushResponse.CollSegIDsEntry - nil, // 277: milvus.proto.milvus.FlushResponse.FlushCollSegIDsEntry - nil, // 278: milvus.proto.milvus.FlushResponse.CollSealTimesEntry - nil, // 279: milvus.proto.milvus.FlushResponse.CollFlushTsEntry - nil, // 280: milvus.proto.milvus.FlushResponse.ChannelCpsEntry - nil, // 281: milvus.proto.milvus.QueryRequest.ExprTemplateValuesEntry - nil, // 282: milvus.proto.milvus.FlushAllResponse.FlushAllMsgsEntry - nil, // 283: milvus.proto.milvus.FlushCollectionResult.ChannelCpsEntry - nil, // 284: milvus.proto.milvus.GetFlushAllStateRequest.FlushAllTssEntry - nil, // 285: milvus.proto.milvus.FlushAllState.CollectionFlushStatesEntry - nil, // 286: milvus.proto.milvus.ReplicaInfo.NumOutboundNodeEntry - nil, // 287: milvus.proto.milvus.UpdateResourceGroupsRequest.ResourceGroupsEntry - nil, // 288: milvus.proto.milvus.ResourceGroup.NumLoadedReplicaEntry - nil, // 289: milvus.proto.milvus.ResourceGroup.NumOutgoingNodeEntry - nil, // 290: milvus.proto.milvus.ResourceGroup.NumIncomingNodeEntry - nil, // 291: milvus.proto.milvus.AddUserTagsRequest.TagsEntry - nil, // 292: milvus.proto.milvus.GetUserTagsResponse.TagsEntry - (*AlterCollectionSchemaRequest_FieldInfo)(nil), // 293: milvus.proto.milvus.AlterCollectionSchemaRequest.FieldInfo - (*AlterCollectionSchemaRequest_AddRequest)(nil), // 294: milvus.proto.milvus.AlterCollectionSchemaRequest.AddRequest - (*AlterCollectionSchemaRequest_DropRequest)(nil), // 295: milvus.proto.milvus.AlterCollectionSchemaRequest.DropRequest - (*AlterCollectionSchemaRequest_Action)(nil), // 296: milvus.proto.milvus.AlterCollectionSchemaRequest.Action - (*commonpb.MsgBase)(nil), // 297: milvus.proto.common.MsgBase - (*commonpb.Status)(nil), // 298: milvus.proto.common.Status - (commonpb.ConsistencyLevel)(0), // 299: milvus.proto.common.ConsistencyLevel - (*commonpb.KeyValuePair)(nil), // 300: milvus.proto.common.KeyValuePair - (*schemapb.CollectionSchema)(nil), // 301: milvus.proto.schema.CollectionSchema - (*commonpb.KeyDataPair)(nil), // 302: milvus.proto.common.KeyDataPair - (commonpb.IndexState)(0), // 303: milvus.proto.common.IndexState - (*schemapb.FieldData)(nil), // 304: milvus.proto.schema.FieldData - (*schemapb.StructArrayFieldSchema)(nil), // 305: milvus.proto.schema.StructArrayFieldSchema - (*schemapb.FunctionSchema)(nil), // 306: milvus.proto.schema.FunctionSchema - (*schemapb.FieldPartialUpdateOp)(nil), // 307: milvus.proto.schema.FieldPartialUpdateOp - (*schemapb.IDs)(nil), // 308: milvus.proto.schema.IDs - (commonpb.DslType)(0), // 309: milvus.proto.common.DslType - (*schemapb.FunctionScore)(nil), // 310: milvus.proto.schema.FunctionScore - (*commonpb.Highlighter)(nil), // 311: milvus.proto.common.Highlighter - (*commonpb.SearchAggregationSpec)(nil), // 312: milvus.proto.common.SearchAggregationSpec - (*schemapb.SearchResultData)(nil), // 313: milvus.proto.schema.SearchResultData - (*schemapb.LongArray)(nil), // 314: milvus.proto.schema.LongArray - (*schemapb.VectorField)(nil), // 315: milvus.proto.schema.VectorField - (*schemapb.IntArray)(nil), // 316: milvus.proto.schema.IntArray - (*schemapb.FloatArray)(nil), // 317: milvus.proto.schema.FloatArray - (commonpb.SegmentState)(0), // 318: milvus.proto.common.SegmentState - (commonpb.SegmentLevel)(0), // 319: milvus.proto.common.SegmentLevel - (*commonpb.Address)(nil), // 320: milvus.proto.common.Address - (commonpb.StateCode)(0), // 321: milvus.proto.common.StateCode - (commonpb.CompactionState)(0), // 322: milvus.proto.common.CompactionState - (commonpb.ImportState)(0), // 323: milvus.proto.common.ImportState - (commonpb.LoadState)(0), // 324: milvus.proto.common.LoadState - (*rgpb.ResourceGroupConfig)(nil), // 325: milvus.proto.rg.ResourceGroupConfig - (*commonpb.NodeInfo)(nil), // 326: milvus.proto.common.NodeInfo - (*commonpb.ClientInfo)(nil), // 327: milvus.proto.common.ClientInfo - (*commonpb.ServerInfo)(nil), // 328: milvus.proto.common.ServerInfo - (*msgpb.MsgPosition)(nil), // 329: milvus.proto.msg.MsgPosition - (*commonpb.ReplicateConfiguration)(nil), // 330: milvus.proto.common.ReplicateConfiguration - (*commonpb.ReplicateCheckpoint)(nil), // 331: milvus.proto.common.ReplicateCheckpoint - (*commonpb.ImmutableMessage)(nil), // 332: milvus.proto.common.ImmutableMessage - (*commonpb.MessageID)(nil), // 333: milvus.proto.common.MessageID - (*commonpb.OperationMetrics)(nil), // 334: milvus.proto.common.OperationMetrics - (*commonpb.CommandReply)(nil), // 335: milvus.proto.common.CommandReply - (*commonpb.ClientCommand)(nil), // 336: milvus.proto.common.ClientCommand - (*commonpb.Metrics)(nil), // 337: milvus.proto.common.Metrics - (*schemapb.TemplateValue)(nil), // 338: milvus.proto.schema.TemplateValue - (*schemapb.FieldSchema)(nil), // 339: milvus.proto.schema.FieldSchema - (*descriptorpb.FileOptions)(nil), // 340: google.protobuf.FileOptions - (*federpb.ListIndexedSegmentRequest)(nil), // 341: milvus.proto.feder.ListIndexedSegmentRequest - (*federpb.DescribeSegmentIndexDataRequest)(nil), // 342: milvus.proto.feder.DescribeSegmentIndexDataRequest - (*federpb.ListIndexedSegmentResponse)(nil), // 343: milvus.proto.feder.ListIndexedSegmentResponse - (*federpb.DescribeSegmentIndexDataResponse)(nil), // 344: milvus.proto.feder.DescribeSegmentIndexDataResponse + (*NamespaceStats)(nil), // 44: milvus.proto.milvus.NamespaceStats + (*NamespaceInfo)(nil), // 45: milvus.proto.milvus.NamespaceInfo + (*CreateNamespaceRequest)(nil), // 46: milvus.proto.milvus.CreateNamespaceRequest + (*CreateNamespaceResponse)(nil), // 47: milvus.proto.milvus.CreateNamespaceResponse + (*DescribeNamespaceRequest)(nil), // 48: milvus.proto.milvus.DescribeNamespaceRequest + (*DescribeNamespaceResponse)(nil), // 49: milvus.proto.milvus.DescribeNamespaceResponse + (*ListNamespacesRequest)(nil), // 50: milvus.proto.milvus.ListNamespacesRequest + (*ListNamespacesResponse)(nil), // 51: milvus.proto.milvus.ListNamespacesResponse + (*DropNamespaceRequest)(nil), // 52: milvus.proto.milvus.DropNamespaceRequest + (*DropNamespaceResponse)(nil), // 53: milvus.proto.milvus.DropNamespaceResponse + (*HasNamespaceRequest)(nil), // 54: milvus.proto.milvus.HasNamespaceRequest + (*HasNamespaceResponse)(nil), // 55: milvus.proto.milvus.HasNamespaceResponse + (*GetNamespaceStatsRequest)(nil), // 56: milvus.proto.milvus.GetNamespaceStatsRequest + (*GetNamespaceStatsResponse)(nil), // 57: milvus.proto.milvus.GetNamespaceStatsResponse + (*DescribeSegmentRequest)(nil), // 58: milvus.proto.milvus.DescribeSegmentRequest + (*DescribeSegmentResponse)(nil), // 59: milvus.proto.milvus.DescribeSegmentResponse + (*ShowSegmentsRequest)(nil), // 60: milvus.proto.milvus.ShowSegmentsRequest + (*ShowSegmentsResponse)(nil), // 61: milvus.proto.milvus.ShowSegmentsResponse + (*CreateIndexRequest)(nil), // 62: milvus.proto.milvus.CreateIndexRequest + (*AlterIndexRequest)(nil), // 63: milvus.proto.milvus.AlterIndexRequest + (*DescribeIndexRequest)(nil), // 64: milvus.proto.milvus.DescribeIndexRequest + (*IndexDescription)(nil), // 65: milvus.proto.milvus.IndexDescription + (*DescribeIndexResponse)(nil), // 66: milvus.proto.milvus.DescribeIndexResponse + (*GetIndexBuildProgressRequest)(nil), // 67: milvus.proto.milvus.GetIndexBuildProgressRequest + (*GetIndexBuildProgressResponse)(nil), // 68: milvus.proto.milvus.GetIndexBuildProgressResponse + (*GetIndexStateRequest)(nil), // 69: milvus.proto.milvus.GetIndexStateRequest + (*GetIndexStateResponse)(nil), // 70: milvus.proto.milvus.GetIndexStateResponse + (*DropIndexRequest)(nil), // 71: milvus.proto.milvus.DropIndexRequest + (*InsertRequest)(nil), // 72: milvus.proto.milvus.InsertRequest + (*AddCollectionFieldRequest)(nil), // 73: milvus.proto.milvus.AddCollectionFieldRequest + (*AddCollectionStructFieldRequest)(nil), // 74: milvus.proto.milvus.AddCollectionStructFieldRequest + (*AddCollectionFunctionRequest)(nil), // 75: milvus.proto.milvus.AddCollectionFunctionRequest + (*AlterCollectionFunctionRequest)(nil), // 76: milvus.proto.milvus.AlterCollectionFunctionRequest + (*DropCollectionFunctionRequest)(nil), // 77: milvus.proto.milvus.DropCollectionFunctionRequest + (*UpsertRequest)(nil), // 78: milvus.proto.milvus.UpsertRequest + (*MutationResult)(nil), // 79: milvus.proto.milvus.MutationResult + (*DeleteRequest)(nil), // 80: milvus.proto.milvus.DeleteRequest + (*SubSearchRequest)(nil), // 81: milvus.proto.milvus.SubSearchRequest + (*SearchRequest)(nil), // 82: milvus.proto.milvus.SearchRequest + (*Hits)(nil), // 83: milvus.proto.milvus.Hits + (*SearchResults)(nil), // 84: milvus.proto.milvus.SearchResults + (*HybridSearchRequest)(nil), // 85: milvus.proto.milvus.HybridSearchRequest + (*FlushRequest)(nil), // 86: milvus.proto.milvus.FlushRequest + (*FlushResponse)(nil), // 87: milvus.proto.milvus.FlushResponse + (*QueryRequest)(nil), // 88: milvus.proto.milvus.QueryRequest + (*ElementIndices)(nil), // 89: milvus.proto.milvus.ElementIndices + (*QueryResults)(nil), // 90: milvus.proto.milvus.QueryResults + (*QueryCursor)(nil), // 91: milvus.proto.milvus.QueryCursor + (*VectorIDs)(nil), // 92: milvus.proto.milvus.VectorIDs + (*VectorsArray)(nil), // 93: milvus.proto.milvus.VectorsArray + (*CalcDistanceRequest)(nil), // 94: milvus.proto.milvus.CalcDistanceRequest + (*CalcDistanceResults)(nil), // 95: milvus.proto.milvus.CalcDistanceResults + (*FlushAllTarget)(nil), // 96: milvus.proto.milvus.FlushAllTarget + (*FlushAllRequest)(nil), // 97: milvus.proto.milvus.FlushAllRequest + (*ClusterInfo)(nil), // 98: milvus.proto.milvus.ClusterInfo + (*FlushAllResponse)(nil), // 99: milvus.proto.milvus.FlushAllResponse + (*FlushAllResult)(nil), // 100: milvus.proto.milvus.FlushAllResult + (*FlushCollectionResult)(nil), // 101: milvus.proto.milvus.FlushCollectionResult + (*PersistentSegmentInfo)(nil), // 102: milvus.proto.milvus.PersistentSegmentInfo + (*GetPersistentSegmentInfoRequest)(nil), // 103: milvus.proto.milvus.GetPersistentSegmentInfoRequest + (*GetPersistentSegmentInfoResponse)(nil), // 104: milvus.proto.milvus.GetPersistentSegmentInfoResponse + (*QuerySegmentInfo)(nil), // 105: milvus.proto.milvus.QuerySegmentInfo + (*GetQuerySegmentInfoRequest)(nil), // 106: milvus.proto.milvus.GetQuerySegmentInfoRequest + (*GetQuerySegmentInfoResponse)(nil), // 107: milvus.proto.milvus.GetQuerySegmentInfoResponse + (*DummyRequest)(nil), // 108: milvus.proto.milvus.DummyRequest + (*DummyResponse)(nil), // 109: milvus.proto.milvus.DummyResponse + (*RegisterLinkRequest)(nil), // 110: milvus.proto.milvus.RegisterLinkRequest + (*RegisterLinkResponse)(nil), // 111: milvus.proto.milvus.RegisterLinkResponse + (*GetMetricsRequest)(nil), // 112: milvus.proto.milvus.GetMetricsRequest + (*GetMetricsResponse)(nil), // 113: milvus.proto.milvus.GetMetricsResponse + (*ComponentInfo)(nil), // 114: milvus.proto.milvus.ComponentInfo + (*ComponentStates)(nil), // 115: milvus.proto.milvus.ComponentStates + (*GetComponentStatesRequest)(nil), // 116: milvus.proto.milvus.GetComponentStatesRequest + (*LoadBalanceRequest)(nil), // 117: milvus.proto.milvus.LoadBalanceRequest + (*ManualCompactionRequest)(nil), // 118: milvus.proto.milvus.ManualCompactionRequest + (*ManualCompactionResponse)(nil), // 119: milvus.proto.milvus.ManualCompactionResponse + (*GetCompactionStateRequest)(nil), // 120: milvus.proto.milvus.GetCompactionStateRequest + (*GetCompactionStateResponse)(nil), // 121: milvus.proto.milvus.GetCompactionStateResponse + (*GetCompactionPlansRequest)(nil), // 122: milvus.proto.milvus.GetCompactionPlansRequest + (*GetCompactionPlansResponse)(nil), // 123: milvus.proto.milvus.GetCompactionPlansResponse + (*CompactionMergeInfo)(nil), // 124: milvus.proto.milvus.CompactionMergeInfo + (*GetFlushStateRequest)(nil), // 125: milvus.proto.milvus.GetFlushStateRequest + (*GetFlushStateResponse)(nil), // 126: milvus.proto.milvus.GetFlushStateResponse + (*GetFlushAllStateRequest)(nil), // 127: milvus.proto.milvus.GetFlushAllStateRequest + (*GetFlushAllStateResponse)(nil), // 128: milvus.proto.milvus.GetFlushAllStateResponse + (*FlushAllState)(nil), // 129: milvus.proto.milvus.FlushAllState + (*ImportRequest)(nil), // 130: milvus.proto.milvus.ImportRequest + (*ImportResponse)(nil), // 131: milvus.proto.milvus.ImportResponse + (*GetImportStateRequest)(nil), // 132: milvus.proto.milvus.GetImportStateRequest + (*GetImportStateResponse)(nil), // 133: milvus.proto.milvus.GetImportStateResponse + (*ListImportTasksRequest)(nil), // 134: milvus.proto.milvus.ListImportTasksRequest + (*ListImportTasksResponse)(nil), // 135: milvus.proto.milvus.ListImportTasksResponse + (*GetReplicasRequest)(nil), // 136: milvus.proto.milvus.GetReplicasRequest + (*GetReplicasResponse)(nil), // 137: milvus.proto.milvus.GetReplicasResponse + (*ReplicaInfo)(nil), // 138: milvus.proto.milvus.ReplicaInfo + (*ShardReplica)(nil), // 139: milvus.proto.milvus.ShardReplica + (*CreateCredentialRequest)(nil), // 140: milvus.proto.milvus.CreateCredentialRequest + (*UpdateCredentialRequest)(nil), // 141: milvus.proto.milvus.UpdateCredentialRequest + (*DeleteCredentialRequest)(nil), // 142: milvus.proto.milvus.DeleteCredentialRequest + (*ListCredUsersResponse)(nil), // 143: milvus.proto.milvus.ListCredUsersResponse + (*ListCredUsersRequest)(nil), // 144: milvus.proto.milvus.ListCredUsersRequest + (*RoleEntity)(nil), // 145: milvus.proto.milvus.RoleEntity + (*UserEntity)(nil), // 146: milvus.proto.milvus.UserEntity + (*CreateRoleRequest)(nil), // 147: milvus.proto.milvus.CreateRoleRequest + (*DropRoleRequest)(nil), // 148: milvus.proto.milvus.DropRoleRequest + (*CreatePrivilegeGroupRequest)(nil), // 149: milvus.proto.milvus.CreatePrivilegeGroupRequest + (*DropPrivilegeGroupRequest)(nil), // 150: milvus.proto.milvus.DropPrivilegeGroupRequest + (*ListPrivilegeGroupsRequest)(nil), // 151: milvus.proto.milvus.ListPrivilegeGroupsRequest + (*ListPrivilegeGroupsResponse)(nil), // 152: milvus.proto.milvus.ListPrivilegeGroupsResponse + (*OperatePrivilegeGroupRequest)(nil), // 153: milvus.proto.milvus.OperatePrivilegeGroupRequest + (*OperateUserRoleRequest)(nil), // 154: milvus.proto.milvus.OperateUserRoleRequest + (*PrivilegeGroupInfo)(nil), // 155: milvus.proto.milvus.PrivilegeGroupInfo + (*SelectRoleRequest)(nil), // 156: milvus.proto.milvus.SelectRoleRequest + (*RoleResult)(nil), // 157: milvus.proto.milvus.RoleResult + (*SelectRoleResponse)(nil), // 158: milvus.proto.milvus.SelectRoleResponse + (*SelectUserRequest)(nil), // 159: milvus.proto.milvus.SelectUserRequest + (*UserResult)(nil), // 160: milvus.proto.milvus.UserResult + (*SelectUserResponse)(nil), // 161: milvus.proto.milvus.SelectUserResponse + (*ObjectEntity)(nil), // 162: milvus.proto.milvus.ObjectEntity + (*PrivilegeEntity)(nil), // 163: milvus.proto.milvus.PrivilegeEntity + (*GrantorEntity)(nil), // 164: milvus.proto.milvus.GrantorEntity + (*GrantPrivilegeEntity)(nil), // 165: milvus.proto.milvus.GrantPrivilegeEntity + (*GrantEntity)(nil), // 166: milvus.proto.milvus.GrantEntity + (*SelectGrantRequest)(nil), // 167: milvus.proto.milvus.SelectGrantRequest + (*SelectGrantResponse)(nil), // 168: milvus.proto.milvus.SelectGrantResponse + (*OperatePrivilegeRequest)(nil), // 169: milvus.proto.milvus.OperatePrivilegeRequest + (*OperatePrivilegeV2Request)(nil), // 170: milvus.proto.milvus.OperatePrivilegeV2Request + (*UserInfo)(nil), // 171: milvus.proto.milvus.UserInfo + (*RBACMeta)(nil), // 172: milvus.proto.milvus.RBACMeta + (*BackupRBACMetaRequest)(nil), // 173: milvus.proto.milvus.BackupRBACMetaRequest + (*BackupRBACMetaResponse)(nil), // 174: milvus.proto.milvus.BackupRBACMetaResponse + (*RestoreRBACMetaRequest)(nil), // 175: milvus.proto.milvus.RestoreRBACMetaRequest + (*GetLoadingProgressRequest)(nil), // 176: milvus.proto.milvus.GetLoadingProgressRequest + (*GetLoadingProgressResponse)(nil), // 177: milvus.proto.milvus.GetLoadingProgressResponse + (*GetLoadStateRequest)(nil), // 178: milvus.proto.milvus.GetLoadStateRequest + (*GetLoadStateResponse)(nil), // 179: milvus.proto.milvus.GetLoadStateResponse + (*MilvusExt)(nil), // 180: milvus.proto.milvus.MilvusExt + (*GetVersionRequest)(nil), // 181: milvus.proto.milvus.GetVersionRequest + (*GetVersionResponse)(nil), // 182: milvus.proto.milvus.GetVersionResponse + (*CheckHealthRequest)(nil), // 183: milvus.proto.milvus.CheckHealthRequest + (*CheckHealthResponse)(nil), // 184: milvus.proto.milvus.CheckHealthResponse + (*CreateResourceGroupRequest)(nil), // 185: milvus.proto.milvus.CreateResourceGroupRequest + (*UpdateResourceGroupsRequest)(nil), // 186: milvus.proto.milvus.UpdateResourceGroupsRequest + (*DropResourceGroupRequest)(nil), // 187: milvus.proto.milvus.DropResourceGroupRequest + (*TransferNodeRequest)(nil), // 188: milvus.proto.milvus.TransferNodeRequest + (*TransferReplicaRequest)(nil), // 189: milvus.proto.milvus.TransferReplicaRequest + (*ListResourceGroupsRequest)(nil), // 190: milvus.proto.milvus.ListResourceGroupsRequest + (*ListResourceGroupsResponse)(nil), // 191: milvus.proto.milvus.ListResourceGroupsResponse + (*DescribeResourceGroupRequest)(nil), // 192: milvus.proto.milvus.DescribeResourceGroupRequest + (*DescribeResourceGroupResponse)(nil), // 193: milvus.proto.milvus.DescribeResourceGroupResponse + (*ResourceGroup)(nil), // 194: milvus.proto.milvus.ResourceGroup + (*RenameCollectionRequest)(nil), // 195: milvus.proto.milvus.RenameCollectionRequest + (*GetIndexStatisticsRequest)(nil), // 196: milvus.proto.milvus.GetIndexStatisticsRequest + (*GetIndexStatisticsResponse)(nil), // 197: milvus.proto.milvus.GetIndexStatisticsResponse + (*ConnectRequest)(nil), // 198: milvus.proto.milvus.ConnectRequest + (*ConnectResponse)(nil), // 199: milvus.proto.milvus.ConnectResponse + (*AllocTimestampRequest)(nil), // 200: milvus.proto.milvus.AllocTimestampRequest + (*AllocTimestampResponse)(nil), // 201: milvus.proto.milvus.AllocTimestampResponse + (*CreateDatabaseRequest)(nil), // 202: milvus.proto.milvus.CreateDatabaseRequest + (*DropDatabaseRequest)(nil), // 203: milvus.proto.milvus.DropDatabaseRequest + (*ListDatabasesRequest)(nil), // 204: milvus.proto.milvus.ListDatabasesRequest + (*ListDatabasesResponse)(nil), // 205: milvus.proto.milvus.ListDatabasesResponse + (*AlterDatabaseRequest)(nil), // 206: milvus.proto.milvus.AlterDatabaseRequest + (*DescribeDatabaseRequest)(nil), // 207: milvus.proto.milvus.DescribeDatabaseRequest + (*DescribeDatabaseResponse)(nil), // 208: milvus.proto.milvus.DescribeDatabaseResponse + (*ReplicateMessageRequest)(nil), // 209: milvus.proto.milvus.ReplicateMessageRequest + (*ReplicateMessageResponse)(nil), // 210: milvus.proto.milvus.ReplicateMessageResponse + (*ImportAuthPlaceholder)(nil), // 211: milvus.proto.milvus.ImportAuthPlaceholder + (*GetImportProgressAuthPlaceholder)(nil), // 212: milvus.proto.milvus.GetImportProgressAuthPlaceholder + (*ListImportsAuthPlaceholder)(nil), // 213: milvus.proto.milvus.ListImportsAuthPlaceholder + (*RunAnalyzerRequest)(nil), // 214: milvus.proto.milvus.RunAnalyzerRequest + (*AnalyzerToken)(nil), // 215: milvus.proto.milvus.AnalyzerToken + (*AnalyzerResult)(nil), // 216: milvus.proto.milvus.AnalyzerResult + (*RunAnalyzerResponse)(nil), // 217: milvus.proto.milvus.RunAnalyzerResponse + (*FileResourceInfo)(nil), // 218: milvus.proto.milvus.FileResourceInfo + (*AddFileResourceRequest)(nil), // 219: milvus.proto.milvus.AddFileResourceRequest + (*RemoveFileResourceRequest)(nil), // 220: milvus.proto.milvus.RemoveFileResourceRequest + (*ListFileResourcesRequest)(nil), // 221: milvus.proto.milvus.ListFileResourcesRequest + (*ListFileResourcesResponse)(nil), // 222: milvus.proto.milvus.ListFileResourcesResponse + (*AddUserTagsRequest)(nil), // 223: milvus.proto.milvus.AddUserTagsRequest + (*DeleteUserTagsRequest)(nil), // 224: milvus.proto.milvus.DeleteUserTagsRequest + (*GetUserTagsRequest)(nil), // 225: milvus.proto.milvus.GetUserTagsRequest + (*GetUserTagsResponse)(nil), // 226: milvus.proto.milvus.GetUserTagsResponse + (*ListUsersWithTagRequest)(nil), // 227: milvus.proto.milvus.ListUsersWithTagRequest + (*ListUsersWithTagResponse)(nil), // 228: milvus.proto.milvus.ListUsersWithTagResponse + (*CreateRowPolicyRequest)(nil), // 229: milvus.proto.milvus.CreateRowPolicyRequest + (*DropRowPolicyRequest)(nil), // 230: milvus.proto.milvus.DropRowPolicyRequest + (*ListRowPoliciesRequest)(nil), // 231: milvus.proto.milvus.ListRowPoliciesRequest + (*RowPolicy)(nil), // 232: milvus.proto.milvus.RowPolicy + (*ListRowPoliciesResponse)(nil), // 233: milvus.proto.milvus.ListRowPoliciesResponse + (*UpdateReplicateConfigurationRequest)(nil), // 234: milvus.proto.milvus.UpdateReplicateConfigurationRequest + (*GetReplicateConfigurationRequest)(nil), // 235: milvus.proto.milvus.GetReplicateConfigurationRequest + (*GetReplicateConfigurationResponse)(nil), // 236: milvus.proto.milvus.GetReplicateConfigurationResponse + (*GetReplicateInfoRequest)(nil), // 237: milvus.proto.milvus.GetReplicateInfoRequest + (*GetReplicateInfoResponse)(nil), // 238: milvus.proto.milvus.GetReplicateInfoResponse + (*ReplicateMessage)(nil), // 239: milvus.proto.milvus.ReplicateMessage + (*ReplicateRequest)(nil), // 240: milvus.proto.milvus.ReplicateRequest + (*ReplicateConfirmedMessageInfo)(nil), // 241: milvus.proto.milvus.ReplicateConfirmedMessageInfo + (*ReplicateResponse)(nil), // 242: milvus.proto.milvus.ReplicateResponse + (*DumpMessagesRequest)(nil), // 243: milvus.proto.milvus.DumpMessagesRequest + (*DumpMessagesResponse)(nil), // 244: milvus.proto.milvus.DumpMessagesResponse + (*TruncateCollectionRequest)(nil), // 245: milvus.proto.milvus.TruncateCollectionRequest + (*TruncateCollectionResponse)(nil), // 246: milvus.proto.milvus.TruncateCollectionResponse + (*ComputePhraseMatchSlopRequest)(nil), // 247: milvus.proto.milvus.ComputePhraseMatchSlopRequest + (*ComputePhraseMatchSlopResponse)(nil), // 248: milvus.proto.milvus.ComputePhraseMatchSlopResponse + (*CreateSnapshotRequest)(nil), // 249: milvus.proto.milvus.CreateSnapshotRequest + (*DropSnapshotRequest)(nil), // 250: milvus.proto.milvus.DropSnapshotRequest + (*ListSnapshotsRequest)(nil), // 251: milvus.proto.milvus.ListSnapshotsRequest + (*ListSnapshotsResponse)(nil), // 252: milvus.proto.milvus.ListSnapshotsResponse + (*DescribeSnapshotRequest)(nil), // 253: milvus.proto.milvus.DescribeSnapshotRequest + (*DescribeSnapshotResponse)(nil), // 254: milvus.proto.milvus.DescribeSnapshotResponse + (*RestoreSnapshotRequest)(nil), // 255: milvus.proto.milvus.RestoreSnapshotRequest + (*RestoreSnapshotResponse)(nil), // 256: milvus.proto.milvus.RestoreSnapshotResponse + (*RestoreSnapshotInfo)(nil), // 257: milvus.proto.milvus.RestoreSnapshotInfo + (*GetRestoreSnapshotStateRequest)(nil), // 258: milvus.proto.milvus.GetRestoreSnapshotStateRequest + (*GetRestoreSnapshotStateResponse)(nil), // 259: milvus.proto.milvus.GetRestoreSnapshotStateResponse + (*ListRestoreSnapshotJobsRequest)(nil), // 260: milvus.proto.milvus.ListRestoreSnapshotJobsRequest + (*ListRestoreSnapshotJobsResponse)(nil), // 261: milvus.proto.milvus.ListRestoreSnapshotJobsResponse + (*PinSnapshotDataRequest)(nil), // 262: milvus.proto.milvus.PinSnapshotDataRequest + (*PinSnapshotDataResponse)(nil), // 263: milvus.proto.milvus.PinSnapshotDataResponse + (*UnpinSnapshotDataRequest)(nil), // 264: milvus.proto.milvus.UnpinSnapshotDataRequest + (*AlterCollectionSchemaRequest)(nil), // 265: milvus.proto.milvus.AlterCollectionSchemaRequest + (*AlterCollectionSchemaResponse)(nil), // 266: milvus.proto.milvus.AlterCollectionSchemaResponse + (*BatchUpdateManifestRequest)(nil), // 267: milvus.proto.milvus.BatchUpdateManifestRequest + (*BatchUpdateManifestItem)(nil), // 268: milvus.proto.milvus.BatchUpdateManifestItem + (*ClientHeartbeatRequest)(nil), // 269: milvus.proto.milvus.ClientHeartbeatRequest + (*ClientHeartbeatResponse)(nil), // 270: milvus.proto.milvus.ClientHeartbeatResponse + (*GetClientTelemetryRequest)(nil), // 271: milvus.proto.milvus.GetClientTelemetryRequest + (*ClientTelemetry)(nil), // 272: milvus.proto.milvus.ClientTelemetry + (*GetClientTelemetryResponse)(nil), // 273: milvus.proto.milvus.GetClientTelemetryResponse + (*PushClientCommandRequest)(nil), // 274: milvus.proto.milvus.PushClientCommandRequest + (*PushClientCommandResponse)(nil), // 275: milvus.proto.milvus.PushClientCommandResponse + (*DeleteClientCommandRequest)(nil), // 276: milvus.proto.milvus.DeleteClientCommandRequest + (*DeleteClientCommandResponse)(nil), // 277: milvus.proto.milvus.DeleteClientCommandResponse + (*RefreshExternalCollectionRequest)(nil), // 278: milvus.proto.milvus.RefreshExternalCollectionRequest + (*RefreshExternalCollectionResponse)(nil), // 279: milvus.proto.milvus.RefreshExternalCollectionResponse + (*GetRefreshExternalCollectionProgressRequest)(nil), // 280: milvus.proto.milvus.GetRefreshExternalCollectionProgressRequest + (*RefreshExternalCollectionJobInfo)(nil), // 281: milvus.proto.milvus.RefreshExternalCollectionJobInfo + (*GetRefreshExternalCollectionProgressResponse)(nil), // 282: milvus.proto.milvus.GetRefreshExternalCollectionProgressResponse + (*ListRefreshExternalCollectionJobsRequest)(nil), // 283: milvus.proto.milvus.ListRefreshExternalCollectionJobsRequest + (*ListRefreshExternalCollectionJobsResponse)(nil), // 284: milvus.proto.milvus.ListRefreshExternalCollectionJobsResponse + nil, // 285: milvus.proto.milvus.LoadCollectionRequest.LoadParamsEntry + nil, // 286: milvus.proto.milvus.LoadPartitionsRequest.LoadParamsEntry + nil, // 287: milvus.proto.milvus.DeleteRequest.ExprTemplateValuesEntry + nil, // 288: milvus.proto.milvus.SubSearchRequest.ExprTemplateValuesEntry + nil, // 289: milvus.proto.milvus.SearchRequest.ExprTemplateValuesEntry + nil, // 290: milvus.proto.milvus.FlushResponse.CollSegIDsEntry + nil, // 291: milvus.proto.milvus.FlushResponse.FlushCollSegIDsEntry + nil, // 292: milvus.proto.milvus.FlushResponse.CollSealTimesEntry + nil, // 293: milvus.proto.milvus.FlushResponse.CollFlushTsEntry + nil, // 294: milvus.proto.milvus.FlushResponse.ChannelCpsEntry + nil, // 295: milvus.proto.milvus.QueryRequest.ExprTemplateValuesEntry + nil, // 296: milvus.proto.milvus.FlushAllResponse.FlushAllMsgsEntry + nil, // 297: milvus.proto.milvus.FlushCollectionResult.ChannelCpsEntry + nil, // 298: milvus.proto.milvus.GetFlushAllStateRequest.FlushAllTssEntry + nil, // 299: milvus.proto.milvus.FlushAllState.CollectionFlushStatesEntry + nil, // 300: milvus.proto.milvus.ReplicaInfo.NumOutboundNodeEntry + nil, // 301: milvus.proto.milvus.UpdateResourceGroupsRequest.ResourceGroupsEntry + nil, // 302: milvus.proto.milvus.ResourceGroup.NumLoadedReplicaEntry + nil, // 303: milvus.proto.milvus.ResourceGroup.NumOutgoingNodeEntry + nil, // 304: milvus.proto.milvus.ResourceGroup.NumIncomingNodeEntry + nil, // 305: milvus.proto.milvus.AddUserTagsRequest.TagsEntry + nil, // 306: milvus.proto.milvus.GetUserTagsResponse.TagsEntry + (*AlterCollectionSchemaRequest_FieldInfo)(nil), // 307: milvus.proto.milvus.AlterCollectionSchemaRequest.FieldInfo + (*AlterCollectionSchemaRequest_AddRequest)(nil), // 308: milvus.proto.milvus.AlterCollectionSchemaRequest.AddRequest + (*AlterCollectionSchemaRequest_DropRequest)(nil), // 309: milvus.proto.milvus.AlterCollectionSchemaRequest.DropRequest + (*AlterCollectionSchemaRequest_Action)(nil), // 310: milvus.proto.milvus.AlterCollectionSchemaRequest.Action + (*commonpb.MsgBase)(nil), // 311: milvus.proto.common.MsgBase + (*commonpb.Status)(nil), // 312: milvus.proto.common.Status + (commonpb.ConsistencyLevel)(0), // 313: milvus.proto.common.ConsistencyLevel + (*commonpb.KeyValuePair)(nil), // 314: milvus.proto.common.KeyValuePair + (*schemapb.CollectionSchema)(nil), // 315: milvus.proto.schema.CollectionSchema + (*commonpb.KeyDataPair)(nil), // 316: milvus.proto.common.KeyDataPair + (commonpb.IndexState)(0), // 317: milvus.proto.common.IndexState + (*schemapb.FieldData)(nil), // 318: milvus.proto.schema.FieldData + (*schemapb.StructArrayFieldSchema)(nil), // 319: milvus.proto.schema.StructArrayFieldSchema + (*schemapb.FunctionSchema)(nil), // 320: milvus.proto.schema.FunctionSchema + (*schemapb.FieldPartialUpdateOp)(nil), // 321: milvus.proto.schema.FieldPartialUpdateOp + (*schemapb.IDs)(nil), // 322: milvus.proto.schema.IDs + (commonpb.DslType)(0), // 323: milvus.proto.common.DslType + (*schemapb.FunctionScore)(nil), // 324: milvus.proto.schema.FunctionScore + (*commonpb.Highlighter)(nil), // 325: milvus.proto.common.Highlighter + (*commonpb.SearchAggregationSpec)(nil), // 326: milvus.proto.common.SearchAggregationSpec + (*schemapb.SearchResultData)(nil), // 327: milvus.proto.schema.SearchResultData + (*schemapb.LongArray)(nil), // 328: milvus.proto.schema.LongArray + (*schemapb.VectorField)(nil), // 329: milvus.proto.schema.VectorField + (*schemapb.IntArray)(nil), // 330: milvus.proto.schema.IntArray + (*schemapb.FloatArray)(nil), // 331: milvus.proto.schema.FloatArray + (commonpb.SegmentState)(0), // 332: milvus.proto.common.SegmentState + (commonpb.SegmentLevel)(0), // 333: milvus.proto.common.SegmentLevel + (*commonpb.Address)(nil), // 334: milvus.proto.common.Address + (commonpb.StateCode)(0), // 335: milvus.proto.common.StateCode + (commonpb.CompactionState)(0), // 336: milvus.proto.common.CompactionState + (commonpb.ImportState)(0), // 337: milvus.proto.common.ImportState + (commonpb.LoadState)(0), // 338: milvus.proto.common.LoadState + (*rgpb.ResourceGroupConfig)(nil), // 339: milvus.proto.rg.ResourceGroupConfig + (*commonpb.NodeInfo)(nil), // 340: milvus.proto.common.NodeInfo + (*commonpb.ClientInfo)(nil), // 341: milvus.proto.common.ClientInfo + (*commonpb.ServerInfo)(nil), // 342: milvus.proto.common.ServerInfo + (*msgpb.MsgPosition)(nil), // 343: milvus.proto.msg.MsgPosition + (*commonpb.ReplicateConfiguration)(nil), // 344: milvus.proto.common.ReplicateConfiguration + (*commonpb.ReplicateCheckpoint)(nil), // 345: milvus.proto.common.ReplicateCheckpoint + (*commonpb.ImmutableMessage)(nil), // 346: milvus.proto.common.ImmutableMessage + (*commonpb.MessageID)(nil), // 347: milvus.proto.common.MessageID + (*commonpb.OperationMetrics)(nil), // 348: milvus.proto.common.OperationMetrics + (*commonpb.CommandReply)(nil), // 349: milvus.proto.common.CommandReply + (*commonpb.ClientCommand)(nil), // 350: milvus.proto.common.ClientCommand + (*commonpb.Metrics)(nil), // 351: milvus.proto.common.Metrics + (*schemapb.TemplateValue)(nil), // 352: milvus.proto.schema.TemplateValue + (*schemapb.FieldSchema)(nil), // 353: milvus.proto.schema.FieldSchema + (*descriptorpb.FileOptions)(nil), // 354: google.protobuf.FileOptions + (*federpb.ListIndexedSegmentRequest)(nil), // 355: milvus.proto.feder.ListIndexedSegmentRequest + (*federpb.DescribeSegmentIndexDataRequest)(nil), // 356: milvus.proto.feder.DescribeSegmentIndexDataRequest + (*federpb.ListIndexedSegmentResponse)(nil), // 357: milvus.proto.feder.ListIndexedSegmentResponse + (*federpb.DescribeSegmentIndexDataResponse)(nil), // 358: milvus.proto.feder.DescribeSegmentIndexDataResponse } var file_milvus_proto_depIdxs = []int32{ - 297, // 0: milvus.proto.milvus.CreateAliasRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 1: milvus.proto.milvus.DropAliasRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 2: milvus.proto.milvus.AlterAliasRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 3: milvus.proto.milvus.DescribeAliasRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 4: milvus.proto.milvus.DescribeAliasResponse.status:type_name -> milvus.proto.common.Status - 297, // 5: milvus.proto.milvus.ListAliasesRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 6: milvus.proto.milvus.ListAliasesResponse.status:type_name -> milvus.proto.common.Status - 297, // 7: milvus.proto.milvus.CreateCollectionRequest.base:type_name -> milvus.proto.common.MsgBase - 299, // 8: milvus.proto.milvus.CreateCollectionRequest.consistency_level:type_name -> milvus.proto.common.ConsistencyLevel - 300, // 9: milvus.proto.milvus.CreateCollectionRequest.properties:type_name -> milvus.proto.common.KeyValuePair - 297, // 10: milvus.proto.milvus.DropCollectionRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 11: milvus.proto.milvus.AlterCollectionRequest.base:type_name -> milvus.proto.common.MsgBase - 300, // 12: milvus.proto.milvus.AlterCollectionRequest.properties:type_name -> milvus.proto.common.KeyValuePair - 297, // 13: milvus.proto.milvus.AlterCollectionFieldRequest.base:type_name -> milvus.proto.common.MsgBase - 300, // 14: milvus.proto.milvus.AlterCollectionFieldRequest.properties:type_name -> milvus.proto.common.KeyValuePair - 297, // 15: milvus.proto.milvus.HasCollectionRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 16: milvus.proto.milvus.BoolResponse.status:type_name -> milvus.proto.common.Status - 298, // 17: milvus.proto.milvus.StringResponse.status:type_name -> milvus.proto.common.Status - 297, // 18: milvus.proto.milvus.DescribeCollectionRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 19: milvus.proto.milvus.DescribeCollectionResponse.status:type_name -> milvus.proto.common.Status - 301, // 20: milvus.proto.milvus.DescribeCollectionResponse.schema:type_name -> milvus.proto.schema.CollectionSchema - 302, // 21: milvus.proto.milvus.DescribeCollectionResponse.start_positions:type_name -> milvus.proto.common.KeyDataPair - 299, // 22: milvus.proto.milvus.DescribeCollectionResponse.consistency_level:type_name -> milvus.proto.common.ConsistencyLevel - 300, // 23: milvus.proto.milvus.DescribeCollectionResponse.properties:type_name -> milvus.proto.common.KeyValuePair - 298, // 24: milvus.proto.milvus.BatchDescribeCollectionResponse.status:type_name -> milvus.proto.common.Status + 311, // 0: milvus.proto.milvus.CreateAliasRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 1: milvus.proto.milvus.DropAliasRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 2: milvus.proto.milvus.AlterAliasRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 3: milvus.proto.milvus.DescribeAliasRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 4: milvus.proto.milvus.DescribeAliasResponse.status:type_name -> milvus.proto.common.Status + 311, // 5: milvus.proto.milvus.ListAliasesRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 6: milvus.proto.milvus.ListAliasesResponse.status:type_name -> milvus.proto.common.Status + 311, // 7: milvus.proto.milvus.CreateCollectionRequest.base:type_name -> milvus.proto.common.MsgBase + 313, // 8: milvus.proto.milvus.CreateCollectionRequest.consistency_level:type_name -> milvus.proto.common.ConsistencyLevel + 314, // 9: milvus.proto.milvus.CreateCollectionRequest.properties:type_name -> milvus.proto.common.KeyValuePair + 311, // 10: milvus.proto.milvus.DropCollectionRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 11: milvus.proto.milvus.AlterCollectionRequest.base:type_name -> milvus.proto.common.MsgBase + 314, // 12: milvus.proto.milvus.AlterCollectionRequest.properties:type_name -> milvus.proto.common.KeyValuePair + 311, // 13: milvus.proto.milvus.AlterCollectionFieldRequest.base:type_name -> milvus.proto.common.MsgBase + 314, // 14: milvus.proto.milvus.AlterCollectionFieldRequest.properties:type_name -> milvus.proto.common.KeyValuePair + 311, // 15: milvus.proto.milvus.HasCollectionRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 16: milvus.proto.milvus.BoolResponse.status:type_name -> milvus.proto.common.Status + 312, // 17: milvus.proto.milvus.StringResponse.status:type_name -> milvus.proto.common.Status + 311, // 18: milvus.proto.milvus.DescribeCollectionRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 19: milvus.proto.milvus.DescribeCollectionResponse.status:type_name -> milvus.proto.common.Status + 315, // 20: milvus.proto.milvus.DescribeCollectionResponse.schema:type_name -> milvus.proto.schema.CollectionSchema + 316, // 21: milvus.proto.milvus.DescribeCollectionResponse.start_positions:type_name -> milvus.proto.common.KeyDataPair + 313, // 22: milvus.proto.milvus.DescribeCollectionResponse.consistency_level:type_name -> milvus.proto.common.ConsistencyLevel + 314, // 23: milvus.proto.milvus.DescribeCollectionResponse.properties:type_name -> milvus.proto.common.KeyValuePair + 312, // 24: milvus.proto.milvus.BatchDescribeCollectionResponse.status:type_name -> milvus.proto.common.Status 24, // 25: milvus.proto.milvus.BatchDescribeCollectionResponse.responses:type_name -> milvus.proto.milvus.DescribeCollectionResponse - 297, // 26: milvus.proto.milvus.LoadCollectionRequest.base:type_name -> milvus.proto.common.MsgBase - 271, // 27: milvus.proto.milvus.LoadCollectionRequest.load_params:type_name -> milvus.proto.milvus.LoadCollectionRequest.LoadParamsEntry - 297, // 28: milvus.proto.milvus.ReleaseCollectionRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 29: milvus.proto.milvus.GetStatisticsRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 30: milvus.proto.milvus.GetStatisticsResponse.status:type_name -> milvus.proto.common.Status - 300, // 31: milvus.proto.milvus.GetStatisticsResponse.stats:type_name -> milvus.proto.common.KeyValuePair - 297, // 32: milvus.proto.milvus.GetCollectionStatisticsRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 33: milvus.proto.milvus.GetCollectionStatisticsResponse.status:type_name -> milvus.proto.common.Status - 300, // 34: milvus.proto.milvus.GetCollectionStatisticsResponse.stats:type_name -> milvus.proto.common.KeyValuePair - 297, // 35: milvus.proto.milvus.ShowCollectionsRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 26: milvus.proto.milvus.LoadCollectionRequest.base:type_name -> milvus.proto.common.MsgBase + 285, // 27: milvus.proto.milvus.LoadCollectionRequest.load_params:type_name -> milvus.proto.milvus.LoadCollectionRequest.LoadParamsEntry + 311, // 28: milvus.proto.milvus.ReleaseCollectionRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 29: milvus.proto.milvus.GetStatisticsRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 30: milvus.proto.milvus.GetStatisticsResponse.status:type_name -> milvus.proto.common.Status + 314, // 31: milvus.proto.milvus.GetStatisticsResponse.stats:type_name -> milvus.proto.common.KeyValuePair + 311, // 32: milvus.proto.milvus.GetCollectionStatisticsRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 33: milvus.proto.milvus.GetCollectionStatisticsResponse.status:type_name -> milvus.proto.common.Status + 314, // 34: milvus.proto.milvus.GetCollectionStatisticsResponse.stats:type_name -> milvus.proto.common.KeyValuePair + 311, // 35: milvus.proto.milvus.ShowCollectionsRequest.base:type_name -> milvus.proto.common.MsgBase 0, // 36: milvus.proto.milvus.ShowCollectionsRequest.type:type_name -> milvus.proto.milvus.ShowType - 298, // 37: milvus.proto.milvus.ShowCollectionsResponse.status:type_name -> milvus.proto.common.Status - 297, // 38: milvus.proto.milvus.CreatePartitionRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 39: milvus.proto.milvus.DropPartitionRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 40: milvus.proto.milvus.HasPartitionRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 41: milvus.proto.milvus.LoadPartitionsRequest.base:type_name -> milvus.proto.common.MsgBase - 272, // 42: milvus.proto.milvus.LoadPartitionsRequest.load_params:type_name -> milvus.proto.milvus.LoadPartitionsRequest.LoadParamsEntry - 297, // 43: milvus.proto.milvus.ReleasePartitionsRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 44: milvus.proto.milvus.GetPartitionStatisticsRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 45: milvus.proto.milvus.GetPartitionStatisticsResponse.status:type_name -> milvus.proto.common.Status - 300, // 46: milvus.proto.milvus.GetPartitionStatisticsResponse.stats:type_name -> milvus.proto.common.KeyValuePair - 297, // 47: milvus.proto.milvus.ShowPartitionsRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 37: milvus.proto.milvus.ShowCollectionsResponse.status:type_name -> milvus.proto.common.Status + 311, // 38: milvus.proto.milvus.CreatePartitionRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 39: milvus.proto.milvus.DropPartitionRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 40: milvus.proto.milvus.HasPartitionRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 41: milvus.proto.milvus.LoadPartitionsRequest.base:type_name -> milvus.proto.common.MsgBase + 286, // 42: milvus.proto.milvus.LoadPartitionsRequest.load_params:type_name -> milvus.proto.milvus.LoadPartitionsRequest.LoadParamsEntry + 311, // 43: milvus.proto.milvus.ReleasePartitionsRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 44: milvus.proto.milvus.GetPartitionStatisticsRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 45: milvus.proto.milvus.GetPartitionStatisticsResponse.status:type_name -> milvus.proto.common.Status + 314, // 46: milvus.proto.milvus.GetPartitionStatisticsResponse.stats:type_name -> milvus.proto.common.KeyValuePair + 311, // 47: milvus.proto.milvus.ShowPartitionsRequest.base:type_name -> milvus.proto.common.MsgBase 0, // 48: milvus.proto.milvus.ShowPartitionsRequest.type:type_name -> milvus.proto.milvus.ShowType - 298, // 49: milvus.proto.milvus.ShowPartitionsResponse.status:type_name -> milvus.proto.common.Status - 297, // 50: milvus.proto.milvus.DescribeSegmentRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 51: milvus.proto.milvus.DescribeSegmentResponse.status:type_name -> milvus.proto.common.Status - 297, // 52: milvus.proto.milvus.ShowSegmentsRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 53: milvus.proto.milvus.ShowSegmentsResponse.status:type_name -> milvus.proto.common.Status - 297, // 54: milvus.proto.milvus.CreateIndexRequest.base:type_name -> milvus.proto.common.MsgBase - 300, // 55: milvus.proto.milvus.CreateIndexRequest.extra_params:type_name -> milvus.proto.common.KeyValuePair - 297, // 56: milvus.proto.milvus.AlterIndexRequest.base:type_name -> milvus.proto.common.MsgBase - 300, // 57: milvus.proto.milvus.AlterIndexRequest.extra_params:type_name -> milvus.proto.common.KeyValuePair - 297, // 58: milvus.proto.milvus.DescribeIndexRequest.base:type_name -> milvus.proto.common.MsgBase - 300, // 59: milvus.proto.milvus.IndexDescription.params:type_name -> milvus.proto.common.KeyValuePair - 303, // 60: milvus.proto.milvus.IndexDescription.state:type_name -> milvus.proto.common.IndexState - 298, // 61: milvus.proto.milvus.DescribeIndexResponse.status:type_name -> milvus.proto.common.Status - 51, // 62: milvus.proto.milvus.DescribeIndexResponse.index_descriptions:type_name -> milvus.proto.milvus.IndexDescription - 297, // 63: milvus.proto.milvus.GetIndexBuildProgressRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 64: milvus.proto.milvus.GetIndexBuildProgressResponse.status:type_name -> milvus.proto.common.Status - 297, // 65: milvus.proto.milvus.GetIndexStateRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 66: milvus.proto.milvus.GetIndexStateResponse.status:type_name -> milvus.proto.common.Status - 303, // 67: milvus.proto.milvus.GetIndexStateResponse.state:type_name -> milvus.proto.common.IndexState - 297, // 68: milvus.proto.milvus.DropIndexRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 69: milvus.proto.milvus.InsertRequest.base:type_name -> milvus.proto.common.MsgBase - 304, // 70: milvus.proto.milvus.InsertRequest.fields_data:type_name -> milvus.proto.schema.FieldData - 297, // 71: milvus.proto.milvus.AddCollectionFieldRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 72: milvus.proto.milvus.AddCollectionStructFieldRequest.base:type_name -> milvus.proto.common.MsgBase - 305, // 73: milvus.proto.milvus.AddCollectionStructFieldRequest.struct_array_field_schema:type_name -> milvus.proto.schema.StructArrayFieldSchema - 297, // 74: milvus.proto.milvus.AddCollectionFunctionRequest.base:type_name -> milvus.proto.common.MsgBase - 306, // 75: milvus.proto.milvus.AddCollectionFunctionRequest.functionSchema:type_name -> milvus.proto.schema.FunctionSchema - 297, // 76: milvus.proto.milvus.AlterCollectionFunctionRequest.base:type_name -> milvus.proto.common.MsgBase - 306, // 77: milvus.proto.milvus.AlterCollectionFunctionRequest.functionSchema:type_name -> milvus.proto.schema.FunctionSchema - 297, // 78: milvus.proto.milvus.DropCollectionFunctionRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 79: milvus.proto.milvus.UpsertRequest.base:type_name -> milvus.proto.common.MsgBase - 304, // 80: milvus.proto.milvus.UpsertRequest.fields_data:type_name -> milvus.proto.schema.FieldData - 307, // 81: milvus.proto.milvus.UpsertRequest.field_ops:type_name -> milvus.proto.schema.FieldPartialUpdateOp - 298, // 82: milvus.proto.milvus.MutationResult.status:type_name -> milvus.proto.common.Status - 308, // 83: milvus.proto.milvus.MutationResult.IDs:type_name -> milvus.proto.schema.IDs - 297, // 84: milvus.proto.milvus.DeleteRequest.base:type_name -> milvus.proto.common.MsgBase - 299, // 85: milvus.proto.milvus.DeleteRequest.consistency_level:type_name -> milvus.proto.common.ConsistencyLevel - 273, // 86: milvus.proto.milvus.DeleteRequest.expr_template_values:type_name -> milvus.proto.milvus.DeleteRequest.ExprTemplateValuesEntry - 309, // 87: milvus.proto.milvus.SubSearchRequest.dsl_type:type_name -> milvus.proto.common.DslType - 300, // 88: milvus.proto.milvus.SubSearchRequest.search_params:type_name -> milvus.proto.common.KeyValuePair - 274, // 89: milvus.proto.milvus.SubSearchRequest.expr_template_values:type_name -> milvus.proto.milvus.SubSearchRequest.ExprTemplateValuesEntry - 297, // 90: milvus.proto.milvus.SearchRequest.base:type_name -> milvus.proto.common.MsgBase - 308, // 91: milvus.proto.milvus.SearchRequest.ids:type_name -> milvus.proto.schema.IDs - 309, // 92: milvus.proto.milvus.SearchRequest.dsl_type:type_name -> milvus.proto.common.DslType - 300, // 93: milvus.proto.milvus.SearchRequest.search_params:type_name -> milvus.proto.common.KeyValuePair - 299, // 94: milvus.proto.milvus.SearchRequest.consistency_level:type_name -> milvus.proto.common.ConsistencyLevel - 67, // 95: milvus.proto.milvus.SearchRequest.sub_reqs:type_name -> milvus.proto.milvus.SubSearchRequest - 275, // 96: milvus.proto.milvus.SearchRequest.expr_template_values:type_name -> milvus.proto.milvus.SearchRequest.ExprTemplateValuesEntry - 310, // 97: milvus.proto.milvus.SearchRequest.function_score:type_name -> milvus.proto.schema.FunctionScore - 311, // 98: milvus.proto.milvus.SearchRequest.highlighter:type_name -> milvus.proto.common.Highlighter - 312, // 99: milvus.proto.milvus.SearchRequest.search_aggregation:type_name -> milvus.proto.common.SearchAggregationSpec - 298, // 100: milvus.proto.milvus.SearchResults.status:type_name -> milvus.proto.common.Status - 313, // 101: milvus.proto.milvus.SearchResults.results:type_name -> milvus.proto.schema.SearchResultData - 297, // 102: milvus.proto.milvus.HybridSearchRequest.base:type_name -> milvus.proto.common.MsgBase - 68, // 103: milvus.proto.milvus.HybridSearchRequest.requests:type_name -> milvus.proto.milvus.SearchRequest - 300, // 104: milvus.proto.milvus.HybridSearchRequest.rank_params:type_name -> milvus.proto.common.KeyValuePair - 299, // 105: milvus.proto.milvus.HybridSearchRequest.consistency_level:type_name -> milvus.proto.common.ConsistencyLevel - 310, // 106: milvus.proto.milvus.HybridSearchRequest.function_score:type_name -> milvus.proto.schema.FunctionScore - 297, // 107: milvus.proto.milvus.FlushRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 108: milvus.proto.milvus.FlushResponse.status:type_name -> milvus.proto.common.Status - 276, // 109: milvus.proto.milvus.FlushResponse.coll_segIDs:type_name -> milvus.proto.milvus.FlushResponse.CollSegIDsEntry - 277, // 110: milvus.proto.milvus.FlushResponse.flush_coll_segIDs:type_name -> milvus.proto.milvus.FlushResponse.FlushCollSegIDsEntry - 278, // 111: milvus.proto.milvus.FlushResponse.coll_seal_times:type_name -> milvus.proto.milvus.FlushResponse.CollSealTimesEntry - 279, // 112: milvus.proto.milvus.FlushResponse.coll_flush_ts:type_name -> milvus.proto.milvus.FlushResponse.CollFlushTsEntry - 280, // 113: milvus.proto.milvus.FlushResponse.channel_cps:type_name -> milvus.proto.milvus.FlushResponse.ChannelCpsEntry - 297, // 114: milvus.proto.milvus.QueryRequest.base:type_name -> milvus.proto.common.MsgBase - 300, // 115: milvus.proto.milvus.QueryRequest.query_params:type_name -> milvus.proto.common.KeyValuePair - 299, // 116: milvus.proto.milvus.QueryRequest.consistency_level:type_name -> milvus.proto.common.ConsistencyLevel - 281, // 117: milvus.proto.milvus.QueryRequest.expr_template_values:type_name -> milvus.proto.milvus.QueryRequest.ExprTemplateValuesEntry - 314, // 118: milvus.proto.milvus.ElementIndices.indices:type_name -> milvus.proto.schema.LongArray - 298, // 119: milvus.proto.milvus.QueryResults.status:type_name -> milvus.proto.common.Status - 304, // 120: milvus.proto.milvus.QueryResults.fields_data:type_name -> milvus.proto.schema.FieldData - 75, // 121: milvus.proto.milvus.QueryResults.element_indices:type_name -> milvus.proto.milvus.ElementIndices - 308, // 122: milvus.proto.milvus.VectorIDs.id_array:type_name -> milvus.proto.schema.IDs - 78, // 123: milvus.proto.milvus.VectorsArray.id_array:type_name -> milvus.proto.milvus.VectorIDs - 315, // 124: milvus.proto.milvus.VectorsArray.data_array:type_name -> milvus.proto.schema.VectorField - 297, // 125: milvus.proto.milvus.CalcDistanceRequest.base:type_name -> milvus.proto.common.MsgBase - 79, // 126: milvus.proto.milvus.CalcDistanceRequest.op_left:type_name -> milvus.proto.milvus.VectorsArray - 79, // 127: milvus.proto.milvus.CalcDistanceRequest.op_right:type_name -> milvus.proto.milvus.VectorsArray - 300, // 128: milvus.proto.milvus.CalcDistanceRequest.params:type_name -> milvus.proto.common.KeyValuePair - 298, // 129: milvus.proto.milvus.CalcDistanceResults.status:type_name -> milvus.proto.common.Status - 316, // 130: milvus.proto.milvus.CalcDistanceResults.int_dist:type_name -> milvus.proto.schema.IntArray - 317, // 131: milvus.proto.milvus.CalcDistanceResults.float_dist:type_name -> milvus.proto.schema.FloatArray - 297, // 132: milvus.proto.milvus.FlushAllRequest.base:type_name -> milvus.proto.common.MsgBase - 82, // 133: milvus.proto.milvus.FlushAllRequest.flush_targets:type_name -> milvus.proto.milvus.FlushAllTarget - 298, // 134: milvus.proto.milvus.FlushAllResponse.status:type_name -> milvus.proto.common.Status - 86, // 135: milvus.proto.milvus.FlushAllResponse.flush_results:type_name -> milvus.proto.milvus.FlushAllResult - 282, // 136: milvus.proto.milvus.FlushAllResponse.flush_all_msgs:type_name -> milvus.proto.milvus.FlushAllResponse.FlushAllMsgsEntry - 84, // 137: milvus.proto.milvus.FlushAllResponse.cluster_info:type_name -> milvus.proto.milvus.ClusterInfo - 87, // 138: milvus.proto.milvus.FlushAllResult.collection_results:type_name -> milvus.proto.milvus.FlushCollectionResult - 314, // 139: milvus.proto.milvus.FlushCollectionResult.segment_ids:type_name -> milvus.proto.schema.LongArray - 314, // 140: milvus.proto.milvus.FlushCollectionResult.flush_segment_ids:type_name -> milvus.proto.schema.LongArray - 283, // 141: milvus.proto.milvus.FlushCollectionResult.channel_cps:type_name -> milvus.proto.milvus.FlushCollectionResult.ChannelCpsEntry - 318, // 142: milvus.proto.milvus.PersistentSegmentInfo.state:type_name -> milvus.proto.common.SegmentState - 319, // 143: milvus.proto.milvus.PersistentSegmentInfo.level:type_name -> milvus.proto.common.SegmentLevel - 297, // 144: milvus.proto.milvus.GetPersistentSegmentInfoRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 145: milvus.proto.milvus.GetPersistentSegmentInfoResponse.status:type_name -> milvus.proto.common.Status - 88, // 146: milvus.proto.milvus.GetPersistentSegmentInfoResponse.infos:type_name -> milvus.proto.milvus.PersistentSegmentInfo - 318, // 147: milvus.proto.milvus.QuerySegmentInfo.state:type_name -> milvus.proto.common.SegmentState - 319, // 148: milvus.proto.milvus.QuerySegmentInfo.level:type_name -> milvus.proto.common.SegmentLevel - 297, // 149: milvus.proto.milvus.GetQuerySegmentInfoRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 150: milvus.proto.milvus.GetQuerySegmentInfoResponse.status:type_name -> milvus.proto.common.Status - 91, // 151: milvus.proto.milvus.GetQuerySegmentInfoResponse.infos:type_name -> milvus.proto.milvus.QuerySegmentInfo - 320, // 152: milvus.proto.milvus.RegisterLinkResponse.address:type_name -> milvus.proto.common.Address - 298, // 153: milvus.proto.milvus.RegisterLinkResponse.status:type_name -> milvus.proto.common.Status - 297, // 154: milvus.proto.milvus.GetMetricsRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 155: milvus.proto.milvus.GetMetricsResponse.status:type_name -> milvus.proto.common.Status - 321, // 156: milvus.proto.milvus.ComponentInfo.state_code:type_name -> milvus.proto.common.StateCode - 300, // 157: milvus.proto.milvus.ComponentInfo.extra_info:type_name -> milvus.proto.common.KeyValuePair - 100, // 158: milvus.proto.milvus.ComponentStates.state:type_name -> milvus.proto.milvus.ComponentInfo - 100, // 159: milvus.proto.milvus.ComponentStates.subcomponent_states:type_name -> milvus.proto.milvus.ComponentInfo - 298, // 160: milvus.proto.milvus.ComponentStates.status:type_name -> milvus.proto.common.Status - 297, // 161: milvus.proto.milvus.LoadBalanceRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 162: milvus.proto.milvus.ManualCompactionResponse.status:type_name -> milvus.proto.common.Status - 298, // 163: milvus.proto.milvus.GetCompactionStateResponse.status:type_name -> milvus.proto.common.Status - 322, // 164: milvus.proto.milvus.GetCompactionStateResponse.state:type_name -> milvus.proto.common.CompactionState - 298, // 165: milvus.proto.milvus.GetCompactionPlansResponse.status:type_name -> milvus.proto.common.Status - 322, // 166: milvus.proto.milvus.GetCompactionPlansResponse.state:type_name -> milvus.proto.common.CompactionState - 110, // 167: milvus.proto.milvus.GetCompactionPlansResponse.mergeInfos:type_name -> milvus.proto.milvus.CompactionMergeInfo - 298, // 168: milvus.proto.milvus.GetFlushStateResponse.status:type_name -> milvus.proto.common.Status - 297, // 169: milvus.proto.milvus.GetFlushAllStateRequest.base:type_name -> milvus.proto.common.MsgBase - 82, // 170: milvus.proto.milvus.GetFlushAllStateRequest.flush_targets:type_name -> milvus.proto.milvus.FlushAllTarget - 284, // 171: milvus.proto.milvus.GetFlushAllStateRequest.flush_all_tss:type_name -> milvus.proto.milvus.GetFlushAllStateRequest.FlushAllTssEntry - 298, // 172: milvus.proto.milvus.GetFlushAllStateResponse.status:type_name -> milvus.proto.common.Status - 115, // 173: milvus.proto.milvus.GetFlushAllStateResponse.flush_states:type_name -> milvus.proto.milvus.FlushAllState - 285, // 174: milvus.proto.milvus.FlushAllState.collection_flush_states:type_name -> milvus.proto.milvus.FlushAllState.CollectionFlushStatesEntry - 300, // 175: milvus.proto.milvus.ImportRequest.options:type_name -> milvus.proto.common.KeyValuePair - 298, // 176: milvus.proto.milvus.ImportResponse.status:type_name -> milvus.proto.common.Status - 298, // 177: milvus.proto.milvus.GetImportStateResponse.status:type_name -> milvus.proto.common.Status - 323, // 178: milvus.proto.milvus.GetImportStateResponse.state:type_name -> milvus.proto.common.ImportState - 300, // 179: milvus.proto.milvus.GetImportStateResponse.infos:type_name -> milvus.proto.common.KeyValuePair - 298, // 180: milvus.proto.milvus.ListImportTasksResponse.status:type_name -> milvus.proto.common.Status - 119, // 181: milvus.proto.milvus.ListImportTasksResponse.tasks:type_name -> milvus.proto.milvus.GetImportStateResponse - 297, // 182: milvus.proto.milvus.GetReplicasRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 183: milvus.proto.milvus.GetReplicasResponse.status:type_name -> milvus.proto.common.Status - 124, // 184: milvus.proto.milvus.GetReplicasResponse.replicas:type_name -> milvus.proto.milvus.ReplicaInfo - 125, // 185: milvus.proto.milvus.ReplicaInfo.shard_replicas:type_name -> milvus.proto.milvus.ShardReplica - 286, // 186: milvus.proto.milvus.ReplicaInfo.num_outbound_node:type_name -> milvus.proto.milvus.ReplicaInfo.NumOutboundNodeEntry - 297, // 187: milvus.proto.milvus.CreateCredentialRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 188: milvus.proto.milvus.UpdateCredentialRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 189: milvus.proto.milvus.DeleteCredentialRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 190: milvus.proto.milvus.ListCredUsersResponse.status:type_name -> milvus.proto.common.Status - 297, // 191: milvus.proto.milvus.ListCredUsersRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 192: milvus.proto.milvus.CreateRoleRequest.base:type_name -> milvus.proto.common.MsgBase - 131, // 193: milvus.proto.milvus.CreateRoleRequest.entity:type_name -> milvus.proto.milvus.RoleEntity - 297, // 194: milvus.proto.milvus.DropRoleRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 195: milvus.proto.milvus.CreatePrivilegeGroupRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 196: milvus.proto.milvus.DropPrivilegeGroupRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 197: milvus.proto.milvus.ListPrivilegeGroupsRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 198: milvus.proto.milvus.ListPrivilegeGroupsResponse.status:type_name -> milvus.proto.common.Status - 141, // 199: milvus.proto.milvus.ListPrivilegeGroupsResponse.privilege_groups:type_name -> milvus.proto.milvus.PrivilegeGroupInfo - 297, // 200: milvus.proto.milvus.OperatePrivilegeGroupRequest.base:type_name -> milvus.proto.common.MsgBase - 149, // 201: milvus.proto.milvus.OperatePrivilegeGroupRequest.privileges:type_name -> milvus.proto.milvus.PrivilegeEntity - 1, // 202: milvus.proto.milvus.OperatePrivilegeGroupRequest.type:type_name -> milvus.proto.milvus.OperatePrivilegeGroupType - 297, // 203: milvus.proto.milvus.OperateUserRoleRequest.base:type_name -> milvus.proto.common.MsgBase - 2, // 204: milvus.proto.milvus.OperateUserRoleRequest.type:type_name -> milvus.proto.milvus.OperateUserRoleType - 149, // 205: milvus.proto.milvus.PrivilegeGroupInfo.privileges:type_name -> milvus.proto.milvus.PrivilegeEntity - 297, // 206: milvus.proto.milvus.SelectRoleRequest.base:type_name -> milvus.proto.common.MsgBase - 131, // 207: milvus.proto.milvus.SelectRoleRequest.role:type_name -> milvus.proto.milvus.RoleEntity - 131, // 208: milvus.proto.milvus.RoleResult.role:type_name -> milvus.proto.milvus.RoleEntity - 132, // 209: milvus.proto.milvus.RoleResult.users:type_name -> milvus.proto.milvus.UserEntity - 298, // 210: milvus.proto.milvus.SelectRoleResponse.status:type_name -> milvus.proto.common.Status - 143, // 211: milvus.proto.milvus.SelectRoleResponse.results:type_name -> milvus.proto.milvus.RoleResult - 297, // 212: milvus.proto.milvus.SelectUserRequest.base:type_name -> milvus.proto.common.MsgBase - 132, // 213: milvus.proto.milvus.SelectUserRequest.user:type_name -> milvus.proto.milvus.UserEntity - 132, // 214: milvus.proto.milvus.UserResult.user:type_name -> milvus.proto.milvus.UserEntity - 131, // 215: milvus.proto.milvus.UserResult.roles:type_name -> milvus.proto.milvus.RoleEntity - 298, // 216: milvus.proto.milvus.SelectUserResponse.status:type_name -> milvus.proto.common.Status - 146, // 217: milvus.proto.milvus.SelectUserResponse.results:type_name -> milvus.proto.milvus.UserResult - 132, // 218: milvus.proto.milvus.GrantorEntity.user:type_name -> milvus.proto.milvus.UserEntity - 149, // 219: milvus.proto.milvus.GrantorEntity.privilege:type_name -> milvus.proto.milvus.PrivilegeEntity - 150, // 220: milvus.proto.milvus.GrantPrivilegeEntity.entities:type_name -> milvus.proto.milvus.GrantorEntity - 131, // 221: milvus.proto.milvus.GrantEntity.role:type_name -> milvus.proto.milvus.RoleEntity - 148, // 222: milvus.proto.milvus.GrantEntity.object:type_name -> milvus.proto.milvus.ObjectEntity - 150, // 223: milvus.proto.milvus.GrantEntity.grantor:type_name -> milvus.proto.milvus.GrantorEntity - 297, // 224: milvus.proto.milvus.SelectGrantRequest.base:type_name -> milvus.proto.common.MsgBase - 152, // 225: milvus.proto.milvus.SelectGrantRequest.entity:type_name -> milvus.proto.milvus.GrantEntity - 298, // 226: milvus.proto.milvus.SelectGrantResponse.status:type_name -> milvus.proto.common.Status - 152, // 227: milvus.proto.milvus.SelectGrantResponse.entities:type_name -> milvus.proto.milvus.GrantEntity - 297, // 228: milvus.proto.milvus.OperatePrivilegeRequest.base:type_name -> milvus.proto.common.MsgBase - 152, // 229: milvus.proto.milvus.OperatePrivilegeRequest.entity:type_name -> milvus.proto.milvus.GrantEntity - 4, // 230: milvus.proto.milvus.OperatePrivilegeRequest.type:type_name -> milvus.proto.milvus.OperatePrivilegeType - 297, // 231: milvus.proto.milvus.OperatePrivilegeV2Request.base:type_name -> milvus.proto.common.MsgBase - 131, // 232: milvus.proto.milvus.OperatePrivilegeV2Request.role:type_name -> milvus.proto.milvus.RoleEntity - 150, // 233: milvus.proto.milvus.OperatePrivilegeV2Request.grantor:type_name -> milvus.proto.milvus.GrantorEntity - 4, // 234: milvus.proto.milvus.OperatePrivilegeV2Request.type:type_name -> milvus.proto.milvus.OperatePrivilegeType - 131, // 235: milvus.proto.milvus.UserInfo.roles:type_name -> milvus.proto.milvus.RoleEntity - 157, // 236: milvus.proto.milvus.RBACMeta.users:type_name -> milvus.proto.milvus.UserInfo - 131, // 237: milvus.proto.milvus.RBACMeta.roles:type_name -> milvus.proto.milvus.RoleEntity - 152, // 238: milvus.proto.milvus.RBACMeta.grants:type_name -> milvus.proto.milvus.GrantEntity - 141, // 239: milvus.proto.milvus.RBACMeta.privilege_groups:type_name -> milvus.proto.milvus.PrivilegeGroupInfo - 297, // 240: milvus.proto.milvus.BackupRBACMetaRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 241: milvus.proto.milvus.BackupRBACMetaResponse.status:type_name -> milvus.proto.common.Status - 158, // 242: milvus.proto.milvus.BackupRBACMetaResponse.RBAC_meta:type_name -> milvus.proto.milvus.RBACMeta - 297, // 243: milvus.proto.milvus.RestoreRBACMetaRequest.base:type_name -> milvus.proto.common.MsgBase - 158, // 244: milvus.proto.milvus.RestoreRBACMetaRequest.RBAC_meta:type_name -> milvus.proto.milvus.RBACMeta - 297, // 245: milvus.proto.milvus.GetLoadingProgressRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 246: milvus.proto.milvus.GetLoadingProgressResponse.status:type_name -> milvus.proto.common.Status - 297, // 247: milvus.proto.milvus.GetLoadStateRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 248: milvus.proto.milvus.GetLoadStateResponse.status:type_name -> milvus.proto.common.Status - 324, // 249: milvus.proto.milvus.GetLoadStateResponse.state:type_name -> milvus.proto.common.LoadState - 298, // 250: milvus.proto.milvus.GetVersionResponse.status:type_name -> milvus.proto.common.Status - 298, // 251: milvus.proto.milvus.CheckHealthResponse.status:type_name -> milvus.proto.common.Status - 5, // 252: milvus.proto.milvus.CheckHealthResponse.quota_states:type_name -> milvus.proto.milvus.QuotaState - 297, // 253: milvus.proto.milvus.CreateResourceGroupRequest.base:type_name -> milvus.proto.common.MsgBase - 325, // 254: milvus.proto.milvus.CreateResourceGroupRequest.config:type_name -> milvus.proto.rg.ResourceGroupConfig - 297, // 255: milvus.proto.milvus.UpdateResourceGroupsRequest.base:type_name -> milvus.proto.common.MsgBase - 287, // 256: milvus.proto.milvus.UpdateResourceGroupsRequest.resource_groups:type_name -> milvus.proto.milvus.UpdateResourceGroupsRequest.ResourceGroupsEntry - 297, // 257: milvus.proto.milvus.DropResourceGroupRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 258: milvus.proto.milvus.TransferNodeRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 259: milvus.proto.milvus.TransferReplicaRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 260: milvus.proto.milvus.ListResourceGroupsRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 261: milvus.proto.milvus.ListResourceGroupsResponse.status:type_name -> milvus.proto.common.Status - 297, // 262: milvus.proto.milvus.DescribeResourceGroupRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 263: milvus.proto.milvus.DescribeResourceGroupResponse.status:type_name -> milvus.proto.common.Status - 180, // 264: milvus.proto.milvus.DescribeResourceGroupResponse.resource_group:type_name -> milvus.proto.milvus.ResourceGroup - 288, // 265: milvus.proto.milvus.ResourceGroup.num_loaded_replica:type_name -> milvus.proto.milvus.ResourceGroup.NumLoadedReplicaEntry - 289, // 266: milvus.proto.milvus.ResourceGroup.num_outgoing_node:type_name -> milvus.proto.milvus.ResourceGroup.NumOutgoingNodeEntry - 290, // 267: milvus.proto.milvus.ResourceGroup.num_incoming_node:type_name -> milvus.proto.milvus.ResourceGroup.NumIncomingNodeEntry - 325, // 268: milvus.proto.milvus.ResourceGroup.config:type_name -> milvus.proto.rg.ResourceGroupConfig - 326, // 269: milvus.proto.milvus.ResourceGroup.nodes:type_name -> milvus.proto.common.NodeInfo - 297, // 270: milvus.proto.milvus.RenameCollectionRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 271: milvus.proto.milvus.GetIndexStatisticsRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 272: milvus.proto.milvus.GetIndexStatisticsResponse.status:type_name -> milvus.proto.common.Status - 51, // 273: milvus.proto.milvus.GetIndexStatisticsResponse.index_descriptions:type_name -> milvus.proto.milvus.IndexDescription - 297, // 274: milvus.proto.milvus.ConnectRequest.base:type_name -> milvus.proto.common.MsgBase - 327, // 275: milvus.proto.milvus.ConnectRequest.client_info:type_name -> milvus.proto.common.ClientInfo - 298, // 276: milvus.proto.milvus.ConnectResponse.status:type_name -> milvus.proto.common.Status - 328, // 277: milvus.proto.milvus.ConnectResponse.server_info:type_name -> milvus.proto.common.ServerInfo - 297, // 278: milvus.proto.milvus.AllocTimestampRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 279: milvus.proto.milvus.AllocTimestampResponse.status:type_name -> milvus.proto.common.Status - 297, // 280: milvus.proto.milvus.CreateDatabaseRequest.base:type_name -> milvus.proto.common.MsgBase - 300, // 281: milvus.proto.milvus.CreateDatabaseRequest.properties:type_name -> milvus.proto.common.KeyValuePair - 297, // 282: milvus.proto.milvus.DropDatabaseRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 283: milvus.proto.milvus.ListDatabasesRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 284: milvus.proto.milvus.ListDatabasesResponse.status:type_name -> milvus.proto.common.Status - 297, // 285: milvus.proto.milvus.AlterDatabaseRequest.base:type_name -> milvus.proto.common.MsgBase - 300, // 286: milvus.proto.milvus.AlterDatabaseRequest.properties:type_name -> milvus.proto.common.KeyValuePair - 297, // 287: milvus.proto.milvus.DescribeDatabaseRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 288: milvus.proto.milvus.DescribeDatabaseResponse.status:type_name -> milvus.proto.common.Status - 300, // 289: milvus.proto.milvus.DescribeDatabaseResponse.properties:type_name -> milvus.proto.common.KeyValuePair - 297, // 290: milvus.proto.milvus.ReplicateMessageRequest.base:type_name -> milvus.proto.common.MsgBase - 329, // 291: milvus.proto.milvus.ReplicateMessageRequest.StartPositions:type_name -> milvus.proto.msg.MsgPosition - 329, // 292: milvus.proto.milvus.ReplicateMessageRequest.EndPositions:type_name -> milvus.proto.msg.MsgPosition - 298, // 293: milvus.proto.milvus.ReplicateMessageResponse.status:type_name -> milvus.proto.common.Status - 297, // 294: milvus.proto.milvus.RunAnalyzerRequest.base:type_name -> milvus.proto.common.MsgBase - 201, // 295: milvus.proto.milvus.AnalyzerResult.tokens:type_name -> milvus.proto.milvus.AnalyzerToken - 298, // 296: milvus.proto.milvus.RunAnalyzerResponse.status:type_name -> milvus.proto.common.Status - 202, // 297: milvus.proto.milvus.RunAnalyzerResponse.results:type_name -> milvus.proto.milvus.AnalyzerResult - 297, // 298: milvus.proto.milvus.AddFileResourceRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 299: milvus.proto.milvus.RemoveFileResourceRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 300: milvus.proto.milvus.ListFileResourcesRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 301: milvus.proto.milvus.ListFileResourcesResponse.status:type_name -> milvus.proto.common.Status - 204, // 302: milvus.proto.milvus.ListFileResourcesResponse.resources:type_name -> milvus.proto.milvus.FileResourceInfo - 297, // 303: milvus.proto.milvus.AddUserTagsRequest.base:type_name -> milvus.proto.common.MsgBase - 291, // 304: milvus.proto.milvus.AddUserTagsRequest.tags:type_name -> milvus.proto.milvus.AddUserTagsRequest.TagsEntry - 297, // 305: milvus.proto.milvus.DeleteUserTagsRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 306: milvus.proto.milvus.GetUserTagsRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 307: milvus.proto.milvus.GetUserTagsResponse.status:type_name -> milvus.proto.common.Status - 292, // 308: milvus.proto.milvus.GetUserTagsResponse.tags:type_name -> milvus.proto.milvus.GetUserTagsResponse.TagsEntry - 297, // 309: milvus.proto.milvus.ListUsersWithTagRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 310: milvus.proto.milvus.ListUsersWithTagResponse.status:type_name -> milvus.proto.common.Status - 297, // 311: milvus.proto.milvus.CreateRowPolicyRequest.base:type_name -> milvus.proto.common.MsgBase - 6, // 312: milvus.proto.milvus.CreateRowPolicyRequest.actions:type_name -> milvus.proto.milvus.RowPolicyAction - 297, // 313: milvus.proto.milvus.DropRowPolicyRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 314: milvus.proto.milvus.ListRowPoliciesRequest.base:type_name -> milvus.proto.common.MsgBase - 6, // 315: milvus.proto.milvus.RowPolicy.actions:type_name -> milvus.proto.milvus.RowPolicyAction - 298, // 316: milvus.proto.milvus.ListRowPoliciesResponse.status:type_name -> milvus.proto.common.Status - 218, // 317: milvus.proto.milvus.ListRowPoliciesResponse.policies:type_name -> milvus.proto.milvus.RowPolicy - 330, // 318: milvus.proto.milvus.UpdateReplicateConfigurationRequest.replicate_configuration:type_name -> milvus.proto.common.ReplicateConfiguration - 298, // 319: milvus.proto.milvus.GetReplicateConfigurationResponse.status:type_name -> milvus.proto.common.Status - 330, // 320: milvus.proto.milvus.GetReplicateConfigurationResponse.configuration:type_name -> milvus.proto.common.ReplicateConfiguration - 331, // 321: milvus.proto.milvus.GetReplicateInfoResponse.checkpoint:type_name -> milvus.proto.common.ReplicateCheckpoint - 331, // 322: milvus.proto.milvus.GetReplicateInfoResponse.salvage_checkpoint:type_name -> milvus.proto.common.ReplicateCheckpoint - 332, // 323: milvus.proto.milvus.ReplicateMessage.message:type_name -> milvus.proto.common.ImmutableMessage - 225, // 324: milvus.proto.milvus.ReplicateRequest.replicate_message:type_name -> milvus.proto.milvus.ReplicateMessage - 227, // 325: milvus.proto.milvus.ReplicateResponse.replicate_confirmed_message_info:type_name -> milvus.proto.milvus.ReplicateConfirmedMessageInfo - 333, // 326: milvus.proto.milvus.DumpMessagesRequest.start_message_id:type_name -> milvus.proto.common.MessageID - 298, // 327: milvus.proto.milvus.DumpMessagesResponse.status:type_name -> milvus.proto.common.Status - 332, // 328: milvus.proto.milvus.DumpMessagesResponse.message:type_name -> milvus.proto.common.ImmutableMessage - 297, // 329: milvus.proto.milvus.TruncateCollectionRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 330: milvus.proto.milvus.TruncateCollectionResponse.status:type_name -> milvus.proto.common.Status - 297, // 331: milvus.proto.milvus.ComputePhraseMatchSlopRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 332: milvus.proto.milvus.ComputePhraseMatchSlopResponse.status:type_name -> milvus.proto.common.Status - 297, // 333: milvus.proto.milvus.CreateSnapshotRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 334: milvus.proto.milvus.DropSnapshotRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 335: milvus.proto.milvus.ListSnapshotsRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 336: milvus.proto.milvus.ListSnapshotsResponse.status:type_name -> milvus.proto.common.Status - 297, // 337: milvus.proto.milvus.DescribeSnapshotRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 338: milvus.proto.milvus.DescribeSnapshotResponse.status:type_name -> milvus.proto.common.Status - 297, // 339: milvus.proto.milvus.RestoreSnapshotRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 340: milvus.proto.milvus.RestoreSnapshotResponse.status:type_name -> milvus.proto.common.Status - 7, // 341: milvus.proto.milvus.RestoreSnapshotInfo.state:type_name -> milvus.proto.milvus.RestoreSnapshotState - 297, // 342: milvus.proto.milvus.GetRestoreSnapshotStateRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 343: milvus.proto.milvus.GetRestoreSnapshotStateResponse.status:type_name -> milvus.proto.common.Status - 243, // 344: milvus.proto.milvus.GetRestoreSnapshotStateResponse.info:type_name -> milvus.proto.milvus.RestoreSnapshotInfo - 297, // 345: milvus.proto.milvus.ListRestoreSnapshotJobsRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 346: milvus.proto.milvus.ListRestoreSnapshotJobsResponse.status:type_name -> milvus.proto.common.Status - 243, // 347: milvus.proto.milvus.ListRestoreSnapshotJobsResponse.jobs:type_name -> milvus.proto.milvus.RestoreSnapshotInfo - 297, // 348: milvus.proto.milvus.PinSnapshotDataRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 349: milvus.proto.milvus.PinSnapshotDataResponse.status:type_name -> milvus.proto.common.Status - 297, // 350: milvus.proto.milvus.UnpinSnapshotDataRequest.base:type_name -> milvus.proto.common.MsgBase - 297, // 351: milvus.proto.milvus.AlterCollectionSchemaRequest.base:type_name -> milvus.proto.common.MsgBase - 296, // 352: milvus.proto.milvus.AlterCollectionSchemaRequest.action:type_name -> milvus.proto.milvus.AlterCollectionSchemaRequest.Action - 298, // 353: milvus.proto.milvus.AlterCollectionSchemaResponse.alter_status:type_name -> milvus.proto.common.Status - 298, // 354: milvus.proto.milvus.AlterCollectionSchemaResponse.index_status:type_name -> milvus.proto.common.Status - 297, // 355: milvus.proto.milvus.BatchUpdateManifestRequest.base:type_name -> milvus.proto.common.MsgBase - 254, // 356: milvus.proto.milvus.BatchUpdateManifestRequest.items:type_name -> milvus.proto.milvus.BatchUpdateManifestItem - 327, // 357: milvus.proto.milvus.ClientHeartbeatRequest.client_info:type_name -> milvus.proto.common.ClientInfo - 334, // 358: milvus.proto.milvus.ClientHeartbeatRequest.metrics:type_name -> milvus.proto.common.OperationMetrics - 335, // 359: milvus.proto.milvus.ClientHeartbeatRequest.command_replies:type_name -> milvus.proto.common.CommandReply - 298, // 360: milvus.proto.milvus.ClientHeartbeatResponse.status:type_name -> milvus.proto.common.Status - 336, // 361: milvus.proto.milvus.ClientHeartbeatResponse.commands:type_name -> milvus.proto.common.ClientCommand - 327, // 362: milvus.proto.milvus.ClientTelemetry.client_info:type_name -> milvus.proto.common.ClientInfo - 334, // 363: milvus.proto.milvus.ClientTelemetry.metrics:type_name -> milvus.proto.common.OperationMetrics - 298, // 364: milvus.proto.milvus.GetClientTelemetryResponse.status:type_name -> milvus.proto.common.Status - 258, // 365: milvus.proto.milvus.GetClientTelemetryResponse.clients:type_name -> milvus.proto.milvus.ClientTelemetry - 337, // 366: milvus.proto.milvus.GetClientTelemetryResponse.aggregated:type_name -> milvus.proto.common.Metrics - 298, // 367: milvus.proto.milvus.PushClientCommandResponse.status:type_name -> milvus.proto.common.Status - 298, // 368: milvus.proto.milvus.DeleteClientCommandResponse.status:type_name -> milvus.proto.common.Status - 297, // 369: milvus.proto.milvus.RefreshExternalCollectionRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 370: milvus.proto.milvus.RefreshExternalCollectionResponse.status:type_name -> milvus.proto.common.Status - 297, // 371: milvus.proto.milvus.GetRefreshExternalCollectionProgressRequest.base:type_name -> milvus.proto.common.MsgBase - 8, // 372: milvus.proto.milvus.RefreshExternalCollectionJobInfo.state:type_name -> milvus.proto.milvus.RefreshExternalCollectionState - 298, // 373: milvus.proto.milvus.GetRefreshExternalCollectionProgressResponse.status:type_name -> milvus.proto.common.Status - 267, // 374: milvus.proto.milvus.GetRefreshExternalCollectionProgressResponse.job_info:type_name -> milvus.proto.milvus.RefreshExternalCollectionJobInfo - 297, // 375: milvus.proto.milvus.ListRefreshExternalCollectionJobsRequest.base:type_name -> milvus.proto.common.MsgBase - 298, // 376: milvus.proto.milvus.ListRefreshExternalCollectionJobsResponse.status:type_name -> milvus.proto.common.Status - 267, // 377: milvus.proto.milvus.ListRefreshExternalCollectionJobsResponse.jobs:type_name -> milvus.proto.milvus.RefreshExternalCollectionJobInfo - 338, // 378: milvus.proto.milvus.DeleteRequest.ExprTemplateValuesEntry.value:type_name -> milvus.proto.schema.TemplateValue - 338, // 379: milvus.proto.milvus.SubSearchRequest.ExprTemplateValuesEntry.value:type_name -> milvus.proto.schema.TemplateValue - 338, // 380: milvus.proto.milvus.SearchRequest.ExprTemplateValuesEntry.value:type_name -> milvus.proto.schema.TemplateValue - 314, // 381: milvus.proto.milvus.FlushResponse.CollSegIDsEntry.value:type_name -> milvus.proto.schema.LongArray - 314, // 382: milvus.proto.milvus.FlushResponse.FlushCollSegIDsEntry.value:type_name -> milvus.proto.schema.LongArray - 329, // 383: milvus.proto.milvus.FlushResponse.ChannelCpsEntry.value:type_name -> milvus.proto.msg.MsgPosition - 338, // 384: milvus.proto.milvus.QueryRequest.ExprTemplateValuesEntry.value:type_name -> milvus.proto.schema.TemplateValue - 332, // 385: milvus.proto.milvus.FlushAllResponse.FlushAllMsgsEntry.value:type_name -> milvus.proto.common.ImmutableMessage - 329, // 386: milvus.proto.milvus.FlushCollectionResult.ChannelCpsEntry.value:type_name -> milvus.proto.msg.MsgPosition - 325, // 387: milvus.proto.milvus.UpdateResourceGroupsRequest.ResourceGroupsEntry.value:type_name -> milvus.proto.rg.ResourceGroupConfig - 339, // 388: milvus.proto.milvus.AlterCollectionSchemaRequest.FieldInfo.field_schema:type_name -> milvus.proto.schema.FieldSchema - 300, // 389: milvus.proto.milvus.AlterCollectionSchemaRequest.FieldInfo.extra_params:type_name -> milvus.proto.common.KeyValuePair - 293, // 390: milvus.proto.milvus.AlterCollectionSchemaRequest.AddRequest.field_infos:type_name -> milvus.proto.milvus.AlterCollectionSchemaRequest.FieldInfo - 306, // 391: milvus.proto.milvus.AlterCollectionSchemaRequest.AddRequest.func_schema:type_name -> milvus.proto.schema.FunctionSchema - 294, // 392: milvus.proto.milvus.AlterCollectionSchemaRequest.Action.add_request:type_name -> milvus.proto.milvus.AlterCollectionSchemaRequest.AddRequest - 295, // 393: milvus.proto.milvus.AlterCollectionSchemaRequest.Action.drop_request:type_name -> milvus.proto.milvus.AlterCollectionSchemaRequest.DropRequest - 340, // 394: milvus.proto.milvus.milvus_ext_obj:extendee -> google.protobuf.FileOptions - 166, // 395: milvus.proto.milvus.milvus_ext_obj:type_name -> milvus.proto.milvus.MilvusExt - 16, // 396: milvus.proto.milvus.MilvusService.CreateCollection:input_type -> milvus.proto.milvus.CreateCollectionRequest - 17, // 397: milvus.proto.milvus.MilvusService.DropCollection:input_type -> milvus.proto.milvus.DropCollectionRequest - 20, // 398: milvus.proto.milvus.MilvusService.HasCollection:input_type -> milvus.proto.milvus.HasCollectionRequest - 27, // 399: milvus.proto.milvus.MilvusService.LoadCollection:input_type -> milvus.proto.milvus.LoadCollectionRequest - 28, // 400: milvus.proto.milvus.MilvusService.ReleaseCollection:input_type -> milvus.proto.milvus.ReleaseCollectionRequest - 23, // 401: milvus.proto.milvus.MilvusService.DescribeCollection:input_type -> milvus.proto.milvus.DescribeCollectionRequest - 25, // 402: milvus.proto.milvus.MilvusService.BatchDescribeCollection:input_type -> milvus.proto.milvus.BatchDescribeCollectionRequest - 31, // 403: milvus.proto.milvus.MilvusService.GetCollectionStatistics:input_type -> milvus.proto.milvus.GetCollectionStatisticsRequest - 33, // 404: milvus.proto.milvus.MilvusService.ShowCollections:input_type -> milvus.proto.milvus.ShowCollectionsRequest - 18, // 405: milvus.proto.milvus.MilvusService.AlterCollection:input_type -> milvus.proto.milvus.AlterCollectionRequest - 19, // 406: milvus.proto.milvus.MilvusService.AlterCollectionField:input_type -> milvus.proto.milvus.AlterCollectionFieldRequest - 61, // 407: milvus.proto.milvus.MilvusService.AddCollectionFunction:input_type -> milvus.proto.milvus.AddCollectionFunctionRequest - 62, // 408: milvus.proto.milvus.MilvusService.AlterCollectionFunction:input_type -> milvus.proto.milvus.AlterCollectionFunctionRequest - 63, // 409: milvus.proto.milvus.MilvusService.DropCollectionFunction:input_type -> milvus.proto.milvus.DropCollectionFunctionRequest - 231, // 410: milvus.proto.milvus.MilvusService.TruncateCollection:input_type -> milvus.proto.milvus.TruncateCollectionRequest - 35, // 411: milvus.proto.milvus.MilvusService.CreatePartition:input_type -> milvus.proto.milvus.CreatePartitionRequest - 36, // 412: milvus.proto.milvus.MilvusService.DropPartition:input_type -> milvus.proto.milvus.DropPartitionRequest - 37, // 413: milvus.proto.milvus.MilvusService.HasPartition:input_type -> milvus.proto.milvus.HasPartitionRequest - 38, // 414: milvus.proto.milvus.MilvusService.LoadPartitions:input_type -> milvus.proto.milvus.LoadPartitionsRequest - 39, // 415: milvus.proto.milvus.MilvusService.ReleasePartitions:input_type -> milvus.proto.milvus.ReleasePartitionsRequest - 40, // 416: milvus.proto.milvus.MilvusService.GetPartitionStatistics:input_type -> milvus.proto.milvus.GetPartitionStatisticsRequest - 42, // 417: milvus.proto.milvus.MilvusService.ShowPartitions:input_type -> milvus.proto.milvus.ShowPartitionsRequest - 162, // 418: milvus.proto.milvus.MilvusService.GetLoadingProgress:input_type -> milvus.proto.milvus.GetLoadingProgressRequest - 164, // 419: milvus.proto.milvus.MilvusService.GetLoadState:input_type -> milvus.proto.milvus.GetLoadStateRequest - 9, // 420: milvus.proto.milvus.MilvusService.CreateAlias:input_type -> milvus.proto.milvus.CreateAliasRequest - 10, // 421: milvus.proto.milvus.MilvusService.DropAlias:input_type -> milvus.proto.milvus.DropAliasRequest - 11, // 422: milvus.proto.milvus.MilvusService.AlterAlias:input_type -> milvus.proto.milvus.AlterAliasRequest - 12, // 423: milvus.proto.milvus.MilvusService.DescribeAlias:input_type -> milvus.proto.milvus.DescribeAliasRequest - 14, // 424: milvus.proto.milvus.MilvusService.ListAliases:input_type -> milvus.proto.milvus.ListAliasesRequest - 48, // 425: milvus.proto.milvus.MilvusService.CreateIndex:input_type -> milvus.proto.milvus.CreateIndexRequest - 49, // 426: milvus.proto.milvus.MilvusService.AlterIndex:input_type -> milvus.proto.milvus.AlterIndexRequest - 50, // 427: milvus.proto.milvus.MilvusService.DescribeIndex:input_type -> milvus.proto.milvus.DescribeIndexRequest - 182, // 428: milvus.proto.milvus.MilvusService.GetIndexStatistics:input_type -> milvus.proto.milvus.GetIndexStatisticsRequest - 55, // 429: milvus.proto.milvus.MilvusService.GetIndexState:input_type -> milvus.proto.milvus.GetIndexStateRequest - 53, // 430: milvus.proto.milvus.MilvusService.GetIndexBuildProgress:input_type -> milvus.proto.milvus.GetIndexBuildProgressRequest - 57, // 431: milvus.proto.milvus.MilvusService.DropIndex:input_type -> milvus.proto.milvus.DropIndexRequest - 58, // 432: milvus.proto.milvus.MilvusService.Insert:input_type -> milvus.proto.milvus.InsertRequest - 66, // 433: milvus.proto.milvus.MilvusService.Delete:input_type -> milvus.proto.milvus.DeleteRequest - 64, // 434: milvus.proto.milvus.MilvusService.Upsert:input_type -> milvus.proto.milvus.UpsertRequest - 68, // 435: milvus.proto.milvus.MilvusService.Search:input_type -> milvus.proto.milvus.SearchRequest - 71, // 436: milvus.proto.milvus.MilvusService.HybridSearch:input_type -> milvus.proto.milvus.HybridSearchRequest - 72, // 437: milvus.proto.milvus.MilvusService.Flush:input_type -> milvus.proto.milvus.FlushRequest - 74, // 438: milvus.proto.milvus.MilvusService.Query:input_type -> milvus.proto.milvus.QueryRequest - 80, // 439: milvus.proto.milvus.MilvusService.CalcDistance:input_type -> milvus.proto.milvus.CalcDistanceRequest - 83, // 440: milvus.proto.milvus.MilvusService.FlushAll:input_type -> milvus.proto.milvus.FlushAllRequest - 59, // 441: milvus.proto.milvus.MilvusService.AddCollectionField:input_type -> milvus.proto.milvus.AddCollectionFieldRequest - 60, // 442: milvus.proto.milvus.MilvusService.AddCollectionStructField:input_type -> milvus.proto.milvus.AddCollectionStructFieldRequest - 111, // 443: milvus.proto.milvus.MilvusService.GetFlushState:input_type -> milvus.proto.milvus.GetFlushStateRequest - 113, // 444: milvus.proto.milvus.MilvusService.GetFlushAllState:input_type -> milvus.proto.milvus.GetFlushAllStateRequest - 89, // 445: milvus.proto.milvus.MilvusService.GetPersistentSegmentInfo:input_type -> milvus.proto.milvus.GetPersistentSegmentInfoRequest - 92, // 446: milvus.proto.milvus.MilvusService.GetQuerySegmentInfo:input_type -> milvus.proto.milvus.GetQuerySegmentInfoRequest - 122, // 447: milvus.proto.milvus.MilvusService.GetReplicas:input_type -> milvus.proto.milvus.GetReplicasRequest - 94, // 448: milvus.proto.milvus.MilvusService.Dummy:input_type -> milvus.proto.milvus.DummyRequest - 96, // 449: milvus.proto.milvus.MilvusService.RegisterLink:input_type -> milvus.proto.milvus.RegisterLinkRequest - 98, // 450: milvus.proto.milvus.MilvusService.GetMetrics:input_type -> milvus.proto.milvus.GetMetricsRequest - 102, // 451: milvus.proto.milvus.MilvusService.GetComponentStates:input_type -> milvus.proto.milvus.GetComponentStatesRequest - 103, // 452: milvus.proto.milvus.MilvusService.LoadBalance:input_type -> milvus.proto.milvus.LoadBalanceRequest - 106, // 453: milvus.proto.milvus.MilvusService.GetCompactionState:input_type -> milvus.proto.milvus.GetCompactionStateRequest - 104, // 454: milvus.proto.milvus.MilvusService.ManualCompaction:input_type -> milvus.proto.milvus.ManualCompactionRequest - 108, // 455: milvus.proto.milvus.MilvusService.GetCompactionStateWithPlans:input_type -> milvus.proto.milvus.GetCompactionPlansRequest - 116, // 456: milvus.proto.milvus.MilvusService.Import:input_type -> milvus.proto.milvus.ImportRequest - 118, // 457: milvus.proto.milvus.MilvusService.GetImportState:input_type -> milvus.proto.milvus.GetImportStateRequest - 120, // 458: milvus.proto.milvus.MilvusService.ListImportTasks:input_type -> milvus.proto.milvus.ListImportTasksRequest - 126, // 459: milvus.proto.milvus.MilvusService.CreateCredential:input_type -> milvus.proto.milvus.CreateCredentialRequest - 127, // 460: milvus.proto.milvus.MilvusService.UpdateCredential:input_type -> milvus.proto.milvus.UpdateCredentialRequest - 128, // 461: milvus.proto.milvus.MilvusService.DeleteCredential:input_type -> milvus.proto.milvus.DeleteCredentialRequest - 130, // 462: milvus.proto.milvus.MilvusService.ListCredUsers:input_type -> milvus.proto.milvus.ListCredUsersRequest - 133, // 463: milvus.proto.milvus.MilvusService.CreateRole:input_type -> milvus.proto.milvus.CreateRoleRequest - 134, // 464: milvus.proto.milvus.MilvusService.DropRole:input_type -> milvus.proto.milvus.DropRoleRequest - 140, // 465: milvus.proto.milvus.MilvusService.OperateUserRole:input_type -> milvus.proto.milvus.OperateUserRoleRequest - 142, // 466: milvus.proto.milvus.MilvusService.SelectRole:input_type -> milvus.proto.milvus.SelectRoleRequest - 145, // 467: milvus.proto.milvus.MilvusService.SelectUser:input_type -> milvus.proto.milvus.SelectUserRequest - 155, // 468: milvus.proto.milvus.MilvusService.OperatePrivilege:input_type -> milvus.proto.milvus.OperatePrivilegeRequest - 156, // 469: milvus.proto.milvus.MilvusService.OperatePrivilegeV2:input_type -> milvus.proto.milvus.OperatePrivilegeV2Request - 153, // 470: milvus.proto.milvus.MilvusService.SelectGrant:input_type -> milvus.proto.milvus.SelectGrantRequest - 167, // 471: milvus.proto.milvus.MilvusService.GetVersion:input_type -> milvus.proto.milvus.GetVersionRequest - 169, // 472: milvus.proto.milvus.MilvusService.CheckHealth:input_type -> milvus.proto.milvus.CheckHealthRequest - 171, // 473: milvus.proto.milvus.MilvusService.CreateResourceGroup:input_type -> milvus.proto.milvus.CreateResourceGroupRequest - 173, // 474: milvus.proto.milvus.MilvusService.DropResourceGroup:input_type -> milvus.proto.milvus.DropResourceGroupRequest - 172, // 475: milvus.proto.milvus.MilvusService.UpdateResourceGroups:input_type -> milvus.proto.milvus.UpdateResourceGroupsRequest - 174, // 476: milvus.proto.milvus.MilvusService.TransferNode:input_type -> milvus.proto.milvus.TransferNodeRequest - 175, // 477: milvus.proto.milvus.MilvusService.TransferReplica:input_type -> milvus.proto.milvus.TransferReplicaRequest - 176, // 478: milvus.proto.milvus.MilvusService.ListResourceGroups:input_type -> milvus.proto.milvus.ListResourceGroupsRequest - 178, // 479: milvus.proto.milvus.MilvusService.DescribeResourceGroup:input_type -> milvus.proto.milvus.DescribeResourceGroupRequest - 181, // 480: milvus.proto.milvus.MilvusService.RenameCollection:input_type -> milvus.proto.milvus.RenameCollectionRequest - 341, // 481: milvus.proto.milvus.MilvusService.ListIndexedSegment:input_type -> milvus.proto.feder.ListIndexedSegmentRequest - 342, // 482: milvus.proto.milvus.MilvusService.DescribeSegmentIndexData:input_type -> milvus.proto.feder.DescribeSegmentIndexDataRequest - 184, // 483: milvus.proto.milvus.MilvusService.Connect:input_type -> milvus.proto.milvus.ConnectRequest - 186, // 484: milvus.proto.milvus.MilvusService.AllocTimestamp:input_type -> milvus.proto.milvus.AllocTimestampRequest - 188, // 485: milvus.proto.milvus.MilvusService.CreateDatabase:input_type -> milvus.proto.milvus.CreateDatabaseRequest - 189, // 486: milvus.proto.milvus.MilvusService.DropDatabase:input_type -> milvus.proto.milvus.DropDatabaseRequest - 190, // 487: milvus.proto.milvus.MilvusService.ListDatabases:input_type -> milvus.proto.milvus.ListDatabasesRequest - 192, // 488: milvus.proto.milvus.MilvusService.AlterDatabase:input_type -> milvus.proto.milvus.AlterDatabaseRequest - 193, // 489: milvus.proto.milvus.MilvusService.DescribeDatabase:input_type -> milvus.proto.milvus.DescribeDatabaseRequest - 195, // 490: milvus.proto.milvus.MilvusService.ReplicateMessage:input_type -> milvus.proto.milvus.ReplicateMessageRequest - 159, // 491: milvus.proto.milvus.MilvusService.BackupRBAC:input_type -> milvus.proto.milvus.BackupRBACMetaRequest - 161, // 492: milvus.proto.milvus.MilvusService.RestoreRBAC:input_type -> milvus.proto.milvus.RestoreRBACMetaRequest - 135, // 493: milvus.proto.milvus.MilvusService.CreatePrivilegeGroup:input_type -> milvus.proto.milvus.CreatePrivilegeGroupRequest - 136, // 494: milvus.proto.milvus.MilvusService.DropPrivilegeGroup:input_type -> milvus.proto.milvus.DropPrivilegeGroupRequest - 137, // 495: milvus.proto.milvus.MilvusService.ListPrivilegeGroups:input_type -> milvus.proto.milvus.ListPrivilegeGroupsRequest - 139, // 496: milvus.proto.milvus.MilvusService.OperatePrivilegeGroup:input_type -> milvus.proto.milvus.OperatePrivilegeGroupRequest - 200, // 497: milvus.proto.milvus.MilvusService.RunAnalyzer:input_type -> milvus.proto.milvus.RunAnalyzerRequest - 205, // 498: milvus.proto.milvus.MilvusService.AddFileResource:input_type -> milvus.proto.milvus.AddFileResourceRequest - 206, // 499: milvus.proto.milvus.MilvusService.RemoveFileResource:input_type -> milvus.proto.milvus.RemoveFileResourceRequest - 207, // 500: milvus.proto.milvus.MilvusService.ListFileResources:input_type -> milvus.proto.milvus.ListFileResourcesRequest - 209, // 501: milvus.proto.milvus.MilvusService.AddUserTags:input_type -> milvus.proto.milvus.AddUserTagsRequest - 210, // 502: milvus.proto.milvus.MilvusService.DeleteUserTags:input_type -> milvus.proto.milvus.DeleteUserTagsRequest - 211, // 503: milvus.proto.milvus.MilvusService.GetUserTags:input_type -> milvus.proto.milvus.GetUserTagsRequest - 213, // 504: milvus.proto.milvus.MilvusService.ListUsersWithTag:input_type -> milvus.proto.milvus.ListUsersWithTagRequest - 215, // 505: milvus.proto.milvus.MilvusService.CreateRowPolicy:input_type -> milvus.proto.milvus.CreateRowPolicyRequest - 216, // 506: milvus.proto.milvus.MilvusService.DropRowPolicy:input_type -> milvus.proto.milvus.DropRowPolicyRequest - 217, // 507: milvus.proto.milvus.MilvusService.ListRowPolicies:input_type -> milvus.proto.milvus.ListRowPoliciesRequest - 220, // 508: milvus.proto.milvus.MilvusService.UpdateReplicateConfiguration:input_type -> milvus.proto.milvus.UpdateReplicateConfigurationRequest - 221, // 509: milvus.proto.milvus.MilvusService.GetReplicateConfiguration:input_type -> milvus.proto.milvus.GetReplicateConfigurationRequest - 223, // 510: milvus.proto.milvus.MilvusService.GetReplicateInfo:input_type -> milvus.proto.milvus.GetReplicateInfoRequest - 226, // 511: milvus.proto.milvus.MilvusService.CreateReplicateStream:input_type -> milvus.proto.milvus.ReplicateRequest - 229, // 512: milvus.proto.milvus.MilvusService.DumpMessages:input_type -> milvus.proto.milvus.DumpMessagesRequest - 233, // 513: milvus.proto.milvus.MilvusService.ComputePhraseMatchSlop:input_type -> milvus.proto.milvus.ComputePhraseMatchSlopRequest - 235, // 514: milvus.proto.milvus.MilvusService.CreateSnapshot:input_type -> milvus.proto.milvus.CreateSnapshotRequest - 236, // 515: milvus.proto.milvus.MilvusService.DropSnapshot:input_type -> milvus.proto.milvus.DropSnapshotRequest - 237, // 516: milvus.proto.milvus.MilvusService.ListSnapshots:input_type -> milvus.proto.milvus.ListSnapshotsRequest - 239, // 517: milvus.proto.milvus.MilvusService.DescribeSnapshot:input_type -> milvus.proto.milvus.DescribeSnapshotRequest - 241, // 518: milvus.proto.milvus.MilvusService.RestoreSnapshot:input_type -> milvus.proto.milvus.RestoreSnapshotRequest - 244, // 519: milvus.proto.milvus.MilvusService.GetRestoreSnapshotState:input_type -> milvus.proto.milvus.GetRestoreSnapshotStateRequest - 246, // 520: milvus.proto.milvus.MilvusService.ListRestoreSnapshotJobs:input_type -> milvus.proto.milvus.ListRestoreSnapshotJobsRequest - 248, // 521: milvus.proto.milvus.MilvusService.PinSnapshotData:input_type -> milvus.proto.milvus.PinSnapshotDataRequest - 250, // 522: milvus.proto.milvus.MilvusService.UnpinSnapshotData:input_type -> milvus.proto.milvus.UnpinSnapshotDataRequest - 251, // 523: milvus.proto.milvus.MilvusService.AlterCollectionSchema:input_type -> milvus.proto.milvus.AlterCollectionSchemaRequest - 253, // 524: milvus.proto.milvus.MilvusService.BatchUpdateManifest:input_type -> milvus.proto.milvus.BatchUpdateManifestRequest - 264, // 525: milvus.proto.milvus.MilvusService.RefreshExternalCollection:input_type -> milvus.proto.milvus.RefreshExternalCollectionRequest - 266, // 526: milvus.proto.milvus.MilvusService.GetRefreshExternalCollectionProgress:input_type -> milvus.proto.milvus.GetRefreshExternalCollectionProgressRequest - 269, // 527: milvus.proto.milvus.MilvusService.ListRefreshExternalCollectionJobs:input_type -> milvus.proto.milvus.ListRefreshExternalCollectionJobsRequest - 255, // 528: milvus.proto.milvus.ClientTelemetryService.ClientHeartbeat:input_type -> milvus.proto.milvus.ClientHeartbeatRequest - 257, // 529: milvus.proto.milvus.ClientTelemetryService.GetClientTelemetry:input_type -> milvus.proto.milvus.GetClientTelemetryRequest - 260, // 530: milvus.proto.milvus.ClientTelemetryService.PushClientCommand:input_type -> milvus.proto.milvus.PushClientCommandRequest - 262, // 531: milvus.proto.milvus.ClientTelemetryService.DeleteClientCommand:input_type -> milvus.proto.milvus.DeleteClientCommandRequest - 96, // 532: milvus.proto.milvus.ProxyService.RegisterLink:input_type -> milvus.proto.milvus.RegisterLinkRequest - 298, // 533: milvus.proto.milvus.MilvusService.CreateCollection:output_type -> milvus.proto.common.Status - 298, // 534: milvus.proto.milvus.MilvusService.DropCollection:output_type -> milvus.proto.common.Status - 21, // 535: milvus.proto.milvus.MilvusService.HasCollection:output_type -> milvus.proto.milvus.BoolResponse - 298, // 536: milvus.proto.milvus.MilvusService.LoadCollection:output_type -> milvus.proto.common.Status - 298, // 537: milvus.proto.milvus.MilvusService.ReleaseCollection:output_type -> milvus.proto.common.Status - 24, // 538: milvus.proto.milvus.MilvusService.DescribeCollection:output_type -> milvus.proto.milvus.DescribeCollectionResponse - 26, // 539: milvus.proto.milvus.MilvusService.BatchDescribeCollection:output_type -> milvus.proto.milvus.BatchDescribeCollectionResponse - 32, // 540: milvus.proto.milvus.MilvusService.GetCollectionStatistics:output_type -> milvus.proto.milvus.GetCollectionStatisticsResponse - 34, // 541: milvus.proto.milvus.MilvusService.ShowCollections:output_type -> milvus.proto.milvus.ShowCollectionsResponse - 298, // 542: milvus.proto.milvus.MilvusService.AlterCollection:output_type -> milvus.proto.common.Status - 298, // 543: milvus.proto.milvus.MilvusService.AlterCollectionField:output_type -> milvus.proto.common.Status - 298, // 544: milvus.proto.milvus.MilvusService.AddCollectionFunction:output_type -> milvus.proto.common.Status - 298, // 545: milvus.proto.milvus.MilvusService.AlterCollectionFunction:output_type -> milvus.proto.common.Status - 298, // 546: milvus.proto.milvus.MilvusService.DropCollectionFunction:output_type -> milvus.proto.common.Status - 232, // 547: milvus.proto.milvus.MilvusService.TruncateCollection:output_type -> milvus.proto.milvus.TruncateCollectionResponse - 298, // 548: milvus.proto.milvus.MilvusService.CreatePartition:output_type -> milvus.proto.common.Status - 298, // 549: milvus.proto.milvus.MilvusService.DropPartition:output_type -> milvus.proto.common.Status - 21, // 550: milvus.proto.milvus.MilvusService.HasPartition:output_type -> milvus.proto.milvus.BoolResponse - 298, // 551: milvus.proto.milvus.MilvusService.LoadPartitions:output_type -> milvus.proto.common.Status - 298, // 552: milvus.proto.milvus.MilvusService.ReleasePartitions:output_type -> milvus.proto.common.Status - 41, // 553: milvus.proto.milvus.MilvusService.GetPartitionStatistics:output_type -> milvus.proto.milvus.GetPartitionStatisticsResponse - 43, // 554: milvus.proto.milvus.MilvusService.ShowPartitions:output_type -> milvus.proto.milvus.ShowPartitionsResponse - 163, // 555: milvus.proto.milvus.MilvusService.GetLoadingProgress:output_type -> milvus.proto.milvus.GetLoadingProgressResponse - 165, // 556: milvus.proto.milvus.MilvusService.GetLoadState:output_type -> milvus.proto.milvus.GetLoadStateResponse - 298, // 557: milvus.proto.milvus.MilvusService.CreateAlias:output_type -> milvus.proto.common.Status - 298, // 558: milvus.proto.milvus.MilvusService.DropAlias:output_type -> milvus.proto.common.Status - 298, // 559: milvus.proto.milvus.MilvusService.AlterAlias:output_type -> milvus.proto.common.Status - 13, // 560: milvus.proto.milvus.MilvusService.DescribeAlias:output_type -> milvus.proto.milvus.DescribeAliasResponse - 15, // 561: milvus.proto.milvus.MilvusService.ListAliases:output_type -> milvus.proto.milvus.ListAliasesResponse - 298, // 562: milvus.proto.milvus.MilvusService.CreateIndex:output_type -> milvus.proto.common.Status - 298, // 563: milvus.proto.milvus.MilvusService.AlterIndex:output_type -> milvus.proto.common.Status - 52, // 564: milvus.proto.milvus.MilvusService.DescribeIndex:output_type -> milvus.proto.milvus.DescribeIndexResponse - 183, // 565: milvus.proto.milvus.MilvusService.GetIndexStatistics:output_type -> milvus.proto.milvus.GetIndexStatisticsResponse - 56, // 566: milvus.proto.milvus.MilvusService.GetIndexState:output_type -> milvus.proto.milvus.GetIndexStateResponse - 54, // 567: milvus.proto.milvus.MilvusService.GetIndexBuildProgress:output_type -> milvus.proto.milvus.GetIndexBuildProgressResponse - 298, // 568: milvus.proto.milvus.MilvusService.DropIndex:output_type -> milvus.proto.common.Status - 65, // 569: milvus.proto.milvus.MilvusService.Insert:output_type -> milvus.proto.milvus.MutationResult - 65, // 570: milvus.proto.milvus.MilvusService.Delete:output_type -> milvus.proto.milvus.MutationResult - 65, // 571: milvus.proto.milvus.MilvusService.Upsert:output_type -> milvus.proto.milvus.MutationResult - 70, // 572: milvus.proto.milvus.MilvusService.Search:output_type -> milvus.proto.milvus.SearchResults - 70, // 573: milvus.proto.milvus.MilvusService.HybridSearch:output_type -> milvus.proto.milvus.SearchResults - 73, // 574: milvus.proto.milvus.MilvusService.Flush:output_type -> milvus.proto.milvus.FlushResponse - 76, // 575: milvus.proto.milvus.MilvusService.Query:output_type -> milvus.proto.milvus.QueryResults - 81, // 576: milvus.proto.milvus.MilvusService.CalcDistance:output_type -> milvus.proto.milvus.CalcDistanceResults - 85, // 577: milvus.proto.milvus.MilvusService.FlushAll:output_type -> milvus.proto.milvus.FlushAllResponse - 298, // 578: milvus.proto.milvus.MilvusService.AddCollectionField:output_type -> milvus.proto.common.Status - 298, // 579: milvus.proto.milvus.MilvusService.AddCollectionStructField:output_type -> milvus.proto.common.Status - 112, // 580: milvus.proto.milvus.MilvusService.GetFlushState:output_type -> milvus.proto.milvus.GetFlushStateResponse - 114, // 581: milvus.proto.milvus.MilvusService.GetFlushAllState:output_type -> milvus.proto.milvus.GetFlushAllStateResponse - 90, // 582: milvus.proto.milvus.MilvusService.GetPersistentSegmentInfo:output_type -> milvus.proto.milvus.GetPersistentSegmentInfoResponse - 93, // 583: milvus.proto.milvus.MilvusService.GetQuerySegmentInfo:output_type -> milvus.proto.milvus.GetQuerySegmentInfoResponse - 123, // 584: milvus.proto.milvus.MilvusService.GetReplicas:output_type -> milvus.proto.milvus.GetReplicasResponse - 95, // 585: milvus.proto.milvus.MilvusService.Dummy:output_type -> milvus.proto.milvus.DummyResponse - 97, // 586: milvus.proto.milvus.MilvusService.RegisterLink:output_type -> milvus.proto.milvus.RegisterLinkResponse - 99, // 587: milvus.proto.milvus.MilvusService.GetMetrics:output_type -> milvus.proto.milvus.GetMetricsResponse - 101, // 588: milvus.proto.milvus.MilvusService.GetComponentStates:output_type -> milvus.proto.milvus.ComponentStates - 298, // 589: milvus.proto.milvus.MilvusService.LoadBalance:output_type -> milvus.proto.common.Status - 107, // 590: milvus.proto.milvus.MilvusService.GetCompactionState:output_type -> milvus.proto.milvus.GetCompactionStateResponse - 105, // 591: milvus.proto.milvus.MilvusService.ManualCompaction:output_type -> milvus.proto.milvus.ManualCompactionResponse - 109, // 592: milvus.proto.milvus.MilvusService.GetCompactionStateWithPlans:output_type -> milvus.proto.milvus.GetCompactionPlansResponse - 117, // 593: milvus.proto.milvus.MilvusService.Import:output_type -> milvus.proto.milvus.ImportResponse - 119, // 594: milvus.proto.milvus.MilvusService.GetImportState:output_type -> milvus.proto.milvus.GetImportStateResponse - 121, // 595: milvus.proto.milvus.MilvusService.ListImportTasks:output_type -> milvus.proto.milvus.ListImportTasksResponse - 298, // 596: milvus.proto.milvus.MilvusService.CreateCredential:output_type -> milvus.proto.common.Status - 298, // 597: milvus.proto.milvus.MilvusService.UpdateCredential:output_type -> milvus.proto.common.Status - 298, // 598: milvus.proto.milvus.MilvusService.DeleteCredential:output_type -> milvus.proto.common.Status - 129, // 599: milvus.proto.milvus.MilvusService.ListCredUsers:output_type -> milvus.proto.milvus.ListCredUsersResponse - 298, // 600: milvus.proto.milvus.MilvusService.CreateRole:output_type -> milvus.proto.common.Status - 298, // 601: milvus.proto.milvus.MilvusService.DropRole:output_type -> milvus.proto.common.Status - 298, // 602: milvus.proto.milvus.MilvusService.OperateUserRole:output_type -> milvus.proto.common.Status - 144, // 603: milvus.proto.milvus.MilvusService.SelectRole:output_type -> milvus.proto.milvus.SelectRoleResponse - 147, // 604: milvus.proto.milvus.MilvusService.SelectUser:output_type -> milvus.proto.milvus.SelectUserResponse - 298, // 605: milvus.proto.milvus.MilvusService.OperatePrivilege:output_type -> milvus.proto.common.Status - 298, // 606: milvus.proto.milvus.MilvusService.OperatePrivilegeV2:output_type -> milvus.proto.common.Status - 154, // 607: milvus.proto.milvus.MilvusService.SelectGrant:output_type -> milvus.proto.milvus.SelectGrantResponse - 168, // 608: milvus.proto.milvus.MilvusService.GetVersion:output_type -> milvus.proto.milvus.GetVersionResponse - 170, // 609: milvus.proto.milvus.MilvusService.CheckHealth:output_type -> milvus.proto.milvus.CheckHealthResponse - 298, // 610: milvus.proto.milvus.MilvusService.CreateResourceGroup:output_type -> milvus.proto.common.Status - 298, // 611: milvus.proto.milvus.MilvusService.DropResourceGroup:output_type -> milvus.proto.common.Status - 298, // 612: milvus.proto.milvus.MilvusService.UpdateResourceGroups:output_type -> milvus.proto.common.Status - 298, // 613: milvus.proto.milvus.MilvusService.TransferNode:output_type -> milvus.proto.common.Status - 298, // 614: milvus.proto.milvus.MilvusService.TransferReplica:output_type -> milvus.proto.common.Status - 177, // 615: milvus.proto.milvus.MilvusService.ListResourceGroups:output_type -> milvus.proto.milvus.ListResourceGroupsResponse - 179, // 616: milvus.proto.milvus.MilvusService.DescribeResourceGroup:output_type -> milvus.proto.milvus.DescribeResourceGroupResponse - 298, // 617: milvus.proto.milvus.MilvusService.RenameCollection:output_type -> milvus.proto.common.Status - 343, // 618: milvus.proto.milvus.MilvusService.ListIndexedSegment:output_type -> milvus.proto.feder.ListIndexedSegmentResponse - 344, // 619: milvus.proto.milvus.MilvusService.DescribeSegmentIndexData:output_type -> milvus.proto.feder.DescribeSegmentIndexDataResponse - 185, // 620: milvus.proto.milvus.MilvusService.Connect:output_type -> milvus.proto.milvus.ConnectResponse - 187, // 621: milvus.proto.milvus.MilvusService.AllocTimestamp:output_type -> milvus.proto.milvus.AllocTimestampResponse - 298, // 622: milvus.proto.milvus.MilvusService.CreateDatabase:output_type -> milvus.proto.common.Status - 298, // 623: milvus.proto.milvus.MilvusService.DropDatabase:output_type -> milvus.proto.common.Status - 191, // 624: milvus.proto.milvus.MilvusService.ListDatabases:output_type -> milvus.proto.milvus.ListDatabasesResponse - 298, // 625: milvus.proto.milvus.MilvusService.AlterDatabase:output_type -> milvus.proto.common.Status - 194, // 626: milvus.proto.milvus.MilvusService.DescribeDatabase:output_type -> milvus.proto.milvus.DescribeDatabaseResponse - 196, // 627: milvus.proto.milvus.MilvusService.ReplicateMessage:output_type -> milvus.proto.milvus.ReplicateMessageResponse - 160, // 628: milvus.proto.milvus.MilvusService.BackupRBAC:output_type -> milvus.proto.milvus.BackupRBACMetaResponse - 298, // 629: milvus.proto.milvus.MilvusService.RestoreRBAC:output_type -> milvus.proto.common.Status - 298, // 630: milvus.proto.milvus.MilvusService.CreatePrivilegeGroup:output_type -> milvus.proto.common.Status - 298, // 631: milvus.proto.milvus.MilvusService.DropPrivilegeGroup:output_type -> milvus.proto.common.Status - 138, // 632: milvus.proto.milvus.MilvusService.ListPrivilegeGroups:output_type -> milvus.proto.milvus.ListPrivilegeGroupsResponse - 298, // 633: milvus.proto.milvus.MilvusService.OperatePrivilegeGroup:output_type -> milvus.proto.common.Status - 203, // 634: milvus.proto.milvus.MilvusService.RunAnalyzer:output_type -> milvus.proto.milvus.RunAnalyzerResponse - 298, // 635: milvus.proto.milvus.MilvusService.AddFileResource:output_type -> milvus.proto.common.Status - 298, // 636: milvus.proto.milvus.MilvusService.RemoveFileResource:output_type -> milvus.proto.common.Status - 208, // 637: milvus.proto.milvus.MilvusService.ListFileResources:output_type -> milvus.proto.milvus.ListFileResourcesResponse - 298, // 638: milvus.proto.milvus.MilvusService.AddUserTags:output_type -> milvus.proto.common.Status - 298, // 639: milvus.proto.milvus.MilvusService.DeleteUserTags:output_type -> milvus.proto.common.Status - 212, // 640: milvus.proto.milvus.MilvusService.GetUserTags:output_type -> milvus.proto.milvus.GetUserTagsResponse - 214, // 641: milvus.proto.milvus.MilvusService.ListUsersWithTag:output_type -> milvus.proto.milvus.ListUsersWithTagResponse - 298, // 642: milvus.proto.milvus.MilvusService.CreateRowPolicy:output_type -> milvus.proto.common.Status - 298, // 643: milvus.proto.milvus.MilvusService.DropRowPolicy:output_type -> milvus.proto.common.Status - 219, // 644: milvus.proto.milvus.MilvusService.ListRowPolicies:output_type -> milvus.proto.milvus.ListRowPoliciesResponse - 298, // 645: milvus.proto.milvus.MilvusService.UpdateReplicateConfiguration:output_type -> milvus.proto.common.Status - 222, // 646: milvus.proto.milvus.MilvusService.GetReplicateConfiguration:output_type -> milvus.proto.milvus.GetReplicateConfigurationResponse - 224, // 647: milvus.proto.milvus.MilvusService.GetReplicateInfo:output_type -> milvus.proto.milvus.GetReplicateInfoResponse - 228, // 648: milvus.proto.milvus.MilvusService.CreateReplicateStream:output_type -> milvus.proto.milvus.ReplicateResponse - 230, // 649: milvus.proto.milvus.MilvusService.DumpMessages:output_type -> milvus.proto.milvus.DumpMessagesResponse - 234, // 650: milvus.proto.milvus.MilvusService.ComputePhraseMatchSlop:output_type -> milvus.proto.milvus.ComputePhraseMatchSlopResponse - 298, // 651: milvus.proto.milvus.MilvusService.CreateSnapshot:output_type -> milvus.proto.common.Status - 298, // 652: milvus.proto.milvus.MilvusService.DropSnapshot:output_type -> milvus.proto.common.Status - 238, // 653: milvus.proto.milvus.MilvusService.ListSnapshots:output_type -> milvus.proto.milvus.ListSnapshotsResponse - 240, // 654: milvus.proto.milvus.MilvusService.DescribeSnapshot:output_type -> milvus.proto.milvus.DescribeSnapshotResponse - 242, // 655: milvus.proto.milvus.MilvusService.RestoreSnapshot:output_type -> milvus.proto.milvus.RestoreSnapshotResponse - 245, // 656: milvus.proto.milvus.MilvusService.GetRestoreSnapshotState:output_type -> milvus.proto.milvus.GetRestoreSnapshotStateResponse - 247, // 657: milvus.proto.milvus.MilvusService.ListRestoreSnapshotJobs:output_type -> milvus.proto.milvus.ListRestoreSnapshotJobsResponse - 249, // 658: milvus.proto.milvus.MilvusService.PinSnapshotData:output_type -> milvus.proto.milvus.PinSnapshotDataResponse - 298, // 659: milvus.proto.milvus.MilvusService.UnpinSnapshotData:output_type -> milvus.proto.common.Status - 252, // 660: milvus.proto.milvus.MilvusService.AlterCollectionSchema:output_type -> milvus.proto.milvus.AlterCollectionSchemaResponse - 298, // 661: milvus.proto.milvus.MilvusService.BatchUpdateManifest:output_type -> milvus.proto.common.Status - 265, // 662: milvus.proto.milvus.MilvusService.RefreshExternalCollection:output_type -> milvus.proto.milvus.RefreshExternalCollectionResponse - 268, // 663: milvus.proto.milvus.MilvusService.GetRefreshExternalCollectionProgress:output_type -> milvus.proto.milvus.GetRefreshExternalCollectionProgressResponse - 270, // 664: milvus.proto.milvus.MilvusService.ListRefreshExternalCollectionJobs:output_type -> milvus.proto.milvus.ListRefreshExternalCollectionJobsResponse - 256, // 665: milvus.proto.milvus.ClientTelemetryService.ClientHeartbeat:output_type -> milvus.proto.milvus.ClientHeartbeatResponse - 259, // 666: milvus.proto.milvus.ClientTelemetryService.GetClientTelemetry:output_type -> milvus.proto.milvus.GetClientTelemetryResponse - 261, // 667: milvus.proto.milvus.ClientTelemetryService.PushClientCommand:output_type -> milvus.proto.milvus.PushClientCommandResponse - 263, // 668: milvus.proto.milvus.ClientTelemetryService.DeleteClientCommand:output_type -> milvus.proto.milvus.DeleteClientCommandResponse - 97, // 669: milvus.proto.milvus.ProxyService.RegisterLink:output_type -> milvus.proto.milvus.RegisterLinkResponse - 533, // [533:670] is the sub-list for method output_type - 396, // [396:533] is the sub-list for method input_type - 395, // [395:396] is the sub-list for extension type_name - 394, // [394:395] is the sub-list for extension extendee - 0, // [0:394] is the sub-list for field type_name + 312, // 49: milvus.proto.milvus.ShowPartitionsResponse.status:type_name -> milvus.proto.common.Status + 314, // 50: milvus.proto.milvus.NamespaceStats.stats:type_name -> milvus.proto.common.KeyValuePair + 44, // 51: milvus.proto.milvus.NamespaceInfo.stats:type_name -> milvus.proto.milvus.NamespaceStats + 311, // 52: milvus.proto.milvus.CreateNamespaceRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 53: milvus.proto.milvus.CreateNamespaceResponse.status:type_name -> milvus.proto.common.Status + 45, // 54: milvus.proto.milvus.CreateNamespaceResponse.namespace:type_name -> milvus.proto.milvus.NamespaceInfo + 311, // 55: milvus.proto.milvus.DescribeNamespaceRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 56: milvus.proto.milvus.DescribeNamespaceResponse.status:type_name -> milvus.proto.common.Status + 45, // 57: milvus.proto.milvus.DescribeNamespaceResponse.namespace:type_name -> milvus.proto.milvus.NamespaceInfo + 311, // 58: milvus.proto.milvus.ListNamespacesRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 59: milvus.proto.milvus.ListNamespacesResponse.status:type_name -> milvus.proto.common.Status + 45, // 60: milvus.proto.milvus.ListNamespacesResponse.namespaces:type_name -> milvus.proto.milvus.NamespaceInfo + 311, // 61: milvus.proto.milvus.DropNamespaceRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 62: milvus.proto.milvus.DropNamespaceResponse.status:type_name -> milvus.proto.common.Status + 45, // 63: milvus.proto.milvus.DropNamespaceResponse.namespace:type_name -> milvus.proto.milvus.NamespaceInfo + 311, // 64: milvus.proto.milvus.HasNamespaceRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 65: milvus.proto.milvus.HasNamespaceResponse.status:type_name -> milvus.proto.common.Status + 311, // 66: milvus.proto.milvus.GetNamespaceStatsRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 67: milvus.proto.milvus.GetNamespaceStatsResponse.status:type_name -> milvus.proto.common.Status + 44, // 68: milvus.proto.milvus.GetNamespaceStatsResponse.stats:type_name -> milvus.proto.milvus.NamespaceStats + 311, // 69: milvus.proto.milvus.DescribeSegmentRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 70: milvus.proto.milvus.DescribeSegmentResponse.status:type_name -> milvus.proto.common.Status + 311, // 71: milvus.proto.milvus.ShowSegmentsRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 72: milvus.proto.milvus.ShowSegmentsResponse.status:type_name -> milvus.proto.common.Status + 311, // 73: milvus.proto.milvus.CreateIndexRequest.base:type_name -> milvus.proto.common.MsgBase + 314, // 74: milvus.proto.milvus.CreateIndexRequest.extra_params:type_name -> milvus.proto.common.KeyValuePair + 311, // 75: milvus.proto.milvus.AlterIndexRequest.base:type_name -> milvus.proto.common.MsgBase + 314, // 76: milvus.proto.milvus.AlterIndexRequest.extra_params:type_name -> milvus.proto.common.KeyValuePair + 311, // 77: milvus.proto.milvus.DescribeIndexRequest.base:type_name -> milvus.proto.common.MsgBase + 314, // 78: milvus.proto.milvus.IndexDescription.params:type_name -> milvus.proto.common.KeyValuePair + 317, // 79: milvus.proto.milvus.IndexDescription.state:type_name -> milvus.proto.common.IndexState + 312, // 80: milvus.proto.milvus.DescribeIndexResponse.status:type_name -> milvus.proto.common.Status + 65, // 81: milvus.proto.milvus.DescribeIndexResponse.index_descriptions:type_name -> milvus.proto.milvus.IndexDescription + 311, // 82: milvus.proto.milvus.GetIndexBuildProgressRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 83: milvus.proto.milvus.GetIndexBuildProgressResponse.status:type_name -> milvus.proto.common.Status + 311, // 84: milvus.proto.milvus.GetIndexStateRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 85: milvus.proto.milvus.GetIndexStateResponse.status:type_name -> milvus.proto.common.Status + 317, // 86: milvus.proto.milvus.GetIndexStateResponse.state:type_name -> milvus.proto.common.IndexState + 311, // 87: milvus.proto.milvus.DropIndexRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 88: milvus.proto.milvus.InsertRequest.base:type_name -> milvus.proto.common.MsgBase + 318, // 89: milvus.proto.milvus.InsertRequest.fields_data:type_name -> milvus.proto.schema.FieldData + 311, // 90: milvus.proto.milvus.AddCollectionFieldRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 91: milvus.proto.milvus.AddCollectionStructFieldRequest.base:type_name -> milvus.proto.common.MsgBase + 319, // 92: milvus.proto.milvus.AddCollectionStructFieldRequest.struct_array_field_schema:type_name -> milvus.proto.schema.StructArrayFieldSchema + 311, // 93: milvus.proto.milvus.AddCollectionFunctionRequest.base:type_name -> milvus.proto.common.MsgBase + 320, // 94: milvus.proto.milvus.AddCollectionFunctionRequest.functionSchema:type_name -> milvus.proto.schema.FunctionSchema + 311, // 95: milvus.proto.milvus.AlterCollectionFunctionRequest.base:type_name -> milvus.proto.common.MsgBase + 320, // 96: milvus.proto.milvus.AlterCollectionFunctionRequest.functionSchema:type_name -> milvus.proto.schema.FunctionSchema + 311, // 97: milvus.proto.milvus.DropCollectionFunctionRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 98: milvus.proto.milvus.UpsertRequest.base:type_name -> milvus.proto.common.MsgBase + 318, // 99: milvus.proto.milvus.UpsertRequest.fields_data:type_name -> milvus.proto.schema.FieldData + 321, // 100: milvus.proto.milvus.UpsertRequest.field_ops:type_name -> milvus.proto.schema.FieldPartialUpdateOp + 312, // 101: milvus.proto.milvus.MutationResult.status:type_name -> milvus.proto.common.Status + 322, // 102: milvus.proto.milvus.MutationResult.IDs:type_name -> milvus.proto.schema.IDs + 311, // 103: milvus.proto.milvus.DeleteRequest.base:type_name -> milvus.proto.common.MsgBase + 313, // 104: milvus.proto.milvus.DeleteRequest.consistency_level:type_name -> milvus.proto.common.ConsistencyLevel + 287, // 105: milvus.proto.milvus.DeleteRequest.expr_template_values:type_name -> milvus.proto.milvus.DeleteRequest.ExprTemplateValuesEntry + 323, // 106: milvus.proto.milvus.SubSearchRequest.dsl_type:type_name -> milvus.proto.common.DslType + 314, // 107: milvus.proto.milvus.SubSearchRequest.search_params:type_name -> milvus.proto.common.KeyValuePair + 288, // 108: milvus.proto.milvus.SubSearchRequest.expr_template_values:type_name -> milvus.proto.milvus.SubSearchRequest.ExprTemplateValuesEntry + 311, // 109: milvus.proto.milvus.SearchRequest.base:type_name -> milvus.proto.common.MsgBase + 322, // 110: milvus.proto.milvus.SearchRequest.ids:type_name -> milvus.proto.schema.IDs + 323, // 111: milvus.proto.milvus.SearchRequest.dsl_type:type_name -> milvus.proto.common.DslType + 314, // 112: milvus.proto.milvus.SearchRequest.search_params:type_name -> milvus.proto.common.KeyValuePair + 313, // 113: milvus.proto.milvus.SearchRequest.consistency_level:type_name -> milvus.proto.common.ConsistencyLevel + 81, // 114: milvus.proto.milvus.SearchRequest.sub_reqs:type_name -> milvus.proto.milvus.SubSearchRequest + 289, // 115: milvus.proto.milvus.SearchRequest.expr_template_values:type_name -> milvus.proto.milvus.SearchRequest.ExprTemplateValuesEntry + 324, // 116: milvus.proto.milvus.SearchRequest.function_score:type_name -> milvus.proto.schema.FunctionScore + 325, // 117: milvus.proto.milvus.SearchRequest.highlighter:type_name -> milvus.proto.common.Highlighter + 326, // 118: milvus.proto.milvus.SearchRequest.search_aggregation:type_name -> milvus.proto.common.SearchAggregationSpec + 312, // 119: milvus.proto.milvus.SearchResults.status:type_name -> milvus.proto.common.Status + 327, // 120: milvus.proto.milvus.SearchResults.results:type_name -> milvus.proto.schema.SearchResultData + 311, // 121: milvus.proto.milvus.HybridSearchRequest.base:type_name -> milvus.proto.common.MsgBase + 82, // 122: milvus.proto.milvus.HybridSearchRequest.requests:type_name -> milvus.proto.milvus.SearchRequest + 314, // 123: milvus.proto.milvus.HybridSearchRequest.rank_params:type_name -> milvus.proto.common.KeyValuePair + 313, // 124: milvus.proto.milvus.HybridSearchRequest.consistency_level:type_name -> milvus.proto.common.ConsistencyLevel + 324, // 125: milvus.proto.milvus.HybridSearchRequest.function_score:type_name -> milvus.proto.schema.FunctionScore + 311, // 126: milvus.proto.milvus.FlushRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 127: milvus.proto.milvus.FlushResponse.status:type_name -> milvus.proto.common.Status + 290, // 128: milvus.proto.milvus.FlushResponse.coll_segIDs:type_name -> milvus.proto.milvus.FlushResponse.CollSegIDsEntry + 291, // 129: milvus.proto.milvus.FlushResponse.flush_coll_segIDs:type_name -> milvus.proto.milvus.FlushResponse.FlushCollSegIDsEntry + 292, // 130: milvus.proto.milvus.FlushResponse.coll_seal_times:type_name -> milvus.proto.milvus.FlushResponse.CollSealTimesEntry + 293, // 131: milvus.proto.milvus.FlushResponse.coll_flush_ts:type_name -> milvus.proto.milvus.FlushResponse.CollFlushTsEntry + 294, // 132: milvus.proto.milvus.FlushResponse.channel_cps:type_name -> milvus.proto.milvus.FlushResponse.ChannelCpsEntry + 311, // 133: milvus.proto.milvus.QueryRequest.base:type_name -> milvus.proto.common.MsgBase + 314, // 134: milvus.proto.milvus.QueryRequest.query_params:type_name -> milvus.proto.common.KeyValuePair + 313, // 135: milvus.proto.milvus.QueryRequest.consistency_level:type_name -> milvus.proto.common.ConsistencyLevel + 295, // 136: milvus.proto.milvus.QueryRequest.expr_template_values:type_name -> milvus.proto.milvus.QueryRequest.ExprTemplateValuesEntry + 328, // 137: milvus.proto.milvus.ElementIndices.indices:type_name -> milvus.proto.schema.LongArray + 312, // 138: milvus.proto.milvus.QueryResults.status:type_name -> milvus.proto.common.Status + 318, // 139: milvus.proto.milvus.QueryResults.fields_data:type_name -> milvus.proto.schema.FieldData + 89, // 140: milvus.proto.milvus.QueryResults.element_indices:type_name -> milvus.proto.milvus.ElementIndices + 322, // 141: milvus.proto.milvus.VectorIDs.id_array:type_name -> milvus.proto.schema.IDs + 92, // 142: milvus.proto.milvus.VectorsArray.id_array:type_name -> milvus.proto.milvus.VectorIDs + 329, // 143: milvus.proto.milvus.VectorsArray.data_array:type_name -> milvus.proto.schema.VectorField + 311, // 144: milvus.proto.milvus.CalcDistanceRequest.base:type_name -> milvus.proto.common.MsgBase + 93, // 145: milvus.proto.milvus.CalcDistanceRequest.op_left:type_name -> milvus.proto.milvus.VectorsArray + 93, // 146: milvus.proto.milvus.CalcDistanceRequest.op_right:type_name -> milvus.proto.milvus.VectorsArray + 314, // 147: milvus.proto.milvus.CalcDistanceRequest.params:type_name -> milvus.proto.common.KeyValuePair + 312, // 148: milvus.proto.milvus.CalcDistanceResults.status:type_name -> milvus.proto.common.Status + 330, // 149: milvus.proto.milvus.CalcDistanceResults.int_dist:type_name -> milvus.proto.schema.IntArray + 331, // 150: milvus.proto.milvus.CalcDistanceResults.float_dist:type_name -> milvus.proto.schema.FloatArray + 311, // 151: milvus.proto.milvus.FlushAllRequest.base:type_name -> milvus.proto.common.MsgBase + 96, // 152: milvus.proto.milvus.FlushAllRequest.flush_targets:type_name -> milvus.proto.milvus.FlushAllTarget + 312, // 153: milvus.proto.milvus.FlushAllResponse.status:type_name -> milvus.proto.common.Status + 100, // 154: milvus.proto.milvus.FlushAllResponse.flush_results:type_name -> milvus.proto.milvus.FlushAllResult + 296, // 155: milvus.proto.milvus.FlushAllResponse.flush_all_msgs:type_name -> milvus.proto.milvus.FlushAllResponse.FlushAllMsgsEntry + 98, // 156: milvus.proto.milvus.FlushAllResponse.cluster_info:type_name -> milvus.proto.milvus.ClusterInfo + 101, // 157: milvus.proto.milvus.FlushAllResult.collection_results:type_name -> milvus.proto.milvus.FlushCollectionResult + 328, // 158: milvus.proto.milvus.FlushCollectionResult.segment_ids:type_name -> milvus.proto.schema.LongArray + 328, // 159: milvus.proto.milvus.FlushCollectionResult.flush_segment_ids:type_name -> milvus.proto.schema.LongArray + 297, // 160: milvus.proto.milvus.FlushCollectionResult.channel_cps:type_name -> milvus.proto.milvus.FlushCollectionResult.ChannelCpsEntry + 332, // 161: milvus.proto.milvus.PersistentSegmentInfo.state:type_name -> milvus.proto.common.SegmentState + 333, // 162: milvus.proto.milvus.PersistentSegmentInfo.level:type_name -> milvus.proto.common.SegmentLevel + 311, // 163: milvus.proto.milvus.GetPersistentSegmentInfoRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 164: milvus.proto.milvus.GetPersistentSegmentInfoResponse.status:type_name -> milvus.proto.common.Status + 102, // 165: milvus.proto.milvus.GetPersistentSegmentInfoResponse.infos:type_name -> milvus.proto.milvus.PersistentSegmentInfo + 332, // 166: milvus.proto.milvus.QuerySegmentInfo.state:type_name -> milvus.proto.common.SegmentState + 333, // 167: milvus.proto.milvus.QuerySegmentInfo.level:type_name -> milvus.proto.common.SegmentLevel + 311, // 168: milvus.proto.milvus.GetQuerySegmentInfoRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 169: milvus.proto.milvus.GetQuerySegmentInfoResponse.status:type_name -> milvus.proto.common.Status + 105, // 170: milvus.proto.milvus.GetQuerySegmentInfoResponse.infos:type_name -> milvus.proto.milvus.QuerySegmentInfo + 334, // 171: milvus.proto.milvus.RegisterLinkResponse.address:type_name -> milvus.proto.common.Address + 312, // 172: milvus.proto.milvus.RegisterLinkResponse.status:type_name -> milvus.proto.common.Status + 311, // 173: milvus.proto.milvus.GetMetricsRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 174: milvus.proto.milvus.GetMetricsResponse.status:type_name -> milvus.proto.common.Status + 335, // 175: milvus.proto.milvus.ComponentInfo.state_code:type_name -> milvus.proto.common.StateCode + 314, // 176: milvus.proto.milvus.ComponentInfo.extra_info:type_name -> milvus.proto.common.KeyValuePair + 114, // 177: milvus.proto.milvus.ComponentStates.state:type_name -> milvus.proto.milvus.ComponentInfo + 114, // 178: milvus.proto.milvus.ComponentStates.subcomponent_states:type_name -> milvus.proto.milvus.ComponentInfo + 312, // 179: milvus.proto.milvus.ComponentStates.status:type_name -> milvus.proto.common.Status + 311, // 180: milvus.proto.milvus.LoadBalanceRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 181: milvus.proto.milvus.ManualCompactionResponse.status:type_name -> milvus.proto.common.Status + 312, // 182: milvus.proto.milvus.GetCompactionStateResponse.status:type_name -> milvus.proto.common.Status + 336, // 183: milvus.proto.milvus.GetCompactionStateResponse.state:type_name -> milvus.proto.common.CompactionState + 312, // 184: milvus.proto.milvus.GetCompactionPlansResponse.status:type_name -> milvus.proto.common.Status + 336, // 185: milvus.proto.milvus.GetCompactionPlansResponse.state:type_name -> milvus.proto.common.CompactionState + 124, // 186: milvus.proto.milvus.GetCompactionPlansResponse.mergeInfos:type_name -> milvus.proto.milvus.CompactionMergeInfo + 312, // 187: milvus.proto.milvus.GetFlushStateResponse.status:type_name -> milvus.proto.common.Status + 311, // 188: milvus.proto.milvus.GetFlushAllStateRequest.base:type_name -> milvus.proto.common.MsgBase + 96, // 189: milvus.proto.milvus.GetFlushAllStateRequest.flush_targets:type_name -> milvus.proto.milvus.FlushAllTarget + 298, // 190: milvus.proto.milvus.GetFlushAllStateRequest.flush_all_tss:type_name -> milvus.proto.milvus.GetFlushAllStateRequest.FlushAllTssEntry + 312, // 191: milvus.proto.milvus.GetFlushAllStateResponse.status:type_name -> milvus.proto.common.Status + 129, // 192: milvus.proto.milvus.GetFlushAllStateResponse.flush_states:type_name -> milvus.proto.milvus.FlushAllState + 299, // 193: milvus.proto.milvus.FlushAllState.collection_flush_states:type_name -> milvus.proto.milvus.FlushAllState.CollectionFlushStatesEntry + 314, // 194: milvus.proto.milvus.ImportRequest.options:type_name -> milvus.proto.common.KeyValuePair + 312, // 195: milvus.proto.milvus.ImportResponse.status:type_name -> milvus.proto.common.Status + 312, // 196: milvus.proto.milvus.GetImportStateResponse.status:type_name -> milvus.proto.common.Status + 337, // 197: milvus.proto.milvus.GetImportStateResponse.state:type_name -> milvus.proto.common.ImportState + 314, // 198: milvus.proto.milvus.GetImportStateResponse.infos:type_name -> milvus.proto.common.KeyValuePair + 312, // 199: milvus.proto.milvus.ListImportTasksResponse.status:type_name -> milvus.proto.common.Status + 133, // 200: milvus.proto.milvus.ListImportTasksResponse.tasks:type_name -> milvus.proto.milvus.GetImportStateResponse + 311, // 201: milvus.proto.milvus.GetReplicasRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 202: milvus.proto.milvus.GetReplicasResponse.status:type_name -> milvus.proto.common.Status + 138, // 203: milvus.proto.milvus.GetReplicasResponse.replicas:type_name -> milvus.proto.milvus.ReplicaInfo + 139, // 204: milvus.proto.milvus.ReplicaInfo.shard_replicas:type_name -> milvus.proto.milvus.ShardReplica + 300, // 205: milvus.proto.milvus.ReplicaInfo.num_outbound_node:type_name -> milvus.proto.milvus.ReplicaInfo.NumOutboundNodeEntry + 311, // 206: milvus.proto.milvus.CreateCredentialRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 207: milvus.proto.milvus.UpdateCredentialRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 208: milvus.proto.milvus.DeleteCredentialRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 209: milvus.proto.milvus.ListCredUsersResponse.status:type_name -> milvus.proto.common.Status + 311, // 210: milvus.proto.milvus.ListCredUsersRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 211: milvus.proto.milvus.CreateRoleRequest.base:type_name -> milvus.proto.common.MsgBase + 145, // 212: milvus.proto.milvus.CreateRoleRequest.entity:type_name -> milvus.proto.milvus.RoleEntity + 311, // 213: milvus.proto.milvus.DropRoleRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 214: milvus.proto.milvus.CreatePrivilegeGroupRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 215: milvus.proto.milvus.DropPrivilegeGroupRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 216: milvus.proto.milvus.ListPrivilegeGroupsRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 217: milvus.proto.milvus.ListPrivilegeGroupsResponse.status:type_name -> milvus.proto.common.Status + 155, // 218: milvus.proto.milvus.ListPrivilegeGroupsResponse.privilege_groups:type_name -> milvus.proto.milvus.PrivilegeGroupInfo + 311, // 219: milvus.proto.milvus.OperatePrivilegeGroupRequest.base:type_name -> milvus.proto.common.MsgBase + 163, // 220: milvus.proto.milvus.OperatePrivilegeGroupRequest.privileges:type_name -> milvus.proto.milvus.PrivilegeEntity + 1, // 221: milvus.proto.milvus.OperatePrivilegeGroupRequest.type:type_name -> milvus.proto.milvus.OperatePrivilegeGroupType + 311, // 222: milvus.proto.milvus.OperateUserRoleRequest.base:type_name -> milvus.proto.common.MsgBase + 2, // 223: milvus.proto.milvus.OperateUserRoleRequest.type:type_name -> milvus.proto.milvus.OperateUserRoleType + 163, // 224: milvus.proto.milvus.PrivilegeGroupInfo.privileges:type_name -> milvus.proto.milvus.PrivilegeEntity + 311, // 225: milvus.proto.milvus.SelectRoleRequest.base:type_name -> milvus.proto.common.MsgBase + 145, // 226: milvus.proto.milvus.SelectRoleRequest.role:type_name -> milvus.proto.milvus.RoleEntity + 145, // 227: milvus.proto.milvus.RoleResult.role:type_name -> milvus.proto.milvus.RoleEntity + 146, // 228: milvus.proto.milvus.RoleResult.users:type_name -> milvus.proto.milvus.UserEntity + 312, // 229: milvus.proto.milvus.SelectRoleResponse.status:type_name -> milvus.proto.common.Status + 157, // 230: milvus.proto.milvus.SelectRoleResponse.results:type_name -> milvus.proto.milvus.RoleResult + 311, // 231: milvus.proto.milvus.SelectUserRequest.base:type_name -> milvus.proto.common.MsgBase + 146, // 232: milvus.proto.milvus.SelectUserRequest.user:type_name -> milvus.proto.milvus.UserEntity + 146, // 233: milvus.proto.milvus.UserResult.user:type_name -> milvus.proto.milvus.UserEntity + 145, // 234: milvus.proto.milvus.UserResult.roles:type_name -> milvus.proto.milvus.RoleEntity + 312, // 235: milvus.proto.milvus.SelectUserResponse.status:type_name -> milvus.proto.common.Status + 160, // 236: milvus.proto.milvus.SelectUserResponse.results:type_name -> milvus.proto.milvus.UserResult + 146, // 237: milvus.proto.milvus.GrantorEntity.user:type_name -> milvus.proto.milvus.UserEntity + 163, // 238: milvus.proto.milvus.GrantorEntity.privilege:type_name -> milvus.proto.milvus.PrivilegeEntity + 164, // 239: milvus.proto.milvus.GrantPrivilegeEntity.entities:type_name -> milvus.proto.milvus.GrantorEntity + 145, // 240: milvus.proto.milvus.GrantEntity.role:type_name -> milvus.proto.milvus.RoleEntity + 162, // 241: milvus.proto.milvus.GrantEntity.object:type_name -> milvus.proto.milvus.ObjectEntity + 164, // 242: milvus.proto.milvus.GrantEntity.grantor:type_name -> milvus.proto.milvus.GrantorEntity + 311, // 243: milvus.proto.milvus.SelectGrantRequest.base:type_name -> milvus.proto.common.MsgBase + 166, // 244: milvus.proto.milvus.SelectGrantRequest.entity:type_name -> milvus.proto.milvus.GrantEntity + 312, // 245: milvus.proto.milvus.SelectGrantResponse.status:type_name -> milvus.proto.common.Status + 166, // 246: milvus.proto.milvus.SelectGrantResponse.entities:type_name -> milvus.proto.milvus.GrantEntity + 311, // 247: milvus.proto.milvus.OperatePrivilegeRequest.base:type_name -> milvus.proto.common.MsgBase + 166, // 248: milvus.proto.milvus.OperatePrivilegeRequest.entity:type_name -> milvus.proto.milvus.GrantEntity + 4, // 249: milvus.proto.milvus.OperatePrivilegeRequest.type:type_name -> milvus.proto.milvus.OperatePrivilegeType + 311, // 250: milvus.proto.milvus.OperatePrivilegeV2Request.base:type_name -> milvus.proto.common.MsgBase + 145, // 251: milvus.proto.milvus.OperatePrivilegeV2Request.role:type_name -> milvus.proto.milvus.RoleEntity + 164, // 252: milvus.proto.milvus.OperatePrivilegeV2Request.grantor:type_name -> milvus.proto.milvus.GrantorEntity + 4, // 253: milvus.proto.milvus.OperatePrivilegeV2Request.type:type_name -> milvus.proto.milvus.OperatePrivilegeType + 145, // 254: milvus.proto.milvus.UserInfo.roles:type_name -> milvus.proto.milvus.RoleEntity + 171, // 255: milvus.proto.milvus.RBACMeta.users:type_name -> milvus.proto.milvus.UserInfo + 145, // 256: milvus.proto.milvus.RBACMeta.roles:type_name -> milvus.proto.milvus.RoleEntity + 166, // 257: milvus.proto.milvus.RBACMeta.grants:type_name -> milvus.proto.milvus.GrantEntity + 155, // 258: milvus.proto.milvus.RBACMeta.privilege_groups:type_name -> milvus.proto.milvus.PrivilegeGroupInfo + 311, // 259: milvus.proto.milvus.BackupRBACMetaRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 260: milvus.proto.milvus.BackupRBACMetaResponse.status:type_name -> milvus.proto.common.Status + 172, // 261: milvus.proto.milvus.BackupRBACMetaResponse.RBAC_meta:type_name -> milvus.proto.milvus.RBACMeta + 311, // 262: milvus.proto.milvus.RestoreRBACMetaRequest.base:type_name -> milvus.proto.common.MsgBase + 172, // 263: milvus.proto.milvus.RestoreRBACMetaRequest.RBAC_meta:type_name -> milvus.proto.milvus.RBACMeta + 311, // 264: milvus.proto.milvus.GetLoadingProgressRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 265: milvus.proto.milvus.GetLoadingProgressResponse.status:type_name -> milvus.proto.common.Status + 311, // 266: milvus.proto.milvus.GetLoadStateRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 267: milvus.proto.milvus.GetLoadStateResponse.status:type_name -> milvus.proto.common.Status + 338, // 268: milvus.proto.milvus.GetLoadStateResponse.state:type_name -> milvus.proto.common.LoadState + 312, // 269: milvus.proto.milvus.GetVersionResponse.status:type_name -> milvus.proto.common.Status + 312, // 270: milvus.proto.milvus.CheckHealthResponse.status:type_name -> milvus.proto.common.Status + 5, // 271: milvus.proto.milvus.CheckHealthResponse.quota_states:type_name -> milvus.proto.milvus.QuotaState + 311, // 272: milvus.proto.milvus.CreateResourceGroupRequest.base:type_name -> milvus.proto.common.MsgBase + 339, // 273: milvus.proto.milvus.CreateResourceGroupRequest.config:type_name -> milvus.proto.rg.ResourceGroupConfig + 311, // 274: milvus.proto.milvus.UpdateResourceGroupsRequest.base:type_name -> milvus.proto.common.MsgBase + 301, // 275: milvus.proto.milvus.UpdateResourceGroupsRequest.resource_groups:type_name -> milvus.proto.milvus.UpdateResourceGroupsRequest.ResourceGroupsEntry + 311, // 276: milvus.proto.milvus.DropResourceGroupRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 277: milvus.proto.milvus.TransferNodeRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 278: milvus.proto.milvus.TransferReplicaRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 279: milvus.proto.milvus.ListResourceGroupsRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 280: milvus.proto.milvus.ListResourceGroupsResponse.status:type_name -> milvus.proto.common.Status + 311, // 281: milvus.proto.milvus.DescribeResourceGroupRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 282: milvus.proto.milvus.DescribeResourceGroupResponse.status:type_name -> milvus.proto.common.Status + 194, // 283: milvus.proto.milvus.DescribeResourceGroupResponse.resource_group:type_name -> milvus.proto.milvus.ResourceGroup + 302, // 284: milvus.proto.milvus.ResourceGroup.num_loaded_replica:type_name -> milvus.proto.milvus.ResourceGroup.NumLoadedReplicaEntry + 303, // 285: milvus.proto.milvus.ResourceGroup.num_outgoing_node:type_name -> milvus.proto.milvus.ResourceGroup.NumOutgoingNodeEntry + 304, // 286: milvus.proto.milvus.ResourceGroup.num_incoming_node:type_name -> milvus.proto.milvus.ResourceGroup.NumIncomingNodeEntry + 339, // 287: milvus.proto.milvus.ResourceGroup.config:type_name -> milvus.proto.rg.ResourceGroupConfig + 340, // 288: milvus.proto.milvus.ResourceGroup.nodes:type_name -> milvus.proto.common.NodeInfo + 311, // 289: milvus.proto.milvus.RenameCollectionRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 290: milvus.proto.milvus.GetIndexStatisticsRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 291: milvus.proto.milvus.GetIndexStatisticsResponse.status:type_name -> milvus.proto.common.Status + 65, // 292: milvus.proto.milvus.GetIndexStatisticsResponse.index_descriptions:type_name -> milvus.proto.milvus.IndexDescription + 311, // 293: milvus.proto.milvus.ConnectRequest.base:type_name -> milvus.proto.common.MsgBase + 341, // 294: milvus.proto.milvus.ConnectRequest.client_info:type_name -> milvus.proto.common.ClientInfo + 312, // 295: milvus.proto.milvus.ConnectResponse.status:type_name -> milvus.proto.common.Status + 342, // 296: milvus.proto.milvus.ConnectResponse.server_info:type_name -> milvus.proto.common.ServerInfo + 311, // 297: milvus.proto.milvus.AllocTimestampRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 298: milvus.proto.milvus.AllocTimestampResponse.status:type_name -> milvus.proto.common.Status + 311, // 299: milvus.proto.milvus.CreateDatabaseRequest.base:type_name -> milvus.proto.common.MsgBase + 314, // 300: milvus.proto.milvus.CreateDatabaseRequest.properties:type_name -> milvus.proto.common.KeyValuePair + 311, // 301: milvus.proto.milvus.DropDatabaseRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 302: milvus.proto.milvus.ListDatabasesRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 303: milvus.proto.milvus.ListDatabasesResponse.status:type_name -> milvus.proto.common.Status + 311, // 304: milvus.proto.milvus.AlterDatabaseRequest.base:type_name -> milvus.proto.common.MsgBase + 314, // 305: milvus.proto.milvus.AlterDatabaseRequest.properties:type_name -> milvus.proto.common.KeyValuePair + 311, // 306: milvus.proto.milvus.DescribeDatabaseRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 307: milvus.proto.milvus.DescribeDatabaseResponse.status:type_name -> milvus.proto.common.Status + 314, // 308: milvus.proto.milvus.DescribeDatabaseResponse.properties:type_name -> milvus.proto.common.KeyValuePair + 311, // 309: milvus.proto.milvus.ReplicateMessageRequest.base:type_name -> milvus.proto.common.MsgBase + 343, // 310: milvus.proto.milvus.ReplicateMessageRequest.StartPositions:type_name -> milvus.proto.msg.MsgPosition + 343, // 311: milvus.proto.milvus.ReplicateMessageRequest.EndPositions:type_name -> milvus.proto.msg.MsgPosition + 312, // 312: milvus.proto.milvus.ReplicateMessageResponse.status:type_name -> milvus.proto.common.Status + 311, // 313: milvus.proto.milvus.RunAnalyzerRequest.base:type_name -> milvus.proto.common.MsgBase + 215, // 314: milvus.proto.milvus.AnalyzerResult.tokens:type_name -> milvus.proto.milvus.AnalyzerToken + 312, // 315: milvus.proto.milvus.RunAnalyzerResponse.status:type_name -> milvus.proto.common.Status + 216, // 316: milvus.proto.milvus.RunAnalyzerResponse.results:type_name -> milvus.proto.milvus.AnalyzerResult + 311, // 317: milvus.proto.milvus.AddFileResourceRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 318: milvus.proto.milvus.RemoveFileResourceRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 319: milvus.proto.milvus.ListFileResourcesRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 320: milvus.proto.milvus.ListFileResourcesResponse.status:type_name -> milvus.proto.common.Status + 218, // 321: milvus.proto.milvus.ListFileResourcesResponse.resources:type_name -> milvus.proto.milvus.FileResourceInfo + 311, // 322: milvus.proto.milvus.AddUserTagsRequest.base:type_name -> milvus.proto.common.MsgBase + 305, // 323: milvus.proto.milvus.AddUserTagsRequest.tags:type_name -> milvus.proto.milvus.AddUserTagsRequest.TagsEntry + 311, // 324: milvus.proto.milvus.DeleteUserTagsRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 325: milvus.proto.milvus.GetUserTagsRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 326: milvus.proto.milvus.GetUserTagsResponse.status:type_name -> milvus.proto.common.Status + 306, // 327: milvus.proto.milvus.GetUserTagsResponse.tags:type_name -> milvus.proto.milvus.GetUserTagsResponse.TagsEntry + 311, // 328: milvus.proto.milvus.ListUsersWithTagRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 329: milvus.proto.milvus.ListUsersWithTagResponse.status:type_name -> milvus.proto.common.Status + 311, // 330: milvus.proto.milvus.CreateRowPolicyRequest.base:type_name -> milvus.proto.common.MsgBase + 6, // 331: milvus.proto.milvus.CreateRowPolicyRequest.actions:type_name -> milvus.proto.milvus.RowPolicyAction + 311, // 332: milvus.proto.milvus.DropRowPolicyRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 333: milvus.proto.milvus.ListRowPoliciesRequest.base:type_name -> milvus.proto.common.MsgBase + 6, // 334: milvus.proto.milvus.RowPolicy.actions:type_name -> milvus.proto.milvus.RowPolicyAction + 312, // 335: milvus.proto.milvus.ListRowPoliciesResponse.status:type_name -> milvus.proto.common.Status + 232, // 336: milvus.proto.milvus.ListRowPoliciesResponse.policies:type_name -> milvus.proto.milvus.RowPolicy + 344, // 337: milvus.proto.milvus.UpdateReplicateConfigurationRequest.replicate_configuration:type_name -> milvus.proto.common.ReplicateConfiguration + 312, // 338: milvus.proto.milvus.GetReplicateConfigurationResponse.status:type_name -> milvus.proto.common.Status + 344, // 339: milvus.proto.milvus.GetReplicateConfigurationResponse.configuration:type_name -> milvus.proto.common.ReplicateConfiguration + 345, // 340: milvus.proto.milvus.GetReplicateInfoResponse.checkpoint:type_name -> milvus.proto.common.ReplicateCheckpoint + 345, // 341: milvus.proto.milvus.GetReplicateInfoResponse.salvage_checkpoint:type_name -> milvus.proto.common.ReplicateCheckpoint + 346, // 342: milvus.proto.milvus.ReplicateMessage.message:type_name -> milvus.proto.common.ImmutableMessage + 239, // 343: milvus.proto.milvus.ReplicateRequest.replicate_message:type_name -> milvus.proto.milvus.ReplicateMessage + 241, // 344: milvus.proto.milvus.ReplicateResponse.replicate_confirmed_message_info:type_name -> milvus.proto.milvus.ReplicateConfirmedMessageInfo + 347, // 345: milvus.proto.milvus.DumpMessagesRequest.start_message_id:type_name -> milvus.proto.common.MessageID + 312, // 346: milvus.proto.milvus.DumpMessagesResponse.status:type_name -> milvus.proto.common.Status + 346, // 347: milvus.proto.milvus.DumpMessagesResponse.message:type_name -> milvus.proto.common.ImmutableMessage + 311, // 348: milvus.proto.milvus.TruncateCollectionRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 349: milvus.proto.milvus.TruncateCollectionResponse.status:type_name -> milvus.proto.common.Status + 311, // 350: milvus.proto.milvus.ComputePhraseMatchSlopRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 351: milvus.proto.milvus.ComputePhraseMatchSlopResponse.status:type_name -> milvus.proto.common.Status + 311, // 352: milvus.proto.milvus.CreateSnapshotRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 353: milvus.proto.milvus.DropSnapshotRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 354: milvus.proto.milvus.ListSnapshotsRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 355: milvus.proto.milvus.ListSnapshotsResponse.status:type_name -> milvus.proto.common.Status + 311, // 356: milvus.proto.milvus.DescribeSnapshotRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 357: milvus.proto.milvus.DescribeSnapshotResponse.status:type_name -> milvus.proto.common.Status + 311, // 358: milvus.proto.milvus.RestoreSnapshotRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 359: milvus.proto.milvus.RestoreSnapshotResponse.status:type_name -> milvus.proto.common.Status + 7, // 360: milvus.proto.milvus.RestoreSnapshotInfo.state:type_name -> milvus.proto.milvus.RestoreSnapshotState + 311, // 361: milvus.proto.milvus.GetRestoreSnapshotStateRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 362: milvus.proto.milvus.GetRestoreSnapshotStateResponse.status:type_name -> milvus.proto.common.Status + 257, // 363: milvus.proto.milvus.GetRestoreSnapshotStateResponse.info:type_name -> milvus.proto.milvus.RestoreSnapshotInfo + 311, // 364: milvus.proto.milvus.ListRestoreSnapshotJobsRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 365: milvus.proto.milvus.ListRestoreSnapshotJobsResponse.status:type_name -> milvus.proto.common.Status + 257, // 366: milvus.proto.milvus.ListRestoreSnapshotJobsResponse.jobs:type_name -> milvus.proto.milvus.RestoreSnapshotInfo + 311, // 367: milvus.proto.milvus.PinSnapshotDataRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 368: milvus.proto.milvus.PinSnapshotDataResponse.status:type_name -> milvus.proto.common.Status + 311, // 369: milvus.proto.milvus.UnpinSnapshotDataRequest.base:type_name -> milvus.proto.common.MsgBase + 311, // 370: milvus.proto.milvus.AlterCollectionSchemaRequest.base:type_name -> milvus.proto.common.MsgBase + 310, // 371: milvus.proto.milvus.AlterCollectionSchemaRequest.action:type_name -> milvus.proto.milvus.AlterCollectionSchemaRequest.Action + 312, // 372: milvus.proto.milvus.AlterCollectionSchemaResponse.alter_status:type_name -> milvus.proto.common.Status + 312, // 373: milvus.proto.milvus.AlterCollectionSchemaResponse.index_status:type_name -> milvus.proto.common.Status + 311, // 374: milvus.proto.milvus.BatchUpdateManifestRequest.base:type_name -> milvus.proto.common.MsgBase + 268, // 375: milvus.proto.milvus.BatchUpdateManifestRequest.items:type_name -> milvus.proto.milvus.BatchUpdateManifestItem + 341, // 376: milvus.proto.milvus.ClientHeartbeatRequest.client_info:type_name -> milvus.proto.common.ClientInfo + 348, // 377: milvus.proto.milvus.ClientHeartbeatRequest.metrics:type_name -> milvus.proto.common.OperationMetrics + 349, // 378: milvus.proto.milvus.ClientHeartbeatRequest.command_replies:type_name -> milvus.proto.common.CommandReply + 312, // 379: milvus.proto.milvus.ClientHeartbeatResponse.status:type_name -> milvus.proto.common.Status + 350, // 380: milvus.proto.milvus.ClientHeartbeatResponse.commands:type_name -> milvus.proto.common.ClientCommand + 341, // 381: milvus.proto.milvus.ClientTelemetry.client_info:type_name -> milvus.proto.common.ClientInfo + 348, // 382: milvus.proto.milvus.ClientTelemetry.metrics:type_name -> milvus.proto.common.OperationMetrics + 312, // 383: milvus.proto.milvus.GetClientTelemetryResponse.status:type_name -> milvus.proto.common.Status + 272, // 384: milvus.proto.milvus.GetClientTelemetryResponse.clients:type_name -> milvus.proto.milvus.ClientTelemetry + 351, // 385: milvus.proto.milvus.GetClientTelemetryResponse.aggregated:type_name -> milvus.proto.common.Metrics + 312, // 386: milvus.proto.milvus.PushClientCommandResponse.status:type_name -> milvus.proto.common.Status + 312, // 387: milvus.proto.milvus.DeleteClientCommandResponse.status:type_name -> milvus.proto.common.Status + 311, // 388: milvus.proto.milvus.RefreshExternalCollectionRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 389: milvus.proto.milvus.RefreshExternalCollectionResponse.status:type_name -> milvus.proto.common.Status + 311, // 390: milvus.proto.milvus.GetRefreshExternalCollectionProgressRequest.base:type_name -> milvus.proto.common.MsgBase + 8, // 391: milvus.proto.milvus.RefreshExternalCollectionJobInfo.state:type_name -> milvus.proto.milvus.RefreshExternalCollectionState + 312, // 392: milvus.proto.milvus.GetRefreshExternalCollectionProgressResponse.status:type_name -> milvus.proto.common.Status + 281, // 393: milvus.proto.milvus.GetRefreshExternalCollectionProgressResponse.job_info:type_name -> milvus.proto.milvus.RefreshExternalCollectionJobInfo + 311, // 394: milvus.proto.milvus.ListRefreshExternalCollectionJobsRequest.base:type_name -> milvus.proto.common.MsgBase + 312, // 395: milvus.proto.milvus.ListRefreshExternalCollectionJobsResponse.status:type_name -> milvus.proto.common.Status + 281, // 396: milvus.proto.milvus.ListRefreshExternalCollectionJobsResponse.jobs:type_name -> milvus.proto.milvus.RefreshExternalCollectionJobInfo + 352, // 397: milvus.proto.milvus.DeleteRequest.ExprTemplateValuesEntry.value:type_name -> milvus.proto.schema.TemplateValue + 352, // 398: milvus.proto.milvus.SubSearchRequest.ExprTemplateValuesEntry.value:type_name -> milvus.proto.schema.TemplateValue + 352, // 399: milvus.proto.milvus.SearchRequest.ExprTemplateValuesEntry.value:type_name -> milvus.proto.schema.TemplateValue + 328, // 400: milvus.proto.milvus.FlushResponse.CollSegIDsEntry.value:type_name -> milvus.proto.schema.LongArray + 328, // 401: milvus.proto.milvus.FlushResponse.FlushCollSegIDsEntry.value:type_name -> milvus.proto.schema.LongArray + 343, // 402: milvus.proto.milvus.FlushResponse.ChannelCpsEntry.value:type_name -> milvus.proto.msg.MsgPosition + 352, // 403: milvus.proto.milvus.QueryRequest.ExprTemplateValuesEntry.value:type_name -> milvus.proto.schema.TemplateValue + 346, // 404: milvus.proto.milvus.FlushAllResponse.FlushAllMsgsEntry.value:type_name -> milvus.proto.common.ImmutableMessage + 343, // 405: milvus.proto.milvus.FlushCollectionResult.ChannelCpsEntry.value:type_name -> milvus.proto.msg.MsgPosition + 339, // 406: milvus.proto.milvus.UpdateResourceGroupsRequest.ResourceGroupsEntry.value:type_name -> milvus.proto.rg.ResourceGroupConfig + 353, // 407: milvus.proto.milvus.AlterCollectionSchemaRequest.FieldInfo.field_schema:type_name -> milvus.proto.schema.FieldSchema + 314, // 408: milvus.proto.milvus.AlterCollectionSchemaRequest.FieldInfo.extra_params:type_name -> milvus.proto.common.KeyValuePair + 307, // 409: milvus.proto.milvus.AlterCollectionSchemaRequest.AddRequest.field_infos:type_name -> milvus.proto.milvus.AlterCollectionSchemaRequest.FieldInfo + 320, // 410: milvus.proto.milvus.AlterCollectionSchemaRequest.AddRequest.func_schema:type_name -> milvus.proto.schema.FunctionSchema + 308, // 411: milvus.proto.milvus.AlterCollectionSchemaRequest.Action.add_request:type_name -> milvus.proto.milvus.AlterCollectionSchemaRequest.AddRequest + 309, // 412: milvus.proto.milvus.AlterCollectionSchemaRequest.Action.drop_request:type_name -> milvus.proto.milvus.AlterCollectionSchemaRequest.DropRequest + 354, // 413: milvus.proto.milvus.milvus_ext_obj:extendee -> google.protobuf.FileOptions + 180, // 414: milvus.proto.milvus.milvus_ext_obj:type_name -> milvus.proto.milvus.MilvusExt + 16, // 415: milvus.proto.milvus.MilvusService.CreateCollection:input_type -> milvus.proto.milvus.CreateCollectionRequest + 17, // 416: milvus.proto.milvus.MilvusService.DropCollection:input_type -> milvus.proto.milvus.DropCollectionRequest + 20, // 417: milvus.proto.milvus.MilvusService.HasCollection:input_type -> milvus.proto.milvus.HasCollectionRequest + 27, // 418: milvus.proto.milvus.MilvusService.LoadCollection:input_type -> milvus.proto.milvus.LoadCollectionRequest + 28, // 419: milvus.proto.milvus.MilvusService.ReleaseCollection:input_type -> milvus.proto.milvus.ReleaseCollectionRequest + 23, // 420: milvus.proto.milvus.MilvusService.DescribeCollection:input_type -> milvus.proto.milvus.DescribeCollectionRequest + 25, // 421: milvus.proto.milvus.MilvusService.BatchDescribeCollection:input_type -> milvus.proto.milvus.BatchDescribeCollectionRequest + 31, // 422: milvus.proto.milvus.MilvusService.GetCollectionStatistics:input_type -> milvus.proto.milvus.GetCollectionStatisticsRequest + 33, // 423: milvus.proto.milvus.MilvusService.ShowCollections:input_type -> milvus.proto.milvus.ShowCollectionsRequest + 18, // 424: milvus.proto.milvus.MilvusService.AlterCollection:input_type -> milvus.proto.milvus.AlterCollectionRequest + 19, // 425: milvus.proto.milvus.MilvusService.AlterCollectionField:input_type -> milvus.proto.milvus.AlterCollectionFieldRequest + 75, // 426: milvus.proto.milvus.MilvusService.AddCollectionFunction:input_type -> milvus.proto.milvus.AddCollectionFunctionRequest + 76, // 427: milvus.proto.milvus.MilvusService.AlterCollectionFunction:input_type -> milvus.proto.milvus.AlterCollectionFunctionRequest + 77, // 428: milvus.proto.milvus.MilvusService.DropCollectionFunction:input_type -> milvus.proto.milvus.DropCollectionFunctionRequest + 245, // 429: milvus.proto.milvus.MilvusService.TruncateCollection:input_type -> milvus.proto.milvus.TruncateCollectionRequest + 35, // 430: milvus.proto.milvus.MilvusService.CreatePartition:input_type -> milvus.proto.milvus.CreatePartitionRequest + 36, // 431: milvus.proto.milvus.MilvusService.DropPartition:input_type -> milvus.proto.milvus.DropPartitionRequest + 37, // 432: milvus.proto.milvus.MilvusService.HasPartition:input_type -> milvus.proto.milvus.HasPartitionRequest + 38, // 433: milvus.proto.milvus.MilvusService.LoadPartitions:input_type -> milvus.proto.milvus.LoadPartitionsRequest + 39, // 434: milvus.proto.milvus.MilvusService.ReleasePartitions:input_type -> milvus.proto.milvus.ReleasePartitionsRequest + 40, // 435: milvus.proto.milvus.MilvusService.GetPartitionStatistics:input_type -> milvus.proto.milvus.GetPartitionStatisticsRequest + 42, // 436: milvus.proto.milvus.MilvusService.ShowPartitions:input_type -> milvus.proto.milvus.ShowPartitionsRequest + 46, // 437: milvus.proto.milvus.MilvusService.CreateNamespace:input_type -> milvus.proto.milvus.CreateNamespaceRequest + 48, // 438: milvus.proto.milvus.MilvusService.DescribeNamespace:input_type -> milvus.proto.milvus.DescribeNamespaceRequest + 50, // 439: milvus.proto.milvus.MilvusService.ListNamespaces:input_type -> milvus.proto.milvus.ListNamespacesRequest + 52, // 440: milvus.proto.milvus.MilvusService.DropNamespace:input_type -> milvus.proto.milvus.DropNamespaceRequest + 54, // 441: milvus.proto.milvus.MilvusService.HasNamespace:input_type -> milvus.proto.milvus.HasNamespaceRequest + 56, // 442: milvus.proto.milvus.MilvusService.GetNamespaceStats:input_type -> milvus.proto.milvus.GetNamespaceStatsRequest + 176, // 443: milvus.proto.milvus.MilvusService.GetLoadingProgress:input_type -> milvus.proto.milvus.GetLoadingProgressRequest + 178, // 444: milvus.proto.milvus.MilvusService.GetLoadState:input_type -> milvus.proto.milvus.GetLoadStateRequest + 9, // 445: milvus.proto.milvus.MilvusService.CreateAlias:input_type -> milvus.proto.milvus.CreateAliasRequest + 10, // 446: milvus.proto.milvus.MilvusService.DropAlias:input_type -> milvus.proto.milvus.DropAliasRequest + 11, // 447: milvus.proto.milvus.MilvusService.AlterAlias:input_type -> milvus.proto.milvus.AlterAliasRequest + 12, // 448: milvus.proto.milvus.MilvusService.DescribeAlias:input_type -> milvus.proto.milvus.DescribeAliasRequest + 14, // 449: milvus.proto.milvus.MilvusService.ListAliases:input_type -> milvus.proto.milvus.ListAliasesRequest + 62, // 450: milvus.proto.milvus.MilvusService.CreateIndex:input_type -> milvus.proto.milvus.CreateIndexRequest + 63, // 451: milvus.proto.milvus.MilvusService.AlterIndex:input_type -> milvus.proto.milvus.AlterIndexRequest + 64, // 452: milvus.proto.milvus.MilvusService.DescribeIndex:input_type -> milvus.proto.milvus.DescribeIndexRequest + 196, // 453: milvus.proto.milvus.MilvusService.GetIndexStatistics:input_type -> milvus.proto.milvus.GetIndexStatisticsRequest + 69, // 454: milvus.proto.milvus.MilvusService.GetIndexState:input_type -> milvus.proto.milvus.GetIndexStateRequest + 67, // 455: milvus.proto.milvus.MilvusService.GetIndexBuildProgress:input_type -> milvus.proto.milvus.GetIndexBuildProgressRequest + 71, // 456: milvus.proto.milvus.MilvusService.DropIndex:input_type -> milvus.proto.milvus.DropIndexRequest + 72, // 457: milvus.proto.milvus.MilvusService.Insert:input_type -> milvus.proto.milvus.InsertRequest + 80, // 458: milvus.proto.milvus.MilvusService.Delete:input_type -> milvus.proto.milvus.DeleteRequest + 78, // 459: milvus.proto.milvus.MilvusService.Upsert:input_type -> milvus.proto.milvus.UpsertRequest + 82, // 460: milvus.proto.milvus.MilvusService.Search:input_type -> milvus.proto.milvus.SearchRequest + 85, // 461: milvus.proto.milvus.MilvusService.HybridSearch:input_type -> milvus.proto.milvus.HybridSearchRequest + 86, // 462: milvus.proto.milvus.MilvusService.Flush:input_type -> milvus.proto.milvus.FlushRequest + 88, // 463: milvus.proto.milvus.MilvusService.Query:input_type -> milvus.proto.milvus.QueryRequest + 94, // 464: milvus.proto.milvus.MilvusService.CalcDistance:input_type -> milvus.proto.milvus.CalcDistanceRequest + 97, // 465: milvus.proto.milvus.MilvusService.FlushAll:input_type -> milvus.proto.milvus.FlushAllRequest + 73, // 466: milvus.proto.milvus.MilvusService.AddCollectionField:input_type -> milvus.proto.milvus.AddCollectionFieldRequest + 74, // 467: milvus.proto.milvus.MilvusService.AddCollectionStructField:input_type -> milvus.proto.milvus.AddCollectionStructFieldRequest + 125, // 468: milvus.proto.milvus.MilvusService.GetFlushState:input_type -> milvus.proto.milvus.GetFlushStateRequest + 127, // 469: milvus.proto.milvus.MilvusService.GetFlushAllState:input_type -> milvus.proto.milvus.GetFlushAllStateRequest + 103, // 470: milvus.proto.milvus.MilvusService.GetPersistentSegmentInfo:input_type -> milvus.proto.milvus.GetPersistentSegmentInfoRequest + 106, // 471: milvus.proto.milvus.MilvusService.GetQuerySegmentInfo:input_type -> milvus.proto.milvus.GetQuerySegmentInfoRequest + 136, // 472: milvus.proto.milvus.MilvusService.GetReplicas:input_type -> milvus.proto.milvus.GetReplicasRequest + 108, // 473: milvus.proto.milvus.MilvusService.Dummy:input_type -> milvus.proto.milvus.DummyRequest + 110, // 474: milvus.proto.milvus.MilvusService.RegisterLink:input_type -> milvus.proto.milvus.RegisterLinkRequest + 112, // 475: milvus.proto.milvus.MilvusService.GetMetrics:input_type -> milvus.proto.milvus.GetMetricsRequest + 116, // 476: milvus.proto.milvus.MilvusService.GetComponentStates:input_type -> milvus.proto.milvus.GetComponentStatesRequest + 117, // 477: milvus.proto.milvus.MilvusService.LoadBalance:input_type -> milvus.proto.milvus.LoadBalanceRequest + 120, // 478: milvus.proto.milvus.MilvusService.GetCompactionState:input_type -> milvus.proto.milvus.GetCompactionStateRequest + 118, // 479: milvus.proto.milvus.MilvusService.ManualCompaction:input_type -> milvus.proto.milvus.ManualCompactionRequest + 122, // 480: milvus.proto.milvus.MilvusService.GetCompactionStateWithPlans:input_type -> milvus.proto.milvus.GetCompactionPlansRequest + 130, // 481: milvus.proto.milvus.MilvusService.Import:input_type -> milvus.proto.milvus.ImportRequest + 132, // 482: milvus.proto.milvus.MilvusService.GetImportState:input_type -> milvus.proto.milvus.GetImportStateRequest + 134, // 483: milvus.proto.milvus.MilvusService.ListImportTasks:input_type -> milvus.proto.milvus.ListImportTasksRequest + 140, // 484: milvus.proto.milvus.MilvusService.CreateCredential:input_type -> milvus.proto.milvus.CreateCredentialRequest + 141, // 485: milvus.proto.milvus.MilvusService.UpdateCredential:input_type -> milvus.proto.milvus.UpdateCredentialRequest + 142, // 486: milvus.proto.milvus.MilvusService.DeleteCredential:input_type -> milvus.proto.milvus.DeleteCredentialRequest + 144, // 487: milvus.proto.milvus.MilvusService.ListCredUsers:input_type -> milvus.proto.milvus.ListCredUsersRequest + 147, // 488: milvus.proto.milvus.MilvusService.CreateRole:input_type -> milvus.proto.milvus.CreateRoleRequest + 148, // 489: milvus.proto.milvus.MilvusService.DropRole:input_type -> milvus.proto.milvus.DropRoleRequest + 154, // 490: milvus.proto.milvus.MilvusService.OperateUserRole:input_type -> milvus.proto.milvus.OperateUserRoleRequest + 156, // 491: milvus.proto.milvus.MilvusService.SelectRole:input_type -> milvus.proto.milvus.SelectRoleRequest + 159, // 492: milvus.proto.milvus.MilvusService.SelectUser:input_type -> milvus.proto.milvus.SelectUserRequest + 169, // 493: milvus.proto.milvus.MilvusService.OperatePrivilege:input_type -> milvus.proto.milvus.OperatePrivilegeRequest + 170, // 494: milvus.proto.milvus.MilvusService.OperatePrivilegeV2:input_type -> milvus.proto.milvus.OperatePrivilegeV2Request + 167, // 495: milvus.proto.milvus.MilvusService.SelectGrant:input_type -> milvus.proto.milvus.SelectGrantRequest + 181, // 496: milvus.proto.milvus.MilvusService.GetVersion:input_type -> milvus.proto.milvus.GetVersionRequest + 183, // 497: milvus.proto.milvus.MilvusService.CheckHealth:input_type -> milvus.proto.milvus.CheckHealthRequest + 185, // 498: milvus.proto.milvus.MilvusService.CreateResourceGroup:input_type -> milvus.proto.milvus.CreateResourceGroupRequest + 187, // 499: milvus.proto.milvus.MilvusService.DropResourceGroup:input_type -> milvus.proto.milvus.DropResourceGroupRequest + 186, // 500: milvus.proto.milvus.MilvusService.UpdateResourceGroups:input_type -> milvus.proto.milvus.UpdateResourceGroupsRequest + 188, // 501: milvus.proto.milvus.MilvusService.TransferNode:input_type -> milvus.proto.milvus.TransferNodeRequest + 189, // 502: milvus.proto.milvus.MilvusService.TransferReplica:input_type -> milvus.proto.milvus.TransferReplicaRequest + 190, // 503: milvus.proto.milvus.MilvusService.ListResourceGroups:input_type -> milvus.proto.milvus.ListResourceGroupsRequest + 192, // 504: milvus.proto.milvus.MilvusService.DescribeResourceGroup:input_type -> milvus.proto.milvus.DescribeResourceGroupRequest + 195, // 505: milvus.proto.milvus.MilvusService.RenameCollection:input_type -> milvus.proto.milvus.RenameCollectionRequest + 355, // 506: milvus.proto.milvus.MilvusService.ListIndexedSegment:input_type -> milvus.proto.feder.ListIndexedSegmentRequest + 356, // 507: milvus.proto.milvus.MilvusService.DescribeSegmentIndexData:input_type -> milvus.proto.feder.DescribeSegmentIndexDataRequest + 198, // 508: milvus.proto.milvus.MilvusService.Connect:input_type -> milvus.proto.milvus.ConnectRequest + 200, // 509: milvus.proto.milvus.MilvusService.AllocTimestamp:input_type -> milvus.proto.milvus.AllocTimestampRequest + 202, // 510: milvus.proto.milvus.MilvusService.CreateDatabase:input_type -> milvus.proto.milvus.CreateDatabaseRequest + 203, // 511: milvus.proto.milvus.MilvusService.DropDatabase:input_type -> milvus.proto.milvus.DropDatabaseRequest + 204, // 512: milvus.proto.milvus.MilvusService.ListDatabases:input_type -> milvus.proto.milvus.ListDatabasesRequest + 206, // 513: milvus.proto.milvus.MilvusService.AlterDatabase:input_type -> milvus.proto.milvus.AlterDatabaseRequest + 207, // 514: milvus.proto.milvus.MilvusService.DescribeDatabase:input_type -> milvus.proto.milvus.DescribeDatabaseRequest + 209, // 515: milvus.proto.milvus.MilvusService.ReplicateMessage:input_type -> milvus.proto.milvus.ReplicateMessageRequest + 173, // 516: milvus.proto.milvus.MilvusService.BackupRBAC:input_type -> milvus.proto.milvus.BackupRBACMetaRequest + 175, // 517: milvus.proto.milvus.MilvusService.RestoreRBAC:input_type -> milvus.proto.milvus.RestoreRBACMetaRequest + 149, // 518: milvus.proto.milvus.MilvusService.CreatePrivilegeGroup:input_type -> milvus.proto.milvus.CreatePrivilegeGroupRequest + 150, // 519: milvus.proto.milvus.MilvusService.DropPrivilegeGroup:input_type -> milvus.proto.milvus.DropPrivilegeGroupRequest + 151, // 520: milvus.proto.milvus.MilvusService.ListPrivilegeGroups:input_type -> milvus.proto.milvus.ListPrivilegeGroupsRequest + 153, // 521: milvus.proto.milvus.MilvusService.OperatePrivilegeGroup:input_type -> milvus.proto.milvus.OperatePrivilegeGroupRequest + 214, // 522: milvus.proto.milvus.MilvusService.RunAnalyzer:input_type -> milvus.proto.milvus.RunAnalyzerRequest + 219, // 523: milvus.proto.milvus.MilvusService.AddFileResource:input_type -> milvus.proto.milvus.AddFileResourceRequest + 220, // 524: milvus.proto.milvus.MilvusService.RemoveFileResource:input_type -> milvus.proto.milvus.RemoveFileResourceRequest + 221, // 525: milvus.proto.milvus.MilvusService.ListFileResources:input_type -> milvus.proto.milvus.ListFileResourcesRequest + 223, // 526: milvus.proto.milvus.MilvusService.AddUserTags:input_type -> milvus.proto.milvus.AddUserTagsRequest + 224, // 527: milvus.proto.milvus.MilvusService.DeleteUserTags:input_type -> milvus.proto.milvus.DeleteUserTagsRequest + 225, // 528: milvus.proto.milvus.MilvusService.GetUserTags:input_type -> milvus.proto.milvus.GetUserTagsRequest + 227, // 529: milvus.proto.milvus.MilvusService.ListUsersWithTag:input_type -> milvus.proto.milvus.ListUsersWithTagRequest + 229, // 530: milvus.proto.milvus.MilvusService.CreateRowPolicy:input_type -> milvus.proto.milvus.CreateRowPolicyRequest + 230, // 531: milvus.proto.milvus.MilvusService.DropRowPolicy:input_type -> milvus.proto.milvus.DropRowPolicyRequest + 231, // 532: milvus.proto.milvus.MilvusService.ListRowPolicies:input_type -> milvus.proto.milvus.ListRowPoliciesRequest + 234, // 533: milvus.proto.milvus.MilvusService.UpdateReplicateConfiguration:input_type -> milvus.proto.milvus.UpdateReplicateConfigurationRequest + 235, // 534: milvus.proto.milvus.MilvusService.GetReplicateConfiguration:input_type -> milvus.proto.milvus.GetReplicateConfigurationRequest + 237, // 535: milvus.proto.milvus.MilvusService.GetReplicateInfo:input_type -> milvus.proto.milvus.GetReplicateInfoRequest + 240, // 536: milvus.proto.milvus.MilvusService.CreateReplicateStream:input_type -> milvus.proto.milvus.ReplicateRequest + 243, // 537: milvus.proto.milvus.MilvusService.DumpMessages:input_type -> milvus.proto.milvus.DumpMessagesRequest + 247, // 538: milvus.proto.milvus.MilvusService.ComputePhraseMatchSlop:input_type -> milvus.proto.milvus.ComputePhraseMatchSlopRequest + 249, // 539: milvus.proto.milvus.MilvusService.CreateSnapshot:input_type -> milvus.proto.milvus.CreateSnapshotRequest + 250, // 540: milvus.proto.milvus.MilvusService.DropSnapshot:input_type -> milvus.proto.milvus.DropSnapshotRequest + 251, // 541: milvus.proto.milvus.MilvusService.ListSnapshots:input_type -> milvus.proto.milvus.ListSnapshotsRequest + 253, // 542: milvus.proto.milvus.MilvusService.DescribeSnapshot:input_type -> milvus.proto.milvus.DescribeSnapshotRequest + 255, // 543: milvus.proto.milvus.MilvusService.RestoreSnapshot:input_type -> milvus.proto.milvus.RestoreSnapshotRequest + 258, // 544: milvus.proto.milvus.MilvusService.GetRestoreSnapshotState:input_type -> milvus.proto.milvus.GetRestoreSnapshotStateRequest + 260, // 545: milvus.proto.milvus.MilvusService.ListRestoreSnapshotJobs:input_type -> milvus.proto.milvus.ListRestoreSnapshotJobsRequest + 262, // 546: milvus.proto.milvus.MilvusService.PinSnapshotData:input_type -> milvus.proto.milvus.PinSnapshotDataRequest + 264, // 547: milvus.proto.milvus.MilvusService.UnpinSnapshotData:input_type -> milvus.proto.milvus.UnpinSnapshotDataRequest + 265, // 548: milvus.proto.milvus.MilvusService.AlterCollectionSchema:input_type -> milvus.proto.milvus.AlterCollectionSchemaRequest + 267, // 549: milvus.proto.milvus.MilvusService.BatchUpdateManifest:input_type -> milvus.proto.milvus.BatchUpdateManifestRequest + 278, // 550: milvus.proto.milvus.MilvusService.RefreshExternalCollection:input_type -> milvus.proto.milvus.RefreshExternalCollectionRequest + 280, // 551: milvus.proto.milvus.MilvusService.GetRefreshExternalCollectionProgress:input_type -> milvus.proto.milvus.GetRefreshExternalCollectionProgressRequest + 283, // 552: milvus.proto.milvus.MilvusService.ListRefreshExternalCollectionJobs:input_type -> milvus.proto.milvus.ListRefreshExternalCollectionJobsRequest + 269, // 553: milvus.proto.milvus.ClientTelemetryService.ClientHeartbeat:input_type -> milvus.proto.milvus.ClientHeartbeatRequest + 271, // 554: milvus.proto.milvus.ClientTelemetryService.GetClientTelemetry:input_type -> milvus.proto.milvus.GetClientTelemetryRequest + 274, // 555: milvus.proto.milvus.ClientTelemetryService.PushClientCommand:input_type -> milvus.proto.milvus.PushClientCommandRequest + 276, // 556: milvus.proto.milvus.ClientTelemetryService.DeleteClientCommand:input_type -> milvus.proto.milvus.DeleteClientCommandRequest + 110, // 557: milvus.proto.milvus.ProxyService.RegisterLink:input_type -> milvus.proto.milvus.RegisterLinkRequest + 312, // 558: milvus.proto.milvus.MilvusService.CreateCollection:output_type -> milvus.proto.common.Status + 312, // 559: milvus.proto.milvus.MilvusService.DropCollection:output_type -> milvus.proto.common.Status + 21, // 560: milvus.proto.milvus.MilvusService.HasCollection:output_type -> milvus.proto.milvus.BoolResponse + 312, // 561: milvus.proto.milvus.MilvusService.LoadCollection:output_type -> milvus.proto.common.Status + 312, // 562: milvus.proto.milvus.MilvusService.ReleaseCollection:output_type -> milvus.proto.common.Status + 24, // 563: milvus.proto.milvus.MilvusService.DescribeCollection:output_type -> milvus.proto.milvus.DescribeCollectionResponse + 26, // 564: milvus.proto.milvus.MilvusService.BatchDescribeCollection:output_type -> milvus.proto.milvus.BatchDescribeCollectionResponse + 32, // 565: milvus.proto.milvus.MilvusService.GetCollectionStatistics:output_type -> milvus.proto.milvus.GetCollectionStatisticsResponse + 34, // 566: milvus.proto.milvus.MilvusService.ShowCollections:output_type -> milvus.proto.milvus.ShowCollectionsResponse + 312, // 567: milvus.proto.milvus.MilvusService.AlterCollection:output_type -> milvus.proto.common.Status + 312, // 568: milvus.proto.milvus.MilvusService.AlterCollectionField:output_type -> milvus.proto.common.Status + 312, // 569: milvus.proto.milvus.MilvusService.AddCollectionFunction:output_type -> milvus.proto.common.Status + 312, // 570: milvus.proto.milvus.MilvusService.AlterCollectionFunction:output_type -> milvus.proto.common.Status + 312, // 571: milvus.proto.milvus.MilvusService.DropCollectionFunction:output_type -> milvus.proto.common.Status + 246, // 572: milvus.proto.milvus.MilvusService.TruncateCollection:output_type -> milvus.proto.milvus.TruncateCollectionResponse + 312, // 573: milvus.proto.milvus.MilvusService.CreatePartition:output_type -> milvus.proto.common.Status + 312, // 574: milvus.proto.milvus.MilvusService.DropPartition:output_type -> milvus.proto.common.Status + 21, // 575: milvus.proto.milvus.MilvusService.HasPartition:output_type -> milvus.proto.milvus.BoolResponse + 312, // 576: milvus.proto.milvus.MilvusService.LoadPartitions:output_type -> milvus.proto.common.Status + 312, // 577: milvus.proto.milvus.MilvusService.ReleasePartitions:output_type -> milvus.proto.common.Status + 41, // 578: milvus.proto.milvus.MilvusService.GetPartitionStatistics:output_type -> milvus.proto.milvus.GetPartitionStatisticsResponse + 43, // 579: milvus.proto.milvus.MilvusService.ShowPartitions:output_type -> milvus.proto.milvus.ShowPartitionsResponse + 47, // 580: milvus.proto.milvus.MilvusService.CreateNamespace:output_type -> milvus.proto.milvus.CreateNamespaceResponse + 49, // 581: milvus.proto.milvus.MilvusService.DescribeNamespace:output_type -> milvus.proto.milvus.DescribeNamespaceResponse + 51, // 582: milvus.proto.milvus.MilvusService.ListNamespaces:output_type -> milvus.proto.milvus.ListNamespacesResponse + 53, // 583: milvus.proto.milvus.MilvusService.DropNamespace:output_type -> milvus.proto.milvus.DropNamespaceResponse + 55, // 584: milvus.proto.milvus.MilvusService.HasNamespace:output_type -> milvus.proto.milvus.HasNamespaceResponse + 57, // 585: milvus.proto.milvus.MilvusService.GetNamespaceStats:output_type -> milvus.proto.milvus.GetNamespaceStatsResponse + 177, // 586: milvus.proto.milvus.MilvusService.GetLoadingProgress:output_type -> milvus.proto.milvus.GetLoadingProgressResponse + 179, // 587: milvus.proto.milvus.MilvusService.GetLoadState:output_type -> milvus.proto.milvus.GetLoadStateResponse + 312, // 588: milvus.proto.milvus.MilvusService.CreateAlias:output_type -> milvus.proto.common.Status + 312, // 589: milvus.proto.milvus.MilvusService.DropAlias:output_type -> milvus.proto.common.Status + 312, // 590: milvus.proto.milvus.MilvusService.AlterAlias:output_type -> milvus.proto.common.Status + 13, // 591: milvus.proto.milvus.MilvusService.DescribeAlias:output_type -> milvus.proto.milvus.DescribeAliasResponse + 15, // 592: milvus.proto.milvus.MilvusService.ListAliases:output_type -> milvus.proto.milvus.ListAliasesResponse + 312, // 593: milvus.proto.milvus.MilvusService.CreateIndex:output_type -> milvus.proto.common.Status + 312, // 594: milvus.proto.milvus.MilvusService.AlterIndex:output_type -> milvus.proto.common.Status + 66, // 595: milvus.proto.milvus.MilvusService.DescribeIndex:output_type -> milvus.proto.milvus.DescribeIndexResponse + 197, // 596: milvus.proto.milvus.MilvusService.GetIndexStatistics:output_type -> milvus.proto.milvus.GetIndexStatisticsResponse + 70, // 597: milvus.proto.milvus.MilvusService.GetIndexState:output_type -> milvus.proto.milvus.GetIndexStateResponse + 68, // 598: milvus.proto.milvus.MilvusService.GetIndexBuildProgress:output_type -> milvus.proto.milvus.GetIndexBuildProgressResponse + 312, // 599: milvus.proto.milvus.MilvusService.DropIndex:output_type -> milvus.proto.common.Status + 79, // 600: milvus.proto.milvus.MilvusService.Insert:output_type -> milvus.proto.milvus.MutationResult + 79, // 601: milvus.proto.milvus.MilvusService.Delete:output_type -> milvus.proto.milvus.MutationResult + 79, // 602: milvus.proto.milvus.MilvusService.Upsert:output_type -> milvus.proto.milvus.MutationResult + 84, // 603: milvus.proto.milvus.MilvusService.Search:output_type -> milvus.proto.milvus.SearchResults + 84, // 604: milvus.proto.milvus.MilvusService.HybridSearch:output_type -> milvus.proto.milvus.SearchResults + 87, // 605: milvus.proto.milvus.MilvusService.Flush:output_type -> milvus.proto.milvus.FlushResponse + 90, // 606: milvus.proto.milvus.MilvusService.Query:output_type -> milvus.proto.milvus.QueryResults + 95, // 607: milvus.proto.milvus.MilvusService.CalcDistance:output_type -> milvus.proto.milvus.CalcDistanceResults + 99, // 608: milvus.proto.milvus.MilvusService.FlushAll:output_type -> milvus.proto.milvus.FlushAllResponse + 312, // 609: milvus.proto.milvus.MilvusService.AddCollectionField:output_type -> milvus.proto.common.Status + 312, // 610: milvus.proto.milvus.MilvusService.AddCollectionStructField:output_type -> milvus.proto.common.Status + 126, // 611: milvus.proto.milvus.MilvusService.GetFlushState:output_type -> milvus.proto.milvus.GetFlushStateResponse + 128, // 612: milvus.proto.milvus.MilvusService.GetFlushAllState:output_type -> milvus.proto.milvus.GetFlushAllStateResponse + 104, // 613: milvus.proto.milvus.MilvusService.GetPersistentSegmentInfo:output_type -> milvus.proto.milvus.GetPersistentSegmentInfoResponse + 107, // 614: milvus.proto.milvus.MilvusService.GetQuerySegmentInfo:output_type -> milvus.proto.milvus.GetQuerySegmentInfoResponse + 137, // 615: milvus.proto.milvus.MilvusService.GetReplicas:output_type -> milvus.proto.milvus.GetReplicasResponse + 109, // 616: milvus.proto.milvus.MilvusService.Dummy:output_type -> milvus.proto.milvus.DummyResponse + 111, // 617: milvus.proto.milvus.MilvusService.RegisterLink:output_type -> milvus.proto.milvus.RegisterLinkResponse + 113, // 618: milvus.proto.milvus.MilvusService.GetMetrics:output_type -> milvus.proto.milvus.GetMetricsResponse + 115, // 619: milvus.proto.milvus.MilvusService.GetComponentStates:output_type -> milvus.proto.milvus.ComponentStates + 312, // 620: milvus.proto.milvus.MilvusService.LoadBalance:output_type -> milvus.proto.common.Status + 121, // 621: milvus.proto.milvus.MilvusService.GetCompactionState:output_type -> milvus.proto.milvus.GetCompactionStateResponse + 119, // 622: milvus.proto.milvus.MilvusService.ManualCompaction:output_type -> milvus.proto.milvus.ManualCompactionResponse + 123, // 623: milvus.proto.milvus.MilvusService.GetCompactionStateWithPlans:output_type -> milvus.proto.milvus.GetCompactionPlansResponse + 131, // 624: milvus.proto.milvus.MilvusService.Import:output_type -> milvus.proto.milvus.ImportResponse + 133, // 625: milvus.proto.milvus.MilvusService.GetImportState:output_type -> milvus.proto.milvus.GetImportStateResponse + 135, // 626: milvus.proto.milvus.MilvusService.ListImportTasks:output_type -> milvus.proto.milvus.ListImportTasksResponse + 312, // 627: milvus.proto.milvus.MilvusService.CreateCredential:output_type -> milvus.proto.common.Status + 312, // 628: milvus.proto.milvus.MilvusService.UpdateCredential:output_type -> milvus.proto.common.Status + 312, // 629: milvus.proto.milvus.MilvusService.DeleteCredential:output_type -> milvus.proto.common.Status + 143, // 630: milvus.proto.milvus.MilvusService.ListCredUsers:output_type -> milvus.proto.milvus.ListCredUsersResponse + 312, // 631: milvus.proto.milvus.MilvusService.CreateRole:output_type -> milvus.proto.common.Status + 312, // 632: milvus.proto.milvus.MilvusService.DropRole:output_type -> milvus.proto.common.Status + 312, // 633: milvus.proto.milvus.MilvusService.OperateUserRole:output_type -> milvus.proto.common.Status + 158, // 634: milvus.proto.milvus.MilvusService.SelectRole:output_type -> milvus.proto.milvus.SelectRoleResponse + 161, // 635: milvus.proto.milvus.MilvusService.SelectUser:output_type -> milvus.proto.milvus.SelectUserResponse + 312, // 636: milvus.proto.milvus.MilvusService.OperatePrivilege:output_type -> milvus.proto.common.Status + 312, // 637: milvus.proto.milvus.MilvusService.OperatePrivilegeV2:output_type -> milvus.proto.common.Status + 168, // 638: milvus.proto.milvus.MilvusService.SelectGrant:output_type -> milvus.proto.milvus.SelectGrantResponse + 182, // 639: milvus.proto.milvus.MilvusService.GetVersion:output_type -> milvus.proto.milvus.GetVersionResponse + 184, // 640: milvus.proto.milvus.MilvusService.CheckHealth:output_type -> milvus.proto.milvus.CheckHealthResponse + 312, // 641: milvus.proto.milvus.MilvusService.CreateResourceGroup:output_type -> milvus.proto.common.Status + 312, // 642: milvus.proto.milvus.MilvusService.DropResourceGroup:output_type -> milvus.proto.common.Status + 312, // 643: milvus.proto.milvus.MilvusService.UpdateResourceGroups:output_type -> milvus.proto.common.Status + 312, // 644: milvus.proto.milvus.MilvusService.TransferNode:output_type -> milvus.proto.common.Status + 312, // 645: milvus.proto.milvus.MilvusService.TransferReplica:output_type -> milvus.proto.common.Status + 191, // 646: milvus.proto.milvus.MilvusService.ListResourceGroups:output_type -> milvus.proto.milvus.ListResourceGroupsResponse + 193, // 647: milvus.proto.milvus.MilvusService.DescribeResourceGroup:output_type -> milvus.proto.milvus.DescribeResourceGroupResponse + 312, // 648: milvus.proto.milvus.MilvusService.RenameCollection:output_type -> milvus.proto.common.Status + 357, // 649: milvus.proto.milvus.MilvusService.ListIndexedSegment:output_type -> milvus.proto.feder.ListIndexedSegmentResponse + 358, // 650: milvus.proto.milvus.MilvusService.DescribeSegmentIndexData:output_type -> milvus.proto.feder.DescribeSegmentIndexDataResponse + 199, // 651: milvus.proto.milvus.MilvusService.Connect:output_type -> milvus.proto.milvus.ConnectResponse + 201, // 652: milvus.proto.milvus.MilvusService.AllocTimestamp:output_type -> milvus.proto.milvus.AllocTimestampResponse + 312, // 653: milvus.proto.milvus.MilvusService.CreateDatabase:output_type -> milvus.proto.common.Status + 312, // 654: milvus.proto.milvus.MilvusService.DropDatabase:output_type -> milvus.proto.common.Status + 205, // 655: milvus.proto.milvus.MilvusService.ListDatabases:output_type -> milvus.proto.milvus.ListDatabasesResponse + 312, // 656: milvus.proto.milvus.MilvusService.AlterDatabase:output_type -> milvus.proto.common.Status + 208, // 657: milvus.proto.milvus.MilvusService.DescribeDatabase:output_type -> milvus.proto.milvus.DescribeDatabaseResponse + 210, // 658: milvus.proto.milvus.MilvusService.ReplicateMessage:output_type -> milvus.proto.milvus.ReplicateMessageResponse + 174, // 659: milvus.proto.milvus.MilvusService.BackupRBAC:output_type -> milvus.proto.milvus.BackupRBACMetaResponse + 312, // 660: milvus.proto.milvus.MilvusService.RestoreRBAC:output_type -> milvus.proto.common.Status + 312, // 661: milvus.proto.milvus.MilvusService.CreatePrivilegeGroup:output_type -> milvus.proto.common.Status + 312, // 662: milvus.proto.milvus.MilvusService.DropPrivilegeGroup:output_type -> milvus.proto.common.Status + 152, // 663: milvus.proto.milvus.MilvusService.ListPrivilegeGroups:output_type -> milvus.proto.milvus.ListPrivilegeGroupsResponse + 312, // 664: milvus.proto.milvus.MilvusService.OperatePrivilegeGroup:output_type -> milvus.proto.common.Status + 217, // 665: milvus.proto.milvus.MilvusService.RunAnalyzer:output_type -> milvus.proto.milvus.RunAnalyzerResponse + 312, // 666: milvus.proto.milvus.MilvusService.AddFileResource:output_type -> milvus.proto.common.Status + 312, // 667: milvus.proto.milvus.MilvusService.RemoveFileResource:output_type -> milvus.proto.common.Status + 222, // 668: milvus.proto.milvus.MilvusService.ListFileResources:output_type -> milvus.proto.milvus.ListFileResourcesResponse + 312, // 669: milvus.proto.milvus.MilvusService.AddUserTags:output_type -> milvus.proto.common.Status + 312, // 670: milvus.proto.milvus.MilvusService.DeleteUserTags:output_type -> milvus.proto.common.Status + 226, // 671: milvus.proto.milvus.MilvusService.GetUserTags:output_type -> milvus.proto.milvus.GetUserTagsResponse + 228, // 672: milvus.proto.milvus.MilvusService.ListUsersWithTag:output_type -> milvus.proto.milvus.ListUsersWithTagResponse + 312, // 673: milvus.proto.milvus.MilvusService.CreateRowPolicy:output_type -> milvus.proto.common.Status + 312, // 674: milvus.proto.milvus.MilvusService.DropRowPolicy:output_type -> milvus.proto.common.Status + 233, // 675: milvus.proto.milvus.MilvusService.ListRowPolicies:output_type -> milvus.proto.milvus.ListRowPoliciesResponse + 312, // 676: milvus.proto.milvus.MilvusService.UpdateReplicateConfiguration:output_type -> milvus.proto.common.Status + 236, // 677: milvus.proto.milvus.MilvusService.GetReplicateConfiguration:output_type -> milvus.proto.milvus.GetReplicateConfigurationResponse + 238, // 678: milvus.proto.milvus.MilvusService.GetReplicateInfo:output_type -> milvus.proto.milvus.GetReplicateInfoResponse + 242, // 679: milvus.proto.milvus.MilvusService.CreateReplicateStream:output_type -> milvus.proto.milvus.ReplicateResponse + 244, // 680: milvus.proto.milvus.MilvusService.DumpMessages:output_type -> milvus.proto.milvus.DumpMessagesResponse + 248, // 681: milvus.proto.milvus.MilvusService.ComputePhraseMatchSlop:output_type -> milvus.proto.milvus.ComputePhraseMatchSlopResponse + 312, // 682: milvus.proto.milvus.MilvusService.CreateSnapshot:output_type -> milvus.proto.common.Status + 312, // 683: milvus.proto.milvus.MilvusService.DropSnapshot:output_type -> milvus.proto.common.Status + 252, // 684: milvus.proto.milvus.MilvusService.ListSnapshots:output_type -> milvus.proto.milvus.ListSnapshotsResponse + 254, // 685: milvus.proto.milvus.MilvusService.DescribeSnapshot:output_type -> milvus.proto.milvus.DescribeSnapshotResponse + 256, // 686: milvus.proto.milvus.MilvusService.RestoreSnapshot:output_type -> milvus.proto.milvus.RestoreSnapshotResponse + 259, // 687: milvus.proto.milvus.MilvusService.GetRestoreSnapshotState:output_type -> milvus.proto.milvus.GetRestoreSnapshotStateResponse + 261, // 688: milvus.proto.milvus.MilvusService.ListRestoreSnapshotJobs:output_type -> milvus.proto.milvus.ListRestoreSnapshotJobsResponse + 263, // 689: milvus.proto.milvus.MilvusService.PinSnapshotData:output_type -> milvus.proto.milvus.PinSnapshotDataResponse + 312, // 690: milvus.proto.milvus.MilvusService.UnpinSnapshotData:output_type -> milvus.proto.common.Status + 266, // 691: milvus.proto.milvus.MilvusService.AlterCollectionSchema:output_type -> milvus.proto.milvus.AlterCollectionSchemaResponse + 312, // 692: milvus.proto.milvus.MilvusService.BatchUpdateManifest:output_type -> milvus.proto.common.Status + 279, // 693: milvus.proto.milvus.MilvusService.RefreshExternalCollection:output_type -> milvus.proto.milvus.RefreshExternalCollectionResponse + 282, // 694: milvus.proto.milvus.MilvusService.GetRefreshExternalCollectionProgress:output_type -> milvus.proto.milvus.GetRefreshExternalCollectionProgressResponse + 284, // 695: milvus.proto.milvus.MilvusService.ListRefreshExternalCollectionJobs:output_type -> milvus.proto.milvus.ListRefreshExternalCollectionJobsResponse + 270, // 696: milvus.proto.milvus.ClientTelemetryService.ClientHeartbeat:output_type -> milvus.proto.milvus.ClientHeartbeatResponse + 273, // 697: milvus.proto.milvus.ClientTelemetryService.GetClientTelemetry:output_type -> milvus.proto.milvus.GetClientTelemetryResponse + 275, // 698: milvus.proto.milvus.ClientTelemetryService.PushClientCommand:output_type -> milvus.proto.milvus.PushClientCommandResponse + 277, // 699: milvus.proto.milvus.ClientTelemetryService.DeleteClientCommand:output_type -> milvus.proto.milvus.DeleteClientCommandResponse + 111, // 700: milvus.proto.milvus.ProxyService.RegisterLink:output_type -> milvus.proto.milvus.RegisterLinkResponse + 558, // [558:701] is the sub-list for method output_type + 415, // [415:558] is the sub-list for method input_type + 414, // [414:415] is the sub-list for extension type_name + 413, // [413:414] is the sub-list for extension extendee + 0, // [0:413] is the sub-list for field type_name } func init() { file_milvus_proto_init() } @@ -25008,8 +26255,176 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DescribeCollectionRequest); i { + file_milvus_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DescribeCollectionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_milvus_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DescribeCollectionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_milvus_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchDescribeCollectionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_milvus_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchDescribeCollectionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_milvus_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LoadCollectionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_milvus_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReleaseCollectionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_milvus_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetStatisticsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_milvus_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetStatisticsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_milvus_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCollectionStatisticsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_milvus_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCollectionStatisticsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_milvus_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShowCollectionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_milvus_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShowCollectionsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_milvus_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreatePartitionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_milvus_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DropPartitionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_milvus_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HasPartitionRequest); i { case 0: return &v.state case 1: @@ -25020,8 +26435,8 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DescribeCollectionResponse); i { + file_milvus_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LoadPartitionsRequest); i { case 0: return &v.state case 1: @@ -25032,8 +26447,8 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatchDescribeCollectionRequest); i { + file_milvus_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReleasePartitionsRequest); i { case 0: return &v.state case 1: @@ -25044,8 +26459,8 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatchDescribeCollectionResponse); i { + file_milvus_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetPartitionStatisticsRequest); i { case 0: return &v.state case 1: @@ -25056,8 +26471,8 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LoadCollectionRequest); i { + file_milvus_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetPartitionStatisticsResponse); i { case 0: return &v.state case 1: @@ -25068,8 +26483,8 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReleaseCollectionRequest); i { + file_milvus_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShowPartitionsRequest); i { case 0: return &v.state case 1: @@ -25080,8 +26495,8 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStatisticsRequest); i { + file_milvus_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShowPartitionsResponse); i { case 0: return &v.state case 1: @@ -25092,8 +26507,8 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStatisticsResponse); i { + file_milvus_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NamespaceStats); i { case 0: return &v.state case 1: @@ -25104,8 +26519,8 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetCollectionStatisticsRequest); i { + file_milvus_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NamespaceInfo); i { case 0: return &v.state case 1: @@ -25116,8 +26531,8 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetCollectionStatisticsResponse); i { + file_milvus_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateNamespaceRequest); i { case 0: return &v.state case 1: @@ -25128,8 +26543,8 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowCollectionsRequest); i { + file_milvus_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateNamespaceResponse); i { case 0: return &v.state case 1: @@ -25140,8 +26555,8 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowCollectionsResponse); i { + file_milvus_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DescribeNamespaceRequest); i { case 0: return &v.state case 1: @@ -25152,8 +26567,8 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreatePartitionRequest); i { + file_milvus_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DescribeNamespaceResponse); i { case 0: return &v.state case 1: @@ -25164,8 +26579,8 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DropPartitionRequest); i { + file_milvus_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListNamespacesRequest); i { case 0: return &v.state case 1: @@ -25176,8 +26591,8 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HasPartitionRequest); i { + file_milvus_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListNamespacesResponse); i { case 0: return &v.state case 1: @@ -25188,8 +26603,8 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LoadPartitionsRequest); i { + file_milvus_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DropNamespaceRequest); i { case 0: return &v.state case 1: @@ -25200,8 +26615,8 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReleasePartitionsRequest); i { + file_milvus_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DropNamespaceResponse); i { case 0: return &v.state case 1: @@ -25212,8 +26627,8 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPartitionStatisticsRequest); i { + file_milvus_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HasNamespaceRequest); i { case 0: return &v.state case 1: @@ -25224,8 +26639,8 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPartitionStatisticsResponse); i { + file_milvus_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HasNamespaceResponse); i { case 0: return &v.state case 1: @@ -25236,8 +26651,8 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowPartitionsRequest); i { + file_milvus_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetNamespaceStatsRequest); i { case 0: return &v.state case 1: @@ -25248,8 +26663,8 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowPartitionsResponse); i { + file_milvus_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetNamespaceStatsResponse); i { case 0: return &v.state case 1: @@ -25260,7 +26675,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DescribeSegmentRequest); i { case 0: return &v.state @@ -25272,7 +26687,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DescribeSegmentResponse); i { case 0: return &v.state @@ -25284,7 +26699,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ShowSegmentsRequest); i { case 0: return &v.state @@ -25296,7 +26711,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ShowSegmentsResponse); i { case 0: return &v.state @@ -25308,7 +26723,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateIndexRequest); i { case 0: return &v.state @@ -25320,7 +26735,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AlterIndexRequest); i { case 0: return &v.state @@ -25332,7 +26747,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DescribeIndexRequest); i { case 0: return &v.state @@ -25344,7 +26759,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IndexDescription); i { case 0: return &v.state @@ -25356,7 +26771,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DescribeIndexResponse); i { case 0: return &v.state @@ -25368,7 +26783,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetIndexBuildProgressRequest); i { case 0: return &v.state @@ -25380,7 +26795,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetIndexBuildProgressResponse); i { case 0: return &v.state @@ -25392,7 +26807,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetIndexStateRequest); i { case 0: return &v.state @@ -25404,7 +26819,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetIndexStateResponse); i { case 0: return &v.state @@ -25416,7 +26831,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DropIndexRequest); i { case 0: return &v.state @@ -25428,7 +26843,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InsertRequest); i { case 0: return &v.state @@ -25440,7 +26855,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddCollectionFieldRequest); i { case 0: return &v.state @@ -25452,7 +26867,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddCollectionStructFieldRequest); i { case 0: return &v.state @@ -25464,7 +26879,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddCollectionFunctionRequest); i { case 0: return &v.state @@ -25476,7 +26891,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AlterCollectionFunctionRequest); i { case 0: return &v.state @@ -25488,7 +26903,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DropCollectionFunctionRequest); i { case 0: return &v.state @@ -25500,7 +26915,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpsertRequest); i { case 0: return &v.state @@ -25512,7 +26927,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MutationResult); i { case 0: return &v.state @@ -25524,7 +26939,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteRequest); i { case 0: return &v.state @@ -25536,7 +26951,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubSearchRequest); i { case 0: return &v.state @@ -25548,7 +26963,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchRequest); i { case 0: return &v.state @@ -25560,7 +26975,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Hits); i { case 0: return &v.state @@ -25572,7 +26987,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchResults); i { case 0: return &v.state @@ -25584,7 +26999,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HybridSearchRequest); i { case 0: return &v.state @@ -25596,7 +27011,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlushRequest); i { case 0: return &v.state @@ -25608,7 +27023,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlushResponse); i { case 0: return &v.state @@ -25620,7 +27035,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueryRequest); i { case 0: return &v.state @@ -25632,7 +27047,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ElementIndices); i { case 0: return &v.state @@ -25644,7 +27059,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueryResults); i { case 0: return &v.state @@ -25656,7 +27071,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueryCursor); i { case 0: return &v.state @@ -25668,7 +27083,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VectorIDs); i { case 0: return &v.state @@ -25680,7 +27095,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VectorsArray); i { case 0: return &v.state @@ -25692,7 +27107,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CalcDistanceRequest); i { case 0: return &v.state @@ -25704,7 +27119,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CalcDistanceResults); i { case 0: return &v.state @@ -25716,7 +27131,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlushAllTarget); i { case 0: return &v.state @@ -25728,7 +27143,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlushAllRequest); i { case 0: return &v.state @@ -25740,7 +27155,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClusterInfo); i { case 0: return &v.state @@ -25752,7 +27167,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlushAllResponse); i { case 0: return &v.state @@ -25764,7 +27179,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlushAllResult); i { case 0: return &v.state @@ -25776,7 +27191,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlushCollectionResult); i { case 0: return &v.state @@ -25788,7 +27203,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PersistentSegmentInfo); i { case 0: return &v.state @@ -25800,7 +27215,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetPersistentSegmentInfoRequest); i { case 0: return &v.state @@ -25812,7 +27227,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetPersistentSegmentInfoResponse); i { case 0: return &v.state @@ -25824,7 +27239,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QuerySegmentInfo); i { case 0: return &v.state @@ -25836,7 +27251,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetQuerySegmentInfoRequest); i { case 0: return &v.state @@ -25848,7 +27263,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetQuerySegmentInfoResponse); i { case 0: return &v.state @@ -25860,7 +27275,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DummyRequest); i { case 0: return &v.state @@ -25872,7 +27287,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DummyResponse); i { case 0: return &v.state @@ -25884,7 +27299,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RegisterLinkRequest); i { case 0: return &v.state @@ -25896,7 +27311,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RegisterLinkResponse); i { case 0: return &v.state @@ -25908,7 +27323,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMetricsRequest); i { case 0: return &v.state @@ -25920,7 +27335,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMetricsResponse); i { case 0: return &v.state @@ -25932,7 +27347,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ComponentInfo); i { case 0: return &v.state @@ -25944,7 +27359,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ComponentStates); i { case 0: return &v.state @@ -25956,7 +27371,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetComponentStatesRequest); i { case 0: return &v.state @@ -25968,7 +27383,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoadBalanceRequest); i { case 0: return &v.state @@ -25980,7 +27395,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ManualCompactionRequest); i { case 0: return &v.state @@ -25992,7 +27407,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ManualCompactionResponse); i { case 0: return &v.state @@ -26004,7 +27419,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCompactionStateRequest); i { case 0: return &v.state @@ -26016,7 +27431,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCompactionStateResponse); i { case 0: return &v.state @@ -26028,7 +27443,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCompactionPlansRequest); i { case 0: return &v.state @@ -26040,7 +27455,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCompactionPlansResponse); i { case 0: return &v.state @@ -26052,7 +27467,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CompactionMergeInfo); i { case 0: return &v.state @@ -26064,7 +27479,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFlushStateRequest); i { case 0: return &v.state @@ -26076,7 +27491,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFlushStateResponse); i { case 0: return &v.state @@ -26088,7 +27503,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFlushAllStateRequest); i { case 0: return &v.state @@ -26100,7 +27515,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFlushAllStateResponse); i { case 0: return &v.state @@ -26112,7 +27527,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlushAllState); i { case 0: return &v.state @@ -26124,7 +27539,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ImportRequest); i { case 0: return &v.state @@ -26136,7 +27551,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ImportResponse); i { case 0: return &v.state @@ -26148,7 +27563,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetImportStateRequest); i { case 0: return &v.state @@ -26160,7 +27575,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetImportStateResponse); i { case 0: return &v.state @@ -26172,7 +27587,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListImportTasksRequest); i { case 0: return &v.state @@ -26184,7 +27599,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListImportTasksResponse); i { case 0: return &v.state @@ -26196,7 +27611,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetReplicasRequest); i { case 0: return &v.state @@ -26208,7 +27623,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetReplicasResponse); i { case 0: return &v.state @@ -26220,7 +27635,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReplicaInfo); i { case 0: return &v.state @@ -26232,7 +27647,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ShardReplica); i { case 0: return &v.state @@ -26244,7 +27659,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateCredentialRequest); i { case 0: return &v.state @@ -26256,7 +27671,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateCredentialRequest); i { case 0: return &v.state @@ -26268,7 +27683,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteCredentialRequest); i { case 0: return &v.state @@ -26280,7 +27695,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListCredUsersResponse); i { case 0: return &v.state @@ -26292,7 +27707,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListCredUsersRequest); i { case 0: return &v.state @@ -26304,7 +27719,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoleEntity); i { case 0: return &v.state @@ -26316,7 +27731,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserEntity); i { case 0: return &v.state @@ -26328,7 +27743,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateRoleRequest); i { case 0: return &v.state @@ -26340,7 +27755,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DropRoleRequest); i { case 0: return &v.state @@ -26352,7 +27767,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreatePrivilegeGroupRequest); i { case 0: return &v.state @@ -26364,7 +27779,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DropPrivilegeGroupRequest); i { case 0: return &v.state @@ -26376,7 +27791,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListPrivilegeGroupsRequest); i { case 0: return &v.state @@ -26388,7 +27803,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListPrivilegeGroupsResponse); i { case 0: return &v.state @@ -26400,7 +27815,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OperatePrivilegeGroupRequest); i { case 0: return &v.state @@ -26412,7 +27827,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OperateUserRoleRequest); i { case 0: return &v.state @@ -26424,7 +27839,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PrivilegeGroupInfo); i { case 0: return &v.state @@ -26436,7 +27851,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SelectRoleRequest); i { case 0: return &v.state @@ -26448,7 +27863,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoleResult); i { case 0: return &v.state @@ -26460,7 +27875,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SelectRoleResponse); i { case 0: return &v.state @@ -26472,7 +27887,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SelectUserRequest); i { case 0: return &v.state @@ -26484,7 +27899,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserResult); i { case 0: return &v.state @@ -26496,7 +27911,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SelectUserResponse); i { case 0: return &v.state @@ -26508,7 +27923,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ObjectEntity); i { case 0: return &v.state @@ -26520,7 +27935,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PrivilegeEntity); i { case 0: return &v.state @@ -26532,7 +27947,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GrantorEntity); i { case 0: return &v.state @@ -26544,7 +27959,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GrantPrivilegeEntity); i { case 0: return &v.state @@ -26556,7 +27971,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GrantEntity); i { case 0: return &v.state @@ -26568,7 +27983,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SelectGrantRequest); i { case 0: return &v.state @@ -26580,7 +27995,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SelectGrantResponse); i { case 0: return &v.state @@ -26592,7 +28007,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OperatePrivilegeRequest); i { case 0: return &v.state @@ -26604,7 +28019,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OperatePrivilegeV2Request); i { case 0: return &v.state @@ -26616,7 +28031,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserInfo); i { case 0: return &v.state @@ -26628,7 +28043,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RBACMeta); i { case 0: return &v.state @@ -26640,7 +28055,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BackupRBACMetaRequest); i { case 0: return &v.state @@ -26652,7 +28067,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BackupRBACMetaResponse); i { case 0: return &v.state @@ -26664,7 +28079,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RestoreRBACMetaRequest); i { case 0: return &v.state @@ -26676,7 +28091,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetLoadingProgressRequest); i { case 0: return &v.state @@ -26688,7 +28103,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetLoadingProgressResponse); i { case 0: return &v.state @@ -26700,7 +28115,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetLoadStateRequest); i { case 0: return &v.state @@ -26712,7 +28127,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetLoadStateResponse); i { case 0: return &v.state @@ -26724,7 +28139,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MilvusExt); i { case 0: return &v.state @@ -26736,7 +28151,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetVersionRequest); i { case 0: return &v.state @@ -26748,7 +28163,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetVersionResponse); i { case 0: return &v.state @@ -26760,7 +28175,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckHealthRequest); i { case 0: return &v.state @@ -26772,7 +28187,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckHealthResponse); i { case 0: return &v.state @@ -26784,7 +28199,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateResourceGroupRequest); i { case 0: return &v.state @@ -26796,7 +28211,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateResourceGroupsRequest); i { case 0: return &v.state @@ -26808,7 +28223,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DropResourceGroupRequest); i { case 0: return &v.state @@ -26820,7 +28235,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransferNodeRequest); i { case 0: return &v.state @@ -26832,7 +28247,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransferReplicaRequest); i { case 0: return &v.state @@ -26844,7 +28259,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListResourceGroupsRequest); i { case 0: return &v.state @@ -26856,7 +28271,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListResourceGroupsResponse); i { case 0: return &v.state @@ -26868,7 +28283,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DescribeResourceGroupRequest); i { case 0: return &v.state @@ -26880,7 +28295,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[184].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DescribeResourceGroupResponse); i { case 0: return &v.state @@ -26892,7 +28307,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResourceGroup); i { case 0: return &v.state @@ -26904,7 +28319,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RenameCollectionRequest); i { case 0: return &v.state @@ -26916,7 +28331,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[187].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetIndexStatisticsRequest); i { case 0: return &v.state @@ -26928,7 +28343,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[188].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetIndexStatisticsResponse); i { case 0: return &v.state @@ -26940,7 +28355,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[189].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConnectRequest); i { case 0: return &v.state @@ -26952,7 +28367,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[190].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConnectResponse); i { case 0: return &v.state @@ -26964,7 +28379,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[191].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AllocTimestampRequest); i { case 0: return &v.state @@ -26976,7 +28391,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[192].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AllocTimestampResponse); i { case 0: return &v.state @@ -26988,7 +28403,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[193].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateDatabaseRequest); i { case 0: return &v.state @@ -27000,7 +28415,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[194].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DropDatabaseRequest); i { case 0: return &v.state @@ -27012,7 +28427,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[195].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListDatabasesRequest); i { case 0: return &v.state @@ -27024,7 +28439,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[196].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListDatabasesResponse); i { case 0: return &v.state @@ -27036,7 +28451,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[197].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AlterDatabaseRequest); i { case 0: return &v.state @@ -27048,7 +28463,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[184].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[198].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DescribeDatabaseRequest); i { case 0: return &v.state @@ -27060,7 +28475,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[199].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DescribeDatabaseResponse); i { case 0: return &v.state @@ -27072,7 +28487,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[200].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReplicateMessageRequest); i { case 0: return &v.state @@ -27084,7 +28499,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[187].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[201].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReplicateMessageResponse); i { case 0: return &v.state @@ -27096,7 +28511,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[188].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[202].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ImportAuthPlaceholder); i { case 0: return &v.state @@ -27108,7 +28523,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[189].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[203].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetImportProgressAuthPlaceholder); i { case 0: return &v.state @@ -27120,7 +28535,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[190].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[204].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListImportsAuthPlaceholder); i { case 0: return &v.state @@ -27132,7 +28547,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[191].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[205].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RunAnalyzerRequest); i { case 0: return &v.state @@ -27144,7 +28559,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[192].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[206].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnalyzerToken); i { case 0: return &v.state @@ -27156,7 +28571,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[193].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[207].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnalyzerResult); i { case 0: return &v.state @@ -27168,7 +28583,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[194].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[208].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RunAnalyzerResponse); i { case 0: return &v.state @@ -27180,7 +28595,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[195].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[209].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FileResourceInfo); i { case 0: return &v.state @@ -27192,7 +28607,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[196].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[210].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddFileResourceRequest); i { case 0: return &v.state @@ -27204,7 +28619,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[197].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[211].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoveFileResourceRequest); i { case 0: return &v.state @@ -27216,7 +28631,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[198].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[212].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListFileResourcesRequest); i { case 0: return &v.state @@ -27228,7 +28643,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[199].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[213].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListFileResourcesResponse); i { case 0: return &v.state @@ -27240,7 +28655,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[200].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[214].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddUserTagsRequest); i { case 0: return &v.state @@ -27252,7 +28667,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[201].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[215].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteUserTagsRequest); i { case 0: return &v.state @@ -27264,7 +28679,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[202].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[216].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetUserTagsRequest); i { case 0: return &v.state @@ -27276,7 +28691,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[203].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[217].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetUserTagsResponse); i { case 0: return &v.state @@ -27288,7 +28703,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[204].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[218].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListUsersWithTagRequest); i { case 0: return &v.state @@ -27300,7 +28715,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[205].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[219].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListUsersWithTagResponse); i { case 0: return &v.state @@ -27312,7 +28727,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[206].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[220].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateRowPolicyRequest); i { case 0: return &v.state @@ -27324,7 +28739,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[207].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[221].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DropRowPolicyRequest); i { case 0: return &v.state @@ -27336,7 +28751,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[208].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[222].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListRowPoliciesRequest); i { case 0: return &v.state @@ -27348,7 +28763,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[209].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[223].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RowPolicy); i { case 0: return &v.state @@ -27360,7 +28775,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[210].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[224].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListRowPoliciesResponse); i { case 0: return &v.state @@ -27372,7 +28787,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[211].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[225].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateReplicateConfigurationRequest); i { case 0: return &v.state @@ -27384,7 +28799,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[212].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[226].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetReplicateConfigurationRequest); i { case 0: return &v.state @@ -27396,7 +28811,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[213].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[227].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetReplicateConfigurationResponse); i { case 0: return &v.state @@ -27408,7 +28823,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[214].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[228].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetReplicateInfoRequest); i { case 0: return &v.state @@ -27420,7 +28835,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[215].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[229].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetReplicateInfoResponse); i { case 0: return &v.state @@ -27432,7 +28847,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[216].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[230].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReplicateMessage); i { case 0: return &v.state @@ -27444,7 +28859,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[217].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[231].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReplicateRequest); i { case 0: return &v.state @@ -27456,7 +28871,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[218].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[232].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReplicateConfirmedMessageInfo); i { case 0: return &v.state @@ -27468,7 +28883,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[219].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[233].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReplicateResponse); i { case 0: return &v.state @@ -27480,7 +28895,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[220].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[234].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DumpMessagesRequest); i { case 0: return &v.state @@ -27492,7 +28907,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[221].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[235].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DumpMessagesResponse); i { case 0: return &v.state @@ -27504,7 +28919,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[222].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[236].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TruncateCollectionRequest); i { case 0: return &v.state @@ -27516,7 +28931,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[223].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[237].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TruncateCollectionResponse); i { case 0: return &v.state @@ -27528,7 +28943,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[224].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[238].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ComputePhraseMatchSlopRequest); i { case 0: return &v.state @@ -27540,7 +28955,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[225].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[239].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ComputePhraseMatchSlopResponse); i { case 0: return &v.state @@ -27552,7 +28967,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[226].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[240].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateSnapshotRequest); i { case 0: return &v.state @@ -27564,7 +28979,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[227].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[241].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DropSnapshotRequest); i { case 0: return &v.state @@ -27576,7 +28991,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[228].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[242].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListSnapshotsRequest); i { case 0: return &v.state @@ -27588,7 +29003,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[229].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[243].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListSnapshotsResponse); i { case 0: return &v.state @@ -27600,7 +29015,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[230].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[244].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DescribeSnapshotRequest); i { case 0: return &v.state @@ -27612,7 +29027,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[231].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[245].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DescribeSnapshotResponse); i { case 0: return &v.state @@ -27624,7 +29039,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[232].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[246].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RestoreSnapshotRequest); i { case 0: return &v.state @@ -27636,7 +29051,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[233].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[247].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RestoreSnapshotResponse); i { case 0: return &v.state @@ -27648,7 +29063,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[234].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[248].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RestoreSnapshotInfo); i { case 0: return &v.state @@ -27660,7 +29075,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[235].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[249].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRestoreSnapshotStateRequest); i { case 0: return &v.state @@ -27672,7 +29087,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[236].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[250].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRestoreSnapshotStateResponse); i { case 0: return &v.state @@ -27684,7 +29099,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[237].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[251].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListRestoreSnapshotJobsRequest); i { case 0: return &v.state @@ -27696,7 +29111,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[238].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[252].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListRestoreSnapshotJobsResponse); i { case 0: return &v.state @@ -27708,7 +29123,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[239].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[253].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PinSnapshotDataRequest); i { case 0: return &v.state @@ -27720,7 +29135,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[240].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[254].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PinSnapshotDataResponse); i { case 0: return &v.state @@ -27732,7 +29147,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[241].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[255].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UnpinSnapshotDataRequest); i { case 0: return &v.state @@ -27744,7 +29159,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[242].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[256].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AlterCollectionSchemaRequest); i { case 0: return &v.state @@ -27756,7 +29171,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[243].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[257].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AlterCollectionSchemaResponse); i { case 0: return &v.state @@ -27768,7 +29183,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[244].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[258].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BatchUpdateManifestRequest); i { case 0: return &v.state @@ -27780,7 +29195,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[245].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[259].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BatchUpdateManifestItem); i { case 0: return &v.state @@ -27792,7 +29207,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[246].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[260].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientHeartbeatRequest); i { case 0: return &v.state @@ -27804,7 +29219,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[247].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[261].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientHeartbeatResponse); i { case 0: return &v.state @@ -27816,7 +29231,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[248].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[262].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetClientTelemetryRequest); i { case 0: return &v.state @@ -27828,7 +29243,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[249].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[263].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientTelemetry); i { case 0: return &v.state @@ -27840,7 +29255,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[250].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[264].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetClientTelemetryResponse); i { case 0: return &v.state @@ -27852,7 +29267,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[251].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[265].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PushClientCommandRequest); i { case 0: return &v.state @@ -27864,7 +29279,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[252].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[266].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PushClientCommandResponse); i { case 0: return &v.state @@ -27876,7 +29291,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[253].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[267].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteClientCommandRequest); i { case 0: return &v.state @@ -27888,7 +29303,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[254].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[268].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteClientCommandResponse); i { case 0: return &v.state @@ -27900,7 +29315,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[255].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[269].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RefreshExternalCollectionRequest); i { case 0: return &v.state @@ -27912,7 +29327,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[256].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[270].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RefreshExternalCollectionResponse); i { case 0: return &v.state @@ -27924,7 +29339,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[257].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[271].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRefreshExternalCollectionProgressRequest); i { case 0: return &v.state @@ -27936,7 +29351,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[258].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[272].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RefreshExternalCollectionJobInfo); i { case 0: return &v.state @@ -27948,7 +29363,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[259].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[273].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRefreshExternalCollectionProgressResponse); i { case 0: return &v.state @@ -27960,7 +29375,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[260].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[274].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListRefreshExternalCollectionJobsRequest); i { case 0: return &v.state @@ -27972,7 +29387,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[261].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[275].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListRefreshExternalCollectionJobsResponse); i { case 0: return &v.state @@ -27984,7 +29399,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[284].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[298].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AlterCollectionSchemaRequest_FieldInfo); i { case 0: return &v.state @@ -27996,7 +29411,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[285].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[299].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AlterCollectionSchemaRequest_AddRequest); i { case 0: return &v.state @@ -28008,7 +29423,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[286].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[300].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AlterCollectionSchemaRequest_DropRequest); i { case 0: return &v.state @@ -28020,7 +29435,7 @@ func file_milvus_proto_init() { return nil } } - file_milvus_proto_msgTypes[287].Exporter = func(v interface{}, i int) interface{} { + file_milvus_proto_msgTypes[301].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AlterCollectionSchemaRequest_Action); i { case 0: return &v.state @@ -28033,43 +29448,44 @@ func file_milvus_proto_init() { } } } - file_milvus_proto_msgTypes[49].OneofWrappers = []interface{}{} - file_milvus_proto_msgTypes[55].OneofWrappers = []interface{}{} - file_milvus_proto_msgTypes[58].OneofWrappers = []interface{}{} - file_milvus_proto_msgTypes[59].OneofWrappers = []interface{}{ + file_milvus_proto_msgTypes[63].OneofWrappers = []interface{}{} + file_milvus_proto_msgTypes[69].OneofWrappers = []interface{}{} + file_milvus_proto_msgTypes[71].OneofWrappers = []interface{}{} + file_milvus_proto_msgTypes[72].OneofWrappers = []interface{}{} + file_milvus_proto_msgTypes[73].OneofWrappers = []interface{}{ (*SearchRequest_PlaceholderGroup)(nil), (*SearchRequest_Ids)(nil), } - file_milvus_proto_msgTypes[62].OneofWrappers = []interface{}{} - file_milvus_proto_msgTypes[65].OneofWrappers = []interface{}{} - file_milvus_proto_msgTypes[68].OneofWrappers = []interface{}{ + file_milvus_proto_msgTypes[76].OneofWrappers = []interface{}{} + file_milvus_proto_msgTypes[79].OneofWrappers = []interface{}{} + file_milvus_proto_msgTypes[82].OneofWrappers = []interface{}{ (*QueryCursor_StrPk)(nil), (*QueryCursor_IntPk)(nil), } - file_milvus_proto_msgTypes[70].OneofWrappers = []interface{}{ + file_milvus_proto_msgTypes[84].OneofWrappers = []interface{}{ (*VectorsArray_IdArray)(nil), (*VectorsArray_DataArray)(nil), } - file_milvus_proto_msgTypes[72].OneofWrappers = []interface{}{ + file_milvus_proto_msgTypes[86].OneofWrappers = []interface{}{ (*CalcDistanceResults_IntDist)(nil), (*CalcDistanceResults_FloatDist)(nil), } - file_milvus_proto_msgTypes[217].OneofWrappers = []interface{}{ + file_milvus_proto_msgTypes[231].OneofWrappers = []interface{}{ (*ReplicateRequest_ReplicateMessage)(nil), } - file_milvus_proto_msgTypes[219].OneofWrappers = []interface{}{ + file_milvus_proto_msgTypes[233].OneofWrappers = []interface{}{ (*ReplicateResponse_ReplicateConfirmedMessageInfo)(nil), } - file_milvus_proto_msgTypes[221].OneofWrappers = []interface{}{ + file_milvus_proto_msgTypes[235].OneofWrappers = []interface{}{ (*DumpMessagesResponse_Status)(nil), (*DumpMessagesResponse_Message)(nil), } - file_milvus_proto_msgTypes[286].OneofWrappers = []interface{}{ + file_milvus_proto_msgTypes[300].OneofWrappers = []interface{}{ (*AlterCollectionSchemaRequest_DropRequest_FieldName)(nil), (*AlterCollectionSchemaRequest_DropRequest_FieldId)(nil), (*AlterCollectionSchemaRequest_DropRequest_FunctionName)(nil), } - file_milvus_proto_msgTypes[287].OneofWrappers = []interface{}{ + file_milvus_proto_msgTypes[301].OneofWrappers = []interface{}{ (*AlterCollectionSchemaRequest_Action_AddRequest)(nil), (*AlterCollectionSchemaRequest_Action_DropRequest)(nil), } @@ -28079,7 +29495,7 @@ func file_milvus_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_milvus_proto_rawDesc, NumEnums: 9, - NumMessages: 288, + NumMessages: 302, NumExtensions: 1, NumServices: 3, }, diff --git a/go-api/milvuspb/milvus_grpc.pb.go b/go-api/milvuspb/milvus_grpc.pb.go index d559dbdd..f222ce02 100644 --- a/go-api/milvuspb/milvus_grpc.pb.go +++ b/go-api/milvuspb/milvus_grpc.pb.go @@ -43,6 +43,12 @@ const ( MilvusService_ReleasePartitions_FullMethodName = "/milvus.proto.milvus.MilvusService/ReleasePartitions" MilvusService_GetPartitionStatistics_FullMethodName = "/milvus.proto.milvus.MilvusService/GetPartitionStatistics" MilvusService_ShowPartitions_FullMethodName = "/milvus.proto.milvus.MilvusService/ShowPartitions" + MilvusService_CreateNamespace_FullMethodName = "/milvus.proto.milvus.MilvusService/CreateNamespace" + MilvusService_DescribeNamespace_FullMethodName = "/milvus.proto.milvus.MilvusService/DescribeNamespace" + MilvusService_ListNamespaces_FullMethodName = "/milvus.proto.milvus.MilvusService/ListNamespaces" + MilvusService_DropNamespace_FullMethodName = "/milvus.proto.milvus.MilvusService/DropNamespace" + MilvusService_HasNamespace_FullMethodName = "/milvus.proto.milvus.MilvusService/HasNamespace" + MilvusService_GetNamespaceStats_FullMethodName = "/milvus.proto.milvus.MilvusService/GetNamespaceStats" MilvusService_GetLoadingProgress_FullMethodName = "/milvus.proto.milvus.MilvusService/GetLoadingProgress" MilvusService_GetLoadState_FullMethodName = "/milvus.proto.milvus.MilvusService/GetLoadState" MilvusService_CreateAlias_FullMethodName = "/milvus.proto.milvus.MilvusService/CreateAlias" @@ -181,6 +187,12 @@ type MilvusServiceClient interface { ReleasePartitions(ctx context.Context, in *ReleasePartitionsRequest, opts ...grpc.CallOption) (*commonpb.Status, error) GetPartitionStatistics(ctx context.Context, in *GetPartitionStatisticsRequest, opts ...grpc.CallOption) (*GetPartitionStatisticsResponse, error) ShowPartitions(ctx context.Context, in *ShowPartitionsRequest, opts ...grpc.CallOption) (*ShowPartitionsResponse, error) + CreateNamespace(ctx context.Context, in *CreateNamespaceRequest, opts ...grpc.CallOption) (*CreateNamespaceResponse, error) + DescribeNamespace(ctx context.Context, in *DescribeNamespaceRequest, opts ...grpc.CallOption) (*DescribeNamespaceResponse, error) + ListNamespaces(ctx context.Context, in *ListNamespacesRequest, opts ...grpc.CallOption) (*ListNamespacesResponse, error) + DropNamespace(ctx context.Context, in *DropNamespaceRequest, opts ...grpc.CallOption) (*DropNamespaceResponse, error) + HasNamespace(ctx context.Context, in *HasNamespaceRequest, opts ...grpc.CallOption) (*HasNamespaceResponse, error) + GetNamespaceStats(ctx context.Context, in *GetNamespaceStatsRequest, opts ...grpc.CallOption) (*GetNamespaceStatsResponse, error) GetLoadingProgress(ctx context.Context, in *GetLoadingProgressRequest, opts ...grpc.CallOption) (*GetLoadingProgressResponse, error) GetLoadState(ctx context.Context, in *GetLoadStateRequest, opts ...grpc.CallOption) (*GetLoadStateResponse, error) CreateAlias(ctx context.Context, in *CreateAliasRequest, opts ...grpc.CallOption) (*commonpb.Status, error) @@ -543,6 +555,60 @@ func (c *milvusServiceClient) ShowPartitions(ctx context.Context, in *ShowPartit return out, nil } +func (c *milvusServiceClient) CreateNamespace(ctx context.Context, in *CreateNamespaceRequest, opts ...grpc.CallOption) (*CreateNamespaceResponse, error) { + out := new(CreateNamespaceResponse) + err := c.cc.Invoke(ctx, MilvusService_CreateNamespace_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *milvusServiceClient) DescribeNamespace(ctx context.Context, in *DescribeNamespaceRequest, opts ...grpc.CallOption) (*DescribeNamespaceResponse, error) { + out := new(DescribeNamespaceResponse) + err := c.cc.Invoke(ctx, MilvusService_DescribeNamespace_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *milvusServiceClient) ListNamespaces(ctx context.Context, in *ListNamespacesRequest, opts ...grpc.CallOption) (*ListNamespacesResponse, error) { + out := new(ListNamespacesResponse) + err := c.cc.Invoke(ctx, MilvusService_ListNamespaces_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *milvusServiceClient) DropNamespace(ctx context.Context, in *DropNamespaceRequest, opts ...grpc.CallOption) (*DropNamespaceResponse, error) { + out := new(DropNamespaceResponse) + err := c.cc.Invoke(ctx, MilvusService_DropNamespace_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *milvusServiceClient) HasNamespace(ctx context.Context, in *HasNamespaceRequest, opts ...grpc.CallOption) (*HasNamespaceResponse, error) { + out := new(HasNamespaceResponse) + err := c.cc.Invoke(ctx, MilvusService_HasNamespace_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *milvusServiceClient) GetNamespaceStats(ctx context.Context, in *GetNamespaceStatsRequest, opts ...grpc.CallOption) (*GetNamespaceStatsResponse, error) { + out := new(GetNamespaceStatsResponse) + err := c.cc.Invoke(ctx, MilvusService_GetNamespaceStats_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *milvusServiceClient) GetLoadingProgress(ctx context.Context, in *GetLoadingProgressRequest, opts ...grpc.CallOption) (*GetLoadingProgressResponse, error) { out := new(GetLoadingProgressResponse) err := c.cc.Invoke(ctx, MilvusService_GetLoadingProgress_FullMethodName, in, out, opts...) @@ -1607,6 +1673,12 @@ type MilvusServiceServer interface { ReleasePartitions(context.Context, *ReleasePartitionsRequest) (*commonpb.Status, error) GetPartitionStatistics(context.Context, *GetPartitionStatisticsRequest) (*GetPartitionStatisticsResponse, error) ShowPartitions(context.Context, *ShowPartitionsRequest) (*ShowPartitionsResponse, error) + CreateNamespace(context.Context, *CreateNamespaceRequest) (*CreateNamespaceResponse, error) + DescribeNamespace(context.Context, *DescribeNamespaceRequest) (*DescribeNamespaceResponse, error) + ListNamespaces(context.Context, *ListNamespacesRequest) (*ListNamespacesResponse, error) + DropNamespace(context.Context, *DropNamespaceRequest) (*DropNamespaceResponse, error) + HasNamespace(context.Context, *HasNamespaceRequest) (*HasNamespaceResponse, error) + GetNamespaceStats(context.Context, *GetNamespaceStatsRequest) (*GetNamespaceStatsResponse, error) GetLoadingProgress(context.Context, *GetLoadingProgressRequest) (*GetLoadingProgressResponse, error) GetLoadState(context.Context, *GetLoadStateRequest) (*GetLoadStateResponse, error) CreateAlias(context.Context, *CreateAliasRequest) (*commonpb.Status, error) @@ -1833,6 +1905,24 @@ func (UnimplementedMilvusServiceServer) GetPartitionStatistics(context.Context, func (UnimplementedMilvusServiceServer) ShowPartitions(context.Context, *ShowPartitionsRequest) (*ShowPartitionsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ShowPartitions not implemented") } +func (UnimplementedMilvusServiceServer) CreateNamespace(context.Context, *CreateNamespaceRequest) (*CreateNamespaceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateNamespace not implemented") +} +func (UnimplementedMilvusServiceServer) DescribeNamespace(context.Context, *DescribeNamespaceRequest) (*DescribeNamespaceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DescribeNamespace not implemented") +} +func (UnimplementedMilvusServiceServer) ListNamespaces(context.Context, *ListNamespacesRequest) (*ListNamespacesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListNamespaces not implemented") +} +func (UnimplementedMilvusServiceServer) DropNamespace(context.Context, *DropNamespaceRequest) (*DropNamespaceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DropNamespace not implemented") +} +func (UnimplementedMilvusServiceServer) HasNamespace(context.Context, *HasNamespaceRequest) (*HasNamespaceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method HasNamespace not implemented") +} +func (UnimplementedMilvusServiceServer) GetNamespaceStats(context.Context, *GetNamespaceStatsRequest) (*GetNamespaceStatsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetNamespaceStats not implemented") +} func (UnimplementedMilvusServiceServer) GetLoadingProgress(context.Context, *GetLoadingProgressRequest) (*GetLoadingProgressResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetLoadingProgress not implemented") } @@ -2571,6 +2661,114 @@ func _MilvusService_ShowPartitions_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _MilvusService_CreateNamespace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateNamespaceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MilvusServiceServer).CreateNamespace(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MilvusService_CreateNamespace_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MilvusServiceServer).CreateNamespace(ctx, req.(*CreateNamespaceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MilvusService_DescribeNamespace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DescribeNamespaceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MilvusServiceServer).DescribeNamespace(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MilvusService_DescribeNamespace_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MilvusServiceServer).DescribeNamespace(ctx, req.(*DescribeNamespaceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MilvusService_ListNamespaces_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListNamespacesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MilvusServiceServer).ListNamespaces(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MilvusService_ListNamespaces_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MilvusServiceServer).ListNamespaces(ctx, req.(*ListNamespacesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MilvusService_DropNamespace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DropNamespaceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MilvusServiceServer).DropNamespace(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MilvusService_DropNamespace_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MilvusServiceServer).DropNamespace(ctx, req.(*DropNamespaceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MilvusService_HasNamespace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HasNamespaceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MilvusServiceServer).HasNamespace(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MilvusService_HasNamespace_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MilvusServiceServer).HasNamespace(ctx, req.(*HasNamespaceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MilvusService_GetNamespaceStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetNamespaceStatsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MilvusServiceServer).GetNamespaceStats(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MilvusService_GetNamespaceStats_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MilvusServiceServer).GetNamespaceStats(ctx, req.(*GetNamespaceStatsRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _MilvusService_GetLoadingProgress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetLoadingProgressRequest) if err := dec(in); err != nil { @@ -4657,6 +4855,30 @@ var MilvusService_ServiceDesc = grpc.ServiceDesc{ MethodName: "ShowPartitions", Handler: _MilvusService_ShowPartitions_Handler, }, + { + MethodName: "CreateNamespace", + Handler: _MilvusService_CreateNamespace_Handler, + }, + { + MethodName: "DescribeNamespace", + Handler: _MilvusService_DescribeNamespace_Handler, + }, + { + MethodName: "ListNamespaces", + Handler: _MilvusService_ListNamespaces_Handler, + }, + { + MethodName: "DropNamespace", + Handler: _MilvusService_DropNamespace_Handler, + }, + { + MethodName: "HasNamespace", + Handler: _MilvusService_HasNamespace_Handler, + }, + { + MethodName: "GetNamespaceStats", + Handler: _MilvusService_GetNamespaceStats_Handler, + }, { MethodName: "GetLoadingProgress", Handler: _MilvusService_GetLoadingProgress_Handler, diff --git a/proto/milvus.proto b/proto/milvus.proto index c9ed72bd..41a9292f 100644 --- a/proto/milvus.proto +++ b/proto/milvus.proto @@ -42,6 +42,13 @@ service MilvusService { rpc GetPartitionStatistics(GetPartitionStatisticsRequest) returns (GetPartitionStatisticsResponse) {} rpc ShowPartitions(ShowPartitionsRequest) returns (ShowPartitionsResponse) {} + rpc CreateNamespace(CreateNamespaceRequest) returns (CreateNamespaceResponse) {} + rpc DescribeNamespace(DescribeNamespaceRequest) returns (DescribeNamespaceResponse) {} + rpc ListNamespaces(ListNamespacesRequest) returns (ListNamespacesResponse) {} + rpc DropNamespace(DropNamespaceRequest) returns (DropNamespaceResponse) {} + rpc HasNamespace(HasNamespaceRequest) returns (HasNamespaceResponse) {} + rpc GetNamespaceStats(GetNamespaceStatsRequest) returns (GetNamespaceStatsResponse) {} + rpc GetLoadingProgress(GetLoadingProgressRequest) returns (GetLoadingProgressResponse) {} rpc GetLoadState(GetLoadStateRequest) returns (GetLoadStateResponse) {} @@ -821,6 +828,132 @@ message ShowPartitionsResponse { repeated int64 inMemory_percentages = 6 [deprecated=true]; } +message NamespaceStats { + repeated common.KeyValuePair stats = 1; + int64 approx_entity_count = 2; + int64 entity_count = 3; + string entity_count_type = 4; + int64 logical_bytes = 5; + uint64 last_write_timestamp = 6; + uint64 last_write_utc_timestamp = 7; +} + +message NamespaceInfo { + string collection_name = 1; + string namespace_name = 2; + uint64 created_timestamp = 3; + uint64 created_utc_timestamp = 4; + string state = 5; + NamespaceStats stats = 6; +} + +message CreateNamespaceRequest { + option (common.privilege_ext_obj) = { + object_type: Collection + object_privilege: PrivilegeCreatePartition + object_name_index: 3 + }; + common.MsgBase base = 1; + string db_name = 2; + string collection_name = 3; + string namespace_name = 4; +} + +message CreateNamespaceResponse { + common.Status status = 1; + NamespaceInfo namespace = 2; +} + +message DescribeNamespaceRequest { + option (common.privilege_ext_obj) = { + object_type: Collection + object_privilege: PrivilegeShowPartitions + object_name_index: 3 + }; + common.MsgBase base = 1; + string db_name = 2; + string collection_name = 3; + string namespace_name = 4; +} + +message DescribeNamespaceResponse { + common.Status status = 1; + NamespaceInfo namespace = 2; +} + +message ListNamespacesRequest { + option (common.privilege_ext_obj) = { + object_type: Collection + object_privilege: PrivilegeShowPartitions + object_name_index: 3 + }; + common.MsgBase base = 1; + string db_name = 2; + string collection_name = 3; + string prefix = 4; + int64 page_size = 5; + string page_token = 6; +} + +message ListNamespacesResponse { + common.Status status = 1; + repeated NamespaceInfo namespaces = 2; + string next_page_token = 3; +} + +message DropNamespaceRequest { + option (common.privilege_ext_obj) = { + object_type: Collection + object_privilege: PrivilegeDropPartition + object_name_index: 3 + }; + common.MsgBase base = 1; + string db_name = 2; + string collection_name = 3; + string namespace_name = 4; +} + +message DropNamespaceResponse { + common.Status status = 1; + NamespaceInfo namespace = 2; +} + +message HasNamespaceRequest { + option (common.privilege_ext_obj) = { + object_type: Collection + object_privilege: PrivilegeHasPartition + object_name_index: 3 + }; + common.MsgBase base = 1; + string db_name = 2; + string collection_name = 3; + string namespace_name = 4; +} + +message HasNamespaceResponse { + common.Status status = 1; + bool value = 2; +} + +message GetNamespaceStatsRequest { + option (common.privilege_ext_obj) = { + object_type: Collection + object_privilege: PrivilegeShowPartitions + object_name_index: 3 + }; + common.MsgBase base = 1; + string db_name = 2; + string collection_name = 3; + string namespace_name = 4; + bool exact = 5; +} + +message GetNamespaceStatsResponse { + common.Status status = 1; + string namespace_name = 2; + NamespaceStats stats = 3; +} + message DescribeSegmentRequest { common.MsgBase base = 1; int64 collectionID = 2; @@ -1135,6 +1268,7 @@ message DeleteRequest { repeated uint32 hash_keys = 6; common.ConsistencyLevel consistency_level = 7; map expr_template_values = 8; + optional string namespace = 9; }