From 533cdecf55c65fffffd25d7eecfa9fd5bfdb3ac9 Mon Sep 17 00:00:00 2001 From: Vignesh Date: Wed, 22 Jul 2026 12:07:14 -0400 Subject: [PATCH 1/2] APP-17192: return per-file URLs from sequence dataset export The sequence dataset export produces three independent parquet files (sequences, tabular data, binary data). Packaging them into a single zip forces them to be serialized into one stream, so app must buffer two of the three fully in memory while the third is written. Returning one signed URL per file removes that constraint: each file can stream directly to object storage in parallel, making export memory flat regardless of dataset size. It also lets consumers that only need one file (e.g. training jobs reading tabular data) skip the other two. download_url is reserved rather than deprecated because it will never be populated again. Repo convention reserves fields that stop carrying data and deprecates only those that still work; this requires the 'allow breaking' label. Co-Authored-By: Claude Opus 4.8 (1M context) --- proto/viam/app/dataset/v1/dataset.proto | 36 ++++++++++++++++++++----- 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/proto/viam/app/dataset/v1/dataset.proto b/proto/viam/app/dataset/v1/dataset.proto index 1cba600e2..45e618b90 100644 --- a/proto/viam/app/dataset/v1/dataset.proto +++ b/proto/viam/app/dataset/v1/dataset.proto @@ -51,7 +51,7 @@ enum SequenceDatasetExportStatus { SEQUENCE_DATASET_EXPORT_STATUS_UNSPECIFIED = 0; // PENDING — accepted, not yet picked up. SEQUENCE_DATASET_EXPORT_STATUS_RUNNING = 1; - // COMPLETED — Parquet file is uploaded; download_url is set. + // COMPLETED — parquet files are uploaded; files is set. SEQUENCE_DATASET_EXPORT_STATUS_COMPLETED = 2; // FAILED — terminal; error_message describes the cause. SEQUENCE_DATASET_EXPORT_STATUS_FAILED = 3; @@ -147,19 +147,43 @@ message GetSequenceDatasetExportRequest { string job_id = 1; } +// SequenceDatasetExportFileKind identifies which of the parquet files an +// exported file is, so clients can select one without matching on file name. +enum SequenceDatasetExportFileKind { + SEQUENCE_DATASET_EXPORT_FILE_KIND_UNSPECIFIED = 0; + // One row per sequence: sequence_id, tags, start_at, end_at. + SEQUENCE_DATASET_EXPORT_FILE_KIND_SEQUENCES = 1; + // Tabular readings for every sequence in the dataset. + SEQUENCE_DATASET_EXPORT_FILE_KIND_TABULAR_DATA = 2; + // One row per (sequence, binary record) pair. Metadata and paths only. + SEQUENCE_DATASET_EXPORT_FILE_KIND_BINARY_DATA = 3; +} + +// SequenceDatasetExportFile is one parquet file produced by an export job. +message SequenceDatasetExportFile { + SequenceDatasetExportFileKind kind = 1; + // Suggested file name, e.g. "sequences.parquet". + string name = 2; + // Short-lived signed URL for direct download from backing storage. + string download_url = 3; +} + // GetSequenceDatasetExportResponse reports the current status of an export -// job. download_url and expires_at are set only when status is COMPLETED; +// job. files and expires_at are set only when status is COMPLETED; // error_message is set only when status is FAILED. message GetSequenceDatasetExportResponse { string job_id = 1; SequenceDatasetExportStatus status = 2; - // Short-lived (e.g. 1h) signed URL for direct download from backing - // storage. Empty unless status is COMPLETED. - string download_url = 3; - // When download_url stops working. Empty unless status is COMPLETED. + // When the URLs in files stop working. Empty unless status is COMPLETED. google.protobuf.Timestamp expires_at = 4; // Human-readable cause; empty unless status is FAILED. string error_message = 5; google.protobuf.Timestamp created_at = 6; google.protobuf.Timestamp completed_at = 7; + // The parquet files produced by this export, each with its own signed URL. + // All URLs share the expires_at deadline. Empty unless status is COMPLETED. + repeated SequenceDatasetExportFile files = 8; + + reserved 3; + reserved "download_url"; } From 4f13522809a979437b9a203f58a63ec65fed7083 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 22 Jul 2026 17:31:41 +0000 Subject: [PATCH 2/2] Built new protos from 533cdec --- app/dataset/v1/dataset.pb.go | 485 +++++++++++++++++--------- gen/js/app/dataset/v1/dataset_pb.d.ts | 47 ++- gen/js/app/dataset/v1/dataset_pb.js | 317 +++++++++++++++-- 3 files changed, 647 insertions(+), 202 deletions(-) diff --git a/app/dataset/v1/dataset.pb.go b/app/dataset/v1/dataset.pb.go index 0b0c9462a..42fc65f8d 100644 --- a/app/dataset/v1/dataset.pb.go +++ b/app/dataset/v1/dataset.pb.go @@ -82,7 +82,7 @@ const ( SequenceDatasetExportStatus_SEQUENCE_DATASET_EXPORT_STATUS_UNSPECIFIED SequenceDatasetExportStatus = 0 // PENDING — accepted, not yet picked up. SequenceDatasetExportStatus_SEQUENCE_DATASET_EXPORT_STATUS_RUNNING SequenceDatasetExportStatus = 1 - // COMPLETED — Parquet file is uploaded; download_url is set. + // COMPLETED — parquet files are uploaded; files is set. SequenceDatasetExportStatus_SEQUENCE_DATASET_EXPORT_STATUS_COMPLETED SequenceDatasetExportStatus = 2 // FAILED — terminal; error_message describes the cause. SequenceDatasetExportStatus_SEQUENCE_DATASET_EXPORT_STATUS_FAILED SequenceDatasetExportStatus = 3 @@ -131,6 +131,63 @@ func (SequenceDatasetExportStatus) EnumDescriptor() ([]byte, []int) { return file_app_dataset_v1_dataset_proto_rawDescGZIP(), []int{1} } +// SequenceDatasetExportFileKind identifies which of the parquet files an +// exported file is, so clients can select one without matching on file name. +type SequenceDatasetExportFileKind int32 + +const ( + SequenceDatasetExportFileKind_SEQUENCE_DATASET_EXPORT_FILE_KIND_UNSPECIFIED SequenceDatasetExportFileKind = 0 + // One row per sequence: sequence_id, tags, start_at, end_at. + SequenceDatasetExportFileKind_SEQUENCE_DATASET_EXPORT_FILE_KIND_SEQUENCES SequenceDatasetExportFileKind = 1 + // Tabular readings for every sequence in the dataset. + SequenceDatasetExportFileKind_SEQUENCE_DATASET_EXPORT_FILE_KIND_TABULAR_DATA SequenceDatasetExportFileKind = 2 + // One row per (sequence, binary record) pair. Metadata and paths only. + SequenceDatasetExportFileKind_SEQUENCE_DATASET_EXPORT_FILE_KIND_BINARY_DATA SequenceDatasetExportFileKind = 3 +) + +// Enum value maps for SequenceDatasetExportFileKind. +var ( + SequenceDatasetExportFileKind_name = map[int32]string{ + 0: "SEQUENCE_DATASET_EXPORT_FILE_KIND_UNSPECIFIED", + 1: "SEQUENCE_DATASET_EXPORT_FILE_KIND_SEQUENCES", + 2: "SEQUENCE_DATASET_EXPORT_FILE_KIND_TABULAR_DATA", + 3: "SEQUENCE_DATASET_EXPORT_FILE_KIND_BINARY_DATA", + } + SequenceDatasetExportFileKind_value = map[string]int32{ + "SEQUENCE_DATASET_EXPORT_FILE_KIND_UNSPECIFIED": 0, + "SEQUENCE_DATASET_EXPORT_FILE_KIND_SEQUENCES": 1, + "SEQUENCE_DATASET_EXPORT_FILE_KIND_TABULAR_DATA": 2, + "SEQUENCE_DATASET_EXPORT_FILE_KIND_BINARY_DATA": 3, + } +) + +func (x SequenceDatasetExportFileKind) Enum() *SequenceDatasetExportFileKind { + p := new(SequenceDatasetExportFileKind) + *p = x + return p +} + +func (x SequenceDatasetExportFileKind) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SequenceDatasetExportFileKind) Descriptor() protoreflect.EnumDescriptor { + return file_app_dataset_v1_dataset_proto_enumTypes[2].Descriptor() +} + +func (SequenceDatasetExportFileKind) Type() protoreflect.EnumType { + return &file_app_dataset_v1_dataset_proto_enumTypes[2] +} + +func (x SequenceDatasetExportFileKind) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SequenceDatasetExportFileKind.Descriptor instead. +func (SequenceDatasetExportFileKind) EnumDescriptor() ([]byte, []int) { + return file_app_dataset_v1_dataset_proto_rawDescGZIP(), []int{2} +} + // Dataset stores the metadata of a dataset. type Dataset struct { state protoimpl.MessageState @@ -933,8 +990,72 @@ func (x *GetSequenceDatasetExportRequest) GetJobId() string { return "" } +// SequenceDatasetExportFile is one parquet file produced by an export job. +type SequenceDatasetExportFile struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Kind SequenceDatasetExportFileKind `protobuf:"varint,1,opt,name=kind,proto3,enum=viam.app.dataset.v1.SequenceDatasetExportFileKind" json:"kind,omitempty"` + // Suggested file name, e.g. "sequences.parquet". + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // Short-lived signed URL for direct download from backing storage. + DownloadUrl string `protobuf:"bytes,3,opt,name=download_url,json=downloadUrl,proto3" json:"download_url,omitempty"` +} + +func (x *SequenceDatasetExportFile) Reset() { + *x = SequenceDatasetExportFile{} + mi := &file_app_dataset_v1_dataset_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SequenceDatasetExportFile) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SequenceDatasetExportFile) ProtoMessage() {} + +func (x *SequenceDatasetExportFile) ProtoReflect() protoreflect.Message { + mi := &file_app_dataset_v1_dataset_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 SequenceDatasetExportFile.ProtoReflect.Descriptor instead. +func (*SequenceDatasetExportFile) Descriptor() ([]byte, []int) { + return file_app_dataset_v1_dataset_proto_rawDescGZIP(), []int{16} +} + +func (x *SequenceDatasetExportFile) GetKind() SequenceDatasetExportFileKind { + if x != nil { + return x.Kind + } + return SequenceDatasetExportFileKind_SEQUENCE_DATASET_EXPORT_FILE_KIND_UNSPECIFIED +} + +func (x *SequenceDatasetExportFile) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *SequenceDatasetExportFile) GetDownloadUrl() string { + if x != nil { + return x.DownloadUrl + } + return "" +} + // GetSequenceDatasetExportResponse reports the current status of an export -// job. download_url and expires_at are set only when status is COMPLETED; +// job. files and expires_at are set only when status is COMPLETED; // error_message is set only when status is FAILED. type GetSequenceDatasetExportResponse struct { state protoimpl.MessageState @@ -943,20 +1064,20 @@ type GetSequenceDatasetExportResponse struct { JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` Status SequenceDatasetExportStatus `protobuf:"varint,2,opt,name=status,proto3,enum=viam.app.dataset.v1.SequenceDatasetExportStatus" json:"status,omitempty"` - // Short-lived (e.g. 1h) signed URL for direct download from backing - // storage. Empty unless status is COMPLETED. - DownloadUrl string `protobuf:"bytes,3,opt,name=download_url,json=downloadUrl,proto3" json:"download_url,omitempty"` - // When download_url stops working. Empty unless status is COMPLETED. + // When the URLs in files stop working. Empty unless status is COMPLETED. ExpiresAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` // Human-readable cause; empty unless status is FAILED. ErrorMessage string `protobuf:"bytes,5,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` CreatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` CompletedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=completed_at,json=completedAt,proto3" json:"completed_at,omitempty"` + // The parquet files produced by this export, each with its own signed URL. + // All URLs share the expires_at deadline. Empty unless status is COMPLETED. + Files []*SequenceDatasetExportFile `protobuf:"bytes,8,rep,name=files,proto3" json:"files,omitempty"` } func (x *GetSequenceDatasetExportResponse) Reset() { *x = GetSequenceDatasetExportResponse{} - mi := &file_app_dataset_v1_dataset_proto_msgTypes[16] + mi := &file_app_dataset_v1_dataset_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -968,7 +1089,7 @@ func (x *GetSequenceDatasetExportResponse) String() string { func (*GetSequenceDatasetExportResponse) ProtoMessage() {} func (x *GetSequenceDatasetExportResponse) ProtoReflect() protoreflect.Message { - mi := &file_app_dataset_v1_dataset_proto_msgTypes[16] + mi := &file_app_dataset_v1_dataset_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -981,7 +1102,7 @@ func (x *GetSequenceDatasetExportResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetSequenceDatasetExportResponse.ProtoReflect.Descriptor instead. func (*GetSequenceDatasetExportResponse) Descriptor() ([]byte, []int) { - return file_app_dataset_v1_dataset_proto_rawDescGZIP(), []int{16} + return file_app_dataset_v1_dataset_proto_rawDescGZIP(), []int{17} } func (x *GetSequenceDatasetExportResponse) GetJobId() string { @@ -998,13 +1119,6 @@ func (x *GetSequenceDatasetExportResponse) GetStatus() SequenceDatasetExportStat return SequenceDatasetExportStatus_SEQUENCE_DATASET_EXPORT_STATUS_UNSPECIFIED } -func (x *GetSequenceDatasetExportResponse) GetDownloadUrl() string { - if x != nil { - return x.DownloadUrl - } - return "" -} - func (x *GetSequenceDatasetExportResponse) GetExpiresAt() *timestamppb.Timestamp { if x != nil { return x.ExpiresAt @@ -1033,6 +1147,13 @@ func (x *GetSequenceDatasetExportResponse) GetCompletedAt() *timestamppb.Timesta return nil } +func (x *GetSequenceDatasetExportResponse) GetFiles() []*SequenceDatasetExportFile { + if x != nil { + return x.Files + } + return nil +} + var File_app_dataset_v1_dataset_proto protoreflect.FileDescriptor var file_app_dataset_v1_dataset_proto_rawDesc = []byte{ @@ -1122,113 +1243,141 @@ var file_app_dataset_v1_dataset_proto_rawDesc = []byte{ 0x75, 0x65, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, - 0x22, 0x80, 0x03, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x76, + 0x22, 0x9a, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x46, + 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, - 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, - 0x61, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x6f, - 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, - 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 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, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x65, 0x73, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 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, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 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, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x2a, 0x4b, 0x0a, 0x0b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x00, - 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x01, - 0x2a, 0xd2, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x2e, 0x0a, 0x2a, 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, - 0x41, 0x53, 0x45, 0x54, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, - 0x41, 0x53, 0x45, 0x54, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x2c, 0x0a, 0x28, - 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, 0x54, - 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, - 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x29, 0x0a, 0x25, 0x53, 0x45, - 0x51, 0x55, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, 0x54, 0x5f, 0x45, - 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, - 0x4c, 0x45, 0x44, 0x10, 0x03, 0x32, 0xd4, 0x07, 0x0a, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, - 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x66, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x29, 0x2e, 0x76, 0x69, 0x61, 0x6d, + 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4b, 0x69, 0x6e, 0x64, + 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x22, 0xb7, 0x03, + 0x0a, 0x20, 0x47, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x66, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, - 0x74, 0x12, 0x29, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x76, + 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, + 0x74, 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, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x12, 0x23, + 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x18, 0x06, 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, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3d, + 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, + 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, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x44, 0x0a, + 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, - 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0d, 0x52, 0x65, 0x6e, 0x61, - 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x29, 0x2e, 0x76, 0x69, 0x61, 0x6d, - 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x93, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, - 0x73, 0x42, 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x12, 0x38, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x73, 0x65, 0x74, 0x73, 0x42, 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x76, 0x69, - 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x42, 0x79, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, - 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x2d, 0x2e, 0x76, 0x69, - 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x42, 0x79, - 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x76, 0x69, 0x61, + 0x76, 0x31, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, + 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, + 0x6f, 0x61, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x2a, 0x4b, 0x0a, 0x0b, 0x44, 0x61, 0x74, 0x61, 0x73, + 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x44, 0x41, + 0x54, 0x41, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, 0x54, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x44, 0x41, + 0x54, 0x41, 0x10, 0x01, 0x2a, 0xd2, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x2a, 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x43, 0x45, + 0x5f, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, 0x54, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x43, 0x45, + 0x5f, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, 0x54, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, + 0x12, 0x2c, 0x0a, 0x28, 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, + 0x41, 0x53, 0x45, 0x54, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x29, + 0x0a, 0x25, 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x53, + 0x45, 0x54, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x2a, 0xea, 0x01, 0x0a, 0x1d, 0x53, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x31, 0x0a, 0x2d, 0x53, + 0x45, 0x51, 0x55, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, 0x54, 0x5f, + 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2f, + 0x0a, 0x2b, 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x53, + 0x45, 0x54, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x4b, + 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x10, 0x01, 0x12, + 0x32, 0x0a, 0x2e, 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, + 0x53, 0x45, 0x54, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x54, 0x41, 0x42, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x44, 0x41, 0x54, + 0x41, 0x10, 0x02, 0x12, 0x31, 0x0a, 0x2d, 0x53, 0x45, 0x51, 0x55, 0x45, 0x4e, 0x43, 0x45, 0x5f, + 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, 0x54, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, + 0x49, 0x4c, 0x45, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, + 0x44, 0x41, 0x54, 0x41, 0x10, 0x03, 0x32, 0xd4, 0x07, 0x0a, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x73, + 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x66, 0x0a, 0x0d, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x29, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x42, 0x79, 0x49, - 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0d, 0x4d, 0x65, - 0x72, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x12, 0x29, 0x2e, 0x76, 0x69, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x66, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, + 0x65, 0x74, 0x12, 0x29, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, + 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0d, 0x52, 0x65, 0x6e, + 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x29, 0x2e, 0x76, 0x69, 0x61, + 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6e, 0x61, + 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x93, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, + 0x74, 0x73, 0x42, 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x12, 0x38, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x73, 0x65, 0x74, 0x73, 0x42, 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x76, + 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x42, + 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x2d, 0x2e, 0x76, + 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x42, + 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, - 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x72, - 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x1a, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x12, 0x36, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x71, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x42, 0x79, + 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0d, 0x4d, + 0x65, 0x72, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x12, 0x29, 0x2e, 0x76, + 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, + 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, + 0x72, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x1a, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x76, 0x69, 0x61, 0x6d, - 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x87, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, - 0x34, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, - 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x20, 0x5a, 0x1e, - 0x67, 0x6f, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x61, 0x70, 0x70, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x74, 0x12, 0x36, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x76, 0x69, 0x61, + 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x87, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x34, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x61, 0x70, + 0x70, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x20, 0x5a, + 0x1e, 0x67, 0x6f, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2f, 0x76, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1243,62 +1392,66 @@ func file_app_dataset_v1_dataset_proto_rawDescGZIP() []byte { return file_app_dataset_v1_dataset_proto_rawDescData } -var file_app_dataset_v1_dataset_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_app_dataset_v1_dataset_proto_msgTypes = make([]protoimpl.MessageInfo, 17) +var file_app_dataset_v1_dataset_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_app_dataset_v1_dataset_proto_msgTypes = make([]protoimpl.MessageInfo, 18) var file_app_dataset_v1_dataset_proto_goTypes = []any{ (DatasetType)(0), // 0: viam.app.dataset.v1.DatasetType (SequenceDatasetExportStatus)(0), // 1: viam.app.dataset.v1.SequenceDatasetExportStatus - (*Dataset)(nil), // 2: viam.app.dataset.v1.Dataset - (*CreateDatasetRequest)(nil), // 3: viam.app.dataset.v1.CreateDatasetRequest - (*CreateDatasetResponse)(nil), // 4: viam.app.dataset.v1.CreateDatasetResponse - (*DeleteDatasetRequest)(nil), // 5: viam.app.dataset.v1.DeleteDatasetRequest - (*DeleteDatasetResponse)(nil), // 6: viam.app.dataset.v1.DeleteDatasetResponse - (*RenameDatasetRequest)(nil), // 7: viam.app.dataset.v1.RenameDatasetRequest - (*RenameDatasetResponse)(nil), // 8: viam.app.dataset.v1.RenameDatasetResponse - (*ListDatasetsByOrganizationIDRequest)(nil), // 9: viam.app.dataset.v1.ListDatasetsByOrganizationIDRequest - (*ListDatasetsByOrganizationIDResponse)(nil), // 10: viam.app.dataset.v1.ListDatasetsByOrganizationIDResponse - (*ListDatasetsByIDsRequest)(nil), // 11: viam.app.dataset.v1.ListDatasetsByIDsRequest - (*ListDatasetsByIDsResponse)(nil), // 12: viam.app.dataset.v1.ListDatasetsByIDsResponse - (*MergeDatasetsRequest)(nil), // 13: viam.app.dataset.v1.MergeDatasetsRequest - (*MergeDatasetsResponse)(nil), // 14: viam.app.dataset.v1.MergeDatasetsResponse - (*StartSequenceDatasetExportRequest)(nil), // 15: viam.app.dataset.v1.StartSequenceDatasetExportRequest - (*StartSequenceDatasetExportResponse)(nil), // 16: viam.app.dataset.v1.StartSequenceDatasetExportResponse - (*GetSequenceDatasetExportRequest)(nil), // 17: viam.app.dataset.v1.GetSequenceDatasetExportRequest - (*GetSequenceDatasetExportResponse)(nil), // 18: viam.app.dataset.v1.GetSequenceDatasetExportResponse - (*timestamppb.Timestamp)(nil), // 19: google.protobuf.Timestamp + (SequenceDatasetExportFileKind)(0), // 2: viam.app.dataset.v1.SequenceDatasetExportFileKind + (*Dataset)(nil), // 3: viam.app.dataset.v1.Dataset + (*CreateDatasetRequest)(nil), // 4: viam.app.dataset.v1.CreateDatasetRequest + (*CreateDatasetResponse)(nil), // 5: viam.app.dataset.v1.CreateDatasetResponse + (*DeleteDatasetRequest)(nil), // 6: viam.app.dataset.v1.DeleteDatasetRequest + (*DeleteDatasetResponse)(nil), // 7: viam.app.dataset.v1.DeleteDatasetResponse + (*RenameDatasetRequest)(nil), // 8: viam.app.dataset.v1.RenameDatasetRequest + (*RenameDatasetResponse)(nil), // 9: viam.app.dataset.v1.RenameDatasetResponse + (*ListDatasetsByOrganizationIDRequest)(nil), // 10: viam.app.dataset.v1.ListDatasetsByOrganizationIDRequest + (*ListDatasetsByOrganizationIDResponse)(nil), // 11: viam.app.dataset.v1.ListDatasetsByOrganizationIDResponse + (*ListDatasetsByIDsRequest)(nil), // 12: viam.app.dataset.v1.ListDatasetsByIDsRequest + (*ListDatasetsByIDsResponse)(nil), // 13: viam.app.dataset.v1.ListDatasetsByIDsResponse + (*MergeDatasetsRequest)(nil), // 14: viam.app.dataset.v1.MergeDatasetsRequest + (*MergeDatasetsResponse)(nil), // 15: viam.app.dataset.v1.MergeDatasetsResponse + (*StartSequenceDatasetExportRequest)(nil), // 16: viam.app.dataset.v1.StartSequenceDatasetExportRequest + (*StartSequenceDatasetExportResponse)(nil), // 17: viam.app.dataset.v1.StartSequenceDatasetExportResponse + (*GetSequenceDatasetExportRequest)(nil), // 18: viam.app.dataset.v1.GetSequenceDatasetExportRequest + (*SequenceDatasetExportFile)(nil), // 19: viam.app.dataset.v1.SequenceDatasetExportFile + (*GetSequenceDatasetExportResponse)(nil), // 20: viam.app.dataset.v1.GetSequenceDatasetExportResponse + (*timestamppb.Timestamp)(nil), // 21: google.protobuf.Timestamp } var file_app_dataset_v1_dataset_proto_depIdxs = []int32{ - 19, // 0: viam.app.dataset.v1.Dataset.time_created:type_name -> google.protobuf.Timestamp + 21, // 0: viam.app.dataset.v1.Dataset.time_created:type_name -> google.protobuf.Timestamp 0, // 1: viam.app.dataset.v1.Dataset.type:type_name -> viam.app.dataset.v1.DatasetType 0, // 2: viam.app.dataset.v1.CreateDatasetRequest.type:type_name -> viam.app.dataset.v1.DatasetType 0, // 3: viam.app.dataset.v1.ListDatasetsByOrganizationIDRequest.type:type_name -> viam.app.dataset.v1.DatasetType - 2, // 4: viam.app.dataset.v1.ListDatasetsByOrganizationIDResponse.datasets:type_name -> viam.app.dataset.v1.Dataset - 2, // 5: viam.app.dataset.v1.ListDatasetsByIDsResponse.datasets:type_name -> viam.app.dataset.v1.Dataset - 1, // 6: viam.app.dataset.v1.GetSequenceDatasetExportResponse.status:type_name -> viam.app.dataset.v1.SequenceDatasetExportStatus - 19, // 7: viam.app.dataset.v1.GetSequenceDatasetExportResponse.expires_at:type_name -> google.protobuf.Timestamp - 19, // 8: viam.app.dataset.v1.GetSequenceDatasetExportResponse.created_at:type_name -> google.protobuf.Timestamp - 19, // 9: viam.app.dataset.v1.GetSequenceDatasetExportResponse.completed_at:type_name -> google.protobuf.Timestamp - 3, // 10: viam.app.dataset.v1.DatasetService.CreateDataset:input_type -> viam.app.dataset.v1.CreateDatasetRequest - 5, // 11: viam.app.dataset.v1.DatasetService.DeleteDataset:input_type -> viam.app.dataset.v1.DeleteDatasetRequest - 7, // 12: viam.app.dataset.v1.DatasetService.RenameDataset:input_type -> viam.app.dataset.v1.RenameDatasetRequest - 9, // 13: viam.app.dataset.v1.DatasetService.ListDatasetsByOrganizationID:input_type -> viam.app.dataset.v1.ListDatasetsByOrganizationIDRequest - 11, // 14: viam.app.dataset.v1.DatasetService.ListDatasetsByIDs:input_type -> viam.app.dataset.v1.ListDatasetsByIDsRequest - 13, // 15: viam.app.dataset.v1.DatasetService.MergeDatasets:input_type -> viam.app.dataset.v1.MergeDatasetsRequest - 15, // 16: viam.app.dataset.v1.DatasetService.StartSequenceDatasetExport:input_type -> viam.app.dataset.v1.StartSequenceDatasetExportRequest - 17, // 17: viam.app.dataset.v1.DatasetService.GetSequenceDatasetExport:input_type -> viam.app.dataset.v1.GetSequenceDatasetExportRequest - 4, // 18: viam.app.dataset.v1.DatasetService.CreateDataset:output_type -> viam.app.dataset.v1.CreateDatasetResponse - 6, // 19: viam.app.dataset.v1.DatasetService.DeleteDataset:output_type -> viam.app.dataset.v1.DeleteDatasetResponse - 8, // 20: viam.app.dataset.v1.DatasetService.RenameDataset:output_type -> viam.app.dataset.v1.RenameDatasetResponse - 10, // 21: viam.app.dataset.v1.DatasetService.ListDatasetsByOrganizationID:output_type -> viam.app.dataset.v1.ListDatasetsByOrganizationIDResponse - 12, // 22: viam.app.dataset.v1.DatasetService.ListDatasetsByIDs:output_type -> viam.app.dataset.v1.ListDatasetsByIDsResponse - 14, // 23: viam.app.dataset.v1.DatasetService.MergeDatasets:output_type -> viam.app.dataset.v1.MergeDatasetsResponse - 16, // 24: viam.app.dataset.v1.DatasetService.StartSequenceDatasetExport:output_type -> viam.app.dataset.v1.StartSequenceDatasetExportResponse - 18, // 25: viam.app.dataset.v1.DatasetService.GetSequenceDatasetExport:output_type -> viam.app.dataset.v1.GetSequenceDatasetExportResponse - 18, // [18:26] is the sub-list for method output_type - 10, // [10:18] is the sub-list for method input_type - 10, // [10:10] is the sub-list for extension type_name - 10, // [10:10] is the sub-list for extension extendee - 0, // [0:10] is the sub-list for field type_name + 3, // 4: viam.app.dataset.v1.ListDatasetsByOrganizationIDResponse.datasets:type_name -> viam.app.dataset.v1.Dataset + 3, // 5: viam.app.dataset.v1.ListDatasetsByIDsResponse.datasets:type_name -> viam.app.dataset.v1.Dataset + 2, // 6: viam.app.dataset.v1.SequenceDatasetExportFile.kind:type_name -> viam.app.dataset.v1.SequenceDatasetExportFileKind + 1, // 7: viam.app.dataset.v1.GetSequenceDatasetExportResponse.status:type_name -> viam.app.dataset.v1.SequenceDatasetExportStatus + 21, // 8: viam.app.dataset.v1.GetSequenceDatasetExportResponse.expires_at:type_name -> google.protobuf.Timestamp + 21, // 9: viam.app.dataset.v1.GetSequenceDatasetExportResponse.created_at:type_name -> google.protobuf.Timestamp + 21, // 10: viam.app.dataset.v1.GetSequenceDatasetExportResponse.completed_at:type_name -> google.protobuf.Timestamp + 19, // 11: viam.app.dataset.v1.GetSequenceDatasetExportResponse.files:type_name -> viam.app.dataset.v1.SequenceDatasetExportFile + 4, // 12: viam.app.dataset.v1.DatasetService.CreateDataset:input_type -> viam.app.dataset.v1.CreateDatasetRequest + 6, // 13: viam.app.dataset.v1.DatasetService.DeleteDataset:input_type -> viam.app.dataset.v1.DeleteDatasetRequest + 8, // 14: viam.app.dataset.v1.DatasetService.RenameDataset:input_type -> viam.app.dataset.v1.RenameDatasetRequest + 10, // 15: viam.app.dataset.v1.DatasetService.ListDatasetsByOrganizationID:input_type -> viam.app.dataset.v1.ListDatasetsByOrganizationIDRequest + 12, // 16: viam.app.dataset.v1.DatasetService.ListDatasetsByIDs:input_type -> viam.app.dataset.v1.ListDatasetsByIDsRequest + 14, // 17: viam.app.dataset.v1.DatasetService.MergeDatasets:input_type -> viam.app.dataset.v1.MergeDatasetsRequest + 16, // 18: viam.app.dataset.v1.DatasetService.StartSequenceDatasetExport:input_type -> viam.app.dataset.v1.StartSequenceDatasetExportRequest + 18, // 19: viam.app.dataset.v1.DatasetService.GetSequenceDatasetExport:input_type -> viam.app.dataset.v1.GetSequenceDatasetExportRequest + 5, // 20: viam.app.dataset.v1.DatasetService.CreateDataset:output_type -> viam.app.dataset.v1.CreateDatasetResponse + 7, // 21: viam.app.dataset.v1.DatasetService.DeleteDataset:output_type -> viam.app.dataset.v1.DeleteDatasetResponse + 9, // 22: viam.app.dataset.v1.DatasetService.RenameDataset:output_type -> viam.app.dataset.v1.RenameDatasetResponse + 11, // 23: viam.app.dataset.v1.DatasetService.ListDatasetsByOrganizationID:output_type -> viam.app.dataset.v1.ListDatasetsByOrganizationIDResponse + 13, // 24: viam.app.dataset.v1.DatasetService.ListDatasetsByIDs:output_type -> viam.app.dataset.v1.ListDatasetsByIDsResponse + 15, // 25: viam.app.dataset.v1.DatasetService.MergeDatasets:output_type -> viam.app.dataset.v1.MergeDatasetsResponse + 17, // 26: viam.app.dataset.v1.DatasetService.StartSequenceDatasetExport:output_type -> viam.app.dataset.v1.StartSequenceDatasetExportResponse + 20, // 27: viam.app.dataset.v1.DatasetService.GetSequenceDatasetExport:output_type -> viam.app.dataset.v1.GetSequenceDatasetExportResponse + 20, // [20:28] is the sub-list for method output_type + 12, // [12:20] is the sub-list for method input_type + 12, // [12:12] is the sub-list for extension type_name + 12, // [12:12] is the sub-list for extension extendee + 0, // [0:12] is the sub-list for field type_name } func init() { file_app_dataset_v1_dataset_proto_init() } @@ -1313,8 +1466,8 @@ func file_app_dataset_v1_dataset_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_app_dataset_v1_dataset_proto_rawDesc, - NumEnums: 2, - NumMessages: 17, + NumEnums: 3, + NumMessages: 18, NumExtensions: 0, NumServices: 1, }, diff --git a/gen/js/app/dataset/v1/dataset_pb.d.ts b/gen/js/app/dataset/v1/dataset_pb.d.ts index 2c42e1bc0..49838642b 100644 --- a/gen/js/app/dataset/v1/dataset_pb.d.ts +++ b/gen/js/app/dataset/v1/dataset_pb.d.ts @@ -370,6 +370,34 @@ export namespace GetSequenceDatasetExportRequest { } } +export class SequenceDatasetExportFile extends jspb.Message { + getKind(): SequenceDatasetExportFileKindMap[keyof SequenceDatasetExportFileKindMap]; + setKind(value: SequenceDatasetExportFileKindMap[keyof SequenceDatasetExportFileKindMap]): void; + + getName(): string; + setName(value: string): void; + + getDownloadUrl(): string; + setDownloadUrl(value: string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): SequenceDatasetExportFile.AsObject; + static toObject(includeInstance: boolean, msg: SequenceDatasetExportFile): SequenceDatasetExportFile.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: SequenceDatasetExportFile, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): SequenceDatasetExportFile; + static deserializeBinaryFromReader(message: SequenceDatasetExportFile, reader: jspb.BinaryReader): SequenceDatasetExportFile; +} + +export namespace SequenceDatasetExportFile { + export type AsObject = { + kind: SequenceDatasetExportFileKindMap[keyof SequenceDatasetExportFileKindMap], + name: string, + downloadUrl: string, + } +} + export class GetSequenceDatasetExportResponse extends jspb.Message { getJobId(): string; setJobId(value: string): void; @@ -377,9 +405,6 @@ export class GetSequenceDatasetExportResponse extends jspb.Message { getStatus(): SequenceDatasetExportStatusMap[keyof SequenceDatasetExportStatusMap]; setStatus(value: SequenceDatasetExportStatusMap[keyof SequenceDatasetExportStatusMap]): void; - getDownloadUrl(): string; - setDownloadUrl(value: string): void; - hasExpiresAt(): boolean; clearExpiresAt(): void; getExpiresAt(): google_protobuf_timestamp_pb.Timestamp | undefined; @@ -398,6 +423,11 @@ export class GetSequenceDatasetExportResponse extends jspb.Message { getCompletedAt(): google_protobuf_timestamp_pb.Timestamp | undefined; setCompletedAt(value?: google_protobuf_timestamp_pb.Timestamp): void; + clearFilesList(): void; + getFilesList(): Array; + setFilesList(value: Array): void; + addFiles(value?: SequenceDatasetExportFile, index?: number): SequenceDatasetExportFile; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): GetSequenceDatasetExportResponse.AsObject; static toObject(includeInstance: boolean, msg: GetSequenceDatasetExportResponse): GetSequenceDatasetExportResponse.AsObject; @@ -412,11 +442,11 @@ export namespace GetSequenceDatasetExportResponse { export type AsObject = { jobId: string, status: SequenceDatasetExportStatusMap[keyof SequenceDatasetExportStatusMap], - downloadUrl: string, expiresAt?: google_protobuf_timestamp_pb.Timestamp.AsObject, errorMessage: string, createdAt?: google_protobuf_timestamp_pb.Timestamp.AsObject, completedAt?: google_protobuf_timestamp_pb.Timestamp.AsObject, + filesList: Array, } } @@ -436,3 +466,12 @@ export interface SequenceDatasetExportStatusMap { export const SequenceDatasetExportStatus: SequenceDatasetExportStatusMap; +export interface SequenceDatasetExportFileKindMap { + SEQUENCE_DATASET_EXPORT_FILE_KIND_UNSPECIFIED: 0; + SEQUENCE_DATASET_EXPORT_FILE_KIND_SEQUENCES: 1; + SEQUENCE_DATASET_EXPORT_FILE_KIND_TABULAR_DATA: 2; + SEQUENCE_DATASET_EXPORT_FILE_KIND_BINARY_DATA: 3; +} + +export const SequenceDatasetExportFileKind: SequenceDatasetExportFileKindMap; + diff --git a/gen/js/app/dataset/v1/dataset_pb.js b/gen/js/app/dataset/v1/dataset_pb.js index 364c1321a..6e1a99e76 100644 --- a/gen/js/app/dataset/v1/dataset_pb.js +++ b/gen/js/app/dataset/v1/dataset_pb.js @@ -33,6 +33,8 @@ goog.exportSymbol('proto.viam.app.dataset.v1.MergeDatasetsRequest', null, global goog.exportSymbol('proto.viam.app.dataset.v1.MergeDatasetsResponse', null, global); goog.exportSymbol('proto.viam.app.dataset.v1.RenameDatasetRequest', null, global); goog.exportSymbol('proto.viam.app.dataset.v1.RenameDatasetResponse', null, global); +goog.exportSymbol('proto.viam.app.dataset.v1.SequenceDatasetExportFile', null, global); +goog.exportSymbol('proto.viam.app.dataset.v1.SequenceDatasetExportFileKind', null, global); goog.exportSymbol('proto.viam.app.dataset.v1.SequenceDatasetExportStatus', null, global); goog.exportSymbol('proto.viam.app.dataset.v1.StartSequenceDatasetExportRequest', null, global); goog.exportSymbol('proto.viam.app.dataset.v1.StartSequenceDatasetExportResponse', null, global); @@ -382,9 +384,30 @@ if (goog.DEBUG && !COMPILED) { * @extends {jspb.Message} * @constructor */ -proto.viam.app.dataset.v1.GetSequenceDatasetExportResponse = function(opt_data) { +proto.viam.app.dataset.v1.SequenceDatasetExportFile = function(opt_data) { jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; +goog.inherits(proto.viam.app.dataset.v1.SequenceDatasetExportFile, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.viam.app.dataset.v1.SequenceDatasetExportFile.displayName = 'proto.viam.app.dataset.v1.SequenceDatasetExportFile'; +} +/** + * 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.dataset.v1.GetSequenceDatasetExportResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.viam.app.dataset.v1.GetSequenceDatasetExportResponse.repeatedFields_, null); +}; goog.inherits(proto.viam.app.dataset.v1.GetSequenceDatasetExportResponse, jspb.Message); if (goog.DEBUG && !COMPILED) { /** @@ -2887,6 +2910,203 @@ proto.viam.app.dataset.v1.GetSequenceDatasetExportRequest.prototype.setJobId = f +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.dataset.v1.SequenceDatasetExportFile.prototype.toObject = function(opt_includeInstance) { + return proto.viam.app.dataset.v1.SequenceDatasetExportFile.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.dataset.v1.SequenceDatasetExportFile} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.viam.app.dataset.v1.SequenceDatasetExportFile.toObject = function(includeInstance, msg) { + var f, obj = { + kind: jspb.Message.getFieldWithDefault(msg, 1, 0), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + downloadUrl: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + 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.dataset.v1.SequenceDatasetExportFile} + */ +proto.viam.app.dataset.v1.SequenceDatasetExportFile.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.viam.app.dataset.v1.SequenceDatasetExportFile; + return proto.viam.app.dataset.v1.SequenceDatasetExportFile.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.viam.app.dataset.v1.SequenceDatasetExportFile} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.viam.app.dataset.v1.SequenceDatasetExportFile} + */ +proto.viam.app.dataset.v1.SequenceDatasetExportFile.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.viam.app.dataset.v1.SequenceDatasetExportFileKind} */ (reader.readEnum()); + msg.setKind(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setDownloadUrl(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.viam.app.dataset.v1.SequenceDatasetExportFile.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.viam.app.dataset.v1.SequenceDatasetExportFile.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.dataset.v1.SequenceDatasetExportFile} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.viam.app.dataset.v1.SequenceDatasetExportFile.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getKind(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getDownloadUrl(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional SequenceDatasetExportFileKind kind = 1; + * @return {!proto.viam.app.dataset.v1.SequenceDatasetExportFileKind} + */ +proto.viam.app.dataset.v1.SequenceDatasetExportFile.prototype.getKind = function() { + return /** @type {!proto.viam.app.dataset.v1.SequenceDatasetExportFileKind} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {!proto.viam.app.dataset.v1.SequenceDatasetExportFileKind} value + * @return {!proto.viam.app.dataset.v1.SequenceDatasetExportFile} returns this + */ +proto.viam.app.dataset.v1.SequenceDatasetExportFile.prototype.setKind = function(value) { + return jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.viam.app.dataset.v1.SequenceDatasetExportFile.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.viam.app.dataset.v1.SequenceDatasetExportFile} returns this + */ +proto.viam.app.dataset.v1.SequenceDatasetExportFile.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string download_url = 3; + * @return {string} + */ +proto.viam.app.dataset.v1.SequenceDatasetExportFile.prototype.getDownloadUrl = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.viam.app.dataset.v1.SequenceDatasetExportFile} returns this + */ +proto.viam.app.dataset.v1.SequenceDatasetExportFile.prototype.setDownloadUrl = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.viam.app.dataset.v1.GetSequenceDatasetExportResponse.repeatedFields_ = [8]; + + + if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto. @@ -2918,11 +3138,12 @@ proto.viam.app.dataset.v1.GetSequenceDatasetExportResponse.toObject = function(i var f, obj = { jobId: jspb.Message.getFieldWithDefault(msg, 1, ""), status: jspb.Message.getFieldWithDefault(msg, 2, 0), - downloadUrl: jspb.Message.getFieldWithDefault(msg, 3, ""), expiresAt: (f = msg.getExpiresAt()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f), errorMessage: jspb.Message.getFieldWithDefault(msg, 5, ""), createdAt: (f = msg.getCreatedAt()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f), - completedAt: (f = msg.getCompletedAt()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f) + completedAt: (f = msg.getCompletedAt()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f), + filesList: jspb.Message.toObjectList(msg.getFilesList(), + proto.viam.app.dataset.v1.SequenceDatasetExportFile.toObject, includeInstance) }; if (includeInstance) { @@ -2967,10 +3188,6 @@ proto.viam.app.dataset.v1.GetSequenceDatasetExportResponse.deserializeBinaryFrom var value = /** @type {!proto.viam.app.dataset.v1.SequenceDatasetExportStatus} */ (reader.readEnum()); msg.setStatus(value); break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setDownloadUrl(value); - break; case 4: var value = new google_protobuf_timestamp_pb.Timestamp; reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader); @@ -2990,6 +3207,11 @@ proto.viam.app.dataset.v1.GetSequenceDatasetExportResponse.deserializeBinaryFrom reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader); msg.setCompletedAt(value); break; + case 8: + var value = new proto.viam.app.dataset.v1.SequenceDatasetExportFile; + reader.readMessage(value,proto.viam.app.dataset.v1.SequenceDatasetExportFile.deserializeBinaryFromReader); + msg.addFiles(value); + break; default: reader.skipField(); break; @@ -3033,13 +3255,6 @@ proto.viam.app.dataset.v1.GetSequenceDatasetExportResponse.serializeBinaryToWrit f ); } - f = message.getDownloadUrl(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } f = message.getExpiresAt(); if (f != null) { writer.writeMessage( @@ -3071,6 +3286,14 @@ proto.viam.app.dataset.v1.GetSequenceDatasetExportResponse.serializeBinaryToWrit google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter ); } + f = message.getFilesList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 8, + f, + proto.viam.app.dataset.v1.SequenceDatasetExportFile.serializeBinaryToWriter + ); + } }; @@ -3110,24 +3333,6 @@ proto.viam.app.dataset.v1.GetSequenceDatasetExportResponse.prototype.setStatus = }; -/** - * optional string download_url = 3; - * @return {string} - */ -proto.viam.app.dataset.v1.GetSequenceDatasetExportResponse.prototype.getDownloadUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.viam.app.dataset.v1.GetSequenceDatasetExportResponse} returns this - */ -proto.viam.app.dataset.v1.GetSequenceDatasetExportResponse.prototype.setDownloadUrl = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - /** * optional google.protobuf.Timestamp expires_at = 4; * @return {?proto.google.protobuf.Timestamp} @@ -3257,6 +3462,44 @@ proto.viam.app.dataset.v1.GetSequenceDatasetExportResponse.prototype.hasComplete }; +/** + * repeated SequenceDatasetExportFile files = 8; + * @return {!Array} + */ +proto.viam.app.dataset.v1.GetSequenceDatasetExportResponse.prototype.getFilesList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.viam.app.dataset.v1.SequenceDatasetExportFile, 8)); +}; + + +/** + * @param {!Array} value + * @return {!proto.viam.app.dataset.v1.GetSequenceDatasetExportResponse} returns this +*/ +proto.viam.app.dataset.v1.GetSequenceDatasetExportResponse.prototype.setFilesList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 8, value); +}; + + +/** + * @param {!proto.viam.app.dataset.v1.SequenceDatasetExportFile=} opt_value + * @param {number=} opt_index + * @return {!proto.viam.app.dataset.v1.SequenceDatasetExportFile} + */ +proto.viam.app.dataset.v1.GetSequenceDatasetExportResponse.prototype.addFiles = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 8, opt_value, proto.viam.app.dataset.v1.SequenceDatasetExportFile, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.viam.app.dataset.v1.GetSequenceDatasetExportResponse} returns this + */ +proto.viam.app.dataset.v1.GetSequenceDatasetExportResponse.prototype.clearFilesList = function() { + return this.setFilesList([]); +}; + + /** * @enum {number} */ @@ -3275,4 +3518,14 @@ proto.viam.app.dataset.v1.SequenceDatasetExportStatus = { SEQUENCE_DATASET_EXPORT_STATUS_FAILED: 3 }; +/** + * @enum {number} + */ +proto.viam.app.dataset.v1.SequenceDatasetExportFileKind = { + SEQUENCE_DATASET_EXPORT_FILE_KIND_UNSPECIFIED: 0, + SEQUENCE_DATASET_EXPORT_FILE_KIND_SEQUENCES: 1, + SEQUENCE_DATASET_EXPORT_FILE_KIND_TABULAR_DATA: 2, + SEQUENCE_DATASET_EXPORT_FILE_KIND_BINARY_DATA: 3 +}; + goog.object.extend(exports, proto.viam.app.dataset.v1);