diff --git a/app/data/v1/data.pb.go b/app/data/v1/data.pb.go index 3a7663505..9cbf06a8a 100644 --- a/app/data/v1/data.pb.go +++ b/app/data/v1/data.pb.go @@ -4037,6 +4037,104 @@ func (*RemoveBinaryDataFromDatasetByIDsResponse) Descriptor() ([]byte, []int) { return file_app_data_v1_data_proto_rawDescGZIP(), []int{58} } +type BinaryMetadataToJSONLinesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BinaryMetadata []*BinaryMetadata `protobuf:"bytes,1,rep,name=binary_metadata,json=binaryMetadata,proto3" json:"binary_metadata,omitempty"` + Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` +} + +func (x *BinaryMetadataToJSONLinesRequest) Reset() { + *x = BinaryMetadataToJSONLinesRequest{} + mi := &file_app_data_v1_data_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BinaryMetadataToJSONLinesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BinaryMetadataToJSONLinesRequest) ProtoMessage() {} + +func (x *BinaryMetadataToJSONLinesRequest) ProtoReflect() protoreflect.Message { + mi := &file_app_data_v1_data_proto_msgTypes[59] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BinaryMetadataToJSONLinesRequest.ProtoReflect.Descriptor instead. +func (*BinaryMetadataToJSONLinesRequest) Descriptor() ([]byte, []int) { + return file_app_data_v1_data_proto_rawDescGZIP(), []int{59} +} + +func (x *BinaryMetadataToJSONLinesRequest) GetBinaryMetadata() []*BinaryMetadata { + if x != nil { + return x.BinaryMetadata + } + return nil +} + +func (x *BinaryMetadataToJSONLinesRequest) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +type BinaryMetadataToJSONLinesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + JsonLines []string `protobuf:"bytes,1,rep,name=json_lines,json=jsonLines,proto3" json:"json_lines,omitempty"` +} + +func (x *BinaryMetadataToJSONLinesResponse) Reset() { + *x = BinaryMetadataToJSONLinesResponse{} + mi := &file_app_data_v1_data_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BinaryMetadataToJSONLinesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BinaryMetadataToJSONLinesResponse) ProtoMessage() {} + +func (x *BinaryMetadataToJSONLinesResponse) ProtoReflect() protoreflect.Message { + mi := &file_app_data_v1_data_proto_msgTypes[60] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BinaryMetadataToJSONLinesResponse.ProtoReflect.Descriptor instead. +func (*BinaryMetadataToJSONLinesResponse) Descriptor() ([]byte, []int) { + return file_app_data_v1_data_proto_rawDescGZIP(), []int{60} +} + +func (x *BinaryMetadataToJSONLinesResponse) GetJsonLines() []string { + if x != nil { + return x.JsonLines + } + return nil +} + // CreateIndexRequest starts a custom index build type CreateIndexRequest struct { state protoimpl.MessageState @@ -4052,7 +4150,7 @@ type CreateIndexRequest struct { func (x *CreateIndexRequest) Reset() { *x = CreateIndexRequest{} - mi := &file_app_data_v1_data_proto_msgTypes[59] + mi := &file_app_data_v1_data_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4064,7 +4162,7 @@ func (x *CreateIndexRequest) String() string { func (*CreateIndexRequest) ProtoMessage() {} func (x *CreateIndexRequest) ProtoReflect() protoreflect.Message { - mi := &file_app_data_v1_data_proto_msgTypes[59] + mi := &file_app_data_v1_data_proto_msgTypes[61] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4077,7 +4175,7 @@ func (x *CreateIndexRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateIndexRequest.ProtoReflect.Descriptor instead. func (*CreateIndexRequest) Descriptor() ([]byte, []int) { - return file_app_data_v1_data_proto_rawDescGZIP(), []int{59} + return file_app_data_v1_data_proto_rawDescGZIP(), []int{61} } func (x *CreateIndexRequest) GetOrganizationId() string { @@ -4116,7 +4214,7 @@ type CreateIndexResponse struct { func (x *CreateIndexResponse) Reset() { *x = CreateIndexResponse{} - mi := &file_app_data_v1_data_proto_msgTypes[60] + mi := &file_app_data_v1_data_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4128,7 +4226,7 @@ func (x *CreateIndexResponse) String() string { func (*CreateIndexResponse) ProtoMessage() {} func (x *CreateIndexResponse) ProtoReflect() protoreflect.Message { - mi := &file_app_data_v1_data_proto_msgTypes[60] + mi := &file_app_data_v1_data_proto_msgTypes[62] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4141,7 +4239,7 @@ func (x *CreateIndexResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateIndexResponse.ProtoReflect.Descriptor instead. func (*CreateIndexResponse) Descriptor() ([]byte, []int) { - return file_app_data_v1_data_proto_rawDescGZIP(), []int{60} + return file_app_data_v1_data_proto_rawDescGZIP(), []int{62} } // DeleteIndexRequest drops the specified custom index from a collection @@ -4158,7 +4256,7 @@ type DeleteIndexRequest struct { func (x *DeleteIndexRequest) Reset() { *x = DeleteIndexRequest{} - mi := &file_app_data_v1_data_proto_msgTypes[61] + mi := &file_app_data_v1_data_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4170,7 +4268,7 @@ func (x *DeleteIndexRequest) String() string { func (*DeleteIndexRequest) ProtoMessage() {} func (x *DeleteIndexRequest) ProtoReflect() protoreflect.Message { - mi := &file_app_data_v1_data_proto_msgTypes[61] + mi := &file_app_data_v1_data_proto_msgTypes[63] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4183,7 +4281,7 @@ func (x *DeleteIndexRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteIndexRequest.ProtoReflect.Descriptor instead. func (*DeleteIndexRequest) Descriptor() ([]byte, []int) { - return file_app_data_v1_data_proto_rawDescGZIP(), []int{61} + return file_app_data_v1_data_proto_rawDescGZIP(), []int{63} } func (x *DeleteIndexRequest) GetOrganizationId() string { @@ -4222,7 +4320,7 @@ type DeleteIndexResponse struct { func (x *DeleteIndexResponse) Reset() { *x = DeleteIndexResponse{} - mi := &file_app_data_v1_data_proto_msgTypes[62] + mi := &file_app_data_v1_data_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4234,7 +4332,7 @@ func (x *DeleteIndexResponse) String() string { func (*DeleteIndexResponse) ProtoMessage() {} func (x *DeleteIndexResponse) ProtoReflect() protoreflect.Message { - mi := &file_app_data_v1_data_proto_msgTypes[62] + mi := &file_app_data_v1_data_proto_msgTypes[64] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4247,7 +4345,7 @@ func (x *DeleteIndexResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteIndexResponse.ProtoReflect.Descriptor instead. func (*DeleteIndexResponse) Descriptor() ([]byte, []int) { - return file_app_data_v1_data_proto_rawDescGZIP(), []int{62} + return file_app_data_v1_data_proto_rawDescGZIP(), []int{64} } // ListIndexesRequest returns all the indexes for a given collection @@ -4263,7 +4361,7 @@ type ListIndexesRequest struct { func (x *ListIndexesRequest) Reset() { *x = ListIndexesRequest{} - mi := &file_app_data_v1_data_proto_msgTypes[63] + mi := &file_app_data_v1_data_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4275,7 +4373,7 @@ func (x *ListIndexesRequest) String() string { func (*ListIndexesRequest) ProtoMessage() {} func (x *ListIndexesRequest) ProtoReflect() protoreflect.Message { - mi := &file_app_data_v1_data_proto_msgTypes[63] + mi := &file_app_data_v1_data_proto_msgTypes[65] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4288,7 +4386,7 @@ func (x *ListIndexesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListIndexesRequest.ProtoReflect.Descriptor instead. func (*ListIndexesRequest) Descriptor() ([]byte, []int) { - return file_app_data_v1_data_proto_rawDescGZIP(), []int{63} + return file_app_data_v1_data_proto_rawDescGZIP(), []int{65} } func (x *ListIndexesRequest) GetOrganizationId() string { @@ -4322,7 +4420,7 @@ type ListIndexesResponse struct { func (x *ListIndexesResponse) Reset() { *x = ListIndexesResponse{} - mi := &file_app_data_v1_data_proto_msgTypes[64] + mi := &file_app_data_v1_data_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4334,7 +4432,7 @@ func (x *ListIndexesResponse) String() string { func (*ListIndexesResponse) ProtoMessage() {} func (x *ListIndexesResponse) ProtoReflect() protoreflect.Message { - mi := &file_app_data_v1_data_proto_msgTypes[64] + mi := &file_app_data_v1_data_proto_msgTypes[66] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4347,7 +4445,7 @@ func (x *ListIndexesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListIndexesResponse.ProtoReflect.Descriptor instead. func (*ListIndexesResponse) Descriptor() ([]byte, []int) { - return file_app_data_v1_data_proto_rawDescGZIP(), []int{64} + return file_app_data_v1_data_proto_rawDescGZIP(), []int{66} } func (x *ListIndexesResponse) GetIndexes() []*Index { @@ -4372,7 +4470,7 @@ type Index struct { func (x *Index) Reset() { *x = Index{} - mi := &file_app_data_v1_data_proto_msgTypes[65] + mi := &file_app_data_v1_data_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4384,7 +4482,7 @@ func (x *Index) String() string { func (*Index) ProtoMessage() {} func (x *Index) ProtoReflect() protoreflect.Message { - mi := &file_app_data_v1_data_proto_msgTypes[65] + mi := &file_app_data_v1_data_proto_msgTypes[67] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4397,7 +4495,7 @@ func (x *Index) ProtoReflect() protoreflect.Message { // Deprecated: Use Index.ProtoReflect.Descriptor instead. func (*Index) Descriptor() ([]byte, []int) { - return file_app_data_v1_data_proto_rawDescGZIP(), []int{65} + return file_app_data_v1_data_proto_rawDescGZIP(), []int{67} } func (x *Index) GetCollectionType() IndexableCollection { @@ -5057,317 +5155,338 @@ var file_app_data_v1_data_proto_rawDesc = []byte{ 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x28, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x42, 0x79, 0x49, - 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe8, 0x01, 0x0a, 0x12, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x0f, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x61, 0x62, 0x6c, 0x65, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x69, - 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x73, 0x70, - 0x65, 0x63, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x53, - 0x70, 0x65, 0x63, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe8, 0x01, 0x0a, - 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x0f, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x61, 0x62, - 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0d, - 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 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, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, - 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc9, - 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x4e, - 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, - 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, - 0x0a, 0x0d, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x69, 0x70, - 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x48, 0x0a, 0x13, 0x4c, 0x69, - 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x31, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x07, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x65, 0x73, 0x22, 0x90, 0x02, 0x0a, 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4e, - 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, - 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, - 0x0a, 0x0d, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x53, 0x70, 0x65, 0x63, 0x12, 0x3d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x76, 0x69, 0x61, + 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x20, 0x42, + 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x6f, 0x4a, + 0x53, 0x4f, 0x4e, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x49, 0x0a, 0x0f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, + 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x61, + 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x62, 0x69, 0x6e, 0x61, + 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x42, + 0x0a, 0x21, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x54, 0x6f, 0x4a, 0x53, 0x4f, 0x4e, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, + 0x65, 0x73, 0x22, 0xe8, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x69, + 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x69, 0x70, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0c, + 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x70, 0x65, 0x63, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x15, 0x0a, + 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe8, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, + 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, + 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x70, + 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 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, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x15, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc9, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, + 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x25, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, + 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x0c, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x48, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x42, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, - 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x2a, 0x49, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x52, 0x44, 0x45, 0x52, - 0x5f, 0x44, 0x45, 0x53, 0x43, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x13, 0x0a, - 0x0f, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x41, 0x53, 0x43, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, - 0x10, 0x02, 0x2a, 0x90, 0x01, 0x0a, 0x0e, 0x54, 0x61, 0x67, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x41, 0x47, 0x53, 0x5f, 0x46, 0x49, - 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x41, 0x47, 0x53, 0x5f, - 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x54, 0x43, - 0x48, 0x5f, 0x42, 0x59, 0x5f, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x41, 0x47, - 0x53, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x41, - 0x47, 0x47, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x41, 0x47, 0x53, 0x5f, 0x46, - 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x54, 0x41, 0x47, - 0x47, 0x45, 0x44, 0x10, 0x03, 0x2a, 0xbe, 0x01, 0x0a, 0x15, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, - 0x72, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x28, 0x0a, 0x24, 0x54, 0x41, 0x42, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, - 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x41, 0x42, - 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x01, - 0x12, 0x28, 0x0a, 0x24, 0x54, 0x41, 0x42, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, - 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x4f, 0x54, - 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x10, 0x02, 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x41, - 0x42, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, - 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x49, 0x50, 0x45, 0x4c, 0x49, 0x4e, 0x45, 0x5f, - 0x53, 0x49, 0x4e, 0x4b, 0x10, 0x03, 0x2a, 0x87, 0x01, 0x0a, 0x13, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, - 0x0a, 0x20, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, - 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x41, 0x42, 0x4c, - 0x45, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x4f, 0x54, - 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x10, 0x01, 0x12, 0x26, 0x0a, 0x22, 0x49, 0x4e, 0x44, 0x45, - 0x58, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x50, 0x49, 0x50, 0x45, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x10, 0x02, - 0x2a, 0x61, 0x0a, 0x0c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, - 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x4f, + 0x64, 0x65, 0x78, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x22, 0x90, 0x02, 0x0a, + 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4e, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x25, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, + 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x0c, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0c, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x70, 0x65, 0x63, 0x12, 0x3d, + 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x6f, 0x72, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x2a, + 0x49, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x4f, 0x52, - 0x5f, 0x56, 0x49, 0x41, 0x4d, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4e, 0x44, 0x45, 0x58, - 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x45, - 0x52, 0x10, 0x02, 0x32, 0xfe, 0x18, 0x0a, 0x0b, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x12, 0x77, 0x0a, 0x13, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, - 0x74, 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x2e, 0x76, 0x69, 0x61, - 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, - 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, - 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x75, - 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x69, 0x0a, 0x10, - 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x53, 0x51, 0x4c, - 0x12, 0x29, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x14, 0x0a, 0x10, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x45, 0x4e, 0x44, + 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x41, + 0x53, 0x43, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x2a, 0x90, 0x01, 0x0a, 0x0e, 0x54, + 0x61, 0x67, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, + 0x1c, 0x54, 0x41, 0x47, 0x53, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x20, 0x0a, 0x1c, 0x54, 0x41, 0x47, 0x53, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x42, 0x59, 0x5f, 0x4f, 0x52, 0x10, + 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x41, 0x47, 0x53, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1d, + 0x0a, 0x19, 0x54, 0x41, 0x47, 0x53, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x54, 0x41, 0x47, 0x47, 0x45, 0x44, 0x10, 0x03, 0x2a, 0xbe, 0x01, + 0x0a, 0x15, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x24, 0x54, 0x41, 0x42, 0x55, 0x4c, + 0x41, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x41, 0x42, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x44, 0x41, 0x54, + 0x41, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, + 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x54, 0x41, 0x42, 0x55, + 0x4c, 0x41, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x48, 0x4f, 0x54, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, + 0x10, 0x02, 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x41, 0x42, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x44, 0x41, + 0x54, 0x41, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, + 0x49, 0x50, 0x45, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x10, 0x03, 0x2a, 0x87, + 0x01, 0x0a, 0x13, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x41, + 0x42, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, + 0x49, 0x4e, 0x44, 0x45, 0x58, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x4f, 0x54, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x10, 0x01, + 0x12, 0x26, 0x0a, 0x22, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x43, 0x4f, + 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x49, 0x50, 0x45, 0x4c, 0x49, 0x4e, + 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x10, 0x02, 0x2a, 0x61, 0x0a, 0x0c, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x4e, 0x44, 0x45, + 0x58, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x44, 0x45, 0x58, + 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x56, 0x49, 0x41, 0x4d, 0x10, 0x01, 0x12, + 0x1a, 0x0a, 0x16, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x4f, 0x52, + 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x45, 0x52, 0x10, 0x02, 0x32, 0x85, 0x1a, 0x0a, 0x0b, + 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x77, 0x0a, 0x13, 0x54, + 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x2c, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2d, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, - 0x79, 0x53, 0x51, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x69, - 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, - 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x53, 0x51, 0x4c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x10, 0x54, 0x61, 0x62, 0x75, 0x6c, - 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x4d, 0x51, 0x4c, 0x12, 0x29, 0x2e, 0x76, 0x69, - 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, - 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x4d, 0x51, 0x4c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, - 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, - 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x4d, 0x51, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x11, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x62, 0x75, - 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, - 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x62, - 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x30, 0x01, 0x12, 0x75, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x54, - 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2d, 0x2e, 0x76, 0x69, 0x61, - 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x03, 0x88, 0x02, 0x01, 0x12, 0x69, 0x0a, 0x10, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x79, 0x53, 0x51, 0x4c, 0x12, 0x29, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, + 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x75, + 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x53, 0x51, 0x4c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x42, 0x79, 0x53, 0x51, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x69, 0x0a, 0x10, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, + 0x4d, 0x51, 0x4c, 0x12, 0x29, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x42, 0x79, 0x4d, 0x51, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, + 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x4d, + 0x51, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x11, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x2a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x76, 0x69, + 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x75, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x76, 0x69, 0x61, 0x6d, - 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x12, 0x42, 0x69, 0x6e, - 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, - 0x2b, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, - 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x76, - 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, - 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0f, 0x42, 0x69, - 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x28, 0x2e, - 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, - 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x49, 0x44, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, + 0x74, 0x61, 0x12, 0x2d, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x54, + 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2e, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x54, 0x61, + 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x6f, 0x0a, 0x12, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, + 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, - 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x75, - 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, - 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, - 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x81, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x61, 0x72, - 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x31, 0x2e, - 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, - 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x32, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, - 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x69, - 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x2e, 0x2e, - 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, - 0x61, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, - 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, - 0x61, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, - 0x01, 0x0a, 0x18, 0x41, 0x64, 0x64, 0x54, 0x61, 0x67, 0x73, 0x54, 0x6f, 0x42, 0x69, 0x6e, 0x61, - 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x31, 0x2e, 0x76, 0x69, - 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, + 0x74, 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0f, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x28, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x29, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x49, + 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x11, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x2a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x76, 0x69, + 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x31, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, + 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, + 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x15, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x2e, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, + 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, + 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x18, 0x41, 0x64, 0x64, 0x54, 0x61, + 0x67, 0x73, 0x54, 0x6f, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, + 0x49, 0x44, 0x73, 0x12, 0x31, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x61, 0x67, 0x73, 0x54, 0x6f, + 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, + 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x61, 0x67, + 0x73, 0x54, 0x6f, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x49, + 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x54, 0x61, 0x67, 0x73, 0x54, 0x6f, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, - 0x74, 0x61, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, + 0x74, 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x34, 0x2e, 0x76, 0x69, 0x61, + 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, + 0x64, 0x54, 0x61, 0x67, 0x73, 0x54, 0x6f, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x35, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x61, 0x67, 0x73, 0x54, 0x6f, 0x42, 0x69, 0x6e, + 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x90, 0x01, 0x0a, + 0x1d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x67, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, + 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x36, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x61, 0x67, 0x73, 0x54, 0x6f, 0x42, 0x69, 0x6e, 0x61, 0x72, - 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x54, 0x61, 0x67, 0x73, 0x54, 0x6f, - 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x12, 0x34, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x61, 0x67, 0x73, 0x54, 0x6f, 0x42, - 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, - 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x54, - 0x61, 0x67, 0x73, 0x54, 0x6f, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, - 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x03, 0x88, 0x02, 0x01, 0x12, 0x90, 0x01, 0x0a, 0x1d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, - 0x61, 0x67, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, - 0x61, 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x36, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, + 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x67, 0x73, 0x46, 0x72, 0x6f, 0x6d, + 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x67, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, - 0x74, 0x61, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, + 0x74, 0x61, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x9e, 0x01, 0x0a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x67, 0x73, 0x46, 0x72, + 0x6f, 0x6d, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x12, 0x39, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, + 0x67, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, + 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x3a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x67, 0x73, 0x46, 0x72, 0x6f, + 0x6d, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, + 0x12, 0x62, 0x0a, 0x0c, 0x54, 0x61, 0x67, 0x73, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x25, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, + 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x42, + 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x03, 0x88, 0x02, 0x01, 0x12, 0x84, 0x01, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x42, 0x6f, 0x75, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x54, 0x6f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x79, + 0x49, 0x44, 0x12, 0x32, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x42, 0x6f, 0x78, 0x54, 0x6f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, + 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x6f, 0x75, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x54, 0x6f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, + 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x93, 0x01, 0x0a, 0x1e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, + 0x78, 0x46, 0x72, 0x6f, 0x6d, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x79, 0x49, 0x44, 0x12, 0x37, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x67, 0x73, 0x46, 0x72, 0x6f, 0x6d, - 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9e, 0x01, 0x0a, 0x20, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x54, 0x61, 0x67, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, - 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x39, 0x2e, 0x76, - 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x67, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x69, - 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, + 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x42, 0x6f, 0x78, 0x46, 0x72, 0x6f, 0x6d, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x79, 0x49, 0x44, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x54, 0x61, 0x67, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, - 0x61, 0x74, 0x61, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x62, 0x0a, 0x0c, 0x54, 0x61, 0x67, 0x73, - 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x25, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, - 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x67, 0x73, - 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x26, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, - 0x76, 0x31, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x84, 0x01, 0x0a, - 0x19, 0x41, 0x64, 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x54, - 0x6f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x79, 0x49, 0x44, 0x12, 0x32, 0x2e, 0x76, 0x69, 0x61, - 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, - 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x54, 0x6f, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, + 0x65, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x46, 0x72, 0x6f, 0x6d, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x89, 0x01, 0x0a, 0x19, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, + 0x78, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, + 0x32, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, + 0x6f, 0x78, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x6c, 0x0a, + 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, + 0x6f, 0x78, 0x12, 0x2a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x75, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, - 0x54, 0x6f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x93, 0x01, 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6f, - 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x46, 0x72, 0x6f, 0x6d, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x42, 0x79, 0x49, 0x44, 0x12, 0x37, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, - 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x46, 0x72, 0x6f, 0x6d, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x38, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x42, 0x6f, 0x78, 0x46, 0x72, 0x6f, 0x6d, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x79, 0x49, - 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x19, 0x42, 0x6f, - 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x42, - 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x32, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, - 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x42, 0x79, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x76, 0x69, - 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x42, - 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x42, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x6c, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, - 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x12, 0x2a, 0x2e, 0x76, 0x69, 0x61, - 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, - 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, - 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x76, + 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x42, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x15, 0x47, + 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2e, + 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, + 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x8a, 0x01, 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, + 0x61, 0x54, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, + 0x34, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, + 0x54, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x69, 0x6e, 0x61, + 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x54, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x42, + 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x99, 0x01, 0x0a, + 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, + 0x61, 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x42, 0x79, 0x49, 0x44, + 0x73, 0x12, 0x39, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x69, 0x6e, 0x61, 0x72, + 0x79, 0x44, 0x61, 0x74, 0x61, 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, + 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x76, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, + 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x42, 0x79, 0x49, 0x44, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x19, 0x42, 0x69, 0x6e, + 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x6f, 0x4a, 0x53, 0x4f, + 0x4e, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x32, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, + 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x6f, 0x4a, 0x53, 0x4f, 0x4e, 0x4c, 0x69, + 0x6e, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x76, 0x69, 0x61, + 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, + 0x6e, 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x6f, 0x4a, 0x53, + 0x4f, 0x4e, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x5a, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x24, + 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0b, 0x4c, + 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x76, 0x69, 0x61, + 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x25, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x24, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, + 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, - 0x15, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, - 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, - 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, - 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x42, - 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x54, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x73, - 0x65, 0x74, 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x34, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, - 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x42, 0x69, - 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x54, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, - 0x74, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, - 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x64, 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x54, 0x6f, - 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x99, 0x01, 0x0a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, - 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x61, 0x74, - 0x61, 0x73, 0x65, 0x74, 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x39, 0x2e, 0x76, 0x69, 0x61, 0x6d, - 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x46, 0x72, 0x6f, - 0x6d, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x69, - 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, - 0x73, 0x65, 0x74, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x5a, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, - 0x24, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0b, - 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x76, 0x69, - 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x25, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x24, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, - 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, - 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x1d, 0x5a, 0x1b, 0x67, 0x6f, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x64, 0x61, 0x74, 0x61, - 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x42, 0x1d, 0x5a, 0x1b, 0x67, 0x6f, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, + 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -5383,7 +5502,7 @@ func file_app_data_v1_data_proto_rawDescGZIP() []byte { } var file_app_data_v1_data_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_app_data_v1_data_proto_msgTypes = make([]protoimpl.MessageInfo, 67) +var file_app_data_v1_data_proto_msgTypes = make([]protoimpl.MessageInfo, 69) var file_app_data_v1_data_proto_goTypes = []any{ (Order)(0), // 0: viam.app.data.v1.Order (TagsFilterType)(0), // 1: viam.app.data.v1.TagsFilterType @@ -5449,17 +5568,19 @@ var file_app_data_v1_data_proto_goTypes = []any{ (*AddBinaryDataToDatasetByIDsResponse)(nil), // 61: viam.app.data.v1.AddBinaryDataToDatasetByIDsResponse (*RemoveBinaryDataFromDatasetByIDsRequest)(nil), // 62: viam.app.data.v1.RemoveBinaryDataFromDatasetByIDsRequest (*RemoveBinaryDataFromDatasetByIDsResponse)(nil), // 63: viam.app.data.v1.RemoveBinaryDataFromDatasetByIDsResponse - (*CreateIndexRequest)(nil), // 64: viam.app.data.v1.CreateIndexRequest - (*CreateIndexResponse)(nil), // 65: viam.app.data.v1.CreateIndexResponse - (*DeleteIndexRequest)(nil), // 66: viam.app.data.v1.DeleteIndexRequest - (*DeleteIndexResponse)(nil), // 67: viam.app.data.v1.DeleteIndexResponse - (*ListIndexesRequest)(nil), // 68: viam.app.data.v1.ListIndexesRequest - (*ListIndexesResponse)(nil), // 69: viam.app.data.v1.ListIndexesResponse - (*Index)(nil), // 70: viam.app.data.v1.Index - nil, // 71: viam.app.data.v1.CaptureMetadata.MethodParametersEntry - (*timestamppb.Timestamp)(nil), // 72: google.protobuf.Timestamp - (*structpb.Struct)(nil), // 73: google.protobuf.Struct - (*anypb.Any)(nil), // 74: google.protobuf.Any + (*BinaryMetadataToJSONLinesRequest)(nil), // 64: viam.app.data.v1.BinaryMetadataToJSONLinesRequest + (*BinaryMetadataToJSONLinesResponse)(nil), // 65: viam.app.data.v1.BinaryMetadataToJSONLinesResponse + (*CreateIndexRequest)(nil), // 66: viam.app.data.v1.CreateIndexRequest + (*CreateIndexResponse)(nil), // 67: viam.app.data.v1.CreateIndexResponse + (*DeleteIndexRequest)(nil), // 68: viam.app.data.v1.DeleteIndexRequest + (*DeleteIndexResponse)(nil), // 69: viam.app.data.v1.DeleteIndexResponse + (*ListIndexesRequest)(nil), // 70: viam.app.data.v1.ListIndexesRequest + (*ListIndexesResponse)(nil), // 71: viam.app.data.v1.ListIndexesResponse + (*Index)(nil), // 72: viam.app.data.v1.Index + nil, // 73: viam.app.data.v1.CaptureMetadata.MethodParametersEntry + (*timestamppb.Timestamp)(nil), // 74: google.protobuf.Timestamp + (*structpb.Struct)(nil), // 75: google.protobuf.Struct + (*anypb.Any)(nil), // 76: google.protobuf.Any } var file_app_data_v1_data_proto_depIdxs = []int32{ 6, // 0: viam.app.data.v1.DataRequest.filter:type_name -> viam.app.data.v1.Filter @@ -5467,26 +5588,26 @@ var file_app_data_v1_data_proto_depIdxs = []int32{ 9, // 2: viam.app.data.v1.Filter.interval:type_name -> viam.app.data.v1.CaptureInterval 7, // 3: viam.app.data.v1.Filter.tags_filter:type_name -> viam.app.data.v1.TagsFilter 1, // 4: viam.app.data.v1.TagsFilter.type:type_name -> viam.app.data.v1.TagsFilterType - 71, // 5: viam.app.data.v1.CaptureMetadata.method_parameters:type_name -> viam.app.data.v1.CaptureMetadata.MethodParametersEntry - 72, // 6: viam.app.data.v1.CaptureInterval.start:type_name -> google.protobuf.Timestamp - 72, // 7: viam.app.data.v1.CaptureInterval.end:type_name -> google.protobuf.Timestamp + 73, // 5: viam.app.data.v1.CaptureMetadata.method_parameters:type_name -> viam.app.data.v1.CaptureMetadata.MethodParametersEntry + 74, // 6: viam.app.data.v1.CaptureInterval.start:type_name -> google.protobuf.Timestamp + 74, // 7: viam.app.data.v1.CaptureInterval.end:type_name -> google.protobuf.Timestamp 5, // 8: viam.app.data.v1.TabularDataByFilterRequest.data_request:type_name -> viam.app.data.v1.DataRequest 8, // 9: viam.app.data.v1.TabularDataByFilterResponse.metadata:type_name -> viam.app.data.v1.CaptureMetadata 12, // 10: viam.app.data.v1.TabularDataByFilterResponse.data:type_name -> viam.app.data.v1.TabularData - 73, // 11: viam.app.data.v1.TabularData.data:type_name -> google.protobuf.Struct - 72, // 12: viam.app.data.v1.TabularData.time_requested:type_name -> google.protobuf.Timestamp - 72, // 13: viam.app.data.v1.TabularData.time_received:type_name -> google.protobuf.Timestamp + 75, // 11: viam.app.data.v1.TabularData.data:type_name -> google.protobuf.Struct + 74, // 12: viam.app.data.v1.TabularData.time_requested:type_name -> google.protobuf.Timestamp + 74, // 13: viam.app.data.v1.TabularData.time_received:type_name -> google.protobuf.Timestamp 2, // 14: viam.app.data.v1.TabularDataSource.type:type_name -> viam.app.data.v1.TabularDataSourceType 15, // 15: viam.app.data.v1.TabularDataByMQLRequest.data_source:type_name -> viam.app.data.v1.TabularDataSource 9, // 16: viam.app.data.v1.ExportTabularDataRequest.interval:type_name -> viam.app.data.v1.CaptureInterval - 73, // 17: viam.app.data.v1.ExportTabularDataRequest.additional_parameters:type_name -> google.protobuf.Struct - 72, // 18: viam.app.data.v1.ExportTabularDataResponse.time_captured:type_name -> google.protobuf.Timestamp - 73, // 19: viam.app.data.v1.ExportTabularDataResponse.method_parameters:type_name -> google.protobuf.Struct - 73, // 20: viam.app.data.v1.ExportTabularDataResponse.payload:type_name -> google.protobuf.Struct - 73, // 21: viam.app.data.v1.GetLatestTabularDataRequest.additional_parameters:type_name -> google.protobuf.Struct - 72, // 22: viam.app.data.v1.GetLatestTabularDataResponse.time_captured:type_name -> google.protobuf.Timestamp - 72, // 23: viam.app.data.v1.GetLatestTabularDataResponse.time_synced:type_name -> google.protobuf.Timestamp - 73, // 24: viam.app.data.v1.GetLatestTabularDataResponse.payload:type_name -> google.protobuf.Struct + 75, // 17: viam.app.data.v1.ExportTabularDataRequest.additional_parameters:type_name -> google.protobuf.Struct + 74, // 18: viam.app.data.v1.ExportTabularDataResponse.time_captured:type_name -> google.protobuf.Timestamp + 75, // 19: viam.app.data.v1.ExportTabularDataResponse.method_parameters:type_name -> google.protobuf.Struct + 75, // 20: viam.app.data.v1.ExportTabularDataResponse.payload:type_name -> google.protobuf.Struct + 75, // 21: viam.app.data.v1.GetLatestTabularDataRequest.additional_parameters:type_name -> google.protobuf.Struct + 74, // 22: viam.app.data.v1.GetLatestTabularDataResponse.time_captured:type_name -> google.protobuf.Timestamp + 74, // 23: viam.app.data.v1.GetLatestTabularDataResponse.time_synced:type_name -> google.protobuf.Timestamp + 75, // 24: viam.app.data.v1.GetLatestTabularDataResponse.payload:type_name -> google.protobuf.Struct 31, // 25: viam.app.data.v1.BinaryData.metadata:type_name -> viam.app.data.v1.BinaryMetadata 5, // 26: viam.app.data.v1.BinaryDataByFilterRequest.data_request:type_name -> viam.app.data.v1.DataRequest 22, // 27: viam.app.data.v1.BinaryDataByFilterResponse.data:type_name -> viam.app.data.v1.BinaryData @@ -5495,8 +5616,8 @@ var file_app_data_v1_data_proto_depIdxs = []int32{ 28, // 30: viam.app.data.v1.Annotations.bboxes:type_name -> viam.app.data.v1.BoundingBox 29, // 31: viam.app.data.v1.Annotations.classifications:type_name -> viam.app.data.v1.Classification 8, // 32: viam.app.data.v1.BinaryMetadata.capture_metadata:type_name -> viam.app.data.v1.CaptureMetadata - 72, // 33: viam.app.data.v1.BinaryMetadata.time_requested:type_name -> google.protobuf.Timestamp - 72, // 34: viam.app.data.v1.BinaryMetadata.time_received:type_name -> google.protobuf.Timestamp + 74, // 33: viam.app.data.v1.BinaryMetadata.time_requested:type_name -> google.protobuf.Timestamp + 74, // 34: viam.app.data.v1.BinaryMetadata.time_received:type_name -> google.protobuf.Timestamp 30, // 35: viam.app.data.v1.BinaryMetadata.annotations:type_name -> viam.app.data.v1.Annotations 6, // 36: viam.app.data.v1.DeleteBinaryDataByFilterRequest.filter:type_name -> viam.app.data.v1.Filter 25, // 37: viam.app.data.v1.DeleteBinaryDataByIDsRequest.binary_ids:type_name -> viam.app.data.v1.BinaryID @@ -5511,70 +5632,73 @@ var file_app_data_v1_data_proto_depIdxs = []int32{ 6, // 46: viam.app.data.v1.BoundingBoxLabelsByFilterRequest.filter:type_name -> viam.app.data.v1.Filter 25, // 47: viam.app.data.v1.AddBinaryDataToDatasetByIDsRequest.binary_ids:type_name -> viam.app.data.v1.BinaryID 25, // 48: viam.app.data.v1.RemoveBinaryDataFromDatasetByIDsRequest.binary_ids:type_name -> viam.app.data.v1.BinaryID - 3, // 49: viam.app.data.v1.CreateIndexRequest.collection_type:type_name -> viam.app.data.v1.IndexableCollection - 3, // 50: viam.app.data.v1.DeleteIndexRequest.collection_type:type_name -> viam.app.data.v1.IndexableCollection - 3, // 51: viam.app.data.v1.ListIndexesRequest.collection_type:type_name -> viam.app.data.v1.IndexableCollection - 70, // 52: viam.app.data.v1.ListIndexesResponse.indexes:type_name -> viam.app.data.v1.Index - 3, // 53: viam.app.data.v1.Index.collection_type:type_name -> viam.app.data.v1.IndexableCollection - 4, // 54: viam.app.data.v1.Index.created_by:type_name -> viam.app.data.v1.IndexCreator - 74, // 55: viam.app.data.v1.CaptureMetadata.MethodParametersEntry.value:type_name -> google.protobuf.Any - 10, // 56: viam.app.data.v1.DataService.TabularDataByFilter:input_type -> viam.app.data.v1.TabularDataByFilterRequest - 13, // 57: viam.app.data.v1.DataService.TabularDataBySQL:input_type -> viam.app.data.v1.TabularDataBySQLRequest - 16, // 58: viam.app.data.v1.DataService.TabularDataByMQL:input_type -> viam.app.data.v1.TabularDataByMQLRequest - 18, // 59: viam.app.data.v1.DataService.ExportTabularData:input_type -> viam.app.data.v1.ExportTabularDataRequest - 20, // 60: viam.app.data.v1.DataService.GetLatestTabularData:input_type -> viam.app.data.v1.GetLatestTabularDataRequest - 23, // 61: viam.app.data.v1.DataService.BinaryDataByFilter:input_type -> viam.app.data.v1.BinaryDataByFilterRequest - 26, // 62: viam.app.data.v1.DataService.BinaryDataByIDs:input_type -> viam.app.data.v1.BinaryDataByIDsRequest - 32, // 63: viam.app.data.v1.DataService.DeleteTabularData:input_type -> viam.app.data.v1.DeleteTabularDataRequest - 34, // 64: viam.app.data.v1.DataService.DeleteBinaryDataByFilter:input_type -> viam.app.data.v1.DeleteBinaryDataByFilterRequest - 36, // 65: viam.app.data.v1.DataService.DeleteBinaryDataByIDs:input_type -> viam.app.data.v1.DeleteBinaryDataByIDsRequest - 38, // 66: viam.app.data.v1.DataService.AddTagsToBinaryDataByIDs:input_type -> viam.app.data.v1.AddTagsToBinaryDataByIDsRequest - 40, // 67: viam.app.data.v1.DataService.AddTagsToBinaryDataByFilter:input_type -> viam.app.data.v1.AddTagsToBinaryDataByFilterRequest - 42, // 68: viam.app.data.v1.DataService.RemoveTagsFromBinaryDataByIDs:input_type -> viam.app.data.v1.RemoveTagsFromBinaryDataByIDsRequest - 44, // 69: viam.app.data.v1.DataService.RemoveTagsFromBinaryDataByFilter:input_type -> viam.app.data.v1.RemoveTagsFromBinaryDataByFilterRequest - 46, // 70: viam.app.data.v1.DataService.TagsByFilter:input_type -> viam.app.data.v1.TagsByFilterRequest - 48, // 71: viam.app.data.v1.DataService.AddBoundingBoxToImageByID:input_type -> viam.app.data.v1.AddBoundingBoxToImageByIDRequest - 50, // 72: viam.app.data.v1.DataService.RemoveBoundingBoxFromImageByID:input_type -> viam.app.data.v1.RemoveBoundingBoxFromImageByIDRequest - 54, // 73: viam.app.data.v1.DataService.BoundingBoxLabelsByFilter:input_type -> viam.app.data.v1.BoundingBoxLabelsByFilterRequest - 52, // 74: viam.app.data.v1.DataService.UpdateBoundingBox:input_type -> viam.app.data.v1.UpdateBoundingBoxRequest - 58, // 75: viam.app.data.v1.DataService.GetDatabaseConnection:input_type -> viam.app.data.v1.GetDatabaseConnectionRequest - 56, // 76: viam.app.data.v1.DataService.ConfigureDatabaseUser:input_type -> viam.app.data.v1.ConfigureDatabaseUserRequest - 60, // 77: viam.app.data.v1.DataService.AddBinaryDataToDatasetByIDs:input_type -> viam.app.data.v1.AddBinaryDataToDatasetByIDsRequest - 62, // 78: viam.app.data.v1.DataService.RemoveBinaryDataFromDatasetByIDs:input_type -> viam.app.data.v1.RemoveBinaryDataFromDatasetByIDsRequest - 64, // 79: viam.app.data.v1.DataService.CreateIndex:input_type -> viam.app.data.v1.CreateIndexRequest - 68, // 80: viam.app.data.v1.DataService.ListIndexes:input_type -> viam.app.data.v1.ListIndexesRequest - 66, // 81: viam.app.data.v1.DataService.DeleteIndex:input_type -> viam.app.data.v1.DeleteIndexRequest - 11, // 82: viam.app.data.v1.DataService.TabularDataByFilter:output_type -> viam.app.data.v1.TabularDataByFilterResponse - 14, // 83: viam.app.data.v1.DataService.TabularDataBySQL:output_type -> viam.app.data.v1.TabularDataBySQLResponse - 17, // 84: viam.app.data.v1.DataService.TabularDataByMQL:output_type -> viam.app.data.v1.TabularDataByMQLResponse - 19, // 85: viam.app.data.v1.DataService.ExportTabularData:output_type -> viam.app.data.v1.ExportTabularDataResponse - 21, // 86: viam.app.data.v1.DataService.GetLatestTabularData:output_type -> viam.app.data.v1.GetLatestTabularDataResponse - 24, // 87: viam.app.data.v1.DataService.BinaryDataByFilter:output_type -> viam.app.data.v1.BinaryDataByFilterResponse - 27, // 88: viam.app.data.v1.DataService.BinaryDataByIDs:output_type -> viam.app.data.v1.BinaryDataByIDsResponse - 33, // 89: viam.app.data.v1.DataService.DeleteTabularData:output_type -> viam.app.data.v1.DeleteTabularDataResponse - 35, // 90: viam.app.data.v1.DataService.DeleteBinaryDataByFilter:output_type -> viam.app.data.v1.DeleteBinaryDataByFilterResponse - 37, // 91: viam.app.data.v1.DataService.DeleteBinaryDataByIDs:output_type -> viam.app.data.v1.DeleteBinaryDataByIDsResponse - 39, // 92: viam.app.data.v1.DataService.AddTagsToBinaryDataByIDs:output_type -> viam.app.data.v1.AddTagsToBinaryDataByIDsResponse - 41, // 93: viam.app.data.v1.DataService.AddTagsToBinaryDataByFilter:output_type -> viam.app.data.v1.AddTagsToBinaryDataByFilterResponse - 43, // 94: viam.app.data.v1.DataService.RemoveTagsFromBinaryDataByIDs:output_type -> viam.app.data.v1.RemoveTagsFromBinaryDataByIDsResponse - 45, // 95: viam.app.data.v1.DataService.RemoveTagsFromBinaryDataByFilter:output_type -> viam.app.data.v1.RemoveTagsFromBinaryDataByFilterResponse - 47, // 96: viam.app.data.v1.DataService.TagsByFilter:output_type -> viam.app.data.v1.TagsByFilterResponse - 49, // 97: viam.app.data.v1.DataService.AddBoundingBoxToImageByID:output_type -> viam.app.data.v1.AddBoundingBoxToImageByIDResponse - 51, // 98: viam.app.data.v1.DataService.RemoveBoundingBoxFromImageByID:output_type -> viam.app.data.v1.RemoveBoundingBoxFromImageByIDResponse - 55, // 99: viam.app.data.v1.DataService.BoundingBoxLabelsByFilter:output_type -> viam.app.data.v1.BoundingBoxLabelsByFilterResponse - 53, // 100: viam.app.data.v1.DataService.UpdateBoundingBox:output_type -> viam.app.data.v1.UpdateBoundingBoxResponse - 59, // 101: viam.app.data.v1.DataService.GetDatabaseConnection:output_type -> viam.app.data.v1.GetDatabaseConnectionResponse - 57, // 102: viam.app.data.v1.DataService.ConfigureDatabaseUser:output_type -> viam.app.data.v1.ConfigureDatabaseUserResponse - 61, // 103: viam.app.data.v1.DataService.AddBinaryDataToDatasetByIDs:output_type -> viam.app.data.v1.AddBinaryDataToDatasetByIDsResponse - 63, // 104: viam.app.data.v1.DataService.RemoveBinaryDataFromDatasetByIDs:output_type -> viam.app.data.v1.RemoveBinaryDataFromDatasetByIDsResponse - 65, // 105: viam.app.data.v1.DataService.CreateIndex:output_type -> viam.app.data.v1.CreateIndexResponse - 69, // 106: viam.app.data.v1.DataService.ListIndexes:output_type -> viam.app.data.v1.ListIndexesResponse - 67, // 107: viam.app.data.v1.DataService.DeleteIndex:output_type -> viam.app.data.v1.DeleteIndexResponse - 82, // [82:108] is the sub-list for method output_type - 56, // [56:82] is the sub-list for method input_type - 56, // [56:56] is the sub-list for extension type_name - 56, // [56:56] is the sub-list for extension extendee - 0, // [0:56] is the sub-list for field type_name + 31, // 49: viam.app.data.v1.BinaryMetadataToJSONLinesRequest.binary_metadata:type_name -> viam.app.data.v1.BinaryMetadata + 3, // 50: viam.app.data.v1.CreateIndexRequest.collection_type:type_name -> viam.app.data.v1.IndexableCollection + 3, // 51: viam.app.data.v1.DeleteIndexRequest.collection_type:type_name -> viam.app.data.v1.IndexableCollection + 3, // 52: viam.app.data.v1.ListIndexesRequest.collection_type:type_name -> viam.app.data.v1.IndexableCollection + 72, // 53: viam.app.data.v1.ListIndexesResponse.indexes:type_name -> viam.app.data.v1.Index + 3, // 54: viam.app.data.v1.Index.collection_type:type_name -> viam.app.data.v1.IndexableCollection + 4, // 55: viam.app.data.v1.Index.created_by:type_name -> viam.app.data.v1.IndexCreator + 76, // 56: viam.app.data.v1.CaptureMetadata.MethodParametersEntry.value:type_name -> google.protobuf.Any + 10, // 57: viam.app.data.v1.DataService.TabularDataByFilter:input_type -> viam.app.data.v1.TabularDataByFilterRequest + 13, // 58: viam.app.data.v1.DataService.TabularDataBySQL:input_type -> viam.app.data.v1.TabularDataBySQLRequest + 16, // 59: viam.app.data.v1.DataService.TabularDataByMQL:input_type -> viam.app.data.v1.TabularDataByMQLRequest + 18, // 60: viam.app.data.v1.DataService.ExportTabularData:input_type -> viam.app.data.v1.ExportTabularDataRequest + 20, // 61: viam.app.data.v1.DataService.GetLatestTabularData:input_type -> viam.app.data.v1.GetLatestTabularDataRequest + 23, // 62: viam.app.data.v1.DataService.BinaryDataByFilter:input_type -> viam.app.data.v1.BinaryDataByFilterRequest + 26, // 63: viam.app.data.v1.DataService.BinaryDataByIDs:input_type -> viam.app.data.v1.BinaryDataByIDsRequest + 32, // 64: viam.app.data.v1.DataService.DeleteTabularData:input_type -> viam.app.data.v1.DeleteTabularDataRequest + 34, // 65: viam.app.data.v1.DataService.DeleteBinaryDataByFilter:input_type -> viam.app.data.v1.DeleteBinaryDataByFilterRequest + 36, // 66: viam.app.data.v1.DataService.DeleteBinaryDataByIDs:input_type -> viam.app.data.v1.DeleteBinaryDataByIDsRequest + 38, // 67: viam.app.data.v1.DataService.AddTagsToBinaryDataByIDs:input_type -> viam.app.data.v1.AddTagsToBinaryDataByIDsRequest + 40, // 68: viam.app.data.v1.DataService.AddTagsToBinaryDataByFilter:input_type -> viam.app.data.v1.AddTagsToBinaryDataByFilterRequest + 42, // 69: viam.app.data.v1.DataService.RemoveTagsFromBinaryDataByIDs:input_type -> viam.app.data.v1.RemoveTagsFromBinaryDataByIDsRequest + 44, // 70: viam.app.data.v1.DataService.RemoveTagsFromBinaryDataByFilter:input_type -> viam.app.data.v1.RemoveTagsFromBinaryDataByFilterRequest + 46, // 71: viam.app.data.v1.DataService.TagsByFilter:input_type -> viam.app.data.v1.TagsByFilterRequest + 48, // 72: viam.app.data.v1.DataService.AddBoundingBoxToImageByID:input_type -> viam.app.data.v1.AddBoundingBoxToImageByIDRequest + 50, // 73: viam.app.data.v1.DataService.RemoveBoundingBoxFromImageByID:input_type -> viam.app.data.v1.RemoveBoundingBoxFromImageByIDRequest + 54, // 74: viam.app.data.v1.DataService.BoundingBoxLabelsByFilter:input_type -> viam.app.data.v1.BoundingBoxLabelsByFilterRequest + 52, // 75: viam.app.data.v1.DataService.UpdateBoundingBox:input_type -> viam.app.data.v1.UpdateBoundingBoxRequest + 58, // 76: viam.app.data.v1.DataService.GetDatabaseConnection:input_type -> viam.app.data.v1.GetDatabaseConnectionRequest + 56, // 77: viam.app.data.v1.DataService.ConfigureDatabaseUser:input_type -> viam.app.data.v1.ConfigureDatabaseUserRequest + 60, // 78: viam.app.data.v1.DataService.AddBinaryDataToDatasetByIDs:input_type -> viam.app.data.v1.AddBinaryDataToDatasetByIDsRequest + 62, // 79: viam.app.data.v1.DataService.RemoveBinaryDataFromDatasetByIDs:input_type -> viam.app.data.v1.RemoveBinaryDataFromDatasetByIDsRequest + 64, // 80: viam.app.data.v1.DataService.BinaryMetadataToJSONLines:input_type -> viam.app.data.v1.BinaryMetadataToJSONLinesRequest + 66, // 81: viam.app.data.v1.DataService.CreateIndex:input_type -> viam.app.data.v1.CreateIndexRequest + 70, // 82: viam.app.data.v1.DataService.ListIndexes:input_type -> viam.app.data.v1.ListIndexesRequest + 68, // 83: viam.app.data.v1.DataService.DeleteIndex:input_type -> viam.app.data.v1.DeleteIndexRequest + 11, // 84: viam.app.data.v1.DataService.TabularDataByFilter:output_type -> viam.app.data.v1.TabularDataByFilterResponse + 14, // 85: viam.app.data.v1.DataService.TabularDataBySQL:output_type -> viam.app.data.v1.TabularDataBySQLResponse + 17, // 86: viam.app.data.v1.DataService.TabularDataByMQL:output_type -> viam.app.data.v1.TabularDataByMQLResponse + 19, // 87: viam.app.data.v1.DataService.ExportTabularData:output_type -> viam.app.data.v1.ExportTabularDataResponse + 21, // 88: viam.app.data.v1.DataService.GetLatestTabularData:output_type -> viam.app.data.v1.GetLatestTabularDataResponse + 24, // 89: viam.app.data.v1.DataService.BinaryDataByFilter:output_type -> viam.app.data.v1.BinaryDataByFilterResponse + 27, // 90: viam.app.data.v1.DataService.BinaryDataByIDs:output_type -> viam.app.data.v1.BinaryDataByIDsResponse + 33, // 91: viam.app.data.v1.DataService.DeleteTabularData:output_type -> viam.app.data.v1.DeleteTabularDataResponse + 35, // 92: viam.app.data.v1.DataService.DeleteBinaryDataByFilter:output_type -> viam.app.data.v1.DeleteBinaryDataByFilterResponse + 37, // 93: viam.app.data.v1.DataService.DeleteBinaryDataByIDs:output_type -> viam.app.data.v1.DeleteBinaryDataByIDsResponse + 39, // 94: viam.app.data.v1.DataService.AddTagsToBinaryDataByIDs:output_type -> viam.app.data.v1.AddTagsToBinaryDataByIDsResponse + 41, // 95: viam.app.data.v1.DataService.AddTagsToBinaryDataByFilter:output_type -> viam.app.data.v1.AddTagsToBinaryDataByFilterResponse + 43, // 96: viam.app.data.v1.DataService.RemoveTagsFromBinaryDataByIDs:output_type -> viam.app.data.v1.RemoveTagsFromBinaryDataByIDsResponse + 45, // 97: viam.app.data.v1.DataService.RemoveTagsFromBinaryDataByFilter:output_type -> viam.app.data.v1.RemoveTagsFromBinaryDataByFilterResponse + 47, // 98: viam.app.data.v1.DataService.TagsByFilter:output_type -> viam.app.data.v1.TagsByFilterResponse + 49, // 99: viam.app.data.v1.DataService.AddBoundingBoxToImageByID:output_type -> viam.app.data.v1.AddBoundingBoxToImageByIDResponse + 51, // 100: viam.app.data.v1.DataService.RemoveBoundingBoxFromImageByID:output_type -> viam.app.data.v1.RemoveBoundingBoxFromImageByIDResponse + 55, // 101: viam.app.data.v1.DataService.BoundingBoxLabelsByFilter:output_type -> viam.app.data.v1.BoundingBoxLabelsByFilterResponse + 53, // 102: viam.app.data.v1.DataService.UpdateBoundingBox:output_type -> viam.app.data.v1.UpdateBoundingBoxResponse + 59, // 103: viam.app.data.v1.DataService.GetDatabaseConnection:output_type -> viam.app.data.v1.GetDatabaseConnectionResponse + 57, // 104: viam.app.data.v1.DataService.ConfigureDatabaseUser:output_type -> viam.app.data.v1.ConfigureDatabaseUserResponse + 61, // 105: viam.app.data.v1.DataService.AddBinaryDataToDatasetByIDs:output_type -> viam.app.data.v1.AddBinaryDataToDatasetByIDsResponse + 63, // 106: viam.app.data.v1.DataService.RemoveBinaryDataFromDatasetByIDs:output_type -> viam.app.data.v1.RemoveBinaryDataFromDatasetByIDsResponse + 65, // 107: viam.app.data.v1.DataService.BinaryMetadataToJSONLines:output_type -> viam.app.data.v1.BinaryMetadataToJSONLinesResponse + 67, // 108: viam.app.data.v1.DataService.CreateIndex:output_type -> viam.app.data.v1.CreateIndexResponse + 71, // 109: viam.app.data.v1.DataService.ListIndexes:output_type -> viam.app.data.v1.ListIndexesResponse + 69, // 110: viam.app.data.v1.DataService.DeleteIndex:output_type -> viam.app.data.v1.DeleteIndexResponse + 84, // [84:111] is the sub-list for method output_type + 57, // [57:84] is the sub-list for method input_type + 57, // [57:57] is the sub-list for extension type_name + 57, // [57:57] is the sub-list for extension extendee + 0, // [0:57] is the sub-list for field type_name } func init() { file_app_data_v1_data_proto_init() } @@ -5589,17 +5713,17 @@ func file_app_data_v1_data_proto_init() { file_app_data_v1_data_proto_msgTypes[23].OneofWrappers = []any{} file_app_data_v1_data_proto_msgTypes[24].OneofWrappers = []any{} file_app_data_v1_data_proto_msgTypes[47].OneofWrappers = []any{} - file_app_data_v1_data_proto_msgTypes[59].OneofWrappers = []any{} file_app_data_v1_data_proto_msgTypes[61].OneofWrappers = []any{} file_app_data_v1_data_proto_msgTypes[63].OneofWrappers = []any{} file_app_data_v1_data_proto_msgTypes[65].OneofWrappers = []any{} + file_app_data_v1_data_proto_msgTypes[67].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_app_data_v1_data_proto_rawDesc, NumEnums: 5, - NumMessages: 67, + NumMessages: 69, NumExtensions: 0, NumServices: 1, }, diff --git a/app/data/v1/data.pb.gw.go b/app/data/v1/data.pb.gw.go index 39d75c2d2..6cb08e141 100644 --- a/app/data/v1/data.pb.gw.go +++ b/app/data/v1/data.pb.gw.go @@ -624,6 +624,32 @@ func local_request_DataService_RemoveBinaryDataFromDatasetByIDs_0(ctx context.Co } +func request_DataService_BinaryMetadataToJSONLines_0(ctx context.Context, marshaler runtime.Marshaler, client DataServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq BinaryMetadataToJSONLinesRequest + var metadata runtime.ServerMetadata + + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.BinaryMetadataToJSONLines(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_DataService_BinaryMetadataToJSONLines_0(ctx context.Context, marshaler runtime.Marshaler, server DataServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq BinaryMetadataToJSONLinesRequest + var metadata runtime.ServerMetadata + + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.BinaryMetadataToJSONLines(ctx, &protoReq) + return msg, metadata, err + +} + func request_DataService_CreateIndex_0(ctx context.Context, marshaler runtime.Marshaler, client DataServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq CreateIndexRequest var metadata runtime.ServerMetadata @@ -1265,6 +1291,31 @@ func RegisterDataServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux }) + mux.Handle("POST", pattern_DataService_BinaryMetadataToJSONLines_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/viam.app.data.v1.DataService/BinaryMetadataToJSONLines", runtime.WithHTTPPathPattern("/viam.app.data.v1.DataService/BinaryMetadataToJSONLines")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_DataService_BinaryMetadataToJSONLines_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_DataService_BinaryMetadataToJSONLines_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_DataService_CreateIndex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1887,6 +1938,28 @@ func RegisterDataServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux }) + mux.Handle("POST", pattern_DataService_BinaryMetadataToJSONLines_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/viam.app.data.v1.DataService/BinaryMetadataToJSONLines", runtime.WithHTTPPathPattern("/viam.app.data.v1.DataService/BinaryMetadataToJSONLines")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_DataService_BinaryMetadataToJSONLines_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_DataService_BinaryMetadataToJSONLines_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_DataService_CreateIndex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -2003,6 +2076,8 @@ var ( pattern_DataService_RemoveBinaryDataFromDatasetByIDs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"viam.app.data.v1.DataService", "RemoveBinaryDataFromDatasetByIDs"}, "")) + pattern_DataService_BinaryMetadataToJSONLines_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"viam.app.data.v1.DataService", "BinaryMetadataToJSONLines"}, "")) + pattern_DataService_CreateIndex_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"viam.app.data.v1.DataService", "CreateIndex"}, "")) pattern_DataService_ListIndexes_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"viam.app.data.v1.DataService", "ListIndexes"}, "")) @@ -2057,6 +2132,8 @@ var ( forward_DataService_RemoveBinaryDataFromDatasetByIDs_0 = runtime.ForwardResponseMessage + forward_DataService_BinaryMetadataToJSONLines_0 = runtime.ForwardResponseMessage + forward_DataService_CreateIndex_0 = runtime.ForwardResponseMessage forward_DataService_ListIndexes_0 = runtime.ForwardResponseMessage diff --git a/app/data/v1/data_grpc.pb.go b/app/data/v1/data_grpc.pb.go index 4b2725f9a..30c921985 100644 --- a/app/data/v1/data_grpc.pb.go +++ b/app/data/v1/data_grpc.pb.go @@ -75,6 +75,8 @@ type DataServiceClient interface { AddBinaryDataToDatasetByIDs(ctx context.Context, in *AddBinaryDataToDatasetByIDsRequest, opts ...grpc.CallOption) (*AddBinaryDataToDatasetByIDsResponse, error) // RemoveBinaryDataFromDatasetByIDs removes the binary data with the given binary IDs from the dataset. RemoveBinaryDataFromDatasetByIDs(ctx context.Context, in *RemoveBinaryDataFromDatasetByIDsRequest, opts ...grpc.CallOption) (*RemoveBinaryDataFromDatasetByIDsResponse, error) + // BinaryMetadataToJSONLines converts binary metadata to JSON lines. + BinaryMetadataToJSONLines(ctx context.Context, in *BinaryMetadataToJSONLinesRequest, opts ...grpc.CallOption) (*BinaryMetadataToJSONLinesResponse, error) // CreateIndex starts a custom index build CreateIndex(ctx context.Context, in *CreateIndexRequest, opts ...grpc.CallOption) (*CreateIndexResponse, error) // ListIndexes returns all the indexes for a given collection @@ -326,6 +328,15 @@ func (c *dataServiceClient) RemoveBinaryDataFromDatasetByIDs(ctx context.Context return out, nil } +func (c *dataServiceClient) BinaryMetadataToJSONLines(ctx context.Context, in *BinaryMetadataToJSONLinesRequest, opts ...grpc.CallOption) (*BinaryMetadataToJSONLinesResponse, error) { + out := new(BinaryMetadataToJSONLinesResponse) + err := c.cc.Invoke(ctx, "/viam.app.data.v1.DataService/BinaryMetadataToJSONLines", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *dataServiceClient) CreateIndex(ctx context.Context, in *CreateIndexRequest, opts ...grpc.CallOption) (*CreateIndexResponse, error) { out := new(CreateIndexResponse) err := c.cc.Invoke(ctx, "/viam.app.data.v1.DataService/CreateIndex", in, out, opts...) @@ -410,6 +421,8 @@ type DataServiceServer interface { AddBinaryDataToDatasetByIDs(context.Context, *AddBinaryDataToDatasetByIDsRequest) (*AddBinaryDataToDatasetByIDsResponse, error) // RemoveBinaryDataFromDatasetByIDs removes the binary data with the given binary IDs from the dataset. RemoveBinaryDataFromDatasetByIDs(context.Context, *RemoveBinaryDataFromDatasetByIDsRequest) (*RemoveBinaryDataFromDatasetByIDsResponse, error) + // BinaryMetadataToJSONLines converts binary metadata to JSON lines. + BinaryMetadataToJSONLines(context.Context, *BinaryMetadataToJSONLinesRequest) (*BinaryMetadataToJSONLinesResponse, error) // CreateIndex starts a custom index build CreateIndex(context.Context, *CreateIndexRequest) (*CreateIndexResponse, error) // ListIndexes returns all the indexes for a given collection @@ -492,6 +505,9 @@ func (UnimplementedDataServiceServer) AddBinaryDataToDatasetByIDs(context.Contex func (UnimplementedDataServiceServer) RemoveBinaryDataFromDatasetByIDs(context.Context, *RemoveBinaryDataFromDatasetByIDsRequest) (*RemoveBinaryDataFromDatasetByIDsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveBinaryDataFromDatasetByIDs not implemented") } +func (UnimplementedDataServiceServer) BinaryMetadataToJSONLines(context.Context, *BinaryMetadataToJSONLinesRequest) (*BinaryMetadataToJSONLinesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method BinaryMetadataToJSONLines not implemented") +} func (UnimplementedDataServiceServer) CreateIndex(context.Context, *CreateIndexRequest) (*CreateIndexResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateIndex not implemented") } @@ -931,6 +947,24 @@ func _DataService_RemoveBinaryDataFromDatasetByIDs_Handler(srv interface{}, ctx return interceptor(ctx, in, info, handler) } +func _DataService_BinaryMetadataToJSONLines_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BinaryMetadataToJSONLinesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataServiceServer).BinaryMetadataToJSONLines(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/viam.app.data.v1.DataService/BinaryMetadataToJSONLines", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataServiceServer).BinaryMetadataToJSONLines(ctx, req.(*BinaryMetadataToJSONLinesRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _DataService_CreateIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CreateIndexRequest) if err := dec(in); err != nil { @@ -1080,6 +1114,10 @@ var DataService_ServiceDesc = grpc.ServiceDesc{ MethodName: "RemoveBinaryDataFromDatasetByIDs", Handler: _DataService_RemoveBinaryDataFromDatasetByIDs_Handler, }, + { + MethodName: "BinaryMetadataToJSONLines", + Handler: _DataService_BinaryMetadataToJSONLines_Handler, + }, { MethodName: "CreateIndex", Handler: _DataService_CreateIndex_Handler, diff --git a/app/mltraining/v1/ml_training.pb.go b/app/mltraining/v1/ml_training.pb.go index af747c2fb..67326b723 100644 --- a/app/mltraining/v1/ml_training.pb.go +++ b/app/mltraining/v1/ml_training.pb.go @@ -341,6 +341,7 @@ type SubmitCustomTrainingJobRequest struct { ModelName string `protobuf:"bytes,4,opt,name=model_name,json=modelName,proto3" json:"model_name" bson:"model_name"` ModelVersion string `protobuf:"bytes,5,opt,name=model_version,json=modelVersion,proto3" json:"model_version" bson:"model_version"` Arguments map[string]string `protobuf:"bytes,7,rep,name=arguments,proto3" json:"arguments,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + ContainerVersion string `protobuf:"bytes,8,opt,name=container_version,json=containerVersion,proto3" json:"container_version" bson:"container_version"` } func (x *SubmitCustomTrainingJobRequest) Reset() { @@ -422,6 +423,13 @@ func (x *SubmitCustomTrainingJobRequest) GetArguments() map[string]string { return nil } +func (x *SubmitCustomTrainingJobRequest) GetContainerVersion() string { + if x != nil { + return x.ContainerVersion + } + return "" +} + type SubmitCustomTrainingJobResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -679,6 +687,7 @@ type TrainingJobMetadata struct { SyncedModelId string `protobuf:"bytes,5,opt,name=synced_model_id,json=syncedModelId,proto3" json:"synced_model_id" bson:"synced_model_id"` Tags []string `protobuf:"bytes,16,rep,name=tags,proto3" json:"tags" bson:"tags"` Arguments map[string]string `protobuf:"bytes,21,rep,name=arguments,proto3" json:"arguments" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3" bson:"arguments"` + ContainerVersion string `protobuf:"bytes,22,opt,name=container_version,json=containerVersion,proto3" json:"container_version" bson:"container_version"` } func (x *TrainingJobMetadata) Reset() { @@ -844,6 +853,13 @@ func (x *TrainingJobMetadata) GetArguments() map[string]string { return nil } +func (x *TrainingJobMetadata) GetContainerVersion() string { + if x != nil { + return x.ContainerVersion + } + return "" +} + type CancelTrainingJobRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1173,6 +1189,140 @@ func (x *GetTrainingJobLogsResponse) GetNextPageToken() string { return "" } +type ListSupportedContainersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ListSupportedContainersRequest) Reset() { + *x = ListSupportedContainersRequest{} + mi := &file_app_mltraining_v1_ml_training_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListSupportedContainersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSupportedContainersRequest) ProtoMessage() {} + +func (x *ListSupportedContainersRequest) ProtoReflect() protoreflect.Message { + mi := &file_app_mltraining_v1_ml_training_proto_msgTypes[16] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListSupportedContainersRequest.ProtoReflect.Descriptor instead. +func (*ListSupportedContainersRequest) Descriptor() ([]byte, []int) { + return file_app_mltraining_v1_ml_training_proto_rawDescGZIP(), []int{16} +} + +type ListSupportedContainersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Containers []*Container `protobuf:"bytes,1,rep,name=containers,proto3" json:"containers,omitempty"` +} + +func (x *ListSupportedContainersResponse) Reset() { + *x = ListSupportedContainersResponse{} + mi := &file_app_mltraining_v1_ml_training_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListSupportedContainersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSupportedContainersResponse) ProtoMessage() {} + +func (x *ListSupportedContainersResponse) ProtoReflect() protoreflect.Message { + mi := &file_app_mltraining_v1_ml_training_proto_msgTypes[17] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListSupportedContainersResponse.ProtoReflect.Descriptor instead. +func (*ListSupportedContainersResponse) Descriptor() ([]byte, []int) { + return file_app_mltraining_v1_ml_training_proto_rawDescGZIP(), []int{17} +} + +func (x *ListSupportedContainersResponse) GetContainers() []*Container { + if x != nil { + return x.Containers + } + return nil +} + +type Container struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` + Eol *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=eol,proto3" json:"eol,omitempty"` +} + +func (x *Container) Reset() { + *x = Container{} + mi := &file_app_mltraining_v1_ml_training_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Container) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Container) ProtoMessage() {} + +func (x *Container) ProtoReflect() protoreflect.Message { + mi := &file_app_mltraining_v1_ml_training_proto_msgTypes[18] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Container.ProtoReflect.Descriptor instead. +func (*Container) Descriptor() ([]byte, []int) { + return file_app_mltraining_v1_ml_training_proto_rawDescGZIP(), []int{18} +} + +func (x *Container) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +func (x *Container) GetEol() *timestamppb.Timestamp { + if x != nil { + return x.Eol + } + return nil +} + var File_app_mltraining_v1_ml_training_proto protoreflect.FileDescriptor var file_app_mltraining_v1_ml_training_proto_rawDesc = []byte{ @@ -1229,7 +1379,7 @@ var file_app_mltraining_v1_ml_training_proto_rawDesc = []byte{ 0x65, 0x72, 0x22, 0x2b, 0x0a, 0x19, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, - 0xdb, 0x05, 0x0a, 0x1e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0xc0, 0x06, 0x0a, 0x1e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0x9a, 0x84, 0x9e, 0x03, 0x23, 0x62, 0x73, 0x6f, @@ -1270,287 +1420,322 @@ var file_app_mltraining_v1_ml_training_proto_rawDesc = []byte{ 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, - 0x3c, 0x0a, 0x0e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 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, 0x31, 0x0a, - 0x1f, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x72, 0x61, - 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x22, 0x27, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, - 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x61, 0x0a, 0x16, 0x47, 0x65, 0x74, - 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, - 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, - 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x82, 0x01, 0x0a, - 0x17, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x26, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, - 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, - 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x22, 0x5b, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, - 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x76, 0x69, - 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x22, 0xa7, - 0x0f, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x33, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x23, 0x9a, 0x84, 0x9e, 0x03, 0x1e, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x5f, - 0x69, 0x64, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x69, 0x64, 0x2c, 0x6f, 0x6d, 0x69, - 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x52, 0x02, 0x69, 0x64, 0x12, 0x47, 0x0a, 0x0a, 0x64, - 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x28, 0x9a, 0x84, 0x9e, 0x03, 0x23, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x64, 0x61, 0x74, 0x61, - 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x64, 0x61, - 0x74, 0x61, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x73, - 0x65, 0x74, 0x49, 0x64, 0x12, 0x5b, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x32, 0x9a, - 0x84, 0x9e, 0x03, 0x2d, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, - 0x22, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x22, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x47, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0x9a, 0x84, 0x9e, 0x03, 0x23, 0x62, 0x73, 0x6f, 0x6e, - 0x3a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x20, 0x6a, 0x73, - 0x6f, 0x6e, 0x3a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x52, - 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x0d, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x2e, 0x9a, 0x84, 0x9e, 0x03, 0x29, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x6a, 0x73, 0x6f, - 0x6e, 0x3a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x22, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x6a, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, - 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x28, 0x9a, 0x84, 0x9e, 0x03, 0x23, 0x62, 0x73, 0x6f, - 0x6e, 0x3a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x6a, - 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, - 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0f, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, - 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x42, 0x32, 0x9a, - 0x84, 0x9e, 0x03, 0x2d, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, - 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, - 0x22, 0x52, 0x0e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, - 0x6b, 0x12, 0x52, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6a, - 0x6f, 0x62, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x42, 0x2e, 0x9a, 0x84, 0x9e, 0x03, 0x29, 0x62, - 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x69, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6a, - 0x6f, 0x62, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x69, 0x73, 0x5f, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x5f, 0x6a, 0x6f, 0x62, 0x22, 0x52, 0x0b, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x12, 0x5e, 0x0a, 0x10, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x79, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x34, 0x9a, 0x84, 0x9e, 0x03, 0x2f, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x79, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x6a, 0x73, - 0x6f, 0x6e, 0x3a, 0x22, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x69, 0x74, 0x65, - 0x6d, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x0e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x49, - 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x72, 0x0a, 0x15, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x79, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x3e, 0x9a, 0x84, 0x9e, 0x03, 0x39, 0x62, 0x73, 0x6f, 0x6e, 0x3a, - 0x22, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0x52, 0x13, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x49, 0x74, - 0x65, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x60, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x76, 0x69, 0x61, 0x6d, - 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, - 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x42, 0x20, 0x9a, 0x84, 0x9e, 0x03, 0x1b, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x63, 0x0a, 0x0c, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x2c, 0x9a, 0x84, 0x9e, 0x03, 0x27, 0x62, 0x73, 0x6f, 0x6e, - 0x3a, 0x22, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x20, - 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x52, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x63, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x42, 0x28, 0x9a, 0x84, 0x9e, 0x03, 0x23, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x22, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x6f, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, - 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x2e, 0x9a, 0x84, 0x9e, 0x03, 0x29, 0x62, - 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, - 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x22, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f, - 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x7b, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x34, 0x9a, 0x84, - 0x9e, 0x03, 0x2f, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, - 0x22, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, - 0x64, 0x22, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x65, 0x64, 0x12, 0x73, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, - 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x30, 0x9a, 0x84, 0x9e, 0x03, 0x2b, 0x62, 0x73, - 0x6f, 0x6e, 0x3a, 0x22, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x22, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x69, 0x6e, - 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x5a, 0x0a, 0x0f, 0x73, 0x79, 0x6e, 0x63, - 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x32, 0x9a, 0x84, 0x9e, 0x03, 0x2d, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x73, 0x79, - 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x6a, - 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x0d, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x10, 0x20, 0x03, - 0x28, 0x09, 0x42, 0x1c, 0x9a, 0x84, 0x9e, 0x03, 0x17, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x74, - 0x61, 0x67, 0x73, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x74, 0x61, 0x67, 0x73, 0x22, - 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x76, 0x69, 0x61, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x63, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x36, 0x9a, 0x84, 0x9e, 0x03, + 0x31, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x22, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x3c, 0x0a, 0x0e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 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, 0x31, 0x0a, 0x1f, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, + 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x61, + 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x26, 0x9a, 0x84, 0x9e, 0x03, 0x21, 0x62, 0x73, 0x6f, - 0x6e, 0x3a, 0x22, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x20, 0x6a, 0x73, - 0x6f, 0x6e, 0x3a, 0x22, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x52, 0x09, - 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x3c, 0x0a, 0x0e, 0x41, 0x72, 0x67, - 0x75, 0x6d, 0x65, 0x6e, 0x74, 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, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, - 0x06, 0x10, 0x07, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x2a, 0x0a, 0x18, 0x43, 0x61, 0x6e, 0x63, - 0x65, 0x6c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x72, - 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x33, 0x0a, 0x21, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x24, 0x0a, 0x22, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x0a, 0x13, - 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x67, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x22, 0x5e, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x22, 0x85, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, - 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x82, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, + 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, + 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, + 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, + 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x5b, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, + 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6c, - 0x6f, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, - 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x2a, 0x9f, 0x01, 0x0a, 0x09, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x4f, 0x44, - 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2a, 0x0a, 0x26, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, - 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, - 0x01, 0x12, 0x29, 0x0a, 0x25, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x43, 0x4c, 0x41, 0x53, - 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, - 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, - 0x54, 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x2a, 0xa4, 0x01, - 0x0a, 0x0e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, - 0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, - 0x4f, 0x52, 0x4b, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, - 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x54, 0x46, 0x4c, 0x49, 0x54, 0x45, 0x10, 0x01, 0x12, 0x1e, 0x0a, - 0x1a, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, 0x4b, - 0x5f, 0x54, 0x45, 0x4e, 0x53, 0x4f, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x02, 0x12, 0x1b, 0x0a, - 0x17, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, 0x4b, - 0x5f, 0x50, 0x59, 0x54, 0x4f, 0x52, 0x43, 0x48, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x4f, - 0x44, 0x45, 0x4c, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x4f, 0x4e, - 0x4e, 0x58, 0x10, 0x04, 0x2a, 0xe7, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x52, 0x41, 0x49, 0x4e, - 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x41, 0x49, - 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x45, 0x4e, 0x44, - 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, - 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, - 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, - 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, - 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, - 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, - 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, - 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x32, 0x8f, - 0x07, 0x0a, 0x11, 0x4d, 0x4c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x78, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x72, - 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x12, 0x30, 0x2e, 0x76, 0x69, 0x61, 0x6d, - 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x76, 0x69, - 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, - 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, - 0x01, 0x0a, 0x17, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, - 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x12, 0x36, 0x2e, 0x76, 0x69, 0x61, + 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x04, 0x6a, + 0x6f, 0x62, 0x73, 0x22, 0x8c, 0x10, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x4a, 0x6f, 0x62, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x33, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0x9a, 0x84, 0x9e, 0x03, 0x1e, 0x62, 0x73, + 0x6f, 0x6e, 0x3a, 0x22, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x69, + 0x64, 0x2c, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x47, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0x9a, 0x84, 0x9e, 0x03, 0x23, 0x62, 0x73, 0x6f, 0x6e, 0x3a, + 0x22, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x20, 0x6a, 0x73, 0x6f, + 0x6e, 0x3a, 0x22, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x09, + 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x5b, 0x0a, 0x0f, 0x6f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x32, 0x9a, 0x84, 0x9e, 0x03, 0x2d, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x6f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x22, 0x20, + 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x47, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0x9a, 0x84, 0x9e, 0x03, + 0x23, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x53, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0x9a, 0x84, 0x9e, 0x03, 0x29, 0x62, 0x73, 0x6f, + 0x6e, 0x3a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x6a, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, + 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x28, 0x9a, 0x84, 0x9e, + 0x03, 0x23, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x83, 0x01, 0x0a, 0x0f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, - 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6d, - 0x69, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, - 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x47, - 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x12, 0x2d, 0x2e, - 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, - 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x76, - 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, - 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x73, - 0x12, 0x2f, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, - 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, - 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x30, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, - 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, - 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x11, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x72, 0x61, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, + 0x72, 0x6b, 0x42, 0x32, 0x9a, 0x84, 0x9e, 0x03, 0x2d, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x20, + 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x52, 0x0e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x46, 0x72, 0x61, + 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x52, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x42, 0x2e, 0x9a, + 0x84, 0x9e, 0x03, 0x29, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x69, 0x73, 0x5f, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x5f, 0x6a, 0x6f, 0x62, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x69, + 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6a, 0x6f, 0x62, 0x22, 0x52, 0x0b, 0x69, + 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x12, 0x5e, 0x0a, 0x10, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x13, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x34, 0x9a, 0x84, 0x9e, 0x03, 0x2f, 0x62, 0x73, 0x6f, 0x6e, 0x3a, + 0x22, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, + 0x64, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x0e, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x72, 0x0a, 0x15, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3e, 0x9a, 0x84, 0x9e, 0x03, 0x39, + 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x69, + 0x74, 0x65, 0x6d, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x6a, 0x73, 0x6f, + 0x6e, 0x3a, 0x22, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x69, 0x74, 0x65, 0x6d, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x52, 0x13, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x60, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, + 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, + 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x20, 0x9a, 0x84, 0x9e, 0x03, 0x1b, 0x62, 0x73, 0x6f, + 0x6e, 0x3a, 0x22, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, + 0x22, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x63, 0x0a, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x2c, 0x9a, 0x84, 0x9e, 0x03, + 0x27, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x52, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x63, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x28, 0x9a, 0x84, 0x9e, 0x03, 0x23, 0x62, 0x73, 0x6f, 0x6e, + 0x3a, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x22, 0x20, 0x6a, 0x73, + 0x6f, 0x6e, 0x3a, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x22, 0x52, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x6f, 0x0a, 0x0d, 0x6c, 0x61, + 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x2e, 0x9a, + 0x84, 0x9e, 0x03, 0x29, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, + 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x22, 0x52, 0x0c, 0x6c, + 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x7b, 0x0a, 0x10, 0x74, + 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x42, 0x34, 0x9a, 0x84, 0x9e, 0x03, 0x2f, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x74, 0x72, + 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x22, 0x20, + 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x22, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x73, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x69, + 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x30, 0x9a, 0x84, + 0x9e, 0x03, 0x2b, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x5f, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x74, + 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x22, 0x52, 0x0d, + 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x5a, 0x0a, + 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x32, 0x9a, 0x84, 0x9e, 0x03, 0x2d, 0x62, 0x73, 0x6f, + 0x6e, 0x3a, 0x22, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, + 0x69, 0x64, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x0d, 0x73, 0x79, 0x6e, 0x63, + 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x42, 0x1c, 0x9a, 0x84, 0x9e, 0x03, 0x17, 0x62, 0x73, + 0x6f, 0x6e, 0x3a, 0x22, 0x74, 0x61, 0x67, 0x73, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, + 0x74, 0x61, 0x67, 0x73, 0x22, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x09, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x3a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, + 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x4a, 0x6f, 0x62, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x26, 0x9a, 0x84, 0x9e, + 0x03, 0x21, 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x22, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x63, + 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x42, 0x36, 0x9a, 0x84, 0x9e, 0x03, 0x31, + 0x62, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x22, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x22, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x1a, 0x3c, 0x0a, 0x0e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 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, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x52, 0x07, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, + 0x69, 0x6c, 0x22, 0x2a, 0x0a, 0x18, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x69, + 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x1b, + 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x0a, 0x21, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x72, + 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x22, 0x24, 0x0a, 0x22, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, + 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, + 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x5e, 0x0a, + 0x19, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4c, + 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x85, 0x01, + 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, + 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x04, + 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x76, 0x69, 0x61, + 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4c, + 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x26, 0x0a, + 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x20, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x64, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, + 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x22, 0x4b, 0x0a, + 0x09, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x2c, 0x0a, 0x03, + 0x65, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x65, 0x6f, 0x6c, 0x2a, 0x9f, 0x01, 0x0a, 0x09, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x4f, 0x44, 0x45, + 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x2a, 0x0a, 0x26, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, + 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, + 0x12, 0x29, 0x0a, 0x25, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, + 0x55, 0x4c, 0x54, 0x49, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, + 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, + 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, + 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x2a, 0xa4, 0x01, 0x0a, + 0x0e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x12, + 0x1f, 0x0a, 0x1b, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, 0x4f, + 0x52, 0x4b, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, + 0x4f, 0x52, 0x4b, 0x5f, 0x54, 0x46, 0x4c, 0x49, 0x54, 0x45, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, + 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x5f, + 0x54, 0x45, 0x4e, 0x53, 0x4f, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, + 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x5f, + 0x50, 0x59, 0x54, 0x4f, 0x52, 0x43, 0x48, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x4f, 0x44, + 0x45, 0x4c, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x4f, 0x4e, 0x4e, + 0x58, 0x10, 0x04, 0x2a, 0xe7, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, + 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x41, 0x49, 0x4e, + 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, + 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, + 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, + 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, + 0x45, 0x44, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, + 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x55, 0x53, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x1d, + 0x0a, 0x19, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x32, 0x9c, 0x08, + 0x0a, 0x11, 0x4d, 0x4c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x78, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x12, 0x30, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x93, 0x01, - 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, - 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x12, 0x39, 0x2e, 0x76, - 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, - 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, - 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x31, 0x2e, 0x76, 0x69, 0x61, 0x6d, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, + 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, + 0x0a, 0x17, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x72, + 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x12, 0x36, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, - 0x62, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x76, + 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, + 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x37, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, + 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, + 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, + 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, + 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x12, 0x2d, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x42, 0x23, 0x5a, 0x21, 0x67, 0x6f, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x76, 0x69, + 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x4c, + 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x73, 0x12, + 0x2f, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, + 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, + 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x30, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, + 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, + 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x78, 0x0a, 0x11, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x69, + 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x12, 0x30, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, + 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, + 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x76, 0x69, 0x61, 0x6d, + 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x93, 0x01, 0x0a, + 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, + 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x12, 0x39, 0x2e, 0x76, 0x69, + 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, + 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, + 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x31, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, + 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, + 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x76, 0x69, + 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x8a, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x36, 0x2e, 0x76, 0x69, + 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x6d, + 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x23, 0x5a, 0x21, + 0x67, 0x6f, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x61, 0x70, 0x70, 0x2f, 0x6d, 0x6c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x76, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1566,7 +1751,7 @@ func file_app_mltraining_v1_ml_training_proto_rawDescGZIP() []byte { } var file_app_mltraining_v1_ml_training_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_app_mltraining_v1_ml_training_proto_msgTypes = make([]protoimpl.MessageInfo, 18) +var file_app_mltraining_v1_ml_training_proto_msgTypes = make([]protoimpl.MessageInfo, 21) var file_app_mltraining_v1_ml_training_proto_goTypes = []any{ (ModelType)(0), // 0: viam.app.mltraining.v1.ModelType (ModelFramework)(0), // 1: viam.app.mltraining.v1.ModelFramework @@ -1587,48 +1772,55 @@ var file_app_mltraining_v1_ml_training_proto_goTypes = []any{ (*TrainingJobLogEntry)(nil), // 16: viam.app.mltraining.v1.TrainingJobLogEntry (*GetTrainingJobLogsRequest)(nil), // 17: viam.app.mltraining.v1.GetTrainingJobLogsRequest (*GetTrainingJobLogsResponse)(nil), // 18: viam.app.mltraining.v1.GetTrainingJobLogsResponse - nil, // 19: viam.app.mltraining.v1.SubmitCustomTrainingJobRequest.ArgumentsEntry - nil, // 20: viam.app.mltraining.v1.TrainingJobMetadata.ArgumentsEntry - (*status.Status)(nil), // 21: google.rpc.Status - (*timestamppb.Timestamp)(nil), // 22: google.protobuf.Timestamp + (*ListSupportedContainersRequest)(nil), // 19: viam.app.mltraining.v1.ListSupportedContainersRequest + (*ListSupportedContainersResponse)(nil), // 20: viam.app.mltraining.v1.ListSupportedContainersResponse + (*Container)(nil), // 21: viam.app.mltraining.v1.Container + nil, // 22: viam.app.mltraining.v1.SubmitCustomTrainingJobRequest.ArgumentsEntry + nil, // 23: viam.app.mltraining.v1.TrainingJobMetadata.ArgumentsEntry + (*status.Status)(nil), // 24: google.rpc.Status + (*timestamppb.Timestamp)(nil), // 25: google.protobuf.Timestamp } var file_app_mltraining_v1_ml_training_proto_depIdxs = []int32{ 0, // 0: viam.app.mltraining.v1.SubmitTrainingJobRequest.model_type:type_name -> viam.app.mltraining.v1.ModelType 1, // 1: viam.app.mltraining.v1.SubmitTrainingJobRequest.model_framework:type_name -> viam.app.mltraining.v1.ModelFramework - 19, // 2: viam.app.mltraining.v1.SubmitCustomTrainingJobRequest.arguments:type_name -> viam.app.mltraining.v1.SubmitCustomTrainingJobRequest.ArgumentsEntry + 22, // 2: viam.app.mltraining.v1.SubmitCustomTrainingJobRequest.arguments:type_name -> viam.app.mltraining.v1.SubmitCustomTrainingJobRequest.ArgumentsEntry 11, // 3: viam.app.mltraining.v1.GetTrainingJobResponse.metadata:type_name -> viam.app.mltraining.v1.TrainingJobMetadata 2, // 4: viam.app.mltraining.v1.ListTrainingJobsRequest.status:type_name -> viam.app.mltraining.v1.TrainingStatus 11, // 5: viam.app.mltraining.v1.ListTrainingJobsResponse.jobs:type_name -> viam.app.mltraining.v1.TrainingJobMetadata 0, // 6: viam.app.mltraining.v1.TrainingJobMetadata.model_type:type_name -> viam.app.mltraining.v1.ModelType 1, // 7: viam.app.mltraining.v1.TrainingJobMetadata.model_framework:type_name -> viam.app.mltraining.v1.ModelFramework 2, // 8: viam.app.mltraining.v1.TrainingJobMetadata.status:type_name -> viam.app.mltraining.v1.TrainingStatus - 21, // 9: viam.app.mltraining.v1.TrainingJobMetadata.error_status:type_name -> google.rpc.Status - 22, // 10: viam.app.mltraining.v1.TrainingJobMetadata.created_on:type_name -> google.protobuf.Timestamp - 22, // 11: viam.app.mltraining.v1.TrainingJobMetadata.last_modified:type_name -> google.protobuf.Timestamp - 22, // 12: viam.app.mltraining.v1.TrainingJobMetadata.training_started:type_name -> google.protobuf.Timestamp - 22, // 13: viam.app.mltraining.v1.TrainingJobMetadata.training_ended:type_name -> google.protobuf.Timestamp - 20, // 14: viam.app.mltraining.v1.TrainingJobMetadata.arguments:type_name -> viam.app.mltraining.v1.TrainingJobMetadata.ArgumentsEntry - 22, // 15: viam.app.mltraining.v1.TrainingJobLogEntry.time:type_name -> google.protobuf.Timestamp + 24, // 9: viam.app.mltraining.v1.TrainingJobMetadata.error_status:type_name -> google.rpc.Status + 25, // 10: viam.app.mltraining.v1.TrainingJobMetadata.created_on:type_name -> google.protobuf.Timestamp + 25, // 11: viam.app.mltraining.v1.TrainingJobMetadata.last_modified:type_name -> google.protobuf.Timestamp + 25, // 12: viam.app.mltraining.v1.TrainingJobMetadata.training_started:type_name -> google.protobuf.Timestamp + 25, // 13: viam.app.mltraining.v1.TrainingJobMetadata.training_ended:type_name -> google.protobuf.Timestamp + 23, // 14: viam.app.mltraining.v1.TrainingJobMetadata.arguments:type_name -> viam.app.mltraining.v1.TrainingJobMetadata.ArgumentsEntry + 25, // 15: viam.app.mltraining.v1.TrainingJobLogEntry.time:type_name -> google.protobuf.Timestamp 16, // 16: viam.app.mltraining.v1.GetTrainingJobLogsResponse.logs:type_name -> viam.app.mltraining.v1.TrainingJobLogEntry - 3, // 17: viam.app.mltraining.v1.MLTrainingService.SubmitTrainingJob:input_type -> viam.app.mltraining.v1.SubmitTrainingJobRequest - 5, // 18: viam.app.mltraining.v1.MLTrainingService.SubmitCustomTrainingJob:input_type -> viam.app.mltraining.v1.SubmitCustomTrainingJobRequest - 7, // 19: viam.app.mltraining.v1.MLTrainingService.GetTrainingJob:input_type -> viam.app.mltraining.v1.GetTrainingJobRequest - 9, // 20: viam.app.mltraining.v1.MLTrainingService.ListTrainingJobs:input_type -> viam.app.mltraining.v1.ListTrainingJobsRequest - 12, // 21: viam.app.mltraining.v1.MLTrainingService.CancelTrainingJob:input_type -> viam.app.mltraining.v1.CancelTrainingJobRequest - 14, // 22: viam.app.mltraining.v1.MLTrainingService.DeleteCompletedTrainingJob:input_type -> viam.app.mltraining.v1.DeleteCompletedTrainingJobRequest - 17, // 23: viam.app.mltraining.v1.MLTrainingService.GetTrainingJobLogs:input_type -> viam.app.mltraining.v1.GetTrainingJobLogsRequest - 4, // 24: viam.app.mltraining.v1.MLTrainingService.SubmitTrainingJob:output_type -> viam.app.mltraining.v1.SubmitTrainingJobResponse - 6, // 25: viam.app.mltraining.v1.MLTrainingService.SubmitCustomTrainingJob:output_type -> viam.app.mltraining.v1.SubmitCustomTrainingJobResponse - 8, // 26: viam.app.mltraining.v1.MLTrainingService.GetTrainingJob:output_type -> viam.app.mltraining.v1.GetTrainingJobResponse - 10, // 27: viam.app.mltraining.v1.MLTrainingService.ListTrainingJobs:output_type -> viam.app.mltraining.v1.ListTrainingJobsResponse - 13, // 28: viam.app.mltraining.v1.MLTrainingService.CancelTrainingJob:output_type -> viam.app.mltraining.v1.CancelTrainingJobResponse - 15, // 29: viam.app.mltraining.v1.MLTrainingService.DeleteCompletedTrainingJob:output_type -> viam.app.mltraining.v1.DeleteCompletedTrainingJobResponse - 18, // 30: viam.app.mltraining.v1.MLTrainingService.GetTrainingJobLogs:output_type -> viam.app.mltraining.v1.GetTrainingJobLogsResponse - 24, // [24:31] is the sub-list for method output_type - 17, // [17:24] is the sub-list for method input_type - 17, // [17:17] is the sub-list for extension type_name - 17, // [17:17] is the sub-list for extension extendee - 0, // [0:17] is the sub-list for field type_name + 21, // 17: viam.app.mltraining.v1.ListSupportedContainersResponse.containers:type_name -> viam.app.mltraining.v1.Container + 25, // 18: viam.app.mltraining.v1.Container.eol:type_name -> google.protobuf.Timestamp + 3, // 19: viam.app.mltraining.v1.MLTrainingService.SubmitTrainingJob:input_type -> viam.app.mltraining.v1.SubmitTrainingJobRequest + 5, // 20: viam.app.mltraining.v1.MLTrainingService.SubmitCustomTrainingJob:input_type -> viam.app.mltraining.v1.SubmitCustomTrainingJobRequest + 7, // 21: viam.app.mltraining.v1.MLTrainingService.GetTrainingJob:input_type -> viam.app.mltraining.v1.GetTrainingJobRequest + 9, // 22: viam.app.mltraining.v1.MLTrainingService.ListTrainingJobs:input_type -> viam.app.mltraining.v1.ListTrainingJobsRequest + 12, // 23: viam.app.mltraining.v1.MLTrainingService.CancelTrainingJob:input_type -> viam.app.mltraining.v1.CancelTrainingJobRequest + 14, // 24: viam.app.mltraining.v1.MLTrainingService.DeleteCompletedTrainingJob:input_type -> viam.app.mltraining.v1.DeleteCompletedTrainingJobRequest + 17, // 25: viam.app.mltraining.v1.MLTrainingService.GetTrainingJobLogs:input_type -> viam.app.mltraining.v1.GetTrainingJobLogsRequest + 19, // 26: viam.app.mltraining.v1.MLTrainingService.ListSupportedContainers:input_type -> viam.app.mltraining.v1.ListSupportedContainersRequest + 4, // 27: viam.app.mltraining.v1.MLTrainingService.SubmitTrainingJob:output_type -> viam.app.mltraining.v1.SubmitTrainingJobResponse + 6, // 28: viam.app.mltraining.v1.MLTrainingService.SubmitCustomTrainingJob:output_type -> viam.app.mltraining.v1.SubmitCustomTrainingJobResponse + 8, // 29: viam.app.mltraining.v1.MLTrainingService.GetTrainingJob:output_type -> viam.app.mltraining.v1.GetTrainingJobResponse + 10, // 30: viam.app.mltraining.v1.MLTrainingService.ListTrainingJobs:output_type -> viam.app.mltraining.v1.ListTrainingJobsResponse + 13, // 31: viam.app.mltraining.v1.MLTrainingService.CancelTrainingJob:output_type -> viam.app.mltraining.v1.CancelTrainingJobResponse + 15, // 32: viam.app.mltraining.v1.MLTrainingService.DeleteCompletedTrainingJob:output_type -> viam.app.mltraining.v1.DeleteCompletedTrainingJobResponse + 18, // 33: viam.app.mltraining.v1.MLTrainingService.GetTrainingJobLogs:output_type -> viam.app.mltraining.v1.GetTrainingJobLogsResponse + 20, // 34: viam.app.mltraining.v1.MLTrainingService.ListSupportedContainers:output_type -> viam.app.mltraining.v1.ListSupportedContainersResponse + 27, // [27:35] is the sub-list for method output_type + 19, // [19:27] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name } func init() { file_app_mltraining_v1_ml_training_proto_init() } @@ -1643,7 +1835,7 @@ func file_app_mltraining_v1_ml_training_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_app_mltraining_v1_ml_training_proto_rawDesc, NumEnums: 3, - NumMessages: 18, + NumMessages: 21, NumExtensions: 0, NumServices: 1, }, diff --git a/app/mltraining/v1/ml_training.pb.gw.go b/app/mltraining/v1/ml_training.pb.gw.go index 9b0082d68..0eedf1939 100644 --- a/app/mltraining/v1/ml_training.pb.gw.go +++ b/app/mltraining/v1/ml_training.pb.gw.go @@ -213,6 +213,32 @@ func local_request_MLTrainingService_GetTrainingJobLogs_0(ctx context.Context, m } +func request_MLTrainingService_ListSupportedContainers_0(ctx context.Context, marshaler runtime.Marshaler, client MLTrainingServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListSupportedContainersRequest + var metadata runtime.ServerMetadata + + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListSupportedContainers(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_MLTrainingService_ListSupportedContainers_0(ctx context.Context, marshaler runtime.Marshaler, server MLTrainingServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListSupportedContainersRequest + var metadata runtime.ServerMetadata + + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListSupportedContainers(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterMLTrainingServiceHandlerServer registers the http handlers for service MLTrainingService to "mux". // UnaryRPC :call MLTrainingServiceServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -394,6 +420,31 @@ func RegisterMLTrainingServiceHandlerServer(ctx context.Context, mux *runtime.Se }) + mux.Handle("POST", pattern_MLTrainingService_ListSupportedContainers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/viam.app.mltraining.v1.MLTrainingService/ListSupportedContainers", runtime.WithHTTPPathPattern("/viam.app.mltraining.v1.MLTrainingService/ListSupportedContainers")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_MLTrainingService_ListSupportedContainers_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MLTrainingService_ListSupportedContainers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -589,6 +640,28 @@ func RegisterMLTrainingServiceHandlerClient(ctx context.Context, mux *runtime.Se }) + mux.Handle("POST", pattern_MLTrainingService_ListSupportedContainers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/viam.app.mltraining.v1.MLTrainingService/ListSupportedContainers", runtime.WithHTTPPathPattern("/viam.app.mltraining.v1.MLTrainingService/ListSupportedContainers")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_MLTrainingService_ListSupportedContainers_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MLTrainingService_ListSupportedContainers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -606,6 +679,8 @@ var ( pattern_MLTrainingService_DeleteCompletedTrainingJob_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"viam.app.mltraining.v1.MLTrainingService", "DeleteCompletedTrainingJob"}, "")) pattern_MLTrainingService_GetTrainingJobLogs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"viam.app.mltraining.v1.MLTrainingService", "GetTrainingJobLogs"}, "")) + + pattern_MLTrainingService_ListSupportedContainers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"viam.app.mltraining.v1.MLTrainingService", "ListSupportedContainers"}, "")) ) var ( @@ -622,4 +697,6 @@ var ( forward_MLTrainingService_DeleteCompletedTrainingJob_0 = runtime.ForwardResponseMessage forward_MLTrainingService_GetTrainingJobLogs_0 = runtime.ForwardResponseMessage + + forward_MLTrainingService_ListSupportedContainers_0 = runtime.ForwardResponseMessage ) diff --git a/app/mltraining/v1/ml_training_grpc.pb.go b/app/mltraining/v1/ml_training_grpc.pb.go index 9b53e8778..01f11d9e5 100644 --- a/app/mltraining/v1/ml_training_grpc.pb.go +++ b/app/mltraining/v1/ml_training_grpc.pb.go @@ -36,6 +36,8 @@ type MLTrainingServiceClient interface { DeleteCompletedTrainingJob(ctx context.Context, in *DeleteCompletedTrainingJobRequest, opts ...grpc.CallOption) (*DeleteCompletedTrainingJobResponse, error) // GetTrainingJobLogs gets the logs for a given custom training job. GetTrainingJobLogs(ctx context.Context, in *GetTrainingJobLogsRequest, opts ...grpc.CallOption) (*GetTrainingJobLogsResponse, error) + // ListSupportedContainers lists all supported containers. + ListSupportedContainers(ctx context.Context, in *ListSupportedContainersRequest, opts ...grpc.CallOption) (*ListSupportedContainersResponse, error) } type mLTrainingServiceClient struct { @@ -109,6 +111,15 @@ func (c *mLTrainingServiceClient) GetTrainingJobLogs(ctx context.Context, in *Ge return out, nil } +func (c *mLTrainingServiceClient) ListSupportedContainers(ctx context.Context, in *ListSupportedContainersRequest, opts ...grpc.CallOption) (*ListSupportedContainersResponse, error) { + out := new(ListSupportedContainersResponse) + err := c.cc.Invoke(ctx, "/viam.app.mltraining.v1.MLTrainingService/ListSupportedContainers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MLTrainingServiceServer is the server API for MLTrainingService service. // All implementations must embed UnimplementedMLTrainingServiceServer // for forward compatibility @@ -127,6 +138,8 @@ type MLTrainingServiceServer interface { DeleteCompletedTrainingJob(context.Context, *DeleteCompletedTrainingJobRequest) (*DeleteCompletedTrainingJobResponse, error) // GetTrainingJobLogs gets the logs for a given custom training job. GetTrainingJobLogs(context.Context, *GetTrainingJobLogsRequest) (*GetTrainingJobLogsResponse, error) + // ListSupportedContainers lists all supported containers. + ListSupportedContainers(context.Context, *ListSupportedContainersRequest) (*ListSupportedContainersResponse, error) mustEmbedUnimplementedMLTrainingServiceServer() } @@ -155,6 +168,9 @@ func (UnimplementedMLTrainingServiceServer) DeleteCompletedTrainingJob(context.C func (UnimplementedMLTrainingServiceServer) GetTrainingJobLogs(context.Context, *GetTrainingJobLogsRequest) (*GetTrainingJobLogsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetTrainingJobLogs not implemented") } +func (UnimplementedMLTrainingServiceServer) ListSupportedContainers(context.Context, *ListSupportedContainersRequest) (*ListSupportedContainersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSupportedContainers not implemented") +} func (UnimplementedMLTrainingServiceServer) mustEmbedUnimplementedMLTrainingServiceServer() {} // UnsafeMLTrainingServiceServer may be embedded to opt out of forward compatibility for this service. @@ -294,6 +310,24 @@ func _MLTrainingService_GetTrainingJobLogs_Handler(srv interface{}, ctx context. return interceptor(ctx, in, info, handler) } +func _MLTrainingService_ListSupportedContainers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListSupportedContainersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MLTrainingServiceServer).ListSupportedContainers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/viam.app.mltraining.v1.MLTrainingService/ListSupportedContainers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MLTrainingServiceServer).ListSupportedContainers(ctx, req.(*ListSupportedContainersRequest)) + } + return interceptor(ctx, in, info, handler) +} + // MLTrainingService_ServiceDesc is the grpc.ServiceDesc for MLTrainingService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -329,6 +363,10 @@ var MLTrainingService_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetTrainingJobLogs", Handler: _MLTrainingService_GetTrainingJobLogs_Handler, }, + { + MethodName: "ListSupportedContainers", + Handler: _MLTrainingService_ListSupportedContainers_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "app/mltraining/v1/ml_training.proto", diff --git a/gen/js/app/data/v1/data_grpc_web_pb.js b/gen/js/app/data/v1/data_grpc_web_pb.js index 93ee56f4d..896359631 100644 --- a/gen/js/app/data/v1/data_grpc_web_pb.js +++ b/gen/js/app/data/v1/data_grpc_web_pb.js @@ -1481,6 +1481,67 @@ proto.viam.app.data.v1.DataServicePromiseClient.prototype.removeBinaryDataFromDa }; +/** + * @const + * @type {!grpc.web.MethodDescriptor< + * !proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest, + * !proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse>} + */ +const methodDescriptor_DataService_BinaryMetadataToJSONLines = new grpc.web.MethodDescriptor( + '/viam.app.data.v1.DataService/BinaryMetadataToJSONLines', + grpc.web.MethodType.UNARY, + proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest, + proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse, + /** + * @param {!proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest} request + * @return {!Uint8Array} + */ + function(request) { + return request.serializeBinary(); + }, + proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse.deserializeBinary +); + + +/** + * @param {!proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest} request The + * request proto + * @param {?Object} metadata User defined + * call metadata + * @param {function(?grpc.web.RpcError, ?proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse)} + * callback The callback function(error, response) + * @return {!grpc.web.ClientReadableStream|undefined} + * The XHR Node Readable Stream + */ +proto.viam.app.data.v1.DataServiceClient.prototype.binaryMetadataToJSONLines = + function(request, metadata, callback) { + return this.client_.rpcCall(this.hostname_ + + '/viam.app.data.v1.DataService/BinaryMetadataToJSONLines', + request, + metadata || {}, + methodDescriptor_DataService_BinaryMetadataToJSONLines, + callback); +}; + + +/** + * @param {!proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest} request The + * request proto + * @param {?Object=} metadata User defined + * call metadata + * @return {!Promise} + * Promise that resolves to the response + */ +proto.viam.app.data.v1.DataServicePromiseClient.prototype.binaryMetadataToJSONLines = + function(request, metadata) { + return this.client_.unaryCall(this.hostname_ + + '/viam.app.data.v1.DataService/BinaryMetadataToJSONLines', + request, + metadata || {}, + methodDescriptor_DataService_BinaryMetadataToJSONLines); +}; + + /** * @const * @type {!grpc.web.MethodDescriptor< diff --git a/gen/js/app/data/v1/data_pb.d.ts b/gen/js/app/data/v1/data_pb.d.ts index 186468f91..15249bc7a 100644 --- a/gen/js/app/data/v1/data_pb.d.ts +++ b/gen/js/app/data/v1/data_pb.d.ts @@ -1833,6 +1833,54 @@ export namespace RemoveBinaryDataFromDatasetByIDsResponse { } } +export class BinaryMetadataToJSONLinesRequest extends jspb.Message { + clearBinaryMetadataList(): void; + getBinaryMetadataList(): Array; + setBinaryMetadataList(value: Array): void; + addBinaryMetadata(value?: BinaryMetadata, index?: number): BinaryMetadata; + + getPath(): string; + setPath(value: string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): BinaryMetadataToJSONLinesRequest.AsObject; + static toObject(includeInstance: boolean, msg: BinaryMetadataToJSONLinesRequest): BinaryMetadataToJSONLinesRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: BinaryMetadataToJSONLinesRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): BinaryMetadataToJSONLinesRequest; + static deserializeBinaryFromReader(message: BinaryMetadataToJSONLinesRequest, reader: jspb.BinaryReader): BinaryMetadataToJSONLinesRequest; +} + +export namespace BinaryMetadataToJSONLinesRequest { + export type AsObject = { + binaryMetadataList: Array, + path: string, + } +} + +export class BinaryMetadataToJSONLinesResponse extends jspb.Message { + clearJsonLinesList(): void; + getJsonLinesList(): Array; + setJsonLinesList(value: Array): void; + addJsonLines(value: string, index?: number): string; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): BinaryMetadataToJSONLinesResponse.AsObject; + static toObject(includeInstance: boolean, msg: BinaryMetadataToJSONLinesResponse): BinaryMetadataToJSONLinesResponse.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: BinaryMetadataToJSONLinesResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): BinaryMetadataToJSONLinesResponse; + static deserializeBinaryFromReader(message: BinaryMetadataToJSONLinesResponse, reader: jspb.BinaryReader): BinaryMetadataToJSONLinesResponse; +} + +export namespace BinaryMetadataToJSONLinesResponse { + export type AsObject = { + jsonLinesList: Array, + } +} + export class CreateIndexRequest extends jspb.Message { getOrganizationId(): string; setOrganizationId(value: string): void; diff --git a/gen/js/app/data/v1/data_pb.js b/gen/js/app/data/v1/data_pb.js index a4bf45f9e..6ccd729bb 100644 --- a/gen/js/app/data/v1/data_pb.js +++ b/gen/js/app/data/v1/data_pb.js @@ -37,6 +37,8 @@ goog.exportSymbol('proto.viam.app.data.v1.BinaryDataByIDsRequest', null, global) goog.exportSymbol('proto.viam.app.data.v1.BinaryDataByIDsResponse', null, global); goog.exportSymbol('proto.viam.app.data.v1.BinaryID', null, global); goog.exportSymbol('proto.viam.app.data.v1.BinaryMetadata', null, global); +goog.exportSymbol('proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest', null, global); +goog.exportSymbol('proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse', null, global); goog.exportSymbol('proto.viam.app.data.v1.BoundingBox', null, global); goog.exportSymbol('proto.viam.app.data.v1.BoundingBoxLabelsByFilterRequest', null, global); goog.exportSymbol('proto.viam.app.data.v1.BoundingBoxLabelsByFilterResponse', null, global); @@ -1331,6 +1333,48 @@ if (goog.DEBUG && !COMPILED) { */ proto.viam.app.data.v1.RemoveBinaryDataFromDatasetByIDsResponse.displayName = 'proto.viam.app.data.v1.RemoveBinaryDataFromDatasetByIDsResponse'; } +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest.repeatedFields_, null); +}; +goog.inherits(proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest.displayName = 'proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse.repeatedFields_, null); +}; +goog.inherits(proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse.displayName = 'proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse'; +} /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -14625,6 +14669,352 @@ proto.viam.app.data.v1.RemoveBinaryDataFromDatasetByIDsResponse.serializeBinaryT +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest.prototype.toObject = function(opt_includeInstance) { + return proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest.toObject = function(includeInstance, msg) { + var f, obj = { + binaryMetadataList: jspb.Message.toObjectList(msg.getBinaryMetadataList(), + proto.viam.app.data.v1.BinaryMetadata.toObject, includeInstance), + path: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest} + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest; + return proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest} + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.viam.app.data.v1.BinaryMetadata; + reader.readMessage(value,proto.viam.app.data.v1.BinaryMetadata.deserializeBinaryFromReader); + msg.addBinaryMetadata(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPath(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getBinaryMetadataList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.viam.app.data.v1.BinaryMetadata.serializeBinaryToWriter + ); + } + f = message.getPath(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated BinaryMetadata binary_metadata = 1; + * @return {!Array} + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest.prototype.getBinaryMetadataList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.viam.app.data.v1.BinaryMetadata, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest} returns this +*/ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest.prototype.setBinaryMetadataList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.viam.app.data.v1.BinaryMetadata=} opt_value + * @param {number=} opt_index + * @return {!proto.viam.app.data.v1.BinaryMetadata} + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest.prototype.addBinaryMetadata = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.viam.app.data.v1.BinaryMetadata, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest} returns this + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest.prototype.clearBinaryMetadataList = function() { + return this.setBinaryMetadataList([]); +}; + + +/** + * optional string path = 2; + * @return {string} + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest.prototype.getPath = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest} returns this + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesRequest.prototype.setPath = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse.prototype.toObject = function(opt_includeInstance) { + return proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse.toObject = function(includeInstance, msg) { + var f, obj = { + jsonLinesList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse} + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse; + return proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse} + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.addJsonLines(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getJsonLinesList(); + if (f.length > 0) { + writer.writeRepeatedString( + 1, + f + ); + } +}; + + +/** + * repeated string json_lines = 1; + * @return {!Array} + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse.prototype.getJsonLinesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse} returns this + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse.prototype.setJsonLinesList = function(value) { + return jspb.Message.setField(this, 1, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + * @return {!proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse} returns this + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse.prototype.addJsonLines = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 1, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse} returns this + */ +proto.viam.app.data.v1.BinaryMetadataToJSONLinesResponse.prototype.clearJsonLinesList = function() { + return this.setJsonLinesList([]); +}; + + + /** * List of repeated fields within this message type. * @private {!Array} diff --git a/gen/js/app/data/v1/data_pb_service.d.ts b/gen/js/app/data/v1/data_pb_service.d.ts index 57101cae2..dafa9735f 100644 --- a/gen/js/app/data/v1/data_pb_service.d.ts +++ b/gen/js/app/data/v1/data_pb_service.d.ts @@ -211,6 +211,15 @@ type DataServiceRemoveBinaryDataFromDatasetByIDs = { readonly responseType: typeof app_data_v1_data_pb.RemoveBinaryDataFromDatasetByIDsResponse; }; +type DataServiceBinaryMetadataToJSONLines = { + readonly methodName: string; + readonly service: typeof DataService; + readonly requestStream: false; + readonly responseStream: false; + readonly requestType: typeof app_data_v1_data_pb.BinaryMetadataToJSONLinesRequest; + readonly responseType: typeof app_data_v1_data_pb.BinaryMetadataToJSONLinesResponse; +}; + type DataServiceCreateIndex = { readonly methodName: string; readonly service: typeof DataService; @@ -263,6 +272,7 @@ export class DataService { static readonly ConfigureDatabaseUser: DataServiceConfigureDatabaseUser; static readonly AddBinaryDataToDatasetByIDs: DataServiceAddBinaryDataToDatasetByIDs; static readonly RemoveBinaryDataFromDatasetByIDs: DataServiceRemoveBinaryDataFromDatasetByIDs; + static readonly BinaryMetadataToJSONLines: DataServiceBinaryMetadataToJSONLines; static readonly CreateIndex: DataServiceCreateIndex; static readonly ListIndexes: DataServiceListIndexes; static readonly DeleteIndex: DataServiceDeleteIndex; @@ -499,6 +509,15 @@ export class DataServiceClient { requestMessage: app_data_v1_data_pb.RemoveBinaryDataFromDatasetByIDsRequest, callback: (error: ServiceError|null, responseMessage: app_data_v1_data_pb.RemoveBinaryDataFromDatasetByIDsResponse|null) => void ): UnaryResponse; + binaryMetadataToJSONLines( + requestMessage: app_data_v1_data_pb.BinaryMetadataToJSONLinesRequest, + metadata: grpc.Metadata, + callback: (error: ServiceError|null, responseMessage: app_data_v1_data_pb.BinaryMetadataToJSONLinesResponse|null) => void + ): UnaryResponse; + binaryMetadataToJSONLines( + requestMessage: app_data_v1_data_pb.BinaryMetadataToJSONLinesRequest, + callback: (error: ServiceError|null, responseMessage: app_data_v1_data_pb.BinaryMetadataToJSONLinesResponse|null) => void + ): UnaryResponse; createIndex( requestMessage: app_data_v1_data_pb.CreateIndexRequest, metadata: grpc.Metadata, diff --git a/gen/js/app/data/v1/data_pb_service.js b/gen/js/app/data/v1/data_pb_service.js index 3dbb1d53d..e183384a7 100644 --- a/gen/js/app/data/v1/data_pb_service.js +++ b/gen/js/app/data/v1/data_pb_service.js @@ -217,6 +217,15 @@ DataService.RemoveBinaryDataFromDatasetByIDs = { responseType: app_data_v1_data_pb.RemoveBinaryDataFromDatasetByIDsResponse }; +DataService.BinaryMetadataToJSONLines = { + methodName: "BinaryMetadataToJSONLines", + service: DataService, + requestStream: false, + responseStream: false, + requestType: app_data_v1_data_pb.BinaryMetadataToJSONLinesRequest, + responseType: app_data_v1_data_pb.BinaryMetadataToJSONLinesResponse +}; + DataService.CreateIndex = { methodName: "CreateIndex", service: DataService, @@ -972,6 +981,37 @@ DataServiceClient.prototype.removeBinaryDataFromDatasetByIDs = function removeBi }; }; +DataServiceClient.prototype.binaryMetadataToJSONLines = function binaryMetadataToJSONLines(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + var client = grpc.unary(DataService.BinaryMetadataToJSONLines, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); + return { + cancel: function () { + callback = null; + client.close(); + } + }; +}; + DataServiceClient.prototype.createIndex = function createIndex(requestMessage, metadata, callback) { if (arguments.length === 2) { callback = arguments[1]; diff --git a/gen/js/app/mltraining/v1/ml_training_grpc_web_pb.js b/gen/js/app/mltraining/v1/ml_training_grpc_web_pb.js index 620b2aa53..fc1357b89 100644 --- a/gen/js/app/mltraining/v1/ml_training_grpc_web_pb.js +++ b/gen/js/app/mltraining/v1/ml_training_grpc_web_pb.js @@ -510,5 +510,66 @@ proto.viam.app.mltraining.v1.MLTrainingServicePromiseClient.prototype.getTrainin }; +/** + * @const + * @type {!grpc.web.MethodDescriptor< + * !proto.viam.app.mltraining.v1.ListSupportedContainersRequest, + * !proto.viam.app.mltraining.v1.ListSupportedContainersResponse>} + */ +const methodDescriptor_MLTrainingService_ListSupportedContainers = new grpc.web.MethodDescriptor( + '/viam.app.mltraining.v1.MLTrainingService/ListSupportedContainers', + grpc.web.MethodType.UNARY, + proto.viam.app.mltraining.v1.ListSupportedContainersRequest, + proto.viam.app.mltraining.v1.ListSupportedContainersResponse, + /** + * @param {!proto.viam.app.mltraining.v1.ListSupportedContainersRequest} request + * @return {!Uint8Array} + */ + function(request) { + return request.serializeBinary(); + }, + proto.viam.app.mltraining.v1.ListSupportedContainersResponse.deserializeBinary +); + + +/** + * @param {!proto.viam.app.mltraining.v1.ListSupportedContainersRequest} request The + * request proto + * @param {?Object} metadata User defined + * call metadata + * @param {function(?grpc.web.RpcError, ?proto.viam.app.mltraining.v1.ListSupportedContainersResponse)} + * callback The callback function(error, response) + * @return {!grpc.web.ClientReadableStream|undefined} + * The XHR Node Readable Stream + */ +proto.viam.app.mltraining.v1.MLTrainingServiceClient.prototype.listSupportedContainers = + function(request, metadata, callback) { + return this.client_.rpcCall(this.hostname_ + + '/viam.app.mltraining.v1.MLTrainingService/ListSupportedContainers', + request, + metadata || {}, + methodDescriptor_MLTrainingService_ListSupportedContainers, + callback); +}; + + +/** + * @param {!proto.viam.app.mltraining.v1.ListSupportedContainersRequest} request The + * request proto + * @param {?Object=} metadata User defined + * call metadata + * @return {!Promise} + * Promise that resolves to the response + */ +proto.viam.app.mltraining.v1.MLTrainingServicePromiseClient.prototype.listSupportedContainers = + function(request, metadata) { + return this.client_.unaryCall(this.hostname_ + + '/viam.app.mltraining.v1.MLTrainingService/ListSupportedContainers', + request, + metadata || {}, + methodDescriptor_MLTrainingService_ListSupportedContainers); +}; + + module.exports = proto.viam.app.mltraining.v1; diff --git a/gen/js/app/mltraining/v1/ml_training_pb.d.ts b/gen/js/app/mltraining/v1/ml_training_pb.d.ts index f666ce696..13d12c84f 100644 --- a/gen/js/app/mltraining/v1/ml_training_pb.d.ts +++ b/gen/js/app/mltraining/v1/ml_training_pb.d.ts @@ -93,6 +93,9 @@ export class SubmitCustomTrainingJobRequest extends jspb.Message { getArgumentsMap(): jspb.Map; clearArgumentsMap(): void; + getContainerVersion(): string; + setContainerVersion(value: string): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): SubmitCustomTrainingJobRequest.AsObject; static toObject(includeInstance: boolean, msg: SubmitCustomTrainingJobRequest): SubmitCustomTrainingJobRequest.AsObject; @@ -112,6 +115,7 @@ export namespace SubmitCustomTrainingJobRequest { modelName: string, modelVersion: string, argumentsMap: Array<[string, string]>, + containerVersion: string, } } @@ -292,6 +296,9 @@ export class TrainingJobMetadata extends jspb.Message { getArgumentsMap(): jspb.Map; clearArgumentsMap(): void; + getContainerVersion(): string; + setContainerVersion(value: string): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): TrainingJobMetadata.AsObject; static toObject(includeInstance: boolean, msg: TrainingJobMetadata): TrainingJobMetadata.AsObject; @@ -323,6 +330,7 @@ export namespace TrainingJobMetadata { syncedModelId: string, tagsList: Array, argumentsMap: Array<[string, string]>, + containerVersion: string, } } @@ -480,6 +488,70 @@ export namespace GetTrainingJobLogsResponse { } } +export class ListSupportedContainersRequest extends jspb.Message { + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListSupportedContainersRequest.AsObject; + static toObject(includeInstance: boolean, msg: ListSupportedContainersRequest): ListSupportedContainersRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: ListSupportedContainersRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListSupportedContainersRequest; + static deserializeBinaryFromReader(message: ListSupportedContainersRequest, reader: jspb.BinaryReader): ListSupportedContainersRequest; +} + +export namespace ListSupportedContainersRequest { + export type AsObject = { + } +} + +export class ListSupportedContainersResponse extends jspb.Message { + clearContainersList(): void; + getContainersList(): Array; + setContainersList(value: Array): void; + addContainers(value?: Container, index?: number): Container; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListSupportedContainersResponse.AsObject; + static toObject(includeInstance: boolean, msg: ListSupportedContainersResponse): ListSupportedContainersResponse.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: ListSupportedContainersResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListSupportedContainersResponse; + static deserializeBinaryFromReader(message: ListSupportedContainersResponse, reader: jspb.BinaryReader): ListSupportedContainersResponse; +} + +export namespace ListSupportedContainersResponse { + export type AsObject = { + containersList: Array, + } +} + +export class Container extends jspb.Message { + getUri(): string; + setUri(value: string): void; + + hasEol(): boolean; + clearEol(): void; + getEol(): google_protobuf_timestamp_pb.Timestamp | undefined; + setEol(value?: google_protobuf_timestamp_pb.Timestamp): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Container.AsObject; + static toObject(includeInstance: boolean, msg: Container): Container.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: Container, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Container; + static deserializeBinaryFromReader(message: Container, reader: jspb.BinaryReader): Container; +} + +export namespace Container { + export type AsObject = { + uri: string, + eol?: google_protobuf_timestamp_pb.Timestamp.AsObject, + } +} + export interface ModelTypeMap { MODEL_TYPE_UNSPECIFIED: 0; MODEL_TYPE_SINGLE_LABEL_CLASSIFICATION: 1; diff --git a/gen/js/app/mltraining/v1/ml_training_pb.js b/gen/js/app/mltraining/v1/ml_training_pb.js index d3b9d2420..fbd2124b7 100644 --- a/gen/js/app/mltraining/v1/ml_training_pb.js +++ b/gen/js/app/mltraining/v1/ml_training_pb.js @@ -23,12 +23,15 @@ var tagger_v1_tagger_pb = require('../../../tagger/v1/tagger_pb.js'); goog.object.extend(proto, tagger_v1_tagger_pb); goog.exportSymbol('proto.viam.app.mltraining.v1.CancelTrainingJobRequest', null, global); goog.exportSymbol('proto.viam.app.mltraining.v1.CancelTrainingJobResponse', null, global); +goog.exportSymbol('proto.viam.app.mltraining.v1.Container', null, global); goog.exportSymbol('proto.viam.app.mltraining.v1.DeleteCompletedTrainingJobRequest', null, global); goog.exportSymbol('proto.viam.app.mltraining.v1.DeleteCompletedTrainingJobResponse', null, global); goog.exportSymbol('proto.viam.app.mltraining.v1.GetTrainingJobLogsRequest', null, global); goog.exportSymbol('proto.viam.app.mltraining.v1.GetTrainingJobLogsResponse', null, global); goog.exportSymbol('proto.viam.app.mltraining.v1.GetTrainingJobRequest', null, global); goog.exportSymbol('proto.viam.app.mltraining.v1.GetTrainingJobResponse', null, global); +goog.exportSymbol('proto.viam.app.mltraining.v1.ListSupportedContainersRequest', null, global); +goog.exportSymbol('proto.viam.app.mltraining.v1.ListSupportedContainersResponse', null, global); goog.exportSymbol('proto.viam.app.mltraining.v1.ListTrainingJobsRequest', null, global); goog.exportSymbol('proto.viam.app.mltraining.v1.ListTrainingJobsResponse', null, global); goog.exportSymbol('proto.viam.app.mltraining.v1.ModelFramework', null, global); @@ -376,6 +379,69 @@ if (goog.DEBUG && !COMPILED) { */ proto.viam.app.mltraining.v1.GetTrainingJobLogsResponse.displayName = 'proto.viam.app.mltraining.v1.GetTrainingJobLogsResponse'; } +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.viam.app.mltraining.v1.ListSupportedContainersRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.viam.app.mltraining.v1.ListSupportedContainersRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.viam.app.mltraining.v1.ListSupportedContainersRequest.displayName = 'proto.viam.app.mltraining.v1.ListSupportedContainersRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.viam.app.mltraining.v1.ListSupportedContainersResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.viam.app.mltraining.v1.ListSupportedContainersResponse.repeatedFields_, null); +}; +goog.inherits(proto.viam.app.mltraining.v1.ListSupportedContainersResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.viam.app.mltraining.v1.ListSupportedContainersResponse.displayName = 'proto.viam.app.mltraining.v1.ListSupportedContainersResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.viam.app.mltraining.v1.Container = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.viam.app.mltraining.v1.Container, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.viam.app.mltraining.v1.Container.displayName = 'proto.viam.app.mltraining.v1.Container'; +} /** * List of repeated fields within this message type. @@ -880,7 +946,8 @@ proto.viam.app.mltraining.v1.SubmitCustomTrainingJobRequest.toObject = function( organizationId: jspb.Message.getFieldWithDefault(msg, 3, ""), modelName: jspb.Message.getFieldWithDefault(msg, 4, ""), modelVersion: jspb.Message.getFieldWithDefault(msg, 5, ""), - argumentsMap: (f = msg.getArgumentsMap()) ? f.toObject(includeInstance, undefined) : [] + argumentsMap: (f = msg.getArgumentsMap()) ? f.toObject(includeInstance, undefined) : [], + containerVersion: jspb.Message.getFieldWithDefault(msg, 8, "") }; if (includeInstance) { @@ -947,6 +1014,10 @@ proto.viam.app.mltraining.v1.SubmitCustomTrainingJobRequest.deserializeBinaryFro jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); }); break; + case 8: + var value = /** @type {string} */ (reader.readString()); + msg.setContainerVersion(value); + break; default: reader.skipField(); break; @@ -1022,6 +1093,13 @@ proto.viam.app.mltraining.v1.SubmitCustomTrainingJobRequest.serializeBinaryToWri if (f && f.getLength() > 0) { f.serializeBinary(7, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); } + f = message.getContainerVersion(); + if (f.length > 0) { + writer.writeString( + 8, + f + ); + } }; @@ -1155,6 +1233,24 @@ proto.viam.app.mltraining.v1.SubmitCustomTrainingJobRequest.prototype.clearArgum return this;}; +/** + * optional string container_version = 8; + * @return {string} + */ +proto.viam.app.mltraining.v1.SubmitCustomTrainingJobRequest.prototype.getContainerVersion = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); +}; + + +/** + * @param {string} value + * @return {!proto.viam.app.mltraining.v1.SubmitCustomTrainingJobRequest} returns this + */ +proto.viam.app.mltraining.v1.SubmitCustomTrainingJobRequest.prototype.setContainerVersion = function(value) { + return jspb.Message.setProto3StringField(this, 8, value); +}; + + @@ -1943,7 +2039,8 @@ proto.viam.app.mltraining.v1.TrainingJobMetadata.toObject = function(includeInst trainingEnded: (f = msg.getTrainingEnded()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f), syncedModelId: jspb.Message.getFieldWithDefault(msg, 5, ""), tagsList: (f = jspb.Message.getRepeatedField(msg, 16)) == null ? undefined : f, - argumentsMap: (f = msg.getArgumentsMap()) ? f.toObject(includeInstance, undefined) : [] + argumentsMap: (f = msg.getArgumentsMap()) ? f.toObject(includeInstance, undefined) : [], + containerVersion: jspb.Message.getFieldWithDefault(msg, 22, "") }; if (includeInstance) { @@ -2063,6 +2160,10 @@ proto.viam.app.mltraining.v1.TrainingJobMetadata.deserializeBinaryFromReader = f jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); }); break; + case 22: + var value = /** @type {string} */ (reader.readString()); + msg.setContainerVersion(value); + break; default: reader.skipField(); break; @@ -2227,6 +2328,13 @@ proto.viam.app.mltraining.v1.TrainingJobMetadata.serializeBinaryToWriter = funct if (f && f.getLength() > 0) { f.serializeBinary(21, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); } + f = message.getContainerVersion(); + if (f.length > 0) { + writer.writeString( + 22, + f + ); + } }; @@ -2690,6 +2798,24 @@ proto.viam.app.mltraining.v1.TrainingJobMetadata.prototype.clearArgumentsMap = f return this;}; +/** + * optional string container_version = 22; + * @return {string} + */ +proto.viam.app.mltraining.v1.TrainingJobMetadata.prototype.getContainerVersion = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 22, "")); +}; + + +/** + * @param {string} value + * @return {!proto.viam.app.mltraining.v1.TrainingJobMetadata} returns this + */ +proto.viam.app.mltraining.v1.TrainingJobMetadata.prototype.setContainerVersion = function(value) { + return jspb.Message.setProto3StringField(this, 22, value); +}; + + @@ -3731,6 +3857,448 @@ proto.viam.app.mltraining.v1.GetTrainingJobLogsResponse.prototype.setNextPageTok }; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.viam.app.mltraining.v1.ListSupportedContainersRequest.prototype.toObject = function(opt_includeInstance) { + return proto.viam.app.mltraining.v1.ListSupportedContainersRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.viam.app.mltraining.v1.ListSupportedContainersRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.viam.app.mltraining.v1.ListSupportedContainersRequest.toObject = function(includeInstance, msg) { + var f, obj = { + + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.viam.app.mltraining.v1.ListSupportedContainersRequest} + */ +proto.viam.app.mltraining.v1.ListSupportedContainersRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.viam.app.mltraining.v1.ListSupportedContainersRequest; + return proto.viam.app.mltraining.v1.ListSupportedContainersRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.viam.app.mltraining.v1.ListSupportedContainersRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.viam.app.mltraining.v1.ListSupportedContainersRequest} + */ +proto.viam.app.mltraining.v1.ListSupportedContainersRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.viam.app.mltraining.v1.ListSupportedContainersRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.viam.app.mltraining.v1.ListSupportedContainersRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.viam.app.mltraining.v1.ListSupportedContainersRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.viam.app.mltraining.v1.ListSupportedContainersRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.viam.app.mltraining.v1.ListSupportedContainersResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.viam.app.mltraining.v1.ListSupportedContainersResponse.prototype.toObject = function(opt_includeInstance) { + return proto.viam.app.mltraining.v1.ListSupportedContainersResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.viam.app.mltraining.v1.ListSupportedContainersResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.viam.app.mltraining.v1.ListSupportedContainersResponse.toObject = function(includeInstance, msg) { + var f, obj = { + containersList: jspb.Message.toObjectList(msg.getContainersList(), + proto.viam.app.mltraining.v1.Container.toObject, includeInstance) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.viam.app.mltraining.v1.ListSupportedContainersResponse} + */ +proto.viam.app.mltraining.v1.ListSupportedContainersResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.viam.app.mltraining.v1.ListSupportedContainersResponse; + return proto.viam.app.mltraining.v1.ListSupportedContainersResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.viam.app.mltraining.v1.ListSupportedContainersResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.viam.app.mltraining.v1.ListSupportedContainersResponse} + */ +proto.viam.app.mltraining.v1.ListSupportedContainersResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.viam.app.mltraining.v1.Container; + reader.readMessage(value,proto.viam.app.mltraining.v1.Container.deserializeBinaryFromReader); + msg.addContainers(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.viam.app.mltraining.v1.ListSupportedContainersResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.viam.app.mltraining.v1.ListSupportedContainersResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.viam.app.mltraining.v1.ListSupportedContainersResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.viam.app.mltraining.v1.ListSupportedContainersResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getContainersList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.viam.app.mltraining.v1.Container.serializeBinaryToWriter + ); + } +}; + + +/** + * repeated Container containers = 1; + * @return {!Array} + */ +proto.viam.app.mltraining.v1.ListSupportedContainersResponse.prototype.getContainersList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.viam.app.mltraining.v1.Container, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.viam.app.mltraining.v1.ListSupportedContainersResponse} returns this +*/ +proto.viam.app.mltraining.v1.ListSupportedContainersResponse.prototype.setContainersList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.viam.app.mltraining.v1.Container=} opt_value + * @param {number=} opt_index + * @return {!proto.viam.app.mltraining.v1.Container} + */ +proto.viam.app.mltraining.v1.ListSupportedContainersResponse.prototype.addContainers = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.viam.app.mltraining.v1.Container, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.viam.app.mltraining.v1.ListSupportedContainersResponse} returns this + */ +proto.viam.app.mltraining.v1.ListSupportedContainersResponse.prototype.clearContainersList = function() { + return this.setContainersList([]); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.viam.app.mltraining.v1.Container.prototype.toObject = function(opt_includeInstance) { + return proto.viam.app.mltraining.v1.Container.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.viam.app.mltraining.v1.Container} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.viam.app.mltraining.v1.Container.toObject = function(includeInstance, msg) { + var f, obj = { + uri: jspb.Message.getFieldWithDefault(msg, 1, ""), + eol: (f = msg.getEol()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.viam.app.mltraining.v1.Container} + */ +proto.viam.app.mltraining.v1.Container.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.viam.app.mltraining.v1.Container; + return proto.viam.app.mltraining.v1.Container.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.viam.app.mltraining.v1.Container} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.viam.app.mltraining.v1.Container} + */ +proto.viam.app.mltraining.v1.Container.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUri(value); + break; + case 2: + var value = new google_protobuf_timestamp_pb.Timestamp; + reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader); + msg.setEol(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.viam.app.mltraining.v1.Container.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.viam.app.mltraining.v1.Container.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.viam.app.mltraining.v1.Container} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.viam.app.mltraining.v1.Container.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUri(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getEol(); + if (f != null) { + writer.writeMessage( + 2, + f, + google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string uri = 1; + * @return {string} + */ +proto.viam.app.mltraining.v1.Container.prototype.getUri = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.viam.app.mltraining.v1.Container} returns this + */ +proto.viam.app.mltraining.v1.Container.prototype.setUri = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional google.protobuf.Timestamp eol = 2; + * @return {?proto.google.protobuf.Timestamp} + */ +proto.viam.app.mltraining.v1.Container.prototype.getEol = function() { + return /** @type{?proto.google.protobuf.Timestamp} */ ( + jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 2)); +}; + + +/** + * @param {?proto.google.protobuf.Timestamp|undefined} value + * @return {!proto.viam.app.mltraining.v1.Container} returns this +*/ +proto.viam.app.mltraining.v1.Container.prototype.setEol = function(value) { + return jspb.Message.setWrapperField(this, 2, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.viam.app.mltraining.v1.Container} returns this + */ +proto.viam.app.mltraining.v1.Container.prototype.clearEol = function() { + return this.setEol(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.viam.app.mltraining.v1.Container.prototype.hasEol = function() { + return jspb.Message.getField(this, 2) != null; +}; + + /** * @enum {number} */ diff --git a/gen/js/app/mltraining/v1/ml_training_pb_service.d.ts b/gen/js/app/mltraining/v1/ml_training_pb_service.d.ts index 65a303a2d..eb12135bf 100644 --- a/gen/js/app/mltraining/v1/ml_training_pb_service.d.ts +++ b/gen/js/app/mltraining/v1/ml_training_pb_service.d.ts @@ -67,6 +67,15 @@ type MLTrainingServiceGetTrainingJobLogs = { readonly responseType: typeof app_mltraining_v1_ml_training_pb.GetTrainingJobLogsResponse; }; +type MLTrainingServiceListSupportedContainers = { + readonly methodName: string; + readonly service: typeof MLTrainingService; + readonly requestStream: false; + readonly responseStream: false; + readonly requestType: typeof app_mltraining_v1_ml_training_pb.ListSupportedContainersRequest; + readonly responseType: typeof app_mltraining_v1_ml_training_pb.ListSupportedContainersResponse; +}; + export class MLTrainingService { static readonly serviceName: string; static readonly SubmitTrainingJob: MLTrainingServiceSubmitTrainingJob; @@ -76,6 +85,7 @@ export class MLTrainingService { static readonly CancelTrainingJob: MLTrainingServiceCancelTrainingJob; static readonly DeleteCompletedTrainingJob: MLTrainingServiceDeleteCompletedTrainingJob; static readonly GetTrainingJobLogs: MLTrainingServiceGetTrainingJobLogs; + static readonly ListSupportedContainers: MLTrainingServiceListSupportedContainers; } export type ServiceError = { message: string, code: number; metadata: grpc.Metadata } @@ -173,5 +183,14 @@ export class MLTrainingServiceClient { requestMessage: app_mltraining_v1_ml_training_pb.GetTrainingJobLogsRequest, callback: (error: ServiceError|null, responseMessage: app_mltraining_v1_ml_training_pb.GetTrainingJobLogsResponse|null) => void ): UnaryResponse; + listSupportedContainers( + requestMessage: app_mltraining_v1_ml_training_pb.ListSupportedContainersRequest, + metadata: grpc.Metadata, + callback: (error: ServiceError|null, responseMessage: app_mltraining_v1_ml_training_pb.ListSupportedContainersResponse|null) => void + ): UnaryResponse; + listSupportedContainers( + requestMessage: app_mltraining_v1_ml_training_pb.ListSupportedContainersRequest, + callback: (error: ServiceError|null, responseMessage: app_mltraining_v1_ml_training_pb.ListSupportedContainersResponse|null) => void + ): UnaryResponse; } diff --git a/gen/js/app/mltraining/v1/ml_training_pb_service.js b/gen/js/app/mltraining/v1/ml_training_pb_service.js index b9336a741..b7c40539c 100644 --- a/gen/js/app/mltraining/v1/ml_training_pb_service.js +++ b/gen/js/app/mltraining/v1/ml_training_pb_service.js @@ -73,6 +73,15 @@ MLTrainingService.GetTrainingJobLogs = { responseType: app_mltraining_v1_ml_training_pb.GetTrainingJobLogsResponse }; +MLTrainingService.ListSupportedContainers = { + methodName: "ListSupportedContainers", + service: MLTrainingService, + requestStream: false, + responseStream: false, + requestType: app_mltraining_v1_ml_training_pb.ListSupportedContainersRequest, + responseType: app_mltraining_v1_ml_training_pb.ListSupportedContainersResponse +}; + exports.MLTrainingService = MLTrainingService; function MLTrainingServiceClient(serviceHost, options) { @@ -297,5 +306,36 @@ MLTrainingServiceClient.prototype.getTrainingJobLogs = function getTrainingJobLo }; }; +MLTrainingServiceClient.prototype.listSupportedContainers = function listSupportedContainers(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + var client = grpc.unary(MLTrainingService.ListSupportedContainers, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); + return { + cancel: function () { + callback = null; + client.close(); + } + }; +}; + exports.MLTrainingServiceClient = MLTrainingServiceClient; diff --git a/proto/viam/app/data/v1/data.proto b/proto/viam/app/data/v1/data.proto index 7f7f80199..cee213b79 100644 --- a/proto/viam/app/data/v1/data.proto +++ b/proto/viam/app/data/v1/data.proto @@ -91,6 +91,9 @@ service DataService { // RemoveBinaryDataFromDatasetByIDs removes the binary data with the given binary IDs from the dataset. rpc RemoveBinaryDataFromDatasetByIDs(RemoveBinaryDataFromDatasetByIDsRequest) returns (RemoveBinaryDataFromDatasetByIDsResponse); + // BinaryMetadataToJSONLines converts binary metadata to JSON lines. + rpc BinaryMetadataToJSONLines(BinaryMetadataToJSONLinesRequest) returns (BinaryMetadataToJSONLinesResponse); + // CreateIndex starts a custom index build rpc CreateIndex(CreateIndexRequest) returns (CreateIndexResponse); @@ -624,6 +627,15 @@ message RemoveBinaryDataFromDatasetByIDsRequest { message RemoveBinaryDataFromDatasetByIDsResponse {} +message BinaryMetadataToJSONLinesRequest { + repeated BinaryMetadata binary_metadata = 1; + string path = 2; +} + +message BinaryMetadataToJSONLinesResponse { + repeated string json_lines = 1; +} + // IndexableCollection specifies the types of collections available for custom indexes enum IndexableCollection { INDEXABLE_COLLECTION_UNSPECIFIED = 0; diff --git a/proto/viam/app/mltraining/v1/ml_training.proto b/proto/viam/app/mltraining/v1/ml_training.proto index 30f8424d1..8649b054b 100644 --- a/proto/viam/app/mltraining/v1/ml_training.proto +++ b/proto/viam/app/mltraining/v1/ml_training.proto @@ -29,6 +29,9 @@ service MLTrainingService { // GetTrainingJobLogs gets the logs for a given custom training job. rpc GetTrainingJobLogs(GetTrainingJobLogsRequest) returns (GetTrainingJobLogsResponse); + + // ListSupportedContainers lists all supported containers. + rpc ListSupportedContainers(ListSupportedContainersRequest) returns (ListSupportedContainersResponse); } enum ModelType { @@ -71,6 +74,7 @@ message SubmitCustomTrainingJobRequest { string model_name = 4 [(tagger.v1.tags) = "bson:\"model_name\" json:\"model_name\""]; string model_version = 5 [(tagger.v1.tags) = "bson:\"model_version\" json:\"model_version\""]; map arguments = 7; + string container_version = 8 [(tagger.v1.tags) = "bson:\"container_version\" json:\"container_version\""]; } message SubmitCustomTrainingJobResponse { @@ -124,6 +128,7 @@ message TrainingJobMetadata { string synced_model_id = 5 [(tagger.v1.tags) = "bson:\"synced_model_id\" json:\"synced_model_id\""]; repeated string tags = 16 [(tagger.v1.tags) = "bson:\"tags\" json:\"tags\""]; map arguments = 21 [(tagger.v1.tags) = "bson:\"arguments\" json:\"arguments\""]; + string container_version = 22 [(tagger.v1.tags) = "bson:\"container_version\" json:\"container_version\""]; reserved 1, 6; reserved "request", "user_email"; @@ -156,3 +161,14 @@ message GetTrainingJobLogsResponse { repeated TrainingJobLogEntry logs = 1; string next_page_token = 2; } + +message ListSupportedContainersRequest {} + +message ListSupportedContainersResponse { + repeated Container containers = 1; +} + +message Container { + string uri = 1; + google.protobuf.Timestamp eol = 2; +}