viam.proto.app.robot ==================== .. py:module:: viam.proto.app.robot .. autoapi-nested-parse:: @generated by Viam. Do not edit manually! Classes ------- .. autoapisummary:: viam.proto.app.robot.RobotServiceBase viam.proto.app.robot.RobotServiceStub viam.proto.app.robot.UnimplementedRobotServiceBase viam.proto.app.robot.AgentInfo viam.proto.app.robot.AppValidationStatus viam.proto.app.robot.AuthConfig viam.proto.app.robot.AuthHandlerConfig viam.proto.app.robot.CertificateRequest viam.proto.app.robot.CertificateResponse viam.proto.app.robot.CloudConfig viam.proto.app.robot.ComponentConfig viam.proto.app.robot.ConfigRequest viam.proto.app.robot.ConfigResponse viam.proto.app.robot.CredentialsType viam.proto.app.robot.ExternalAuthConfig viam.proto.app.robot.Frame viam.proto.app.robot.JobConfig viam.proto.app.robot.JWKSFile viam.proto.app.robot.LocationSecret viam.proto.app.robot.LogConfiguration viam.proto.app.robot.LogPatternConfig viam.proto.app.robot.LogRequest viam.proto.app.robot.LogResponse viam.proto.app.robot.MaintenanceConfig viam.proto.app.robot.ModuleConfig viam.proto.app.robot.NeedsRestartRequest viam.proto.app.robot.NeedsRestartResponse viam.proto.app.robot.NetworkConfig viam.proto.app.robot.Orientation viam.proto.app.robot.PackageConfig viam.proto.app.robot.ProcessConfig viam.proto.app.robot.RemoteAuth viam.proto.app.robot.RemoteConfig viam.proto.app.robot.ResourceLevelServiceConfig viam.proto.app.robot.RobotConfig viam.proto.app.robot.ServiceConfig viam.proto.app.robot.SessionsConfig viam.proto.app.robot.TrafficTunnelEndpoint viam.proto.app.robot.Translation Module Contents --------------- .. py:class:: RobotServiceBase Bases: :py:obj:`abc.ABC` Helper class that provides a standard way to create an ABC using inheritance. .. py:method:: Config(stream: grpclib.server.Stream[app.v1.robot_pb2.ConfigRequest, app.v1.robot_pb2.ConfigResponse]) -> None :abstractmethod: :async: .. py:method:: Certificate(stream: grpclib.server.Stream[app.v1.robot_pb2.CertificateRequest, app.v1.robot_pb2.CertificateResponse]) -> None :abstractmethod: :async: .. py:method:: Log(stream: grpclib.server.Stream[app.v1.robot_pb2.LogRequest, app.v1.robot_pb2.LogResponse]) -> None :abstractmethod: :async: .. py:method:: NeedsRestart(stream: grpclib.server.Stream[app.v1.robot_pb2.NeedsRestartRequest, app.v1.robot_pb2.NeedsRestartResponse]) -> None :abstractmethod: :async: .. py:method:: __mapping__() -> Dict[str, grpclib.const.Handler] .. py:class:: RobotServiceStub(channel: grpclib.client.Channel) .. py:attribute:: Config .. py:attribute:: Certificate .. py:attribute:: Log .. py:attribute:: NeedsRestart .. py:class:: UnimplementedRobotServiceBase Bases: :py:obj:`RobotServiceBase` Helper class that provides a standard way to create an ABC using inheritance. .. py:method:: Config(stream: grpclib.server.Stream[app.v1.robot_pb2.ConfigRequest, app.v1.robot_pb2.ConfigResponse]) -> None :async: .. py:method:: Certificate(stream: grpclib.server.Stream[app.v1.robot_pb2.CertificateRequest, app.v1.robot_pb2.CertificateResponse]) -> None :async: .. py:method:: Log(stream: grpclib.server.Stream[app.v1.robot_pb2.LogRequest, app.v1.robot_pb2.LogResponse]) -> None :async: .. py:method:: NeedsRestart(stream: grpclib.server.Stream[app.v1.robot_pb2.NeedsRestartRequest, app.v1.robot_pb2.NeedsRestartResponse]) -> None :async: .. py:class:: AgentInfo(*, host: str = ..., os: str = ..., ips: collections.abc.Iterable[str] | None = ..., version: str = ..., git_revision: str = ..., platform: str | None = ..., platform_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:: host :type: str .. py:attribute:: os :type: str Will soon be deprecated, use platform instead .. py:attribute:: version :type: str RDK version .. py:attribute:: git_revision :type: str .. py:attribute:: platform :type: str The platform the RDK is running on. For example linux/amd64 .. py:property:: ips :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[str] list of all ipv4 ips. .. py:property:: platform_tags :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[str] Optional tags to further constrain which artifact is returned for modules. .. py:method:: HasField(field_name: Literal['_platform', b'_platform', 'platform', b'platform']) -> 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['_platform', b'_platform']) -> Literal['platform'] | 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:: AppValidationStatus(*, error: 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:: error :type: str .. py:class:: AuthConfig(*, handlers: collections.abc.Iterable[global___AuthHandlerConfig] | None = ..., tls_auth_entities: collections.abc.Iterable[str] | None = ..., external_auth_config: global___ExternalAuthConfig | 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:: handlers :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AuthHandlerConfig] .. py:property:: tls_auth_entities :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[str] .. py:property:: external_auth_config :type: global___ExternalAuthConfig .. py:method:: HasField(field_name: Literal['_external_auth_config', b'_external_auth_config', 'external_auth_config', b'external_auth_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:method:: WhichOneof(oneof_group: Literal['_external_auth_config', b'_external_auth_config']) -> Literal['external_auth_config'] | 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:: AuthHandlerConfig(*, type: global___CredentialsType = ..., config: 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:: type :type: global___CredentialsType .. py:property:: config :type: google.protobuf.struct_pb2.Struct .. 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:: CertificateRequest(*, 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 Robot part id. .. py:class:: CertificateResponse(*, id: str = ..., tls_certificate: str = ..., tls_private_key: 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 Robot part id. .. py:attribute:: tls_certificate :type: str .. py:attribute:: tls_private_key :type: str .. py:class:: CloudConfig(*, id: str = ..., fqdn: str = ..., local_fqdn: str = ..., managed_by: str = ..., signaling_address: str = ..., signaling_insecure: bool = ..., location_secret: str = ..., secret: str = ..., location_secrets: collections.abc.Iterable[global___LocationSecret] | None = ..., primary_org_id: str = ..., location_id: str = ..., machine_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 Robot part id. .. py:attribute:: fqdn :type: str .. py:attribute:: local_fqdn :type: str .. py:attribute:: managed_by :type: str .. py:attribute:: signaling_address :type: str .. py:attribute:: signaling_insecure :type: bool .. py:attribute:: location_secret :type: str Deprecated use location_secrets .. py:attribute:: secret :type: str Robot part secret .. py:attribute:: primary_org_id :type: str .. py:attribute:: location_id :type: str .. py:attribute:: machine_id :type: str .. py:property:: location_secrets :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___LocationSecret] All valid location secrets. .. py:class:: ComponentConfig(*, name: str = ..., namespace: str = ..., type: str = ..., model: str = ..., frame: global___Frame | None = ..., depends_on: collections.abc.Iterable[str] | None = ..., service_configs: collections.abc.Iterable[global___ResourceLevelServiceConfig] | None = ..., attributes: google.protobuf.struct_pb2.Struct | None = ..., api: str = ..., log_configuration: global___LogConfiguration | 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:: name :type: str .. py:attribute:: namespace :type: str deprecated; use api .. py:attribute:: type :type: str deprecated; use api .. py:attribute:: model :type: str .. py:attribute:: api :type: str .. py:property:: frame :type: global___Frame .. py:property:: depends_on :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[str] .. py:property:: service_configs :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ResourceLevelServiceConfig] .. py:property:: attributes :type: google.protobuf.struct_pb2.Struct .. py:property:: log_configuration :type: global___LogConfiguration .. py:method:: HasField(field_name: Literal['attributes', b'attributes', 'frame', b'frame', 'log_configuration', b'log_configuration']) -> 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:: ConfigRequest(*, id: str = ..., agent_info: global___AgentInfo | 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 Robot part id. .. py:property:: agent_info :type: global___AgentInfo Details about the RDK (os, version) are updated during this request. .. py:method:: HasField(field_name: Literal['_agent_info', b'_agent_info', 'agent_info', b'agent_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['_agent_info', b'_agent_info']) -> Literal['agent_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:: ConfigResponse(*, config: global___RobotConfig | 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:: config :type: global___RobotConfig .. 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:: CredentialsType Bases: :py:obj:`_CredentialsType` .. py:class:: ExternalAuthConfig(*, jwks: global___JWKSFile | None = ...) Bases: :py:obj:`google.protobuf.message.Message` ExternalAuthConfig describes how a viam managed robot can accept credentials signed by the cloud app. .. py:property:: jwks :type: global___JWKSFile .. py:method:: HasField(field_name: Literal['jwks', b'jwks']) -> 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:: Frame(*, parent: str = ..., translation: global___Translation | None = ..., orientation: global___Orientation | None = ..., geometry: viam.gen.common.v1.common_pb2.Geometry | 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:: parent :type: str .. py:property:: translation :type: global___Translation .. py:property:: orientation :type: global___Orientation .. py:property:: geometry :type: viam.gen.common.v1.common_pb2.Geometry .. py:method:: HasField(field_name: Literal['geometry', b'geometry', 'orientation', b'orientation', 'translation', b'translation']) -> 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:: JobConfig(*, name: str = ..., schedule: str = ..., resource: str = ..., method: str = ..., command: 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:: name :type: str unique name of the job. .. py:attribute:: schedule :type: str a unix-cron string or a Golang-parsable duration string, specifies the interval at which the job is run. .. py:attribute:: resource :type: str the resource associated with this job. .. py:attribute:: method :type: str the gRPC request of this job's resource. .. py:property:: command :type: google.protobuf.struct_pb2.Struct in case method is "DoCommand", specifies the command argument of the gRPC request. .. py:method:: HasField(field_name: Literal['command', b'command']) -> 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:: JWKSFile(*, json: 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:: json :type: google.protobuf.struct_pb2.Struct JSON Web Keys (JWKS) file as arbitary json. See https://www.rfc-editor.org/rfc/rfc7517 .. py:method:: HasField(field_name: Literal['json', b'json']) -> 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:: LocationSecret(*, id: str = ..., secret: str = ...) Bases: :py:obj:`google.protobuf.message.Message` Valid location secret that can be used for authentication to the robot. .. py:attribute:: id :type: str .. py:attribute:: secret :type: str secret payload .. py:class:: LogConfiguration(*, level: 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:: level :type: str .. py:class:: LogPatternConfig(*, pattern: str = ..., level: str = ...) Bases: :py:obj:`google.protobuf.message.Message` LogPatternConfig allows you to specify a 2-tuple consisting of a logger name and its corresponding log level. .. py:attribute:: pattern :type: str .. py:attribute:: level :type: str .. py:class:: LogRequest(*, id: str = ..., 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:attribute:: id :type: str Robot part id. .. 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:: MaintenanceConfig(*, sensor_name: viam.gen.common.v1.common_pb2.ResourceName | None = ..., maintenance_allowed_key: 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:: maintenance_allowed_key :type: str .. py:property:: sensor_name :type: viam.gen.common.v1.common_pb2.ResourceName .. py:method:: HasField(field_name: Literal['sensor_name', b'sensor_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:class:: ModuleConfig(*, name: str = ..., path: str = ..., log_level: str = ..., type: str = ..., module_id: str = ..., env: collections.abc.Mapping[str, str] | None = ..., status: global___AppValidationStatus | None = ..., first_run_timeout: google.protobuf.duration_pb2.Duration | None = ..., tcp_mode: bool = ...) Bases: :py:obj:`google.protobuf.message.Message` ModuleConfig is the configuration for a module. .. py:class:: EnvEntry(*, 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:: name :type: str .. py:attribute:: path :type: str path to the executable .. py:attribute:: log_level :type: str log level for module .. py:attribute:: type :type: str type of the module ("local" or "registry") .. py:attribute:: module_id :type: str the id of the module if it is a registry module .. py:attribute:: tcp_mode :type: bool whether we are starting a module in TCP mode .. py:property:: env :type: google.protobuf.internal.containers.ScalarMap[str, str] additional environment variables passed to the module process .. py:property:: status :type: global___AppValidationStatus info about the validity of the module .. py:property:: first_run_timeout :type: google.protobuf.duration_pb2.Duration timeout for first_run script .. py:method:: HasField(field_name: Literal['first_run_timeout', b'first_run_timeout', '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:: NeedsRestartRequest(*, 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 Robot part id. .. py:class:: NeedsRestartResponse(*, id: str = ..., must_restart: bool = ..., restart_check_interval: 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 Robot part id. .. py:attribute:: must_restart :type: bool .. py:property:: restart_check_interval :type: google.protobuf.duration_pb2.Duration .. py:method:: HasField(field_name: Literal['restart_check_interval', b'restart_check_interval']) -> 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:: NetworkConfig(*, fqdn: str = ..., bind_address: str = ..., tls_cert_file: str = ..., tls_key_file: str = ..., sessions: global___SessionsConfig | None = ..., traffic_tunnel_endpoints: collections.abc.Iterable[global___TrafficTunnelEndpoint] | None = ..., no_tls: 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:: fqdn :type: str .. py:attribute:: bind_address :type: str .. py:attribute:: tls_cert_file :type: str .. py:attribute:: tls_key_file :type: str .. py:attribute:: no_tls :type: bool .. py:property:: sessions :type: global___SessionsConfig .. py:property:: traffic_tunnel_endpoints :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TrafficTunnelEndpoint] .. py:method:: HasField(field_name: Literal['sessions', b'sessions']) -> 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:: Orientation(*, no_orientation: global___Orientation | None = ..., vector_radians: global___Orientation | None = ..., vector_degrees: global___Orientation | None = ..., euler_angles: global___Orientation | None = ..., axis_angles: global___Orientation | None = ..., quaternion: global___Orientation | 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:: NoOrientation 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:: OrientationVectorRadians(*, theta: float = ..., x: float = ..., y: float = ..., z: float = ...) Bases: :py:obj:`google.protobuf.message.Message` OrientationVector containing ox, oy, oz, theta represents an orientation vector Structured similarly to an angle axis, an orientation vector works differently. Rather than representing an orientation with an arbitrary axis and a rotation around it from an origin, an orientation vector represents orientation such that the ox/oy/oz components represent the point on the cartesian unit sphere at which your end effector is pointing from the origin, and that unit vector forms an axis around which theta rotates. This means that incrementing/decrementing theta will perform an in-line rotation of the end effector. Theta is defined as rotation between two planes: the plane defined by the origin, the point (0,0,1), and the rx,ry,rz point, and the plane defined by the origin, the rx,ry,rz point, and the new local Z axis. So if theta is kept at zero as the north/south pole is circled, the Roll will correct itself to remain in-line. .. py:attribute:: theta :type: float .. py:attribute:: x :type: float .. py:attribute:: y :type: float .. py:attribute:: z :type: float .. py:class:: OrientationVectorDegrees(*, theta: float = ..., x: float = ..., y: float = ..., z: float = ...) Bases: :py:obj:`google.protobuf.message.Message` OrientationVectorDegrees is the orientation vector between two objects, but expressed in degrees rather than radians. Because protobuf Pose is in degrees, this is necessary. .. py:attribute:: theta :type: float .. py:attribute:: x :type: float .. py:attribute:: y :type: float .. py:attribute:: z :type: float .. py:class:: EulerAngles(*, roll: float = ..., pitch: float = ..., yaw: float = ...) Bases: :py:obj:`google.protobuf.message.Message` EulerAngles are three angles (in radians) used to represent the rotation of an object in 3D Euclidean space The Tait–Bryan angle formalism is used, with rotations around three distinct axes in the z-y′-x″ sequence. .. py:attribute:: roll :type: float .. py:attribute:: pitch :type: float .. py:attribute:: yaw :type: float .. py:class:: AxisAngles(*, theta: float = ..., x: float = ..., y: float = ..., z: float = ...) Bases: :py:obj:`google.protobuf.message.Message` See here for a thorough explanation: https://en.wikipedia.org/wiki/Axis%E2%80%93angle_representation Basic explanation: Imagine a 3d cartesian grid centered at 0,0,0, and a sphere of radius 1 centered at that same point. An orientation can be expressed by first specifying an axis, i.e. a line from the origin to a point on that sphere, represented by (rx, ry, rz), and a rotation around that axis, theta. These four numbers can be used as-is (R4), or they can be converted to R3, where theta is multiplied by each of the unit sphere components to give a vector whose length is theta and whose direction is the original axis. AxisAngles represents an R4 axis angle. .. py:attribute:: theta :type: float .. py:attribute:: x :type: float .. py:attribute:: y :type: float .. py:attribute:: z :type: float .. py:class:: Quaternion(*, w: float = ..., x: float = ..., y: float = ..., z: float = ...) Bases: :py:obj:`google.protobuf.message.Message` Quaternion is a float64 precision quaternion. .. py:attribute:: w :type: float .. py:attribute:: x :type: float .. py:attribute:: y :type: float .. py:attribute:: z :type: float .. py:property:: no_orientation :type: global___Orientation .. py:property:: vector_radians :type: global___Orientation .. py:property:: vector_degrees :type: global___Orientation .. py:property:: euler_angles :type: global___Orientation .. py:property:: axis_angles :type: global___Orientation .. py:property:: quaternion :type: global___Orientation .. py:method:: HasField(field_name: Literal['axis_angles', b'axis_angles', 'euler_angles', b'euler_angles', 'no_orientation', b'no_orientation', 'quaternion', b'quaternion', 'type', b'type', 'vector_degrees', b'vector_degrees', 'vector_radians', b'vector_radians']) -> 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['type', b'type']) -> Literal['no_orientation', 'vector_radians', 'vector_degrees', 'euler_angles', 'axis_angles', 'quaternion'] | 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:: PackageConfig(*, name: str = ..., package: str = ..., version: str = ..., type: str = ..., status: global___AppValidationStatus | None = ...) Bases: :py:obj:`google.protobuf.message.Message` PackageConfig is the configration for deployed Packages. .. py:attribute:: name :type: str Name is the local name of the package on the RDK. Must be unique across Packages. Must not be empty. .. py:attribute:: package :type: str Package is the unique package name hosted by Viam. Must not be empty. .. py:attribute:: version :type: str version of the package ID hosted by Viam. If not specified "latest" is assumed. .. py:attribute:: type :type: str type of the package .. py:property:: status :type: global___AppValidationStatus info about the validity of the package .. py:method:: HasField(field_name: Literal['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:: ProcessConfig(*, id: str = ..., name: str = ..., args: collections.abc.Iterable[str] | None = ..., cwd: str = ..., one_shot: bool = ..., log: bool = ..., stop_signal: int = ..., stop_timeout: google.protobuf.duration_pb2.Duration | None = ..., env: collections.abc.Mapping[str, str] | None = ..., username: str = ...) Bases: :py:obj:`google.protobuf.message.Message` A ProcessConfig describes how to manage a system process. .. py:class:: EnvEntry(*, 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 .. py:attribute:: name :type: str .. py:attribute:: cwd :type: str .. py:attribute:: one_shot :type: bool .. py:attribute:: log :type: bool .. py:attribute:: stop_signal :type: int .. py:attribute:: username :type: str .. py:property:: args :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[str] .. py:property:: stop_timeout :type: google.protobuf.duration_pb2.Duration .. py:property:: env :type: google.protobuf.internal.containers.ScalarMap[str, str] additional environment variables passed to the process .. py:method:: HasField(field_name: Literal['stop_timeout', b'stop_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:: RemoteAuth(*, credentials: global___RemoteAuth | None = ..., entity: str = ...) Bases: :py:obj:`google.protobuf.message.Message` RemoteAuth specifies how to authenticate against a remote. If no credentials are specified, authentication does not happen. If an entity is specified, the authentication request will specify it. .. py:class:: Credentials(*, type: global___CredentialsType = ..., payload: str = ...) Bases: :py:obj:`google.protobuf.message.Message` Credentials packages up both a type of credential along with its payload which is formatted specific to the type. .. py:attribute:: type :type: global___CredentialsType .. py:attribute:: payload :type: str .. py:attribute:: entity :type: str .. py:property:: credentials :type: global___RemoteAuth .. py:method:: HasField(field_name: Literal['credentials', b'credentials']) -> 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:: RemoteConfig(*, name: str = ..., address: str = ..., frame: global___Frame | None = ..., auth: global___RemoteAuth | None = ..., managed_by: str = ..., insecure: bool = ..., connection_check_interval: google.protobuf.duration_pb2.Duration | None = ..., reconnect_interval: google.protobuf.duration_pb2.Duration | None = ..., service_configs: collections.abc.Iterable[global___ResourceLevelServiceConfig] | None = ..., secret: str = ...) Bases: :py:obj:`google.protobuf.message.Message` A RemoteConfig describes a remote robot that should be integrated. The Frame field defines how the "world" node of the remote robot should be reconciled with the "world" node of the the current robot. All components of the remote robot who have Parent as "world" will be attached to the parent defined in Frame, and with the given offset as well. .. py:attribute:: name :type: str .. py:attribute:: address :type: str .. py:attribute:: managed_by :type: str .. py:attribute:: insecure :type: bool .. py:attribute:: secret :type: str Secret is a helper for a robot location secret. .. py:property:: frame :type: global___Frame .. py:property:: auth :type: global___RemoteAuth .. py:property:: connection_check_interval :type: google.protobuf.duration_pb2.Duration .. py:property:: reconnect_interval :type: google.protobuf.duration_pb2.Duration .. py:property:: service_configs :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ResourceLevelServiceConfig] .. py:method:: HasField(field_name: Literal['auth', b'auth', 'connection_check_interval', b'connection_check_interval', 'frame', b'frame', 'reconnect_interval', b'reconnect_interval']) -> 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:: ResourceLevelServiceConfig(*, type: str = ..., attributes: google.protobuf.struct_pb2.Struct | None = ...) Bases: :py:obj:`google.protobuf.message.Message` A ResourceLevelServiceConfig describes component or remote configuration for a service. .. py:attribute:: type :type: str .. py:property:: attributes :type: google.protobuf.struct_pb2.Struct Should this be move to a structured type as defined in the typescript frontend. :type: TODO(adam) .. py:method:: HasField(field_name: Literal['attributes', b'attributes']) -> 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:: RobotConfig(*, cloud: global___CloudConfig | None = ..., remotes: collections.abc.Iterable[global___RemoteConfig] | None = ..., components: collections.abc.Iterable[global___ComponentConfig] | None = ..., processes: collections.abc.Iterable[global___ProcessConfig] | None = ..., services: collections.abc.Iterable[global___ServiceConfig] | None = ..., network: global___NetworkConfig | None = ..., auth: global___AuthConfig | None = ..., debug: bool | None = ..., modules: collections.abc.Iterable[global___ModuleConfig] | None = ..., disable_partial_start: bool | None = ..., packages: collections.abc.Iterable[global___PackageConfig] | None = ..., overwrite_fragment_status: collections.abc.Iterable[global___AppValidationStatus] | None = ..., enable_web_profile: bool = ..., log: collections.abc.Iterable[global___LogPatternConfig] | None = ..., revision: str = ..., maintenance: global___MaintenanceConfig | None = ..., disable_log_deduplication: bool = ..., jobs: collections.abc.Iterable[global___JobConfig] | 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:: debug :type: bool Turns on debug mode for robot, adding an echo server and more logging and tracing. Only works after restart .. py:attribute:: disable_partial_start :type: bool .. py:attribute:: enable_web_profile :type: bool Turns on pprof http server on localhost. By default false. .. py:attribute:: revision :type: str Attributes a particular revision to the config. .. py:attribute:: disable_log_deduplication :type: bool Disables the robot's log deduplication (identical, noisy logs will still be output individually instead of aggregated.) .. py:property:: cloud :type: global___CloudConfig .. py:property:: remotes :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RemoteConfig] .. py:property:: components :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ComponentConfig] .. py:property:: processes :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ProcessConfig] .. py:property:: services :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ServiceConfig] .. py:property:: network :type: global___NetworkConfig .. py:property:: auth :type: global___AuthConfig .. py:property:: modules :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ModuleConfig] .. py:property:: packages :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PackageConfig] .. py:property:: overwrite_fragment_status :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AppValidationStatus] .. py:property:: log :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___LogPatternConfig] .. py:property:: maintenance :type: global___MaintenanceConfig .. py:property:: jobs :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___JobConfig] .. py:method:: HasField(field_name: Literal['_auth', b'_auth', '_debug', b'_debug', '_disable_partial_start', b'_disable_partial_start', '_maintenance', b'_maintenance', '_network', b'_network', 'auth', b'auth', 'cloud', b'cloud', 'debug', b'debug', 'disable_partial_start', b'disable_partial_start', 'maintenance', b'maintenance', 'network', b'network']) -> 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['_auth', b'_auth']) -> Literal['auth'] | None WhichOneof(oneof_group: Literal['_debug', b'_debug']) -> Literal['debug'] | None WhichOneof(oneof_group: Literal['_disable_partial_start', b'_disable_partial_start']) -> Literal['disable_partial_start'] | None WhichOneof(oneof_group: Literal['_maintenance', b'_maintenance']) -> Literal['maintenance'] | None WhichOneof(oneof_group: Literal['_network', b'_network']) -> Literal['network'] | 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:: ServiceConfig(*, name: str = ..., namespace: str = ..., type: str = ..., attributes: google.protobuf.struct_pb2.Struct | None = ..., depends_on: collections.abc.Iterable[str] | None = ..., model: str = ..., api: str = ..., service_configs: collections.abc.Iterable[global___ResourceLevelServiceConfig] | None = ..., log_configuration: global___LogConfiguration | 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:: name :type: str .. py:attribute:: namespace :type: str deprecated; use api .. py:attribute:: type :type: str deprecated; use api .. py:attribute:: model :type: str .. py:attribute:: api :type: str .. py:property:: attributes :type: google.protobuf.struct_pb2.Struct .. py:property:: depends_on :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[str] .. py:property:: service_configs :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ResourceLevelServiceConfig] .. py:property:: log_configuration :type: global___LogConfiguration .. py:method:: HasField(field_name: Literal['attributes', b'attributes', 'log_configuration', b'log_configuration']) -> 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:: SessionsConfig(*, 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: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:: TrafficTunnelEndpoint(*, 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:: Translation(*, x: float = ..., y: float = ..., z: float = ...) 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:: x :type: float .. py:attribute:: y :type: float .. py:attribute:: z :type: float