viam.proto.robot ================ .. py:module:: viam.proto.robot .. autoapi-nested-parse:: @generated by Viam. Do not edit manually! Classes ------- .. autoapisummary:: viam.proto.robot.RobotServiceBase viam.proto.robot.RobotServiceStub viam.proto.robot.UnimplementedRobotServiceBase viam.proto.robot.BlockForOperationRequest viam.proto.robot.BlockForOperationResponse viam.proto.robot.CancelOperationRequest viam.proto.robot.CancelOperationResponse viam.proto.robot.ConfigStatus viam.proto.robot.FrameSystemConfig viam.proto.robot.FrameSystemConfigRequest viam.proto.robot.FrameSystemConfigResponse viam.proto.robot.GetCloudMetadataRequest viam.proto.robot.GetCloudMetadataResponse viam.proto.robot.GetMachineStatusRequest viam.proto.robot.GetMachineStatusResponse viam.proto.robot.GetModelsFromModulesRequest viam.proto.robot.GetModelsFromModulesResponse viam.proto.robot.GetOperationsRequest viam.proto.robot.GetOperationsResponse viam.proto.robot.GetPoseRequest viam.proto.robot.GetPoseResponse viam.proto.robot.GetSessionsRequest viam.proto.robot.GetSessionsResponse viam.proto.robot.GetStatusRequest viam.proto.robot.GetStatusResponse viam.proto.robot.GetVersionRequest viam.proto.robot.GetVersionResponse viam.proto.robot.ListTunnelsRequest viam.proto.robot.ListTunnelsResponse viam.proto.robot.LogRequest viam.proto.robot.LogResponse viam.proto.robot.ModuleModel viam.proto.robot.Operation viam.proto.robot.PeerConnectionInfo viam.proto.robot.PeerConnectionType viam.proto.robot.ResourceNamesRequest viam.proto.robot.ResourceNamesResponse viam.proto.robot.ResourceRPCSubtype viam.proto.robot.ResourceRPCSubtypesRequest viam.proto.robot.ResourceRPCSubtypesResponse viam.proto.robot.ResourceStatus viam.proto.robot.RestartModuleRequest viam.proto.robot.RestartModuleResponse viam.proto.robot.SendSessionHeartbeatRequest viam.proto.robot.SendSessionHeartbeatResponse viam.proto.robot.Session viam.proto.robot.ShutdownRequest viam.proto.robot.ShutdownResponse viam.proto.robot.StartSessionRequest viam.proto.robot.StartSessionResponse viam.proto.robot.Status viam.proto.robot.StopAllRequest viam.proto.robot.StopAllResponse viam.proto.robot.StopExtraParameters viam.proto.robot.StreamStatusRequest viam.proto.robot.StreamStatusResponse viam.proto.robot.TransformPCDRequest viam.proto.robot.TransformPCDResponse viam.proto.robot.TransformPoseRequest viam.proto.robot.TransformPoseResponse viam.proto.robot.Tunnel viam.proto.robot.TunnelRequest viam.proto.robot.TunnelResponse Package Contents ---------------- .. py:class:: RobotServiceBase Bases: :py:obj:`abc.ABC` Helper class that provides a standard way to create an ABC using inheritance. .. py:method:: GetOperations(stream: grpclib.server.Stream[robot.v1.robot_pb2.GetOperationsRequest, robot.v1.robot_pb2.GetOperationsResponse]) -> None :abstractmethod: :async: .. py:method:: GetSessions(stream: grpclib.server.Stream[robot.v1.robot_pb2.GetSessionsRequest, robot.v1.robot_pb2.GetSessionsResponse]) -> None :abstractmethod: :async: .. py:method:: ResourceNames(stream: grpclib.server.Stream[robot.v1.robot_pb2.ResourceNamesRequest, robot.v1.robot_pb2.ResourceNamesResponse]) -> None :abstractmethod: :async: .. py:method:: ResourceRPCSubtypes(stream: grpclib.server.Stream[robot.v1.robot_pb2.ResourceRPCSubtypesRequest, robot.v1.robot_pb2.ResourceRPCSubtypesResponse]) -> None :abstractmethod: :async: .. py:method:: CancelOperation(stream: grpclib.server.Stream[robot.v1.robot_pb2.CancelOperationRequest, robot.v1.robot_pb2.CancelOperationResponse]) -> None :abstractmethod: :async: .. py:method:: BlockForOperation(stream: grpclib.server.Stream[robot.v1.robot_pb2.BlockForOperationRequest, robot.v1.robot_pb2.BlockForOperationResponse]) -> None :abstractmethod: :async: .. py:method:: GetModelsFromModules(stream: grpclib.server.Stream[robot.v1.robot_pb2.GetModelsFromModulesRequest, robot.v1.robot_pb2.GetModelsFromModulesResponse]) -> None :abstractmethod: :async: .. py:method:: GetStatus(stream: grpclib.server.Stream[robot.v1.robot_pb2.GetStatusRequest, robot.v1.robot_pb2.GetStatusResponse]) -> None :abstractmethod: :async: .. py:method:: StreamStatus(stream: grpclib.server.Stream[robot.v1.robot_pb2.StreamStatusRequest, robot.v1.robot_pb2.StreamStatusResponse]) -> None :abstractmethod: :async: .. py:method:: StopAll(stream: grpclib.server.Stream[robot.v1.robot_pb2.StopAllRequest, robot.v1.robot_pb2.StopAllResponse]) -> None :abstractmethod: :async: .. py:method:: StartSession(stream: grpclib.server.Stream[robot.v1.robot_pb2.StartSessionRequest, robot.v1.robot_pb2.StartSessionResponse]) -> None :abstractmethod: :async: .. py:method:: SendSessionHeartbeat(stream: grpclib.server.Stream[robot.v1.robot_pb2.SendSessionHeartbeatRequest, robot.v1.robot_pb2.SendSessionHeartbeatResponse]) -> None :abstractmethod: :async: .. py:method:: Log(stream: grpclib.server.Stream[robot.v1.robot_pb2.LogRequest, robot.v1.robot_pb2.LogResponse]) -> None :abstractmethod: :async: .. py:method:: GetCloudMetadata(stream: grpclib.server.Stream[robot.v1.robot_pb2.GetCloudMetadataRequest, robot.v1.robot_pb2.GetCloudMetadataResponse]) -> None :abstractmethod: :async: .. py:method:: RestartModule(stream: grpclib.server.Stream[robot.v1.robot_pb2.RestartModuleRequest, robot.v1.robot_pb2.RestartModuleResponse]) -> None :abstractmethod: :async: .. py:method:: Shutdown(stream: grpclib.server.Stream[robot.v1.robot_pb2.ShutdownRequest, robot.v1.robot_pb2.ShutdownResponse]) -> None :abstractmethod: :async: .. py:method:: GetMachineStatus(stream: grpclib.server.Stream[robot.v1.robot_pb2.GetMachineStatusRequest, robot.v1.robot_pb2.GetMachineStatusResponse]) -> None :abstractmethod: :async: .. py:method:: GetVersion(stream: grpclib.server.Stream[robot.v1.robot_pb2.GetVersionRequest, robot.v1.robot_pb2.GetVersionResponse]) -> None :abstractmethod: :async: .. py:method:: Tunnel(stream: grpclib.server.Stream[robot.v1.robot_pb2.TunnelRequest, robot.v1.robot_pb2.TunnelResponse]) -> None :abstractmethod: :async: .. py:method:: ListTunnels(stream: grpclib.server.Stream[robot.v1.robot_pb2.ListTunnelsRequest, robot.v1.robot_pb2.ListTunnelsResponse]) -> None :abstractmethod: :async: .. py:method:: FrameSystemConfig(stream: grpclib.server.Stream[robot.v1.robot_pb2.FrameSystemConfigRequest, robot.v1.robot_pb2.FrameSystemConfigResponse]) -> None :abstractmethod: :async: .. py:method:: GetPose(stream: grpclib.server.Stream[robot.v1.robot_pb2.GetPoseRequest, robot.v1.robot_pb2.GetPoseResponse]) -> None :abstractmethod: :async: .. py:method:: TransformPose(stream: grpclib.server.Stream[robot.v1.robot_pb2.TransformPoseRequest, robot.v1.robot_pb2.TransformPoseResponse]) -> None :abstractmethod: :async: .. py:method:: TransformPCD(stream: grpclib.server.Stream[robot.v1.robot_pb2.TransformPCDRequest, robot.v1.robot_pb2.TransformPCDResponse]) -> None :abstractmethod: :async: .. py:method:: __mapping__() -> Dict[str, grpclib.const.Handler] .. py:class:: RobotServiceStub(channel: grpclib.client.Channel) .. py:attribute:: GetOperations .. py:attribute:: GetSessions .. py:attribute:: ResourceNames .. py:attribute:: ResourceRPCSubtypes .. py:attribute:: CancelOperation .. py:attribute:: BlockForOperation .. py:attribute:: GetModelsFromModules .. py:attribute:: GetStatus .. py:attribute:: StreamStatus .. py:attribute:: StopAll .. py:attribute:: StartSession .. py:attribute:: SendSessionHeartbeat .. py:attribute:: Log .. py:attribute:: GetCloudMetadata .. py:attribute:: RestartModule .. py:attribute:: Shutdown .. py:attribute:: GetMachineStatus .. py:attribute:: GetVersion .. py:attribute:: Tunnel .. py:attribute:: ListTunnels .. py:attribute:: FrameSystemConfig .. py:attribute:: GetPose .. py:attribute:: TransformPose .. py:attribute:: TransformPCD .. py:class:: UnimplementedRobotServiceBase Bases: :py:obj:`RobotServiceBase` Helper class that provides a standard way to create an ABC using inheritance. .. py:method:: GetOperations(stream: grpclib.server.Stream[robot.v1.robot_pb2.GetOperationsRequest, robot.v1.robot_pb2.GetOperationsResponse]) -> None :async: .. py:method:: GetSessions(stream: grpclib.server.Stream[robot.v1.robot_pb2.GetSessionsRequest, robot.v1.robot_pb2.GetSessionsResponse]) -> None :async: .. py:method:: ResourceNames(stream: grpclib.server.Stream[robot.v1.robot_pb2.ResourceNamesRequest, robot.v1.robot_pb2.ResourceNamesResponse]) -> None :async: .. py:method:: ResourceRPCSubtypes(stream: grpclib.server.Stream[robot.v1.robot_pb2.ResourceRPCSubtypesRequest, robot.v1.robot_pb2.ResourceRPCSubtypesResponse]) -> None :async: .. py:method:: CancelOperation(stream: grpclib.server.Stream[robot.v1.robot_pb2.CancelOperationRequest, robot.v1.robot_pb2.CancelOperationResponse]) -> None :async: .. py:method:: BlockForOperation(stream: grpclib.server.Stream[robot.v1.robot_pb2.BlockForOperationRequest, robot.v1.robot_pb2.BlockForOperationResponse]) -> None :async: .. py:method:: GetModelsFromModules(stream: grpclib.server.Stream[robot.v1.robot_pb2.GetModelsFromModulesRequest, robot.v1.robot_pb2.GetModelsFromModulesResponse]) -> None :async: .. py:method:: GetStatus(stream: grpclib.server.Stream[robot.v1.robot_pb2.GetStatusRequest, robot.v1.robot_pb2.GetStatusResponse]) -> None :async: .. py:method:: StreamStatus(stream: grpclib.server.Stream[robot.v1.robot_pb2.StreamStatusRequest, robot.v1.robot_pb2.StreamStatusResponse]) -> None :async: .. py:method:: StopAll(stream: grpclib.server.Stream[robot.v1.robot_pb2.StopAllRequest, robot.v1.robot_pb2.StopAllResponse]) -> None :async: .. py:method:: StartSession(stream: grpclib.server.Stream[robot.v1.robot_pb2.StartSessionRequest, robot.v1.robot_pb2.StartSessionResponse]) -> None :async: .. py:method:: SendSessionHeartbeat(stream: grpclib.server.Stream[robot.v1.robot_pb2.SendSessionHeartbeatRequest, robot.v1.robot_pb2.SendSessionHeartbeatResponse]) -> None :async: .. py:method:: Log(stream: grpclib.server.Stream[robot.v1.robot_pb2.LogRequest, robot.v1.robot_pb2.LogResponse]) -> None :async: .. py:method:: GetCloudMetadata(stream: grpclib.server.Stream[robot.v1.robot_pb2.GetCloudMetadataRequest, robot.v1.robot_pb2.GetCloudMetadataResponse]) -> None :async: .. py:method:: RestartModule(stream: grpclib.server.Stream[robot.v1.robot_pb2.RestartModuleRequest, robot.v1.robot_pb2.RestartModuleResponse]) -> None :async: .. py:method:: Shutdown(stream: grpclib.server.Stream[robot.v1.robot_pb2.ShutdownRequest, robot.v1.robot_pb2.ShutdownResponse]) -> None :async: .. py:method:: GetMachineStatus(stream: grpclib.server.Stream[robot.v1.robot_pb2.GetMachineStatusRequest, robot.v1.robot_pb2.GetMachineStatusResponse]) -> None :async: .. py:method:: GetVersion(stream: grpclib.server.Stream[robot.v1.robot_pb2.GetVersionRequest, robot.v1.robot_pb2.GetVersionResponse]) -> None :async: .. py:method:: Tunnel(stream: grpclib.server.Stream[robot.v1.robot_pb2.TunnelRequest, robot.v1.robot_pb2.TunnelResponse]) -> None :async: .. py:method:: ListTunnels(stream: grpclib.server.Stream[robot.v1.robot_pb2.ListTunnelsRequest, robot.v1.robot_pb2.ListTunnelsResponse]) -> None :async: .. py:method:: FrameSystemConfig(stream: grpclib.server.Stream[robot.v1.robot_pb2.FrameSystemConfigRequest, robot.v1.robot_pb2.FrameSystemConfigResponse]) -> None :async: .. py:method:: GetPose(stream: grpclib.server.Stream[robot.v1.robot_pb2.GetPoseRequest, robot.v1.robot_pb2.GetPoseResponse]) -> None :async: .. py:method:: TransformPose(stream: grpclib.server.Stream[robot.v1.robot_pb2.TransformPoseRequest, robot.v1.robot_pb2.TransformPoseResponse]) -> None :async: .. py:method:: TransformPCD(stream: grpclib.server.Stream[robot.v1.robot_pb2.TransformPCDRequest, robot.v1.robot_pb2.TransformPCDResponse]) -> None :async: .. py:class:: BlockForOperationRequest(*, id: str = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: id :type: str .. py:class:: BlockForOperationResponse Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: CancelOperationRequest(*, id: str = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: id :type: str .. py:class:: CancelOperationResponse Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: ConfigStatus(*, revision: str = ..., last_updated: google.protobuf.timestamp_pb2.Timestamp | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: revision :type: str revision of the last config that the machine successfully ingested. .. py:property:: last_updated :type: google.protobuf.timestamp_pb2.Timestamp config ingestion timestamp. .. py:method:: HasField(field_name: Literal['last_updated', b'last_updated']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:class:: FrameSystemConfig(*, frame: viam.gen.common.v1.common_pb2.Transform | None = ..., kinematics: google.protobuf.struct_pb2.Struct | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:property:: frame :type: viam.gen.common.v1.common_pb2.Transform this is an experimental API message .. py:property:: kinematics :type: google.protobuf.struct_pb2.Struct .. py:method:: HasField(field_name: Literal['frame', b'frame', 'kinematics', b'kinematics']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:class:: FrameSystemConfigRequest(*, supplemental_transforms: collections.abc.Iterable[viam.gen.common.v1.common_pb2.Transform] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:property:: supplemental_transforms :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[viam.gen.common.v1.common_pb2.Transform] pose information on any additional reference frames that are needed to supplement the robot's frame system .. py:class:: FrameSystemConfigResponse(*, frame_system_configs: collections.abc.Iterable[global___FrameSystemConfig] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:property:: frame_system_configs :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FrameSystemConfig] .. py:class:: GetCloudMetadataRequest Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: GetCloudMetadataResponse(*, robot_part_id: str = ..., primary_org_id: str = ..., location_id: str = ..., machine_id: str = ..., machine_part_id: str = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: robot_part_id :type: str use machine_part_id field. :type: Deprecated .. py:attribute:: primary_org_id :type: str .. py:attribute:: location_id :type: str .. py:attribute:: machine_id :type: str .. py:attribute:: machine_part_id :type: str .. py:class:: GetMachineStatusRequest Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: GetMachineStatusResponse(*, resources: collections.abc.Iterable[global___ResourceStatus] | None = ..., config: global___ConfigStatus | None = ..., state: global___GetMachineStatusResponse = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: State Bases: :py:obj:`_State` .. py:attribute:: STATE_UNSPECIFIED :type: GetMachineStatusResponse .. py:attribute:: STATE_INITIALIZING :type: GetMachineStatusResponse the machine is reachable but still in the process of configuring initial modules and resources. .. py:attribute:: STATE_RUNNING :type: GetMachineStatusResponse the machine has finished initializing. .. py:attribute:: state :type: global___GetMachineStatusResponse.State.ValueType .. py:property:: resources :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ResourceStatus] .. py:property:: config :type: global___ConfigStatus .. py:method:: HasField(field_name: Literal['config', b'config']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:class:: GetModelsFromModulesRequest Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: GetModelsFromModulesResponse(*, models: collections.abc.Iterable[global___ModuleModel] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:property:: models :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ModuleModel] .. py:class:: GetOperationsRequest Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: GetOperationsResponse(*, operations: collections.abc.Iterable[global___Operation] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:property:: operations :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Operation] .. py:class:: GetPoseRequest(*, component_name: str = ..., destination_frame: str = ..., supplemental_transforms: collections.abc.Iterable[viam.gen.common.v1.common_pb2.Transform] | None = ..., extra: google.protobuf.struct_pb2.Struct | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: component_name :type: str the component whose pose is being requested .. py:attribute:: destination_frame :type: str the reference frame in which the component's pose should be provided, if unset this defaults to the "world" reference frame .. py:property:: supplemental_transforms :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[viam.gen.common.v1.common_pb2.Transform] pose information on any additional reference frames that are needed to compute the component's pose .. py:property:: extra :type: google.protobuf.struct_pb2.Struct Additional arguments to the method .. py:method:: HasField(field_name: Literal['extra', b'extra']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:class:: GetPoseResponse(*, pose: viam.gen.common.v1.common_pb2.PoseInFrame | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:property:: pose :type: viam.gen.common.v1.common_pb2.PoseInFrame .. py:method:: HasField(field_name: Literal['pose', b'pose']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:class:: GetSessionsRequest Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: GetSessionsResponse(*, sessions: collections.abc.Iterable[global___Session] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:property:: sessions :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Session] .. py:class:: GetStatusRequest(*, resource_names: collections.abc.Iterable[viam.gen.common.v1.common_pb2.ResourceName] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:property:: resource_names :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[viam.gen.common.v1.common_pb2.ResourceName] .. py:class:: GetStatusResponse(*, status: collections.abc.Iterable[global___Status] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:property:: status :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Status] .. py:class:: GetVersionRequest Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: GetVersionResponse(*, platform: str = ..., version: str = ..., api_version: str = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: platform :type: str platform type of viam-server (ie. `rdk` or `micro-rdk`). .. py:attribute:: version :type: str version of viam-server. If built without a version, it will be dev-. .. py:attribute:: api_version :type: str .. py:class:: ListTunnelsRequest Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: ListTunnelsResponse(*, tunnels: collections.abc.Iterable[global___Tunnel] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:property:: tunnels :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Tunnel] .. py:class:: LogRequest(*, logs: collections.abc.Iterable[viam.gen.common.v1.common_pb2.LogEntry] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:property:: logs :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[viam.gen.common.v1.common_pb2.LogEntry] .. py:class:: LogResponse Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: ModuleModel(*, module_name: str = ..., model: str = ..., api: str = ..., from_local_module: bool = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: module_name :type: str .. py:attribute:: model :type: str .. py:attribute:: api :type: str .. py:attribute:: from_local_module :type: bool .. py:class:: Operation(*, id: str = ..., method: str = ..., arguments: google.protobuf.struct_pb2.Struct | None = ..., started: google.protobuf.timestamp_pb2.Timestamp | None = ..., session_id: str | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: id :type: str .. py:attribute:: method :type: str .. py:attribute:: session_id :type: str .. py:property:: arguments :type: google.protobuf.struct_pb2.Struct .. py:property:: started :type: google.protobuf.timestamp_pb2.Timestamp .. py:method:: HasField(field_name: Literal['_session_id', b'_session_id', 'arguments', b'arguments', 'session_id', b'session_id', 'started', b'started']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:method:: WhichOneof(oneof_group: Literal['_session_id', b'_session_id']) -> Literal['session_id'] | None Returns the name of the field that is set inside a oneof group. If no field is set, returns None. :param oneof_group: the name of the oneof group to check. :type oneof_group: str :returns: The name of the group that is set, or None. :rtype: str or None :raises ValueError: no group with the given name exists .. py:class:: PeerConnectionInfo(*, type: global___PeerConnectionType = ..., remote_address: str | None = ..., local_address: str | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: type :type: global___PeerConnectionType .. py:attribute:: remote_address :type: str .. py:attribute:: local_address :type: str .. py:method:: HasField(field_name: Literal['_local_address', b'_local_address', '_remote_address', b'_remote_address', 'local_address', b'local_address', 'remote_address', b'remote_address']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:method:: WhichOneof(oneof_group: Literal['_local_address', b'_local_address']) -> Literal['local_address'] | None WhichOneof(oneof_group: Literal['_remote_address', b'_remote_address']) -> Literal['remote_address'] | None Returns the name of the field that is set inside a oneof group. If no field is set, returns None. :param oneof_group: the name of the oneof group to check. :type oneof_group: str :returns: The name of the group that is set, or None. :rtype: str or None :raises ValueError: no group with the given name exists .. py:class:: PeerConnectionType Bases: :py:obj:`_PeerConnectionType` .. py:class:: ResourceNamesRequest Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: ResourceNamesResponse(*, resources: collections.abc.Iterable[viam.gen.common.v1.common_pb2.ResourceName] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:property:: resources :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[viam.gen.common.v1.common_pb2.ResourceName] .. py:class:: ResourceRPCSubtype(*, subtype: viam.gen.common.v1.common_pb2.ResourceName | None = ..., proto_service: str = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: proto_service :type: str .. py:property:: subtype :type: viam.gen.common.v1.common_pb2.ResourceName .. py:method:: HasField(field_name: Literal['subtype', b'subtype']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:class:: ResourceRPCSubtypesRequest Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: ResourceRPCSubtypesResponse(*, resource_rpc_subtypes: collections.abc.Iterable[global___ResourceRPCSubtype] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:property:: resource_rpc_subtypes :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ResourceRPCSubtype] .. py:class:: ResourceStatus(*, name: viam.gen.common.v1.common_pb2.ResourceName | None = ..., state: global___ResourceStatus = ..., last_updated: google.protobuf.timestamp_pb2.Timestamp | None = ..., revision: str = ..., error: str = ..., cloud_metadata: global___GetCloudMetadataResponse | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: State Bases: :py:obj:`_State` .. py:attribute:: STATE_UNSPECIFIED :type: ResourceStatus .. py:attribute:: STATE_UNCONFIGURED :type: ResourceStatus a newly created resource. .. py:attribute:: STATE_CONFIGURING :type: ResourceStatus a resource that is being configured. .. py:attribute:: STATE_READY :type: ResourceStatus a resource that has been successfully configured once, and is not re-configuring, being removed, or unhealthy. .. py:attribute:: STATE_REMOVING :type: ResourceStatus a resource that is being removed from the robot. .. py:attribute:: STATE_UNHEALTHY :type: ResourceStatus a resource that is in an unhealthy state. .. py:attribute:: state :type: global___ResourceStatus.State.ValueType current state. .. py:attribute:: revision :type: str revision of the last config that successfully updated this resource. .. py:attribute:: error :type: str error details for a resource. This is guaranteed to be null if the resource is ready and non-null if the resource unhealthy. .. py:property:: name :type: viam.gen.common.v1.common_pb2.ResourceName resource name. .. py:property:: last_updated :type: google.protobuf.timestamp_pb2.Timestamp state transition timestamp. .. py:property:: cloud_metadata :type: global___GetCloudMetadataResponse infomation about resource orgID, locationID and partID .. py:method:: HasField(field_name: Literal['_cloud_metadata', b'_cloud_metadata', 'cloud_metadata', b'cloud_metadata', 'last_updated', b'last_updated', 'name', b'name']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:method:: WhichOneof(oneof_group: Literal['_cloud_metadata', b'_cloud_metadata']) -> Literal['cloud_metadata'] | None Returns the name of the field that is set inside a oneof group. If no field is set, returns None. :param oneof_group: the name of the oneof group to check. :type oneof_group: str :returns: The name of the group that is set, or None. :rtype: str or None :raises ValueError: no group with the given name exists .. py:class:: RestartModuleRequest(*, module_id: str = ..., module_name: str = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: module_id :type: str ID is for registry modules, name for local modules .. py:attribute:: module_name :type: str .. py:method:: HasField(field_name: Literal['id_or_name', b'id_or_name', 'module_id', b'module_id', 'module_name', b'module_name']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:method:: WhichOneof(oneof_group: Literal['id_or_name', b'id_or_name']) -> Literal['module_id', 'module_name'] | None Returns the name of the field that is set inside a oneof group. If no field is set, returns None. :param oneof_group: the name of the oneof group to check. :type oneof_group: str :returns: The name of the group that is set, or None. :rtype: str or None :raises ValueError: no group with the given name exists .. py:class:: RestartModuleResponse Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: SendSessionHeartbeatRequest(*, id: str = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: id :type: str .. py:class:: SendSessionHeartbeatResponse Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: Session(*, id: str = ..., peer_connection_info: global___PeerConnectionInfo | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: id :type: str .. py:property:: peer_connection_info :type: global___PeerConnectionInfo .. py:method:: HasField(field_name: Literal['_peer_connection_info', b'_peer_connection_info', 'peer_connection_info', b'peer_connection_info']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:method:: WhichOneof(oneof_group: Literal['_peer_connection_info', b'_peer_connection_info']) -> Literal['peer_connection_info'] | None Returns the name of the field that is set inside a oneof group. If no field is set, returns None. :param oneof_group: the name of the oneof group to check. :type oneof_group: str :returns: The name of the group that is set, or None. :rtype: str or None :raises ValueError: no group with the given name exists .. py:class:: ShutdownRequest Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: ShutdownResponse Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: StartSessionRequest(*, resume: str = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: resume :type: str resume can be used to attempt to continue a stream after a disconnection event. If a session is not found, a new one will be created and returned. .. py:class:: StartSessionResponse(*, id: str = ..., heartbeat_window: google.protobuf.duration_pb2.Duration | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: id :type: str .. py:property:: heartbeat_window :type: google.protobuf.duration_pb2.Duration .. py:method:: HasField(field_name: Literal['heartbeat_window', b'heartbeat_window']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:class:: Status(*, name: viam.gen.common.v1.common_pb2.ResourceName | None = ..., status: google.protobuf.struct_pb2.Struct | None = ..., last_reconfigured: google.protobuf.timestamp_pb2.Timestamp | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:property:: name :type: viam.gen.common.v1.common_pb2.ResourceName .. py:property:: status :type: google.protobuf.struct_pb2.Struct .. py:property:: last_reconfigured :type: google.protobuf.timestamp_pb2.Timestamp .. py:method:: HasField(field_name: Literal['last_reconfigured', b'last_reconfigured', 'name', b'name', 'status', b'status']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:class:: StopAllRequest(*, extra: collections.abc.Iterable[global___StopExtraParameters] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:property:: extra :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___StopExtraParameters] .. py:class:: StopAllResponse Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: StopExtraParameters(*, name: viam.gen.common.v1.common_pb2.ResourceName | None = ..., params: google.protobuf.struct_pb2.Struct | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:property:: name :type: viam.gen.common.v1.common_pb2.ResourceName .. py:property:: params :type: google.protobuf.struct_pb2.Struct .. py:method:: HasField(field_name: Literal['name', b'name', 'params', b'params']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:class:: StreamStatusRequest(*, resource_names: collections.abc.Iterable[viam.gen.common.v1.common_pb2.ResourceName] | None = ..., every: google.protobuf.duration_pb2.Duration | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:property:: resource_names :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[viam.gen.common.v1.common_pb2.ResourceName] .. py:property:: every :type: google.protobuf.duration_pb2.Duration how often to send a new status. .. py:method:: HasField(field_name: Literal['every', b'every']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:class:: StreamStatusResponse(*, status: collections.abc.Iterable[global___Status] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:property:: status :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Status] .. py:class:: TransformPCDRequest(*, point_cloud_pcd: bytes = ..., source: str = ..., destination: str = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: point_cloud_pcd :type: bytes the point clouds to transform. This should be in the PCD format, [encoded into bytes](https://pointclouds.org/documentation/tutorials/pcd_file_format.html). .. py:attribute:: source :type: str the reference frame of the point cloud. .. py:attribute:: destination :type: str the reference frame into which the source data should be transformed, if unset this defaults to the "world" reference frame. Do not move the robot between the generation of the initial pointcloud and the receipt of the transformed pointcloud because that will make the transformations inaccurate .. py:class:: TransformPCDResponse(*, point_cloud_pcd: bytes = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: point_cloud_pcd :type: bytes .. py:class:: TransformPoseRequest(*, source: viam.gen.common.v1.common_pb2.PoseInFrame | None = ..., destination: str = ..., supplemental_transforms: collections.abc.Iterable[viam.gen.common.v1.common_pb2.Transform] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: destination :type: str the reference frame into which the source pose should be transformed, if unset this defaults to the "world" reference frame .. py:property:: source :type: viam.gen.common.v1.common_pb2.PoseInFrame the original pose to transform along with the reference frame in which it was observed .. py:property:: supplemental_transforms :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[viam.gen.common.v1.common_pb2.Transform] pose information on any additional reference frames that are needed to perform the transform .. py:method:: HasField(field_name: Literal['source', b'source']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:class:: TransformPoseResponse(*, pose: viam.gen.common.v1.common_pb2.PoseInFrame | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:property:: pose :type: viam.gen.common.v1.common_pb2.PoseInFrame .. py:method:: HasField(field_name: Literal['pose', b'pose']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:class:: Tunnel(*, port: int = ..., connection_timeout: google.protobuf.duration_pb2.Duration | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: port :type: int .. py:property:: connection_timeout :type: google.protobuf.duration_pb2.Duration .. py:method:: HasField(field_name: Literal['connection_timeout', b'connection_timeout']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:class:: TunnelRequest(*, destination_port: int = ..., data: bytes = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: destination_port :type: int .. py:attribute:: data :type: bytes .. py:class:: TunnelResponse(*, data: bytes = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: data :type: bytes