diff --git a/docs/examples/_server.py b/docs/examples/_server.py index 19dffe53d..9773a66ea 100644 --- a/docs/examples/_server.py +++ b/docs/examples/_server.py @@ -22,13 +22,19 @@ BoundingBoxLabelsByFilterRequest, BoundingBoxLabelsByFilterResponse, CaptureMetadata, + ConfigureDatabaseUserRequest, + ConfigureDatabaseUserResponse, DataServiceBase, DeleteBinaryDataByFilterRequest, DeleteBinaryDataByFilterResponse, DeleteBinaryDataByIDsRequest, DeleteBinaryDataByIDsResponse, + DeleteTabularDataRequest, + DeleteTabularDataResponse, DeleteTabularDataByFilterRequest, DeleteTabularDataByFilterResponse, + GetDatabaseConnectionRequest, + GetDatabaseConnectionResponse, RemoveBoundingBoxFromImageByIDResponse, RemoveBoundingBoxFromImageByIDRequest, RemoveTagsFromBinaryDataByFilterRequest, @@ -54,6 +60,8 @@ AppServiceBase, GetUserIDByEmailRequest, GetUserIDByEmailResponse, + CreateKeyRequest, + CreateKeyResponse, CreateOrganizationRequest, CreateOrganizationResponse, ListOrganizationsRequest, @@ -64,6 +72,8 @@ GetOrganizationResponse, GetOrganizationNamespaceAvailabilityRequest, GetOrganizationNamespaceAvailabilityResponse, + GetRobotAPIKeysRequest, + GetRobotAPIKeysResponse, UpdateOrganizationRequest, UpdateOrganizationResponse, DeleteOrganizationRequest, @@ -227,6 +237,9 @@ async def BinaryDataByIDs(self, stream: Stream[BinaryDataByIDsRequest, BinaryDat async def DeleteTabularDataByFilter(self, stream: Stream[DeleteTabularDataByFilterRequest, DeleteTabularDataByFilterResponse]) -> None: pass + async def DeleteTabularData(self, stream: Stream[DeleteTabularDataRequest, DeleteTabularDataResponse]) -> None: + pass + async def DeleteBinaryDataByFilter(self, stream: Stream[DeleteBinaryDataByFilterRequest, DeleteBinaryDataByFilterResponse]) -> None: pass @@ -265,6 +278,12 @@ async def RemoveBoundingBoxFromImageByID( async def BoundingBoxLabelsByFilter(self, stream: Stream[BoundingBoxLabelsByFilterRequest, BoundingBoxLabelsByFilterResponse]) -> None: pass + async def GetDatabaseConnection(self, stream: Stream[GetDatabaseConnectionRequest, GetDatabaseConnectionResponse]) -> None: + pass + + async def ConfigureDatabaseUser(self, stream: Stream[ConfigureDatabaseUserRequest, ConfigureDatabaseUserResponse]) -> None: + pass + class MockDataSync(DataSyncServiceBase): async def DataCaptureUpload(self, stream: Stream[DataCaptureUploadRequest, DataCaptureUploadResponse]) -> None: @@ -496,6 +515,12 @@ async def GetModule(self, stream: Stream[GetModuleRequest, GetModuleResponse]) - async def ListModules(self, stream: Stream[ListModulesRequest, ListModulesResponse]) -> None: pass + async def CreateKey(self, stream: Stream[CreateKeyRequest, CreateKeyResponse]) -> None: + pass + + async def GetRobotAPIKeys(self, stream: Stream[GetRobotAPIKeysRequest, GetRobotAPIKeysResponse]) -> None: + pass + async def main(*, host: str = "127.0.0.1", port: int = 9092) -> None: server = Server([MockData(), MockDataSync(), MockApp()]) diff --git a/src/viam/app/app_client.py b/src/viam/app/app_client.py index 75e88d0c1..96eb4e7fc 100644 --- a/src/viam/app/app_client.py +++ b/src/viam/app/app_client.py @@ -1133,8 +1133,6 @@ async def update_module( description (str): A short description of the module that explains its purpose. models (Optional[List[viam.proto.app.Model]]): list of models that are available in the module. entrypoint (str): The executable to run to start the module program. - organization_id (Optional[str]): ID of organization of the module being updated, required if no namespace exists in the - module ID. public (bool): The visibility that should be set for the module. Defaults to False (private). Raises: @@ -1145,7 +1143,6 @@ async def update_module( """ request = UpdateModuleRequest( module_id=module_id, - organization_id=organization_id if organization_id else "", visibility=Visibility.VISIBILITY_PUBLIC if public else Visibility.VISIBILITY_PRIVATE, url=url, description=description, @@ -1186,8 +1183,7 @@ async def get_module(self, module_id: str) -> Module: Returns: viam.proto.app.Module: The module. """ - organization_id = await self._get_organization_id() - request = GetModuleRequest(module_id=module_id, organization_id=organization_id) + request = GetModuleRequest(module_id=module_id) response: GetModuleResponse = await self._app_client.GetModule(request, metadata=self._metadata) return response.module @@ -1201,3 +1197,7 @@ async def list_modules(self) -> List[Module]: request = ListModulesRequest(organization_id=organization_id) response: ListModulesResponse = await self._app_client.ListModules(request, metadata=self._metadata) return list(response.modules) + + # TODO: implement + async def create_key(self, authorizations: List[Authorization], name: str) -> Tuple[str, str]: + raise NotImplementedError() diff --git a/src/viam/app/data_client.py b/src/viam/app/data_client.py index e35dd1fe7..1966f0b1d 100644 --- a/src/viam/app/data_client.py +++ b/src/viam/app/data_client.py @@ -25,9 +25,11 @@ DeleteBinaryDataByFilterResponse, DeleteBinaryDataByIDsRequest, DeleteBinaryDataByIDsResponse, - DeleteTabularDataByFilterRequest, - DeleteTabularDataByFilterResponse, + DeleteTabularDataRequest, + DeleteTabularDataResponse, Filter, + GetDatabaseConnectionRequest, + GetDatabaseConnectionResponse, RemoveTagsFromBinaryDataByFilterRequest, RemoveTagsFromBinaryDataByFilterResponse, RemoveTagsFromBinaryDataByIDsRequest, @@ -259,18 +261,22 @@ async def binary_data_by_ids( LOGGER.error(f"Failed to write binary data to file {dest}", exc_info=e) return [DataClient.BinaryData(data.binary, data.metadata) for data in response.data] - async def delete_tabular_data_by_filter(self, filter: Optional[Filter]) -> int: - """Filter and delete tabular data. + async def delete_tabular_data(self, organization_id: str, delete_older_than_days: int) -> int: + """Delete tabular data older than a specified number of days. Args: - filter (viam.proto.app.data.Filter): Optional `Filter` specifying tabular data to delete. Passing an empty `Filter` will lead to - all data being deleted. Exercise caution when using this option. + organization_id (str): ID of organization to delete data from. + delete_older_than_days (int): Delete data that was captured up to this many days ago. For example if `delete_older_than_days` + is 10, this deletes any data that was captured up to 10 days ago. If it is 0, all existing data is deleted. """ - filter = filter if filter else Filter() - request = DeleteTabularDataByFilterRequest(filter=filter) - response: DeleteTabularDataByFilterResponse = await self._data_client.DeleteTabularDataByFilter(request, metadata=self._metadata) + request = DeleteTabularDataRequest(organization_id=organization_id, delete_older_than_days=delete_older_than_days) + response: DeleteTabularDataResponse = await self._data_client.DeleteTabularData(request, metadata=self._metadata) return response.deleted_count + async def delete_tabular_data_by_filter(self, filter: Optional[Filter]) -> int: + """Deprecated: use delete_tabular_data instead.""" + raise NotImplementedError() + async def delete_binary_data_by_filter(self, filter: Optional[Filter]) -> int: """Filter and delete binary data. @@ -405,6 +411,25 @@ async def bounding_box_labels_by_filter(self, filter: Optional[Filter] = None) - response: BoundingBoxLabelsByFilterResponse = await self._data_client.BoundingBoxLabelsByFilter(request, metadata=self._metadata) return list(response.labels) + async def get_database_connection(self, organization_id: str) -> str: + """Get a connection to access a MongoDB Atlas Data federation instance. + + Args: + organization_id (str): Organization to retrieve the connection for. + + Returns: + str: The hostname of the federated database. + """ + request = GetDatabaseConnectionRequest(organization_id=organization_id) + response: GetDatabaseConnectionResponse = await self._data_client.GetDatabaseConnection( + request, metadata=self._metadata + ) + return response.hostname + + # TODO: implement + async def configure_database_user(self) -> None: + raise NotImplementedError() + async def binary_data_capture_upload( self, binary_data: bytes, diff --git a/src/viam/gen/app/cloudslam/v1/cloud_slam_pb2.py b/src/viam/gen/app/cloudslam/v1/cloud_slam_pb2.py index 22f2518d6..0876d4d28 100644 --- a/src/viam/gen/app/cloudslam/v1/cloud_slam_pb2.py +++ b/src/viam/gen/app/cloudslam/v1/cloud_slam_pb2.py @@ -7,7 +7,7 @@ from ....common.v1 import common_pb2 as common_dot_v1_dot_common__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!app/cloudslam/v1/cloud_slam.proto\x12\x15viam.app.cloudslam.v1\x1a\x16common/v1/common.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\xc6\x02\n\x1aStartMappingSessionRequest\x128\n\x0bslam_config\x18\x01 \x01(\x0b2\x17.google.protobuf.StructR\nslamConfig\x12!\n\x0cslam_version\x18\x02 \x01(\tR\x0bslamVersion\x12\x19\n\x08map_name\x18\x03 \x01(\tR\x07mapName\x12\'\n\x0forganization_id\x18\x04 \x01(\tR\x0eorganizationId\x12\x1f\n\x0blocation_id\x18\x05 \x01(\tR\nlocationId\x12\x19\n\x08robot_id\x18\x06 \x01(\tR\x07robotId\x12.\n\x13viam_server_version\x18\x07 \x01(\tR\x11viamServerVersion\x12\x1b\n\tis_online\x18\x08 \x01(\x08R\x08isOnline"<\n\x1bStartMappingSessionResponse\x12\x1d\n\nsession_id\x18\x01 \x01(\tR\tsessionId"D\n\'GetActiveMappingSessionsForRobotRequest\x12\x19\n\x08robot_id\x18\x01 \x01(\tR\x07robotId"I\n(GetActiveMappingSessionsForRobotResponse\x12\x1d\n\nsession_id\x18\x01 \x01(\tR\tsessionId"C\n"GetMappingSessionPointCloudRequest\x12\x1d\n\nsession_id\x18\x01 \x01(\tR\tsessionId"h\n#GetMappingSessionPointCloudResponse\x12\x17\n\x07map_url\x18\x01 \x01(\tR\x06mapUrl\x12(\n\x04pose\x18\x02 \x01(\x0b2\x14.viam.common.v1.PoseR\x04pose"f\n\x1aListMappingSessionsRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x1f\n\x0blocation_id\x18\x02 \x01(\tR\nlocationId"_\n\x1bListMappingSessionsResponse\x12@\n\x07session\x18\x01 \x03(\x0b2&.viam.app.cloudslam.v1.MappingMetadataR\x07session":\n\x19StopMappingSessionRequest\x12\x1d\n\nsession_id\x18\x01 \x01(\tR\tsessionId"U\n\x1aStopMappingSessionResponse\x12\x1d\n\npackage_id\x18\x01 \x01(\tR\tpackageId\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version"E\n$GetMappingSessionMetadataByIDRequest\x12\x1d\n\nsession_id\x18\x01 \x01(\tR\tsessionId"z\n%GetMappingSessionMetadataByIDResponse\x12Q\n\x10session_metadata\x18\x01 \x01(\x0b2&.viam.app.cloudslam.v1.MappingMetadataR\x0fsessionMetadata"\xbb\x01\n\'UpdateMappingSessionMetadataByIDRequest\x12\x1d\n\nsession_id\x18\x01 \x01(\tR\tsessionId\x12\x1d\n\nend_status\x18\x02 \x01(\tR\tendStatus\x12R\n\x18time_cloud_run_job_ended\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampR\x14timeCloudRunJobEnded"*\n(UpdateMappingSessionMetadataByIDResponse"\xf6\x04\n\x0fMappingMetadata\x12\x15\n\x06org_id\x18\x01 \x01(\tR\x05orgId\x12\x1f\n\x0blocation_id\x18\x02 \x01(\tR\nlocationId\x12\x19\n\x08robot_id\x18\x03 \x01(\tR\x07robotId\x12L\n\x14time_start_submitted\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampR\x12timeStartSubmitted\x12V\n\x1atime_cloud_run_job_started\x18\x05 \x01(\x0b2\x1a.google.protobuf.TimestampR\x16timeCloudRunJobStarted\x12H\n\x12time_end_submitted\x18\x06 \x01(\x0b2\x1a.google.protobuf.TimestampR\x10timeEndSubmitted\x12R\n\x18time_cloud_run_job_ended\x18\x07 \x01(\x0b2\x1a.google.protobuf.TimestampR\x14timeCloudRunJobEnded\x12\x1d\n\nend_status\x18\x08 \x01(\tR\tendStatus\x12\'\n\x10cloud_run_job_id\x18\t \x01(\tR\rcloudRunJobId\x12.\n\x13viam_server_version\x18\n \x01(\tR\x11viamServerVersion\x12\x19\n\x08map_name\x18\x0b \x01(\tR\x07mapName\x12!\n\x0cslam_version\x18\x0c \x01(\tR\x0bslamVersion\x12\x16\n\x06config\x18\r \x01(\tR\x06config2\x89\x08\n\x10CloudSLAMService\x12|\n\x13StartMappingSession\x121.viam.app.cloudslam.v1.StartMappingSessionRequest\x1a2.viam.app.cloudslam.v1.StartMappingSessionResponse\x12\xa3\x01\n GetActiveMappingSessionsForRobot\x12>.viam.app.cloudslam.v1.GetActiveMappingSessionsForRobotRequest\x1a?.viam.app.cloudslam.v1.GetActiveMappingSessionsForRobotResponse\x12\x94\x01\n\x1bGetMappingSessionPointCloud\x129.viam.app.cloudslam.v1.GetMappingSessionPointCloudRequest\x1a:.viam.app.cloudslam.v1.GetMappingSessionPointCloudResponse\x12|\n\x13ListMappingSessions\x121.viam.app.cloudslam.v1.ListMappingSessionsRequest\x1a2.viam.app.cloudslam.v1.ListMappingSessionsResponse\x12y\n\x12StopMappingSession\x120.viam.app.cloudslam.v1.StopMappingSessionRequest\x1a1.viam.app.cloudslam.v1.StopMappingSessionResponse\x12\x9a\x01\n\x1dGetMappingSessionMetadataByID\x12;.viam.app.cloudslam.v1.GetMappingSessionMetadataByIDRequest\x1a<.viam.app.cloudslam.v1.GetMappingSessionMetadataByIDResponse\x12\xa3\x01\n UpdateMappingSessionMetadataByID\x12>.viam.app.cloudslam.v1.UpdateMappingSessionMetadataByIDRequest\x1a?.viam.app.cloudslam.v1.UpdateMappingSessionMetadataByIDResponseB"Z go.viam.com/api/app/cloudslam/v1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!app/cloudslam/v1/cloud_slam.proto\x12\x15viam.app.cloudslam.v1\x1a\x16common/v1/common.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\xc6\x02\n\x1aStartMappingSessionRequest\x128\n\x0bslam_config\x18\x01 \x01(\x0b2\x17.google.protobuf.StructR\nslamConfig\x12!\n\x0cslam_version\x18\x02 \x01(\tR\x0bslamVersion\x12\x19\n\x08map_name\x18\x03 \x01(\tR\x07mapName\x12\'\n\x0forganization_id\x18\x04 \x01(\tR\x0eorganizationId\x12\x1f\n\x0blocation_id\x18\x05 \x01(\tR\nlocationId\x12\x19\n\x08robot_id\x18\x06 \x01(\tR\x07robotId\x12.\n\x13viam_server_version\x18\x07 \x01(\tR\x11viamServerVersion\x12\x1b\n\tis_online\x18\x08 \x01(\x08R\x08isOnline"<\n\x1bStartMappingSessionResponse\x12\x1d\n\nsession_id\x18\x01 \x01(\tR\tsessionId"D\n\'GetActiveMappingSessionsForRobotRequest\x12\x19\n\x08robot_id\x18\x01 \x01(\tR\x07robotId"I\n(GetActiveMappingSessionsForRobotResponse\x12\x1d\n\nsession_id\x18\x01 \x01(\tR\tsessionId"C\n"GetMappingSessionPointCloudRequest\x12\x1d\n\nsession_id\x18\x01 \x01(\tR\tsessionId"h\n#GetMappingSessionPointCloudResponse\x12\x17\n\x07map_url\x18\x01 \x01(\tR\x06mapUrl\x12(\n\x04pose\x18\x02 \x01(\x0b2\x14.viam.common.v1.PoseR\x04pose"f\n\x1aListMappingSessionsRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x1f\n\x0blocation_id\x18\x02 \x01(\tR\nlocationId"_\n\x1bListMappingSessionsResponse\x12@\n\x07session\x18\x01 \x03(\x0b2&.viam.app.cloudslam.v1.MappingMetadataR\x07session":\n\x19StopMappingSessionRequest\x12\x1d\n\nsession_id\x18\x01 \x01(\tR\tsessionId"U\n\x1aStopMappingSessionResponse\x12\x1d\n\npackage_id\x18\x01 \x01(\tR\tpackageId\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version"E\n$GetMappingSessionMetadataByIDRequest\x12\x1d\n\nsession_id\x18\x01 \x01(\tR\tsessionId"z\n%GetMappingSessionMetadataByIDResponse\x12Q\n\x10session_metadata\x18\x01 \x01(\x0b2&.viam.app.cloudslam.v1.MappingMetadataR\x0fsessionMetadata"\xd8\x01\n\'UpdateMappingSessionMetadataByIDRequest\x12\x1d\n\nsession_id\x18\x01 \x01(\tR\tsessionId\x12\x1d\n\nend_status\x18\x02 \x01(\tR\tendStatus\x12R\n\x18time_cloud_run_job_ended\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampR\x14timeCloudRunJobEnded\x12\x1b\n\terror_msg\x18\x04 \x01(\tR\x08errorMsg"*\n(UpdateMappingSessionMetadataByIDResponse"\x93\x05\n\x0fMappingMetadata\x12\x15\n\x06org_id\x18\x01 \x01(\tR\x05orgId\x12\x1f\n\x0blocation_id\x18\x02 \x01(\tR\nlocationId\x12\x19\n\x08robot_id\x18\x03 \x01(\tR\x07robotId\x12L\n\x14time_start_submitted\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampR\x12timeStartSubmitted\x12V\n\x1atime_cloud_run_job_started\x18\x05 \x01(\x0b2\x1a.google.protobuf.TimestampR\x16timeCloudRunJobStarted\x12H\n\x12time_end_submitted\x18\x06 \x01(\x0b2\x1a.google.protobuf.TimestampR\x10timeEndSubmitted\x12R\n\x18time_cloud_run_job_ended\x18\x07 \x01(\x0b2\x1a.google.protobuf.TimestampR\x14timeCloudRunJobEnded\x12\x1d\n\nend_status\x18\x08 \x01(\tR\tendStatus\x12\'\n\x10cloud_run_job_id\x18\t \x01(\tR\rcloudRunJobId\x12.\n\x13viam_server_version\x18\n \x01(\tR\x11viamServerVersion\x12\x19\n\x08map_name\x18\x0b \x01(\tR\x07mapName\x12!\n\x0cslam_version\x18\x0c \x01(\tR\x0bslamVersion\x12\x16\n\x06config\x18\r \x01(\tR\x06config\x12\x1b\n\terror_msg\x18\x0e \x01(\tR\x08errorMsg2\x89\x08\n\x10CloudSLAMService\x12|\n\x13StartMappingSession\x121.viam.app.cloudslam.v1.StartMappingSessionRequest\x1a2.viam.app.cloudslam.v1.StartMappingSessionResponse\x12\xa3\x01\n GetActiveMappingSessionsForRobot\x12>.viam.app.cloudslam.v1.GetActiveMappingSessionsForRobotRequest\x1a?.viam.app.cloudslam.v1.GetActiveMappingSessionsForRobotResponse\x12\x94\x01\n\x1bGetMappingSessionPointCloud\x129.viam.app.cloudslam.v1.GetMappingSessionPointCloudRequest\x1a:.viam.app.cloudslam.v1.GetMappingSessionPointCloudResponse\x12|\n\x13ListMappingSessions\x121.viam.app.cloudslam.v1.ListMappingSessionsRequest\x1a2.viam.app.cloudslam.v1.ListMappingSessionsResponse\x12y\n\x12StopMappingSession\x120.viam.app.cloudslam.v1.StopMappingSessionRequest\x1a1.viam.app.cloudslam.v1.StopMappingSessionResponse\x12\x9a\x01\n\x1dGetMappingSessionMetadataByID\x12;.viam.app.cloudslam.v1.GetMappingSessionMetadataByIDRequest\x1a<.viam.app.cloudslam.v1.GetMappingSessionMetadataByIDResponse\x12\xa3\x01\n UpdateMappingSessionMetadataByID\x12>.viam.app.cloudslam.v1.UpdateMappingSessionMetadataByIDRequest\x1a?.viam.app.cloudslam.v1.UpdateMappingSessionMetadataByIDResponseB"Z go.viam.com/api/app/cloudslam/v1b\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'app.cloudslam.v1.cloud_slam_pb2', globals()) if _descriptor._USE_C_DESCRIPTORS == False: @@ -38,10 +38,10 @@ _GETMAPPINGSESSIONMETADATABYIDRESPONSE._serialized_start = 1277 _GETMAPPINGSESSIONMETADATABYIDRESPONSE._serialized_end = 1399 _UPDATEMAPPINGSESSIONMETADATABYIDREQUEST._serialized_start = 1402 - _UPDATEMAPPINGSESSIONMETADATABYIDREQUEST._serialized_end = 1589 - _UPDATEMAPPINGSESSIONMETADATABYIDRESPONSE._serialized_start = 1591 - _UPDATEMAPPINGSESSIONMETADATABYIDRESPONSE._serialized_end = 1633 - _MAPPINGMETADATA._serialized_start = 1636 - _MAPPINGMETADATA._serialized_end = 2266 - _CLOUDSLAMSERVICE._serialized_start = 2269 - _CLOUDSLAMSERVICE._serialized_end = 3302 \ No newline at end of file + _UPDATEMAPPINGSESSIONMETADATABYIDREQUEST._serialized_end = 1618 + _UPDATEMAPPINGSESSIONMETADATABYIDRESPONSE._serialized_start = 1620 + _UPDATEMAPPINGSESSIONMETADATABYIDRESPONSE._serialized_end = 1662 + _MAPPINGMETADATA._serialized_start = 1665 + _MAPPINGMETADATA._serialized_end = 2324 + _CLOUDSLAMSERVICE._serialized_start = 2327 + _CLOUDSLAMSERVICE._serialized_end = 3360 \ No newline at end of file diff --git a/src/viam/gen/app/cloudslam/v1/cloud_slam_pb2.pyi b/src/viam/gen/app/cloudslam/v1/cloud_slam_pb2.pyi index 34a47208d..0d6a5bc34 100644 --- a/src/viam/gen/app/cloudslam/v1/cloud_slam_pb2.pyi +++ b/src/viam/gen/app/cloudslam/v1/cloud_slam_pb2.pyi @@ -231,6 +231,7 @@ class UpdateMappingSessionMetadataByIDRequest(google.protobuf.message.Message): SESSION_ID_FIELD_NUMBER: builtins.int END_STATUS_FIELD_NUMBER: builtins.int TIME_CLOUD_RUN_JOB_ENDED_FIELD_NUMBER: builtins.int + ERROR_MSG_FIELD_NUMBER: builtins.int session_id: builtins.str end_status: builtins.str '“success”, “failed to start”, etc' @@ -238,14 +239,16 @@ class UpdateMappingSessionMetadataByIDRequest(google.protobuf.message.Message): @property def time_cloud_run_job_ended(self) -> google.protobuf.timestamp_pb2.Timestamp: """set at the time of job closeout and used as the package version""" + error_msg: builtins.str + 'additional details on the end status if needed, such as errors' - def __init__(self, *, session_id: builtins.str=..., end_status: builtins.str=..., time_cloud_run_job_ended: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, session_id: builtins.str=..., end_status: builtins.str=..., time_cloud_run_job_ended: google.protobuf.timestamp_pb2.Timestamp | None=..., error_msg: builtins.str=...) -> None: ... def HasField(self, field_name: typing_extensions.Literal['time_cloud_run_job_ended', b'time_cloud_run_job_ended']) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal['end_status', b'end_status', 'session_id', b'session_id', 'time_cloud_run_job_ended', b'time_cloud_run_job_ended']) -> None: + def ClearField(self, field_name: typing_extensions.Literal['end_status', b'end_status', 'error_msg', b'error_msg', 'session_id', b'session_id', 'time_cloud_run_job_ended', b'time_cloud_run_job_ended']) -> None: ... global___UpdateMappingSessionMetadataByIDRequest = UpdateMappingSessionMetadataByIDRequest @@ -273,6 +276,7 @@ class MappingMetadata(google.protobuf.message.Message): MAP_NAME_FIELD_NUMBER: builtins.int SLAM_VERSION_FIELD_NUMBER: builtins.int CONFIG_FIELD_NUMBER: builtins.int + ERROR_MSG_FIELD_NUMBER: builtins.int org_id: builtins.str 'org associated with the slam session' location_id: builtins.str @@ -307,13 +311,15 @@ class MappingMetadata(google.protobuf.message.Message): 'version tag from request, defaults to stable' config: builtins.str 'a robot config for a slam session' + error_msg: builtins.str + 'additional details on the end status if needed, such as errors' - def __init__(self, *, org_id: builtins.str=..., location_id: builtins.str=..., robot_id: builtins.str=..., time_start_submitted: google.protobuf.timestamp_pb2.Timestamp | None=..., time_cloud_run_job_started: google.protobuf.timestamp_pb2.Timestamp | None=..., time_end_submitted: google.protobuf.timestamp_pb2.Timestamp | None=..., time_cloud_run_job_ended: google.protobuf.timestamp_pb2.Timestamp | None=..., end_status: builtins.str=..., cloud_run_job_id: builtins.str=..., viam_server_version: builtins.str=..., map_name: builtins.str=..., slam_version: builtins.str=..., config: builtins.str=...) -> None: + def __init__(self, *, org_id: builtins.str=..., location_id: builtins.str=..., robot_id: builtins.str=..., time_start_submitted: google.protobuf.timestamp_pb2.Timestamp | None=..., time_cloud_run_job_started: google.protobuf.timestamp_pb2.Timestamp | None=..., time_end_submitted: google.protobuf.timestamp_pb2.Timestamp | None=..., time_cloud_run_job_ended: google.protobuf.timestamp_pb2.Timestamp | None=..., end_status: builtins.str=..., cloud_run_job_id: builtins.str=..., viam_server_version: builtins.str=..., map_name: builtins.str=..., slam_version: builtins.str=..., config: builtins.str=..., error_msg: builtins.str=...) -> None: ... def HasField(self, field_name: typing_extensions.Literal['time_cloud_run_job_ended', b'time_cloud_run_job_ended', 'time_cloud_run_job_started', b'time_cloud_run_job_started', 'time_end_submitted', b'time_end_submitted', 'time_start_submitted', b'time_start_submitted']) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal['cloud_run_job_id', b'cloud_run_job_id', 'config', b'config', 'end_status', b'end_status', 'location_id', b'location_id', 'map_name', b'map_name', 'org_id', b'org_id', 'robot_id', b'robot_id', 'slam_version', b'slam_version', 'time_cloud_run_job_ended', b'time_cloud_run_job_ended', 'time_cloud_run_job_started', b'time_cloud_run_job_started', 'time_end_submitted', b'time_end_submitted', 'time_start_submitted', b'time_start_submitted', 'viam_server_version', b'viam_server_version']) -> None: + def ClearField(self, field_name: typing_extensions.Literal['cloud_run_job_id', b'cloud_run_job_id', 'config', b'config', 'end_status', b'end_status', 'error_msg', b'error_msg', 'location_id', b'location_id', 'map_name', b'map_name', 'org_id', b'org_id', 'robot_id', b'robot_id', 'slam_version', b'slam_version', 'time_cloud_run_job_ended', b'time_cloud_run_job_ended', 'time_cloud_run_job_started', b'time_cloud_run_job_started', 'time_end_submitted', b'time_end_submitted', 'time_start_submitted', b'time_start_submitted', 'viam_server_version', b'viam_server_version']) -> None: ... global___MappingMetadata = MappingMetadata \ No newline at end of file diff --git a/src/viam/gen/app/data/v1/data_grpc.py b/src/viam/gen/app/data/v1/data_grpc.py index 7a04d2ece..f30fe62dc 100644 --- a/src/viam/gen/app/data/v1/data_grpc.py +++ b/src/viam/gen/app/data/v1/data_grpc.py @@ -27,6 +27,10 @@ async def BinaryDataByIDs(self, stream: 'grpclib.server.Stream[app.data.v1.data_ async def DeleteTabularDataByFilter(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.DeleteTabularDataByFilterRequest, app.data.v1.data_pb2.DeleteTabularDataByFilterResponse]') -> None: pass + @abc.abstractmethod + async def DeleteTabularData(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.DeleteTabularDataRequest, app.data.v1.data_pb2.DeleteTabularDataResponse]') -> None: + pass + @abc.abstractmethod async def DeleteBinaryDataByFilter(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.DeleteBinaryDataByFilterRequest, app.data.v1.data_pb2.DeleteBinaryDataByFilterResponse]') -> None: pass @@ -67,8 +71,16 @@ async def RemoveBoundingBoxFromImageByID(self, stream: 'grpclib.server.Stream[ap async def BoundingBoxLabelsByFilter(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.BoundingBoxLabelsByFilterRequest, app.data.v1.data_pb2.BoundingBoxLabelsByFilterResponse]') -> None: pass + @abc.abstractmethod + async def GetDatabaseConnection(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.GetDatabaseConnectionRequest, app.data.v1.data_pb2.GetDatabaseConnectionResponse]') -> None: + pass + + @abc.abstractmethod + async def ConfigureDatabaseUser(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.ConfigureDatabaseUserRequest, app.data.v1.data_pb2.ConfigureDatabaseUserResponse]') -> 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/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/DeleteTabularDataByFilter': grpclib.const.Handler(self.DeleteTabularDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteTabularDataByFilterRequest, app.data.v1.data_pb2.DeleteTabularDataByFilterResponse), '/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)} + 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/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/DeleteTabularDataByFilter': grpclib.const.Handler(self.DeleteTabularDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteTabularDataByFilterRequest, app.data.v1.data_pb2.DeleteTabularDataByFilterResponse), '/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/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)} class DataServiceStub: @@ -77,6 +89,7 @@ def __init__(self, channel: grpclib.client.Channel) -> None: self.BinaryDataByFilter = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/BinaryDataByFilter', app.data.v1.data_pb2.BinaryDataByFilterRequest, app.data.v1.data_pb2.BinaryDataByFilterResponse) self.BinaryDataByIDs = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/BinaryDataByIDs', app.data.v1.data_pb2.BinaryDataByIDsRequest, app.data.v1.data_pb2.BinaryDataByIDsResponse) self.DeleteTabularDataByFilter = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/DeleteTabularDataByFilter', app.data.v1.data_pb2.DeleteTabularDataByFilterRequest, app.data.v1.data_pb2.DeleteTabularDataByFilterResponse) + self.DeleteTabularData = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/DeleteTabularData', app.data.v1.data_pb2.DeleteTabularDataRequest, app.data.v1.data_pb2.DeleteTabularDataResponse) self.DeleteBinaryDataByFilter = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/DeleteBinaryDataByFilter', app.data.v1.data_pb2.DeleteBinaryDataByFilterRequest, app.data.v1.data_pb2.DeleteBinaryDataByFilterResponse) self.DeleteBinaryDataByIDs = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/DeleteBinaryDataByIDs', app.data.v1.data_pb2.DeleteBinaryDataByIDsRequest, app.data.v1.data_pb2.DeleteBinaryDataByIDsResponse) self.AddTagsToBinaryDataByIDs = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/AddTagsToBinaryDataByIDs', app.data.v1.data_pb2.AddTagsToBinaryDataByIDsRequest, app.data.v1.data_pb2.AddTagsToBinaryDataByIDsResponse) @@ -86,4 +99,6 @@ def __init__(self, channel: grpclib.client.Channel) -> None: self.TagsByFilter = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/TagsByFilter', app.data.v1.data_pb2.TagsByFilterRequest, app.data.v1.data_pb2.TagsByFilterResponse) self.AddBoundingBoxToImageByID = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/AddBoundingBoxToImageByID', app.data.v1.data_pb2.AddBoundingBoxToImageByIDRequest, app.data.v1.data_pb2.AddBoundingBoxToImageByIDResponse) self.RemoveBoundingBoxFromImageByID = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/RemoveBoundingBoxFromImageByID', app.data.v1.data_pb2.RemoveBoundingBoxFromImageByIDRequest, app.data.v1.data_pb2.RemoveBoundingBoxFromImageByIDResponse) - self.BoundingBoxLabelsByFilter = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/BoundingBoxLabelsByFilter', app.data.v1.data_pb2.BoundingBoxLabelsByFilterRequest, app.data.v1.data_pb2.BoundingBoxLabelsByFilterResponse) \ No newline at end of file + self.BoundingBoxLabelsByFilter = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/BoundingBoxLabelsByFilter', app.data.v1.data_pb2.BoundingBoxLabelsByFilterRequest, app.data.v1.data_pb2.BoundingBoxLabelsByFilterResponse) + self.GetDatabaseConnection = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/GetDatabaseConnection', app.data.v1.data_pb2.GetDatabaseConnectionRequest, app.data.v1.data_pb2.GetDatabaseConnectionResponse) + self.ConfigureDatabaseUser = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/ConfigureDatabaseUser', app.data.v1.data_pb2.ConfigureDatabaseUserRequest, app.data.v1.data_pb2.ConfigureDatabaseUserResponse) diff --git a/src/viam/gen/app/data/v1/data_pb2.py b/src/viam/gen/app/data/v1/data_pb2.py index 090327884..f8ce296cf 100644 --- a/src/viam/gen/app/data/v1/data_pb2.py +++ b/src/viam/gen/app/data/v1/data_pb2.py @@ -7,7 +7,7 @@ from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__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\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"\x8b\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\nbboxLabelsJ\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"}\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"\xe3\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"\xe5\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"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"\xa3\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"\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"m\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"\x8a\x01\n\x16BinaryDataByIDsRequest\x12%\n\x0einclude_binary\x18\x02 \x01(\x08R\rincludeBinary\x129\n\nbinary_ids\x18\x03 \x03(\x0b2\x1a.viam.app.data.v1.BinaryIDR\tbinaryIdsJ\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"\xdb\x01\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"D\n\x0bAnnotations\x125\n\x06bboxes\x18\x01 \x03(\x0b2\x1d.viam.app.data.v1.BoundingBoxR\x06bboxes"\xfd\x02\n\x0eBinaryMetadata\x12\x0e\n\x02id\x18\x01 \x01(\tR\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"T\n DeleteTabularDataByFilterRequest\x120\n\x06filter\x18\x01 \x01(\x0b2\x18.viam.app.data.v1.FilterR\x06filter"V\n!DeleteTabularDataByFilterResponse\x12#\n\rdeleted_count\x18\x01 \x01(\x04R\x0cdeletedCountJ\x04\x08\x02\x10\x03R\x06result"S\n\x1fDeleteBinaryDataByFilterRequest\x120\n\x06filter\x18\x01 \x01(\x0b2\x18.viam.app.data.v1.FilterR\x06filter"U\n DeleteBinaryDataByFilterResponse\x12#\n\rdeleted_count\x18\x01 \x01(\x04R\x0cdeletedCountJ\x04\x08\x02\x10\x03R\x06result"i\n\x1cDeleteBinaryDataByIDsRequest\x129\n\nbinary_ids\x18\x02 \x03(\x0b2\x1a.viam.app.data.v1.BinaryIDR\tbinaryIdsJ\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"\x80\x01\n\x1fAddTagsToBinaryDataByIDsRequest\x129\n\nbinary_ids\x18\x03 \x03(\x0b2\x1a.viam.app.data.v1.BinaryIDR\tbinaryIds\x12\x12\n\x04tags\x18\x02 \x03(\tR\x04tagsJ\x04\x08\x01\x10\x02R\x08file_ids""\n AddTagsToBinaryDataByIDsResponse"j\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"%\n#AddTagsToBinaryDataByFilterResponse"\x85\x01\n$RemoveTagsFromBinaryDataByIDsRequest\x129\n\nbinary_ids\x18\x03 \x03(\x0b2\x1a.viam.app.data.v1.BinaryIDR\tbinaryIds\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"o\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"O\n(RemoveTagsFromBinaryDataByFilterResponse\x12#\n\rdeleted_count\x18\x01 \x01(\x04R\x0cdeletedCount"G\n\x13TagsByFilterRequest\x120\n\x06filter\x18\x01 \x01(\x0b2\x18.viam.app.data.v1.FilterR\x06filter"*\n\x14TagsByFilterResponse\x12\x12\n\x04tags\x18\x01 \x03(\tR\x04tags"\xa8\x02\n AddBoundingBoxToImageByIDRequest\x127\n\tbinary_id\x18\x07 \x01(\x0b2\x1a.viam.app.data.v1.BinaryIDR\x08binaryId\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\x0eyMaxNormalizedJ\x04\x08\x01\x10\x02R\x07file_id"<\n!AddBoundingBoxToImageByIDResponse\x12\x17\n\x07bbox_id\x18\x01 \x01(\tR\x06bboxId"\x88\x01\n%RemoveBoundingBoxFromImageByIDRequest\x127\n\tbinary_id\x18\x03 \x01(\x0b2\x1a.viam.app.data.v1.BinaryIDR\x08binaryId\x12\x17\n\x07bbox_id\x18\x02 \x01(\tR\x06bboxIdJ\x04\x08\x01\x10\x02R\x07file_id"(\n&RemoveBoundingBoxFromImageByIDResponse"T\n BoundingBoxLabelsByFilterRequest\x120\n\x06filter\x18\x01 \x01(\x0b2\x18.viam.app.data.v1.FilterR\x06filter";\n!BoundingBoxLabelsByFilterResponse\x12\x16\n\x06labels\x18\x01 \x03(\tR\x06labels*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\x032\xa2\x0e\n\x0bDataService\x12r\n\x13TabularDataByFilter\x12,.viam.app.data.v1.TabularDataByFilterRequest\x1a-.viam.app.data.v1.TabularDataByFilterResponse\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\x12\x84\x01\n\x19DeleteTabularDataByFilter\x122.viam.app.data.v1.DeleteTabularDataByFilterRequest\x1a3.viam.app.data.v1.DeleteTabularDataByFilterResponse\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\x8a\x01\n\x1bAddTagsToBinaryDataByFilter\x124.viam.app.data.v1.AddTagsToBinaryDataByFilterRequest\x1a5.viam.app.data.v1.AddTagsToBinaryDataByFilterResponse\x12\x90\x01\n\x1dRemoveTagsFromBinaryDataByIDs\x126.viam.app.data.v1.RemoveTagsFromBinaryDataByIDsRequest\x1a7.viam.app.data.v1.RemoveTagsFromBinaryDataByIDsResponse\x12\x99\x01\n RemoveTagsFromBinaryDataByFilter\x129.viam.app.data.v1.RemoveTagsFromBinaryDataByFilterRequest\x1a:.viam.app.data.v1.RemoveTagsFromBinaryDataByFilterResponse\x12]\n\x0cTagsByFilter\x12%.viam.app.data.v1.TagsByFilterRequest\x1a&.viam.app.data.v1.TagsByFilterResponse\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\x84\x01\n\x19BoundingBoxLabelsByFilter\x122.viam.app.data.v1.BoundingBoxLabelsByFilterRequest\x1a3.viam.app.data.v1.BoundingBoxLabelsByFilterResponseB\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\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"\x8b\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\nbboxLabelsJ\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"\xb1\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"\xe3\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"\xe5\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"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"m\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"\x8a\x01\n\x16BinaryDataByIDsRequest\x12%\n\x0einclude_binary\x18\x02 \x01(\x08R\rincludeBinary\x129\n\nbinary_ids\x18\x03 \x03(\x0b2\x1a.viam.app.data.v1.BinaryIDR\tbinaryIdsJ\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"\xdb\x01\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"D\n\x0bAnnotations\x125\n\x06bboxes\x18\x01 \x03(\x0b2\x1d.viam.app.data.v1.BoundingBoxR\x06bboxes"\xfd\x02\n\x0eBinaryMetadata\x12\x0e\n\x02id\x18\x01 \x01(\tR\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"T\n DeleteTabularDataByFilterRequest\x120\n\x06filter\x18\x01 \x01(\x0b2\x18.viam.app.data.v1.FilterR\x06filter"V\n!DeleteTabularDataByFilterResponse\x12#\n\rdeleted_count\x18\x01 \x01(\x04R\x0cdeletedCountJ\x04\x08\x02\x10\x03R\x06result"x\n\x18DeleteTabularDataRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x123\n\x16delete_older_than_days\x18\x02 \x01(\rR\x13deleteOlderThanDays"@\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"i\n\x1cDeleteBinaryDataByIDsRequest\x129\n\nbinary_ids\x18\x02 \x03(\x0b2\x1a.viam.app.data.v1.BinaryIDR\tbinaryIdsJ\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"\x80\x01\n\x1fAddTagsToBinaryDataByIDsRequest\x129\n\nbinary_ids\x18\x03 \x03(\x0b2\x1a.viam.app.data.v1.BinaryIDR\tbinaryIds\x12\x12\n\x04tags\x18\x02 \x03(\tR\x04tagsJ\x04\x08\x01\x10\x02R\x08file_ids""\n AddTagsToBinaryDataByIDsResponse"j\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"%\n#AddTagsToBinaryDataByFilterResponse"\x85\x01\n$RemoveTagsFromBinaryDataByIDsRequest\x129\n\nbinary_ids\x18\x03 \x03(\x0b2\x1a.viam.app.data.v1.BinaryIDR\tbinaryIds\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"o\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"O\n(RemoveTagsFromBinaryDataByFilterResponse\x12#\n\rdeleted_count\x18\x01 \x01(\x04R\x0cdeletedCount"G\n\x13TagsByFilterRequest\x120\n\x06filter\x18\x01 \x01(\x0b2\x18.viam.app.data.v1.FilterR\x06filter"*\n\x14TagsByFilterResponse\x12\x12\n\x04tags\x18\x01 \x03(\tR\x04tags"\xa8\x02\n AddBoundingBoxToImageByIDRequest\x127\n\tbinary_id\x18\x07 \x01(\x0b2\x1a.viam.app.data.v1.BinaryIDR\x08binaryId\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\x0eyMaxNormalizedJ\x04\x08\x01\x10\x02R\x07file_id"<\n!AddBoundingBoxToImageByIDResponse\x12\x17\n\x07bbox_id\x18\x01 \x01(\tR\x06bboxId"\x88\x01\n%RemoveBoundingBoxFromImageByIDRequest\x127\n\tbinary_id\x18\x03 \x01(\x0b2\x1a.viam.app.data.v1.BinaryIDR\x08binaryId\x12\x17\n\x07bbox_id\x18\x02 \x01(\tR\x06bboxIdJ\x04\x08\x01\x10\x02R\x07file_id"(\n&RemoveBoundingBoxFromImageByIDResponse"T\n BoundingBoxLabelsByFilterRequest\x120\n\x06filter\x18\x01 \x01(\x0b2\x18.viam.app.data.v1.FilterR\x06filter";\n!BoundingBoxLabelsByFilterResponse\x12\x16\n\x06labels\x18\x01 \x03(\tR\x06labels"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";\n\x1dGetDatabaseConnectionResponse\x12\x1a\n\x08hostname\x18\x01 \x01(\tR\x08hostname*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\x032\x84\x11\n\x0bDataService\x12r\n\x13TabularDataByFilter\x12,.viam.app.data.v1.TabularDataByFilterRequest\x1a-.viam.app.data.v1.TabularDataByFilterResponse\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\x12\x84\x01\n\x19DeleteTabularDataByFilter\x122.viam.app.data.v1.DeleteTabularDataByFilterRequest\x1a3.viam.app.data.v1.DeleteTabularDataByFilterResponse\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\x8a\x01\n\x1bAddTagsToBinaryDataByFilter\x124.viam.app.data.v1.AddTagsToBinaryDataByFilterRequest\x1a5.viam.app.data.v1.AddTagsToBinaryDataByFilterResponse\x12\x90\x01\n\x1dRemoveTagsFromBinaryDataByIDs\x126.viam.app.data.v1.RemoveTagsFromBinaryDataByIDsRequest\x1a7.viam.app.data.v1.RemoveTagsFromBinaryDataByIDsResponse\x12\x99\x01\n RemoveTagsFromBinaryDataByFilter\x129.viam.app.data.v1.RemoveTagsFromBinaryDataByFilterRequest\x1a:.viam.app.data.v1.RemoveTagsFromBinaryDataByFilterResponse\x12]\n\x0cTagsByFilter\x12%.viam.app.data.v1.TagsByFilterRequest\x1a&.viam.app.data.v1.TagsByFilterResponse\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\x84\x01\n\x19BoundingBoxLabelsByFilter\x122.viam.app.data.v1.BoundingBoxLabelsByFilterRequest\x1a3.viam.app.data.v1.BoundingBoxLabelsByFilterResponse\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.ConfigureDatabaseUserResponseB\x1dZ\x1bgo.viam.com/api/app/data/v1b\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'app.data.v1.data_pb2', globals()) if _descriptor._USE_C_DESCRIPTORS == False: @@ -15,10 +15,10 @@ DESCRIPTOR._serialized_options = b'Z\x1bgo.viam.com/api/app/data/v1' _CAPTUREMETADATA_METHODPARAMETERSENTRY._options = None _CAPTUREMETADATA_METHODPARAMETERSENTRY._serialized_options = b'8\x01' - _ORDER._serialized_start = 5721 - _ORDER._serialized_end = 5794 - _TAGSFILTERTYPE._serialized_start = 5797 - _TAGSFILTERTYPE._serialized_end = 5941 + _ORDER._serialized_start = 6335 + _ORDER._serialized_end = 6408 + _TAGSFILTERTYPE._serialized_start = 6411 + _TAGSFILTERTYPE._serialized_end = 6555 _DATAREQUEST._serialized_start = 135 _DATAREQUEST._serialized_end = 296 _FILTER._serialized_start = 299 @@ -31,73 +31,85 @@ _CAPTUREMETADATA_METHODPARAMETERSENTRY._serialized_end = 1469 _CAPTUREINTERVAL._serialized_start = 1494 _CAPTUREINTERVAL._serialized_end = 1607 - _TABULARDATABYFILTERREQUEST._serialized_start = 1609 - _TABULARDATABYFILTERREQUEST._serialized_end = 1734 - _TABULARDATABYFILTERRESPONSE._serialized_start = 1737 - _TABULARDATABYFILTERRESPONSE._serialized_end = 1964 - _TABULARDATA._serialized_start = 1967 - _TABULARDATA._serialized_end = 2196 - _BINARYDATA._serialized_start = 2198 - _BINARYDATA._serialized_end = 2296 - _BINARYDATABYFILTERREQUEST._serialized_start = 2299 - _BINARYDATABYFILTERREQUEST._serialized_end = 2462 - _BINARYDATABYFILTERRESPONSE._serialized_start = 2465 - _BINARYDATABYFILTERRESPONSE._serialized_end = 2627 - _BINARYID._serialized_start = 2629 - _BINARYID._serialized_end = 2738 - _BINARYDATABYIDSREQUEST._serialized_start = 2741 - _BINARYDATABYIDSREQUEST._serialized_end = 2879 - _BINARYDATABYIDSRESPONSE._serialized_start = 2881 - _BINARYDATABYIDSRESPONSE._serialized_end = 2978 - _BOUNDINGBOX._serialized_start = 2981 - _BOUNDINGBOX._serialized_end = 3200 - _ANNOTATIONS._serialized_start = 3202 - _ANNOTATIONS._serialized_end = 3270 - _BINARYMETADATA._serialized_start = 3273 - _BINARYMETADATA._serialized_end = 3654 - _DELETETABULARDATABYFILTERREQUEST._serialized_start = 3656 - _DELETETABULARDATABYFILTERREQUEST._serialized_end = 3740 - _DELETETABULARDATABYFILTERRESPONSE._serialized_start = 3742 - _DELETETABULARDATABYFILTERRESPONSE._serialized_end = 3828 - _DELETEBINARYDATABYFILTERREQUEST._serialized_start = 3830 - _DELETEBINARYDATABYFILTERREQUEST._serialized_end = 3913 - _DELETEBINARYDATABYFILTERRESPONSE._serialized_start = 3915 - _DELETEBINARYDATABYFILTERRESPONSE._serialized_end = 4000 - _DELETEBINARYDATABYIDSREQUEST._serialized_start = 4002 - _DELETEBINARYDATABYIDSREQUEST._serialized_end = 4107 - _DELETEBINARYDATABYIDSRESPONSE._serialized_start = 4109 - _DELETEBINARYDATABYIDSRESPONSE._serialized_end = 4191 - _ADDTAGSTOBINARYDATABYIDSREQUEST._serialized_start = 4194 - _ADDTAGSTOBINARYDATABYIDSREQUEST._serialized_end = 4322 - _ADDTAGSTOBINARYDATABYIDSRESPONSE._serialized_start = 4324 - _ADDTAGSTOBINARYDATABYIDSRESPONSE._serialized_end = 4358 - _ADDTAGSTOBINARYDATABYFILTERREQUEST._serialized_start = 4360 - _ADDTAGSTOBINARYDATABYFILTERREQUEST._serialized_end = 4466 - _ADDTAGSTOBINARYDATABYFILTERRESPONSE._serialized_start = 4468 - _ADDTAGSTOBINARYDATABYFILTERRESPONSE._serialized_end = 4505 - _REMOVETAGSFROMBINARYDATABYIDSREQUEST._serialized_start = 4508 - _REMOVETAGSFROMBINARYDATABYIDSREQUEST._serialized_end = 4641 - _REMOVETAGSFROMBINARYDATABYIDSRESPONSE._serialized_start = 4643 - _REMOVETAGSFROMBINARYDATABYIDSRESPONSE._serialized_end = 4719 - _REMOVETAGSFROMBINARYDATABYFILTERREQUEST._serialized_start = 4721 - _REMOVETAGSFROMBINARYDATABYFILTERREQUEST._serialized_end = 4832 - _REMOVETAGSFROMBINARYDATABYFILTERRESPONSE._serialized_start = 4834 - _REMOVETAGSFROMBINARYDATABYFILTERRESPONSE._serialized_end = 4913 - _TAGSBYFILTERREQUEST._serialized_start = 4915 - _TAGSBYFILTERREQUEST._serialized_end = 4986 - _TAGSBYFILTERRESPONSE._serialized_start = 4988 - _TAGSBYFILTERRESPONSE._serialized_end = 5030 - _ADDBOUNDINGBOXTOIMAGEBYIDREQUEST._serialized_start = 5033 - _ADDBOUNDINGBOXTOIMAGEBYIDREQUEST._serialized_end = 5329 - _ADDBOUNDINGBOXTOIMAGEBYIDRESPONSE._serialized_start = 5331 - _ADDBOUNDINGBOXTOIMAGEBYIDRESPONSE._serialized_end = 5391 - _REMOVEBOUNDINGBOXFROMIMAGEBYIDREQUEST._serialized_start = 5394 - _REMOVEBOUNDINGBOXFROMIMAGEBYIDREQUEST._serialized_end = 5530 - _REMOVEBOUNDINGBOXFROMIMAGEBYIDRESPONSE._serialized_start = 5532 - _REMOVEBOUNDINGBOXFROMIMAGEBYIDRESPONSE._serialized_end = 5572 - _BOUNDINGBOXLABELSBYFILTERREQUEST._serialized_start = 5574 - _BOUNDINGBOXLABELSBYFILTERREQUEST._serialized_end = 5658 - _BOUNDINGBOXLABELSBYFILTERRESPONSE._serialized_start = 5660 - _BOUNDINGBOXLABELSBYFILTERRESPONSE._serialized_end = 5719 - _DATASERVICE._serialized_start = 5944 - _DATASERVICE._serialized_end = 7770 \ No newline at end of file + _TABULARDATABYFILTERREQUEST._serialized_start = 1610 + _TABULARDATABYFILTERREQUEST._serialized_end = 1787 + _TABULARDATABYFILTERRESPONSE._serialized_start = 1790 + _TABULARDATABYFILTERRESPONSE._serialized_end = 2017 + _TABULARDATA._serialized_start = 2020 + _TABULARDATA._serialized_end = 2249 + _BINARYDATA._serialized_start = 2251 + _BINARYDATA._serialized_end = 2349 + _BINARYDATABYFILTERREQUEST._serialized_start = 2352 + _BINARYDATABYFILTERREQUEST._serialized_end = 2567 + _BINARYDATABYFILTERRESPONSE._serialized_start = 2570 + _BINARYDATABYFILTERRESPONSE._serialized_end = 2732 + _BINARYID._serialized_start = 2734 + _BINARYID._serialized_end = 2843 + _BINARYDATABYIDSREQUEST._serialized_start = 2846 + _BINARYDATABYIDSREQUEST._serialized_end = 2984 + _BINARYDATABYIDSRESPONSE._serialized_start = 2986 + _BINARYDATABYIDSRESPONSE._serialized_end = 3083 + _BOUNDINGBOX._serialized_start = 3086 + _BOUNDINGBOX._serialized_end = 3305 + _ANNOTATIONS._serialized_start = 3307 + _ANNOTATIONS._serialized_end = 3375 + _BINARYMETADATA._serialized_start = 3378 + _BINARYMETADATA._serialized_end = 3759 + _DELETETABULARDATABYFILTERREQUEST._serialized_start = 3761 + _DELETETABULARDATABYFILTERREQUEST._serialized_end = 3845 + _DELETETABULARDATABYFILTERRESPONSE._serialized_start = 3847 + _DELETETABULARDATABYFILTERRESPONSE._serialized_end = 3933 + _DELETETABULARDATAREQUEST._serialized_start = 3935 + _DELETETABULARDATAREQUEST._serialized_end = 4055 + _DELETETABULARDATARESPONSE._serialized_start = 4057 + _DELETETABULARDATARESPONSE._serialized_end = 4121 + _DELETEBINARYDATABYFILTERREQUEST._serialized_start = 4124 + _DELETEBINARYDATABYFILTERREQUEST._serialized_end = 4259 + _DELETEBINARYDATABYFILTERRESPONSE._serialized_start = 4261 + _DELETEBINARYDATABYFILTERRESPONSE._serialized_end = 4346 + _DELETEBINARYDATABYIDSREQUEST._serialized_start = 4348 + _DELETEBINARYDATABYIDSREQUEST._serialized_end = 4453 + _DELETEBINARYDATABYIDSRESPONSE._serialized_start = 4455 + _DELETEBINARYDATABYIDSRESPONSE._serialized_end = 4537 + _ADDTAGSTOBINARYDATABYIDSREQUEST._serialized_start = 4540 + _ADDTAGSTOBINARYDATABYIDSREQUEST._serialized_end = 4668 + _ADDTAGSTOBINARYDATABYIDSRESPONSE._serialized_start = 4670 + _ADDTAGSTOBINARYDATABYIDSRESPONSE._serialized_end = 4704 + _ADDTAGSTOBINARYDATABYFILTERREQUEST._serialized_start = 4706 + _ADDTAGSTOBINARYDATABYFILTERREQUEST._serialized_end = 4812 + _ADDTAGSTOBINARYDATABYFILTERRESPONSE._serialized_start = 4814 + _ADDTAGSTOBINARYDATABYFILTERRESPONSE._serialized_end = 4851 + _REMOVETAGSFROMBINARYDATABYIDSREQUEST._serialized_start = 4854 + _REMOVETAGSFROMBINARYDATABYIDSREQUEST._serialized_end = 4987 + _REMOVETAGSFROMBINARYDATABYIDSRESPONSE._serialized_start = 4989 + _REMOVETAGSFROMBINARYDATABYIDSRESPONSE._serialized_end = 5065 + _REMOVETAGSFROMBINARYDATABYFILTERREQUEST._serialized_start = 5067 + _REMOVETAGSFROMBINARYDATABYFILTERREQUEST._serialized_end = 5178 + _REMOVETAGSFROMBINARYDATABYFILTERRESPONSE._serialized_start = 5180 + _REMOVETAGSFROMBINARYDATABYFILTERRESPONSE._serialized_end = 5259 + _TAGSBYFILTERREQUEST._serialized_start = 5261 + _TAGSBYFILTERREQUEST._serialized_end = 5332 + _TAGSBYFILTERRESPONSE._serialized_start = 5334 + _TAGSBYFILTERRESPONSE._serialized_end = 5376 + _ADDBOUNDINGBOXTOIMAGEBYIDREQUEST._serialized_start = 5379 + _ADDBOUNDINGBOXTOIMAGEBYIDREQUEST._serialized_end = 5675 + _ADDBOUNDINGBOXTOIMAGEBYIDRESPONSE._serialized_start = 5677 + _ADDBOUNDINGBOXTOIMAGEBYIDRESPONSE._serialized_end = 5737 + _REMOVEBOUNDINGBOXFROMIMAGEBYIDREQUEST._serialized_start = 5740 + _REMOVEBOUNDINGBOXFROMIMAGEBYIDREQUEST._serialized_end = 5876 + _REMOVEBOUNDINGBOXFROMIMAGEBYIDRESPONSE._serialized_start = 5878 + _REMOVEBOUNDINGBOXFROMIMAGEBYIDRESPONSE._serialized_end = 5918 + _BOUNDINGBOXLABELSBYFILTERREQUEST._serialized_start = 5920 + _BOUNDINGBOXLABELSBYFILTERREQUEST._serialized_end = 6004 + _BOUNDINGBOXLABELSBYFILTERRESPONSE._serialized_start = 6006 + _BOUNDINGBOXLABELSBYFILTERRESPONSE._serialized_end = 6065 + _CONFIGUREDATABASEUSERREQUEST._serialized_start = 6067 + _CONFIGUREDATABASEUSERREQUEST._serialized_end = 6166 + _CONFIGUREDATABASEUSERRESPONSE._serialized_start = 6168 + _CONFIGUREDATABASEUSERRESPONSE._serialized_end = 6199 + _GETDATABASECONNECTIONREQUEST._serialized_start = 6201 + _GETDATABASECONNECTIONREQUEST._serialized_end = 6272 + _GETDATABASECONNECTIONRESPONSE._serialized_start = 6274 + _GETDATABASECONNECTIONRESPONSE._serialized_end = 6333 + _DATASERVICE._serialized_start = 6558 + _DATASERVICE._serialized_end = 8738 diff --git a/src/viam/gen/app/data/v1/data_pb2.pyi b/src/viam/gen/app/data/v1/data_pb2.pyi index d67d2d34d..5a25b069e 100644 --- a/src/viam/gen/app/data/v1/data_pb2.pyi +++ b/src/viam/gen/app/data/v1/data_pb2.pyi @@ -269,19 +269,21 @@ class TabularDataByFilterRequest(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor DATA_REQUEST_FIELD_NUMBER: builtins.int COUNT_ONLY_FIELD_NUMBER: builtins.int + INCLUDE_INTERNAL_DATA_FIELD_NUMBER: builtins.int @property def data_request(self) -> global___DataRequest: ... count_only: builtins.bool + include_internal_data: builtins.bool - def __init__(self, *, data_request: global___DataRequest | None=..., count_only: builtins.bool=...) -> None: + def __init__(self, *, data_request: global___DataRequest | None=..., count_only: builtins.bool=..., include_internal_data: builtins.bool=...) -> None: ... def HasField(self, field_name: typing_extensions.Literal['data_request', b'data_request']) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal['count_only', b'count_only', 'data_request', b'data_request']) -> None: + def ClearField(self, field_name: typing_extensions.Literal['count_only', b'count_only', 'data_request', b'data_request', 'include_internal_data', b'include_internal_data']) -> None: ... global___TabularDataByFilterRequest = TabularDataByFilterRequest @@ -372,20 +374,22 @@ class BinaryDataByFilterRequest(google.protobuf.message.Message): DATA_REQUEST_FIELD_NUMBER: builtins.int INCLUDE_BINARY_FIELD_NUMBER: builtins.int COUNT_ONLY_FIELD_NUMBER: builtins.int + INCLUDE_INTERNAL_DATA_FIELD_NUMBER: builtins.int @property def data_request(self) -> global___DataRequest: ... include_binary: builtins.bool count_only: builtins.bool + include_internal_data: builtins.bool - def __init__(self, *, data_request: global___DataRequest | None=..., include_binary: builtins.bool=..., count_only: builtins.bool=...) -> None: + def __init__(self, *, data_request: global___DataRequest | None=..., include_binary: builtins.bool=..., count_only: builtins.bool=..., include_internal_data: builtins.bool=...) -> None: ... def HasField(self, field_name: typing_extensions.Literal['data_request', b'data_request']) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal['count_only', b'count_only', 'data_request', b'data_request', 'include_binary', b'include_binary']) -> None: + def ClearField(self, field_name: typing_extensions.Literal['count_only', b'count_only', 'data_request', b'data_request', 'include_binary', b'include_binary', 'include_internal_data', b'include_internal_data']) -> None: ... global___BinaryDataByFilterRequest = BinaryDataByFilterRequest @@ -586,23 +590,58 @@ class DeleteTabularDataByFilterResponse(google.protobuf.message.Message): ... global___DeleteTabularDataByFilterResponse = DeleteTabularDataByFilterResponse +@typing_extensions.final +class DeleteTabularDataRequest(google.protobuf.message.Message): + """DeleteTabularDataRequest deletes the data from the organization that is older than `delete_older_than_days`. + For example if `delete_older_than_days` is 10, this deletes any data that was captured up to 10 days ago. + If it is 0, all existing data is deleted. + """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: builtins.int + DELETE_OLDER_THAN_DAYS_FIELD_NUMBER: builtins.int + organization_id: builtins.str + delete_older_than_days: builtins.int + + def __init__(self, *, organization_id: builtins.str=..., delete_older_than_days: builtins.int=...) -> None: + ... + + def ClearField(self, field_name: typing_extensions.Literal['delete_older_than_days', b'delete_older_than_days', 'organization_id', b'organization_id']) -> None: + ... +global___DeleteTabularDataRequest = DeleteTabularDataRequest + +@typing_extensions.final +class DeleteTabularDataResponse(google.protobuf.message.Message): + """DeleteBinaryDataResponse returns the number of tabular datapoints deleted.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + DELETED_COUNT_FIELD_NUMBER: builtins.int + deleted_count: builtins.int + + def __init__(self, *, deleted_count: builtins.int=...) -> None: + ... + + def ClearField(self, field_name: typing_extensions.Literal['deleted_count', b'deleted_count']) -> None: + ... +global___DeleteTabularDataResponse = DeleteTabularDataResponse + @typing_extensions.final class DeleteBinaryDataByFilterRequest(google.protobuf.message.Message): """DeleteBinaryDataByFilterRequest deletes the data and metadata of binary data when a filter is provided""" DESCRIPTOR: google.protobuf.descriptor.Descriptor FILTER_FIELD_NUMBER: builtins.int + INCLUDE_INTERNAL_DATA_FIELD_NUMBER: builtins.int @property def filter(self) -> global___Filter: ... + include_internal_data: builtins.bool - def __init__(self, *, filter: global___Filter | None=...) -> None: + def __init__(self, *, filter: global___Filter | None=..., include_internal_data: builtins.bool=...) -> None: ... def HasField(self, field_name: typing_extensions.Literal['filter', b'filter']) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal['filter', b'filter']) -> None: + def ClearField(self, field_name: typing_extensions.Literal['filter', b'filter', 'include_internal_data', b'include_internal_data']) -> None: ... global___DeleteBinaryDataByFilterRequest = DeleteBinaryDataByFilterRequest @@ -930,4 +969,57 @@ class BoundingBoxLabelsByFilterResponse(google.protobuf.message.Message): def ClearField(self, field_name: typing_extensions.Literal['labels', b'labels']) -> None: ... -global___BoundingBoxLabelsByFilterResponse = BoundingBoxLabelsByFilterResponse \ No newline at end of file +global___BoundingBoxLabelsByFilterResponse = BoundingBoxLabelsByFilterResponse + +@typing_extensions.final +class ConfigureDatabaseUserRequest(google.protobuf.message.Message): + """ConfigureDatabaseUserRequest accepts a Viam organization ID and a password for the database user + being configured. Viam uses gRPC over TLS, so the entire request will be encrypted while in + flight, including the password. + """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: builtins.int + PASSWORD_FIELD_NUMBER: builtins.int + organization_id: builtins.str + password: builtins.str + + def __init__(self, *, organization_id: builtins.str=..., password: builtins.str=...) -> None: + ... + + def ClearField(self, field_name: typing_extensions.Literal['organization_id', b'organization_id', 'password', b'password']) -> None: + ... +global___ConfigureDatabaseUserRequest = ConfigureDatabaseUserRequest + +@typing_extensions.final +class ConfigureDatabaseUserResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__(self) -> None: + ... +global___ConfigureDatabaseUserResponse = ConfigureDatabaseUserResponse + +@typing_extensions.final +class GetDatabaseConnectionRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: builtins.int + organization_id: builtins.str + + def __init__(self, *, organization_id: builtins.str=...) -> None: + ... + + def ClearField(self, field_name: typing_extensions.Literal['organization_id', b'organization_id']) -> None: + ... +global___GetDatabaseConnectionRequest = GetDatabaseConnectionRequest + +@typing_extensions.final +class GetDatabaseConnectionResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + HOSTNAME_FIELD_NUMBER: builtins.int + hostname: builtins.str + + def __init__(self, *, hostname: builtins.str=...) -> None: + ... + + def ClearField(self, field_name: typing_extensions.Literal['hostname', b'hostname']) -> None: + ... +global___GetDatabaseConnectionResponse = GetDatabaseConnectionResponse diff --git a/src/viam/gen/app/v1/app_grpc.py b/src/viam/gen/app/v1/app_grpc.py index 072c3994d..f6a422d86 100644 --- a/src/viam/gen/app/v1/app_grpc.py +++ b/src/viam/gen/app/v1/app_grpc.py @@ -147,6 +147,10 @@ async def NewRobotPart(self, stream: 'grpclib.server.Stream[app.v1.app_pb2.NewRo async def DeleteRobotPart(self, stream: 'grpclib.server.Stream[app.v1.app_pb2.DeleteRobotPartRequest, app.v1.app_pb2.DeleteRobotPartResponse]') -> None: pass + @abc.abstractmethod + async def GetRobotAPIKeys(self, stream: 'grpclib.server.Stream[app.v1.app_pb2.GetRobotAPIKeysRequest, app.v1.app_pb2.GetRobotAPIKeysResponse]') -> None: + pass + @abc.abstractmethod async def MarkPartAsMain(self, stream: 'grpclib.server.Stream[app.v1.app_pb2.MarkPartAsMainRequest, app.v1.app_pb2.MarkPartAsMainResponse]') -> None: pass @@ -239,8 +243,12 @@ async def GetModule(self, stream: 'grpclib.server.Stream[app.v1.app_pb2.GetModul async def ListModules(self, stream: 'grpclib.server.Stream[app.v1.app_pb2.ListModulesRequest, app.v1.app_pb2.ListModulesResponse]') -> None: pass + @abc.abstractmethod + async def CreateKey(self, stream: 'grpclib.server.Stream[app.v1.app_pb2.CreateKeyRequest, app.v1.app_pb2.CreateKeyResponse]') -> None: + pass + def __mapping__(self) -> typing.Dict[str, grpclib.const.Handler]: - return {'/viam.app.v1.AppService/GetUserIDByEmail': grpclib.const.Handler(self.GetUserIDByEmail, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetUserIDByEmailRequest, app.v1.app_pb2.GetUserIDByEmailResponse), '/viam.app.v1.AppService/CreateOrganization': grpclib.const.Handler(self.CreateOrganization, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.CreateOrganizationRequest, app.v1.app_pb2.CreateOrganizationResponse), '/viam.app.v1.AppService/ListOrganizations': grpclib.const.Handler(self.ListOrganizations, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ListOrganizationsRequest, app.v1.app_pb2.ListOrganizationsResponse), '/viam.app.v1.AppService/ListOrganizationsByUser': grpclib.const.Handler(self.ListOrganizationsByUser, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ListOrganizationsByUserRequest, app.v1.app_pb2.ListOrganizationsByUserResponse), '/viam.app.v1.AppService/GetOrganization': grpclib.const.Handler(self.GetOrganization, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetOrganizationRequest, app.v1.app_pb2.GetOrganizationResponse), '/viam.app.v1.AppService/GetOrganizationNamespaceAvailability': grpclib.const.Handler(self.GetOrganizationNamespaceAvailability, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetOrganizationNamespaceAvailabilityRequest, app.v1.app_pb2.GetOrganizationNamespaceAvailabilityResponse), '/viam.app.v1.AppService/UpdateOrganization': grpclib.const.Handler(self.UpdateOrganization, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.UpdateOrganizationRequest, app.v1.app_pb2.UpdateOrganizationResponse), '/viam.app.v1.AppService/DeleteOrganization': grpclib.const.Handler(self.DeleteOrganization, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.DeleteOrganizationRequest, app.v1.app_pb2.DeleteOrganizationResponse), '/viam.app.v1.AppService/ListOrganizationMembers': grpclib.const.Handler(self.ListOrganizationMembers, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ListOrganizationMembersRequest, app.v1.app_pb2.ListOrganizationMembersResponse), '/viam.app.v1.AppService/CreateOrganizationInvite': grpclib.const.Handler(self.CreateOrganizationInvite, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.CreateOrganizationInviteRequest, app.v1.app_pb2.CreateOrganizationInviteResponse), '/viam.app.v1.AppService/UpdateOrganizationInviteAuthorizations': grpclib.const.Handler(self.UpdateOrganizationInviteAuthorizations, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.UpdateOrganizationInviteAuthorizationsRequest, app.v1.app_pb2.UpdateOrganizationInviteAuthorizationsResponse), '/viam.app.v1.AppService/DeleteOrganizationMember': grpclib.const.Handler(self.DeleteOrganizationMember, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.DeleteOrganizationMemberRequest, app.v1.app_pb2.DeleteOrganizationMemberResponse), '/viam.app.v1.AppService/DeleteOrganizationInvite': grpclib.const.Handler(self.DeleteOrganizationInvite, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.DeleteOrganizationInviteRequest, app.v1.app_pb2.DeleteOrganizationInviteResponse), '/viam.app.v1.AppService/ResendOrganizationInvite': grpclib.const.Handler(self.ResendOrganizationInvite, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ResendOrganizationInviteRequest, app.v1.app_pb2.ResendOrganizationInviteResponse), '/viam.app.v1.AppService/CreateLocation': grpclib.const.Handler(self.CreateLocation, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.CreateLocationRequest, app.v1.app_pb2.CreateLocationResponse), '/viam.app.v1.AppService/GetLocation': grpclib.const.Handler(self.GetLocation, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetLocationRequest, app.v1.app_pb2.GetLocationResponse), '/viam.app.v1.AppService/UpdateLocation': grpclib.const.Handler(self.UpdateLocation, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.UpdateLocationRequest, app.v1.app_pb2.UpdateLocationResponse), '/viam.app.v1.AppService/DeleteLocation': grpclib.const.Handler(self.DeleteLocation, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.DeleteLocationRequest, app.v1.app_pb2.DeleteLocationResponse), '/viam.app.v1.AppService/ListLocations': grpclib.const.Handler(self.ListLocations, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ListLocationsRequest, app.v1.app_pb2.ListLocationsResponse), '/viam.app.v1.AppService/ShareLocation': grpclib.const.Handler(self.ShareLocation, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ShareLocationRequest, app.v1.app_pb2.ShareLocationResponse), '/viam.app.v1.AppService/UnshareLocation': grpclib.const.Handler(self.UnshareLocation, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.UnshareLocationRequest, app.v1.app_pb2.UnshareLocationResponse), '/viam.app.v1.AppService/LocationAuth': grpclib.const.Handler(self.LocationAuth, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.LocationAuthRequest, app.v1.app_pb2.LocationAuthResponse), '/viam.app.v1.AppService/CreateLocationSecret': grpclib.const.Handler(self.CreateLocationSecret, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.CreateLocationSecretRequest, app.v1.app_pb2.CreateLocationSecretResponse), '/viam.app.v1.AppService/DeleteLocationSecret': grpclib.const.Handler(self.DeleteLocationSecret, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.DeleteLocationSecretRequest, app.v1.app_pb2.DeleteLocationSecretResponse), '/viam.app.v1.AppService/GetRobot': grpclib.const.Handler(self.GetRobot, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetRobotRequest, app.v1.app_pb2.GetRobotResponse), '/viam.app.v1.AppService/GetRoverRentalRobots': grpclib.const.Handler(self.GetRoverRentalRobots, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetRoverRentalRobotsRequest, app.v1.app_pb2.GetRoverRentalRobotsResponse), '/viam.app.v1.AppService/GetRobotParts': grpclib.const.Handler(self.GetRobotParts, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetRobotPartsRequest, app.v1.app_pb2.GetRobotPartsResponse), '/viam.app.v1.AppService/GetRobotPart': grpclib.const.Handler(self.GetRobotPart, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetRobotPartRequest, app.v1.app_pb2.GetRobotPartResponse), '/viam.app.v1.AppService/GetRobotPartLogs': grpclib.const.Handler(self.GetRobotPartLogs, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetRobotPartLogsRequest, app.v1.app_pb2.GetRobotPartLogsResponse), '/viam.app.v1.AppService/TailRobotPartLogs': grpclib.const.Handler(self.TailRobotPartLogs, grpclib.const.Cardinality.UNARY_STREAM, app.v1.app_pb2.TailRobotPartLogsRequest, app.v1.app_pb2.TailRobotPartLogsResponse), '/viam.app.v1.AppService/GetRobotPartHistory': grpclib.const.Handler(self.GetRobotPartHistory, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetRobotPartHistoryRequest, app.v1.app_pb2.GetRobotPartHistoryResponse), '/viam.app.v1.AppService/UpdateRobotPart': grpclib.const.Handler(self.UpdateRobotPart, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.UpdateRobotPartRequest, app.v1.app_pb2.UpdateRobotPartResponse), '/viam.app.v1.AppService/NewRobotPart': grpclib.const.Handler(self.NewRobotPart, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.NewRobotPartRequest, app.v1.app_pb2.NewRobotPartResponse), '/viam.app.v1.AppService/DeleteRobotPart': grpclib.const.Handler(self.DeleteRobotPart, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.DeleteRobotPartRequest, app.v1.app_pb2.DeleteRobotPartResponse), '/viam.app.v1.AppService/MarkPartAsMain': grpclib.const.Handler(self.MarkPartAsMain, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.MarkPartAsMainRequest, app.v1.app_pb2.MarkPartAsMainResponse), '/viam.app.v1.AppService/MarkPartForRestart': grpclib.const.Handler(self.MarkPartForRestart, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.MarkPartForRestartRequest, app.v1.app_pb2.MarkPartForRestartResponse), '/viam.app.v1.AppService/CreateRobotPartSecret': grpclib.const.Handler(self.CreateRobotPartSecret, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.CreateRobotPartSecretRequest, app.v1.app_pb2.CreateRobotPartSecretResponse), '/viam.app.v1.AppService/DeleteRobotPartSecret': grpclib.const.Handler(self.DeleteRobotPartSecret, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.DeleteRobotPartSecretRequest, app.v1.app_pb2.DeleteRobotPartSecretResponse), '/viam.app.v1.AppService/ListRobots': grpclib.const.Handler(self.ListRobots, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ListRobotsRequest, app.v1.app_pb2.ListRobotsResponse), '/viam.app.v1.AppService/NewRobot': grpclib.const.Handler(self.NewRobot, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.NewRobotRequest, app.v1.app_pb2.NewRobotResponse), '/viam.app.v1.AppService/UpdateRobot': grpclib.const.Handler(self.UpdateRobot, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.UpdateRobotRequest, app.v1.app_pb2.UpdateRobotResponse), '/viam.app.v1.AppService/DeleteRobot': grpclib.const.Handler(self.DeleteRobot, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.DeleteRobotRequest, app.v1.app_pb2.DeleteRobotResponse), '/viam.app.v1.AppService/ListFragments': grpclib.const.Handler(self.ListFragments, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ListFragmentsRequest, app.v1.app_pb2.ListFragmentsResponse), '/viam.app.v1.AppService/GetFragment': grpclib.const.Handler(self.GetFragment, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetFragmentRequest, app.v1.app_pb2.GetFragmentResponse), '/viam.app.v1.AppService/CreateFragment': grpclib.const.Handler(self.CreateFragment, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.CreateFragmentRequest, app.v1.app_pb2.CreateFragmentResponse), '/viam.app.v1.AppService/UpdateFragment': grpclib.const.Handler(self.UpdateFragment, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.UpdateFragmentRequest, app.v1.app_pb2.UpdateFragmentResponse), '/viam.app.v1.AppService/DeleteFragment': grpclib.const.Handler(self.DeleteFragment, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.DeleteFragmentRequest, app.v1.app_pb2.DeleteFragmentResponse), '/viam.app.v1.AppService/AddRole': grpclib.const.Handler(self.AddRole, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.AddRoleRequest, app.v1.app_pb2.AddRoleResponse), '/viam.app.v1.AppService/RemoveRole': grpclib.const.Handler(self.RemoveRole, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.RemoveRoleRequest, app.v1.app_pb2.RemoveRoleResponse), '/viam.app.v1.AppService/ChangeRole': grpclib.const.Handler(self.ChangeRole, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ChangeRoleRequest, app.v1.app_pb2.ChangeRoleResponse), '/viam.app.v1.AppService/ListAuthorizations': grpclib.const.Handler(self.ListAuthorizations, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ListAuthorizationsRequest, app.v1.app_pb2.ListAuthorizationsResponse), '/viam.app.v1.AppService/CheckPermissions': grpclib.const.Handler(self.CheckPermissions, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.CheckPermissionsRequest, app.v1.app_pb2.CheckPermissionsResponse), '/viam.app.v1.AppService/CreateModule': grpclib.const.Handler(self.CreateModule, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.CreateModuleRequest, app.v1.app_pb2.CreateModuleResponse), '/viam.app.v1.AppService/UpdateModule': grpclib.const.Handler(self.UpdateModule, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.UpdateModuleRequest, app.v1.app_pb2.UpdateModuleResponse), '/viam.app.v1.AppService/UploadModuleFile': grpclib.const.Handler(self.UploadModuleFile, grpclib.const.Cardinality.STREAM_UNARY, app.v1.app_pb2.UploadModuleFileRequest, app.v1.app_pb2.UploadModuleFileResponse), '/viam.app.v1.AppService/GetModule': grpclib.const.Handler(self.GetModule, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetModuleRequest, app.v1.app_pb2.GetModuleResponse), '/viam.app.v1.AppService/ListModules': grpclib.const.Handler(self.ListModules, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ListModulesRequest, app.v1.app_pb2.ListModulesResponse)} + return {'/viam.app.v1.AppService/GetUserIDByEmail': grpclib.const.Handler(self.GetUserIDByEmail, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetUserIDByEmailRequest, app.v1.app_pb2.GetUserIDByEmailResponse), '/viam.app.v1.AppService/CreateOrganization': grpclib.const.Handler(self.CreateOrganization, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.CreateOrganizationRequest, app.v1.app_pb2.CreateOrganizationResponse), '/viam.app.v1.AppService/ListOrganizations': grpclib.const.Handler(self.ListOrganizations, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ListOrganizationsRequest, app.v1.app_pb2.ListOrganizationsResponse), '/viam.app.v1.AppService/ListOrganizationsByUser': grpclib.const.Handler(self.ListOrganizationsByUser, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ListOrganizationsByUserRequest, app.v1.app_pb2.ListOrganizationsByUserResponse), '/viam.app.v1.AppService/GetOrganization': grpclib.const.Handler(self.GetOrganization, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetOrganizationRequest, app.v1.app_pb2.GetOrganizationResponse), '/viam.app.v1.AppService/GetOrganizationNamespaceAvailability': grpclib.const.Handler(self.GetOrganizationNamespaceAvailability, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetOrganizationNamespaceAvailabilityRequest, app.v1.app_pb2.GetOrganizationNamespaceAvailabilityResponse), '/viam.app.v1.AppService/UpdateOrganization': grpclib.const.Handler(self.UpdateOrganization, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.UpdateOrganizationRequest, app.v1.app_pb2.UpdateOrganizationResponse), '/viam.app.v1.AppService/DeleteOrganization': grpclib.const.Handler(self.DeleteOrganization, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.DeleteOrganizationRequest, app.v1.app_pb2.DeleteOrganizationResponse), '/viam.app.v1.AppService/ListOrganizationMembers': grpclib.const.Handler(self.ListOrganizationMembers, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ListOrganizationMembersRequest, app.v1.app_pb2.ListOrganizationMembersResponse), '/viam.app.v1.AppService/CreateOrganizationInvite': grpclib.const.Handler(self.CreateOrganizationInvite, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.CreateOrganizationInviteRequest, app.v1.app_pb2.CreateOrganizationInviteResponse), '/viam.app.v1.AppService/UpdateOrganizationInviteAuthorizations': grpclib.const.Handler(self.UpdateOrganizationInviteAuthorizations, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.UpdateOrganizationInviteAuthorizationsRequest, app.v1.app_pb2.UpdateOrganizationInviteAuthorizationsResponse), '/viam.app.v1.AppService/DeleteOrganizationMember': grpclib.const.Handler(self.DeleteOrganizationMember, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.DeleteOrganizationMemberRequest, app.v1.app_pb2.DeleteOrganizationMemberResponse), '/viam.app.v1.AppService/DeleteOrganizationInvite': grpclib.const.Handler(self.DeleteOrganizationInvite, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.DeleteOrganizationInviteRequest, app.v1.app_pb2.DeleteOrganizationInviteResponse), '/viam.app.v1.AppService/ResendOrganizationInvite': grpclib.const.Handler(self.ResendOrganizationInvite, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ResendOrganizationInviteRequest, app.v1.app_pb2.ResendOrganizationInviteResponse), '/viam.app.v1.AppService/CreateLocation': grpclib.const.Handler(self.CreateLocation, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.CreateLocationRequest, app.v1.app_pb2.CreateLocationResponse), '/viam.app.v1.AppService/GetLocation': grpclib.const.Handler(self.GetLocation, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetLocationRequest, app.v1.app_pb2.GetLocationResponse), '/viam.app.v1.AppService/UpdateLocation': grpclib.const.Handler(self.UpdateLocation, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.UpdateLocationRequest, app.v1.app_pb2.UpdateLocationResponse), '/viam.app.v1.AppService/DeleteLocation': grpclib.const.Handler(self.DeleteLocation, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.DeleteLocationRequest, app.v1.app_pb2.DeleteLocationResponse), '/viam.app.v1.AppService/ListLocations': grpclib.const.Handler(self.ListLocations, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ListLocationsRequest, app.v1.app_pb2.ListLocationsResponse), '/viam.app.v1.AppService/ShareLocation': grpclib.const.Handler(self.ShareLocation, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ShareLocationRequest, app.v1.app_pb2.ShareLocationResponse), '/viam.app.v1.AppService/UnshareLocation': grpclib.const.Handler(self.UnshareLocation, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.UnshareLocationRequest, app.v1.app_pb2.UnshareLocationResponse), '/viam.app.v1.AppService/LocationAuth': grpclib.const.Handler(self.LocationAuth, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.LocationAuthRequest, app.v1.app_pb2.LocationAuthResponse), '/viam.app.v1.AppService/CreateLocationSecret': grpclib.const.Handler(self.CreateLocationSecret, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.CreateLocationSecretRequest, app.v1.app_pb2.CreateLocationSecretResponse), '/viam.app.v1.AppService/DeleteLocationSecret': grpclib.const.Handler(self.DeleteLocationSecret, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.DeleteLocationSecretRequest, app.v1.app_pb2.DeleteLocationSecretResponse), '/viam.app.v1.AppService/GetRobot': grpclib.const.Handler(self.GetRobot, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetRobotRequest, app.v1.app_pb2.GetRobotResponse), '/viam.app.v1.AppService/GetRoverRentalRobots': grpclib.const.Handler(self.GetRoverRentalRobots, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetRoverRentalRobotsRequest, app.v1.app_pb2.GetRoverRentalRobotsResponse), '/viam.app.v1.AppService/GetRobotParts': grpclib.const.Handler(self.GetRobotParts, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetRobotPartsRequest, app.v1.app_pb2.GetRobotPartsResponse), '/viam.app.v1.AppService/GetRobotPart': grpclib.const.Handler(self.GetRobotPart, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetRobotPartRequest, app.v1.app_pb2.GetRobotPartResponse), '/viam.app.v1.AppService/GetRobotPartLogs': grpclib.const.Handler(self.GetRobotPartLogs, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetRobotPartLogsRequest, app.v1.app_pb2.GetRobotPartLogsResponse), '/viam.app.v1.AppService/TailRobotPartLogs': grpclib.const.Handler(self.TailRobotPartLogs, grpclib.const.Cardinality.UNARY_STREAM, app.v1.app_pb2.TailRobotPartLogsRequest, app.v1.app_pb2.TailRobotPartLogsResponse), '/viam.app.v1.AppService/GetRobotPartHistory': grpclib.const.Handler(self.GetRobotPartHistory, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetRobotPartHistoryRequest, app.v1.app_pb2.GetRobotPartHistoryResponse), '/viam.app.v1.AppService/UpdateRobotPart': grpclib.const.Handler(self.UpdateRobotPart, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.UpdateRobotPartRequest, app.v1.app_pb2.UpdateRobotPartResponse), '/viam.app.v1.AppService/NewRobotPart': grpclib.const.Handler(self.NewRobotPart, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.NewRobotPartRequest, app.v1.app_pb2.NewRobotPartResponse), '/viam.app.v1.AppService/DeleteRobotPart': grpclib.const.Handler(self.DeleteRobotPart, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.DeleteRobotPartRequest, app.v1.app_pb2.DeleteRobotPartResponse), '/viam.app.v1.AppService/GetRobotAPIKeys': grpclib.const.Handler(self.GetRobotAPIKeys, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetRobotAPIKeysRequest, app.v1.app_pb2.GetRobotAPIKeysResponse), '/viam.app.v1.AppService/MarkPartAsMain': grpclib.const.Handler(self.MarkPartAsMain, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.MarkPartAsMainRequest, app.v1.app_pb2.MarkPartAsMainResponse), '/viam.app.v1.AppService/MarkPartForRestart': grpclib.const.Handler(self.MarkPartForRestart, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.MarkPartForRestartRequest, app.v1.app_pb2.MarkPartForRestartResponse), '/viam.app.v1.AppService/CreateRobotPartSecret': grpclib.const.Handler(self.CreateRobotPartSecret, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.CreateRobotPartSecretRequest, app.v1.app_pb2.CreateRobotPartSecretResponse), '/viam.app.v1.AppService/DeleteRobotPartSecret': grpclib.const.Handler(self.DeleteRobotPartSecret, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.DeleteRobotPartSecretRequest, app.v1.app_pb2.DeleteRobotPartSecretResponse), '/viam.app.v1.AppService/ListRobots': grpclib.const.Handler(self.ListRobots, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ListRobotsRequest, app.v1.app_pb2.ListRobotsResponse), '/viam.app.v1.AppService/NewRobot': grpclib.const.Handler(self.NewRobot, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.NewRobotRequest, app.v1.app_pb2.NewRobotResponse), '/viam.app.v1.AppService/UpdateRobot': grpclib.const.Handler(self.UpdateRobot, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.UpdateRobotRequest, app.v1.app_pb2.UpdateRobotResponse), '/viam.app.v1.AppService/DeleteRobot': grpclib.const.Handler(self.DeleteRobot, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.DeleteRobotRequest, app.v1.app_pb2.DeleteRobotResponse), '/viam.app.v1.AppService/ListFragments': grpclib.const.Handler(self.ListFragments, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ListFragmentsRequest, app.v1.app_pb2.ListFragmentsResponse), '/viam.app.v1.AppService/GetFragment': grpclib.const.Handler(self.GetFragment, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetFragmentRequest, app.v1.app_pb2.GetFragmentResponse), '/viam.app.v1.AppService/CreateFragment': grpclib.const.Handler(self.CreateFragment, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.CreateFragmentRequest, app.v1.app_pb2.CreateFragmentResponse), '/viam.app.v1.AppService/UpdateFragment': grpclib.const.Handler(self.UpdateFragment, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.UpdateFragmentRequest, app.v1.app_pb2.UpdateFragmentResponse), '/viam.app.v1.AppService/DeleteFragment': grpclib.const.Handler(self.DeleteFragment, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.DeleteFragmentRequest, app.v1.app_pb2.DeleteFragmentResponse), '/viam.app.v1.AppService/AddRole': grpclib.const.Handler(self.AddRole, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.AddRoleRequest, app.v1.app_pb2.AddRoleResponse), '/viam.app.v1.AppService/RemoveRole': grpclib.const.Handler(self.RemoveRole, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.RemoveRoleRequest, app.v1.app_pb2.RemoveRoleResponse), '/viam.app.v1.AppService/ChangeRole': grpclib.const.Handler(self.ChangeRole, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ChangeRoleRequest, app.v1.app_pb2.ChangeRoleResponse), '/viam.app.v1.AppService/ListAuthorizations': grpclib.const.Handler(self.ListAuthorizations, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ListAuthorizationsRequest, app.v1.app_pb2.ListAuthorizationsResponse), '/viam.app.v1.AppService/CheckPermissions': grpclib.const.Handler(self.CheckPermissions, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.CheckPermissionsRequest, app.v1.app_pb2.CheckPermissionsResponse), '/viam.app.v1.AppService/CreateModule': grpclib.const.Handler(self.CreateModule, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.CreateModuleRequest, app.v1.app_pb2.CreateModuleResponse), '/viam.app.v1.AppService/UpdateModule': grpclib.const.Handler(self.UpdateModule, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.UpdateModuleRequest, app.v1.app_pb2.UpdateModuleResponse), '/viam.app.v1.AppService/UploadModuleFile': grpclib.const.Handler(self.UploadModuleFile, grpclib.const.Cardinality.STREAM_UNARY, app.v1.app_pb2.UploadModuleFileRequest, app.v1.app_pb2.UploadModuleFileResponse), '/viam.app.v1.AppService/GetModule': grpclib.const.Handler(self.GetModule, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.GetModuleRequest, app.v1.app_pb2.GetModuleResponse), '/viam.app.v1.AppService/ListModules': grpclib.const.Handler(self.ListModules, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.ListModulesRequest, app.v1.app_pb2.ListModulesResponse), '/viam.app.v1.AppService/CreateKey': grpclib.const.Handler(self.CreateKey, grpclib.const.Cardinality.UNARY_UNARY, app.v1.app_pb2.CreateKeyRequest, app.v1.app_pb2.CreateKeyResponse)} class AppServiceStub: @@ -279,6 +287,7 @@ def __init__(self, channel: grpclib.client.Channel) -> None: self.UpdateRobotPart = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.v1.AppService/UpdateRobotPart', app.v1.app_pb2.UpdateRobotPartRequest, app.v1.app_pb2.UpdateRobotPartResponse) self.NewRobotPart = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.v1.AppService/NewRobotPart', app.v1.app_pb2.NewRobotPartRequest, app.v1.app_pb2.NewRobotPartResponse) self.DeleteRobotPart = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.v1.AppService/DeleteRobotPart', app.v1.app_pb2.DeleteRobotPartRequest, app.v1.app_pb2.DeleteRobotPartResponse) + self.GetRobotAPIKeys = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.v1.AppService/GetRobotAPIKeys', app.v1.app_pb2.GetRobotAPIKeysRequest, app.v1.app_pb2.GetRobotAPIKeysResponse) self.MarkPartAsMain = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.v1.AppService/MarkPartAsMain', app.v1.app_pb2.MarkPartAsMainRequest, app.v1.app_pb2.MarkPartAsMainResponse) self.MarkPartForRestart = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.v1.AppService/MarkPartForRestart', app.v1.app_pb2.MarkPartForRestartRequest, app.v1.app_pb2.MarkPartForRestartResponse) self.CreateRobotPartSecret = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.v1.AppService/CreateRobotPartSecret', app.v1.app_pb2.CreateRobotPartSecretRequest, app.v1.app_pb2.CreateRobotPartSecretResponse) @@ -301,4 +310,5 @@ def __init__(self, channel: grpclib.client.Channel) -> None: self.UpdateModule = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.v1.AppService/UpdateModule', app.v1.app_pb2.UpdateModuleRequest, app.v1.app_pb2.UpdateModuleResponse) self.UploadModuleFile = grpclib.client.StreamUnaryMethod(channel, '/viam.app.v1.AppService/UploadModuleFile', app.v1.app_pb2.UploadModuleFileRequest, app.v1.app_pb2.UploadModuleFileResponse) self.GetModule = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.v1.AppService/GetModule', app.v1.app_pb2.GetModuleRequest, app.v1.app_pb2.GetModuleResponse) - self.ListModules = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.v1.AppService/ListModules', app.v1.app_pb2.ListModulesRequest, app.v1.app_pb2.ListModulesResponse) \ No newline at end of file + self.ListModules = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.v1.AppService/ListModules', app.v1.app_pb2.ListModulesRequest, app.v1.app_pb2.ListModulesResponse) + self.CreateKey = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.v1.AppService/CreateKey', app.v1.app_pb2.CreateKeyRequest, app.v1.app_pb2.CreateKeyResponse) \ No newline at end of file diff --git a/src/viam/gen/app/v1/app_pb2.py b/src/viam/gen/app/v1/app_pb2.py index c2b32a917..92156d5eb 100644 --- a/src/viam/gen/app/v1/app_pb2.py +++ b/src/viam/gen/app/v1/app_pb2.py @@ -7,7 +7,7 @@ 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 from ...tagger.v1 import tagger_pb2 as tagger_dot_v1_dot_tagger__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10app/v1/app.proto\x12\x0bviam.app.v1\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x16tagger/v1/tagger.proto"\xec\x02\n\x05Robot\x123\n\x02id\x18\x01 \x01(\tB#\x9a\x84\x9e\x03\x1ebson:"_id" json:"id,omitempty"R\x02id\x120\n\x04name\x18\x02 \x01(\tB\x1c\x9a\x84\x9e\x03\x17bson:"name" json:"name"R\x04name\x12@\n\x08location\x18\x03 \x01(\tB$\x9a\x84\x9e\x03\x1fbson:"location" json:"location"R\x08location\x12g\n\x0blast_access\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampB*\x9a\x84\x9e\x03%bson:"last_access" json:"last_access"R\nlastAccess\x12Q\n\ncreated_on\x18\x05 \x01(\x0b2\x1a.google.protobuf.TimestampB\x16\x9a\x84\x9e\x03\x11bson:"created_on"R\tcreatedOn"\xd3\x07\n\tRobotPart\x123\n\x02id\x18\x01 \x01(\tB#\x9a\x84\x9e\x03\x1ebson:"_id" json:"id,omitempty"R\x02id\x120\n\x04name\x18\x02 \x01(\tB\x1c\x9a\x84\x9e\x03\x17bson:"name" json:"name"R\x04name\x12?\n\x08dns_name\x18\n \x01(\tB$\x9a\x84\x9e\x03\x1fbson:"dns_name" json:"dns_name"R\x07dnsName\x12B\n\x06secret\x18\x03 \x01(\tB*\x9a\x84\x9e\x03%bson:"secret" json:"secret,omitempty"R\x06secret\x124\n\x05robot\x18\x04 \x01(\tB\x1e\x9a\x84\x9e\x03\x19bson:"robot" json:"robot"R\x05robot\x12A\n\x0blocation_id\x18\x0c \x01(\tB \x9a\x84\x9e\x03\x1bbson:"location_id" json:"-"R\nlocationId\x12b\n\x0crobot_config\x18\x05 \x01(\x0b2\x17.google.protobuf.StructB&\x9a\x84\x9e\x03!bson:"config" json:"robot_config"R\x0brobotConfig\x12g\n\x0blast_access\x18\x06 \x01(\x0b2\x1a.google.protobuf.TimestampB*\x9a\x84\x9e\x03%bson:"last_access" json:"last_access"R\nlastAccess\x12\x7f\n\x12user_supplied_info\x18\x07 \x01(\x0b2\x17.google.protobuf.StructB8\x9a\x84\x9e\x033bson:"user_supplied_info" json:"user_supplied_info"R\x10userSuppliedInfo\x12C\n\tmain_part\x18\x08 \x01(\x08B&\x9a\x84\x9e\x03!bson:"main_part" json:"main_part"R\x08mainPart\x12\x12\n\x04fqdn\x18\t \x01(\tR\x04fqdn\x12\x1d\n\nlocal_fqdn\x18\x0b \x01(\tR\tlocalFqdn\x12Q\n\ncreated_on\x18\r \x01(\x0b2\x1a.google.protobuf.TimestampB\x16\x9a\x84\x9e\x03\x11bson:"created_on"R\tcreatedOn\x12H\n\x07secrets\x18\x0e \x03(\x0b2\x19.viam.app.v1.SharedSecretB\x13\x9a\x84\x9e\x03\x0ebson:"secrets"R\x07secrets"\x93\x02\n\x15RobotPartHistoryEntry\x120\n\x04part\x18\x01 \x01(\tB\x1c\x9a\x84\x9e\x03\x17bson:"part" json:"part"R\x04part\x124\n\x05robot\x18\x02 \x01(\tB\x1e\x9a\x84\x9e\x03\x19bson:"robot" json:"robot"R\x05robot\x12L\n\x04when\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampB\x1c\x9a\x84\x9e\x03\x17bson:"when" json:"when"R\x04when\x12D\n\x03old\x18\x04 \x01(\x0b2\x16.viam.app.v1.RobotPartB\x1a\x9a\x84\x9e\x03\x15bson:"old" json:"old"R\x03old"\x1a\n\x18ListOrganizationsRequest"\xde\x01\n\x0cOrganization\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x129\n\ncreated_on\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampR\tcreatedOn\x12)\n\x10public_namespace\x18\x04 \x01(\tR\x0fpublicNamespace\x12%\n\x0edefault_region\x18\x05 \x01(\tR\rdefaultRegion\x12\x15\n\x03cid\x18\x06 \x01(\tH\x00R\x03cid\x88\x01\x01B\x06\n\x04_cid"\xcf\x01\n\x12OrganizationMember\x12\x17\n\x07user_id\x18\x01 \x01(\tR\x06userId\x12\x16\n\x06emails\x18\x02 \x03(\tR\x06emails\x129\n\ndate_added\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampR\tdateAdded\x12>\n\nlast_login\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampH\x00R\tlastLogin\x88\x01\x01B\r\n\x0b_last_login"\\\n\x19ListOrganizationsResponse\x12?\n\rorganizations\x18\x01 \x03(\x0b2\x19.viam.app.v1.OrganizationR\rorganizations"\xaf\x01\n\x12OrganizationInvite\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x14\n\x05email\x18\x02 \x01(\tR\x05email\x129\n\ncreated_on\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampR\tcreatedOn\x12\x1f\n\x0brobot_count\x18\x04 \x01(\x03R\nrobotCount"/\n\x19CreateOrganizationRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name"[\n\x1aCreateOrganizationResponse\x12=\n\x0corganization\x18\x01 \x01(\x0b2\x19.viam.app.v1.OrganizationR\x0corganization"A\n\x16GetOrganizationRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId"X\n\x17GetOrganizationResponse\x12=\n\x0corganization\x18\x01 \x01(\x0b2\x19.viam.app.v1.OrganizationR\x0corganization"X\n+GetOrganizationNamespaceAvailabilityRequest\x12)\n\x10public_namespace\x18\x01 \x01(\tR\x0fpublicNamespace"L\n,GetOrganizationNamespaceAvailabilityResponse\x12\x1c\n\tavailable\x18\x01 \x01(\x08R\tavailable"\xf2\x01\n\x19UpdateOrganizationRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x17\n\x04name\x18\x02 \x01(\tH\x00R\x04name\x88\x01\x01\x12.\n\x10public_namespace\x18\x03 \x01(\tH\x01R\x0fpublicNamespace\x88\x01\x01\x12\x1b\n\x06region\x18\x04 \x01(\tH\x02R\x06region\x88\x01\x01\x12\x15\n\x03cid\x18\x05 \x01(\tH\x03R\x03cid\x88\x01\x01B\x07\n\x05_nameB\x13\n\x11_public_namespaceB\t\n\x07_regionB\x06\n\x04_cid"[\n\x1aUpdateOrganizationResponse\x12=\n\x0corganization\x18\x01 \x01(\x0b2\x19.viam.app.v1.OrganizationR\x0corganization"D\n\x19DeleteOrganizationRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId"\x1c\n\x1aDeleteOrganizationResponse"I\n\x1eListOrganizationMembersRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId"\xc0\x01\n\x1fListOrganizationMembersResponse\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x129\n\x07members\x18\x02 \x03(\x0b2\x1f.viam.app.v1.OrganizationMemberR\x07members\x129\n\x07invites\x18\x03 \x03(\x0b2\x1f.viam.app.v1.OrganizationInviteR\x07invites"\xa4\x01\n\x1fCreateOrganizationInviteRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x14\n\x05email\x18\x02 \x01(\tR\x05email\x12B\n\x0eauthorizations\x18\x03 \x03(\x0b2\x1a.viam.app.v1.AuthorizationR\x0eauthorizations"[\n CreateOrganizationInviteResponse\x127\n\x06invite\x18\x01 \x01(\x0b2\x1f.viam.app.v1.OrganizationInviteR\x06invite"\x8a\x02\n-UpdateOrganizationInviteAuthorizationsRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x14\n\x05email\x18\x02 \x01(\tR\x05email\x12I\n\x12add_authorizations\x18\x03 \x03(\x0b2\x1a.viam.app.v1.AuthorizationR\x11addAuthorizations\x12O\n\x15remove_authorizations\x18\x04 \x03(\x0b2\x1a.viam.app.v1.AuthorizationR\x14removeAuthorizations"i\n.UpdateOrganizationInviteAuthorizationsResponse\x127\n\x06invite\x18\x01 \x01(\x0b2\x1f.viam.app.v1.OrganizationInviteR\x06invite"`\n\x1fDeleteOrganizationInviteRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x14\n\x05email\x18\x02 \x01(\tR\x05email""\n DeleteOrganizationInviteResponse"`\n\x1fResendOrganizationInviteRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x14\n\x05email\x18\x02 \x01(\tR\x05email"[\n ResendOrganizationInviteResponse\x127\n\x06invite\x18\x01 \x01(\x0b2\x1f.viam.app.v1.OrganizationInviteR\x06invite"c\n\x1fDeleteOrganizationMemberRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x17\n\x07user_id\x18\x02 \x01(\tR\x06userId""\n DeleteOrganizationMemberResponse"Y\n\x14LocationOrganization\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x18\n\x07primary\x18\x02 \x01(\x08R\x07primary"\x80\x01\n\x0cLocationAuth\x12\x1a\n\x06secret\x18\x01 \x01(\tB\x02\x18\x01R\x06secret\x12\x1f\n\x0blocation_id\x18\x02 \x01(\tR\nlocationId\x123\n\x07secrets\x18\x03 \x03(\x0b2\x19.viam.app.v1.SharedSecretR\x07secrets"\'\n\rStorageConfig\x12\x16\n\x06region\x18\x01 \x01(\tR\x06region"\xe4\x02\n\x08Location\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12,\n\x12parent_location_id\x18\x04 \x01(\tR\x10parentLocationId\x12-\n\x04auth\x18\x05 \x01(\x0b2\x19.viam.app.v1.LocationAuthR\x04auth\x12G\n\rorganizations\x18\x06 \x03(\x0b2!.viam.app.v1.LocationOrganizationR\rorganizations\x129\n\ncreated_on\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampR\tcreatedOn\x12\x1f\n\x0brobot_count\x18\x07 \x01(\x05R\nrobotCount\x122\n\x06config\x18\x08 \x01(\x0b2\x1a.viam.app.v1.StorageConfigR\x06config"\xd0\x02\n\x0cSharedSecret\x12\x1e\n\x02id\x18\x01 \x01(\tB\x0e\x9a\x84\x9e\x03\tbson:"id"R\x02id\x12*\n\x06secret\x18\x02 \x01(\tB\x12\x9a\x84\x9e\x03\rbson:"secret"R\x06secret\x12c\n\ncreated_on\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampB(\x9a\x84\x9e\x03#bson:"created_on" json:"created_on"R\tcreatedOn\x12H\n\x05state\x18\x04 \x01(\x0e2\x1f.viam.app.v1.SharedSecret.StateB\x11\x9a\x84\x9e\x03\x0cbson:"state"R\x05state"E\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x11\n\rSTATE_ENABLED\x10\x01\x12\x12\n\x0eSTATE_DISABLED\x10\x02"\x9e\x01\n\x15CreateLocationRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x121\n\x12parent_location_id\x18\x03 \x01(\tH\x00R\x10parentLocationId\x88\x01\x01B\x15\n\x13_parent_location_id"K\n\x16CreateLocationResponse\x121\n\x08location\x18\x01 \x01(\x0b2\x15.viam.app.v1.LocationR\x08location"5\n\x12GetLocationRequest\x12\x1f\n\x0blocation_id\x18\x01 \x01(\tR\nlocationId"H\n\x13GetLocationResponse\x121\n\x08location\x18\x01 \x01(\x0b2\x15.viam.app.v1.LocationR\x08location"\xcc\x01\n\x15UpdateLocationRequest\x12\x1f\n\x0blocation_id\x18\x01 \x01(\tR\nlocationId\x12\x17\n\x04name\x18\x02 \x01(\tH\x00R\x04name\x88\x01\x01\x121\n\x12parent_location_id\x18\x03 \x01(\tH\x01R\x10parentLocationId\x88\x01\x01\x12\x1b\n\x06region\x18\x04 \x01(\tH\x02R\x06region\x88\x01\x01B\x07\n\x05_nameB\x15\n\x13_parent_location_idB\t\n\x07_region"K\n\x16UpdateLocationResponse\x121\n\x08location\x18\x01 \x01(\x0b2\x15.viam.app.v1.LocationR\x08location"8\n\x15DeleteLocationRequest\x12\x1f\n\x0blocation_id\x18\x01 \x01(\tR\nlocationId"\x18\n\x16DeleteLocationResponse"?\n\x14ListLocationsRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId"`\n\x14ShareLocationRequest\x12\x1f\n\x0blocation_id\x18\x01 \x01(\tR\nlocationId\x12\'\n\x0forganization_id\x18\x02 \x01(\tR\x0eorganizationId"\x17\n\x15ShareLocationResponse"b\n\x16UnshareLocationRequest\x12\x1f\n\x0blocation_id\x18\x01 \x01(\tR\nlocationId\x12\'\n\x0forganization_id\x18\x02 \x01(\tR\x0eorganizationId"\x19\n\x17UnshareLocationResponse"L\n\x15ListLocationsResponse\x123\n\tlocations\x18\x01 \x03(\x0b2\x15.viam.app.v1.LocationR\tlocations">\n\x1bCreateLocationSecretRequest\x12\x1f\n\x0blocation_id\x18\x01 \x01(\tR\nlocationId"M\n\x1cCreateLocationSecretResponse\x12-\n\x04auth\x18\x01 \x01(\x0b2\x19.viam.app.v1.LocationAuthR\x04auth"[\n\x1bDeleteLocationSecretRequest\x12\x1f\n\x0blocation_id\x18\x01 \x01(\tR\nlocationId\x12\x1b\n\tsecret_id\x18\x02 \x01(\tR\x08secretId"\x1e\n\x1cDeleteLocationSecretResponse"6\n\x13LocationAuthRequest\x12\x1f\n\x0blocation_id\x18\x01 \x01(\tR\nlocationId"E\n\x14LocationAuthResponse\x12-\n\x04auth\x18\x01 \x01(\x0b2\x19.viam.app.v1.LocationAuthR\x04auth"!\n\x0fGetRobotRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"4\n\x1bGetRoverRentalRobotsRequest\x12\x15\n\x06org_id\x18\x01 \x01(\tR\x05orgId"\x9a\x01\n\x10RoverRentalRobot\x12\x19\n\x08robot_id\x18\x01 \x01(\tR\x07robotId\x12\x1f\n\x0blocation_id\x18\x02 \x01(\tR\nlocationId\x12\x1d\n\nrobot_name\x18\x03 \x01(\tR\trobotName\x12+\n\x12robot_main_part_id\x18\x04 \x01(\tR\x0frobotMainPartId"U\n\x1cGetRoverRentalRobotsResponse\x125\n\x06robots\x18\x01 \x03(\x0b2\x1d.viam.app.v1.RoverRentalRobotR\x06robots"<\n\x10GetRobotResponse\x12(\n\x05robot\x18\x01 \x01(\x0b2\x12.viam.app.v1.RobotR\x05robot"1\n\x14GetRobotPartsRequest\x12\x19\n\x08robot_id\x18\x01 \x01(\tR\x07robotId"E\n\x15GetRobotPartsResponse\x12,\n\x05parts\x18\x01 \x03(\x0b2\x16.viam.app.v1.RobotPartR\x05parts"%\n\x13GetRobotPartRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"c\n\x14GetRobotPartResponse\x12*\n\x04part\x18\x01 \x01(\x0b2\x16.viam.app.v1.RobotPartR\x04part\x12\x1f\n\x0bconfig_json\x18\x02 \x01(\tR\nconfigJson"\xa5\x01\n\x17GetRobotPartLogsRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x1f\n\x0berrors_only\x18\x02 \x01(\x08R\nerrorsOnly\x12\x1b\n\x06filter\x18\x03 \x01(\tH\x00R\x06filter\x88\x01\x01\x12"\n\npage_token\x18\x04 \x01(\tH\x01R\tpageToken\x88\x01\x01B\t\n\x07_filterB\r\n\x0b_page_token"\x97\x02\n\x08LogEntry\x12\x12\n\x04host\x18\x01 \x01(\tR\x04host\x12\x14\n\x05level\x18\x02 \x01(\tR\x05level\x12.\n\x04time\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampR\x04time\x12\x1f\n\x0blogger_name\x18\x04 \x01(\tR\nloggerName\x12\x18\n\x07message\x18\x05 \x01(\tR\x07message\x12/\n\x06caller\x18\x06 \x01(\x0b2\x17.google.protobuf.StructR\x06caller\x12\x14\n\x05stack\x18\x07 \x01(\tR\x05stack\x12/\n\x06fields\x18\x08 \x03(\x0b2\x17.google.protobuf.StructR\x06fields"m\n\x18GetRobotPartLogsResponse\x12)\n\x04logs\x18\x01 \x03(\x0b2\x15.viam.app.v1.LogEntryR\x04logs\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken"s\n\x18TailRobotPartLogsRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x1f\n\x0berrors_only\x18\x02 \x01(\x08R\nerrorsOnly\x12\x1b\n\x06filter\x18\x03 \x01(\tH\x00R\x06filter\x88\x01\x01B\t\n\x07_filter"F\n\x19TailRobotPartLogsResponse\x12)\n\x04logs\x18\x01 \x03(\x0b2\x15.viam.app.v1.LogEntryR\x04logs",\n\x1aGetRobotPartHistoryRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"[\n\x1bGetRobotPartHistoryResponse\x12<\n\x07history\x18\x01 \x03(\x0b2".viam.app.v1.RobotPartHistoryEntryR\x07history"x\n\x16UpdateRobotPartRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12:\n\x0crobot_config\x18\x03 \x01(\x0b2\x17.google.protobuf.StructR\x0brobotConfig"E\n\x17UpdateRobotPartResponse\x12*\n\x04part\x18\x01 \x01(\x0b2\x16.viam.app.v1.RobotPartR\x04part"M\n\x13NewRobotPartRequest\x12\x19\n\x08robot_id\x18\x01 \x01(\tR\x07robotId\x12\x1b\n\tpart_name\x18\x02 \x01(\tR\x08partName"/\n\x14NewRobotPartResponse\x12\x17\n\x07part_id\x18\x01 \x01(\tR\x06partId"1\n\x16DeleteRobotPartRequest\x12\x17\n\x07part_id\x18\x01 \x01(\tR\x06partId"\x19\n\x17DeleteRobotPartResponse"\xe8\x04\n\x08Fragment\x123\n\x02id\x18\x01 \x01(\tB#\x9a\x84\x9e\x03\x1ebson:"_id" json:"id,omitempty"R\x02id\x120\n\x04name\x18\x02 \x01(\tB\x1c\x9a\x84\x9e\x03\x17bson:"name" json:"name"R\x04name\x12Y\n\x08fragment\x18\x03 \x01(\x0b2\x17.google.protobuf.StructB$\x9a\x84\x9e\x03\x1fbson:"fragment" json:"fragment"R\x08fragment\x12Z\n\x12organization_owner\x18\x04 \x01(\tB+\x9a\x84\x9e\x03&bson:"organization_owner" json:"owner"R\x11organizationOwner\x128\n\x06public\x18\x05 \x01(\x08B \x9a\x84\x9e\x03\x1bbson:"public" json:"public"R\x06public\x12Q\n\ncreated_on\x18\x06 \x01(\x0b2\x1a.google.protobuf.TimestampB\x16\x9a\x84\x9e\x03\x11bson:"created_on"R\tcreatedOn\x12+\n\x11organization_name\x18\x07 \x01(\tR\x10organizationName\x12(\n\x10robot_part_count\x18\t \x01(\x05R\x0erobotPartCount\x12-\n\x12organization_count\x18\n \x01(\x05R\x11organizationCount\x12+\n\x12only_used_by_owner\x18\x0b \x01(\x08R\x0fonlyUsedByOwner"`\n\x14ListFragmentsRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x1f\n\x0bshow_public\x18\x02 \x01(\x08R\nshowPublic"L\n\x15ListFragmentsResponse\x123\n\tfragments\x18\x01 \x03(\x0b2\x15.viam.app.v1.FragmentR\tfragments"$\n\x12GetFragmentRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"H\n\x13GetFragmentResponse\x121\n\x08fragment\x18\x01 \x01(\x0b2\x15.viam.app.v1.FragmentR\x08fragment"\x85\x01\n\x15CreateFragmentRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12/\n\x06config\x18\x02 \x01(\x0b2\x17.google.protobuf.StructR\x06config\x12\'\n\x0forganization_id\x18\x03 \x01(\tR\x0eorganizationId"K\n\x16CreateFragmentResponse\x121\n\x08fragment\x18\x01 \x01(\x0b2\x15.viam.app.v1.FragmentR\x08fragment"\x94\x01\n\x15UpdateFragmentRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12/\n\x06config\x18\x03 \x01(\x0b2\x17.google.protobuf.StructR\x06config\x12\x1b\n\x06public\x18\x04 \x01(\x08H\x00R\x06public\x88\x01\x01B\t\n\x07_public"K\n\x16UpdateFragmentResponse\x121\n\x08fragment\x18\x01 \x01(\x0b2\x15.viam.app.v1.FragmentR\x08fragment"\'\n\x15DeleteFragmentRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"\x18\n\x16DeleteFragmentResponse"4\n\x11ListRobotsRequest\x12\x1f\n\x0blocation_id\x18\x01 \x01(\tR\nlocationId"@\n\x12ListRobotsResponse\x12*\n\x06robots\x18\x01 \x03(\x0b2\x12.viam.app.v1.RobotR\x06robots"A\n\x0fNewRobotRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1a\n\x08location\x18\x02 \x01(\tR\x08location""\n\x10NewRobotResponse\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"T\n\x12UpdateRobotRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x1a\n\x08location\x18\x03 \x01(\tR\x08location"?\n\x13UpdateRobotResponse\x12(\n\x05robot\x18\x01 \x01(\x0b2\x12.viam.app.v1.RobotR\x05robot"$\n\x12DeleteRobotRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"\x15\n\x13DeleteRobotResponse"0\n\x15MarkPartAsMainRequest\x12\x17\n\x07part_id\x18\x01 \x01(\tR\x06partId"\x18\n\x16MarkPartAsMainResponse"4\n\x19MarkPartForRestartRequest\x12\x17\n\x07part_id\x18\x01 \x01(\tR\x06partId"\x1c\n\x1aMarkPartForRestartResponse"7\n\x1cCreateRobotPartSecretRequest\x12\x17\n\x07part_id\x18\x01 \x01(\tR\x06partId"K\n\x1dCreateRobotPartSecretResponse\x12*\n\x04part\x18\x01 \x01(\x0b2\x16.viam.app.v1.RobotPartR\x04part"T\n\x1cDeleteRobotPartSecretRequest\x12\x17\n\x07part_id\x18\x01 \x01(\tR\x06partId\x12\x1b\n\tsecret_id\x18\x02 \x01(\tR\x08secretId"\x1f\n\x1dDeleteRobotPartSecretResponse"\xf9\x01\n\rAuthorization\x12-\n\x12authorization_type\x18\x01 \x01(\tR\x11authorizationType\x12)\n\x10authorization_id\x18\x02 \x01(\tR\x0fauthorizationId\x12#\n\rresource_type\x18\x03 \x01(\tR\x0cresourceType\x12\x1f\n\x0bresource_id\x18\x04 \x01(\tR\nresourceId\x12\x1f\n\x0bidentity_id\x18\x05 \x01(\tR\nidentityId\x12\'\n\x0forganization_id\x18\x06 \x01(\tR\x0eorganizationId"R\n\x0eAddRoleRequest\x12@\n\rauthorization\x18\x01 \x01(\x0b2\x1a.viam.app.v1.AuthorizationR\rauthorization"\x11\n\x0fAddRoleResponse"U\n\x11RemoveRoleRequest\x12@\n\rauthorization\x18\x01 \x01(\x0b2\x1a.viam.app.v1.AuthorizationR\rauthorization"\x14\n\x12RemoveRoleResponse"\xa5\x01\n\x11ChangeRoleRequest\x12G\n\x11old_authorization\x18\x01 \x01(\x0b2\x1a.viam.app.v1.AuthorizationR\x10oldAuthorization\x12G\n\x11new_authorization\x18\x02 \x01(\x0b2\x1a.viam.app.v1.AuthorizationR\x10newAuthorization"\x14\n\x12ChangeRoleResponse"g\n\x19ListAuthorizationsRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12!\n\x0cresource_ids\x18\x02 \x03(\tR\x0bresourceIds"`\n\x1aListAuthorizationsResponse\x12B\n\x0eauthorizations\x18\x01 \x03(\x0b2\x1a.viam.app.v1.AuthorizationR\x0eauthorizations"_\n\x17CheckPermissionsRequest\x12D\n\x0bpermissions\x18\x01 \x03(\x0b2".viam.app.v1.AuthorizedPermissionsR\x0bpermissions"\x7f\n\x15AuthorizedPermissions\x12#\n\rresource_type\x18\x01 \x01(\tR\x0cresourceType\x12\x1f\n\x0bresource_id\x18\x02 \x01(\tR\nresourceId\x12 \n\x0bpermissions\x18\x03 \x03(\tR\x0bpermissions"u\n\x18CheckPermissionsResponse\x12Y\n\x16authorized_permissions\x18\x01 \x03(\x0b2".viam.app.v1.AuthorizedPermissionsR\x15authorizedPermissions"R\n\x13CreateModuleRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name"E\n\x14CreateModuleResponse\x12\x1b\n\tmodule_id\x18\x01 \x01(\tR\x08moduleId\x12\x10\n\x03url\x18\x02 \x01(\tR\x03url"\xad\x02\n\x13UpdateModuleRequest\x12\x1b\n\tmodule_id\x18\x01 \x01(\tR\x08moduleId\x12,\n\x0forganization_id\x18\x07 \x01(\tH\x00R\x0eorganizationId\x88\x01\x01\x127\n\nvisibility\x18\x02 \x01(\x0e2\x17.viam.app.v1.VisibilityR\nvisibility\x12\x10\n\x03url\x18\x03 \x01(\tR\x03url\x12 \n\x0bdescription\x18\x04 \x01(\tR\x0bdescription\x12*\n\x06models\x18\x05 \x03(\x0b2\x12.viam.app.v1.ModelR\x06models\x12\x1e\n\nentrypoint\x18\x06 \x01(\tR\nentrypointB\x12\n\x10_organization_id"(\n\x14UpdateModuleResponse\x12\x10\n\x03url\x18\x01 \x01(\tR\x03url"/\n\x05Model\x12\x10\n\x03api\x18\x01 \x01(\tR\x03api\x12\x14\n\x05model\x18\x02 \x01(\tR\x05model"\xa5\x01\n\x0eModuleFileInfo\x12\x1b\n\tmodule_id\x18\x01 \x01(\tR\x08moduleId\x12,\n\x0forganization_id\x18\x04 \x01(\tH\x00R\x0eorganizationId\x88\x01\x01\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12\x1a\n\x08platform\x18\x03 \x01(\tR\x08platformB\x12\n\x10_organization_id"\x87\x01\n\x17UploadModuleFileRequest\x12G\n\x10module_file_info\x18\x01 \x01(\x0b2\x1b.viam.app.v1.ModuleFileInfoH\x00R\x0emoduleFileInfo\x12\x14\n\x04file\x18\x02 \x01(\x0cH\x00R\x04fileB\r\n\x0bmodule_file",\n\x18UploadModuleFileResponse\x12\x10\n\x03url\x18\x01 \x01(\tR\x03url"q\n\x10GetModuleRequest\x12\x1b\n\tmodule_id\x18\x01 \x01(\tR\x08moduleId\x12,\n\x0forganization_id\x18\x02 \x01(\tH\x00R\x0eorganizationId\x88\x01\x01B\x12\n\x10_organization_id"@\n\x11GetModuleResponse\x12+\n\x06module\x18\x01 \x01(\x0b2\x13.viam.app.v1.ModuleR\x06module"\xe5\x03\n\x06Module\x12\x1b\n\tmodule_id\x18\x01 \x01(\tR\x08moduleId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x127\n\nvisibility\x18\x03 \x01(\x0e2\x17.viam.app.v1.VisibilityR\nvisibility\x127\n\x08versions\x18\x04 \x03(\x0b2\x1b.viam.app.v1.VersionHistoryR\x08versions\x12\x10\n\x03url\x18\x05 \x01(\tR\x03url\x12 \n\x0bdescription\x18\x06 \x01(\tR\x0bdescription\x12*\n\x06models\x18\x07 \x03(\x0b2\x12.viam.app.v1.ModelR\x06models\x12*\n\x11total_robot_usage\x18\x08 \x01(\x03R\x0ftotalRobotUsage\x128\n\x18total_organization_usage\x18\t \x01(\x03R\x16totalOrganizationUsage\x12\'\n\x0forganization_id\x18\n \x01(\tR\x0eorganizationId\x12\x1e\n\nentrypoint\x18\x0b \x01(\tR\nentrypoint\x12)\n\x10public_namespace\x18\x0c \x01(\tR\x0fpublicNamespace"\xa2\x01\n\x0eVersionHistory\x12\x18\n\x07version\x18\x01 \x01(\tR\x07version\x12*\n\x05files\x18\x02 \x03(\x0b2\x14.viam.app.v1.UploadsR\x05files\x12*\n\x06models\x18\x03 \x03(\x0b2\x12.viam.app.v1.ModelR\x06models\x12\x1e\n\nentrypoint\x18\x04 \x01(\tR\nentrypoint"b\n\x07Uploads\x12\x1a\n\x08platform\x18\x01 \x01(\tR\x08platform\x12;\n\x0buploaded_at\x18\x02 \x01(\x0b2\x1a.google.protobuf.TimestampR\nuploadedAt"V\n\x12ListModulesRequest\x12,\n\x0forganization_id\x18\x01 \x01(\tH\x00R\x0eorganizationId\x88\x01\x01B\x12\n\x10_organization_id"D\n\x13ListModulesResponse\x12-\n\x07modules\x18\x01 \x03(\x0b2\x13.viam.app.v1.ModuleR\x07modules"/\n\x17GetUserIDByEmailRequest\x12\x14\n\x05email\x18\x01 \x01(\tR\x05email"3\n\x18GetUserIDByEmailResponse\x12\x17\n\x07user_id\x18\x01 \x01(\tR\x06userId"9\n\x1eListOrganizationsByUserRequest\x12\x17\n\x07user_id\x18\x01 \x01(\tR\x06userId">\n\nOrgDetails\x12\x15\n\x06org_id\x18\x01 \x01(\tR\x05orgId\x12\x19\n\x08org_name\x18\x02 \x01(\tR\x07orgName"N\n\x1fListOrganizationsByUserResponse\x12+\n\x04orgs\x18\x01 \x03(\x0b2\x17.viam.app.v1.OrgDetailsR\x04orgs*W\n\nVisibility\x12\x1a\n\x16VISIBILITY_UNSPECIFIED\x10\x00\x12\x16\n\x12VISIBILITY_PRIVATE\x10\x01\x12\x15\n\x11VISIBILITY_PUBLIC\x10\x022\xab+\n\nAppService\x12_\n\x10GetUserIDByEmail\x12$.viam.app.v1.GetUserIDByEmailRequest\x1a%.viam.app.v1.GetUserIDByEmailResponse\x12e\n\x12CreateOrganization\x12&.viam.app.v1.CreateOrganizationRequest\x1a\'.viam.app.v1.CreateOrganizationResponse\x12b\n\x11ListOrganizations\x12%.viam.app.v1.ListOrganizationsRequest\x1a&.viam.app.v1.ListOrganizationsResponse\x12t\n\x17ListOrganizationsByUser\x12+.viam.app.v1.ListOrganizationsByUserRequest\x1a,.viam.app.v1.ListOrganizationsByUserResponse\x12\\\n\x0fGetOrganization\x12#.viam.app.v1.GetOrganizationRequest\x1a$.viam.app.v1.GetOrganizationResponse\x12\x9b\x01\n$GetOrganizationNamespaceAvailability\x128.viam.app.v1.GetOrganizationNamespaceAvailabilityRequest\x1a9.viam.app.v1.GetOrganizationNamespaceAvailabilityResponse\x12e\n\x12UpdateOrganization\x12&.viam.app.v1.UpdateOrganizationRequest\x1a\'.viam.app.v1.UpdateOrganizationResponse\x12e\n\x12DeleteOrganization\x12&.viam.app.v1.DeleteOrganizationRequest\x1a\'.viam.app.v1.DeleteOrganizationResponse\x12t\n\x17ListOrganizationMembers\x12+.viam.app.v1.ListOrganizationMembersRequest\x1a,.viam.app.v1.ListOrganizationMembersResponse\x12w\n\x18CreateOrganizationInvite\x12,.viam.app.v1.CreateOrganizationInviteRequest\x1a-.viam.app.v1.CreateOrganizationInviteResponse\x12\xa1\x01\n&UpdateOrganizationInviteAuthorizations\x12:.viam.app.v1.UpdateOrganizationInviteAuthorizationsRequest\x1a;.viam.app.v1.UpdateOrganizationInviteAuthorizationsResponse\x12w\n\x18DeleteOrganizationMember\x12,.viam.app.v1.DeleteOrganizationMemberRequest\x1a-.viam.app.v1.DeleteOrganizationMemberResponse\x12w\n\x18DeleteOrganizationInvite\x12,.viam.app.v1.DeleteOrganizationInviteRequest\x1a-.viam.app.v1.DeleteOrganizationInviteResponse\x12w\n\x18ResendOrganizationInvite\x12,.viam.app.v1.ResendOrganizationInviteRequest\x1a-.viam.app.v1.ResendOrganizationInviteResponse\x12Y\n\x0eCreateLocation\x12".viam.app.v1.CreateLocationRequest\x1a#.viam.app.v1.CreateLocationResponse\x12P\n\x0bGetLocation\x12\x1f.viam.app.v1.GetLocationRequest\x1a .viam.app.v1.GetLocationResponse\x12Y\n\x0eUpdateLocation\x12".viam.app.v1.UpdateLocationRequest\x1a#.viam.app.v1.UpdateLocationResponse\x12Y\n\x0eDeleteLocation\x12".viam.app.v1.DeleteLocationRequest\x1a#.viam.app.v1.DeleteLocationResponse\x12V\n\rListLocations\x12!.viam.app.v1.ListLocationsRequest\x1a".viam.app.v1.ListLocationsResponse\x12V\n\rShareLocation\x12!.viam.app.v1.ShareLocationRequest\x1a".viam.app.v1.ShareLocationResponse\x12\\\n\x0fUnshareLocation\x12#.viam.app.v1.UnshareLocationRequest\x1a$.viam.app.v1.UnshareLocationResponse\x12S\n\x0cLocationAuth\x12 .viam.app.v1.LocationAuthRequest\x1a!.viam.app.v1.LocationAuthResponse\x12k\n\x14CreateLocationSecret\x12(.viam.app.v1.CreateLocationSecretRequest\x1a).viam.app.v1.CreateLocationSecretResponse\x12k\n\x14DeleteLocationSecret\x12(.viam.app.v1.DeleteLocationSecretRequest\x1a).viam.app.v1.DeleteLocationSecretResponse\x12G\n\x08GetRobot\x12\x1c.viam.app.v1.GetRobotRequest\x1a\x1d.viam.app.v1.GetRobotResponse\x12k\n\x14GetRoverRentalRobots\x12(.viam.app.v1.GetRoverRentalRobotsRequest\x1a).viam.app.v1.GetRoverRentalRobotsResponse\x12V\n\rGetRobotParts\x12!.viam.app.v1.GetRobotPartsRequest\x1a".viam.app.v1.GetRobotPartsResponse\x12S\n\x0cGetRobotPart\x12 .viam.app.v1.GetRobotPartRequest\x1a!.viam.app.v1.GetRobotPartResponse\x12_\n\x10GetRobotPartLogs\x12$.viam.app.v1.GetRobotPartLogsRequest\x1a%.viam.app.v1.GetRobotPartLogsResponse\x12d\n\x11TailRobotPartLogs\x12%.viam.app.v1.TailRobotPartLogsRequest\x1a&.viam.app.v1.TailRobotPartLogsResponse0\x01\x12h\n\x13GetRobotPartHistory\x12\'.viam.app.v1.GetRobotPartHistoryRequest\x1a(.viam.app.v1.GetRobotPartHistoryResponse\x12\\\n\x0fUpdateRobotPart\x12#.viam.app.v1.UpdateRobotPartRequest\x1a$.viam.app.v1.UpdateRobotPartResponse\x12S\n\x0cNewRobotPart\x12 .viam.app.v1.NewRobotPartRequest\x1a!.viam.app.v1.NewRobotPartResponse\x12\\\n\x0fDeleteRobotPart\x12#.viam.app.v1.DeleteRobotPartRequest\x1a$.viam.app.v1.DeleteRobotPartResponse\x12Y\n\x0eMarkPartAsMain\x12".viam.app.v1.MarkPartAsMainRequest\x1a#.viam.app.v1.MarkPartAsMainResponse\x12e\n\x12MarkPartForRestart\x12&.viam.app.v1.MarkPartForRestartRequest\x1a\'.viam.app.v1.MarkPartForRestartResponse\x12n\n\x15CreateRobotPartSecret\x12).viam.app.v1.CreateRobotPartSecretRequest\x1a*.viam.app.v1.CreateRobotPartSecretResponse\x12n\n\x15DeleteRobotPartSecret\x12).viam.app.v1.DeleteRobotPartSecretRequest\x1a*.viam.app.v1.DeleteRobotPartSecretResponse\x12M\n\nListRobots\x12\x1e.viam.app.v1.ListRobotsRequest\x1a\x1f.viam.app.v1.ListRobotsResponse\x12G\n\x08NewRobot\x12\x1c.viam.app.v1.NewRobotRequest\x1a\x1d.viam.app.v1.NewRobotResponse\x12P\n\x0bUpdateRobot\x12\x1f.viam.app.v1.UpdateRobotRequest\x1a .viam.app.v1.UpdateRobotResponse\x12P\n\x0bDeleteRobot\x12\x1f.viam.app.v1.DeleteRobotRequest\x1a .viam.app.v1.DeleteRobotResponse\x12V\n\rListFragments\x12!.viam.app.v1.ListFragmentsRequest\x1a".viam.app.v1.ListFragmentsResponse\x12P\n\x0bGetFragment\x12\x1f.viam.app.v1.GetFragmentRequest\x1a .viam.app.v1.GetFragmentResponse\x12Y\n\x0eCreateFragment\x12".viam.app.v1.CreateFragmentRequest\x1a#.viam.app.v1.CreateFragmentResponse\x12Y\n\x0eUpdateFragment\x12".viam.app.v1.UpdateFragmentRequest\x1a#.viam.app.v1.UpdateFragmentResponse\x12Y\n\x0eDeleteFragment\x12".viam.app.v1.DeleteFragmentRequest\x1a#.viam.app.v1.DeleteFragmentResponse\x12D\n\x07AddRole\x12\x1b.viam.app.v1.AddRoleRequest\x1a\x1c.viam.app.v1.AddRoleResponse\x12M\n\nRemoveRole\x12\x1e.viam.app.v1.RemoveRoleRequest\x1a\x1f.viam.app.v1.RemoveRoleResponse\x12M\n\nChangeRole\x12\x1e.viam.app.v1.ChangeRoleRequest\x1a\x1f.viam.app.v1.ChangeRoleResponse\x12e\n\x12ListAuthorizations\x12&.viam.app.v1.ListAuthorizationsRequest\x1a\'.viam.app.v1.ListAuthorizationsResponse\x12_\n\x10CheckPermissions\x12$.viam.app.v1.CheckPermissionsRequest\x1a%.viam.app.v1.CheckPermissionsResponse\x12S\n\x0cCreateModule\x12 .viam.app.v1.CreateModuleRequest\x1a!.viam.app.v1.CreateModuleResponse\x12S\n\x0cUpdateModule\x12 .viam.app.v1.UpdateModuleRequest\x1a!.viam.app.v1.UpdateModuleResponse\x12a\n\x10UploadModuleFile\x12$.viam.app.v1.UploadModuleFileRequest\x1a%.viam.app.v1.UploadModuleFileResponse(\x01\x12J\n\tGetModule\x12\x1d.viam.app.v1.GetModuleRequest\x1a\x1e.viam.app.v1.GetModuleResponse\x12P\n\x0bListModules\x12\x1f.viam.app.v1.ListModulesRequest\x1a .viam.app.v1.ListModulesResponseB\x18Z\x16go.viam.com/api/app/v1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10app/v1/app.proto\x12\x0bviam.app.v1\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x16tagger/v1/tagger.proto"\xec\x02\n\x05Robot\x123\n\x02id\x18\x01 \x01(\tB#\x9a\x84\x9e\x03\x1ebson:"_id" json:"id,omitempty"R\x02id\x120\n\x04name\x18\x02 \x01(\tB\x1c\x9a\x84\x9e\x03\x17bson:"name" json:"name"R\x04name\x12@\n\x08location\x18\x03 \x01(\tB$\x9a\x84\x9e\x03\x1fbson:"location" json:"location"R\x08location\x12g\n\x0blast_access\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampB*\x9a\x84\x9e\x03%bson:"last_access" json:"last_access"R\nlastAccess\x12Q\n\ncreated_on\x18\x05 \x01(\x0b2\x1a.google.protobuf.TimestampB\x16\x9a\x84\x9e\x03\x11bson:"created_on"R\tcreatedOn"\xd3\x07\n\tRobotPart\x123\n\x02id\x18\x01 \x01(\tB#\x9a\x84\x9e\x03\x1ebson:"_id" json:"id,omitempty"R\x02id\x120\n\x04name\x18\x02 \x01(\tB\x1c\x9a\x84\x9e\x03\x17bson:"name" json:"name"R\x04name\x12?\n\x08dns_name\x18\n \x01(\tB$\x9a\x84\x9e\x03\x1fbson:"dns_name" json:"dns_name"R\x07dnsName\x12B\n\x06secret\x18\x03 \x01(\tB*\x9a\x84\x9e\x03%bson:"secret" json:"secret,omitempty"R\x06secret\x124\n\x05robot\x18\x04 \x01(\tB\x1e\x9a\x84\x9e\x03\x19bson:"robot" json:"robot"R\x05robot\x12A\n\x0blocation_id\x18\x0c \x01(\tB \x9a\x84\x9e\x03\x1bbson:"location_id" json:"-"R\nlocationId\x12b\n\x0crobot_config\x18\x05 \x01(\x0b2\x17.google.protobuf.StructB&\x9a\x84\x9e\x03!bson:"config" json:"robot_config"R\x0brobotConfig\x12g\n\x0blast_access\x18\x06 \x01(\x0b2\x1a.google.protobuf.TimestampB*\x9a\x84\x9e\x03%bson:"last_access" json:"last_access"R\nlastAccess\x12\x7f\n\x12user_supplied_info\x18\x07 \x01(\x0b2\x17.google.protobuf.StructB8\x9a\x84\x9e\x033bson:"user_supplied_info" json:"user_supplied_info"R\x10userSuppliedInfo\x12C\n\tmain_part\x18\x08 \x01(\x08B&\x9a\x84\x9e\x03!bson:"main_part" json:"main_part"R\x08mainPart\x12\x12\n\x04fqdn\x18\t \x01(\tR\x04fqdn\x12\x1d\n\nlocal_fqdn\x18\x0b \x01(\tR\tlocalFqdn\x12Q\n\ncreated_on\x18\r \x01(\x0b2\x1a.google.protobuf.TimestampB\x16\x9a\x84\x9e\x03\x11bson:"created_on"R\tcreatedOn\x12H\n\x07secrets\x18\x0e \x03(\x0b2\x19.viam.app.v1.SharedSecretB\x13\x9a\x84\x9e\x03\x0ebson:"secrets"R\x07secrets"\x93\x02\n\x15RobotPartHistoryEntry\x120\n\x04part\x18\x01 \x01(\tB\x1c\x9a\x84\x9e\x03\x17bson:"part" json:"part"R\x04part\x124\n\x05robot\x18\x02 \x01(\tB\x1e\x9a\x84\x9e\x03\x19bson:"robot" json:"robot"R\x05robot\x12L\n\x04when\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampB\x1c\x9a\x84\x9e\x03\x17bson:"when" json:"when"R\x04when\x12D\n\x03old\x18\x04 \x01(\x0b2\x16.viam.app.v1.RobotPartB\x1a\x9a\x84\x9e\x03\x15bson:"old" json:"old"R\x03old"\x1a\n\x18ListOrganizationsRequest"\xde\x01\n\x0cOrganization\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x129\n\ncreated_on\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampR\tcreatedOn\x12)\n\x10public_namespace\x18\x04 \x01(\tR\x0fpublicNamespace\x12%\n\x0edefault_region\x18\x05 \x01(\tR\rdefaultRegion\x12\x15\n\x03cid\x18\x06 \x01(\tH\x00R\x03cid\x88\x01\x01B\x06\n\x04_cid"\xcf\x01\n\x12OrganizationMember\x12\x17\n\x07user_id\x18\x01 \x01(\tR\x06userId\x12\x16\n\x06emails\x18\x02 \x03(\tR\x06emails\x129\n\ndate_added\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampR\tdateAdded\x12>\n\nlast_login\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampH\x00R\tlastLogin\x88\x01\x01B\r\n\x0b_last_login"\\\n\x19ListOrganizationsResponse\x12?\n\rorganizations\x18\x01 \x03(\x0b2\x19.viam.app.v1.OrganizationR\rorganizations"\xd2\x01\n\x12OrganizationInvite\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x14\n\x05email\x18\x02 \x01(\tR\x05email\x129\n\ncreated_on\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampR\tcreatedOn\x12B\n\x0eauthorizations\x18\x04 \x03(\x0b2\x1a.viam.app.v1.AuthorizationR\x0eauthorizations"/\n\x19CreateOrganizationRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name"[\n\x1aCreateOrganizationResponse\x12=\n\x0corganization\x18\x01 \x01(\x0b2\x19.viam.app.v1.OrganizationR\x0corganization"A\n\x16GetOrganizationRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId"X\n\x17GetOrganizationResponse\x12=\n\x0corganization\x18\x01 \x01(\x0b2\x19.viam.app.v1.OrganizationR\x0corganization"X\n+GetOrganizationNamespaceAvailabilityRequest\x12)\n\x10public_namespace\x18\x01 \x01(\tR\x0fpublicNamespace"L\n,GetOrganizationNamespaceAvailabilityResponse\x12\x1c\n\tavailable\x18\x01 \x01(\x08R\tavailable"\xf2\x01\n\x19UpdateOrganizationRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x17\n\x04name\x18\x02 \x01(\tH\x00R\x04name\x88\x01\x01\x12.\n\x10public_namespace\x18\x03 \x01(\tH\x01R\x0fpublicNamespace\x88\x01\x01\x12\x1b\n\x06region\x18\x04 \x01(\tH\x02R\x06region\x88\x01\x01\x12\x15\n\x03cid\x18\x05 \x01(\tH\x03R\x03cid\x88\x01\x01B\x07\n\x05_nameB\x13\n\x11_public_namespaceB\t\n\x07_regionB\x06\n\x04_cid"[\n\x1aUpdateOrganizationResponse\x12=\n\x0corganization\x18\x01 \x01(\x0b2\x19.viam.app.v1.OrganizationR\x0corganization"D\n\x19DeleteOrganizationRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId"\x1c\n\x1aDeleteOrganizationResponse"I\n\x1eListOrganizationMembersRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId"\xc0\x01\n\x1fListOrganizationMembersResponse\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x129\n\x07members\x18\x02 \x03(\x0b2\x1f.viam.app.v1.OrganizationMemberR\x07members\x129\n\x07invites\x18\x03 \x03(\x0b2\x1f.viam.app.v1.OrganizationInviteR\x07invites"\xa4\x01\n\x1fCreateOrganizationInviteRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x14\n\x05email\x18\x02 \x01(\tR\x05email\x12B\n\x0eauthorizations\x18\x03 \x03(\x0b2\x1a.viam.app.v1.AuthorizationR\x0eauthorizations"[\n CreateOrganizationInviteResponse\x127\n\x06invite\x18\x01 \x01(\x0b2\x1f.viam.app.v1.OrganizationInviteR\x06invite"\x8a\x02\n-UpdateOrganizationInviteAuthorizationsRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x14\n\x05email\x18\x02 \x01(\tR\x05email\x12I\n\x12add_authorizations\x18\x03 \x03(\x0b2\x1a.viam.app.v1.AuthorizationR\x11addAuthorizations\x12O\n\x15remove_authorizations\x18\x04 \x03(\x0b2\x1a.viam.app.v1.AuthorizationR\x14removeAuthorizations"i\n.UpdateOrganizationInviteAuthorizationsResponse\x127\n\x06invite\x18\x01 \x01(\x0b2\x1f.viam.app.v1.OrganizationInviteR\x06invite"`\n\x1fDeleteOrganizationInviteRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x14\n\x05email\x18\x02 \x01(\tR\x05email""\n DeleteOrganizationInviteResponse"`\n\x1fResendOrganizationInviteRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x14\n\x05email\x18\x02 \x01(\tR\x05email"[\n ResendOrganizationInviteResponse\x127\n\x06invite\x18\x01 \x01(\x0b2\x1f.viam.app.v1.OrganizationInviteR\x06invite"c\n\x1fDeleteOrganizationMemberRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x17\n\x07user_id\x18\x02 \x01(\tR\x06userId""\n DeleteOrganizationMemberResponse"Y\n\x14LocationOrganization\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x18\n\x07primary\x18\x02 \x01(\x08R\x07primary"\x80\x01\n\x0cLocationAuth\x12\x1a\n\x06secret\x18\x01 \x01(\tB\x02\x18\x01R\x06secret\x12\x1f\n\x0blocation_id\x18\x02 \x01(\tR\nlocationId\x123\n\x07secrets\x18\x03 \x03(\x0b2\x19.viam.app.v1.SharedSecretR\x07secrets"\'\n\rStorageConfig\x12\x16\n\x06region\x18\x01 \x01(\tR\x06region"\xe4\x02\n\x08Location\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12,\n\x12parent_location_id\x18\x04 \x01(\tR\x10parentLocationId\x12-\n\x04auth\x18\x05 \x01(\x0b2\x19.viam.app.v1.LocationAuthR\x04auth\x12G\n\rorganizations\x18\x06 \x03(\x0b2!.viam.app.v1.LocationOrganizationR\rorganizations\x129\n\ncreated_on\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampR\tcreatedOn\x12\x1f\n\x0brobot_count\x18\x07 \x01(\x05R\nrobotCount\x122\n\x06config\x18\x08 \x01(\x0b2\x1a.viam.app.v1.StorageConfigR\x06config"\xd0\x02\n\x0cSharedSecret\x12\x1e\n\x02id\x18\x01 \x01(\tB\x0e\x9a\x84\x9e\x03\tbson:"id"R\x02id\x12*\n\x06secret\x18\x02 \x01(\tB\x12\x9a\x84\x9e\x03\rbson:"secret"R\x06secret\x12c\n\ncreated_on\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampB(\x9a\x84\x9e\x03#bson:"created_on" json:"created_on"R\tcreatedOn\x12H\n\x05state\x18\x04 \x01(\x0e2\x1f.viam.app.v1.SharedSecret.StateB\x11\x9a\x84\x9e\x03\x0cbson:"state"R\x05state"E\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x11\n\rSTATE_ENABLED\x10\x01\x12\x12\n\x0eSTATE_DISABLED\x10\x02"\x9e\x01\n\x15CreateLocationRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x121\n\x12parent_location_id\x18\x03 \x01(\tH\x00R\x10parentLocationId\x88\x01\x01B\x15\n\x13_parent_location_id"K\n\x16CreateLocationResponse\x121\n\x08location\x18\x01 \x01(\x0b2\x15.viam.app.v1.LocationR\x08location"5\n\x12GetLocationRequest\x12\x1f\n\x0blocation_id\x18\x01 \x01(\tR\nlocationId"H\n\x13GetLocationResponse\x121\n\x08location\x18\x01 \x01(\x0b2\x15.viam.app.v1.LocationR\x08location"\xcc\x01\n\x15UpdateLocationRequest\x12\x1f\n\x0blocation_id\x18\x01 \x01(\tR\nlocationId\x12\x17\n\x04name\x18\x02 \x01(\tH\x00R\x04name\x88\x01\x01\x121\n\x12parent_location_id\x18\x03 \x01(\tH\x01R\x10parentLocationId\x88\x01\x01\x12\x1b\n\x06region\x18\x04 \x01(\tH\x02R\x06region\x88\x01\x01B\x07\n\x05_nameB\x15\n\x13_parent_location_idB\t\n\x07_region"K\n\x16UpdateLocationResponse\x121\n\x08location\x18\x01 \x01(\x0b2\x15.viam.app.v1.LocationR\x08location"8\n\x15DeleteLocationRequest\x12\x1f\n\x0blocation_id\x18\x01 \x01(\tR\nlocationId"\x18\n\x16DeleteLocationResponse"?\n\x14ListLocationsRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId"`\n\x14ShareLocationRequest\x12\x1f\n\x0blocation_id\x18\x01 \x01(\tR\nlocationId\x12\'\n\x0forganization_id\x18\x02 \x01(\tR\x0eorganizationId"\x17\n\x15ShareLocationResponse"b\n\x16UnshareLocationRequest\x12\x1f\n\x0blocation_id\x18\x01 \x01(\tR\nlocationId\x12\'\n\x0forganization_id\x18\x02 \x01(\tR\x0eorganizationId"\x19\n\x17UnshareLocationResponse"L\n\x15ListLocationsResponse\x123\n\tlocations\x18\x01 \x03(\x0b2\x15.viam.app.v1.LocationR\tlocations">\n\x1bCreateLocationSecretRequest\x12\x1f\n\x0blocation_id\x18\x01 \x01(\tR\nlocationId"M\n\x1cCreateLocationSecretResponse\x12-\n\x04auth\x18\x01 \x01(\x0b2\x19.viam.app.v1.LocationAuthR\x04auth"[\n\x1bDeleteLocationSecretRequest\x12\x1f\n\x0blocation_id\x18\x01 \x01(\tR\nlocationId\x12\x1b\n\tsecret_id\x18\x02 \x01(\tR\x08secretId"\x1e\n\x1cDeleteLocationSecretResponse"6\n\x13LocationAuthRequest\x12\x1f\n\x0blocation_id\x18\x01 \x01(\tR\nlocationId"E\n\x14LocationAuthResponse\x12-\n\x04auth\x18\x01 \x01(\x0b2\x19.viam.app.v1.LocationAuthR\x04auth"!\n\x0fGetRobotRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"4\n\x1bGetRoverRentalRobotsRequest\x12\x15\n\x06org_id\x18\x01 \x01(\tR\x05orgId"\x9a\x01\n\x10RoverRentalRobot\x12\x19\n\x08robot_id\x18\x01 \x01(\tR\x07robotId\x12\x1f\n\x0blocation_id\x18\x02 \x01(\tR\nlocationId\x12\x1d\n\nrobot_name\x18\x03 \x01(\tR\trobotName\x12+\n\x12robot_main_part_id\x18\x04 \x01(\tR\x0frobotMainPartId"U\n\x1cGetRoverRentalRobotsResponse\x125\n\x06robots\x18\x01 \x03(\x0b2\x1d.viam.app.v1.RoverRentalRobotR\x06robots"<\n\x10GetRobotResponse\x12(\n\x05robot\x18\x01 \x01(\x0b2\x12.viam.app.v1.RobotR\x05robot"1\n\x14GetRobotPartsRequest\x12\x19\n\x08robot_id\x18\x01 \x01(\tR\x07robotId"E\n\x15GetRobotPartsResponse\x12,\n\x05parts\x18\x01 \x03(\x0b2\x16.viam.app.v1.RobotPartR\x05parts"%\n\x13GetRobotPartRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"c\n\x14GetRobotPartResponse\x12*\n\x04part\x18\x01 \x01(\x0b2\x16.viam.app.v1.RobotPartR\x04part\x12\x1f\n\x0bconfig_json\x18\x02 \x01(\tR\nconfigJson"\xa5\x01\n\x17GetRobotPartLogsRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x1f\n\x0berrors_only\x18\x02 \x01(\x08R\nerrorsOnly\x12\x1b\n\x06filter\x18\x03 \x01(\tH\x00R\x06filter\x88\x01\x01\x12"\n\npage_token\x18\x04 \x01(\tH\x01R\tpageToken\x88\x01\x01B\t\n\x07_filterB\r\n\x0b_page_token"\x97\x02\n\x08LogEntry\x12\x12\n\x04host\x18\x01 \x01(\tR\x04host\x12\x14\n\x05level\x18\x02 \x01(\tR\x05level\x12.\n\x04time\x18\x03 \x01(\x0b2\x1a.google.protobuf.TimestampR\x04time\x12\x1f\n\x0blogger_name\x18\x04 \x01(\tR\nloggerName\x12\x18\n\x07message\x18\x05 \x01(\tR\x07message\x12/\n\x06caller\x18\x06 \x01(\x0b2\x17.google.protobuf.StructR\x06caller\x12\x14\n\x05stack\x18\x07 \x01(\tR\x05stack\x12/\n\x06fields\x18\x08 \x03(\x0b2\x17.google.protobuf.StructR\x06fields"m\n\x18GetRobotPartLogsResponse\x12)\n\x04logs\x18\x01 \x03(\x0b2\x15.viam.app.v1.LogEntryR\x04logs\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken"s\n\x18TailRobotPartLogsRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x1f\n\x0berrors_only\x18\x02 \x01(\x08R\nerrorsOnly\x12\x1b\n\x06filter\x18\x03 \x01(\tH\x00R\x06filter\x88\x01\x01B\t\n\x07_filter"F\n\x19TailRobotPartLogsResponse\x12)\n\x04logs\x18\x01 \x03(\x0b2\x15.viam.app.v1.LogEntryR\x04logs",\n\x1aGetRobotPartHistoryRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"[\n\x1bGetRobotPartHistoryResponse\x12<\n\x07history\x18\x01 \x03(\x0b2".viam.app.v1.RobotPartHistoryEntryR\x07history"x\n\x16UpdateRobotPartRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12:\n\x0crobot_config\x18\x03 \x01(\x0b2\x17.google.protobuf.StructR\x0brobotConfig"E\n\x17UpdateRobotPartResponse\x12*\n\x04part\x18\x01 \x01(\x0b2\x16.viam.app.v1.RobotPartR\x04part"M\n\x13NewRobotPartRequest\x12\x19\n\x08robot_id\x18\x01 \x01(\tR\x07robotId\x12\x1b\n\tpart_name\x18\x02 \x01(\tR\x08partName"/\n\x14NewRobotPartResponse\x12\x17\n\x07part_id\x18\x01 \x01(\tR\x06partId"1\n\x16DeleteRobotPartRequest\x12\x17\n\x07part_id\x18\x01 \x01(\tR\x06partId"3\n\x16GetRobotAPIKeysRequest\x12\x19\n\x08robot_id\x18\x01 \x01(\tR\x07robotId"y\n\x06APIKey\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x10\n\x03key\x18\x02 \x01(\tR\x03key\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x129\n\ncreated_on\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampR\tcreatedOn"I\n\x17GetRobotAPIKeysResponse\x12.\n\x08api_keys\x18\x01 \x03(\x0b2\x13.viam.app.v1.APIKeyR\x07apiKeys"\x19\n\x17DeleteRobotPartResponse"\xe8\x04\n\x08Fragment\x123\n\x02id\x18\x01 \x01(\tB#\x9a\x84\x9e\x03\x1ebson:"_id" json:"id,omitempty"R\x02id\x120\n\x04name\x18\x02 \x01(\tB\x1c\x9a\x84\x9e\x03\x17bson:"name" json:"name"R\x04name\x12Y\n\x08fragment\x18\x03 \x01(\x0b2\x17.google.protobuf.StructB$\x9a\x84\x9e\x03\x1fbson:"fragment" json:"fragment"R\x08fragment\x12Z\n\x12organization_owner\x18\x04 \x01(\tB+\x9a\x84\x9e\x03&bson:"organization_owner" json:"owner"R\x11organizationOwner\x128\n\x06public\x18\x05 \x01(\x08B \x9a\x84\x9e\x03\x1bbson:"public" json:"public"R\x06public\x12Q\n\ncreated_on\x18\x06 \x01(\x0b2\x1a.google.protobuf.TimestampB\x16\x9a\x84\x9e\x03\x11bson:"created_on"R\tcreatedOn\x12+\n\x11organization_name\x18\x07 \x01(\tR\x10organizationName\x12(\n\x10robot_part_count\x18\t \x01(\x05R\x0erobotPartCount\x12-\n\x12organization_count\x18\n \x01(\x05R\x11organizationCount\x12+\n\x12only_used_by_owner\x18\x0b \x01(\x08R\x0fonlyUsedByOwner"`\n\x14ListFragmentsRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x1f\n\x0bshow_public\x18\x02 \x01(\x08R\nshowPublic"L\n\x15ListFragmentsResponse\x123\n\tfragments\x18\x01 \x03(\x0b2\x15.viam.app.v1.FragmentR\tfragments"$\n\x12GetFragmentRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"H\n\x13GetFragmentResponse\x121\n\x08fragment\x18\x01 \x01(\x0b2\x15.viam.app.v1.FragmentR\x08fragment"\x85\x01\n\x15CreateFragmentRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12/\n\x06config\x18\x02 \x01(\x0b2\x17.google.protobuf.StructR\x06config\x12\'\n\x0forganization_id\x18\x03 \x01(\tR\x0eorganizationId"K\n\x16CreateFragmentResponse\x121\n\x08fragment\x18\x01 \x01(\x0b2\x15.viam.app.v1.FragmentR\x08fragment"\x94\x01\n\x15UpdateFragmentRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12/\n\x06config\x18\x03 \x01(\x0b2\x17.google.protobuf.StructR\x06config\x12\x1b\n\x06public\x18\x04 \x01(\x08H\x00R\x06public\x88\x01\x01B\t\n\x07_public"K\n\x16UpdateFragmentResponse\x121\n\x08fragment\x18\x01 \x01(\x0b2\x15.viam.app.v1.FragmentR\x08fragment"\'\n\x15DeleteFragmentRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"\x18\n\x16DeleteFragmentResponse"4\n\x11ListRobotsRequest\x12\x1f\n\x0blocation_id\x18\x01 \x01(\tR\nlocationId"@\n\x12ListRobotsResponse\x12*\n\x06robots\x18\x01 \x03(\x0b2\x12.viam.app.v1.RobotR\x06robots"A\n\x0fNewRobotRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1a\n\x08location\x18\x02 \x01(\tR\x08location""\n\x10NewRobotResponse\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"T\n\x12UpdateRobotRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x1a\n\x08location\x18\x03 \x01(\tR\x08location"?\n\x13UpdateRobotResponse\x12(\n\x05robot\x18\x01 \x01(\x0b2\x12.viam.app.v1.RobotR\x05robot"$\n\x12DeleteRobotRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"\x15\n\x13DeleteRobotResponse"0\n\x15MarkPartAsMainRequest\x12\x17\n\x07part_id\x18\x01 \x01(\tR\x06partId"\x18\n\x16MarkPartAsMainResponse"4\n\x19MarkPartForRestartRequest\x12\x17\n\x07part_id\x18\x01 \x01(\tR\x06partId"\x1c\n\x1aMarkPartForRestartResponse"7\n\x1cCreateRobotPartSecretRequest\x12\x17\n\x07part_id\x18\x01 \x01(\tR\x06partId"K\n\x1dCreateRobotPartSecretResponse\x12*\n\x04part\x18\x01 \x01(\x0b2\x16.viam.app.v1.RobotPartR\x04part"T\n\x1cDeleteRobotPartSecretRequest\x12\x17\n\x07part_id\x18\x01 \x01(\tR\x06partId\x12\x1b\n\tsecret_id\x18\x02 \x01(\tR\x08secretId"\x1f\n\x1dDeleteRobotPartSecretResponse"\x9e\x02\n\rAuthorization\x12-\n\x12authorization_type\x18\x01 \x01(\tR\x11authorizationType\x12)\n\x10authorization_id\x18\x02 \x01(\tR\x0fauthorizationId\x12#\n\rresource_type\x18\x03 \x01(\tR\x0cresourceType\x12\x1f\n\x0bresource_id\x18\x04 \x01(\tR\nresourceId\x12\x1f\n\x0bidentity_id\x18\x05 \x01(\tR\nidentityId\x12\'\n\x0forganization_id\x18\x06 \x01(\tR\x0eorganizationId\x12#\n\ridentity_type\x18\x07 \x01(\tR\x0cidentityType"R\n\x0eAddRoleRequest\x12@\n\rauthorization\x18\x01 \x01(\x0b2\x1a.viam.app.v1.AuthorizationR\rauthorization"\x11\n\x0fAddRoleResponse"U\n\x11RemoveRoleRequest\x12@\n\rauthorization\x18\x01 \x01(\x0b2\x1a.viam.app.v1.AuthorizationR\rauthorization"\x14\n\x12RemoveRoleResponse"\xa5\x01\n\x11ChangeRoleRequest\x12G\n\x11old_authorization\x18\x01 \x01(\x0b2\x1a.viam.app.v1.AuthorizationR\x10oldAuthorization\x12G\n\x11new_authorization\x18\x02 \x01(\x0b2\x1a.viam.app.v1.AuthorizationR\x10newAuthorization"\x14\n\x12ChangeRoleResponse"g\n\x19ListAuthorizationsRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12!\n\x0cresource_ids\x18\x02 \x03(\tR\x0bresourceIds"`\n\x1aListAuthorizationsResponse\x12B\n\x0eauthorizations\x18\x01 \x03(\x0b2\x1a.viam.app.v1.AuthorizationR\x0eauthorizations"_\n\x17CheckPermissionsRequest\x12D\n\x0bpermissions\x18\x01 \x03(\x0b2".viam.app.v1.AuthorizedPermissionsR\x0bpermissions"\x7f\n\x15AuthorizedPermissions\x12#\n\rresource_type\x18\x01 \x01(\tR\x0cresourceType\x12\x1f\n\x0bresource_id\x18\x02 \x01(\tR\nresourceId\x12 \n\x0bpermissions\x18\x03 \x03(\tR\x0bpermissions"u\n\x18CheckPermissionsResponse\x12Y\n\x16authorized_permissions\x18\x01 \x03(\x0b2".viam.app.v1.AuthorizedPermissionsR\x15authorizedPermissions"R\n\x13CreateModuleRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name"E\n\x14CreateModuleResponse\x12\x1b\n\tmodule_id\x18\x01 \x01(\tR\x08moduleId\x12\x10\n\x03url\x18\x02 \x01(\tR\x03url"\xeb\x01\n\x13UpdateModuleRequest\x12\x1b\n\tmodule_id\x18\x01 \x01(\tR\x08moduleId\x127\n\nvisibility\x18\x02 \x01(\x0e2\x17.viam.app.v1.VisibilityR\nvisibility\x12\x10\n\x03url\x18\x03 \x01(\tR\x03url\x12 \n\x0bdescription\x18\x04 \x01(\tR\x0bdescription\x12*\n\x06models\x18\x05 \x03(\x0b2\x12.viam.app.v1.ModelR\x06models\x12\x1e\n\nentrypoint\x18\x06 \x01(\tR\nentrypoint"(\n\x14UpdateModuleResponse\x12\x10\n\x03url\x18\x01 \x01(\tR\x03url"/\n\x05Model\x12\x10\n\x03api\x18\x01 \x01(\tR\x03api\x12\x14\n\x05model\x18\x02 \x01(\tR\x05model"c\n\x0eModuleFileInfo\x12\x1b\n\tmodule_id\x18\x01 \x01(\tR\x08moduleId\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12\x1a\n\x08platform\x18\x03 \x01(\tR\x08platform"\x87\x01\n\x17UploadModuleFileRequest\x12G\n\x10module_file_info\x18\x01 \x01(\x0b2\x1b.viam.app.v1.ModuleFileInfoH\x00R\x0emoduleFileInfo\x12\x14\n\x04file\x18\x02 \x01(\x0cH\x00R\x04fileB\r\n\x0bmodule_file",\n\x18UploadModuleFileResponse\x12\x10\n\x03url\x18\x01 \x01(\tR\x03url"/\n\x10GetModuleRequest\x12\x1b\n\tmodule_id\x18\x01 \x01(\tR\x08moduleId"@\n\x11GetModuleResponse\x12+\n\x06module\x18\x01 \x01(\x0b2\x13.viam.app.v1.ModuleR\x06module"\xe5\x03\n\x06Module\x12\x1b\n\tmodule_id\x18\x01 \x01(\tR\x08moduleId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x127\n\nvisibility\x18\x03 \x01(\x0e2\x17.viam.app.v1.VisibilityR\nvisibility\x127\n\x08versions\x18\x04 \x03(\x0b2\x1b.viam.app.v1.VersionHistoryR\x08versions\x12\x10\n\x03url\x18\x05 \x01(\tR\x03url\x12 \n\x0bdescription\x18\x06 \x01(\tR\x0bdescription\x12*\n\x06models\x18\x07 \x03(\x0b2\x12.viam.app.v1.ModelR\x06models\x12*\n\x11total_robot_usage\x18\x08 \x01(\x03R\x0ftotalRobotUsage\x128\n\x18total_organization_usage\x18\t \x01(\x03R\x16totalOrganizationUsage\x12\'\n\x0forganization_id\x18\n \x01(\tR\x0eorganizationId\x12\x1e\n\nentrypoint\x18\x0b \x01(\tR\nentrypoint\x12)\n\x10public_namespace\x18\x0c \x01(\tR\x0fpublicNamespace"\xa2\x01\n\x0eVersionHistory\x12\x18\n\x07version\x18\x01 \x01(\tR\x07version\x12*\n\x05files\x18\x02 \x03(\x0b2\x14.viam.app.v1.UploadsR\x05files\x12*\n\x06models\x18\x03 \x03(\x0b2\x12.viam.app.v1.ModelR\x06models\x12\x1e\n\nentrypoint\x18\x04 \x01(\tR\nentrypoint"b\n\x07Uploads\x12\x1a\n\x08platform\x18\x01 \x01(\tR\x08platform\x12;\n\x0buploaded_at\x18\x02 \x01(\x0b2\x1a.google.protobuf.TimestampR\nuploadedAt"V\n\x12ListModulesRequest\x12,\n\x0forganization_id\x18\x01 \x01(\tH\x00R\x0eorganizationId\x88\x01\x01B\x12\n\x10_organization_id"D\n\x13ListModulesResponse\x12-\n\x07modules\x18\x01 \x03(\x0b2\x13.viam.app.v1.ModuleR\x07modules"/\n\x17GetUserIDByEmailRequest\x12\x14\n\x05email\x18\x01 \x01(\tR\x05email"3\n\x18GetUserIDByEmailResponse\x12\x17\n\x07user_id\x18\x01 \x01(\tR\x06userId"9\n\x1eListOrganizationsByUserRequest\x12\x17\n\x07user_id\x18\x01 \x01(\tR\x06userId">\n\nOrgDetails\x12\x15\n\x06org_id\x18\x01 \x01(\tR\x05orgId\x12\x19\n\x08org_name\x18\x02 \x01(\tR\x07orgName"N\n\x1fListOrganizationsByUserResponse\x12+\n\x04orgs\x18\x01 \x03(\x0b2\x17.viam.app.v1.OrgDetailsR\x04orgs"j\n\x10CreateKeyRequest\x12B\n\x0eauthorizations\x18\x01 \x03(\x0b2\x1a.viam.app.v1.AuthorizationR\x0eauthorizations\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name"5\n\x11CreateKeyResponse\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x0e\n\x02id\x18\x02 \x01(\tR\x02id*W\n\nVisibility\x12\x1a\n\x16VISIBILITY_UNSPECIFIED\x10\x00\x12\x16\n\x12VISIBILITY_PRIVATE\x10\x01\x12\x15\n\x11VISIBILITY_PUBLIC\x10\x022\xd5,\n\nAppService\x12_\n\x10GetUserIDByEmail\x12$.viam.app.v1.GetUserIDByEmailRequest\x1a%.viam.app.v1.GetUserIDByEmailResponse\x12e\n\x12CreateOrganization\x12&.viam.app.v1.CreateOrganizationRequest\x1a\'.viam.app.v1.CreateOrganizationResponse\x12b\n\x11ListOrganizations\x12%.viam.app.v1.ListOrganizationsRequest\x1a&.viam.app.v1.ListOrganizationsResponse\x12t\n\x17ListOrganizationsByUser\x12+.viam.app.v1.ListOrganizationsByUserRequest\x1a,.viam.app.v1.ListOrganizationsByUserResponse\x12\\\n\x0fGetOrganization\x12#.viam.app.v1.GetOrganizationRequest\x1a$.viam.app.v1.GetOrganizationResponse\x12\x9b\x01\n$GetOrganizationNamespaceAvailability\x128.viam.app.v1.GetOrganizationNamespaceAvailabilityRequest\x1a9.viam.app.v1.GetOrganizationNamespaceAvailabilityResponse\x12e\n\x12UpdateOrganization\x12&.viam.app.v1.UpdateOrganizationRequest\x1a\'.viam.app.v1.UpdateOrganizationResponse\x12e\n\x12DeleteOrganization\x12&.viam.app.v1.DeleteOrganizationRequest\x1a\'.viam.app.v1.DeleteOrganizationResponse\x12t\n\x17ListOrganizationMembers\x12+.viam.app.v1.ListOrganizationMembersRequest\x1a,.viam.app.v1.ListOrganizationMembersResponse\x12w\n\x18CreateOrganizationInvite\x12,.viam.app.v1.CreateOrganizationInviteRequest\x1a-.viam.app.v1.CreateOrganizationInviteResponse\x12\xa1\x01\n&UpdateOrganizationInviteAuthorizations\x12:.viam.app.v1.UpdateOrganizationInviteAuthorizationsRequest\x1a;.viam.app.v1.UpdateOrganizationInviteAuthorizationsResponse\x12w\n\x18DeleteOrganizationMember\x12,.viam.app.v1.DeleteOrganizationMemberRequest\x1a-.viam.app.v1.DeleteOrganizationMemberResponse\x12w\n\x18DeleteOrganizationInvite\x12,.viam.app.v1.DeleteOrganizationInviteRequest\x1a-.viam.app.v1.DeleteOrganizationInviteResponse\x12w\n\x18ResendOrganizationInvite\x12,.viam.app.v1.ResendOrganizationInviteRequest\x1a-.viam.app.v1.ResendOrganizationInviteResponse\x12Y\n\x0eCreateLocation\x12".viam.app.v1.CreateLocationRequest\x1a#.viam.app.v1.CreateLocationResponse\x12P\n\x0bGetLocation\x12\x1f.viam.app.v1.GetLocationRequest\x1a .viam.app.v1.GetLocationResponse\x12Y\n\x0eUpdateLocation\x12".viam.app.v1.UpdateLocationRequest\x1a#.viam.app.v1.UpdateLocationResponse\x12Y\n\x0eDeleteLocation\x12".viam.app.v1.DeleteLocationRequest\x1a#.viam.app.v1.DeleteLocationResponse\x12V\n\rListLocations\x12!.viam.app.v1.ListLocationsRequest\x1a".viam.app.v1.ListLocationsResponse\x12V\n\rShareLocation\x12!.viam.app.v1.ShareLocationRequest\x1a".viam.app.v1.ShareLocationResponse\x12\\\n\x0fUnshareLocation\x12#.viam.app.v1.UnshareLocationRequest\x1a$.viam.app.v1.UnshareLocationResponse\x12S\n\x0cLocationAuth\x12 .viam.app.v1.LocationAuthRequest\x1a!.viam.app.v1.LocationAuthResponse\x12k\n\x14CreateLocationSecret\x12(.viam.app.v1.CreateLocationSecretRequest\x1a).viam.app.v1.CreateLocationSecretResponse\x12k\n\x14DeleteLocationSecret\x12(.viam.app.v1.DeleteLocationSecretRequest\x1a).viam.app.v1.DeleteLocationSecretResponse\x12G\n\x08GetRobot\x12\x1c.viam.app.v1.GetRobotRequest\x1a\x1d.viam.app.v1.GetRobotResponse\x12k\n\x14GetRoverRentalRobots\x12(.viam.app.v1.GetRoverRentalRobotsRequest\x1a).viam.app.v1.GetRoverRentalRobotsResponse\x12V\n\rGetRobotParts\x12!.viam.app.v1.GetRobotPartsRequest\x1a".viam.app.v1.GetRobotPartsResponse\x12S\n\x0cGetRobotPart\x12 .viam.app.v1.GetRobotPartRequest\x1a!.viam.app.v1.GetRobotPartResponse\x12_\n\x10GetRobotPartLogs\x12$.viam.app.v1.GetRobotPartLogsRequest\x1a%.viam.app.v1.GetRobotPartLogsResponse\x12d\n\x11TailRobotPartLogs\x12%.viam.app.v1.TailRobotPartLogsRequest\x1a&.viam.app.v1.TailRobotPartLogsResponse0\x01\x12h\n\x13GetRobotPartHistory\x12\'.viam.app.v1.GetRobotPartHistoryRequest\x1a(.viam.app.v1.GetRobotPartHistoryResponse\x12\\\n\x0fUpdateRobotPart\x12#.viam.app.v1.UpdateRobotPartRequest\x1a$.viam.app.v1.UpdateRobotPartResponse\x12S\n\x0cNewRobotPart\x12 .viam.app.v1.NewRobotPartRequest\x1a!.viam.app.v1.NewRobotPartResponse\x12\\\n\x0fDeleteRobotPart\x12#.viam.app.v1.DeleteRobotPartRequest\x1a$.viam.app.v1.DeleteRobotPartResponse\x12\\\n\x0fGetRobotAPIKeys\x12#.viam.app.v1.GetRobotAPIKeysRequest\x1a$.viam.app.v1.GetRobotAPIKeysResponse\x12Y\n\x0eMarkPartAsMain\x12".viam.app.v1.MarkPartAsMainRequest\x1a#.viam.app.v1.MarkPartAsMainResponse\x12e\n\x12MarkPartForRestart\x12&.viam.app.v1.MarkPartForRestartRequest\x1a\'.viam.app.v1.MarkPartForRestartResponse\x12n\n\x15CreateRobotPartSecret\x12).viam.app.v1.CreateRobotPartSecretRequest\x1a*.viam.app.v1.CreateRobotPartSecretResponse\x12n\n\x15DeleteRobotPartSecret\x12).viam.app.v1.DeleteRobotPartSecretRequest\x1a*.viam.app.v1.DeleteRobotPartSecretResponse\x12M\n\nListRobots\x12\x1e.viam.app.v1.ListRobotsRequest\x1a\x1f.viam.app.v1.ListRobotsResponse\x12G\n\x08NewRobot\x12\x1c.viam.app.v1.NewRobotRequest\x1a\x1d.viam.app.v1.NewRobotResponse\x12P\n\x0bUpdateRobot\x12\x1f.viam.app.v1.UpdateRobotRequest\x1a .viam.app.v1.UpdateRobotResponse\x12P\n\x0bDeleteRobot\x12\x1f.viam.app.v1.DeleteRobotRequest\x1a .viam.app.v1.DeleteRobotResponse\x12V\n\rListFragments\x12!.viam.app.v1.ListFragmentsRequest\x1a".viam.app.v1.ListFragmentsResponse\x12P\n\x0bGetFragment\x12\x1f.viam.app.v1.GetFragmentRequest\x1a .viam.app.v1.GetFragmentResponse\x12Y\n\x0eCreateFragment\x12".viam.app.v1.CreateFragmentRequest\x1a#.viam.app.v1.CreateFragmentResponse\x12Y\n\x0eUpdateFragment\x12".viam.app.v1.UpdateFragmentRequest\x1a#.viam.app.v1.UpdateFragmentResponse\x12Y\n\x0eDeleteFragment\x12".viam.app.v1.DeleteFragmentRequest\x1a#.viam.app.v1.DeleteFragmentResponse\x12D\n\x07AddRole\x12\x1b.viam.app.v1.AddRoleRequest\x1a\x1c.viam.app.v1.AddRoleResponse\x12M\n\nRemoveRole\x12\x1e.viam.app.v1.RemoveRoleRequest\x1a\x1f.viam.app.v1.RemoveRoleResponse\x12M\n\nChangeRole\x12\x1e.viam.app.v1.ChangeRoleRequest\x1a\x1f.viam.app.v1.ChangeRoleResponse\x12e\n\x12ListAuthorizations\x12&.viam.app.v1.ListAuthorizationsRequest\x1a\'.viam.app.v1.ListAuthorizationsResponse\x12_\n\x10CheckPermissions\x12$.viam.app.v1.CheckPermissionsRequest\x1a%.viam.app.v1.CheckPermissionsResponse\x12S\n\x0cCreateModule\x12 .viam.app.v1.CreateModuleRequest\x1a!.viam.app.v1.CreateModuleResponse\x12S\n\x0cUpdateModule\x12 .viam.app.v1.UpdateModuleRequest\x1a!.viam.app.v1.UpdateModuleResponse\x12a\n\x10UploadModuleFile\x12$.viam.app.v1.UploadModuleFileRequest\x1a%.viam.app.v1.UploadModuleFileResponse(\x01\x12J\n\tGetModule\x12\x1d.viam.app.v1.GetModuleRequest\x1a\x1e.viam.app.v1.GetModuleResponse\x12P\n\x0bListModules\x12\x1f.viam.app.v1.ListModulesRequest\x1a .viam.app.v1.ListModulesResponse\x12J\n\tCreateKey\x12\x1d.viam.app.v1.CreateKeyRequest\x1a\x1e.viam.app.v1.CreateKeyResponseB\x18Z\x16go.viam.com/api/app/v1b\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'app.v1.app_pb2', globals()) if _descriptor._USE_C_DESCRIPTORS == False: @@ -77,8 +77,8 @@ _FRAGMENT.fields_by_name['public']._serialized_options = b'\x9a\x84\x9e\x03\x1bbson:"public" json:"public"' _FRAGMENT.fields_by_name['created_on']._options = None _FRAGMENT.fields_by_name['created_on']._serialized_options = b'\x9a\x84\x9e\x03\x11bson:"created_on"' - _VISIBILITY._serialized_start = 14948 - _VISIBILITY._serialized_end = 15035 + _VISIBILITY._serialized_start = 15235 + _VISIBILITY._serialized_end = 15322 _ROBOT._serialized_start = 121 _ROBOT._serialized_end = 485 _ROBOTPART._serialized_start = 488 @@ -94,264 +94,274 @@ _LISTORGANIZATIONSRESPONSE._serialized_start = 2210 _LISTORGANIZATIONSRESPONSE._serialized_end = 2302 _ORGANIZATIONINVITE._serialized_start = 2305 - _ORGANIZATIONINVITE._serialized_end = 2480 - _CREATEORGANIZATIONREQUEST._serialized_start = 2482 - _CREATEORGANIZATIONREQUEST._serialized_end = 2529 - _CREATEORGANIZATIONRESPONSE._serialized_start = 2531 - _CREATEORGANIZATIONRESPONSE._serialized_end = 2622 - _GETORGANIZATIONREQUEST._serialized_start = 2624 - _GETORGANIZATIONREQUEST._serialized_end = 2689 - _GETORGANIZATIONRESPONSE._serialized_start = 2691 - _GETORGANIZATIONRESPONSE._serialized_end = 2779 - _GETORGANIZATIONNAMESPACEAVAILABILITYREQUEST._serialized_start = 2781 - _GETORGANIZATIONNAMESPACEAVAILABILITYREQUEST._serialized_end = 2869 - _GETORGANIZATIONNAMESPACEAVAILABILITYRESPONSE._serialized_start = 2871 - _GETORGANIZATIONNAMESPACEAVAILABILITYRESPONSE._serialized_end = 2947 - _UPDATEORGANIZATIONREQUEST._serialized_start = 2950 - _UPDATEORGANIZATIONREQUEST._serialized_end = 3192 - _UPDATEORGANIZATIONRESPONSE._serialized_start = 3194 - _UPDATEORGANIZATIONRESPONSE._serialized_end = 3285 - _DELETEORGANIZATIONREQUEST._serialized_start = 3287 - _DELETEORGANIZATIONREQUEST._serialized_end = 3355 - _DELETEORGANIZATIONRESPONSE._serialized_start = 3357 - _DELETEORGANIZATIONRESPONSE._serialized_end = 3385 - _LISTORGANIZATIONMEMBERSREQUEST._serialized_start = 3387 - _LISTORGANIZATIONMEMBERSREQUEST._serialized_end = 3460 - _LISTORGANIZATIONMEMBERSRESPONSE._serialized_start = 3463 - _LISTORGANIZATIONMEMBERSRESPONSE._serialized_end = 3655 - _CREATEORGANIZATIONINVITEREQUEST._serialized_start = 3658 - _CREATEORGANIZATIONINVITEREQUEST._serialized_end = 3822 - _CREATEORGANIZATIONINVITERESPONSE._serialized_start = 3824 - _CREATEORGANIZATIONINVITERESPONSE._serialized_end = 3915 - _UPDATEORGANIZATIONINVITEAUTHORIZATIONSREQUEST._serialized_start = 3918 - _UPDATEORGANIZATIONINVITEAUTHORIZATIONSREQUEST._serialized_end = 4184 - _UPDATEORGANIZATIONINVITEAUTHORIZATIONSRESPONSE._serialized_start = 4186 - _UPDATEORGANIZATIONINVITEAUTHORIZATIONSRESPONSE._serialized_end = 4291 - _DELETEORGANIZATIONINVITEREQUEST._serialized_start = 4293 - _DELETEORGANIZATIONINVITEREQUEST._serialized_end = 4389 - _DELETEORGANIZATIONINVITERESPONSE._serialized_start = 4391 - _DELETEORGANIZATIONINVITERESPONSE._serialized_end = 4425 - _RESENDORGANIZATIONINVITEREQUEST._serialized_start = 4427 - _RESENDORGANIZATIONINVITEREQUEST._serialized_end = 4523 - _RESENDORGANIZATIONINVITERESPONSE._serialized_start = 4525 - _RESENDORGANIZATIONINVITERESPONSE._serialized_end = 4616 - _DELETEORGANIZATIONMEMBERREQUEST._serialized_start = 4618 - _DELETEORGANIZATIONMEMBERREQUEST._serialized_end = 4717 - _DELETEORGANIZATIONMEMBERRESPONSE._serialized_start = 4719 - _DELETEORGANIZATIONMEMBERRESPONSE._serialized_end = 4753 - _LOCATIONORGANIZATION._serialized_start = 4755 - _LOCATIONORGANIZATION._serialized_end = 4844 - _LOCATIONAUTH._serialized_start = 4847 - _LOCATIONAUTH._serialized_end = 4975 - _STORAGECONFIG._serialized_start = 4977 - _STORAGECONFIG._serialized_end = 5016 - _LOCATION._serialized_start = 5019 - _LOCATION._serialized_end = 5375 - _SHAREDSECRET._serialized_start = 5378 - _SHAREDSECRET._serialized_end = 5714 - _SHAREDSECRET_STATE._serialized_start = 5645 - _SHAREDSECRET_STATE._serialized_end = 5714 - _CREATELOCATIONREQUEST._serialized_start = 5717 - _CREATELOCATIONREQUEST._serialized_end = 5875 - _CREATELOCATIONRESPONSE._serialized_start = 5877 - _CREATELOCATIONRESPONSE._serialized_end = 5952 - _GETLOCATIONREQUEST._serialized_start = 5954 - _GETLOCATIONREQUEST._serialized_end = 6007 - _GETLOCATIONRESPONSE._serialized_start = 6009 - _GETLOCATIONRESPONSE._serialized_end = 6081 - _UPDATELOCATIONREQUEST._serialized_start = 6084 - _UPDATELOCATIONREQUEST._serialized_end = 6288 - _UPDATELOCATIONRESPONSE._serialized_start = 6290 - _UPDATELOCATIONRESPONSE._serialized_end = 6365 - _DELETELOCATIONREQUEST._serialized_start = 6367 - _DELETELOCATIONREQUEST._serialized_end = 6423 - _DELETELOCATIONRESPONSE._serialized_start = 6425 - _DELETELOCATIONRESPONSE._serialized_end = 6449 - _LISTLOCATIONSREQUEST._serialized_start = 6451 - _LISTLOCATIONSREQUEST._serialized_end = 6514 - _SHARELOCATIONREQUEST._serialized_start = 6516 - _SHARELOCATIONREQUEST._serialized_end = 6612 - _SHARELOCATIONRESPONSE._serialized_start = 6614 - _SHARELOCATIONRESPONSE._serialized_end = 6637 - _UNSHARELOCATIONREQUEST._serialized_start = 6639 - _UNSHARELOCATIONREQUEST._serialized_end = 6737 - _UNSHARELOCATIONRESPONSE._serialized_start = 6739 - _UNSHARELOCATIONRESPONSE._serialized_end = 6764 - _LISTLOCATIONSRESPONSE._serialized_start = 6766 - _LISTLOCATIONSRESPONSE._serialized_end = 6842 - _CREATELOCATIONSECRETREQUEST._serialized_start = 6844 - _CREATELOCATIONSECRETREQUEST._serialized_end = 6906 - _CREATELOCATIONSECRETRESPONSE._serialized_start = 6908 - _CREATELOCATIONSECRETRESPONSE._serialized_end = 6985 - _DELETELOCATIONSECRETREQUEST._serialized_start = 6987 - _DELETELOCATIONSECRETREQUEST._serialized_end = 7078 - _DELETELOCATIONSECRETRESPONSE._serialized_start = 7080 - _DELETELOCATIONSECRETRESPONSE._serialized_end = 7110 - _LOCATIONAUTHREQUEST._serialized_start = 7112 - _LOCATIONAUTHREQUEST._serialized_end = 7166 - _LOCATIONAUTHRESPONSE._serialized_start = 7168 - _LOCATIONAUTHRESPONSE._serialized_end = 7237 - _GETROBOTREQUEST._serialized_start = 7239 - _GETROBOTREQUEST._serialized_end = 7272 - _GETROVERRENTALROBOTSREQUEST._serialized_start = 7274 - _GETROVERRENTALROBOTSREQUEST._serialized_end = 7326 - _ROVERRENTALROBOT._serialized_start = 7329 - _ROVERRENTALROBOT._serialized_end = 7483 - _GETROVERRENTALROBOTSRESPONSE._serialized_start = 7485 - _GETROVERRENTALROBOTSRESPONSE._serialized_end = 7570 - _GETROBOTRESPONSE._serialized_start = 7572 - _GETROBOTRESPONSE._serialized_end = 7632 - _GETROBOTPARTSREQUEST._serialized_start = 7634 - _GETROBOTPARTSREQUEST._serialized_end = 7683 - _GETROBOTPARTSRESPONSE._serialized_start = 7685 - _GETROBOTPARTSRESPONSE._serialized_end = 7754 - _GETROBOTPARTREQUEST._serialized_start = 7756 - _GETROBOTPARTREQUEST._serialized_end = 7793 - _GETROBOTPARTRESPONSE._serialized_start = 7795 - _GETROBOTPARTRESPONSE._serialized_end = 7894 - _GETROBOTPARTLOGSREQUEST._serialized_start = 7897 - _GETROBOTPARTLOGSREQUEST._serialized_end = 8062 - _LOGENTRY._serialized_start = 8065 - _LOGENTRY._serialized_end = 8344 - _GETROBOTPARTLOGSRESPONSE._serialized_start = 8346 - _GETROBOTPARTLOGSRESPONSE._serialized_end = 8455 - _TAILROBOTPARTLOGSREQUEST._serialized_start = 8457 - _TAILROBOTPARTLOGSREQUEST._serialized_end = 8572 - _TAILROBOTPARTLOGSRESPONSE._serialized_start = 8574 - _TAILROBOTPARTLOGSRESPONSE._serialized_end = 8644 - _GETROBOTPARTHISTORYREQUEST._serialized_start = 8646 - _GETROBOTPARTHISTORYREQUEST._serialized_end = 8690 - _GETROBOTPARTHISTORYRESPONSE._serialized_start = 8692 - _GETROBOTPARTHISTORYRESPONSE._serialized_end = 8783 - _UPDATEROBOTPARTREQUEST._serialized_start = 8785 - _UPDATEROBOTPARTREQUEST._serialized_end = 8905 - _UPDATEROBOTPARTRESPONSE._serialized_start = 8907 - _UPDATEROBOTPARTRESPONSE._serialized_end = 8976 - _NEWROBOTPARTREQUEST._serialized_start = 8978 - _NEWROBOTPARTREQUEST._serialized_end = 9055 - _NEWROBOTPARTRESPONSE._serialized_start = 9057 - _NEWROBOTPARTRESPONSE._serialized_end = 9104 - _DELETEROBOTPARTREQUEST._serialized_start = 9106 - _DELETEROBOTPARTREQUEST._serialized_end = 9155 - _DELETEROBOTPARTRESPONSE._serialized_start = 9157 - _DELETEROBOTPARTRESPONSE._serialized_end = 9182 - _FRAGMENT._serialized_start = 9185 - _FRAGMENT._serialized_end = 9801 - _LISTFRAGMENTSREQUEST._serialized_start = 9803 - _LISTFRAGMENTSREQUEST._serialized_end = 9899 - _LISTFRAGMENTSRESPONSE._serialized_start = 9901 - _LISTFRAGMENTSRESPONSE._serialized_end = 9977 - _GETFRAGMENTREQUEST._serialized_start = 9979 - _GETFRAGMENTREQUEST._serialized_end = 10015 - _GETFRAGMENTRESPONSE._serialized_start = 10017 - _GETFRAGMENTRESPONSE._serialized_end = 10089 - _CREATEFRAGMENTREQUEST._serialized_start = 10092 - _CREATEFRAGMENTREQUEST._serialized_end = 10225 - _CREATEFRAGMENTRESPONSE._serialized_start = 10227 - _CREATEFRAGMENTRESPONSE._serialized_end = 10302 - _UPDATEFRAGMENTREQUEST._serialized_start = 10305 - _UPDATEFRAGMENTREQUEST._serialized_end = 10453 - _UPDATEFRAGMENTRESPONSE._serialized_start = 10455 - _UPDATEFRAGMENTRESPONSE._serialized_end = 10530 - _DELETEFRAGMENTREQUEST._serialized_start = 10532 - _DELETEFRAGMENTREQUEST._serialized_end = 10571 - _DELETEFRAGMENTRESPONSE._serialized_start = 10573 - _DELETEFRAGMENTRESPONSE._serialized_end = 10597 - _LISTROBOTSREQUEST._serialized_start = 10599 - _LISTROBOTSREQUEST._serialized_end = 10651 - _LISTROBOTSRESPONSE._serialized_start = 10653 - _LISTROBOTSRESPONSE._serialized_end = 10717 - _NEWROBOTREQUEST._serialized_start = 10719 - _NEWROBOTREQUEST._serialized_end = 10784 - _NEWROBOTRESPONSE._serialized_start = 10786 - _NEWROBOTRESPONSE._serialized_end = 10820 - _UPDATEROBOTREQUEST._serialized_start = 10822 - _UPDATEROBOTREQUEST._serialized_end = 10906 - _UPDATEROBOTRESPONSE._serialized_start = 10908 - _UPDATEROBOTRESPONSE._serialized_end = 10971 - _DELETEROBOTREQUEST._serialized_start = 10973 - _DELETEROBOTREQUEST._serialized_end = 11009 - _DELETEROBOTRESPONSE._serialized_start = 11011 - _DELETEROBOTRESPONSE._serialized_end = 11032 - _MARKPARTASMAINREQUEST._serialized_start = 11034 - _MARKPARTASMAINREQUEST._serialized_end = 11082 - _MARKPARTASMAINRESPONSE._serialized_start = 11084 - _MARKPARTASMAINRESPONSE._serialized_end = 11108 - _MARKPARTFORRESTARTREQUEST._serialized_start = 11110 - _MARKPARTFORRESTARTREQUEST._serialized_end = 11162 - _MARKPARTFORRESTARTRESPONSE._serialized_start = 11164 - _MARKPARTFORRESTARTRESPONSE._serialized_end = 11192 - _CREATEROBOTPARTSECRETREQUEST._serialized_start = 11194 - _CREATEROBOTPARTSECRETREQUEST._serialized_end = 11249 - _CREATEROBOTPARTSECRETRESPONSE._serialized_start = 11251 - _CREATEROBOTPARTSECRETRESPONSE._serialized_end = 11326 - _DELETEROBOTPARTSECRETREQUEST._serialized_start = 11328 - _DELETEROBOTPARTSECRETREQUEST._serialized_end = 11412 - _DELETEROBOTPARTSECRETRESPONSE._serialized_start = 11414 - _DELETEROBOTPARTSECRETRESPONSE._serialized_end = 11445 - _AUTHORIZATION._serialized_start = 11448 - _AUTHORIZATION._serialized_end = 11697 - _ADDROLEREQUEST._serialized_start = 11699 - _ADDROLEREQUEST._serialized_end = 11781 - _ADDROLERESPONSE._serialized_start = 11783 - _ADDROLERESPONSE._serialized_end = 11800 - _REMOVEROLEREQUEST._serialized_start = 11802 - _REMOVEROLEREQUEST._serialized_end = 11887 - _REMOVEROLERESPONSE._serialized_start = 11889 - _REMOVEROLERESPONSE._serialized_end = 11909 - _CHANGEROLEREQUEST._serialized_start = 11912 - _CHANGEROLEREQUEST._serialized_end = 12077 - _CHANGEROLERESPONSE._serialized_start = 12079 - _CHANGEROLERESPONSE._serialized_end = 12099 - _LISTAUTHORIZATIONSREQUEST._serialized_start = 12101 - _LISTAUTHORIZATIONSREQUEST._serialized_end = 12204 - _LISTAUTHORIZATIONSRESPONSE._serialized_start = 12206 - _LISTAUTHORIZATIONSRESPONSE._serialized_end = 12302 - _CHECKPERMISSIONSREQUEST._serialized_start = 12304 - _CHECKPERMISSIONSREQUEST._serialized_end = 12399 - _AUTHORIZEDPERMISSIONS._serialized_start = 12401 - _AUTHORIZEDPERMISSIONS._serialized_end = 12528 - _CHECKPERMISSIONSRESPONSE._serialized_start = 12530 - _CHECKPERMISSIONSRESPONSE._serialized_end = 12647 - _CREATEMODULEREQUEST._serialized_start = 12649 - _CREATEMODULEREQUEST._serialized_end = 12731 - _CREATEMODULERESPONSE._serialized_start = 12733 - _CREATEMODULERESPONSE._serialized_end = 12802 - _UPDATEMODULEREQUEST._serialized_start = 12805 - _UPDATEMODULEREQUEST._serialized_end = 13106 - _UPDATEMODULERESPONSE._serialized_start = 13108 - _UPDATEMODULERESPONSE._serialized_end = 13148 - _MODEL._serialized_start = 13150 - _MODEL._serialized_end = 13197 - _MODULEFILEINFO._serialized_start = 13200 - _MODULEFILEINFO._serialized_end = 13365 - _UPLOADMODULEFILEREQUEST._serialized_start = 13368 - _UPLOADMODULEFILEREQUEST._serialized_end = 13503 - _UPLOADMODULEFILERESPONSE._serialized_start = 13505 - _UPLOADMODULEFILERESPONSE._serialized_end = 13549 - _GETMODULEREQUEST._serialized_start = 13551 - _GETMODULEREQUEST._serialized_end = 13664 - _GETMODULERESPONSE._serialized_start = 13666 - _GETMODULERESPONSE._serialized_end = 13730 - _MODULE._serialized_start = 13733 - _MODULE._serialized_end = 14218 - _VERSIONHISTORY._serialized_start = 14221 - _VERSIONHISTORY._serialized_end = 14383 - _UPLOADS._serialized_start = 14385 - _UPLOADS._serialized_end = 14483 - _LISTMODULESREQUEST._serialized_start = 14485 - _LISTMODULESREQUEST._serialized_end = 14571 - _LISTMODULESRESPONSE._serialized_start = 14573 - _LISTMODULESRESPONSE._serialized_end = 14641 - _GETUSERIDBYEMAILREQUEST._serialized_start = 14643 - _GETUSERIDBYEMAILREQUEST._serialized_end = 14690 - _GETUSERIDBYEMAILRESPONSE._serialized_start = 14692 - _GETUSERIDBYEMAILRESPONSE._serialized_end = 14743 - _LISTORGANIZATIONSBYUSERREQUEST._serialized_start = 14745 - _LISTORGANIZATIONSBYUSERREQUEST._serialized_end = 14802 - _ORGDETAILS._serialized_start = 14804 - _ORGDETAILS._serialized_end = 14866 - _LISTORGANIZATIONSBYUSERRESPONSE._serialized_start = 14868 - _LISTORGANIZATIONSBYUSERRESPONSE._serialized_end = 14946 - _APPSERVICE._serialized_start = 15038 - _APPSERVICE._serialized_end = 20585 \ No newline at end of file + _ORGANIZATIONINVITE._serialized_end = 2515 + _CREATEORGANIZATIONREQUEST._serialized_start = 2517 + _CREATEORGANIZATIONREQUEST._serialized_end = 2564 + _CREATEORGANIZATIONRESPONSE._serialized_start = 2566 + _CREATEORGANIZATIONRESPONSE._serialized_end = 2657 + _GETORGANIZATIONREQUEST._serialized_start = 2659 + _GETORGANIZATIONREQUEST._serialized_end = 2724 + _GETORGANIZATIONRESPONSE._serialized_start = 2726 + _GETORGANIZATIONRESPONSE._serialized_end = 2814 + _GETORGANIZATIONNAMESPACEAVAILABILITYREQUEST._serialized_start = 2816 + _GETORGANIZATIONNAMESPACEAVAILABILITYREQUEST._serialized_end = 2904 + _GETORGANIZATIONNAMESPACEAVAILABILITYRESPONSE._serialized_start = 2906 + _GETORGANIZATIONNAMESPACEAVAILABILITYRESPONSE._serialized_end = 2982 + _UPDATEORGANIZATIONREQUEST._serialized_start = 2985 + _UPDATEORGANIZATIONREQUEST._serialized_end = 3227 + _UPDATEORGANIZATIONRESPONSE._serialized_start = 3229 + _UPDATEORGANIZATIONRESPONSE._serialized_end = 3320 + _DELETEORGANIZATIONREQUEST._serialized_start = 3322 + _DELETEORGANIZATIONREQUEST._serialized_end = 3390 + _DELETEORGANIZATIONRESPONSE._serialized_start = 3392 + _DELETEORGANIZATIONRESPONSE._serialized_end = 3420 + _LISTORGANIZATIONMEMBERSREQUEST._serialized_start = 3422 + _LISTORGANIZATIONMEMBERSREQUEST._serialized_end = 3495 + _LISTORGANIZATIONMEMBERSRESPONSE._serialized_start = 3498 + _LISTORGANIZATIONMEMBERSRESPONSE._serialized_end = 3690 + _CREATEORGANIZATIONINVITEREQUEST._serialized_start = 3693 + _CREATEORGANIZATIONINVITEREQUEST._serialized_end = 3857 + _CREATEORGANIZATIONINVITERESPONSE._serialized_start = 3859 + _CREATEORGANIZATIONINVITERESPONSE._serialized_end = 3950 + _UPDATEORGANIZATIONINVITEAUTHORIZATIONSREQUEST._serialized_start = 3953 + _UPDATEORGANIZATIONINVITEAUTHORIZATIONSREQUEST._serialized_end = 4219 + _UPDATEORGANIZATIONINVITEAUTHORIZATIONSRESPONSE._serialized_start = 4221 + _UPDATEORGANIZATIONINVITEAUTHORIZATIONSRESPONSE._serialized_end = 4326 + _DELETEORGANIZATIONINVITEREQUEST._serialized_start = 4328 + _DELETEORGANIZATIONINVITEREQUEST._serialized_end = 4424 + _DELETEORGANIZATIONINVITERESPONSE._serialized_start = 4426 + _DELETEORGANIZATIONINVITERESPONSE._serialized_end = 4460 + _RESENDORGANIZATIONINVITEREQUEST._serialized_start = 4462 + _RESENDORGANIZATIONINVITEREQUEST._serialized_end = 4558 + _RESENDORGANIZATIONINVITERESPONSE._serialized_start = 4560 + _RESENDORGANIZATIONINVITERESPONSE._serialized_end = 4651 + _DELETEORGANIZATIONMEMBERREQUEST._serialized_start = 4653 + _DELETEORGANIZATIONMEMBERREQUEST._serialized_end = 4752 + _DELETEORGANIZATIONMEMBERRESPONSE._serialized_start = 4754 + _DELETEORGANIZATIONMEMBERRESPONSE._serialized_end = 4788 + _LOCATIONORGANIZATION._serialized_start = 4790 + _LOCATIONORGANIZATION._serialized_end = 4879 + _LOCATIONAUTH._serialized_start = 4882 + _LOCATIONAUTH._serialized_end = 5010 + _STORAGECONFIG._serialized_start = 5012 + _STORAGECONFIG._serialized_end = 5051 + _LOCATION._serialized_start = 5054 + _LOCATION._serialized_end = 5410 + _SHAREDSECRET._serialized_start = 5413 + _SHAREDSECRET._serialized_end = 5749 + _SHAREDSECRET_STATE._serialized_start = 5680 + _SHAREDSECRET_STATE._serialized_end = 5749 + _CREATELOCATIONREQUEST._serialized_start = 5752 + _CREATELOCATIONREQUEST._serialized_end = 5910 + _CREATELOCATIONRESPONSE._serialized_start = 5912 + _CREATELOCATIONRESPONSE._serialized_end = 5987 + _GETLOCATIONREQUEST._serialized_start = 5989 + _GETLOCATIONREQUEST._serialized_end = 6042 + _GETLOCATIONRESPONSE._serialized_start = 6044 + _GETLOCATIONRESPONSE._serialized_end = 6116 + _UPDATELOCATIONREQUEST._serialized_start = 6119 + _UPDATELOCATIONREQUEST._serialized_end = 6323 + _UPDATELOCATIONRESPONSE._serialized_start = 6325 + _UPDATELOCATIONRESPONSE._serialized_end = 6400 + _DELETELOCATIONREQUEST._serialized_start = 6402 + _DELETELOCATIONREQUEST._serialized_end = 6458 + _DELETELOCATIONRESPONSE._serialized_start = 6460 + _DELETELOCATIONRESPONSE._serialized_end = 6484 + _LISTLOCATIONSREQUEST._serialized_start = 6486 + _LISTLOCATIONSREQUEST._serialized_end = 6549 + _SHARELOCATIONREQUEST._serialized_start = 6551 + _SHARELOCATIONREQUEST._serialized_end = 6647 + _SHARELOCATIONRESPONSE._serialized_start = 6649 + _SHARELOCATIONRESPONSE._serialized_end = 6672 + _UNSHARELOCATIONREQUEST._serialized_start = 6674 + _UNSHARELOCATIONREQUEST._serialized_end = 6772 + _UNSHARELOCATIONRESPONSE._serialized_start = 6774 + _UNSHARELOCATIONRESPONSE._serialized_end = 6799 + _LISTLOCATIONSRESPONSE._serialized_start = 6801 + _LISTLOCATIONSRESPONSE._serialized_end = 6877 + _CREATELOCATIONSECRETREQUEST._serialized_start = 6879 + _CREATELOCATIONSECRETREQUEST._serialized_end = 6941 + _CREATELOCATIONSECRETRESPONSE._serialized_start = 6943 + _CREATELOCATIONSECRETRESPONSE._serialized_end = 7020 + _DELETELOCATIONSECRETREQUEST._serialized_start = 7022 + _DELETELOCATIONSECRETREQUEST._serialized_end = 7113 + _DELETELOCATIONSECRETRESPONSE._serialized_start = 7115 + _DELETELOCATIONSECRETRESPONSE._serialized_end = 7145 + _LOCATIONAUTHREQUEST._serialized_start = 7147 + _LOCATIONAUTHREQUEST._serialized_end = 7201 + _LOCATIONAUTHRESPONSE._serialized_start = 7203 + _LOCATIONAUTHRESPONSE._serialized_end = 7272 + _GETROBOTREQUEST._serialized_start = 7274 + _GETROBOTREQUEST._serialized_end = 7307 + _GETROVERRENTALROBOTSREQUEST._serialized_start = 7309 + _GETROVERRENTALROBOTSREQUEST._serialized_end = 7361 + _ROVERRENTALROBOT._serialized_start = 7364 + _ROVERRENTALROBOT._serialized_end = 7518 + _GETROVERRENTALROBOTSRESPONSE._serialized_start = 7520 + _GETROVERRENTALROBOTSRESPONSE._serialized_end = 7605 + _GETROBOTRESPONSE._serialized_start = 7607 + _GETROBOTRESPONSE._serialized_end = 7667 + _GETROBOTPARTSREQUEST._serialized_start = 7669 + _GETROBOTPARTSREQUEST._serialized_end = 7718 + _GETROBOTPARTSRESPONSE._serialized_start = 7720 + _GETROBOTPARTSRESPONSE._serialized_end = 7789 + _GETROBOTPARTREQUEST._serialized_start = 7791 + _GETROBOTPARTREQUEST._serialized_end = 7828 + _GETROBOTPARTRESPONSE._serialized_start = 7830 + _GETROBOTPARTRESPONSE._serialized_end = 7929 + _GETROBOTPARTLOGSREQUEST._serialized_start = 7932 + _GETROBOTPARTLOGSREQUEST._serialized_end = 8097 + _LOGENTRY._serialized_start = 8100 + _LOGENTRY._serialized_end = 8379 + _GETROBOTPARTLOGSRESPONSE._serialized_start = 8381 + _GETROBOTPARTLOGSRESPONSE._serialized_end = 8490 + _TAILROBOTPARTLOGSREQUEST._serialized_start = 8492 + _TAILROBOTPARTLOGSREQUEST._serialized_end = 8607 + _TAILROBOTPARTLOGSRESPONSE._serialized_start = 8609 + _TAILROBOTPARTLOGSRESPONSE._serialized_end = 8679 + _GETROBOTPARTHISTORYREQUEST._serialized_start = 8681 + _GETROBOTPARTHISTORYREQUEST._serialized_end = 8725 + _GETROBOTPARTHISTORYRESPONSE._serialized_start = 8727 + _GETROBOTPARTHISTORYRESPONSE._serialized_end = 8818 + _UPDATEROBOTPARTREQUEST._serialized_start = 8820 + _UPDATEROBOTPARTREQUEST._serialized_end = 8940 + _UPDATEROBOTPARTRESPONSE._serialized_start = 8942 + _UPDATEROBOTPARTRESPONSE._serialized_end = 9011 + _NEWROBOTPARTREQUEST._serialized_start = 9013 + _NEWROBOTPARTREQUEST._serialized_end = 9090 + _NEWROBOTPARTRESPONSE._serialized_start = 9092 + _NEWROBOTPARTRESPONSE._serialized_end = 9139 + _DELETEROBOTPARTREQUEST._serialized_start = 9141 + _DELETEROBOTPARTREQUEST._serialized_end = 9190 + _GETROBOTAPIKEYSREQUEST._serialized_start = 9192 + _GETROBOTAPIKEYSREQUEST._serialized_end = 9243 + _APIKEY._serialized_start = 9245 + _APIKEY._serialized_end = 9366 + _GETROBOTAPIKEYSRESPONSE._serialized_start = 9368 + _GETROBOTAPIKEYSRESPONSE._serialized_end = 9441 + _DELETEROBOTPARTRESPONSE._serialized_start = 9443 + _DELETEROBOTPARTRESPONSE._serialized_end = 9468 + _FRAGMENT._serialized_start = 9471 + _FRAGMENT._serialized_end = 10087 + _LISTFRAGMENTSREQUEST._serialized_start = 10089 + _LISTFRAGMENTSREQUEST._serialized_end = 10185 + _LISTFRAGMENTSRESPONSE._serialized_start = 10187 + _LISTFRAGMENTSRESPONSE._serialized_end = 10263 + _GETFRAGMENTREQUEST._serialized_start = 10265 + _GETFRAGMENTREQUEST._serialized_end = 10301 + _GETFRAGMENTRESPONSE._serialized_start = 10303 + _GETFRAGMENTRESPONSE._serialized_end = 10375 + _CREATEFRAGMENTREQUEST._serialized_start = 10378 + _CREATEFRAGMENTREQUEST._serialized_end = 10511 + _CREATEFRAGMENTRESPONSE._serialized_start = 10513 + _CREATEFRAGMENTRESPONSE._serialized_end = 10588 + _UPDATEFRAGMENTREQUEST._serialized_start = 10591 + _UPDATEFRAGMENTREQUEST._serialized_end = 10739 + _UPDATEFRAGMENTRESPONSE._serialized_start = 10741 + _UPDATEFRAGMENTRESPONSE._serialized_end = 10816 + _DELETEFRAGMENTREQUEST._serialized_start = 10818 + _DELETEFRAGMENTREQUEST._serialized_end = 10857 + _DELETEFRAGMENTRESPONSE._serialized_start = 10859 + _DELETEFRAGMENTRESPONSE._serialized_end = 10883 + _LISTROBOTSREQUEST._serialized_start = 10885 + _LISTROBOTSREQUEST._serialized_end = 10937 + _LISTROBOTSRESPONSE._serialized_start = 10939 + _LISTROBOTSRESPONSE._serialized_end = 11003 + _NEWROBOTREQUEST._serialized_start = 11005 + _NEWROBOTREQUEST._serialized_end = 11070 + _NEWROBOTRESPONSE._serialized_start = 11072 + _NEWROBOTRESPONSE._serialized_end = 11106 + _UPDATEROBOTREQUEST._serialized_start = 11108 + _UPDATEROBOTREQUEST._serialized_end = 11192 + _UPDATEROBOTRESPONSE._serialized_start = 11194 + _UPDATEROBOTRESPONSE._serialized_end = 11257 + _DELETEROBOTREQUEST._serialized_start = 11259 + _DELETEROBOTREQUEST._serialized_end = 11295 + _DELETEROBOTRESPONSE._serialized_start = 11297 + _DELETEROBOTRESPONSE._serialized_end = 11318 + _MARKPARTASMAINREQUEST._serialized_start = 11320 + _MARKPARTASMAINREQUEST._serialized_end = 11368 + _MARKPARTASMAINRESPONSE._serialized_start = 11370 + _MARKPARTASMAINRESPONSE._serialized_end = 11394 + _MARKPARTFORRESTARTREQUEST._serialized_start = 11396 + _MARKPARTFORRESTARTREQUEST._serialized_end = 11448 + _MARKPARTFORRESTARTRESPONSE._serialized_start = 11450 + _MARKPARTFORRESTARTRESPONSE._serialized_end = 11478 + _CREATEROBOTPARTSECRETREQUEST._serialized_start = 11480 + _CREATEROBOTPARTSECRETREQUEST._serialized_end = 11535 + _CREATEROBOTPARTSECRETRESPONSE._serialized_start = 11537 + _CREATEROBOTPARTSECRETRESPONSE._serialized_end = 11612 + _DELETEROBOTPARTSECRETREQUEST._serialized_start = 11614 + _DELETEROBOTPARTSECRETREQUEST._serialized_end = 11698 + _DELETEROBOTPARTSECRETRESPONSE._serialized_start = 11700 + _DELETEROBOTPARTSECRETRESPONSE._serialized_end = 11731 + _AUTHORIZATION._serialized_start = 11734 + _AUTHORIZATION._serialized_end = 12020 + _ADDROLEREQUEST._serialized_start = 12022 + _ADDROLEREQUEST._serialized_end = 12104 + _ADDROLERESPONSE._serialized_start = 12106 + _ADDROLERESPONSE._serialized_end = 12123 + _REMOVEROLEREQUEST._serialized_start = 12125 + _REMOVEROLEREQUEST._serialized_end = 12210 + _REMOVEROLERESPONSE._serialized_start = 12212 + _REMOVEROLERESPONSE._serialized_end = 12232 + _CHANGEROLEREQUEST._serialized_start = 12235 + _CHANGEROLEREQUEST._serialized_end = 12400 + _CHANGEROLERESPONSE._serialized_start = 12402 + _CHANGEROLERESPONSE._serialized_end = 12422 + _LISTAUTHORIZATIONSREQUEST._serialized_start = 12424 + _LISTAUTHORIZATIONSREQUEST._serialized_end = 12527 + _LISTAUTHORIZATIONSRESPONSE._serialized_start = 12529 + _LISTAUTHORIZATIONSRESPONSE._serialized_end = 12625 + _CHECKPERMISSIONSREQUEST._serialized_start = 12627 + _CHECKPERMISSIONSREQUEST._serialized_end = 12722 + _AUTHORIZEDPERMISSIONS._serialized_start = 12724 + _AUTHORIZEDPERMISSIONS._serialized_end = 12851 + _CHECKPERMISSIONSRESPONSE._serialized_start = 12853 + _CHECKPERMISSIONSRESPONSE._serialized_end = 12970 + _CREATEMODULEREQUEST._serialized_start = 12972 + _CREATEMODULEREQUEST._serialized_end = 13054 + _CREATEMODULERESPONSE._serialized_start = 13056 + _CREATEMODULERESPONSE._serialized_end = 13125 + _UPDATEMODULEREQUEST._serialized_start = 13128 + _UPDATEMODULEREQUEST._serialized_end = 13363 + _UPDATEMODULERESPONSE._serialized_start = 13365 + _UPDATEMODULERESPONSE._serialized_end = 13405 + _MODEL._serialized_start = 13407 + _MODEL._serialized_end = 13454 + _MODULEFILEINFO._serialized_start = 13456 + _MODULEFILEINFO._serialized_end = 13555 + _UPLOADMODULEFILEREQUEST._serialized_start = 13558 + _UPLOADMODULEFILEREQUEST._serialized_end = 13693 + _UPLOADMODULEFILERESPONSE._serialized_start = 13695 + _UPLOADMODULEFILERESPONSE._serialized_end = 13739 + _GETMODULEREQUEST._serialized_start = 13741 + _GETMODULEREQUEST._serialized_end = 13788 + _GETMODULERESPONSE._serialized_start = 13790 + _GETMODULERESPONSE._serialized_end = 13854 + _MODULE._serialized_start = 13857 + _MODULE._serialized_end = 14342 + _VERSIONHISTORY._serialized_start = 14345 + _VERSIONHISTORY._serialized_end = 14507 + _UPLOADS._serialized_start = 14509 + _UPLOADS._serialized_end = 14607 + _LISTMODULESREQUEST._serialized_start = 14609 + _LISTMODULESREQUEST._serialized_end = 14695 + _LISTMODULESRESPONSE._serialized_start = 14697 + _LISTMODULESRESPONSE._serialized_end = 14765 + _GETUSERIDBYEMAILREQUEST._serialized_start = 14767 + _GETUSERIDBYEMAILREQUEST._serialized_end = 14814 + _GETUSERIDBYEMAILRESPONSE._serialized_start = 14816 + _GETUSERIDBYEMAILRESPONSE._serialized_end = 14867 + _LISTORGANIZATIONSBYUSERREQUEST._serialized_start = 14869 + _LISTORGANIZATIONSBYUSERREQUEST._serialized_end = 14926 + _ORGDETAILS._serialized_start = 14928 + _ORGDETAILS._serialized_end = 14990 + _LISTORGANIZATIONSBYUSERRESPONSE._serialized_start = 14992 + _LISTORGANIZATIONSBYUSERRESPONSE._serialized_end = 15070 + _CREATEKEYREQUEST._serialized_start = 15072 + _CREATEKEYREQUEST._serialized_end = 15178 + _CREATEKEYRESPONSE._serialized_start = 15180 + _CREATEKEYRESPONSE._serialized_end = 15233 + _APPSERVICE._serialized_start = 15325 + _APPSERVICE._serialized_end = 21042 diff --git a/src/viam/gen/app/v1/app_pb2.pyi b/src/viam/gen/app/v1/app_pb2.pyi index d36a4aac8..c11390226 100644 --- a/src/viam/gen/app/v1/app_pb2.pyi +++ b/src/viam/gen/app/v1/app_pb2.pyi @@ -253,22 +253,25 @@ class OrganizationInvite(google.protobuf.message.Message): ORGANIZATION_ID_FIELD_NUMBER: builtins.int EMAIL_FIELD_NUMBER: builtins.int CREATED_ON_FIELD_NUMBER: builtins.int - ROBOT_COUNT_FIELD_NUMBER: builtins.int + AUTHORIZATIONS_FIELD_NUMBER: builtins.int organization_id: builtins.str email: builtins.str @property def created_on(self) -> google.protobuf.timestamp_pb2.Timestamp: ... - robot_count: builtins.int - def __init__(self, *, organization_id: builtins.str=..., email: builtins.str=..., created_on: google.protobuf.timestamp_pb2.Timestamp | None=..., robot_count: builtins.int=...) -> None: + @property + def authorizations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Authorization]: + ... + + def __init__(self, *, organization_id: builtins.str=..., email: builtins.str=..., created_on: google.protobuf.timestamp_pb2.Timestamp | None=..., authorizations: collections.abc.Iterable[global___Authorization] | None=...) -> None: ... def HasField(self, field_name: typing_extensions.Literal['created_on', b'created_on']) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal['created_on', b'created_on', 'email', b'email', 'organization_id', b'organization_id', 'robot_count', b'robot_count']) -> None: + def ClearField(self, field_name: typing_extensions.Literal['authorizations', b'authorizations', 'created_on', b'created_on', 'email', b'email', 'organization_id', b'organization_id']) -> None: ... global___OrganizationInvite = OrganizationInvite @@ -1496,6 +1499,60 @@ class DeleteRobotPartRequest(google.protobuf.message.Message): ... global___DeleteRobotPartRequest = DeleteRobotPartRequest +@typing_extensions.final +class GetRobotAPIKeysRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + ROBOT_ID_FIELD_NUMBER: builtins.int + robot_id: builtins.str + + def __init__(self, *, robot_id: builtins.str=...) -> None: + ... + + def ClearField(self, field_name: typing_extensions.Literal['robot_id', b'robot_id']) -> None: + ... +global___GetRobotAPIKeysRequest = GetRobotAPIKeysRequest + +@typing_extensions.final +class APIKey(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + ID_FIELD_NUMBER: builtins.int + KEY_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + CREATED_ON_FIELD_NUMBER: builtins.int + id: builtins.str + key: builtins.str + name: builtins.str + + @property + def created_on(self) -> google.protobuf.timestamp_pb2.Timestamp: + ... + + def __init__(self, *, id: builtins.str=..., key: builtins.str=..., name: builtins.str=..., created_on: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + ... + + def HasField(self, field_name: typing_extensions.Literal['created_on', b'created_on']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing_extensions.Literal['created_on', b'created_on', 'id', b'id', 'key', b'key', 'name', b'name']) -> None: + ... +global___APIKey = APIKey + +@typing_extensions.final +class GetRobotAPIKeysResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + API_KEYS_FIELD_NUMBER: builtins.int + + @property + def api_keys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___APIKey]: + ... + + def __init__(self, *, api_keys: collections.abc.Iterable[global___APIKey] | None=...) -> None: + ... + + def ClearField(self, field_name: typing_extensions.Literal['api_keys', b'api_keys']) -> None: + ... +global___GetRobotAPIKeysResponse = GetRobotAPIKeysResponse + @typing_extensions.final class DeleteRobotPartResponse(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -1941,17 +1998,19 @@ class Authorization(google.protobuf.message.Message): RESOURCE_ID_FIELD_NUMBER: builtins.int IDENTITY_ID_FIELD_NUMBER: builtins.int ORGANIZATION_ID_FIELD_NUMBER: builtins.int + IDENTITY_TYPE_FIELD_NUMBER: builtins.int authorization_type: builtins.str authorization_id: builtins.str resource_type: builtins.str resource_id: builtins.str identity_id: builtins.str organization_id: builtins.str + identity_type: builtins.str - def __init__(self, *, authorization_type: builtins.str=..., authorization_id: builtins.str=..., resource_type: builtins.str=..., resource_id: builtins.str=..., identity_id: builtins.str=..., organization_id: builtins.str=...) -> None: + def __init__(self, *, authorization_type: builtins.str=..., authorization_id: builtins.str=..., resource_type: builtins.str=..., resource_id: builtins.str=..., identity_id: builtins.str=..., organization_id: builtins.str=..., identity_type: builtins.str=...) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal['authorization_id', b'authorization_id', 'authorization_type', b'authorization_type', 'identity_id', b'identity_id', 'organization_id', b'organization_id', 'resource_id', b'resource_id', 'resource_type', b'resource_type']) -> None: + def ClearField(self, field_name: typing_extensions.Literal['authorization_id', b'authorization_id', 'authorization_type', b'authorization_type', 'identity_id', b'identity_id', 'identity_type', b'identity_type', 'organization_id', b'organization_id', 'resource_id', b'resource_id', 'resource_type', b'resource_type']) -> None: ... global___Authorization = Authorization @@ -2151,7 +2210,7 @@ class CreateModuleResponse(google.protobuf.message.Message): MODULE_ID_FIELD_NUMBER: builtins.int URL_FIELD_NUMBER: builtins.int module_id: builtins.str - 'The id of the module containing the namespace and name' + "The id of the module (formatted as prefix:name where prefix is the module owner's orgid or namespace)" url: builtins.str 'The detail page of the module' @@ -2166,16 +2225,13 @@ global___CreateModuleResponse = CreateModuleResponse class UpdateModuleRequest(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor MODULE_ID_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int VISIBILITY_FIELD_NUMBER: builtins.int URL_FIELD_NUMBER: builtins.int DESCRIPTION_FIELD_NUMBER: builtins.int MODELS_FIELD_NUMBER: builtins.int ENTRYPOINT_FIELD_NUMBER: builtins.int module_id: builtins.str - 'The id of the module being updated, containing module name or namespace and module name' - organization_id: builtins.str - 'The organization of the module being updated, required if no namespace exists in the module_id' + "The id of the module (formatted as prefix:name where prefix is the module owner's orgid or namespace)" visibility: global___Visibility.ValueType 'The visibility that should be set for the module' url: builtins.str @@ -2189,16 +2245,10 @@ class UpdateModuleRequest(google.protobuf.message.Message): entrypoint: builtins.str 'The executable to run to start the module program' - def __init__(self, *, module_id: builtins.str=..., organization_id: builtins.str | None=..., visibility: global___Visibility.ValueType=..., url: builtins.str=..., description: builtins.str=..., models: collections.abc.Iterable[global___Model] | None=..., entrypoint: builtins.str=...) -> None: - ... - - def HasField(self, field_name: typing_extensions.Literal['_organization_id', b'_organization_id', 'organization_id', b'organization_id']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing_extensions.Literal['_organization_id', b'_organization_id', 'description', b'description', 'entrypoint', b'entrypoint', 'models', b'models', 'module_id', b'module_id', 'organization_id', b'organization_id', 'url', b'url', 'visibility', b'visibility']) -> None: + def __init__(self, *, module_id: builtins.str=..., visibility: global___Visibility.ValueType=..., url: builtins.str=..., description: builtins.str=..., models: collections.abc.Iterable[global___Model] | None=..., entrypoint: builtins.str=...) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal['_organization_id', b'_organization_id']) -> typing_extensions.Literal['organization_id'] | None: + def ClearField(self, field_name: typing_extensions.Literal['description', b'description', 'entrypoint', b'entrypoint', 'models', b'models', 'module_id', b'module_id', 'url', b'url', 'visibility', b'visibility']) -> None: ... global___UpdateModuleRequest = UpdateModuleRequest @@ -2237,28 +2287,19 @@ global___Model = Model class ModuleFileInfo(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor MODULE_ID_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int VERSION_FIELD_NUMBER: builtins.int PLATFORM_FIELD_NUMBER: builtins.int module_id: builtins.str - 'The id of the module being uploaded, containing module name or namespace and module name' - organization_id: builtins.str - 'The organization of the module being updated, required if no namespace exists in the module_id' + "The id of the module (formatted as prefix:name where prefix is the module owner's orgid or namespace)" version: builtins.str 'The semver string that represents the new major/minor/patch version of the module' platform: builtins.str 'The platform that the file is built to run on' - def __init__(self, *, module_id: builtins.str=..., organization_id: builtins.str | None=..., version: builtins.str=..., platform: builtins.str=...) -> None: - ... - - def HasField(self, field_name: typing_extensions.Literal['_organization_id', b'_organization_id', 'organization_id', b'organization_id']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing_extensions.Literal['_organization_id', b'_organization_id', 'module_id', b'module_id', 'organization_id', b'organization_id', 'platform', b'platform', 'version', b'version']) -> None: + def __init__(self, *, module_id: builtins.str=..., version: builtins.str=..., platform: builtins.str=...) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal['_organization_id', b'_organization_id']) -> typing_extensions.Literal['organization_id'] | None: + def ClearField(self, field_name: typing_extensions.Literal['module_id', b'module_id', 'platform', b'platform', 'version', b'version']) -> None: ... global___ModuleFileInfo = ModuleFileInfo @@ -2305,22 +2346,13 @@ global___UploadModuleFileResponse = UploadModuleFileResponse class GetModuleRequest(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor MODULE_ID_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int module_id: builtins.str - 'The id of the module being retrieved, containing module name or namespace and module name' - organization_id: builtins.str - 'The organization of the module being updated, required if no namespace exists in the module_id' + "The id of the module (formatted as prefix:name where prefix is the module owner's orgid or namespace)" - def __init__(self, *, module_id: builtins.str=..., organization_id: builtins.str | None=...) -> None: + def __init__(self, *, module_id: builtins.str=...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal['_organization_id', b'_organization_id', 'organization_id', b'organization_id']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing_extensions.Literal['_organization_id', b'_organization_id', 'module_id', b'module_id', 'organization_id', b'organization_id']) -> None: - ... - - def WhichOneof(self, oneof_group: typing_extensions.Literal['_organization_id', b'_organization_id']) -> typing_extensions.Literal['organization_id'] | None: + def ClearField(self, field_name: typing_extensions.Literal['module_id', b'module_id']) -> None: ... global___GetModuleRequest = GetModuleRequest @@ -2359,7 +2391,7 @@ class Module(google.protobuf.message.Message): ENTRYPOINT_FIELD_NUMBER: builtins.int PUBLIC_NAMESPACE_FIELD_NUMBER: builtins.int module_id: builtins.str - 'The id of the module, containing module name or namespace and module name' + "The id of the module (formatted as prefix:name where prefix is the module owner's orgid or namespace)" name: builtins.str 'The name of the module' visibility: global___Visibility.ValueType @@ -2549,4 +2581,37 @@ class ListOrganizationsByUserResponse(google.protobuf.message.Message): def ClearField(self, field_name: typing_extensions.Literal['orgs', b'orgs']) -> None: ... -global___ListOrganizationsByUserResponse = ListOrganizationsByUserResponse \ No newline at end of file +global___ListOrganizationsByUserResponse = ListOrganizationsByUserResponse + +@typing_extensions.final +class CreateKeyRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + AUTHORIZATIONS_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + + @property + def authorizations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Authorization]: + ... + name: builtins.str + + def __init__(self, *, authorizations: collections.abc.Iterable[global___Authorization] | None=..., name: builtins.str=...) -> None: + ... + + def ClearField(self, field_name: typing_extensions.Literal['authorizations', b'authorizations', 'name', b'name']) -> None: + ... +global___CreateKeyRequest = CreateKeyRequest + +@typing_extensions.final +class CreateKeyResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + KEY_FIELD_NUMBER: builtins.int + ID_FIELD_NUMBER: builtins.int + key: builtins.str + id: builtins.str + + def __init__(self, *, key: builtins.str=..., id: builtins.str=...) -> None: + ... + + def ClearField(self, field_name: typing_extensions.Literal['id', b'id', 'key', b'key']) -> None: + ... +global___CreateKeyResponse = CreateKeyResponse \ No newline at end of file diff --git a/src/viam/gen/component/camera/v1/camera_pb2.pyi b/src/viam/gen/component/camera/v1/camera_pb2.pyi index e9a8b4395..ada047ce8 100644 --- a/src/viam/gen/component/camera/v1/camera_pb2.pyi +++ b/src/viam/gen/component/camera/v1/camera_pb2.pyi @@ -359,4 +359,4 @@ class DistortionParameters(google.protobuf.message.Message): def ClearField(self, field_name: typing_extensions.Literal['model', b'model', 'parameters', b'parameters']) -> None: ... -global___DistortionParameters = DistortionParameters +global___DistortionParameters = DistortionParameters \ No newline at end of file diff --git a/src/viam/gen/component/movementsensor/v1/movementsensor_pb2.pyi b/src/viam/gen/component/movementsensor/v1/movementsensor_pb2.pyi index fa6f0ebf8..d4517b67e 100644 --- a/src/viam/gen/component/movementsensor/v1/movementsensor_pb2.pyi +++ b/src/viam/gen/component/movementsensor/v1/movementsensor_pb2.pyi @@ -163,7 +163,7 @@ class GetOrientationResponse(google.protobuf.message.Message): @property def orientation(self) -> common.v1.common_pb2.Orientation: - """Orientation is returned as an orientation message with + """Orientation is returned as an orientation message with OX OY OZ as unit-normalized components of the axis of the vector, and Theta in degrees """ @@ -207,7 +207,7 @@ class GetPositionResponse(google.protobuf.message.Message): @property def coordinate(self) -> common.v1.common_pb2.GeoPoint: - """Position is returned in a coordinate of latitute and longitude + """Position is returned in a coordinate of latitute and longitude and an altidue in meters """ altitude_m: builtins.float diff --git a/src/viam/gen/service/mlmodel/v1/mlmodel_pb2.py b/src/viam/gen/service/mlmodel/v1/mlmodel_pb2.py index 23330fde2..d93d6698f 100644 --- a/src/viam/gen/service/mlmodel/v1/mlmodel_pb2.py +++ b/src/viam/gen/service/mlmodel/v1/mlmodel_pb2.py @@ -6,7 +6,7 @@ _sym_db = _symbol_database.Default() from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n service/mlmodel/v1/mlmodel.proto\x12\x17viam.service.mlmodel.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1cgoogle/protobuf/struct.proto"\xd4\x01\n\x0cInferRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x126\n\ninput_data\x18\x02 \x01(\x0b2\x17.google.protobuf.StructR\tinputData\x12I\n\rinput_tensors\x18\x03 \x01(\x0b2$.viam.service.mlmodel.v1.FlatTensorsR\x0cinputTensors\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"\x96\x01\n\rInferResponse\x128\n\x0boutput_data\x18\x02 \x01(\x0b2\x17.google.protobuf.StructR\noutputData\x12K\n\x0eoutput_tensors\x18\x03 \x01(\x0b2$.viam.service.mlmodel.v1.FlatTensorsR\routputTensors"T\n\x0fMetadataRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"Q\n\x10MetadataResponse\x12=\n\x08metadata\x18\x01 \x01(\x0b2!.viam.service.mlmodel.v1.MetadataR\x08metadata"\xde\x01\n\x08Metadata\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04type\x18\x02 \x01(\tR\x04type\x12 \n\x0bdescription\x18\x03 \x01(\tR\x0bdescription\x12B\n\ninput_info\x18\x04 \x03(\x0b2#.viam.service.mlmodel.v1.TensorInfoR\tinputInfo\x12D\n\x0boutput_info\x18\x05 \x03(\x0b2#.viam.service.mlmodel.v1.TensorInfoR\noutputInfo"\xee\x01\n\nTensorInfo\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12 \n\x0bdescription\x18\x02 \x01(\tR\x0bdescription\x12\x1b\n\tdata_type\x18\x03 \x01(\tR\x08dataType\x12\x14\n\x05shape\x18\x04 \x03(\x05R\x05shape\x12H\n\x10associated_files\x18\x05 \x03(\x0b2\x1d.viam.service.mlmodel.v1.FileR\x0fassociatedFiles\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"\x7f\n\x04File\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12 \n\x0bdescription\x18\x02 \x01(\tR\x0bdescription\x12A\n\nlabel_type\x18\x03 \x01(\x0e2".viam.service.mlmodel.v1.LabelTypeR\tlabelType"(\n\x12FlatTensorDataInt8\x12\x12\n\x04data\x18\x01 \x01(\x0cR\x04data")\n\x13FlatTensorDataUInt8\x12\x12\n\x04data\x18\x01 \x01(\x0cR\x04data"-\n\x13FlatTensorDataInt16\x12\x16\n\x04data\x18\x01 \x03(\x07B\x02\x10\x01R\x04data".\n\x14FlatTensorDataUInt16\x12\x16\n\x04data\x18\x01 \x03(\x07B\x02\x10\x01R\x04data"-\n\x13FlatTensorDataInt32\x12\x16\n\x04data\x18\x01 \x03(\x0fB\x02\x10\x01R\x04data".\n\x14FlatTensorDataUInt32\x12\x16\n\x04data\x18\x01 \x03(\x07B\x02\x10\x01R\x04data"-\n\x13FlatTensorDataInt64\x12\x16\n\x04data\x18\x01 \x03(\x10B\x02\x10\x01R\x04data".\n\x14FlatTensorDataUInt64\x12\x16\n\x04data\x18\x01 \x03(\x06B\x02\x10\x01R\x04data"-\n\x13FlatTensorDataFloat\x12\x16\n\x04data\x18\x01 \x03(\x02B\x02\x10\x01R\x04data".\n\x14FlatTensorDataDouble\x12\x16\n\x04data\x18\x01 \x03(\x01B\x02\x10\x01R\x04data"\xf3\x06\n\nFlatTensor\x12\x14\n\x05shape\x18\x01 \x03(\x06R\x05shape\x12N\n\x0bint8_tensor\x18\x02 \x01(\x0b2+.viam.service.mlmodel.v1.FlatTensorDataInt8H\x00R\nint8Tensor\x12Q\n\x0cuint8_tensor\x18\x03 \x01(\x0b2,.viam.service.mlmodel.v1.FlatTensorDataUInt8H\x00R\x0buint8Tensor\x12Q\n\x0cint16_tensor\x18\x04 \x01(\x0b2,.viam.service.mlmodel.v1.FlatTensorDataInt16H\x00R\x0bint16Tensor\x12T\n\ruint16_tensor\x18\x05 \x01(\x0b2-.viam.service.mlmodel.v1.FlatTensorDataUInt16H\x00R\x0cuint16Tensor\x12Q\n\x0cint32_tensor\x18\x06 \x01(\x0b2,.viam.service.mlmodel.v1.FlatTensorDataInt32H\x00R\x0bint32Tensor\x12T\n\ruint32_tensor\x18\x07 \x01(\x0b2-.viam.service.mlmodel.v1.FlatTensorDataUInt32H\x00R\x0cuint32Tensor\x12Q\n\x0cint64_tensor\x18\x08 \x01(\x0b2,.viam.service.mlmodel.v1.FlatTensorDataInt64H\x00R\x0bint64Tensor\x12T\n\ruint64_tensor\x18\t \x01(\x0b2-.viam.service.mlmodel.v1.FlatTensorDataUInt64H\x00R\x0cuint64Tensor\x12Q\n\x0cfloat_tensor\x18\n \x01(\x0b2,.viam.service.mlmodel.v1.FlatTensorDataFloatH\x00R\x0bfloatTensor\x12T\n\rdouble_tensor\x18\x0b \x01(\x0b2-.viam.service.mlmodel.v1.FlatTensorDataDoubleH\x00R\x0cdoubleTensorB\x08\n\x06tensor"\xbb\x01\n\x0bFlatTensors\x12K\n\x07tensors\x18\x01 \x03(\x0b21.viam.service.mlmodel.v1.FlatTensors.TensorsEntryR\x07tensors\x1a_\n\x0cTensorsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x129\n\x05value\x18\x02 \x01(\x0b2#.viam.service.mlmodel.v1.FlatTensorR\x05value:\x028\x01*`\n\tLabelType\x12\x1a\n\x16LABEL_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\x17LABEL_TYPE_TENSOR_VALUE\x10\x01\x12\x1a\n\x16LABEL_TYPE_TENSOR_AXIS\x10\x022\xb4\x02\n\x0eMLModelService\x12\x89\x01\n\x05Infer\x12%.viam.service.mlmodel.v1.InferRequest\x1a&.viam.service.mlmodel.v1.InferResponse"1\x82\xd3\xe4\x93\x02+")/viam/api/v1/service/mlmodel/{name}/infer\x12\x95\x01\n\x08Metadata\x12(.viam.service.mlmodel.v1.MetadataRequest\x1a).viam.service.mlmodel.v1.MetadataResponse"4\x82\xd3\xe4\x93\x02.\x12,/viam/api/v1/service/mlmodel/{name}/metadataBA\n\x1bcom.viam.service.mlmodel.v1Z"go.viam.com/api/service/mlmodel/v1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n service/mlmodel/v1/mlmodel.proto\x12\x17viam.service.mlmodel.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1cgoogle/protobuf/struct.proto"\xae\x01\n\x0cInferRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12I\n\rinput_tensors\x18\x03 \x01(\x0b2$.viam.service.mlmodel.v1.FlatTensorsR\x0cinputTensors\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extraJ\x04\x08\x02\x10\x03R\ninput_data"{\n\rInferResponse\x12K\n\x0eoutput_tensors\x18\x03 \x01(\x0b2$.viam.service.mlmodel.v1.FlatTensorsR\routputTensorsJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03R\x04nameR\x0boutput_data"T\n\x0fMetadataRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"Q\n\x10MetadataResponse\x12=\n\x08metadata\x18\x01 \x01(\x0b2!.viam.service.mlmodel.v1.MetadataR\x08metadata"\xde\x01\n\x08Metadata\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04type\x18\x02 \x01(\tR\x04type\x12 \n\x0bdescription\x18\x03 \x01(\tR\x0bdescription\x12B\n\ninput_info\x18\x04 \x03(\x0b2#.viam.service.mlmodel.v1.TensorInfoR\tinputInfo\x12D\n\x0boutput_info\x18\x05 \x03(\x0b2#.viam.service.mlmodel.v1.TensorInfoR\noutputInfo"\xee\x01\n\nTensorInfo\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12 \n\x0bdescription\x18\x02 \x01(\tR\x0bdescription\x12\x1b\n\tdata_type\x18\x03 \x01(\tR\x08dataType\x12\x14\n\x05shape\x18\x04 \x03(\x05R\x05shape\x12H\n\x10associated_files\x18\x05 \x03(\x0b2\x1d.viam.service.mlmodel.v1.FileR\x0fassociatedFiles\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"\x7f\n\x04File\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12 \n\x0bdescription\x18\x02 \x01(\tR\x0bdescription\x12A\n\nlabel_type\x18\x03 \x01(\x0e2".viam.service.mlmodel.v1.LabelTypeR\tlabelType"(\n\x12FlatTensorDataInt8\x12\x12\n\x04data\x18\x01 \x01(\x0cR\x04data")\n\x13FlatTensorDataUInt8\x12\x12\n\x04data\x18\x01 \x01(\x0cR\x04data"-\n\x13FlatTensorDataInt16\x12\x16\n\x04data\x18\x01 \x03(\x07B\x02\x10\x01R\x04data".\n\x14FlatTensorDataUInt16\x12\x16\n\x04data\x18\x01 \x03(\x07B\x02\x10\x01R\x04data"-\n\x13FlatTensorDataInt32\x12\x16\n\x04data\x18\x01 \x03(\x0fB\x02\x10\x01R\x04data".\n\x14FlatTensorDataUInt32\x12\x16\n\x04data\x18\x01 \x03(\x07B\x02\x10\x01R\x04data"-\n\x13FlatTensorDataInt64\x12\x16\n\x04data\x18\x01 \x03(\x10B\x02\x10\x01R\x04data".\n\x14FlatTensorDataUInt64\x12\x16\n\x04data\x18\x01 \x03(\x06B\x02\x10\x01R\x04data"-\n\x13FlatTensorDataFloat\x12\x16\n\x04data\x18\x01 \x03(\x02B\x02\x10\x01R\x04data".\n\x14FlatTensorDataDouble\x12\x16\n\x04data\x18\x01 \x03(\x01B\x02\x10\x01R\x04data"\xf3\x06\n\nFlatTensor\x12\x14\n\x05shape\x18\x01 \x03(\x06R\x05shape\x12N\n\x0bint8_tensor\x18\x02 \x01(\x0b2+.viam.service.mlmodel.v1.FlatTensorDataInt8H\x00R\nint8Tensor\x12Q\n\x0cuint8_tensor\x18\x03 \x01(\x0b2,.viam.service.mlmodel.v1.FlatTensorDataUInt8H\x00R\x0buint8Tensor\x12Q\n\x0cint16_tensor\x18\x04 \x01(\x0b2,.viam.service.mlmodel.v1.FlatTensorDataInt16H\x00R\x0bint16Tensor\x12T\n\ruint16_tensor\x18\x05 \x01(\x0b2-.viam.service.mlmodel.v1.FlatTensorDataUInt16H\x00R\x0cuint16Tensor\x12Q\n\x0cint32_tensor\x18\x06 \x01(\x0b2,.viam.service.mlmodel.v1.FlatTensorDataInt32H\x00R\x0bint32Tensor\x12T\n\ruint32_tensor\x18\x07 \x01(\x0b2-.viam.service.mlmodel.v1.FlatTensorDataUInt32H\x00R\x0cuint32Tensor\x12Q\n\x0cint64_tensor\x18\x08 \x01(\x0b2,.viam.service.mlmodel.v1.FlatTensorDataInt64H\x00R\x0bint64Tensor\x12T\n\ruint64_tensor\x18\t \x01(\x0b2-.viam.service.mlmodel.v1.FlatTensorDataUInt64H\x00R\x0cuint64Tensor\x12Q\n\x0cfloat_tensor\x18\n \x01(\x0b2,.viam.service.mlmodel.v1.FlatTensorDataFloatH\x00R\x0bfloatTensor\x12T\n\rdouble_tensor\x18\x0b \x01(\x0b2-.viam.service.mlmodel.v1.FlatTensorDataDoubleH\x00R\x0cdoubleTensorB\x08\n\x06tensor"\xbb\x01\n\x0bFlatTensors\x12K\n\x07tensors\x18\x01 \x03(\x0b21.viam.service.mlmodel.v1.FlatTensors.TensorsEntryR\x07tensors\x1a_\n\x0cTensorsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x129\n\x05value\x18\x02 \x01(\x0b2#.viam.service.mlmodel.v1.FlatTensorR\x05value:\x028\x01*`\n\tLabelType\x12\x1a\n\x16LABEL_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\x17LABEL_TYPE_TENSOR_VALUE\x10\x01\x12\x1a\n\x16LABEL_TYPE_TENSOR_AXIS\x10\x022\xb4\x02\n\x0eMLModelService\x12\x89\x01\n\x05Infer\x12%.viam.service.mlmodel.v1.InferRequest\x1a&.viam.service.mlmodel.v1.InferResponse"1\x82\xd3\xe4\x93\x02+")/viam/api/v1/service/mlmodel/{name}/infer\x12\x95\x01\n\x08Metadata\x12(.viam.service.mlmodel.v1.MetadataRequest\x1a).viam.service.mlmodel.v1.MetadataResponse"4\x82\xd3\xe4\x93\x02.\x12,/viam/api/v1/service/mlmodel/{name}/metadataBA\n\x1bcom.viam.service.mlmodel.v1Z"go.viam.com/api/service/mlmodel/v1b\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'service.mlmodel.v1.mlmodel_pb2', globals()) if _descriptor._USE_C_DESCRIPTORS == False: @@ -34,47 +34,47 @@ _MLMODELSERVICE.methods_by_name['Infer']._serialized_options = b'\x82\xd3\xe4\x93\x02+")/viam/api/v1/service/mlmodel/{name}/infer' _MLMODELSERVICE.methods_by_name['Metadata']._options = None _MLMODELSERVICE.methods_by_name['Metadata']._serialized_options = b'\x82\xd3\xe4\x93\x02.\x12,/viam/api/v1/service/mlmodel/{name}/metadata' - _LABELTYPE._serialized_start = 2794 - _LABELTYPE._serialized_end = 2890 + _LABELTYPE._serialized_start = 2728 + _LABELTYPE._serialized_end = 2824 _INFERREQUEST._serialized_start = 122 - _INFERREQUEST._serialized_end = 334 - _INFERRESPONSE._serialized_start = 337 - _INFERRESPONSE._serialized_end = 487 - _METADATAREQUEST._serialized_start = 489 - _METADATAREQUEST._serialized_end = 573 - _METADATARESPONSE._serialized_start = 575 - _METADATARESPONSE._serialized_end = 656 - _METADATA._serialized_start = 659 - _METADATA._serialized_end = 881 - _TENSORINFO._serialized_start = 884 - _TENSORINFO._serialized_end = 1122 - _FILE._serialized_start = 1124 - _FILE._serialized_end = 1251 - _FLATTENSORDATAINT8._serialized_start = 1253 - _FLATTENSORDATAINT8._serialized_end = 1293 - _FLATTENSORDATAUINT8._serialized_start = 1295 - _FLATTENSORDATAUINT8._serialized_end = 1336 - _FLATTENSORDATAINT16._serialized_start = 1338 - _FLATTENSORDATAINT16._serialized_end = 1383 - _FLATTENSORDATAUINT16._serialized_start = 1385 - _FLATTENSORDATAUINT16._serialized_end = 1431 - _FLATTENSORDATAINT32._serialized_start = 1433 - _FLATTENSORDATAINT32._serialized_end = 1478 - _FLATTENSORDATAUINT32._serialized_start = 1480 - _FLATTENSORDATAUINT32._serialized_end = 1526 - _FLATTENSORDATAINT64._serialized_start = 1528 - _FLATTENSORDATAINT64._serialized_end = 1573 - _FLATTENSORDATAUINT64._serialized_start = 1575 - _FLATTENSORDATAUINT64._serialized_end = 1621 - _FLATTENSORDATAFLOAT._serialized_start = 1623 - _FLATTENSORDATAFLOAT._serialized_end = 1668 - _FLATTENSORDATADOUBLE._serialized_start = 1670 - _FLATTENSORDATADOUBLE._serialized_end = 1716 - _FLATTENSOR._serialized_start = 1719 - _FLATTENSOR._serialized_end = 2602 - _FLATTENSORS._serialized_start = 2605 - _FLATTENSORS._serialized_end = 2792 - _FLATTENSORS_TENSORSENTRY._serialized_start = 2697 - _FLATTENSORS_TENSORSENTRY._serialized_end = 2792 - _MLMODELSERVICE._serialized_start = 2893 - _MLMODELSERVICE._serialized_end = 3201 \ No newline at end of file + _INFERREQUEST._serialized_end = 296 + _INFERRESPONSE._serialized_start = 298 + _INFERRESPONSE._serialized_end = 421 + _METADATAREQUEST._serialized_start = 423 + _METADATAREQUEST._serialized_end = 507 + _METADATARESPONSE._serialized_start = 509 + _METADATARESPONSE._serialized_end = 590 + _METADATA._serialized_start = 593 + _METADATA._serialized_end = 815 + _TENSORINFO._serialized_start = 818 + _TENSORINFO._serialized_end = 1056 + _FILE._serialized_start = 1058 + _FILE._serialized_end = 1185 + _FLATTENSORDATAINT8._serialized_start = 1187 + _FLATTENSORDATAINT8._serialized_end = 1227 + _FLATTENSORDATAUINT8._serialized_start = 1229 + _FLATTENSORDATAUINT8._serialized_end = 1270 + _FLATTENSORDATAINT16._serialized_start = 1272 + _FLATTENSORDATAINT16._serialized_end = 1317 + _FLATTENSORDATAUINT16._serialized_start = 1319 + _FLATTENSORDATAUINT16._serialized_end = 1365 + _FLATTENSORDATAINT32._serialized_start = 1367 + _FLATTENSORDATAINT32._serialized_end = 1412 + _FLATTENSORDATAUINT32._serialized_start = 1414 + _FLATTENSORDATAUINT32._serialized_end = 1460 + _FLATTENSORDATAINT64._serialized_start = 1462 + _FLATTENSORDATAINT64._serialized_end = 1507 + _FLATTENSORDATAUINT64._serialized_start = 1509 + _FLATTENSORDATAUINT64._serialized_end = 1555 + _FLATTENSORDATAFLOAT._serialized_start = 1557 + _FLATTENSORDATAFLOAT._serialized_end = 1602 + _FLATTENSORDATADOUBLE._serialized_start = 1604 + _FLATTENSORDATADOUBLE._serialized_end = 1650 + _FLATTENSOR._serialized_start = 1653 + _FLATTENSOR._serialized_end = 2536 + _FLATTENSORS._serialized_start = 2539 + _FLATTENSORS._serialized_end = 2726 + _FLATTENSORS_TENSORSENTRY._serialized_start = 2631 + _FLATTENSORS_TENSORSENTRY._serialized_end = 2726 + _MLMODELSERVICE._serialized_start = 2827 + _MLMODELSERVICE._serialized_end = 3135 \ No newline at end of file diff --git a/src/viam/gen/service/mlmodel/v1/mlmodel_pb2.pyi b/src/viam/gen/service/mlmodel/v1/mlmodel_pb2.pyi index 237aaee90..f4eefa96e 100644 --- a/src/viam/gen/service/mlmodel/v1/mlmodel_pb2.pyi +++ b/src/viam/gen/service/mlmodel/v1/mlmodel_pb2.pyi @@ -42,55 +42,45 @@ global___LabelType = LabelType class InferRequest(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor NAME_FIELD_NUMBER: builtins.int - INPUT_DATA_FIELD_NUMBER: builtins.int INPUT_TENSORS_FIELD_NUMBER: builtins.int EXTRA_FIELD_NUMBER: builtins.int name: builtins.str 'name of the model service' - @property - def input_data(self) -> google.protobuf.struct_pb2.Struct: - """this is a struct of input arrays/tensors as specified in the metadata""" - @property def input_tensors(self) -> global___FlatTensors: - """the input data can also be provided as set of named flat tensors""" + """the input data is provided as set of named flat tensors""" @property def extra(self) -> google.protobuf.struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., input_data: google.protobuf.struct_pb2.Struct | None=..., input_tensors: global___FlatTensors | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: builtins.str=..., input_tensors: global___FlatTensors | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal['extra', b'extra', 'input_data', b'input_data', 'input_tensors', b'input_tensors']) -> builtins.bool: + def HasField(self, field_name: typing_extensions.Literal['extra', b'extra', 'input_tensors', b'input_tensors']) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal['extra', b'extra', 'input_data', b'input_data', 'input_tensors', b'input_tensors', 'name', b'name']) -> None: + def ClearField(self, field_name: typing_extensions.Literal['extra', b'extra', 'input_tensors', b'input_tensors', 'name', b'name']) -> None: ... global___InferRequest = InferRequest @typing_extensions.final class InferResponse(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - OUTPUT_DATA_FIELD_NUMBER: builtins.int OUTPUT_TENSORS_FIELD_NUMBER: builtins.int - @property - def output_data(self) -> google.protobuf.struct_pb2.Struct: - """this is a struct of output arrays/tensors as specified in the metadata""" - @property def output_tensors(self) -> global___FlatTensors: - """the output data can be provided as a set of named flat tensors""" + """the output data is provided as a set of named flat tensors""" - def __init__(self, *, output_data: google.protobuf.struct_pb2.Struct | None=..., output_tensors: global___FlatTensors | None=...) -> None: + def __init__(self, *, output_tensors: global___FlatTensors | None=...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal['output_data', b'output_data', 'output_tensors', b'output_tensors']) -> builtins.bool: + def HasField(self, field_name: typing_extensions.Literal['output_tensors', b'output_tensors']) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal['output_data', b'output_data', 'output_tensors', b'output_tensors']) -> None: + def ClearField(self, field_name: typing_extensions.Literal['output_tensors', b'output_tensors']) -> None: ... global___InferResponse = InferResponse diff --git a/src/viam/proto/app/__init__.py b/src/viam/proto/app/__init__.py index 86b18b989..270c5e7f5 100644 --- a/src/viam/proto/app/__init__.py +++ b/src/viam/proto/app/__init__.py @@ -6,6 +6,7 @@ from ...gen.app.v1.app_pb2 import ( AddRoleRequest, AddRoleResponse, + APIKey, Authorization, AuthorizedPermissions, ChangeRoleRequest, @@ -14,6 +15,8 @@ CheckPermissionsResponse, CreateFragmentRequest, CreateFragmentResponse, + CreateKeyRequest, + CreateKeyResponse, CreateLocationRequest, CreateLocationResponse, CreateLocationSecretRequest, @@ -55,6 +58,8 @@ GetOrganizationNamespaceAvailabilityResponse, GetOrganizationRequest, GetOrganizationResponse, + GetRobotAPIKeysRequest, + GetRobotAPIKeysResponse, GetRobotPartHistoryRequest, GetRobotPartHistoryResponse, GetRobotPartLogsRequest, @@ -146,6 +151,7 @@ __all__ = [ "AppServiceBase", "AppServiceStub", + "APIKey", "AddRoleRequest", "AddRoleResponse", "Authorization", @@ -156,6 +162,8 @@ "CheckPermissionsResponse", "CreateFragmentRequest", "CreateFragmentResponse", + "CreateKeyRequest", + "CreateKeyResponse", "CreateLocationRequest", "CreateLocationResponse", "CreateLocationSecretRequest", @@ -197,6 +205,8 @@ "GetOrganizationNamespaceAvailabilityResponse", "GetOrganizationRequest", "GetOrganizationResponse", + "GetRobotAPIKeysRequest", + "GetRobotAPIKeysResponse", "GetRobotPartHistoryRequest", "GetRobotPartHistoryResponse", "GetRobotPartLogsRequest", diff --git a/src/viam/proto/app/data/__init__.py b/src/viam/proto/app/data/__init__.py index a5ceed82a..92a7f132c 100644 --- a/src/viam/proto/app/data/__init__.py +++ b/src/viam/proto/app/data/__init__.py @@ -23,6 +23,8 @@ BoundingBoxLabelsByFilterResponse, CaptureInterval, CaptureMetadata, + ConfigureDatabaseUserRequest, + ConfigureDatabaseUserResponse, DataRequest, DeleteBinaryDataByFilterRequest, DeleteBinaryDataByFilterResponse, @@ -30,7 +32,11 @@ DeleteBinaryDataByIDsResponse, DeleteTabularDataByFilterRequest, DeleteTabularDataByFilterResponse, + DeleteTabularDataRequest, + DeleteTabularDataResponse, Filter, + GetDatabaseConnectionRequest, + GetDatabaseConnectionResponse, Order, RemoveBoundingBoxFromImageByIDRequest, RemoveBoundingBoxFromImageByIDResponse, @@ -69,6 +75,8 @@ "BoundingBoxLabelsByFilterResponse", "CaptureInterval", "CaptureMetadata", + "ConfigureDatabaseUserRequest", + "ConfigureDatabaseUserResponse", "DataRequest", "DeleteBinaryDataByFilterRequest", "DeleteBinaryDataByFilterResponse", @@ -76,7 +84,11 @@ "DeleteBinaryDataByIDsResponse", "DeleteTabularDataByFilterRequest", "DeleteTabularDataByFilterResponse", + "DeleteTabularDataRequest", + "DeleteTabularDataResponse", "Filter", + "GetDatabaseConnectionRequest", + "GetDatabaseConnectionResponse", "Order", "RemoveBoundingBoxFromImageByIDRequest", "RemoveBoundingBoxFromImageByIDResponse", diff --git a/src/viam/services/mlmodel/client.py b/src/viam/services/mlmodel/client.py index f798d941b..c71dbb656 100644 --- a/src/viam/services/mlmodel/client.py +++ b/src/viam/services/mlmodel/client.py @@ -1,12 +1,12 @@ from typing import Dict, Mapping, Optional from grpclib.client import Channel +from numpy.typing import NDArray from viam.proto.common import DoCommandRequest, DoCommandResponse from viam.proto.service.mlmodel import InferRequest, InferResponse, MetadataRequest, MetadataResponse, MLModelServiceStub from viam.resource.rpc_client_base import ReconfigurableResourceRPCClientBase -from viam.utils import ValueTypes, dict_to_struct, struct_to_dict, flat_tensors_to_ndarrays, ndarrays_to_flat_tensors -from numpy.typing import NDArray +from viam.utils import ValueTypes, dict_to_struct, flat_tensors_to_ndarrays, ndarrays_to_flat_tensors, struct_to_dict from .mlmodel import Metadata, MLModel diff --git a/src/viam/services/mlmodel/mlmodel.py b/src/viam/services/mlmodel/mlmodel.py index 68387c45b..c8229ca6b 100644 --- a/src/viam/services/mlmodel/mlmodel.py +++ b/src/viam/services/mlmodel/mlmodel.py @@ -1,7 +1,8 @@ import abc -from numpy.typing import NDArray from typing import Dict, Final, Optional +from numpy.typing import NDArray + from viam.proto.service.mlmodel import Metadata from viam.resource.types import RESOURCE_NAMESPACE_RDK, RESOURCE_TYPE_SERVICE, Subtype diff --git a/src/viam/sessions_client.py b/src/viam/sessions_client.py index 8748ab314..f87ac6bd4 100644 --- a/src/viam/sessions_client.py +++ b/src/viam/sessions_client.py @@ -1,7 +1,7 @@ import asyncio from datetime import timedelta from enum import IntEnum -from threading import Thread, Lock +from threading import Lock, Thread from typing import Optional from grpclib import Status diff --git a/src/viam/utils.py b/src/viam/utils.py index 228584763..62a0260e0 100644 --- a/src/viam/utils.py +++ b/src/viam/utils.py @@ -1,36 +1,36 @@ import asyncio import contextvars import functools -import numpy as np import sys import threading from datetime import datetime from typing import Any, Dict, List, Mapping, Optional, SupportsBytes, SupportsFloat, Type, TypeVar, Union -from numpy.typing import NDArray +import numpy as np from google.protobuf.json_format import MessageToDict, ParseDict from google.protobuf.message import Message from google.protobuf.struct_pb2 import ListValue, Struct, Value from google.protobuf.timestamp_pb2 import Timestamp +from numpy.typing import NDArray from viam.proto.common import Geometry, GeoPoint, GetGeometriesRequest, GetGeometriesResponse, Orientation, ResourceName, Vector3 -from viam.resource.base import ResourceBase -from viam.resource.registry import Registry -from viam.resource.types import Subtype, SupportsGetGeometries from viam.proto.service.mlmodel import ( - FlatTensors, FlatTensor, FlatTensorDataDouble, FlatTensorDataFloat, + FlatTensorDataInt8, FlatTensorDataInt16, FlatTensorDataInt32, FlatTensorDataInt64, - FlatTensorDataInt8, + FlatTensorDataUInt8, FlatTensorDataUInt16, FlatTensorDataUInt32, FlatTensorDataUInt64, - FlatTensorDataUInt8, + FlatTensors, ) +from viam.resource.base import ResourceBase +from viam.resource.registry import Registry +from viam.resource.types import Subtype, SupportsGetGeometries if sys.version_info >= (3, 9): from collections.abc import Callable diff --git a/tests/mocks/services.py b/tests/mocks/services.py index 2c2ab739b..bd2b54262 100644 --- a/tests/mocks/services.py +++ b/tests/mocks/services.py @@ -135,6 +135,10 @@ Robot, RobotPart, LogEntry, + CreateKeyRequest, + CreateKeyResponse, + GetRobotAPIKeysRequest, + GetRobotAPIKeysResponse ) from viam.proto.app.data import ( AddBoundingBoxToImageByIDRequest, @@ -150,13 +154,19 @@ BinaryDataByIDsResponse, BoundingBoxLabelsByFilterRequest, BoundingBoxLabelsByFilterResponse, + ConfigureDatabaseUserRequest, + ConfigureDatabaseUserResponse, DataServiceBase, DeleteBinaryDataByFilterRequest, DeleteBinaryDataByFilterResponse, DeleteBinaryDataByIDsRequest, DeleteBinaryDataByIDsResponse, + DeleteTabularDataRequest, + DeleteTabularDataResponse, DeleteTabularDataByFilterRequest, DeleteTabularDataByFilterResponse, + GetDatabaseConnectionRequest, + GetDatabaseConnectionResponse, RemoveBoundingBoxFromImageByIDRequest, RemoveBoundingBoxFromImageByIDResponse, RemoveTagsFromBinaryDataByFilterRequest, @@ -552,12 +562,14 @@ def __init__( delete_remove_response: int, tags_response: List[str], bbox_labels_response: List[str], + hostname_response: str, ): self.tabular_response = tabular_response self.binary_response = binary_response self.delete_remove_response = delete_remove_response self.tags_response = tags_response self.bbox_labels_response = bbox_labels_response + self.hostname_response = hostname_response self.was_tabular_data_requested = False self.was_binary_data_requested = False @@ -604,10 +616,14 @@ async def BinaryDataByIDs(self, stream: Stream[BinaryDataByIDsRequest, BinaryDat ) async def DeleteTabularDataByFilter(self, stream: Stream[DeleteTabularDataByFilterRequest, DeleteTabularDataByFilterResponse]) -> None: + raise NotImplementedError() + + async def DeleteTabularData(self, stream: Stream[DeleteTabularDataRequest, DeleteTabularDataResponse]) -> None: request = await stream.recv_message() assert request is not None - self.filter = request.filter - await stream.send_message(DeleteTabularDataByFilterResponse(deleted_count=self.delete_remove_response)) + self.organization_id = request.organization_id + self.delete_older_than_days = request.delete_older_than_days + await stream.send_message(DeleteTabularDataResponse(deleted_count=self.delete_remove_response)) async def DeleteBinaryDataByFilter(self, stream: Stream[DeleteBinaryDataByFilterRequest, DeleteBinaryDataByFilterResponse]) -> None: request = await stream.recv_message() @@ -675,6 +691,15 @@ async def BoundingBoxLabelsByFilter(self, stream: Stream[BoundingBoxLabelsByFilt self.filter = request.filter await stream.send_message(BoundingBoxLabelsByFilterResponse(labels=self.bbox_labels_response)) + async def GetDatabaseConnection(self, stream: Stream[GetDatabaseConnectionRequest, GetDatabaseConnectionResponse]) -> None: + request = await stream.recv_message() + assert request is not None + self.organization_id = request.organization_id + await stream.send_message(GetDatabaseConnectionResponse(hostname=self.hostname_response)) + + async def ConfigureDatabaseUser(self, stream: Stream[ConfigureDatabaseUserRequest, ConfigureDatabaseUserResponse]) -> None: + raise NotImplementedError() + class MockDataSync(DataSyncServiceBase): def __init__(self, file_upload_response: str): @@ -1052,7 +1077,6 @@ async def UpdateModule(self, stream: Stream[UpdateModuleRequest, UpdateModuleRes self.description = request.description self.models = request.models self.entrypoint = request.entrypoint - self.organization_id = request.organization_id self.visibility = request.visibility await stream.send_message(UpdateModuleResponse(url=self.url)) @@ -1075,3 +1099,9 @@ async def ListModules(self, stream: Stream[ListModulesRequest, ListModulesRespon request = await stream.recv_message() assert request is not None await stream.send_message(ListModulesResponse(modules=[self.module])) + + async def CreateKey(self, stream: Stream[CreateKeyRequest, CreateKeyResponse]) -> None: + raise NotImplementedError() + + async def GetRobotAPIKeys(self, stream: Stream[GetRobotAPIKeysRequest, GetRobotAPIKeysResponse]) -> None: + raise NotImplementedError() diff --git a/tests/test_app_client.py b/tests/test_app_client.py index 1c36f74c1..f603cb243 100644 --- a/tests/test_app_client.py +++ b/tests/test_app_client.py @@ -166,7 +166,6 @@ PLATFORM = "platform" MODULE_FILE_INFO = ModuleFileInfo( module_id=ID, - organization_id=ID, version=VERSION, platform=PLATFORM ) @@ -538,7 +537,6 @@ async def test_update_module(self, service: MockApp): assert service.description == DESCRIPTION assert service.models == MODELS assert service.entrypoint == ENTRYPOINT - assert service.organization_id == ID assert service.visibility == VISIBILITY @pytest.mark.asyncio diff --git a/tests/test_data_client.py b/tests/test_data_client.py index 55f817cb1..d2b8dc24d 100644 --- a/tests/test_data_client.py +++ b/tests/test_data_client.py @@ -108,6 +108,7 @@ BINARY_RESPONSE = [DataClient.BinaryData(BINARY_DATA, BINARY_METADATA)] DELETE_REMOVE_RESPONSE = 1 TAGS_RESPONSE = ["tag"] +HOSTNAME_RESPONSE = "host" AUTH_TOKEN = "auth_token" DATA_SERVICE_METADATA = {"authorization": f"Bearer {AUTH_TOKEN}"} @@ -120,7 +121,8 @@ def service() -> MockData: binary_response=BINARY_RESPONSE, delete_remove_response=DELETE_REMOVE_RESPONSE, tags_response=TAGS_RESPONSE, - bbox_labels_response=BBOX_LABELS + bbox_labels_response=BBOX_LABELS, + hostname_response=HOSTNAME_RESPONSE ) @@ -151,12 +153,11 @@ async def test_binary_data_by_ids(self, service: MockData): self.assert_binary_ids(binary_ids=list(service.binary_ids)) @pytest.mark.asyncio - async def test_delete_tabular_data_by_filter(self, service: MockData): + async def test_delete_tabular_data(self, service: MockData): async with ChannelFor([service]) as channel: client = DataClient(channel, DATA_SERVICE_METADATA) - deleted_count = await client.delete_tabular_data_by_filter(filter=FILTER) + deleted_count = await client.delete_tabular_data(organization_id=ORG_ID, delete_older_than_days=0) assert deleted_count == DELETE_REMOVE_RESPONSE - self.assert_filter(filter=service.filter) @pytest.mark.asyncio async def test_delete_binary_data_by_filter(self, service: MockData): @@ -232,6 +233,17 @@ async def test_bounding_box_labels_by_filter(self, service: MockData): assert bbox_labels == BBOX_LABELS_RESPONSE self.assert_filter(filter=service.filter) + @pytest.mark.asyncio + async def test_get_database_connection(self, service: MockData): + async with ChannelFor([service]) as channel: + client = DataClient(channel, DATA_SERVICE_METADATA) + hostname = await client.get_database_connection(organization_id=ORG_ID) + assert hostname == HOSTNAME_RESPONSE + + @pytest.mark.asyncio + async def test_configure_database_user(self, service: MockData): + assert True + def assert_filter(self, filter: Filter) -> None: assert filter.component_name == COMPONENT_NAME assert filter.component_type == COMPONENT_TYPE