diff --git a/src/viam/app/data_client.py b/src/viam/app/data_client.py index f005815de..7029b05dd 100644 --- a/src/viam/app/data_client.py +++ b/src/viam/app/data_client.py @@ -15,6 +15,7 @@ AddBinaryDataToDatasetByIDsRequest, AddBoundingBoxToImageByIDRequest, AddBoundingBoxToImageByIDResponse, + AddSequencesToDatasetRequest, AddTagsToBinaryDataByFilterRequest, AddTagsToBinaryDataByIDsRequest, BinaryData, @@ -55,10 +56,13 @@ Order, RemoveBinaryDataFromDatasetByIDsRequest, RemoveBoundingBoxFromImageByIDRequest, + RemoveSequencesFromDatasetRequest, RemoveTagsFromBinaryDataByFilterRequest, RemoveTagsFromBinaryDataByFilterResponse, RemoveTagsFromBinaryDataByIDsRequest, RemoveTagsFromBinaryDataByIDsResponse, + SequencesByDatasetIDRequest, + SequencesByDatasetIDResponse, TabularDataByFilterRequest, TabularDataByFilterResponse, TabularDataByMQLRequest, @@ -1607,6 +1611,99 @@ async def remove_binary_data_from_dataset_by_ids(self, binary_ids: Union[List[Bi request = RemoveBinaryDataFromDatasetByIDsRequest(binary_ids=bin_ids, dataset_id=dataset_id) await self._data_client.RemoveBinaryDataFromDatasetByIDs(request, metadata=self._metadata) + async def add_sequences_to_dataset(self, dataset_id: str, sequence_ids: List[str]) -> None: + """Add sequences to a dataset. + + :: + + await data_client.add_sequences_to_dataset( + dataset_id="", + sequence_ids=["", ""] + ) + + Args: + dataset_id (str): The ID of the dataset to add sequences to. To retrieve the dataset ID: + + - Navigate to the **DATASETS** tab of the **DATA** page. + - Click on the dataset. + - Click the **...** menu. + - Select **Copy dataset ID**. + sequence_ids (List[str]): The IDs of the sequences to add to the dataset. + + For more information, see `Data Client API `_. + """ + request = AddSequencesToDatasetRequest(dataset_id=dataset_id, sequence_ids=sequence_ids) + await self._data_client.AddSequencesToDataset(request, metadata=self._metadata) + + async def remove_sequences_from_dataset(self, dataset_id: str, sequence_ids: List[str]) -> None: + """Remove sequences from a dataset. + + :: + + await data_client.remove_sequences_from_dataset( + dataset_id="", + sequence_ids=["", ""] + ) + + Args: + dataset_id (str): The ID of the dataset to remove sequences from. To retrieve the dataset ID: + + - Navigate to the **DATASETS** tab of the **DATA** page. + - Click on the dataset. + - Click the **...** menu. + - Select **Copy dataset ID**. + sequence_ids (List[str]): The IDs of the sequences to remove from the dataset. + + For more information, see `Data Client API `_. + """ + request = RemoveSequencesFromDatasetRequest(dataset_id=dataset_id, sequence_ids=sequence_ids) + await self._data_client.RemoveSequencesFromDataset(request, metadata=self._metadata) + + async def sequences_by_dataset_id( + self, dataset_id: str, page_token: Optional[str] = None, page_size: Optional[int] = None + ) -> SequencesByDatasetIDResponse: + """Get sequences in a dataset by dataset ID. + + :: + + from viam.proto.app.data import Sequence + + response = await data_client.sequences_by_dataset_id( + dataset_id="" + ) + + sequences = response.sequences + next_page_token = response.next_page_token + + # Get next page + if next_page_token: + response = await data_client.sequences_by_dataset_id( + dataset_id="", + page_token=next_page_token + ) + + Args: + dataset_id (str): The ID of the dataset. To retrieve the dataset ID: + + - Navigate to the **DATASETS** tab of the **DATA** page. + - Click on the dataset. + - Click the **...** menu. + - Select **Copy dataset ID**. + page_token (Optional[str]): Optional page token for pagination. + page_size (Optional[int]): Optional page size for pagination. + + Returns: + SequencesByDatasetIDResponse: The response containing sequences and pagination token. + + For more information, see `Data Client API `_. + """ + request = SequencesByDatasetIDRequest(dataset_id=dataset_id) + if page_token is not None: + request.page_token = page_token + if page_size is not None: + request.page_size = page_size + return await self._data_client.SequencesByDatasetID(request, metadata=self._metadata) + async def binary_data_capture_upload( self, binary_data: bytes, diff --git a/src/viam/gen/app/data/v1/data_grpc.py b/src/viam/gen/app/data/v1/data_grpc.py index 6d741b770..3597cc0c5 100644 --- a/src/viam/gen/app/data/v1/data_grpc.py +++ b/src/viam/gen/app/data/v1/data_grpc.py @@ -105,6 +105,14 @@ async def AddBinaryDataToDatasetByIDs(self, stream: 'grpclib.server.Stream[app.d async def RemoveBinaryDataFromDatasetByIDs(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsRequest, app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsResponse]') -> None: pass + @abc.abstractmethod + async def AddSequencesToDataset(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.AddSequencesToDatasetRequest, app.data.v1.data_pb2.AddSequencesToDatasetResponse]') -> None: + pass + + @abc.abstractmethod + async def RemoveSequencesFromDataset(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.RemoveSequencesFromDatasetRequest, app.data.v1.data_pb2.RemoveSequencesFromDatasetResponse]') -> None: + pass + @abc.abstractmethod async def CreateIndex(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.CreateIndexRequest, app.data.v1.data_pb2.CreateIndexResponse]') -> None: pass @@ -161,8 +169,12 @@ async def DeleteSequence(self, stream: 'grpclib.server.Stream[app.data.v1.data_p async def ListSequences(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.ListSequencesRequest, app.data.v1.data_pb2.ListSequencesResponse]') -> None: pass + @abc.abstractmethod + async def SequencesByDatasetID(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.SequencesByDatasetIDRequest, app.data.v1.data_pb2.SequencesByDatasetIDResponse]') -> None: + pass + def __mapping__(self) -> typing.Dict[str, grpclib.const.Handler]: - return {'/viam.app.data.v1.DataService/TabularDataByFilter': grpclib.const.Handler(self.TabularDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.TabularDataByFilterRequest, app.data.v1.data_pb2.TabularDataByFilterResponse), '/viam.app.data.v1.DataService/TabularDataBySQL': grpclib.const.Handler(self.TabularDataBySQL, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.TabularDataBySQLRequest, app.data.v1.data_pb2.TabularDataBySQLResponse), '/viam.app.data.v1.DataService/TabularDataByMQL': grpclib.const.Handler(self.TabularDataByMQL, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.TabularDataByMQLRequest, app.data.v1.data_pb2.TabularDataByMQLResponse), '/viam.app.data.v1.DataService/ExportTabularData': grpclib.const.Handler(self.ExportTabularData, grpclib.const.Cardinality.UNARY_STREAM, app.data.v1.data_pb2.ExportTabularDataRequest, app.data.v1.data_pb2.ExportTabularDataResponse), '/viam.app.data.v1.DataService/GetLatestTabularData': grpclib.const.Handler(self.GetLatestTabularData, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.GetLatestTabularDataRequest, app.data.v1.data_pb2.GetLatestTabularDataResponse), '/viam.app.data.v1.DataService/BinaryDataByFilter': grpclib.const.Handler(self.BinaryDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.BinaryDataByFilterRequest, app.data.v1.data_pb2.BinaryDataByFilterResponse), '/viam.app.data.v1.DataService/BinaryDataByIDs': grpclib.const.Handler(self.BinaryDataByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.BinaryDataByIDsRequest, app.data.v1.data_pb2.BinaryDataByIDsResponse), '/viam.app.data.v1.DataService/DeleteTabularData': grpclib.const.Handler(self.DeleteTabularData, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteTabularDataRequest, app.data.v1.data_pb2.DeleteTabularDataResponse), '/viam.app.data.v1.DataService/DeleteBinaryDataByFilter': grpclib.const.Handler(self.DeleteBinaryDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteBinaryDataByFilterRequest, app.data.v1.data_pb2.DeleteBinaryDataByFilterResponse), '/viam.app.data.v1.DataService/DeleteBinaryDataByIDs': grpclib.const.Handler(self.DeleteBinaryDataByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteBinaryDataByIDsRequest, app.data.v1.data_pb2.DeleteBinaryDataByIDsResponse), '/viam.app.data.v1.DataService/AddTagsToBinaryDataByIDs': grpclib.const.Handler(self.AddTagsToBinaryDataByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.AddTagsToBinaryDataByIDsRequest, app.data.v1.data_pb2.AddTagsToBinaryDataByIDsResponse), '/viam.app.data.v1.DataService/AddTagsToBinaryDataByFilter': grpclib.const.Handler(self.AddTagsToBinaryDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.AddTagsToBinaryDataByFilterRequest, app.data.v1.data_pb2.AddTagsToBinaryDataByFilterResponse), '/viam.app.data.v1.DataService/RemoveTagsFromBinaryDataByIDs': grpclib.const.Handler(self.RemoveTagsFromBinaryDataByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.RemoveTagsFromBinaryDataByIDsRequest, app.data.v1.data_pb2.RemoveTagsFromBinaryDataByIDsResponse), '/viam.app.data.v1.DataService/RemoveTagsFromBinaryDataByFilter': grpclib.const.Handler(self.RemoveTagsFromBinaryDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.RemoveTagsFromBinaryDataByFilterRequest, app.data.v1.data_pb2.RemoveTagsFromBinaryDataByFilterResponse), '/viam.app.data.v1.DataService/TagsByFilter': grpclib.const.Handler(self.TagsByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.TagsByFilterRequest, app.data.v1.data_pb2.TagsByFilterResponse), '/viam.app.data.v1.DataService/AddBoundingBoxToImageByID': grpclib.const.Handler(self.AddBoundingBoxToImageByID, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.AddBoundingBoxToImageByIDRequest, app.data.v1.data_pb2.AddBoundingBoxToImageByIDResponse), '/viam.app.data.v1.DataService/RemoveBoundingBoxFromImageByID': grpclib.const.Handler(self.RemoveBoundingBoxFromImageByID, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.RemoveBoundingBoxFromImageByIDRequest, app.data.v1.data_pb2.RemoveBoundingBoxFromImageByIDResponse), '/viam.app.data.v1.DataService/BoundingBoxLabelsByFilter': grpclib.const.Handler(self.BoundingBoxLabelsByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.BoundingBoxLabelsByFilterRequest, app.data.v1.data_pb2.BoundingBoxLabelsByFilterResponse), '/viam.app.data.v1.DataService/UpdateBoundingBox': grpclib.const.Handler(self.UpdateBoundingBox, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.UpdateBoundingBoxRequest, app.data.v1.data_pb2.UpdateBoundingBoxResponse), '/viam.app.data.v1.DataService/GetDatabaseConnection': grpclib.const.Handler(self.GetDatabaseConnection, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.GetDatabaseConnectionRequest, app.data.v1.data_pb2.GetDatabaseConnectionResponse), '/viam.app.data.v1.DataService/ConfigureDatabaseUser': grpclib.const.Handler(self.ConfigureDatabaseUser, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.ConfigureDatabaseUserRequest, app.data.v1.data_pb2.ConfigureDatabaseUserResponse), '/viam.app.data.v1.DataService/AddBinaryDataToDatasetByIDs': grpclib.const.Handler(self.AddBinaryDataToDatasetByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.AddBinaryDataToDatasetByIDsRequest, app.data.v1.data_pb2.AddBinaryDataToDatasetByIDsResponse), '/viam.app.data.v1.DataService/RemoveBinaryDataFromDatasetByIDs': grpclib.const.Handler(self.RemoveBinaryDataFromDatasetByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsRequest, app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsResponse), '/viam.app.data.v1.DataService/CreateIndex': grpclib.const.Handler(self.CreateIndex, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.CreateIndexRequest, app.data.v1.data_pb2.CreateIndexResponse), '/viam.app.data.v1.DataService/ListIndexes': grpclib.const.Handler(self.ListIndexes, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.ListIndexesRequest, app.data.v1.data_pb2.ListIndexesResponse), '/viam.app.data.v1.DataService/DeleteIndex': grpclib.const.Handler(self.DeleteIndex, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteIndexRequest, app.data.v1.data_pb2.DeleteIndexResponse), '/viam.app.data.v1.DataService/CreateSavedQuery': grpclib.const.Handler(self.CreateSavedQuery, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.CreateSavedQueryRequest, app.data.v1.data_pb2.CreateSavedQueryResponse), '/viam.app.data.v1.DataService/UpdateSavedQuery': grpclib.const.Handler(self.UpdateSavedQuery, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.UpdateSavedQueryRequest, app.data.v1.data_pb2.UpdateSavedQueryResponse), '/viam.app.data.v1.DataService/GetSavedQuery': grpclib.const.Handler(self.GetSavedQuery, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.GetSavedQueryRequest, app.data.v1.data_pb2.GetSavedQueryResponse), '/viam.app.data.v1.DataService/DeleteSavedQuery': grpclib.const.Handler(self.DeleteSavedQuery, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteSavedQueryRequest, app.data.v1.data_pb2.DeleteSavedQueryResponse), '/viam.app.data.v1.DataService/ListSavedQueries': grpclib.const.Handler(self.ListSavedQueries, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.ListSavedQueriesRequest, app.data.v1.data_pb2.ListSavedQueriesResponse), '/viam.app.data.v1.DataService/CreateBinaryDataSignedURL': grpclib.const.Handler(self.CreateBinaryDataSignedURL, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.CreateBinaryDataSignedURLRequest, app.data.v1.data_pb2.CreateBinaryDataSignedURLResponse), '/viam.app.data.v1.DataService/CreateSequence': grpclib.const.Handler(self.CreateSequence, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.CreateSequenceRequest, app.data.v1.data_pb2.CreateSequenceResponse), '/viam.app.data.v1.DataService/GetSequence': grpclib.const.Handler(self.GetSequence, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.GetSequenceRequest, app.data.v1.data_pb2.GetSequenceResponse), '/viam.app.data.v1.DataService/UpdateSequence': grpclib.const.Handler(self.UpdateSequence, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.UpdateSequenceRequest, app.data.v1.data_pb2.UpdateSequenceResponse), '/viam.app.data.v1.DataService/DeleteSequence': grpclib.const.Handler(self.DeleteSequence, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteSequenceRequest, app.data.v1.data_pb2.DeleteSequenceResponse), '/viam.app.data.v1.DataService/ListSequences': grpclib.const.Handler(self.ListSequences, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.ListSequencesRequest, app.data.v1.data_pb2.ListSequencesResponse)} + return {'/viam.app.data.v1.DataService/TabularDataByFilter': grpclib.const.Handler(self.TabularDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.TabularDataByFilterRequest, app.data.v1.data_pb2.TabularDataByFilterResponse), '/viam.app.data.v1.DataService/TabularDataBySQL': grpclib.const.Handler(self.TabularDataBySQL, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.TabularDataBySQLRequest, app.data.v1.data_pb2.TabularDataBySQLResponse), '/viam.app.data.v1.DataService/TabularDataByMQL': grpclib.const.Handler(self.TabularDataByMQL, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.TabularDataByMQLRequest, app.data.v1.data_pb2.TabularDataByMQLResponse), '/viam.app.data.v1.DataService/ExportTabularData': grpclib.const.Handler(self.ExportTabularData, grpclib.const.Cardinality.UNARY_STREAM, app.data.v1.data_pb2.ExportTabularDataRequest, app.data.v1.data_pb2.ExportTabularDataResponse), '/viam.app.data.v1.DataService/GetLatestTabularData': grpclib.const.Handler(self.GetLatestTabularData, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.GetLatestTabularDataRequest, app.data.v1.data_pb2.GetLatestTabularDataResponse), '/viam.app.data.v1.DataService/BinaryDataByFilter': grpclib.const.Handler(self.BinaryDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.BinaryDataByFilterRequest, app.data.v1.data_pb2.BinaryDataByFilterResponse), '/viam.app.data.v1.DataService/BinaryDataByIDs': grpclib.const.Handler(self.BinaryDataByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.BinaryDataByIDsRequest, app.data.v1.data_pb2.BinaryDataByIDsResponse), '/viam.app.data.v1.DataService/DeleteTabularData': grpclib.const.Handler(self.DeleteTabularData, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteTabularDataRequest, app.data.v1.data_pb2.DeleteTabularDataResponse), '/viam.app.data.v1.DataService/DeleteBinaryDataByFilter': grpclib.const.Handler(self.DeleteBinaryDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteBinaryDataByFilterRequest, app.data.v1.data_pb2.DeleteBinaryDataByFilterResponse), '/viam.app.data.v1.DataService/DeleteBinaryDataByIDs': grpclib.const.Handler(self.DeleteBinaryDataByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteBinaryDataByIDsRequest, app.data.v1.data_pb2.DeleteBinaryDataByIDsResponse), '/viam.app.data.v1.DataService/AddTagsToBinaryDataByIDs': grpclib.const.Handler(self.AddTagsToBinaryDataByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.AddTagsToBinaryDataByIDsRequest, app.data.v1.data_pb2.AddTagsToBinaryDataByIDsResponse), '/viam.app.data.v1.DataService/AddTagsToBinaryDataByFilter': grpclib.const.Handler(self.AddTagsToBinaryDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.AddTagsToBinaryDataByFilterRequest, app.data.v1.data_pb2.AddTagsToBinaryDataByFilterResponse), '/viam.app.data.v1.DataService/RemoveTagsFromBinaryDataByIDs': grpclib.const.Handler(self.RemoveTagsFromBinaryDataByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.RemoveTagsFromBinaryDataByIDsRequest, app.data.v1.data_pb2.RemoveTagsFromBinaryDataByIDsResponse), '/viam.app.data.v1.DataService/RemoveTagsFromBinaryDataByFilter': grpclib.const.Handler(self.RemoveTagsFromBinaryDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.RemoveTagsFromBinaryDataByFilterRequest, app.data.v1.data_pb2.RemoveTagsFromBinaryDataByFilterResponse), '/viam.app.data.v1.DataService/TagsByFilter': grpclib.const.Handler(self.TagsByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.TagsByFilterRequest, app.data.v1.data_pb2.TagsByFilterResponse), '/viam.app.data.v1.DataService/AddBoundingBoxToImageByID': grpclib.const.Handler(self.AddBoundingBoxToImageByID, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.AddBoundingBoxToImageByIDRequest, app.data.v1.data_pb2.AddBoundingBoxToImageByIDResponse), '/viam.app.data.v1.DataService/RemoveBoundingBoxFromImageByID': grpclib.const.Handler(self.RemoveBoundingBoxFromImageByID, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.RemoveBoundingBoxFromImageByIDRequest, app.data.v1.data_pb2.RemoveBoundingBoxFromImageByIDResponse), '/viam.app.data.v1.DataService/BoundingBoxLabelsByFilter': grpclib.const.Handler(self.BoundingBoxLabelsByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.BoundingBoxLabelsByFilterRequest, app.data.v1.data_pb2.BoundingBoxLabelsByFilterResponse), '/viam.app.data.v1.DataService/UpdateBoundingBox': grpclib.const.Handler(self.UpdateBoundingBox, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.UpdateBoundingBoxRequest, app.data.v1.data_pb2.UpdateBoundingBoxResponse), '/viam.app.data.v1.DataService/GetDatabaseConnection': grpclib.const.Handler(self.GetDatabaseConnection, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.GetDatabaseConnectionRequest, app.data.v1.data_pb2.GetDatabaseConnectionResponse), '/viam.app.data.v1.DataService/ConfigureDatabaseUser': grpclib.const.Handler(self.ConfigureDatabaseUser, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.ConfigureDatabaseUserRequest, app.data.v1.data_pb2.ConfigureDatabaseUserResponse), '/viam.app.data.v1.DataService/AddBinaryDataToDatasetByIDs': grpclib.const.Handler(self.AddBinaryDataToDatasetByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.AddBinaryDataToDatasetByIDsRequest, app.data.v1.data_pb2.AddBinaryDataToDatasetByIDsResponse), '/viam.app.data.v1.DataService/RemoveBinaryDataFromDatasetByIDs': grpclib.const.Handler(self.RemoveBinaryDataFromDatasetByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsRequest, app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsResponse), '/viam.app.data.v1.DataService/AddSequencesToDataset': grpclib.const.Handler(self.AddSequencesToDataset, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.AddSequencesToDatasetRequest, app.data.v1.data_pb2.AddSequencesToDatasetResponse), '/viam.app.data.v1.DataService/RemoveSequencesFromDataset': grpclib.const.Handler(self.RemoveSequencesFromDataset, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.RemoveSequencesFromDatasetRequest, app.data.v1.data_pb2.RemoveSequencesFromDatasetResponse), '/viam.app.data.v1.DataService/CreateIndex': grpclib.const.Handler(self.CreateIndex, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.CreateIndexRequest, app.data.v1.data_pb2.CreateIndexResponse), '/viam.app.data.v1.DataService/ListIndexes': grpclib.const.Handler(self.ListIndexes, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.ListIndexesRequest, app.data.v1.data_pb2.ListIndexesResponse), '/viam.app.data.v1.DataService/DeleteIndex': grpclib.const.Handler(self.DeleteIndex, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteIndexRequest, app.data.v1.data_pb2.DeleteIndexResponse), '/viam.app.data.v1.DataService/CreateSavedQuery': grpclib.const.Handler(self.CreateSavedQuery, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.CreateSavedQueryRequest, app.data.v1.data_pb2.CreateSavedQueryResponse), '/viam.app.data.v1.DataService/UpdateSavedQuery': grpclib.const.Handler(self.UpdateSavedQuery, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.UpdateSavedQueryRequest, app.data.v1.data_pb2.UpdateSavedQueryResponse), '/viam.app.data.v1.DataService/GetSavedQuery': grpclib.const.Handler(self.GetSavedQuery, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.GetSavedQueryRequest, app.data.v1.data_pb2.GetSavedQueryResponse), '/viam.app.data.v1.DataService/DeleteSavedQuery': grpclib.const.Handler(self.DeleteSavedQuery, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteSavedQueryRequest, app.data.v1.data_pb2.DeleteSavedQueryResponse), '/viam.app.data.v1.DataService/ListSavedQueries': grpclib.const.Handler(self.ListSavedQueries, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.ListSavedQueriesRequest, app.data.v1.data_pb2.ListSavedQueriesResponse), '/viam.app.data.v1.DataService/CreateBinaryDataSignedURL': grpclib.const.Handler(self.CreateBinaryDataSignedURL, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.CreateBinaryDataSignedURLRequest, app.data.v1.data_pb2.CreateBinaryDataSignedURLResponse), '/viam.app.data.v1.DataService/CreateSequence': grpclib.const.Handler(self.CreateSequence, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.CreateSequenceRequest, app.data.v1.data_pb2.CreateSequenceResponse), '/viam.app.data.v1.DataService/GetSequence': grpclib.const.Handler(self.GetSequence, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.GetSequenceRequest, app.data.v1.data_pb2.GetSequenceResponse), '/viam.app.data.v1.DataService/UpdateSequence': grpclib.const.Handler(self.UpdateSequence, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.UpdateSequenceRequest, app.data.v1.data_pb2.UpdateSequenceResponse), '/viam.app.data.v1.DataService/DeleteSequence': grpclib.const.Handler(self.DeleteSequence, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteSequenceRequest, app.data.v1.data_pb2.DeleteSequenceResponse), '/viam.app.data.v1.DataService/ListSequences': grpclib.const.Handler(self.ListSequences, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.ListSequencesRequest, app.data.v1.data_pb2.ListSequencesResponse), '/viam.app.data.v1.DataService/SequencesByDatasetID': grpclib.const.Handler(self.SequencesByDatasetID, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.SequencesByDatasetIDRequest, app.data.v1.data_pb2.SequencesByDatasetIDResponse)} class UnimplementedDataServiceBase(DataServiceBase): @@ -235,6 +247,12 @@ async def AddBinaryDataToDatasetByIDs(self, stream: 'grpclib.server.Stream[app.d async def RemoveBinaryDataFromDatasetByIDs(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsRequest, app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsResponse]') -> None: raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED) + async def AddSequencesToDataset(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.AddSequencesToDatasetRequest, app.data.v1.data_pb2.AddSequencesToDatasetResponse]') -> None: + raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED) + + async def RemoveSequencesFromDataset(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.RemoveSequencesFromDatasetRequest, app.data.v1.data_pb2.RemoveSequencesFromDatasetResponse]') -> None: + raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED) + async def CreateIndex(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.CreateIndexRequest, app.data.v1.data_pb2.CreateIndexResponse]') -> None: raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED) @@ -277,6 +295,9 @@ async def DeleteSequence(self, stream: 'grpclib.server.Stream[app.data.v1.data_p async def ListSequences(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.ListSequencesRequest, app.data.v1.data_pb2.ListSequencesResponse]') -> None: raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED) + async def SequencesByDatasetID(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.SequencesByDatasetIDRequest, app.data.v1.data_pb2.SequencesByDatasetIDResponse]') -> None: + raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED) + class DataServiceStub: def __init__(self, channel: grpclib.client.Channel) -> None: @@ -303,6 +324,8 @@ def __init__(self, channel: grpclib.client.Channel) -> None: self.ConfigureDatabaseUser = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/ConfigureDatabaseUser', app.data.v1.data_pb2.ConfigureDatabaseUserRequest, app.data.v1.data_pb2.ConfigureDatabaseUserResponse) self.AddBinaryDataToDatasetByIDs = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/AddBinaryDataToDatasetByIDs', app.data.v1.data_pb2.AddBinaryDataToDatasetByIDsRequest, app.data.v1.data_pb2.AddBinaryDataToDatasetByIDsResponse) self.RemoveBinaryDataFromDatasetByIDs = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/RemoveBinaryDataFromDatasetByIDs', app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsRequest, app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsResponse) + self.AddSequencesToDataset = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/AddSequencesToDataset', app.data.v1.data_pb2.AddSequencesToDatasetRequest, app.data.v1.data_pb2.AddSequencesToDatasetResponse) + self.RemoveSequencesFromDataset = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/RemoveSequencesFromDataset', app.data.v1.data_pb2.RemoveSequencesFromDatasetRequest, app.data.v1.data_pb2.RemoveSequencesFromDatasetResponse) self.CreateIndex = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/CreateIndex', app.data.v1.data_pb2.CreateIndexRequest, app.data.v1.data_pb2.CreateIndexResponse) self.ListIndexes = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/ListIndexes', app.data.v1.data_pb2.ListIndexesRequest, app.data.v1.data_pb2.ListIndexesResponse) self.DeleteIndex = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/DeleteIndex', app.data.v1.data_pb2.DeleteIndexRequest, app.data.v1.data_pb2.DeleteIndexResponse) @@ -316,4 +339,5 @@ def __init__(self, channel: grpclib.client.Channel) -> None: self.GetSequence = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/GetSequence', app.data.v1.data_pb2.GetSequenceRequest, app.data.v1.data_pb2.GetSequenceResponse) self.UpdateSequence = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/UpdateSequence', app.data.v1.data_pb2.UpdateSequenceRequest, app.data.v1.data_pb2.UpdateSequenceResponse) self.DeleteSequence = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/DeleteSequence', app.data.v1.data_pb2.DeleteSequenceRequest, app.data.v1.data_pb2.DeleteSequenceResponse) - self.ListSequences = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/ListSequences', app.data.v1.data_pb2.ListSequencesRequest, app.data.v1.data_pb2.ListSequencesResponse) \ No newline at end of file + self.ListSequences = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/ListSequences', app.data.v1.data_pb2.ListSequencesRequest, app.data.v1.data_pb2.ListSequencesResponse) + self.SequencesByDatasetID = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/SequencesByDatasetID', app.data.v1.data_pb2.SequencesByDatasetIDRequest, app.data.v1.data_pb2.SequencesByDatasetIDResponse) \ No newline at end of file diff --git a/src/viam/gen/app/data/v1/data_pb2.py b/src/viam/gen/app/data/v1/data_pb2.py index c3bff5858..aefda439e 100644 --- a/src/viam/gen/app/data/v1/data_pb2.py +++ b/src/viam/gen/app/data/v1/data_pb2.py @@ -10,7 +10,7 @@ from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16app/data/v1/data.proto\x12\x10viam.app.data.v1\x1a\x19google/protobuf/any.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\xa1\x01\n\x0bDataRequest\x120\n\x06filter\x18\x01 \x01(\x0b2\x18.viam.app.data.v1.FilterR\x06filter\x12\x14\n\x05limit\x18\x02 \x01(\x04R\x05limit\x12\x12\n\x04last\x18\x03 \x01(\tR\x04last\x126\n\nsort_order\x18\x04 \x01(\x0e2\x17.viam.app.data.v1.OrderR\tsortOrder"\xaa\x04\n\x06Filter\x12%\n\x0ecomponent_name\x18\x01 \x01(\tR\rcomponentName\x12%\n\x0ecomponent_type\x18\x02 \x01(\tR\rcomponentType\x12\x16\n\x06method\x18\x04 \x01(\tR\x06method\x12\x1d\n\nrobot_name\x18\x06 \x01(\tR\trobotName\x12\x19\n\x08robot_id\x18\x07 \x01(\tR\x07robotId\x12\x1b\n\tpart_name\x18\x08 \x01(\tR\x08partName\x12\x17\n\x07part_id\x18\t \x01(\tR\x06partId\x12!\n\x0clocation_ids\x18\n \x03(\tR\x0blocationIds\x12)\n\x10organization_ids\x18\x0b \x03(\tR\x0forganizationIds\x12\x1b\n\tmime_type\x18\x0c \x03(\tR\x08mimeType\x12=\n\x08interval\x18\r \x01(\x0b2!.viam.app.data.v1.CaptureIntervalR\x08interval\x12=\n\x0btags_filter\x18\x0e \x01(\x0b2\x1c.viam.app.data.v1.TagsFilterR\ntagsFilter\x12\x1f\n\x0bbbox_labels\x18\x0f \x03(\tR\nbboxLabels\x12\x1d\n\ndataset_id\x18\x10 \x01(\tR\tdatasetIdJ\x04\x08\x03\x10\x04J\x04\x08\x05\x10\x06R\x0fcomponent_modelR\x04tags"V\n\nTagsFilter\x124\n\x04type\x18\x01 \x01(\x0e2 .viam.app.data.v1.TagsFilterTypeR\x04type\x12\x12\n\x04tags\x18\x02 \x03(\tR\x04tags"\xc3\x04\n\x0fCaptureMetadata\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x1f\n\x0blocation_id\x18\x02 \x01(\tR\nlocationId\x12\x1d\n\nrobot_name\x18\x03 \x01(\tR\trobotName\x12\x19\n\x08robot_id\x18\x04 \x01(\tR\x07robotId\x12\x1b\n\tpart_name\x18\x05 \x01(\tR\x08partName\x12\x17\n\x07part_id\x18\x06 \x01(\tR\x06partId\x12%\n\x0ecomponent_type\x18\x07 \x01(\tR\rcomponentType\x12%\n\x0ecomponent_name\x18\t \x01(\tR\rcomponentName\x12\x1f\n\x0bmethod_name\x18\n \x01(\tR\nmethodName\x12d\n\x11method_parameters\x18\x0b \x03(\x0b27.viam.app.data.v1.CaptureMetadata.MethodParametersEntryR\x10methodParameters\x12\x12\n\x04tags\x18\x0c \x03(\tR\x04tags\x12\x1b\n\tmime_type\x18\r \x01(\tR\x08mimeType\x1aY\n\x15MethodParametersEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12*\n\x05value\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyR\x05value:\x028\x01J\x04\x08\x08\x10\tR\x0fcomponent_model"q\n\x0fCaptureInterval\x120\n\x05start\x18\x01 \x01(\x0b2\x1a.google.protobuf.TimestampR\x05start\x12,\n\x03end\x18\x02 \x01(\x0b2\x1a.google.protobuf.TimestampR\x03end"\xb5\x01\n\x1aTabularDataByFilterRequest\x12@\n\x0cdata_request\x18\x01 \x01(\x0b2\x1d.viam.app.data.v1.DataRequestR\x0bdataRequest\x12\x1d\n\ncount_only\x18\x02 \x01(\x08R\tcountOnly\x122\n\x15include_internal_data\x18\x03 \x01(\x08R\x13includeInternalData:\x02\x18\x01"\xe7\x01\n\x1bTabularDataByFilterResponse\x12=\n\x08metadata\x18\x01 \x03(\x0b2!.viam.app.data.v1.CaptureMetadataR\x08metadata\x121\n\x04data\x18\x02 \x03(\x0b2\x1d.viam.app.data.v1.TabularDataR\x04data\x12\x14\n\x05count\x18\x03 \x01(\x04R\x05count\x12\x12\n\x04last\x18\x04 \x01(\tR\x04last\x12(\n\x10total_size_bytes\x18\x05 \x01(\x04R\x0etotalSizeBytes:\x02\x18\x01"\xe9\x01\n\x0bTabularData\x12+\n\x04data\x18\x01 \x01(\x0b2\x17.google.protobuf.StructR\x04data\x12%\n\x0emetadata_index\x18\x02 \x01(\rR\rmetadataIndex\x12A\n\x0etime_requested\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampR\rtimeRequested\x12?\n\rtime_received\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampR\x0ctimeReceived:\x02\x18\x01"_\n\x17TabularDataBySQLRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x1b\n\tsql_query\x18\x02 \x01(\tR\x08sqlQuery"A\n\x18TabularDataBySQLResponse\x12\x19\n\x08raw_data\x18\x02 \x03(\x0cR\x07rawDataJ\x04\x08\x01\x10\x02R\x04data"\x86\x01\n\x11TabularDataSource\x12;\n\x04type\x18\x01 \x01(\x0e2\'.viam.app.data.v1.TabularDataSourceTypeR\x04type\x12$\n\x0bpipeline_id\x18\x02 \x01(\tH\x00R\npipelineId\x88\x01\x01B\x0e\n\x0c_pipeline_id"\xee\x02\n\x17TabularDataByMQLRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x1d\n\nmql_binary\x18\x03 \x03(\x0cR\tmqlBinary\x12+\n\x0fuse_recent_data\x18\x04 \x01(\x08H\x00R\ruseRecentData\x88\x01\x01\x12I\n\x0bdata_source\x18\x06 \x01(\x0b2#.viam.app.data.v1.TabularDataSourceH\x01R\ndataSource\x88\x01\x01\x12/\n\x11query_prefix_name\x18\x07 \x01(\tH\x02R\x0fqueryPrefixName\x88\x01\x01B\x12\n\x10_use_recent_dataB\x0e\n\x0c_data_sourceB\x14\n\x12_query_prefix_nameJ\x04\x08\x02\x10\x03J\x04\x08\x05\x10\x06R\tmql_queryR\x11use_data_pipeline"A\n\x18TabularDataByMQLResponse\x12\x19\n\x08raw_data\x18\x02 \x03(\x0cR\x07rawDataJ\x04\x08\x01\x10\x02R\x04data"\xd0\x02\n\x18ExportTabularDataRequest\x12\x17\n\x07part_id\x18\x01 \x01(\tR\x06partId\x12#\n\rresource_name\x18\x02 \x01(\tR\x0cresourceName\x12)\n\x10resource_subtype\x18\x03 \x01(\tR\x0fresourceSubtype\x12\x1f\n\x0bmethod_name\x18\x04 \x01(\tR\nmethodName\x12=\n\x08interval\x18\x05 \x01(\x0b2!.viam.app.data.v1.CaptureIntervalR\x08interval\x12Q\n\x15additional_parameters\x18\x06 \x01(\x0b2\x17.google.protobuf.StructH\x00R\x14additionalParameters\x88\x01\x01B\x18\n\x16_additional_parameters"\x94\x04\n\x19ExportTabularDataResponse\x12\x17\n\x07part_id\x18\x01 \x01(\tR\x06partId\x12#\n\rresource_name\x18\x02 \x01(\tR\x0cresourceName\x12)\n\x10resource_subtype\x18\x03 \x01(\tR\x0fresourceSubtype\x12\x1f\n\x0bmethod_name\x18\x04 \x01(\tR\nmethodName\x12?\n\rtime_captured\x18\x05 \x01(\x0b2\x1a.google.protobuf.TimestampR\x0ctimeCaptured\x12\'\n\x0forganization_id\x18\x06 \x01(\tR\x0eorganizationId\x12\x1f\n\x0blocation_id\x18\x07 \x01(\tR\nlocationId\x12\x1d\n\nrobot_name\x18\x08 \x01(\tR\trobotName\x12\x19\n\x08robot_id\x18\t \x01(\tR\x07robotId\x12\x1b\n\tpart_name\x18\n \x01(\tR\x08partName\x12D\n\x11method_parameters\x18\x0b \x01(\x0b2\x17.google.protobuf.StructR\x10methodParameters\x12\x12\n\x04tags\x18\x0c \x03(\tR\x04tags\x121\n\x07payload\x18\r \x01(\x0b2\x17.google.protobuf.StructR\x07payload"\x94\x02\n\x1bGetLatestTabularDataRequest\x12\x17\n\x07part_id\x18\x01 \x01(\tR\x06partId\x12#\n\rresource_name\x18\x02 \x01(\tR\x0cresourceName\x12\x1f\n\x0bmethod_name\x18\x03 \x01(\tR\nmethodName\x12)\n\x10resource_subtype\x18\x04 \x01(\tR\x0fresourceSubtype\x12Q\n\x15additional_parameters\x18\x05 \x01(\x0b2\x17.google.protobuf.StructH\x00R\x14additionalParameters\x88\x01\x01B\x18\n\x16_additional_parameters"\xcf\x01\n\x1cGetLatestTabularDataResponse\x12?\n\rtime_captured\x18\x01 \x01(\x0b2\x1a.google.protobuf.TimestampR\x0ctimeCaptured\x12;\n\x0btime_synced\x18\x02 \x01(\x0b2\x1a.google.protobuf.TimestampR\ntimeSynced\x121\n\x07payload\x18\x03 \x01(\x0b2\x17.google.protobuf.StructR\x07payload"b\n\nBinaryData\x12\x16\n\x06binary\x18\x01 \x01(\x0cR\x06binary\x12<\n\x08metadata\x18\x02 \x01(\x0b2 .viam.app.data.v1.BinaryMetadataR\x08metadata"\xd7\x01\n\x19BinaryDataByFilterRequest\x12@\n\x0cdata_request\x18\x01 \x01(\x0b2\x1d.viam.app.data.v1.DataRequestR\x0bdataRequest\x12%\n\x0einclude_binary\x18\x02 \x01(\x08R\rincludeBinary\x12\x1d\n\ncount_only\x18\x03 \x01(\x08R\tcountOnly\x122\n\x15include_internal_data\x18\x04 \x01(\x08R\x13includeInternalData"\xa2\x01\n\x1aBinaryDataByFilterResponse\x120\n\x04data\x18\x01 \x03(\x0b2\x1c.viam.app.data.v1.BinaryDataR\x04data\x12\x14\n\x05count\x18\x02 \x01(\x04R\x05count\x12\x12\n\x04last\x18\x03 \x01(\tR\x04last\x12(\n\x10total_size_bytes\x18\x04 \x01(\x04R\x0etotalSizeBytes"q\n\x08BinaryID\x12\x17\n\x07file_id\x18\x01 \x01(\tR\x06fileId\x12\'\n\x0forganization_id\x18\x02 \x01(\tR\x0eorganizationId\x12\x1f\n\x0blocation_id\x18\x03 \x01(\tR\nlocationId:\x02\x18\x01"\xb6\x01\n\x16BinaryDataByIDsRequest\x12%\n\x0einclude_binary\x18\x02 \x01(\x08R\rincludeBinary\x12=\n\nbinary_ids\x18\x03 \x03(\x0b2\x1a.viam.app.data.v1.BinaryIDB\x02\x18\x01R\tbinaryIds\x12&\n\x0fbinary_data_ids\x18\x04 \x03(\tR\rbinaryDataIdsJ\x04\x08\x01\x10\x02R\x08file_ids"a\n\x17BinaryDataByIDsResponse\x120\n\x04data\x18\x01 \x03(\x0b2\x1c.viam.app.data.v1.BinaryDataR\x04data\x12\x14\n\x05count\x18\x02 \x01(\x04R\x05count"\x8f\x02\n\x0bBoundingBox\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x14\n\x05label\x18\x02 \x01(\tR\x05label\x12(\n\x10x_min_normalized\x18\x03 \x01(\x01R\x0exMinNormalized\x12(\n\x10y_min_normalized\x18\x04 \x01(\x01R\x0eyMinNormalized\x12(\n\x10x_max_normalized\x18\x05 \x01(\x01R\x0exMaxNormalized\x12(\n\x10y_max_normalized\x18\x06 \x01(\x01R\x0eyMaxNormalized\x12#\n\nconfidence\x18\x07 \x01(\x01H\x00R\nconfidence\x88\x01\x01B\r\n\x0b_confidence"j\n\x0eClassification\x12\x0e\n\x02id\x18\x03 \x01(\tR\x02id\x12\x14\n\x05label\x18\x01 \x01(\tR\x05label\x12#\n\nconfidence\x18\x02 \x01(\x01H\x00R\nconfidence\x88\x01\x01B\r\n\x0b_confidence"\x90\x01\n\x0bAnnotations\x125\n\x06bboxes\x18\x01 \x03(\x0b2\x1d.viam.app.data.v1.BoundingBoxR\x06bboxes\x12J\n\x0fclassifications\x18\x02 \x03(\x0b2 .viam.app.data.v1.ClassificationR\x0fclassifications"\xf0\x03\n\x0eBinaryMetadata\x12\x12\n\x02id\x18\x01 \x01(\tB\x02\x18\x01R\x02id\x12L\n\x10capture_metadata\x18\x02 \x01(\x0b2!.viam.app.data.v1.CaptureMetadataR\x0fcaptureMetadata\x12A\n\x0etime_requested\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampR\rtimeRequested\x12?\n\rtime_received\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampR\x0ctimeReceived\x12\x1b\n\tfile_name\x18\x05 \x01(\tR\x08fileName\x12\x19\n\x08file_ext\x18\x06 \x01(\tR\x07fileExt\x12\x10\n\x03uri\x18\x07 \x01(\tR\x03uri\x12?\n\x0bannotations\x18\x08 \x01(\x0b2\x1d.viam.app.data.v1.AnnotationsR\x0bannotations\x12\x1f\n\x0bdataset_ids\x18\t \x03(\tR\ndatasetIds\x12$\n\x0ebinary_data_id\x18\n \x01(\tR\x0cbinaryDataId\x12&\n\x0ffile_size_bytes\x18\x0b \x01(\x04R\rfileSizeBytes"\x91\x02\n\x13DeleteTabularFilter\x12!\n\x0clocation_ids\x18\x01 \x03(\tR\x0blocationIds\x12\x19\n\x08robot_id\x18\x02 \x01(\tR\x07robotId\x12\x17\n\x07part_id\x18\x03 \x01(\tR\x06partId\x12%\n\x0ecomponent_type\x18\x04 \x01(\tR\rcomponentType\x12%\n\x0ecomponent_name\x18\x05 \x01(\tR\rcomponentName\x12\x16\n\x06method\x18\x06 \x01(\tR\x06method\x12=\n\x0btags_filter\x18\x07 \x01(\x0b2\x1c.viam.app.data.v1.TagsFilterR\ntagsFilter"\xc7\x01\n\x18DeleteTabularDataRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x123\n\x16delete_older_than_days\x18\x02 \x01(\rR\x13deleteOlderThanDays\x12B\n\x06filter\x18\x03 \x01(\x0b2%.viam.app.data.v1.DeleteTabularFilterH\x00R\x06filter\x88\x01\x01B\t\n\x07_filter"@\n\x19DeleteTabularDataResponse\x12#\n\rdeleted_count\x18\x01 \x01(\x04R\x0cdeletedCount"\x87\x01\n\x1fDeleteBinaryDataByFilterRequest\x120\n\x06filter\x18\x01 \x01(\x0b2\x18.viam.app.data.v1.FilterR\x06filter\x122\n\x15include_internal_data\x18\x02 \x01(\x08R\x13includeInternalData"U\n DeleteBinaryDataByFilterResponse\x12#\n\rdeleted_count\x18\x01 \x01(\x04R\x0cdeletedCountJ\x04\x08\x02\x10\x03R\x06result"\x95\x01\n\x1cDeleteBinaryDataByIDsRequest\x12=\n\nbinary_ids\x18\x02 \x03(\x0b2\x1a.viam.app.data.v1.BinaryIDB\x02\x18\x01R\tbinaryIds\x12&\n\x0fbinary_data_ids\x18\x03 \x03(\tR\rbinaryDataIdsJ\x04\x08\x01\x10\x02R\x08file_ids"R\n\x1dDeleteBinaryDataByIDsResponse\x12#\n\rdeleted_count\x18\x01 \x01(\x04R\x0cdeletedCountJ\x04\x08\x02\x10\x03R\x06result"\xac\x01\n\x1fAddTagsToBinaryDataByIDsRequest\x12=\n\nbinary_ids\x18\x03 \x03(\x0b2\x1a.viam.app.data.v1.BinaryIDB\x02\x18\x01R\tbinaryIds\x12&\n\x0fbinary_data_ids\x18\x04 \x03(\tR\rbinaryDataIds\x12\x12\n\x04tags\x18\x02 \x03(\tR\x04tagsJ\x04\x08\x01\x10\x02R\x08file_ids""\n AddTagsToBinaryDataByIDsResponse"n\n"AddTagsToBinaryDataByFilterRequest\x120\n\x06filter\x18\x01 \x01(\x0b2\x18.viam.app.data.v1.FilterR\x06filter\x12\x12\n\x04tags\x18\x02 \x03(\tR\x04tags:\x02\x18\x01")\n#AddTagsToBinaryDataByFilterResponse:\x02\x18\x01"\xb1\x01\n$RemoveTagsFromBinaryDataByIDsRequest\x12=\n\nbinary_ids\x18\x03 \x03(\x0b2\x1a.viam.app.data.v1.BinaryIDB\x02\x18\x01R\tbinaryIds\x12&\n\x0fbinary_data_ids\x18\x04 \x03(\tR\rbinaryDataIds\x12\x12\n\x04tags\x18\x02 \x03(\tR\x04tagsJ\x04\x08\x01\x10\x02R\x08file_ids"L\n%RemoveTagsFromBinaryDataByIDsResponse\x12#\n\rdeleted_count\x18\x01 \x01(\x04R\x0cdeletedCount"s\n\'RemoveTagsFromBinaryDataByFilterRequest\x120\n\x06filter\x18\x01 \x01(\x0b2\x18.viam.app.data.v1.FilterR\x06filter\x12\x12\n\x04tags\x18\x02 \x03(\tR\x04tags:\x02\x18\x01"S\n(RemoveTagsFromBinaryDataByFilterResponse\x12#\n\rdeleted_count\x18\x01 \x01(\x04R\x0cdeletedCount:\x02\x18\x01"K\n\x13TagsByFilterRequest\x120\n\x06filter\x18\x01 \x01(\x0b2\x18.viam.app.data.v1.FilterR\x06filter:\x02\x18\x01".\n\x14TagsByFilterResponse\x12\x12\n\x04tags\x18\x01 \x03(\tR\x04tags:\x02\x18\x01"\x86\x03\n AddBoundingBoxToImageByIDRequest\x12;\n\tbinary_id\x18\x07 \x01(\x0b2\x1a.viam.app.data.v1.BinaryIDB\x02\x18\x01R\x08binaryId\x12$\n\x0ebinary_data_id\x18\x08 \x01(\tR\x0cbinaryDataId\x12\x14\n\x05label\x18\x02 \x01(\tR\x05label\x12(\n\x10x_min_normalized\x18\x03 \x01(\x01R\x0exMinNormalized\x12(\n\x10y_min_normalized\x18\x04 \x01(\x01R\x0eyMinNormalized\x12(\n\x10x_max_normalized\x18\x05 \x01(\x01R\x0exMaxNormalized\x12(\n\x10y_max_normalized\x18\x06 \x01(\x01R\x0eyMaxNormalized\x12#\n\nconfidence\x18\t \x01(\x01H\x00R\nconfidence\x88\x01\x01B\r\n\x0b_confidenceJ\x04\x08\x01\x10\x02R\x07file_id"<\n!AddBoundingBoxToImageByIDResponse\x12\x17\n\x07bbox_id\x18\x01 \x01(\tR\x06bboxId"\xb2\x01\n%RemoveBoundingBoxFromImageByIDRequest\x12;\n\tbinary_id\x18\x03 \x01(\x0b2\x1a.viam.app.data.v1.BinaryIDB\x02\x18\x01R\x08binaryId\x12$\n\x0ebinary_data_id\x18\x04 \x01(\tR\x0cbinaryDataId\x12\x17\n\x07bbox_id\x18\x02 \x01(\tR\x06bboxIdJ\x04\x08\x01\x10\x02R\x07file_id"(\n&RemoveBoundingBoxFromImageByIDResponse"\xff\x03\n\x18UpdateBoundingBoxRequest\x12;\n\tbinary_id\x18\x01 \x01(\x0b2\x1a.viam.app.data.v1.BinaryIDB\x02\x18\x01R\x08binaryId\x12$\n\x0ebinary_data_id\x18\x08 \x01(\tR\x0cbinaryDataId\x12\x17\n\x07bbox_id\x18\x02 \x01(\tR\x06bboxId\x12\x19\n\x05label\x18\x03 \x01(\tH\x00R\x05label\x88\x01\x01\x12-\n\x10x_min_normalized\x18\x04 \x01(\x01H\x01R\x0exMinNormalized\x88\x01\x01\x12-\n\x10y_min_normalized\x18\x05 \x01(\x01H\x02R\x0eyMinNormalized\x88\x01\x01\x12-\n\x10x_max_normalized\x18\x06 \x01(\x01H\x03R\x0exMaxNormalized\x88\x01\x01\x12-\n\x10y_max_normalized\x18\x07 \x01(\x01H\x04R\x0eyMaxNormalized\x88\x01\x01\x12#\n\nconfidence\x18\t \x01(\x01H\x05R\nconfidence\x88\x01\x01B\x08\n\x06_labelB\x13\n\x11_x_min_normalizedB\x13\n\x11_y_min_normalizedB\x13\n\x11_x_max_normalizedB\x13\n\x11_y_max_normalizedB\r\n\x0b_confidence"\x1b\n\x19UpdateBoundingBoxResponse"X\n BoundingBoxLabelsByFilterRequest\x120\n\x06filter\x18\x01 \x01(\x0b2\x18.viam.app.data.v1.FilterR\x06filter:\x02\x18\x01"?\n!BoundingBoxLabelsByFilterResponse\x12\x16\n\x06labels\x18\x01 \x03(\tR\x06labels:\x02\x18\x01"c\n\x1cConfigureDatabaseUserRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x1a\n\x08password\x18\x02 \x01(\tR\x08password"\x1f\n\x1dConfigureDatabaseUserResponse"G\n\x1cGetDatabaseConnectionRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId"\x88\x01\n\x1dGetDatabaseConnectionResponse\x12\x1a\n\x08hostname\x18\x01 \x01(\tR\x08hostname\x12\x1f\n\x0bmongodb_uri\x18\x02 \x01(\tR\nmongodbUri\x12*\n\x11has_database_user\x18\x03 \x01(\x08R\x0fhasDatabaseUser"\xaa\x01\n"AddBinaryDataToDatasetByIDsRequest\x12=\n\nbinary_ids\x18\x01 \x03(\x0b2\x1a.viam.app.data.v1.BinaryIDB\x02\x18\x01R\tbinaryIds\x12&\n\x0fbinary_data_ids\x18\x03 \x03(\tR\rbinaryDataIds\x12\x1d\n\ndataset_id\x18\x02 \x01(\tR\tdatasetId"%\n#AddBinaryDataToDatasetByIDsResponse"\xaf\x01\n\'RemoveBinaryDataFromDatasetByIDsRequest\x12=\n\nbinary_ids\x18\x01 \x03(\x0b2\x1a.viam.app.data.v1.BinaryIDB\x02\x18\x01R\tbinaryIds\x12&\n\x0fbinary_data_ids\x18\x03 \x03(\tR\rbinaryDataIds\x12\x1d\n\ndataset_id\x18\x02 \x01(\tR\tdatasetId"*\n(RemoveBinaryDataFromDatasetByIDsResponse"\xe8\x01\n\x12CreateIndexRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12N\n\x0fcollection_type\x18\x02 \x01(\x0e2%.viam.app.data.v1.IndexableCollectionR\x0ecollectionType\x12(\n\rpipeline_name\x18\x03 \x01(\tH\x00R\x0cpipelineName\x88\x01\x01\x12\x1d\n\nindex_spec\x18\x04 \x03(\x0cR\tindexSpecB\x10\n\x0e_pipeline_name"\x15\n\x13CreateIndexResponse"\xe8\x01\n\x12DeleteIndexRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12N\n\x0fcollection_type\x18\x02 \x01(\x0e2%.viam.app.data.v1.IndexableCollectionR\x0ecollectionType\x12(\n\rpipeline_name\x18\x03 \x01(\tH\x00R\x0cpipelineName\x88\x01\x01\x12\x1d\n\nindex_name\x18\x04 \x01(\tR\tindexNameB\x10\n\x0e_pipeline_name"\x15\n\x13DeleteIndexResponse"\xc9\x01\n\x12ListIndexesRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12N\n\x0fcollection_type\x18\x02 \x01(\x0e2%.viam.app.data.v1.IndexableCollectionR\x0ecollectionType\x12(\n\rpipeline_name\x18\x03 \x01(\tH\x00R\x0cpipelineName\x88\x01\x01B\x10\n\x0e_pipeline_name"H\n\x13ListIndexesResponse\x121\n\x07indexes\x18\x01 \x03(\x0b2\x17.viam.app.data.v1.IndexR\x07indexes"\x90\x02\n\x05Index\x12N\n\x0fcollection_type\x18\x01 \x01(\x0e2%.viam.app.data.v1.IndexableCollectionR\x0ecollectionType\x12(\n\rpipeline_name\x18\x02 \x01(\tH\x00R\x0cpipelineName\x88\x01\x01\x12\x1d\n\nindex_name\x18\x03 \x01(\tR\tindexName\x12\x1d\n\nindex_spec\x18\x04 \x03(\x0cR\tindexSpec\x12=\n\ncreated_by\x18\x05 \x01(\x0e2\x1e.viam.app.data.v1.IndexCreatorR\tcreatedByB\x10\n\x0e_pipeline_name"u\n\x17CreateSavedQueryRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x1d\n\nmql_binary\x18\x03 \x03(\x0cR\tmqlBinary"*\n\x18CreateSavedQueryResponse\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"\xe9\x01\n\x05Query\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\'\n\x0forganization_id\x18\x02 \x01(\tR\x0eorganizationId\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x1d\n\nmql_binary\x18\x04 \x03(\x0cR\tmqlBinary\x129\n\ncreated_on\x18\x05 \x01(\x0b2\x1a.google.protobuf.TimestampR\tcreatedOn\x129\n\nupdated_at\x18\x06 \x01(\x0b2\x1a.google.protobuf.TimestampR\tupdatedAt")\n\x17DeleteSavedQueryRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"\x1a\n\x18DeleteSavedQueryResponse"&\n\x14GetSavedQueryRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"Q\n\x15GetSavedQueryResponse\x128\n\x0bsaved_query\x18\x01 \x01(\x0b2\x17.viam.app.data.v1.QueryR\nsavedQuery"\\\n\x17UpdateSavedQueryRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x1d\n\nmql_binary\x18\x03 \x03(\x0cR\tmqlBinary"\x1a\n\x18UpdateSavedQueryResponse"X\n\x17ListSavedQueriesRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x14\n\x05limit\x18\x02 \x01(\x03R\x05limit"M\n\x18ListSavedQueriesResponse\x121\n\x07queries\x18\x01 \x03(\x0b2\x17.viam.app.data.v1.QueryR\x07queries"\x93\x01\n CreateBinaryDataSignedURLRequest\x12$\n\x0ebinary_data_id\x18\x01 \x01(\tR\x0cbinaryDataId\x122\n\x12expiration_minutes\x18\x02 \x01(\rH\x00R\x11expirationMinutes\x88\x01\x01B\x15\n\x13_expiration_minutes"}\n!CreateBinaryDataSignedURLResponse\x12\x1d\n\nsigned_url\x18\x01 \x01(\tR\tsignedUrl\x129\n\nexpires_at\x18\x02 \x01(\x0b2\x1a.google.protobuf.TimestampR\texpiresAt"m\n\x16SequenceResourceFilter\x12#\n\rresource_name\x18\x02 \x01(\tR\x0cresourceName\x12\x1f\n\x0bmethod_name\x18\x03 \x01(\tR\nmethodNameJ\x04\x08\x01\x10\x02R\x07part_id"\x9f\x03\n\x08Sequence\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x17\n\x07part_id\x18\t \x01(\tR\x06partId\x12#\n\rsequence_tags\x18\x03 \x03(\tR\x0csequenceTags\x129\n\ncreated_at\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n\nupdated_at\x18\x05 \x01(\x0b2\x1a.google.protobuf.TimestampR\tupdatedAt\x129\n\nstart_time\x18\x06 \x01(\x0b2\x1a.google.protobuf.TimestampR\tstartTime\x125\n\x08end_time\x18\x07 \x01(\x0b2\x1a.google.protobuf.TimestampR\x07endTime\x12F\n\tresources\x18\x08 \x03(\x0b2(.viam.app.data.v1.SequenceResourceFilterR\tresourcesJ\x04\x08\x02\x10\x03R\x0forganization_id"\xa6\x02\n\x15CreateSequenceRequest\x12\x17\n\x07part_id\x18\x06 \x01(\tR\x06partId\x12F\n\tresources\x18\x02 \x03(\x0b2(.viam.app.data.v1.SequenceResourceFilterR\tresources\x12#\n\rsequence_tags\x18\x03 \x03(\tR\x0csequenceTags\x129\n\nstart_time\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampR\tstartTime\x125\n\x08end_time\x18\x05 \x01(\x0b2\x1a.google.protobuf.TimestampR\x07endTimeJ\x04\x08\x01\x10\x02R\x0forganization_id"(\n\x16CreateSequenceResponse\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"$\n\x12GetSequenceRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"M\n\x13GetSequenceResponse\x126\n\x08sequence\x18\x01 \x01(\x0b2\x1a.viam.app.data.v1.SequenceR\x08sequence"\xc1\x02\n\x15UpdateSequenceRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12F\n\tresources\x18\x02 \x03(\x0b2(.viam.app.data.v1.SequenceResourceFilterR\tresources\x12#\n\rsequence_tags\x18\x03 \x03(\tR\x0csequenceTags\x129\n\nstart_time\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampR\tstartTime\x125\n\x08end_time\x18\x05 \x01(\x0b2\x1a.google.protobuf.TimestampR\x07endTime\x129\n\nfield_mask\x18\x06 \x01(\x0b2\x1a.google.protobuf.FieldMaskR\tfieldMask"\x18\n\x16UpdateSequenceResponse"\'\n\x15DeleteSequenceRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"\x18\n\x16DeleteSequenceResponse"{\n\x14ListSequencesRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x1d\n\npage_token\x18\x02 \x01(\tR\tpageToken\x12\x1b\n\tpage_size\x18\x03 \x01(\rR\x08pageSize"y\n\x15ListSequencesResponse\x128\n\tsequences\x18\x01 \x03(\x0b2\x1a.viam.app.data.v1.SequenceR\tsequences\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken*I\n\x05Order\x12\x15\n\x11ORDER_UNSPECIFIED\x10\x00\x12\x14\n\x10ORDER_DESCENDING\x10\x01\x12\x13\n\x0fORDER_ASCENDING\x10\x02*\x90\x01\n\x0eTagsFilterType\x12 \n\x1cTAGS_FILTER_TYPE_UNSPECIFIED\x10\x00\x12 \n\x1cTAGS_FILTER_TYPE_MATCH_BY_OR\x10\x01\x12\x1b\n\x17TAGS_FILTER_TYPE_TAGGED\x10\x02\x12\x1d\n\x19TAGS_FILTER_TYPE_UNTAGGED\x10\x03*\xbe\x01\n\x15TabularDataSourceType\x12(\n$TABULAR_DATA_SOURCE_TYPE_UNSPECIFIED\x10\x00\x12%\n!TABULAR_DATA_SOURCE_TYPE_STANDARD\x10\x01\x12(\n$TABULAR_DATA_SOURCE_TYPE_HOT_STORAGE\x10\x02\x12*\n&TABULAR_DATA_SOURCE_TYPE_PIPELINE_SINK\x10\x03*\x87\x01\n\x13IndexableCollection\x12$\n INDEXABLE_COLLECTION_UNSPECIFIED\x10\x00\x12"\n\x1eINDEXABLE_COLLECTION_HOT_STORE\x10\x01\x12&\n"INDEXABLE_COLLECTION_PIPELINE_SINK\x10\x02*a\n\x0cIndexCreator\x12\x1d\n\x19INDEX_CREATOR_UNSPECIFIED\x10\x00\x12\x16\n\x12INDEX_CREATOR_VIAM\x10\x01\x12\x1a\n\x16INDEX_CREATOR_CUSTOMER\x10\x022\x80"\n\x0bDataService\x12w\n\x13TabularDataByFilter\x12,.viam.app.data.v1.TabularDataByFilterRequest\x1a-.viam.app.data.v1.TabularDataByFilterResponse"\x03\x88\x02\x01\x12i\n\x10TabularDataBySQL\x12).viam.app.data.v1.TabularDataBySQLRequest\x1a*.viam.app.data.v1.TabularDataBySQLResponse\x12i\n\x10TabularDataByMQL\x12).viam.app.data.v1.TabularDataByMQLRequest\x1a*.viam.app.data.v1.TabularDataByMQLResponse\x12n\n\x11ExportTabularData\x12*.viam.app.data.v1.ExportTabularDataRequest\x1a+.viam.app.data.v1.ExportTabularDataResponse0\x01\x12u\n\x14GetLatestTabularData\x12-.viam.app.data.v1.GetLatestTabularDataRequest\x1a..viam.app.data.v1.GetLatestTabularDataResponse\x12o\n\x12BinaryDataByFilter\x12+.viam.app.data.v1.BinaryDataByFilterRequest\x1a,.viam.app.data.v1.BinaryDataByFilterResponse\x12f\n\x0fBinaryDataByIDs\x12(.viam.app.data.v1.BinaryDataByIDsRequest\x1a).viam.app.data.v1.BinaryDataByIDsResponse\x12l\n\x11DeleteTabularData\x12*.viam.app.data.v1.DeleteTabularDataRequest\x1a+.viam.app.data.v1.DeleteTabularDataResponse\x12\x81\x01\n\x18DeleteBinaryDataByFilter\x121.viam.app.data.v1.DeleteBinaryDataByFilterRequest\x1a2.viam.app.data.v1.DeleteBinaryDataByFilterResponse\x12x\n\x15DeleteBinaryDataByIDs\x12..viam.app.data.v1.DeleteBinaryDataByIDsRequest\x1a/.viam.app.data.v1.DeleteBinaryDataByIDsResponse\x12\x81\x01\n\x18AddTagsToBinaryDataByIDs\x121.viam.app.data.v1.AddTagsToBinaryDataByIDsRequest\x1a2.viam.app.data.v1.AddTagsToBinaryDataByIDsResponse\x12\x8f\x01\n\x1bAddTagsToBinaryDataByFilter\x124.viam.app.data.v1.AddTagsToBinaryDataByFilterRequest\x1a5.viam.app.data.v1.AddTagsToBinaryDataByFilterResponse"\x03\x88\x02\x01\x12\x90\x01\n\x1dRemoveTagsFromBinaryDataByIDs\x126.viam.app.data.v1.RemoveTagsFromBinaryDataByIDsRequest\x1a7.viam.app.data.v1.RemoveTagsFromBinaryDataByIDsResponse\x12\x9e\x01\n RemoveTagsFromBinaryDataByFilter\x129.viam.app.data.v1.RemoveTagsFromBinaryDataByFilterRequest\x1a:.viam.app.data.v1.RemoveTagsFromBinaryDataByFilterResponse"\x03\x88\x02\x01\x12b\n\x0cTagsByFilter\x12%.viam.app.data.v1.TagsByFilterRequest\x1a&.viam.app.data.v1.TagsByFilterResponse"\x03\x88\x02\x01\x12\x84\x01\n\x19AddBoundingBoxToImageByID\x122.viam.app.data.v1.AddBoundingBoxToImageByIDRequest\x1a3.viam.app.data.v1.AddBoundingBoxToImageByIDResponse\x12\x93\x01\n\x1eRemoveBoundingBoxFromImageByID\x127.viam.app.data.v1.RemoveBoundingBoxFromImageByIDRequest\x1a8.viam.app.data.v1.RemoveBoundingBoxFromImageByIDResponse\x12\x89\x01\n\x19BoundingBoxLabelsByFilter\x122.viam.app.data.v1.BoundingBoxLabelsByFilterRequest\x1a3.viam.app.data.v1.BoundingBoxLabelsByFilterResponse"\x03\x88\x02\x01\x12l\n\x11UpdateBoundingBox\x12*.viam.app.data.v1.UpdateBoundingBoxRequest\x1a+.viam.app.data.v1.UpdateBoundingBoxResponse\x12x\n\x15GetDatabaseConnection\x12..viam.app.data.v1.GetDatabaseConnectionRequest\x1a/.viam.app.data.v1.GetDatabaseConnectionResponse\x12x\n\x15ConfigureDatabaseUser\x12..viam.app.data.v1.ConfigureDatabaseUserRequest\x1a/.viam.app.data.v1.ConfigureDatabaseUserResponse\x12\x8a\x01\n\x1bAddBinaryDataToDatasetByIDs\x124.viam.app.data.v1.AddBinaryDataToDatasetByIDsRequest\x1a5.viam.app.data.v1.AddBinaryDataToDatasetByIDsResponse\x12\x99\x01\n RemoveBinaryDataFromDatasetByIDs\x129.viam.app.data.v1.RemoveBinaryDataFromDatasetByIDsRequest\x1a:.viam.app.data.v1.RemoveBinaryDataFromDatasetByIDsResponse\x12Z\n\x0bCreateIndex\x12$.viam.app.data.v1.CreateIndexRequest\x1a%.viam.app.data.v1.CreateIndexResponse\x12Z\n\x0bListIndexes\x12$.viam.app.data.v1.ListIndexesRequest\x1a%.viam.app.data.v1.ListIndexesResponse\x12Z\n\x0bDeleteIndex\x12$.viam.app.data.v1.DeleteIndexRequest\x1a%.viam.app.data.v1.DeleteIndexResponse\x12i\n\x10CreateSavedQuery\x12).viam.app.data.v1.CreateSavedQueryRequest\x1a*.viam.app.data.v1.CreateSavedQueryResponse\x12i\n\x10UpdateSavedQuery\x12).viam.app.data.v1.UpdateSavedQueryRequest\x1a*.viam.app.data.v1.UpdateSavedQueryResponse\x12`\n\rGetSavedQuery\x12&.viam.app.data.v1.GetSavedQueryRequest\x1a\'.viam.app.data.v1.GetSavedQueryResponse\x12i\n\x10DeleteSavedQuery\x12).viam.app.data.v1.DeleteSavedQueryRequest\x1a*.viam.app.data.v1.DeleteSavedQueryResponse\x12i\n\x10ListSavedQueries\x12).viam.app.data.v1.ListSavedQueriesRequest\x1a*.viam.app.data.v1.ListSavedQueriesResponse\x12\x84\x01\n\x19CreateBinaryDataSignedURL\x122.viam.app.data.v1.CreateBinaryDataSignedURLRequest\x1a3.viam.app.data.v1.CreateBinaryDataSignedURLResponse\x12c\n\x0eCreateSequence\x12\'.viam.app.data.v1.CreateSequenceRequest\x1a(.viam.app.data.v1.CreateSequenceResponse\x12Z\n\x0bGetSequence\x12$.viam.app.data.v1.GetSequenceRequest\x1a%.viam.app.data.v1.GetSequenceResponse\x12c\n\x0eUpdateSequence\x12\'.viam.app.data.v1.UpdateSequenceRequest\x1a(.viam.app.data.v1.UpdateSequenceResponse\x12c\n\x0eDeleteSequence\x12\'.viam.app.data.v1.DeleteSequenceRequest\x1a(.viam.app.data.v1.DeleteSequenceResponse\x12`\n\rListSequences\x12&.viam.app.data.v1.ListSequencesRequest\x1a\'.viam.app.data.v1.ListSequencesResponseB\x1dZ\x1bgo.viam.com/api/app/data/v1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16app/data/v1/data.proto\x12\x10viam.app.data.v1\x1a\x19google/protobuf/any.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\xa1\x01\n\x0bDataRequest\x120\n\x06filter\x18\x01 \x01(\x0b2\x18.viam.app.data.v1.FilterR\x06filter\x12\x14\n\x05limit\x18\x02 \x01(\x04R\x05limit\x12\x12\n\x04last\x18\x03 \x01(\tR\x04last\x126\n\nsort_order\x18\x04 \x01(\x0e2\x17.viam.app.data.v1.OrderR\tsortOrder"\xaa\x04\n\x06Filter\x12%\n\x0ecomponent_name\x18\x01 \x01(\tR\rcomponentName\x12%\n\x0ecomponent_type\x18\x02 \x01(\tR\rcomponentType\x12\x16\n\x06method\x18\x04 \x01(\tR\x06method\x12\x1d\n\nrobot_name\x18\x06 \x01(\tR\trobotName\x12\x19\n\x08robot_id\x18\x07 \x01(\tR\x07robotId\x12\x1b\n\tpart_name\x18\x08 \x01(\tR\x08partName\x12\x17\n\x07part_id\x18\t \x01(\tR\x06partId\x12!\n\x0clocation_ids\x18\n \x03(\tR\x0blocationIds\x12)\n\x10organization_ids\x18\x0b \x03(\tR\x0forganizationIds\x12\x1b\n\tmime_type\x18\x0c \x03(\tR\x08mimeType\x12=\n\x08interval\x18\r \x01(\x0b2!.viam.app.data.v1.CaptureIntervalR\x08interval\x12=\n\x0btags_filter\x18\x0e \x01(\x0b2\x1c.viam.app.data.v1.TagsFilterR\ntagsFilter\x12\x1f\n\x0bbbox_labels\x18\x0f \x03(\tR\nbboxLabels\x12\x1d\n\ndataset_id\x18\x10 \x01(\tR\tdatasetIdJ\x04\x08\x03\x10\x04J\x04\x08\x05\x10\x06R\x0fcomponent_modelR\x04tags"V\n\nTagsFilter\x124\n\x04type\x18\x01 \x01(\x0e2 .viam.app.data.v1.TagsFilterTypeR\x04type\x12\x12\n\x04tags\x18\x02 \x03(\tR\x04tags"\xc3\x04\n\x0fCaptureMetadata\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x1f\n\x0blocation_id\x18\x02 \x01(\tR\nlocationId\x12\x1d\n\nrobot_name\x18\x03 \x01(\tR\trobotName\x12\x19\n\x08robot_id\x18\x04 \x01(\tR\x07robotId\x12\x1b\n\tpart_name\x18\x05 \x01(\tR\x08partName\x12\x17\n\x07part_id\x18\x06 \x01(\tR\x06partId\x12%\n\x0ecomponent_type\x18\x07 \x01(\tR\rcomponentType\x12%\n\x0ecomponent_name\x18\t \x01(\tR\rcomponentName\x12\x1f\n\x0bmethod_name\x18\n \x01(\tR\nmethodName\x12d\n\x11method_parameters\x18\x0b \x03(\x0b27.viam.app.data.v1.CaptureMetadata.MethodParametersEntryR\x10methodParameters\x12\x12\n\x04tags\x18\x0c \x03(\tR\x04tags\x12\x1b\n\tmime_type\x18\r \x01(\tR\x08mimeType\x1aY\n\x15MethodParametersEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12*\n\x05value\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyR\x05value:\x028\x01J\x04\x08\x08\x10\tR\x0fcomponent_model"q\n\x0fCaptureInterval\x120\n\x05start\x18\x01 \x01(\x0b2\x1a.google.protobuf.TimestampR\x05start\x12,\n\x03end\x18\x02 \x01(\x0b2\x1a.google.protobuf.TimestampR\x03end"\xb5\x01\n\x1aTabularDataByFilterRequest\x12@\n\x0cdata_request\x18\x01 \x01(\x0b2\x1d.viam.app.data.v1.DataRequestR\x0bdataRequest\x12\x1d\n\ncount_only\x18\x02 \x01(\x08R\tcountOnly\x122\n\x15include_internal_data\x18\x03 \x01(\x08R\x13includeInternalData:\x02\x18\x01"\xe7\x01\n\x1bTabularDataByFilterResponse\x12=\n\x08metadata\x18\x01 \x03(\x0b2!.viam.app.data.v1.CaptureMetadataR\x08metadata\x121\n\x04data\x18\x02 \x03(\x0b2\x1d.viam.app.data.v1.TabularDataR\x04data\x12\x14\n\x05count\x18\x03 \x01(\x04R\x05count\x12\x12\n\x04last\x18\x04 \x01(\tR\x04last\x12(\n\x10total_size_bytes\x18\x05 \x01(\x04R\x0etotalSizeBytes:\x02\x18\x01"\xe9\x01\n\x0bTabularData\x12+\n\x04data\x18\x01 \x01(\x0b2\x17.google.protobuf.StructR\x04data\x12%\n\x0emetadata_index\x18\x02 \x01(\rR\rmetadataIndex\x12A\n\x0etime_requested\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampR\rtimeRequested\x12?\n\rtime_received\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampR\x0ctimeReceived:\x02\x18\x01"_\n\x17TabularDataBySQLRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x1b\n\tsql_query\x18\x02 \x01(\tR\x08sqlQuery"A\n\x18TabularDataBySQLResponse\x12\x19\n\x08raw_data\x18\x02 \x03(\x0cR\x07rawDataJ\x04\x08\x01\x10\x02R\x04data"\x86\x01\n\x11TabularDataSource\x12;\n\x04type\x18\x01 \x01(\x0e2\'.viam.app.data.v1.TabularDataSourceTypeR\x04type\x12$\n\x0bpipeline_id\x18\x02 \x01(\tH\x00R\npipelineId\x88\x01\x01B\x0e\n\x0c_pipeline_id"\xee\x02\n\x17TabularDataByMQLRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x1d\n\nmql_binary\x18\x03 \x03(\x0cR\tmqlBinary\x12+\n\x0fuse_recent_data\x18\x04 \x01(\x08H\x00R\ruseRecentData\x88\x01\x01\x12I\n\x0bdata_source\x18\x06 \x01(\x0b2#.viam.app.data.v1.TabularDataSourceH\x01R\ndataSource\x88\x01\x01\x12/\n\x11query_prefix_name\x18\x07 \x01(\tH\x02R\x0fqueryPrefixName\x88\x01\x01B\x12\n\x10_use_recent_dataB\x0e\n\x0c_data_sourceB\x14\n\x12_query_prefix_nameJ\x04\x08\x02\x10\x03J\x04\x08\x05\x10\x06R\tmql_queryR\x11use_data_pipeline"A\n\x18TabularDataByMQLResponse\x12\x19\n\x08raw_data\x18\x02 \x03(\x0cR\x07rawDataJ\x04\x08\x01\x10\x02R\x04data"\xd0\x02\n\x18ExportTabularDataRequest\x12\x17\n\x07part_id\x18\x01 \x01(\tR\x06partId\x12#\n\rresource_name\x18\x02 \x01(\tR\x0cresourceName\x12)\n\x10resource_subtype\x18\x03 \x01(\tR\x0fresourceSubtype\x12\x1f\n\x0bmethod_name\x18\x04 \x01(\tR\nmethodName\x12=\n\x08interval\x18\x05 \x01(\x0b2!.viam.app.data.v1.CaptureIntervalR\x08interval\x12Q\n\x15additional_parameters\x18\x06 \x01(\x0b2\x17.google.protobuf.StructH\x00R\x14additionalParameters\x88\x01\x01B\x18\n\x16_additional_parameters"\x94\x04\n\x19ExportTabularDataResponse\x12\x17\n\x07part_id\x18\x01 \x01(\tR\x06partId\x12#\n\rresource_name\x18\x02 \x01(\tR\x0cresourceName\x12)\n\x10resource_subtype\x18\x03 \x01(\tR\x0fresourceSubtype\x12\x1f\n\x0bmethod_name\x18\x04 \x01(\tR\nmethodName\x12?\n\rtime_captured\x18\x05 \x01(\x0b2\x1a.google.protobuf.TimestampR\x0ctimeCaptured\x12\'\n\x0forganization_id\x18\x06 \x01(\tR\x0eorganizationId\x12\x1f\n\x0blocation_id\x18\x07 \x01(\tR\nlocationId\x12\x1d\n\nrobot_name\x18\x08 \x01(\tR\trobotName\x12\x19\n\x08robot_id\x18\t \x01(\tR\x07robotId\x12\x1b\n\tpart_name\x18\n \x01(\tR\x08partName\x12D\n\x11method_parameters\x18\x0b \x01(\x0b2\x17.google.protobuf.StructR\x10methodParameters\x12\x12\n\x04tags\x18\x0c \x03(\tR\x04tags\x121\n\x07payload\x18\r \x01(\x0b2\x17.google.protobuf.StructR\x07payload"\x94\x02\n\x1bGetLatestTabularDataRequest\x12\x17\n\x07part_id\x18\x01 \x01(\tR\x06partId\x12#\n\rresource_name\x18\x02 \x01(\tR\x0cresourceName\x12\x1f\n\x0bmethod_name\x18\x03 \x01(\tR\nmethodName\x12)\n\x10resource_subtype\x18\x04 \x01(\tR\x0fresourceSubtype\x12Q\n\x15additional_parameters\x18\x05 \x01(\x0b2\x17.google.protobuf.StructH\x00R\x14additionalParameters\x88\x01\x01B\x18\n\x16_additional_parameters"\xcf\x01\n\x1cGetLatestTabularDataResponse\x12?\n\rtime_captured\x18\x01 \x01(\x0b2\x1a.google.protobuf.TimestampR\x0ctimeCaptured\x12;\n\x0btime_synced\x18\x02 \x01(\x0b2\x1a.google.protobuf.TimestampR\ntimeSynced\x121\n\x07payload\x18\x03 \x01(\x0b2\x17.google.protobuf.StructR\x07payload"b\n\nBinaryData\x12\x16\n\x06binary\x18\x01 \x01(\x0cR\x06binary\x12<\n\x08metadata\x18\x02 \x01(\x0b2 .viam.app.data.v1.BinaryMetadataR\x08metadata"\xd7\x01\n\x19BinaryDataByFilterRequest\x12@\n\x0cdata_request\x18\x01 \x01(\x0b2\x1d.viam.app.data.v1.DataRequestR\x0bdataRequest\x12%\n\x0einclude_binary\x18\x02 \x01(\x08R\rincludeBinary\x12\x1d\n\ncount_only\x18\x03 \x01(\x08R\tcountOnly\x122\n\x15include_internal_data\x18\x04 \x01(\x08R\x13includeInternalData"\xa2\x01\n\x1aBinaryDataByFilterResponse\x120\n\x04data\x18\x01 \x03(\x0b2\x1c.viam.app.data.v1.BinaryDataR\x04data\x12\x14\n\x05count\x18\x02 \x01(\x04R\x05count\x12\x12\n\x04last\x18\x03 \x01(\tR\x04last\x12(\n\x10total_size_bytes\x18\x04 \x01(\x04R\x0etotalSizeBytes"q\n\x08BinaryID\x12\x17\n\x07file_id\x18\x01 \x01(\tR\x06fileId\x12\'\n\x0forganization_id\x18\x02 \x01(\tR\x0eorganizationId\x12\x1f\n\x0blocation_id\x18\x03 \x01(\tR\nlocationId:\x02\x18\x01"\xb6\x01\n\x16BinaryDataByIDsRequest\x12%\n\x0einclude_binary\x18\x02 \x01(\x08R\rincludeBinary\x12=\n\nbinary_ids\x18\x03 \x03(\x0b2\x1a.viam.app.data.v1.BinaryIDB\x02\x18\x01R\tbinaryIds\x12&\n\x0fbinary_data_ids\x18\x04 \x03(\tR\rbinaryDataIdsJ\x04\x08\x01\x10\x02R\x08file_ids"a\n\x17BinaryDataByIDsResponse\x120\n\x04data\x18\x01 \x03(\x0b2\x1c.viam.app.data.v1.BinaryDataR\x04data\x12\x14\n\x05count\x18\x02 \x01(\x04R\x05count"\x8f\x02\n\x0bBoundingBox\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x14\n\x05label\x18\x02 \x01(\tR\x05label\x12(\n\x10x_min_normalized\x18\x03 \x01(\x01R\x0exMinNormalized\x12(\n\x10y_min_normalized\x18\x04 \x01(\x01R\x0eyMinNormalized\x12(\n\x10x_max_normalized\x18\x05 \x01(\x01R\x0exMaxNormalized\x12(\n\x10y_max_normalized\x18\x06 \x01(\x01R\x0eyMaxNormalized\x12#\n\nconfidence\x18\x07 \x01(\x01H\x00R\nconfidence\x88\x01\x01B\r\n\x0b_confidence"j\n\x0eClassification\x12\x0e\n\x02id\x18\x03 \x01(\tR\x02id\x12\x14\n\x05label\x18\x01 \x01(\tR\x05label\x12#\n\nconfidence\x18\x02 \x01(\x01H\x00R\nconfidence\x88\x01\x01B\r\n\x0b_confidence"\x90\x01\n\x0bAnnotations\x125\n\x06bboxes\x18\x01 \x03(\x0b2\x1d.viam.app.data.v1.BoundingBoxR\x06bboxes\x12J\n\x0fclassifications\x18\x02 \x03(\x0b2 .viam.app.data.v1.ClassificationR\x0fclassifications"\xf0\x03\n\x0eBinaryMetadata\x12\x12\n\x02id\x18\x01 \x01(\tB\x02\x18\x01R\x02id\x12L\n\x10capture_metadata\x18\x02 \x01(\x0b2!.viam.app.data.v1.CaptureMetadataR\x0fcaptureMetadata\x12A\n\x0etime_requested\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampR\rtimeRequested\x12?\n\rtime_received\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampR\x0ctimeReceived\x12\x1b\n\tfile_name\x18\x05 \x01(\tR\x08fileName\x12\x19\n\x08file_ext\x18\x06 \x01(\tR\x07fileExt\x12\x10\n\x03uri\x18\x07 \x01(\tR\x03uri\x12?\n\x0bannotations\x18\x08 \x01(\x0b2\x1d.viam.app.data.v1.AnnotationsR\x0bannotations\x12\x1f\n\x0bdataset_ids\x18\t \x03(\tR\ndatasetIds\x12$\n\x0ebinary_data_id\x18\n \x01(\tR\x0cbinaryDataId\x12&\n\x0ffile_size_bytes\x18\x0b \x01(\x04R\rfileSizeBytes"\x91\x02\n\x13DeleteTabularFilter\x12!\n\x0clocation_ids\x18\x01 \x03(\tR\x0blocationIds\x12\x19\n\x08robot_id\x18\x02 \x01(\tR\x07robotId\x12\x17\n\x07part_id\x18\x03 \x01(\tR\x06partId\x12%\n\x0ecomponent_type\x18\x04 \x01(\tR\rcomponentType\x12%\n\x0ecomponent_name\x18\x05 \x01(\tR\rcomponentName\x12\x16\n\x06method\x18\x06 \x01(\tR\x06method\x12=\n\x0btags_filter\x18\x07 \x01(\x0b2\x1c.viam.app.data.v1.TagsFilterR\ntagsFilter"\xc7\x01\n\x18DeleteTabularDataRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x123\n\x16delete_older_than_days\x18\x02 \x01(\rR\x13deleteOlderThanDays\x12B\n\x06filter\x18\x03 \x01(\x0b2%.viam.app.data.v1.DeleteTabularFilterH\x00R\x06filter\x88\x01\x01B\t\n\x07_filter"@\n\x19DeleteTabularDataResponse\x12#\n\rdeleted_count\x18\x01 \x01(\x04R\x0cdeletedCount"\x87\x01\n\x1fDeleteBinaryDataByFilterRequest\x120\n\x06filter\x18\x01 \x01(\x0b2\x18.viam.app.data.v1.FilterR\x06filter\x122\n\x15include_internal_data\x18\x02 \x01(\x08R\x13includeInternalData"U\n DeleteBinaryDataByFilterResponse\x12#\n\rdeleted_count\x18\x01 \x01(\x04R\x0cdeletedCountJ\x04\x08\x02\x10\x03R\x06result"\x95\x01\n\x1cDeleteBinaryDataByIDsRequest\x12=\n\nbinary_ids\x18\x02 \x03(\x0b2\x1a.viam.app.data.v1.BinaryIDB\x02\x18\x01R\tbinaryIds\x12&\n\x0fbinary_data_ids\x18\x03 \x03(\tR\rbinaryDataIdsJ\x04\x08\x01\x10\x02R\x08file_ids"R\n\x1dDeleteBinaryDataByIDsResponse\x12#\n\rdeleted_count\x18\x01 \x01(\x04R\x0cdeletedCountJ\x04\x08\x02\x10\x03R\x06result"\xac\x01\n\x1fAddTagsToBinaryDataByIDsRequest\x12=\n\nbinary_ids\x18\x03 \x03(\x0b2\x1a.viam.app.data.v1.BinaryIDB\x02\x18\x01R\tbinaryIds\x12&\n\x0fbinary_data_ids\x18\x04 \x03(\tR\rbinaryDataIds\x12\x12\n\x04tags\x18\x02 \x03(\tR\x04tagsJ\x04\x08\x01\x10\x02R\x08file_ids""\n AddTagsToBinaryDataByIDsResponse"n\n"AddTagsToBinaryDataByFilterRequest\x120\n\x06filter\x18\x01 \x01(\x0b2\x18.viam.app.data.v1.FilterR\x06filter\x12\x12\n\x04tags\x18\x02 \x03(\tR\x04tags:\x02\x18\x01")\n#AddTagsToBinaryDataByFilterResponse:\x02\x18\x01"\xb1\x01\n$RemoveTagsFromBinaryDataByIDsRequest\x12=\n\nbinary_ids\x18\x03 \x03(\x0b2\x1a.viam.app.data.v1.BinaryIDB\x02\x18\x01R\tbinaryIds\x12&\n\x0fbinary_data_ids\x18\x04 \x03(\tR\rbinaryDataIds\x12\x12\n\x04tags\x18\x02 \x03(\tR\x04tagsJ\x04\x08\x01\x10\x02R\x08file_ids"L\n%RemoveTagsFromBinaryDataByIDsResponse\x12#\n\rdeleted_count\x18\x01 \x01(\x04R\x0cdeletedCount"s\n\'RemoveTagsFromBinaryDataByFilterRequest\x120\n\x06filter\x18\x01 \x01(\x0b2\x18.viam.app.data.v1.FilterR\x06filter\x12\x12\n\x04tags\x18\x02 \x03(\tR\x04tags:\x02\x18\x01"S\n(RemoveTagsFromBinaryDataByFilterResponse\x12#\n\rdeleted_count\x18\x01 \x01(\x04R\x0cdeletedCount:\x02\x18\x01"K\n\x13TagsByFilterRequest\x120\n\x06filter\x18\x01 \x01(\x0b2\x18.viam.app.data.v1.FilterR\x06filter:\x02\x18\x01".\n\x14TagsByFilterResponse\x12\x12\n\x04tags\x18\x01 \x03(\tR\x04tags:\x02\x18\x01"\x86\x03\n AddBoundingBoxToImageByIDRequest\x12;\n\tbinary_id\x18\x07 \x01(\x0b2\x1a.viam.app.data.v1.BinaryIDB\x02\x18\x01R\x08binaryId\x12$\n\x0ebinary_data_id\x18\x08 \x01(\tR\x0cbinaryDataId\x12\x14\n\x05label\x18\x02 \x01(\tR\x05label\x12(\n\x10x_min_normalized\x18\x03 \x01(\x01R\x0exMinNormalized\x12(\n\x10y_min_normalized\x18\x04 \x01(\x01R\x0eyMinNormalized\x12(\n\x10x_max_normalized\x18\x05 \x01(\x01R\x0exMaxNormalized\x12(\n\x10y_max_normalized\x18\x06 \x01(\x01R\x0eyMaxNormalized\x12#\n\nconfidence\x18\t \x01(\x01H\x00R\nconfidence\x88\x01\x01B\r\n\x0b_confidenceJ\x04\x08\x01\x10\x02R\x07file_id"<\n!AddBoundingBoxToImageByIDResponse\x12\x17\n\x07bbox_id\x18\x01 \x01(\tR\x06bboxId"\xb2\x01\n%RemoveBoundingBoxFromImageByIDRequest\x12;\n\tbinary_id\x18\x03 \x01(\x0b2\x1a.viam.app.data.v1.BinaryIDB\x02\x18\x01R\x08binaryId\x12$\n\x0ebinary_data_id\x18\x04 \x01(\tR\x0cbinaryDataId\x12\x17\n\x07bbox_id\x18\x02 \x01(\tR\x06bboxIdJ\x04\x08\x01\x10\x02R\x07file_id"(\n&RemoveBoundingBoxFromImageByIDResponse"\xff\x03\n\x18UpdateBoundingBoxRequest\x12;\n\tbinary_id\x18\x01 \x01(\x0b2\x1a.viam.app.data.v1.BinaryIDB\x02\x18\x01R\x08binaryId\x12$\n\x0ebinary_data_id\x18\x08 \x01(\tR\x0cbinaryDataId\x12\x17\n\x07bbox_id\x18\x02 \x01(\tR\x06bboxId\x12\x19\n\x05label\x18\x03 \x01(\tH\x00R\x05label\x88\x01\x01\x12-\n\x10x_min_normalized\x18\x04 \x01(\x01H\x01R\x0exMinNormalized\x88\x01\x01\x12-\n\x10y_min_normalized\x18\x05 \x01(\x01H\x02R\x0eyMinNormalized\x88\x01\x01\x12-\n\x10x_max_normalized\x18\x06 \x01(\x01H\x03R\x0exMaxNormalized\x88\x01\x01\x12-\n\x10y_max_normalized\x18\x07 \x01(\x01H\x04R\x0eyMaxNormalized\x88\x01\x01\x12#\n\nconfidence\x18\t \x01(\x01H\x05R\nconfidence\x88\x01\x01B\x08\n\x06_labelB\x13\n\x11_x_min_normalizedB\x13\n\x11_y_min_normalizedB\x13\n\x11_x_max_normalizedB\x13\n\x11_y_max_normalizedB\r\n\x0b_confidence"\x1b\n\x19UpdateBoundingBoxResponse"X\n BoundingBoxLabelsByFilterRequest\x120\n\x06filter\x18\x01 \x01(\x0b2\x18.viam.app.data.v1.FilterR\x06filter:\x02\x18\x01"?\n!BoundingBoxLabelsByFilterResponse\x12\x16\n\x06labels\x18\x01 \x03(\tR\x06labels:\x02\x18\x01"c\n\x1cConfigureDatabaseUserRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x1a\n\x08password\x18\x02 \x01(\tR\x08password"\x1f\n\x1dConfigureDatabaseUserResponse"G\n\x1cGetDatabaseConnectionRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId"\x88\x01\n\x1dGetDatabaseConnectionResponse\x12\x1a\n\x08hostname\x18\x01 \x01(\tR\x08hostname\x12\x1f\n\x0bmongodb_uri\x18\x02 \x01(\tR\nmongodbUri\x12*\n\x11has_database_user\x18\x03 \x01(\x08R\x0fhasDatabaseUser"\xaa\x01\n"AddBinaryDataToDatasetByIDsRequest\x12=\n\nbinary_ids\x18\x01 \x03(\x0b2\x1a.viam.app.data.v1.BinaryIDB\x02\x18\x01R\tbinaryIds\x12&\n\x0fbinary_data_ids\x18\x03 \x03(\tR\rbinaryDataIds\x12\x1d\n\ndataset_id\x18\x02 \x01(\tR\tdatasetId"%\n#AddBinaryDataToDatasetByIDsResponse"\xaf\x01\n\'RemoveBinaryDataFromDatasetByIDsRequest\x12=\n\nbinary_ids\x18\x01 \x03(\x0b2\x1a.viam.app.data.v1.BinaryIDB\x02\x18\x01R\tbinaryIds\x12&\n\x0fbinary_data_ids\x18\x03 \x03(\tR\rbinaryDataIds\x12\x1d\n\ndataset_id\x18\x02 \x01(\tR\tdatasetId"*\n(RemoveBinaryDataFromDatasetByIDsResponse"`\n\x1cAddSequencesToDatasetRequest\x12\x1d\n\ndataset_id\x18\x01 \x01(\tR\tdatasetId\x12!\n\x0csequence_ids\x18\x02 \x03(\tR\x0bsequenceIds"\x1f\n\x1dAddSequencesToDatasetResponse"e\n!RemoveSequencesFromDatasetRequest\x12\x1d\n\ndataset_id\x18\x01 \x01(\tR\tdatasetId\x12!\n\x0csequence_ids\x18\x02 \x03(\tR\x0bsequenceIds"$\n"RemoveSequencesFromDatasetResponse"\xe8\x01\n\x12CreateIndexRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12N\n\x0fcollection_type\x18\x02 \x01(\x0e2%.viam.app.data.v1.IndexableCollectionR\x0ecollectionType\x12(\n\rpipeline_name\x18\x03 \x01(\tH\x00R\x0cpipelineName\x88\x01\x01\x12\x1d\n\nindex_spec\x18\x04 \x03(\x0cR\tindexSpecB\x10\n\x0e_pipeline_name"\x15\n\x13CreateIndexResponse"\xe8\x01\n\x12DeleteIndexRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12N\n\x0fcollection_type\x18\x02 \x01(\x0e2%.viam.app.data.v1.IndexableCollectionR\x0ecollectionType\x12(\n\rpipeline_name\x18\x03 \x01(\tH\x00R\x0cpipelineName\x88\x01\x01\x12\x1d\n\nindex_name\x18\x04 \x01(\tR\tindexNameB\x10\n\x0e_pipeline_name"\x15\n\x13DeleteIndexResponse"\xc9\x01\n\x12ListIndexesRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12N\n\x0fcollection_type\x18\x02 \x01(\x0e2%.viam.app.data.v1.IndexableCollectionR\x0ecollectionType\x12(\n\rpipeline_name\x18\x03 \x01(\tH\x00R\x0cpipelineName\x88\x01\x01B\x10\n\x0e_pipeline_name"H\n\x13ListIndexesResponse\x121\n\x07indexes\x18\x01 \x03(\x0b2\x17.viam.app.data.v1.IndexR\x07indexes"\x90\x02\n\x05Index\x12N\n\x0fcollection_type\x18\x01 \x01(\x0e2%.viam.app.data.v1.IndexableCollectionR\x0ecollectionType\x12(\n\rpipeline_name\x18\x02 \x01(\tH\x00R\x0cpipelineName\x88\x01\x01\x12\x1d\n\nindex_name\x18\x03 \x01(\tR\tindexName\x12\x1d\n\nindex_spec\x18\x04 \x03(\x0cR\tindexSpec\x12=\n\ncreated_by\x18\x05 \x01(\x0e2\x1e.viam.app.data.v1.IndexCreatorR\tcreatedByB\x10\n\x0e_pipeline_name"u\n\x17CreateSavedQueryRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x1d\n\nmql_binary\x18\x03 \x03(\x0cR\tmqlBinary"*\n\x18CreateSavedQueryResponse\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"\xe9\x01\n\x05Query\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\'\n\x0forganization_id\x18\x02 \x01(\tR\x0eorganizationId\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x1d\n\nmql_binary\x18\x04 \x03(\x0cR\tmqlBinary\x129\n\ncreated_on\x18\x05 \x01(\x0b2\x1a.google.protobuf.TimestampR\tcreatedOn\x129\n\nupdated_at\x18\x06 \x01(\x0b2\x1a.google.protobuf.TimestampR\tupdatedAt")\n\x17DeleteSavedQueryRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"\x1a\n\x18DeleteSavedQueryResponse"&\n\x14GetSavedQueryRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"Q\n\x15GetSavedQueryResponse\x128\n\x0bsaved_query\x18\x01 \x01(\x0b2\x17.viam.app.data.v1.QueryR\nsavedQuery"\\\n\x17UpdateSavedQueryRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x1d\n\nmql_binary\x18\x03 \x03(\x0cR\tmqlBinary"\x1a\n\x18UpdateSavedQueryResponse"X\n\x17ListSavedQueriesRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x14\n\x05limit\x18\x02 \x01(\x03R\x05limit"M\n\x18ListSavedQueriesResponse\x121\n\x07queries\x18\x01 \x03(\x0b2\x17.viam.app.data.v1.QueryR\x07queries"\x93\x01\n CreateBinaryDataSignedURLRequest\x12$\n\x0ebinary_data_id\x18\x01 \x01(\tR\x0cbinaryDataId\x122\n\x12expiration_minutes\x18\x02 \x01(\rH\x00R\x11expirationMinutes\x88\x01\x01B\x15\n\x13_expiration_minutes"}\n!CreateBinaryDataSignedURLResponse\x12\x1d\n\nsigned_url\x18\x01 \x01(\tR\tsignedUrl\x129\n\nexpires_at\x18\x02 \x01(\x0b2\x1a.google.protobuf.TimestampR\texpiresAt"m\n\x16SequenceResourceFilter\x12#\n\rresource_name\x18\x02 \x01(\tR\x0cresourceName\x12\x1f\n\x0bmethod_name\x18\x03 \x01(\tR\nmethodNameJ\x04\x08\x01\x10\x02R\x07part_id"\xc0\x03\n\x08Sequence\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x17\n\x07part_id\x18\t \x01(\tR\x06partId\x12#\n\rsequence_tags\x18\x03 \x03(\tR\x0csequenceTags\x129\n\ncreated_at\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n\nupdated_at\x18\x05 \x01(\x0b2\x1a.google.protobuf.TimestampR\tupdatedAt\x129\n\nstart_time\x18\x06 \x01(\x0b2\x1a.google.protobuf.TimestampR\tstartTime\x125\n\x08end_time\x18\x07 \x01(\x0b2\x1a.google.protobuf.TimestampR\x07endTime\x12F\n\tresources\x18\x08 \x03(\x0b2(.viam.app.data.v1.SequenceResourceFilterR\tresources\x12\x1f\n\x0bdataset_ids\x18\n \x03(\tR\ndatasetIdsJ\x04\x08\x02\x10\x03R\x0forganization_id"\xa6\x02\n\x15CreateSequenceRequest\x12\x17\n\x07part_id\x18\x06 \x01(\tR\x06partId\x12F\n\tresources\x18\x02 \x03(\x0b2(.viam.app.data.v1.SequenceResourceFilterR\tresources\x12#\n\rsequence_tags\x18\x03 \x03(\tR\x0csequenceTags\x129\n\nstart_time\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampR\tstartTime\x125\n\x08end_time\x18\x05 \x01(\x0b2\x1a.google.protobuf.TimestampR\x07endTimeJ\x04\x08\x01\x10\x02R\x0forganization_id"(\n\x16CreateSequenceResponse\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"$\n\x12GetSequenceRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"M\n\x13GetSequenceResponse\x126\n\x08sequence\x18\x01 \x01(\x0b2\x1a.viam.app.data.v1.SequenceR\x08sequence"\xc1\x02\n\x15UpdateSequenceRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12F\n\tresources\x18\x02 \x03(\x0b2(.viam.app.data.v1.SequenceResourceFilterR\tresources\x12#\n\rsequence_tags\x18\x03 \x03(\tR\x0csequenceTags\x129\n\nstart_time\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampR\tstartTime\x125\n\x08end_time\x18\x05 \x01(\x0b2\x1a.google.protobuf.TimestampR\x07endTime\x129\n\nfield_mask\x18\x06 \x01(\x0b2\x1a.google.protobuf.FieldMaskR\tfieldMask"\x18\n\x16UpdateSequenceResponse"\'\n\x15DeleteSequenceRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"\x18\n\x16DeleteSequenceResponse"{\n\x14ListSequencesRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x1d\n\npage_token\x18\x02 \x01(\tR\tpageToken\x12\x1b\n\tpage_size\x18\x03 \x01(\rR\x08pageSize"y\n\x15ListSequencesResponse\x128\n\tsequences\x18\x01 \x03(\x0b2\x1a.viam.app.data.v1.SequenceR\tsequences\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken"x\n\x1bSequencesByDatasetIDRequest\x12\x1d\n\ndataset_id\x18\x01 \x01(\tR\tdatasetId\x12\x1d\n\npage_token\x18\x02 \x01(\tR\tpageToken\x12\x1b\n\tpage_size\x18\x03 \x01(\rR\x08pageSize"\x80\x01\n\x1cSequencesByDatasetIDResponse\x128\n\tsequences\x18\x01 \x03(\x0b2\x1a.viam.app.data.v1.SequenceR\tsequences\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken*I\n\x05Order\x12\x15\n\x11ORDER_UNSPECIFIED\x10\x00\x12\x14\n\x10ORDER_DESCENDING\x10\x01\x12\x13\n\x0fORDER_ASCENDING\x10\x02*\x90\x01\n\x0eTagsFilterType\x12 \n\x1cTAGS_FILTER_TYPE_UNSPECIFIED\x10\x00\x12 \n\x1cTAGS_FILTER_TYPE_MATCH_BY_OR\x10\x01\x12\x1b\n\x17TAGS_FILTER_TYPE_TAGGED\x10\x02\x12\x1d\n\x19TAGS_FILTER_TYPE_UNTAGGED\x10\x03*\xbe\x01\n\x15TabularDataSourceType\x12(\n$TABULAR_DATA_SOURCE_TYPE_UNSPECIFIED\x10\x00\x12%\n!TABULAR_DATA_SOURCE_TYPE_STANDARD\x10\x01\x12(\n$TABULAR_DATA_SOURCE_TYPE_HOT_STORAGE\x10\x02\x12*\n&TABULAR_DATA_SOURCE_TYPE_PIPELINE_SINK\x10\x03*\x87\x01\n\x13IndexableCollection\x12$\n INDEXABLE_COLLECTION_UNSPECIFIED\x10\x00\x12"\n\x1eINDEXABLE_COLLECTION_HOT_STORE\x10\x01\x12&\n"INDEXABLE_COLLECTION_PIPELINE_SINK\x10\x02*a\n\x0cIndexCreator\x12\x1d\n\x19INDEX_CREATOR_UNSPECIFIED\x10\x00\x12\x16\n\x12INDEX_CREATOR_VIAM\x10\x01\x12\x1a\n\x16INDEX_CREATOR_CUSTOMER\x10\x022\xfb$\n\x0bDataService\x12w\n\x13TabularDataByFilter\x12,.viam.app.data.v1.TabularDataByFilterRequest\x1a-.viam.app.data.v1.TabularDataByFilterResponse"\x03\x88\x02\x01\x12i\n\x10TabularDataBySQL\x12).viam.app.data.v1.TabularDataBySQLRequest\x1a*.viam.app.data.v1.TabularDataBySQLResponse\x12i\n\x10TabularDataByMQL\x12).viam.app.data.v1.TabularDataByMQLRequest\x1a*.viam.app.data.v1.TabularDataByMQLResponse\x12n\n\x11ExportTabularData\x12*.viam.app.data.v1.ExportTabularDataRequest\x1a+.viam.app.data.v1.ExportTabularDataResponse0\x01\x12u\n\x14GetLatestTabularData\x12-.viam.app.data.v1.GetLatestTabularDataRequest\x1a..viam.app.data.v1.GetLatestTabularDataResponse\x12o\n\x12BinaryDataByFilter\x12+.viam.app.data.v1.BinaryDataByFilterRequest\x1a,.viam.app.data.v1.BinaryDataByFilterResponse\x12f\n\x0fBinaryDataByIDs\x12(.viam.app.data.v1.BinaryDataByIDsRequest\x1a).viam.app.data.v1.BinaryDataByIDsResponse\x12l\n\x11DeleteTabularData\x12*.viam.app.data.v1.DeleteTabularDataRequest\x1a+.viam.app.data.v1.DeleteTabularDataResponse\x12\x81\x01\n\x18DeleteBinaryDataByFilter\x121.viam.app.data.v1.DeleteBinaryDataByFilterRequest\x1a2.viam.app.data.v1.DeleteBinaryDataByFilterResponse\x12x\n\x15DeleteBinaryDataByIDs\x12..viam.app.data.v1.DeleteBinaryDataByIDsRequest\x1a/.viam.app.data.v1.DeleteBinaryDataByIDsResponse\x12\x81\x01\n\x18AddTagsToBinaryDataByIDs\x121.viam.app.data.v1.AddTagsToBinaryDataByIDsRequest\x1a2.viam.app.data.v1.AddTagsToBinaryDataByIDsResponse\x12\x8f\x01\n\x1bAddTagsToBinaryDataByFilter\x124.viam.app.data.v1.AddTagsToBinaryDataByFilterRequest\x1a5.viam.app.data.v1.AddTagsToBinaryDataByFilterResponse"\x03\x88\x02\x01\x12\x90\x01\n\x1dRemoveTagsFromBinaryDataByIDs\x126.viam.app.data.v1.RemoveTagsFromBinaryDataByIDsRequest\x1a7.viam.app.data.v1.RemoveTagsFromBinaryDataByIDsResponse\x12\x9e\x01\n RemoveTagsFromBinaryDataByFilter\x129.viam.app.data.v1.RemoveTagsFromBinaryDataByFilterRequest\x1a:.viam.app.data.v1.RemoveTagsFromBinaryDataByFilterResponse"\x03\x88\x02\x01\x12b\n\x0cTagsByFilter\x12%.viam.app.data.v1.TagsByFilterRequest\x1a&.viam.app.data.v1.TagsByFilterResponse"\x03\x88\x02\x01\x12\x84\x01\n\x19AddBoundingBoxToImageByID\x122.viam.app.data.v1.AddBoundingBoxToImageByIDRequest\x1a3.viam.app.data.v1.AddBoundingBoxToImageByIDResponse\x12\x93\x01\n\x1eRemoveBoundingBoxFromImageByID\x127.viam.app.data.v1.RemoveBoundingBoxFromImageByIDRequest\x1a8.viam.app.data.v1.RemoveBoundingBoxFromImageByIDResponse\x12\x89\x01\n\x19BoundingBoxLabelsByFilter\x122.viam.app.data.v1.BoundingBoxLabelsByFilterRequest\x1a3.viam.app.data.v1.BoundingBoxLabelsByFilterResponse"\x03\x88\x02\x01\x12l\n\x11UpdateBoundingBox\x12*.viam.app.data.v1.UpdateBoundingBoxRequest\x1a+.viam.app.data.v1.UpdateBoundingBoxResponse\x12x\n\x15GetDatabaseConnection\x12..viam.app.data.v1.GetDatabaseConnectionRequest\x1a/.viam.app.data.v1.GetDatabaseConnectionResponse\x12x\n\x15ConfigureDatabaseUser\x12..viam.app.data.v1.ConfigureDatabaseUserRequest\x1a/.viam.app.data.v1.ConfigureDatabaseUserResponse\x12\x8a\x01\n\x1bAddBinaryDataToDatasetByIDs\x124.viam.app.data.v1.AddBinaryDataToDatasetByIDsRequest\x1a5.viam.app.data.v1.AddBinaryDataToDatasetByIDsResponse\x12\x99\x01\n RemoveBinaryDataFromDatasetByIDs\x129.viam.app.data.v1.RemoveBinaryDataFromDatasetByIDsRequest\x1a:.viam.app.data.v1.RemoveBinaryDataFromDatasetByIDsResponse\x12x\n\x15AddSequencesToDataset\x12..viam.app.data.v1.AddSequencesToDatasetRequest\x1a/.viam.app.data.v1.AddSequencesToDatasetResponse\x12\x87\x01\n\x1aRemoveSequencesFromDataset\x123.viam.app.data.v1.RemoveSequencesFromDatasetRequest\x1a4.viam.app.data.v1.RemoveSequencesFromDatasetResponse\x12Z\n\x0bCreateIndex\x12$.viam.app.data.v1.CreateIndexRequest\x1a%.viam.app.data.v1.CreateIndexResponse\x12Z\n\x0bListIndexes\x12$.viam.app.data.v1.ListIndexesRequest\x1a%.viam.app.data.v1.ListIndexesResponse\x12Z\n\x0bDeleteIndex\x12$.viam.app.data.v1.DeleteIndexRequest\x1a%.viam.app.data.v1.DeleteIndexResponse\x12i\n\x10CreateSavedQuery\x12).viam.app.data.v1.CreateSavedQueryRequest\x1a*.viam.app.data.v1.CreateSavedQueryResponse\x12i\n\x10UpdateSavedQuery\x12).viam.app.data.v1.UpdateSavedQueryRequest\x1a*.viam.app.data.v1.UpdateSavedQueryResponse\x12`\n\rGetSavedQuery\x12&.viam.app.data.v1.GetSavedQueryRequest\x1a\'.viam.app.data.v1.GetSavedQueryResponse\x12i\n\x10DeleteSavedQuery\x12).viam.app.data.v1.DeleteSavedQueryRequest\x1a*.viam.app.data.v1.DeleteSavedQueryResponse\x12i\n\x10ListSavedQueries\x12).viam.app.data.v1.ListSavedQueriesRequest\x1a*.viam.app.data.v1.ListSavedQueriesResponse\x12\x84\x01\n\x19CreateBinaryDataSignedURL\x122.viam.app.data.v1.CreateBinaryDataSignedURLRequest\x1a3.viam.app.data.v1.CreateBinaryDataSignedURLResponse\x12c\n\x0eCreateSequence\x12\'.viam.app.data.v1.CreateSequenceRequest\x1a(.viam.app.data.v1.CreateSequenceResponse\x12Z\n\x0bGetSequence\x12$.viam.app.data.v1.GetSequenceRequest\x1a%.viam.app.data.v1.GetSequenceResponse\x12c\n\x0eUpdateSequence\x12\'.viam.app.data.v1.UpdateSequenceRequest\x1a(.viam.app.data.v1.UpdateSequenceResponse\x12c\n\x0eDeleteSequence\x12\'.viam.app.data.v1.DeleteSequenceRequest\x1a(.viam.app.data.v1.DeleteSequenceResponse\x12`\n\rListSequences\x12&.viam.app.data.v1.ListSequencesRequest\x1a\'.viam.app.data.v1.ListSequencesResponse\x12u\n\x14SequencesByDatasetID\x12-.viam.app.data.v1.SequencesByDatasetIDRequest\x1a..viam.app.data.v1.SequencesByDatasetIDResponseB\x1dZ\x1bgo.viam.com/api/app/data/v1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'app.data.v1.data_pb2', _globals) @@ -73,16 +73,16 @@ _globals['_DATASERVICE'].methods_by_name['TagsByFilter']._serialized_options = b'\x88\x02\x01' _globals['_DATASERVICE'].methods_by_name['BoundingBoxLabelsByFilter']._loaded_options = None _globals['_DATASERVICE'].methods_by_name['BoundingBoxLabelsByFilter']._serialized_options = b'\x88\x02\x01' - _globals['_ORDER']._serialized_start = 14330 - _globals['_ORDER']._serialized_end = 14403 - _globals['_TAGSFILTERTYPE']._serialized_start = 14406 - _globals['_TAGSFILTERTYPE']._serialized_end = 14550 - _globals['_TABULARDATASOURCETYPE']._serialized_start = 14553 - _globals['_TABULARDATASOURCETYPE']._serialized_end = 14743 - _globals['_INDEXABLECOLLECTION']._serialized_start = 14746 - _globals['_INDEXABLECOLLECTION']._serialized_end = 14881 - _globals['_INDEXCREATOR']._serialized_start = 14883 - _globals['_INDEXCREATOR']._serialized_end = 14980 + _globals['_ORDER']._serialized_start = 14888 + _globals['_ORDER']._serialized_end = 14961 + _globals['_TAGSFILTERTYPE']._serialized_start = 14964 + _globals['_TAGSFILTERTYPE']._serialized_end = 15108 + _globals['_TABULARDATASOURCETYPE']._serialized_start = 15111 + _globals['_TABULARDATASOURCETYPE']._serialized_end = 15301 + _globals['_INDEXABLECOLLECTION']._serialized_start = 15304 + _globals['_INDEXABLECOLLECTION']._serialized_end = 15439 + _globals['_INDEXCREATOR']._serialized_start = 15441 + _globals['_INDEXCREATOR']._serialized_end = 15538 _globals['_DATAREQUEST']._serialized_start = 169 _globals['_DATAREQUEST']._serialized_end = 330 _globals['_FILTER']._serialized_start = 333 @@ -205,69 +205,81 @@ _globals['_REMOVEBINARYDATAFROMDATASETBYIDSREQUEST']._serialized_end = 10404 _globals['_REMOVEBINARYDATAFROMDATASETBYIDSRESPONSE']._serialized_start = 10406 _globals['_REMOVEBINARYDATAFROMDATASETBYIDSRESPONSE']._serialized_end = 10448 - _globals['_CREATEINDEXREQUEST']._serialized_start = 10451 - _globals['_CREATEINDEXREQUEST']._serialized_end = 10683 - _globals['_CREATEINDEXRESPONSE']._serialized_start = 10685 - _globals['_CREATEINDEXRESPONSE']._serialized_end = 10706 - _globals['_DELETEINDEXREQUEST']._serialized_start = 10709 - _globals['_DELETEINDEXREQUEST']._serialized_end = 10941 - _globals['_DELETEINDEXRESPONSE']._serialized_start = 10943 - _globals['_DELETEINDEXRESPONSE']._serialized_end = 10964 - _globals['_LISTINDEXESREQUEST']._serialized_start = 10967 - _globals['_LISTINDEXESREQUEST']._serialized_end = 11168 - _globals['_LISTINDEXESRESPONSE']._serialized_start = 11170 - _globals['_LISTINDEXESRESPONSE']._serialized_end = 11242 - _globals['_INDEX']._serialized_start = 11245 - _globals['_INDEX']._serialized_end = 11517 - _globals['_CREATESAVEDQUERYREQUEST']._serialized_start = 11519 - _globals['_CREATESAVEDQUERYREQUEST']._serialized_end = 11636 - _globals['_CREATESAVEDQUERYRESPONSE']._serialized_start = 11638 - _globals['_CREATESAVEDQUERYRESPONSE']._serialized_end = 11680 - _globals['_QUERY']._serialized_start = 11683 - _globals['_QUERY']._serialized_end = 11916 - _globals['_DELETESAVEDQUERYREQUEST']._serialized_start = 11918 - _globals['_DELETESAVEDQUERYREQUEST']._serialized_end = 11959 - _globals['_DELETESAVEDQUERYRESPONSE']._serialized_start = 11961 - _globals['_DELETESAVEDQUERYRESPONSE']._serialized_end = 11987 - _globals['_GETSAVEDQUERYREQUEST']._serialized_start = 11989 - _globals['_GETSAVEDQUERYREQUEST']._serialized_end = 12027 - _globals['_GETSAVEDQUERYRESPONSE']._serialized_start = 12029 - _globals['_GETSAVEDQUERYRESPONSE']._serialized_end = 12110 - _globals['_UPDATESAVEDQUERYREQUEST']._serialized_start = 12112 - _globals['_UPDATESAVEDQUERYREQUEST']._serialized_end = 12204 - _globals['_UPDATESAVEDQUERYRESPONSE']._serialized_start = 12206 - _globals['_UPDATESAVEDQUERYRESPONSE']._serialized_end = 12232 - _globals['_LISTSAVEDQUERIESREQUEST']._serialized_start = 12234 - _globals['_LISTSAVEDQUERIESREQUEST']._serialized_end = 12322 - _globals['_LISTSAVEDQUERIESRESPONSE']._serialized_start = 12324 - _globals['_LISTSAVEDQUERIESRESPONSE']._serialized_end = 12401 - _globals['_CREATEBINARYDATASIGNEDURLREQUEST']._serialized_start = 12404 - _globals['_CREATEBINARYDATASIGNEDURLREQUEST']._serialized_end = 12551 - _globals['_CREATEBINARYDATASIGNEDURLRESPONSE']._serialized_start = 12553 - _globals['_CREATEBINARYDATASIGNEDURLRESPONSE']._serialized_end = 12678 - _globals['_SEQUENCERESOURCEFILTER']._serialized_start = 12680 - _globals['_SEQUENCERESOURCEFILTER']._serialized_end = 12789 - _globals['_SEQUENCE']._serialized_start = 12792 - _globals['_SEQUENCE']._serialized_end = 13207 - _globals['_CREATESEQUENCEREQUEST']._serialized_start = 13210 - _globals['_CREATESEQUENCEREQUEST']._serialized_end = 13504 - _globals['_CREATESEQUENCERESPONSE']._serialized_start = 13506 - _globals['_CREATESEQUENCERESPONSE']._serialized_end = 13546 - _globals['_GETSEQUENCEREQUEST']._serialized_start = 13548 - _globals['_GETSEQUENCEREQUEST']._serialized_end = 13584 - _globals['_GETSEQUENCERESPONSE']._serialized_start = 13586 - _globals['_GETSEQUENCERESPONSE']._serialized_end = 13663 - _globals['_UPDATESEQUENCEREQUEST']._serialized_start = 13666 - _globals['_UPDATESEQUENCEREQUEST']._serialized_end = 13987 - _globals['_UPDATESEQUENCERESPONSE']._serialized_start = 13989 - _globals['_UPDATESEQUENCERESPONSE']._serialized_end = 14013 - _globals['_DELETESEQUENCEREQUEST']._serialized_start = 14015 - _globals['_DELETESEQUENCEREQUEST']._serialized_end = 14054 - _globals['_DELETESEQUENCERESPONSE']._serialized_start = 14056 - _globals['_DELETESEQUENCERESPONSE']._serialized_end = 14080 - _globals['_LISTSEQUENCESREQUEST']._serialized_start = 14082 - _globals['_LISTSEQUENCESREQUEST']._serialized_end = 14205 - _globals['_LISTSEQUENCESRESPONSE']._serialized_start = 14207 - _globals['_LISTSEQUENCESRESPONSE']._serialized_end = 14328 - _globals['_DATASERVICE']._serialized_start = 14983 - _globals['_DATASERVICE']._serialized_end = 19335 \ No newline at end of file + _globals['_ADDSEQUENCESTODATASETREQUEST']._serialized_start = 10450 + _globals['_ADDSEQUENCESTODATASETREQUEST']._serialized_end = 10546 + _globals['_ADDSEQUENCESTODATASETRESPONSE']._serialized_start = 10548 + _globals['_ADDSEQUENCESTODATASETRESPONSE']._serialized_end = 10579 + _globals['_REMOVESEQUENCESFROMDATASETREQUEST']._serialized_start = 10581 + _globals['_REMOVESEQUENCESFROMDATASETREQUEST']._serialized_end = 10682 + _globals['_REMOVESEQUENCESFROMDATASETRESPONSE']._serialized_start = 10684 + _globals['_REMOVESEQUENCESFROMDATASETRESPONSE']._serialized_end = 10720 + _globals['_CREATEINDEXREQUEST']._serialized_start = 10723 + _globals['_CREATEINDEXREQUEST']._serialized_end = 10955 + _globals['_CREATEINDEXRESPONSE']._serialized_start = 10957 + _globals['_CREATEINDEXRESPONSE']._serialized_end = 10978 + _globals['_DELETEINDEXREQUEST']._serialized_start = 10981 + _globals['_DELETEINDEXREQUEST']._serialized_end = 11213 + _globals['_DELETEINDEXRESPONSE']._serialized_start = 11215 + _globals['_DELETEINDEXRESPONSE']._serialized_end = 11236 + _globals['_LISTINDEXESREQUEST']._serialized_start = 11239 + _globals['_LISTINDEXESREQUEST']._serialized_end = 11440 + _globals['_LISTINDEXESRESPONSE']._serialized_start = 11442 + _globals['_LISTINDEXESRESPONSE']._serialized_end = 11514 + _globals['_INDEX']._serialized_start = 11517 + _globals['_INDEX']._serialized_end = 11789 + _globals['_CREATESAVEDQUERYREQUEST']._serialized_start = 11791 + _globals['_CREATESAVEDQUERYREQUEST']._serialized_end = 11908 + _globals['_CREATESAVEDQUERYRESPONSE']._serialized_start = 11910 + _globals['_CREATESAVEDQUERYRESPONSE']._serialized_end = 11952 + _globals['_QUERY']._serialized_start = 11955 + _globals['_QUERY']._serialized_end = 12188 + _globals['_DELETESAVEDQUERYREQUEST']._serialized_start = 12190 + _globals['_DELETESAVEDQUERYREQUEST']._serialized_end = 12231 + _globals['_DELETESAVEDQUERYRESPONSE']._serialized_start = 12233 + _globals['_DELETESAVEDQUERYRESPONSE']._serialized_end = 12259 + _globals['_GETSAVEDQUERYREQUEST']._serialized_start = 12261 + _globals['_GETSAVEDQUERYREQUEST']._serialized_end = 12299 + _globals['_GETSAVEDQUERYRESPONSE']._serialized_start = 12301 + _globals['_GETSAVEDQUERYRESPONSE']._serialized_end = 12382 + _globals['_UPDATESAVEDQUERYREQUEST']._serialized_start = 12384 + _globals['_UPDATESAVEDQUERYREQUEST']._serialized_end = 12476 + _globals['_UPDATESAVEDQUERYRESPONSE']._serialized_start = 12478 + _globals['_UPDATESAVEDQUERYRESPONSE']._serialized_end = 12504 + _globals['_LISTSAVEDQUERIESREQUEST']._serialized_start = 12506 + _globals['_LISTSAVEDQUERIESREQUEST']._serialized_end = 12594 + _globals['_LISTSAVEDQUERIESRESPONSE']._serialized_start = 12596 + _globals['_LISTSAVEDQUERIESRESPONSE']._serialized_end = 12673 + _globals['_CREATEBINARYDATASIGNEDURLREQUEST']._serialized_start = 12676 + _globals['_CREATEBINARYDATASIGNEDURLREQUEST']._serialized_end = 12823 + _globals['_CREATEBINARYDATASIGNEDURLRESPONSE']._serialized_start = 12825 + _globals['_CREATEBINARYDATASIGNEDURLRESPONSE']._serialized_end = 12950 + _globals['_SEQUENCERESOURCEFILTER']._serialized_start = 12952 + _globals['_SEQUENCERESOURCEFILTER']._serialized_end = 13061 + _globals['_SEQUENCE']._serialized_start = 13064 + _globals['_SEQUENCE']._serialized_end = 13512 + _globals['_CREATESEQUENCEREQUEST']._serialized_start = 13515 + _globals['_CREATESEQUENCEREQUEST']._serialized_end = 13809 + _globals['_CREATESEQUENCERESPONSE']._serialized_start = 13811 + _globals['_CREATESEQUENCERESPONSE']._serialized_end = 13851 + _globals['_GETSEQUENCEREQUEST']._serialized_start = 13853 + _globals['_GETSEQUENCEREQUEST']._serialized_end = 13889 + _globals['_GETSEQUENCERESPONSE']._serialized_start = 13891 + _globals['_GETSEQUENCERESPONSE']._serialized_end = 13968 + _globals['_UPDATESEQUENCEREQUEST']._serialized_start = 13971 + _globals['_UPDATESEQUENCEREQUEST']._serialized_end = 14292 + _globals['_UPDATESEQUENCERESPONSE']._serialized_start = 14294 + _globals['_UPDATESEQUENCERESPONSE']._serialized_end = 14318 + _globals['_DELETESEQUENCEREQUEST']._serialized_start = 14320 + _globals['_DELETESEQUENCEREQUEST']._serialized_end = 14359 + _globals['_DELETESEQUENCERESPONSE']._serialized_start = 14361 + _globals['_DELETESEQUENCERESPONSE']._serialized_end = 14385 + _globals['_LISTSEQUENCESREQUEST']._serialized_start = 14387 + _globals['_LISTSEQUENCESREQUEST']._serialized_end = 14510 + _globals['_LISTSEQUENCESRESPONSE']._serialized_start = 14512 + _globals['_LISTSEQUENCESRESPONSE']._serialized_end = 14633 + _globals['_SEQUENCESBYDATASETIDREQUEST']._serialized_start = 14635 + _globals['_SEQUENCESBYDATASETIDREQUEST']._serialized_end = 14755 + _globals['_SEQUENCESBYDATASETIDRESPONSE']._serialized_start = 14758 + _globals['_SEQUENCESBYDATASETIDRESPONSE']._serialized_end = 14886 + _globals['_DATASERVICE']._serialized_start = 15541 + _globals['_DATASERVICE']._serialized_end = 20272 \ No newline at end of file diff --git a/src/viam/gen/app/data/v1/data_pb2.pyi b/src/viam/gen/app/data/v1/data_pb2.pyi index deb5fc2d3..a72cb9255 100644 --- a/src/viam/gen/app/data/v1/data_pb2.pyi +++ b/src/viam/gen/app/data/v1/data_pb2.pyi @@ -1754,6 +1754,62 @@ class RemoveBinaryDataFromDatasetByIDsResponse(_message.Message): ... Global___RemoveBinaryDataFromDatasetByIDsResponse: _TypeAlias = RemoveBinaryDataFromDatasetByIDsResponse +@_typing.final +class AddSequencesToDatasetRequest(_message.Message): + """AddSequencesToDatasetRequest adds the sequences with the given IDs to the dataset with dataset_id.""" + DESCRIPTOR: _descriptor.Descriptor + DATASET_ID_FIELD_NUMBER: _builtins.int + SEQUENCE_IDS_FIELD_NUMBER: _builtins.int + dataset_id: _builtins.str + + @_builtins.property + def sequence_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: + ... + + def __init__(self, *, dataset_id: _builtins.str=..., sequence_ids: _abc.Iterable[_builtins.str] | None=...) -> None: + ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['dataset_id', b'dataset_id', 'sequence_ids', b'sequence_ids'] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: + ... +Global___AddSequencesToDatasetRequest: _TypeAlias = AddSequencesToDatasetRequest + +@_typing.final +class AddSequencesToDatasetResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + def __init__(self) -> None: + ... +Global___AddSequencesToDatasetResponse: _TypeAlias = AddSequencesToDatasetResponse + +@_typing.final +class RemoveSequencesFromDatasetRequest(_message.Message): + """RemoveSequencesFromDatasetRequest removes the sequences with the given IDs from the dataset with dataset_id.""" + DESCRIPTOR: _descriptor.Descriptor + DATASET_ID_FIELD_NUMBER: _builtins.int + SEQUENCE_IDS_FIELD_NUMBER: _builtins.int + dataset_id: _builtins.str + + @_builtins.property + def sequence_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: + ... + + def __init__(self, *, dataset_id: _builtins.str=..., sequence_ids: _abc.Iterable[_builtins.str] | None=...) -> None: + ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['dataset_id', b'dataset_id', 'sequence_ids', b'sequence_ids'] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: + ... +Global___RemoveSequencesFromDatasetRequest: _TypeAlias = RemoveSequencesFromDatasetRequest + +@_typing.final +class RemoveSequencesFromDatasetResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + def __init__(self) -> None: + ... +Global___RemoveSequencesFromDatasetResponse: _TypeAlias = RemoveSequencesFromDatasetResponse + @_typing.final class CreateIndexRequest(_message.Message): """CreateIndexRequest starts a custom index build""" @@ -2187,6 +2243,7 @@ class Sequence(_message.Message): START_TIME_FIELD_NUMBER: _builtins.int END_TIME_FIELD_NUMBER: _builtins.int RESOURCES_FIELD_NUMBER: _builtins.int + DATASET_IDS_FIELD_NUMBER: _builtins.int id: _builtins.str 'Metadata associated with the sequence.' part_id: _builtins.str @@ -2215,13 +2272,19 @@ class Sequence(_message.Message): def resources(self) -> _containers.RepeatedCompositeFieldContainer[Global___SequenceResourceFilter]: """Resources whose data is associated with this sequence.""" - def __init__(self, *, id: _builtins.str=..., part_id: _builtins.str=..., sequence_tags: _abc.Iterable[_builtins.str] | None=..., created_at: _timestamp_pb2.Timestamp | None=..., updated_at: _timestamp_pb2.Timestamp | None=..., start_time: _timestamp_pb2.Timestamp | None=..., end_time: _timestamp_pb2.Timestamp | None=..., resources: _abc.Iterable[Global___SequenceResourceFilter] | None=...) -> None: + @_builtins.property + def dataset_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: + """Datasets this sequence is a member of. Membership is added/removed via + AddSequencesToDataset / RemoveSequencesFromDataset. + """ + + def __init__(self, *, id: _builtins.str=..., part_id: _builtins.str=..., sequence_tags: _abc.Iterable[_builtins.str] | None=..., created_at: _timestamp_pb2.Timestamp | None=..., updated_at: _timestamp_pb2.Timestamp | None=..., start_time: _timestamp_pb2.Timestamp | None=..., end_time: _timestamp_pb2.Timestamp | None=..., resources: _abc.Iterable[Global___SequenceResourceFilter] | None=..., dataset_ids: _abc.Iterable[_builtins.str] | None=...) -> None: ... _HasFieldArgType: _TypeAlias = _typing.Literal['created_at', b'created_at', 'end_time', b'end_time', 'start_time', b'start_time', 'updated_at', b'updated_at'] def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... - _ClearFieldArgType: _TypeAlias = _typing.Literal['created_at', b'created_at', 'end_time', b'end_time', 'id', b'id', 'part_id', b'part_id', 'resources', b'resources', 'sequence_tags', b'sequence_tags', 'start_time', b'start_time', 'updated_at', b'updated_at'] + _ClearFieldArgType: _TypeAlias = _typing.Literal['created_at', b'created_at', 'dataset_ids', b'dataset_ids', 'end_time', b'end_time', 'id', b'id', 'part_id', b'part_id', 'resources', b'resources', 'sequence_tags', b'sequence_tags', 'start_time', b'start_time', 'updated_at', b'updated_at'] def ClearField(self, field_name: _ClearFieldArgType) -> None: ... @@ -2426,4 +2489,41 @@ class ListSequencesResponse(_message.Message): def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -Global___ListSequencesResponse: _TypeAlias = ListSequencesResponse \ No newline at end of file +Global___ListSequencesResponse: _TypeAlias = ListSequencesResponse + +@_typing.final +class SequencesByDatasetIDRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DATASET_ID_FIELD_NUMBER: _builtins.int + PAGE_TOKEN_FIELD_NUMBER: _builtins.int + PAGE_SIZE_FIELD_NUMBER: _builtins.int + dataset_id: _builtins.str + page_token: _builtins.str + page_size: _builtins.int + + def __init__(self, *, dataset_id: _builtins.str=..., page_token: _builtins.str=..., page_size: _builtins.int=...) -> None: + ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['dataset_id', b'dataset_id', 'page_size', b'page_size', 'page_token', b'page_token'] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: + ... +Global___SequencesByDatasetIDRequest: _TypeAlias = SequencesByDatasetIDRequest + +@_typing.final +class SequencesByDatasetIDResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SEQUENCES_FIELD_NUMBER: _builtins.int + NEXT_PAGE_TOKEN_FIELD_NUMBER: _builtins.int + next_page_token: _builtins.str + + @_builtins.property + def sequences(self) -> _containers.RepeatedCompositeFieldContainer[Global___Sequence]: + ... + + def __init__(self, *, sequences: _abc.Iterable[Global___Sequence] | None=..., next_page_token: _builtins.str=...) -> None: + ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['next_page_token', b'next_page_token', 'sequences', b'sequences'] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: + ... +Global___SequencesByDatasetIDResponse: _TypeAlias = SequencesByDatasetIDResponse \ No newline at end of file diff --git a/src/viam/proto/app/data/__init__.py b/src/viam/proto/app/data/__init__.py index c281d7235..8837d4457 100644 --- a/src/viam/proto/app/data/__init__.py +++ b/src/viam/proto/app/data/__init__.py @@ -9,6 +9,8 @@ AddBinaryDataToDatasetByIDsResponse, AddBoundingBoxToImageByIDRequest, AddBoundingBoxToImageByIDResponse, + AddSequencesToDatasetRequest, + AddSequencesToDatasetResponse, AddTagsToBinaryDataByFilterRequest, AddTagsToBinaryDataByFilterResponse, AddTagsToBinaryDataByIDsRequest, @@ -77,12 +79,16 @@ RemoveBinaryDataFromDatasetByIDsResponse, RemoveBoundingBoxFromImageByIDRequest, RemoveBoundingBoxFromImageByIDResponse, + RemoveSequencesFromDatasetRequest, + RemoveSequencesFromDatasetResponse, RemoveTagsFromBinaryDataByFilterRequest, RemoveTagsFromBinaryDataByFilterResponse, RemoveTagsFromBinaryDataByIDsRequest, RemoveTagsFromBinaryDataByIDsResponse, Sequence, SequenceResourceFilter, + SequencesByDatasetIDRequest, + SequencesByDatasetIDResponse, TabularData, TabularDataByFilterRequest, TabularDataByFilterResponse, @@ -112,6 +118,8 @@ "AddBinaryDataToDatasetByIDsResponse", "AddBoundingBoxToImageByIDRequest", "AddBoundingBoxToImageByIDResponse", + "AddSequencesToDatasetRequest", + "AddSequencesToDatasetResponse", "AddTagsToBinaryDataByFilterRequest", "AddTagsToBinaryDataByFilterResponse", "AddTagsToBinaryDataByIDsRequest", @@ -180,12 +188,16 @@ "RemoveBinaryDataFromDatasetByIDsResponse", "RemoveBoundingBoxFromImageByIDRequest", "RemoveBoundingBoxFromImageByIDResponse", + "RemoveSequencesFromDatasetRequest", + "RemoveSequencesFromDatasetResponse", "RemoveTagsFromBinaryDataByFilterRequest", "RemoveTagsFromBinaryDataByFilterResponse", "RemoveTagsFromBinaryDataByIDsRequest", "RemoveTagsFromBinaryDataByIDsResponse", "Sequence", "SequenceResourceFilter", + "SequencesByDatasetIDRequest", + "SequencesByDatasetIDResponse", "TabularData", "TabularDataByFilterRequest", "TabularDataByFilterResponse", diff --git a/src/viam/version_metadata.py b/src/viam/version_metadata.py index 7ff3b46ec..168706c53 100644 --- a/src/viam/version_metadata.py +++ b/src/viam/version_metadata.py @@ -1,4 +1,4 @@ __version__ = "0.76.0" -API_VERSION = "v0.1.553" +API_VERSION = "v0.1.556" SDK_VERSION = __version__ diff --git a/tests/mocks/services.py b/tests/mocks/services.py index 1c93ba687..0ad49b788 100644 --- a/tests/mocks/services.py +++ b/tests/mocks/services.py @@ -214,6 +214,8 @@ AddBinaryDataToDatasetByIDsResponse, AddBoundingBoxToImageByIDRequest, AddBoundingBoxToImageByIDResponse, + AddSequencesToDatasetRequest, + AddSequencesToDatasetResponse, AddTagsToBinaryDataByFilterRequest, AddTagsToBinaryDataByFilterResponse, AddTagsToBinaryDataByIDsRequest, @@ -252,10 +254,14 @@ RemoveBinaryDataFromDatasetByIDsResponse, RemoveBoundingBoxFromImageByIDRequest, RemoveBoundingBoxFromImageByIDResponse, + RemoveSequencesFromDatasetRequest, + RemoveSequencesFromDatasetResponse, RemoveTagsFromBinaryDataByFilterRequest, RemoveTagsFromBinaryDataByFilterResponse, RemoveTagsFromBinaryDataByIDsRequest, RemoveTagsFromBinaryDataByIDsResponse, + SequencesByDatasetIDRequest, + SequencesByDatasetIDResponse, TabularData, TabularDataByFilterRequest, TabularDataByFilterResponse, @@ -269,6 +275,9 @@ UpdateBoundingBoxRequest, UpdateBoundingBoxResponse, ) +from viam.proto.app.data import ( + Sequence as DataSequence, +) from viam.proto.app.datapipelines import ( CreateDataPipelineRequest, CreateDataPipelineResponse, @@ -1082,6 +1091,32 @@ async def RemoveBinaryDataFromDatasetByIDs( self.dataset_id = request.dataset_id await stream.send_message(RemoveBinaryDataFromDatasetByIDsResponse()) + async def AddSequencesToDataset(self, stream: Stream[AddSequencesToDatasetRequest, AddSequencesToDatasetResponse]) -> None: + request = await stream.recv_message() + assert request is not None + self.dataset_id = request.dataset_id + self.sequence_ids = list(request.sequence_ids) + await stream.send_message(AddSequencesToDatasetResponse()) + + async def RemoveSequencesFromDataset( + self, stream: Stream[RemoveSequencesFromDatasetRequest, RemoveSequencesFromDatasetResponse] + ) -> None: + request = await stream.recv_message() + assert request is not None + self.dataset_id = request.dataset_id + self.sequence_ids = list(request.sequence_ids) + await stream.send_message(RemoveSequencesFromDatasetResponse()) + + async def SequencesByDatasetID(self, stream: Stream[SequencesByDatasetIDRequest, SequencesByDatasetIDResponse]) -> None: + request = await stream.recv_message() + assert request is not None + self.dataset_id = request.dataset_id + self.page_token = request.page_token if request.page_token else None + self.page_size = request.page_size if request.page_size else None + # Return mock sequences - this can be enhanced based on test needs + sequences = [DataSequence(id="seq1", part_id="part1"), DataSequence(id="seq2", part_id="part2")] + await stream.send_message(SequencesByDatasetIDResponse(sequences=sequences, next_page_token="next_page")) + async def TabularDataBySQL(self, stream: Stream[TabularDataBySQLRequest, TabularDataBySQLResponse]) -> None: request = await stream.recv_message() assert request is not None diff --git a/tests/test_data_client.py b/tests/test_data_client.py index c91e02d0d..776e162d5 100644 --- a/tests/test_data_client.py +++ b/tests/test_data_client.py @@ -503,6 +503,38 @@ async def test_remove_binary_data_to_dataset_by_ids(self, service: MockData): assert service.removed_binary_data_ids == BINARY_DATA_IDS assert service.dataset_id == DATASET_ID + async def test_add_sequences_to_dataset(self, service: MockData): + async with ChannelFor([service]) as channel: + client = DataClient(channel, DATA_SERVICE_METADATA) + sequence_ids = ["seq1", "seq2", "seq3"] + await client.add_sequences_to_dataset(dataset_id=DATASET_ID, sequence_ids=sequence_ids) + assert service.dataset_id == DATASET_ID + assert service.sequence_ids == sequence_ids + + async def test_remove_sequences_from_dataset(self, service: MockData): + async with ChannelFor([service]) as channel: + client = DataClient(channel, DATA_SERVICE_METADATA) + sequence_ids = ["seq1", "seq2", "seq3"] + await client.remove_sequences_from_dataset(dataset_id=DATASET_ID, sequence_ids=sequence_ids) + assert service.dataset_id == DATASET_ID + assert service.sequence_ids == sequence_ids + + async def test_sequences_by_dataset_id(self, service: MockData): + async with ChannelFor([service]) as channel: + client = DataClient(channel, DATA_SERVICE_METADATA) + response = await client.sequences_by_dataset_id(dataset_id=DATASET_ID) + assert service.dataset_id == DATASET_ID + assert len(response.sequences) == 2 + assert response.sequences[0].id == "seq1" + assert response.sequences[1].id == "seq2" + assert response.next_page_token == "next_page" + + # Test with pagination parameters + response = await client.sequences_by_dataset_id(dataset_id=DATASET_ID, page_token="token", page_size=10) + assert service.dataset_id == DATASET_ID + assert service.page_token == "token" + assert service.page_size == 10 + async def test_create_index(self, service: MockData): async with ChannelFor([service]) as channel: client = DataClient(channel, DATA_SERVICE_METADATA)