viam.proto.app.agent ==================== .. py:module:: viam.proto.app.agent .. autoapi-nested-parse:: @generated by Viam. Do not edit manually! Classes ------- .. autoapisummary:: viam.proto.app.agent.AgentDeviceServiceBase viam.proto.app.agent.AgentDeviceServiceStub viam.proto.app.agent.UnimplementedAgentDeviceServiceBase viam.proto.app.agent.DeviceAgentConfigRequest viam.proto.app.agent.DeviceAgentConfigResponse viam.proto.app.agent.DeviceSubsystemConfig viam.proto.app.agent.HostInfo viam.proto.app.agent.PackageFormat viam.proto.app.agent.UpdateInfo viam.proto.app.agent.VersionInfo Package Contents ---------------- .. py:class:: AgentDeviceServiceBase Bases: :py:obj:`abc.ABC` Helper class that provides a standard way to create an ABC using inheritance. .. py:method:: DeviceAgentConfig(stream: grpclib.server.Stream[app.agent.v1.agent_pb2.DeviceAgentConfigRequest, app.agent.v1.agent_pb2.DeviceAgentConfigResponse]) -> None :abstractmethod: :async: .. py:method:: __mapping__() -> Dict[str, grpclib.const.Handler] .. py:class:: AgentDeviceServiceStub(channel: grpclib.client.Channel) .. py:attribute:: DeviceAgentConfig .. py:class:: UnimplementedAgentDeviceServiceBase Bases: :py:obj:`AgentDeviceServiceBase` Helper class that provides a standard way to create an ABC using inheritance. .. py:method:: DeviceAgentConfig(stream: grpclib.server.Stream[app.agent.v1.agent_pb2.DeviceAgentConfigRequest, app.agent.v1.agent_pb2.DeviceAgentConfigResponse]) -> None :async: .. py:class:: DeviceAgentConfigRequest(*, id: str = ..., host_info: global___HostInfo | None = ..., subsystem_versions: collections.abc.Mapping[str, str] | None = ..., version_info: global___VersionInfo | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Device side .. py:class:: SubsystemVersionsEntry(*, key: str = ..., value: 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:: key :type: str .. py:attribute:: value :type: str .. py:attribute:: id :type: str robot partID .. py:property:: host_info :type: global___HostInfo info about the host system .. py:property:: subsystem_versions :type: google.protobuf.internal.containers.ScalarMap[str, str] current subsystems and versions DEPRECATED in favor of version_info .. py:property:: version_info :type: global___VersionInfo Currently installed versions for agent and viam-server .. py:method:: HasField(field_name: Literal['host_info', b'host_info', 'version_info', b'version_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:class:: DeviceAgentConfigResponse(*, subsystem_configs: collections.abc.Mapping[str, global___DeviceSubsystemConfig] | None = ..., check_interval: google.protobuf.duration_pb2.Duration | None = ..., agent_update_info: global___UpdateInfo | None = ..., viam_server_update_info: global___UpdateInfo | None = ..., advanced_settings: google.protobuf.struct_pb2.Struct | None = ..., network_configuration: google.protobuf.struct_pb2.Struct | None = ..., additional_networks: google.protobuf.struct_pb2.Struct | None = ..., system_configuration: 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:class:: SubsystemConfigsEntry(*, key: str = ..., value: global___DeviceSubsystemConfig | 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:: key :type: str .. py:property:: value :type: global___DeviceSubsystemConfig .. py:method:: HasField(field_name: Literal['value', b'value']) -> 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:property:: subsystem_configs :type: google.protobuf.internal.containers.MessageMap[str, global___DeviceSubsystemConfig] subsystems to be installed/configured/updated note: previously installed subsystems will be removed from the system if removed from this list DEPRECATED in favor of indidivual update_info and settings fields .. py:property:: check_interval :type: google.protobuf.duration_pb2.Duration how often this request should be repeated .. py:property:: agent_update_info :type: global___UpdateInfo update info for agent and viam-server, parsed/processed in App .. py:property:: viam_server_update_info :type: global___UpdateInfo .. py:property:: advanced_settings :type: google.protobuf.struct_pb2.Struct various settings that are passed directly to device Agent .. py:property:: network_configuration :type: google.protobuf.struct_pb2.Struct .. py:property:: additional_networks :type: google.protobuf.struct_pb2.Struct .. py:property:: system_configuration :type: google.protobuf.struct_pb2.Struct .. py:method:: HasField(field_name: Literal['additional_networks', b'additional_networks', 'advanced_settings', b'advanced_settings', 'agent_update_info', b'agent_update_info', 'check_interval', b'check_interval', 'network_configuration', b'network_configuration', 'system_configuration', b'system_configuration', 'viam_server_update_info', b'viam_server_update_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:class:: DeviceSubsystemConfig(*, update_info: global___UpdateInfo | None = ..., disable: bool = ..., force_restart: bool = ..., attributes: google.protobuf.struct_pb2.Struct | None = ...) Bases: :py:obj:`google.protobuf.message.Message` DEPRECATED as of January 2025 .. py:attribute:: disable :type: bool if this subsystem is disabled and should not be started by the agent .. py:attribute:: force_restart :type: bool force_restart will restart the subsystem, even if no updates are available .. py:property:: update_info :type: global___UpdateInfo data needed to download/validate the subsystem .. py:property:: attributes :type: google.protobuf.struct_pb2.Struct arbitrary config sections .. py:method:: HasField(field_name: Literal['attributes', b'attributes', 'update_info', b'update_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:class:: HostInfo(*, platform: str = ..., distro: str = ..., tags: collections.abc.Iterable[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:: platform :type: str linux/amd64, darwin/arm64 :type: platform is the docker styled combination of kernel and architecture. Ex .. py:attribute:: distro :type: str 22.04, debian:11 :type: ID and VERSION_ID fields from /etc/os-release, colon seperated. Ex :type: ubuntu .. py:property:: tags :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[str] additional tags for specific hardware or software that's present and may affect software selection ex: "jetson", "rpi4", "systemd", etc. .. py:class:: PackageFormat Bases: :py:obj:`_PackageFormat` .. py:class:: UpdateInfo(*, filename: str = ..., url: str = ..., version: str = ..., sha256: bytes = ..., format: global___PackageFormat = ...) 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:: filename :type: str unpacked filename as it is expected on disk (regardless of url) .. py:attribute:: url :type: str url to download from .. py:attribute:: version :type: str version expected at the url .. py:attribute:: sha256 :type: bytes sha256 sum of file as downloaded .. py:attribute:: format :type: global___PackageFormat determines if decompression or executable permissions are needed .. py:class:: VersionInfo(*, agent_running: str = ..., agent_installed: str = ..., viam_server_running: str = ..., viam_server_installed: 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:: agent_running :type: str the version of agent currently running and making the request .. py:attribute:: agent_installed :type: str the version of agent installed (will run after restart if different) .. py:attribute:: viam_server_running :type: str the version of viam-server currently running .. py:attribute:: viam_server_installed :type: str the version of viam-server installed (will run after restart if different)