viam-sdk 0.44.1__py3-none-linux_armv6l.whl → 0.45.1__py3-none-linux_armv6l.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -614,6 +614,46 @@ class UpdateOrganizationResponse(google.protobuf.message.Message):
614
614
  ...
615
615
  global___UpdateOrganizationResponse = UpdateOrganizationResponse
616
616
 
617
+ @typing.final
618
+ class UpdateOrganizationNamespaceRequest(google.protobuf.message.Message):
619
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
620
+ ORGANIZATION_ID_FIELD_NUMBER: builtins.int
621
+ NEW_PUBLIC_NAMESPACE_FIELD_NUMBER: builtins.int
622
+ organization_id: builtins.str
623
+ new_public_namespace: builtins.str
624
+
625
+ def __init__(self, *, organization_id: builtins.str=..., new_public_namespace: builtins.str | None=...) -> None:
626
+ ...
627
+
628
+ def HasField(self, field_name: typing.Literal['_new_public_namespace', b'_new_public_namespace', 'new_public_namespace', b'new_public_namespace']) -> builtins.bool:
629
+ ...
630
+
631
+ def ClearField(self, field_name: typing.Literal['_new_public_namespace', b'_new_public_namespace', 'new_public_namespace', b'new_public_namespace', 'organization_id', b'organization_id']) -> None:
632
+ ...
633
+
634
+ def WhichOneof(self, oneof_group: typing.Literal['_new_public_namespace', b'_new_public_namespace']) -> typing.Literal['new_public_namespace'] | None:
635
+ ...
636
+ global___UpdateOrganizationNamespaceRequest = UpdateOrganizationNamespaceRequest
637
+
638
+ @typing.final
639
+ class UpdateOrganizationNamespaceResponse(google.protobuf.message.Message):
640
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
641
+ ORGANIZATION_FIELD_NUMBER: builtins.int
642
+
643
+ @property
644
+ def organization(self) -> global___Organization:
645
+ ...
646
+
647
+ def __init__(self, *, organization: global___Organization | None=...) -> None:
648
+ ...
649
+
650
+ def HasField(self, field_name: typing.Literal['organization', b'organization']) -> builtins.bool:
651
+ ...
652
+
653
+ def ClearField(self, field_name: typing.Literal['organization', b'organization']) -> None:
654
+ ...
655
+ global___UpdateOrganizationNamespaceResponse = UpdateOrganizationNamespaceResponse
656
+
617
657
  @typing.final
618
658
  class DeleteOrganizationRequest(google.protobuf.message.Message):
619
659
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
@@ -1993,6 +2033,7 @@ class UpdateRobotPartRequest(google.protobuf.message.Message):
1993
2033
  ID_FIELD_NUMBER: builtins.int
1994
2034
  NAME_FIELD_NUMBER: builtins.int
1995
2035
  ROBOT_CONFIG_FIELD_NUMBER: builtins.int
2036
+ LAST_KNOWN_UPDATE_FIELD_NUMBER: builtins.int
1996
2037
  id: builtins.str
1997
2038
  name: builtins.str
1998
2039
 
@@ -2000,13 +2041,20 @@ class UpdateRobotPartRequest(google.protobuf.message.Message):
2000
2041
  def robot_config(self) -> google.protobuf.struct_pb2.Struct:
2001
2042
  ...
2002
2043
 
2003
- def __init__(self, *, id: builtins.str=..., name: builtins.str=..., robot_config: google.protobuf.struct_pb2.Struct | None=...) -> None:
2044
+ @property
2045
+ def last_known_update(self) -> google.protobuf.timestamp_pb2.Timestamp:
2004
2046
  ...
2005
2047
 
2006
- def HasField(self, field_name: typing.Literal['robot_config', b'robot_config']) -> builtins.bool:
2048
+ def __init__(self, *, id: builtins.str=..., name: builtins.str=..., robot_config: google.protobuf.struct_pb2.Struct | None=..., last_known_update: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None:
2007
2049
  ...
2008
2050
 
2009
- def ClearField(self, field_name: typing.Literal['id', b'id', 'name', b'name', 'robot_config', b'robot_config']) -> None:
2051
+ def HasField(self, field_name: typing.Literal['_last_known_update', b'_last_known_update', 'last_known_update', b'last_known_update', 'robot_config', b'robot_config']) -> builtins.bool:
2052
+ ...
2053
+
2054
+ def ClearField(self, field_name: typing.Literal['_last_known_update', b'_last_known_update', 'id', b'id', 'last_known_update', b'last_known_update', 'name', b'name', 'robot_config', b'robot_config']) -> None:
2055
+ ...
2056
+
2057
+ def WhichOneof(self, oneof_group: typing.Literal['_last_known_update', b'_last_known_update']) -> typing.Literal['last_known_update'] | None:
2010
2058
  ...
2011
2059
  global___UpdateRobotPartRequest = UpdateRobotPartRequest
2012
2060
 
@@ -2548,6 +2596,7 @@ class UpdateFragmentRequest(google.protobuf.message.Message):
2548
2596
  CONFIG_FIELD_NUMBER: builtins.int
2549
2597
  PUBLIC_FIELD_NUMBER: builtins.int
2550
2598
  VISIBILITY_FIELD_NUMBER: builtins.int
2599
+ LAST_KNOWN_UPDATE_FIELD_NUMBER: builtins.int
2551
2600
  id: builtins.str
2552
2601
  name: builtins.str
2553
2602
  public: builtins.bool
@@ -2557,13 +2606,21 @@ class UpdateFragmentRequest(google.protobuf.message.Message):
2557
2606
  def config(self) -> google.protobuf.struct_pb2.Struct:
2558
2607
  ...
2559
2608
 
2560
- def __init__(self, *, id: builtins.str=..., name: builtins.str=..., config: google.protobuf.struct_pb2.Struct | None=..., public: builtins.bool | None=..., visibility: global___FragmentVisibility.ValueType | None=...) -> None:
2609
+ @property
2610
+ def last_known_update(self) -> google.protobuf.timestamp_pb2.Timestamp:
2611
+ ...
2612
+
2613
+ def __init__(self, *, id: builtins.str=..., name: builtins.str=..., config: google.protobuf.struct_pb2.Struct | None=..., public: builtins.bool | None=..., visibility: global___FragmentVisibility.ValueType | None=..., last_known_update: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None:
2561
2614
  ...
2562
2615
 
2563
- def HasField(self, field_name: typing.Literal['_public', b'_public', '_visibility', b'_visibility', 'config', b'config', 'public', b'public', 'visibility', b'visibility']) -> builtins.bool:
2616
+ def HasField(self, field_name: typing.Literal['_last_known_update', b'_last_known_update', '_public', b'_public', '_visibility', b'_visibility', 'config', b'config', 'last_known_update', b'last_known_update', 'public', b'public', 'visibility', b'visibility']) -> builtins.bool:
2564
2617
  ...
2565
2618
 
2566
- def ClearField(self, field_name: typing.Literal['_public', b'_public', '_visibility', b'_visibility', 'config', b'config', 'id', b'id', 'name', b'name', 'public', b'public', 'visibility', b'visibility']) -> None:
2619
+ def ClearField(self, field_name: typing.Literal['_last_known_update', b'_last_known_update', '_public', b'_public', '_visibility', b'_visibility', 'config', b'config', 'id', b'id', 'last_known_update', b'last_known_update', 'name', b'name', 'public', b'public', 'visibility', b'visibility']) -> None:
2620
+ ...
2621
+
2622
+ @typing.overload
2623
+ def WhichOneof(self, oneof_group: typing.Literal['_last_known_update', b'_last_known_update']) -> typing.Literal['last_known_update'] | None:
2567
2624
  ...
2568
2625
 
2569
2626
  @typing.overload
@@ -10,7 +10,7 @@ from ...common.v1 import common_pb2 as common_dot_v1_dot_common__pb2
10
10
  from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
11
11
  from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
12
12
  from ...tagger.v1 import tagger_pb2 as tagger_dot_v1_dot_tagger__pb2
13
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12app/v1/robot.proto\x12\x0bviam.app.v1\x1a\x16common/v1/common.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x16tagger/v1/tagger.proto"\xf5\x07\n\x0bRobotConfig\x12.\n\x05cloud\x18\x01 \x01(\x0b2\x18.viam.app.v1.CloudConfigR\x05cloud\x123\n\x07remotes\x18\x02 \x03(\x0b2\x19.viam.app.v1.RemoteConfigR\x07remotes\x12<\n\ncomponents\x18\x03 \x03(\x0b2\x1c.viam.app.v1.ComponentConfigR\ncomponents\x128\n\tprocesses\x18\x04 \x03(\x0b2\x1a.viam.app.v1.ProcessConfigR\tprocesses\x126\n\x08services\x18\x05 \x03(\x0b2\x1a.viam.app.v1.ServiceConfigR\x08services\x129\n\x07network\x18\x06 \x01(\x0b2\x1a.viam.app.v1.NetworkConfigH\x00R\x07network\x88\x01\x01\x120\n\x04auth\x18\x07 \x01(\x0b2\x17.viam.app.v1.AuthConfigH\x01R\x04auth\x88\x01\x01\x12\x19\n\x05debug\x18\x08 \x01(\x08H\x02R\x05debug\x88\x01\x01\x123\n\x07modules\x18\t \x03(\x0b2\x19.viam.app.v1.ModuleConfigR\x07modules\x127\n\x15disable_partial_start\x18\n \x01(\x08H\x03R\x13disablePartialStart\x88\x01\x01\x126\n\x08packages\x18\x0b \x03(\x0b2\x1a.viam.app.v1.PackageConfigR\x08packages\x12\\\n\x19overwrite_fragment_status\x18\x0c \x03(\x0b2 .viam.app.v1.AppValidationStatusR\x17overwriteFragmentStatus\x12,\n\x12enable_web_profile\x18\r \x01(\x08R\x10enableWebProfile\x12/\n\x03log\x18\x0e \x03(\x0b2\x1d.viam.app.v1.LogPatternConfigR\x03log\x12\x1a\n\x08revision\x18\x0f \x01(\tR\x08revision\x12E\n\x0bmaintenance\x18\x10 \x01(\x0b2\x1e.viam.app.v1.MaintenanceConfigH\x04R\x0bmaintenance\x88\x01\x01\x12:\n\x19disable_log_deduplication\x18\x11 \x01(\x08R\x17disableLogDeduplicationB\n\n\x08_networkB\x07\n\x05_authB\x08\n\x06_debugB\x18\n\x16_disable_partial_startB\x0e\n\x0c_maintenance"B\n\x10LogPatternConfig\x12\x18\n\x07pattern\x18\x01 \x01(\tR\x07pattern\x12\x14\n\x05level\x18\x02 \x01(\tR\x05level"8\n\x0eLocationSecret\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x16\n\x06secret\x18\x02 \x01(\tR\x06secret"+\n\x13AppValidationStatus\x12\x14\n\x05error\x18\x01 \x01(\tR\x05error"\xbe\x03\n\x0bCloudConfig\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04fqdn\x18\x02 \x01(\tR\x04fqdn\x12\x1d\n\nlocal_fqdn\x18\x03 \x01(\tR\tlocalFqdn\x12\x1d\n\nmanaged_by\x18\x04 \x01(\tR\tmanagedBy\x12+\n\x11signaling_address\x18\x05 \x01(\tR\x10signalingAddress\x12-\n\x12signaling_insecure\x18\x06 \x01(\x08R\x11signalingInsecure\x12+\n\x0flocation_secret\x18\x07 \x01(\tB\x02\x18\x01R\x0elocationSecret\x12\x16\n\x06secret\x18\x08 \x01(\tR\x06secret\x12F\n\x10location_secrets\x18\t \x03(\x0b2\x1b.viam.app.v1.LocationSecretR\x0flocationSecrets\x12$\n\x0eprimary_org_id\x18\n \x01(\tR\x0cprimaryOrgId\x12\x1f\n\x0blocation_id\x18\x0b \x01(\tR\nlocationId\x12\x1d\n\nmachine_id\x18\x0c \x01(\tR\tmachineId"\xbb\x03\n\x0fComponentConfig\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1c\n\tnamespace\x18\x02 \x01(\tR\tnamespace\x12\x12\n\x04type\x18\x03 \x01(\tR\x04type\x12\x14\n\x05model\x18\x04 \x01(\tR\x05model\x12(\n\x05frame\x18\x05 \x01(\x0b2\x12.viam.app.v1.FrameR\x05frame\x12\x1d\n\ndepends_on\x18\x06 \x03(\tR\tdependsOn\x12l\n\x0fservice_configs\x18\x07 \x03(\x0b2\'.viam.app.v1.ResourceLevelServiceConfigB\x1a\x9a\x84\x9e\x03\x15json:"service_config"R\x0eserviceConfigs\x127\n\nattributes\x18\x08 \x01(\x0b2\x17.google.protobuf.StructR\nattributes\x12\x10\n\x03api\x18\t \x01(\tR\x03api\x12J\n\x11log_configuration\x18\n \x01(\x0b2\x1d.viam.app.v1.LogConfigurationR\x10logConfiguration"i\n\x1aResourceLevelServiceConfig\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x127\n\nattributes\x18\x02 \x01(\x0b2\x17.google.protobuf.StructR\nattributes"\xf0\x02\n\rProcessConfig\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x12\n\x04args\x18\x03 \x03(\tR\x04args\x12\x10\n\x03cwd\x18\x04 \x01(\tR\x03cwd\x12\x19\n\x08one_shot\x18\x05 \x01(\x08R\x07oneShot\x12\x10\n\x03log\x18\x06 \x01(\x08R\x03log\x12\x1f\n\x0bstop_signal\x18\x07 \x01(\x05R\nstopSignal\x12<\n\x0cstop_timeout\x18\x08 \x01(\x0b2\x19.google.protobuf.DurationR\x0bstopTimeout\x125\n\x03env\x18\t \x03(\x0b2#.viam.app.v1.ProcessConfig.EnvEntryR\x03env\x12\x1a\n\x08username\x18\n \x01(\tR\x08username\x1a6\n\x08EnvEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x028\x01"\x8f\x03\n\rServiceConfig\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1c\n\tnamespace\x18\x02 \x01(\tR\tnamespace\x12\x12\n\x04type\x18\x03 \x01(\tR\x04type\x127\n\nattributes\x18\x04 \x01(\x0b2\x17.google.protobuf.StructR\nattributes\x12\x1d\n\ndepends_on\x18\x05 \x03(\tR\tdependsOn\x12\x14\n\x05model\x18\x06 \x01(\tR\x05model\x12\x10\n\x03api\x18\t \x01(\tR\x03api\x12l\n\x0fservice_configs\x18\n \x03(\x0b2\'.viam.app.v1.ResourceLevelServiceConfigB\x1a\x9a\x84\x9e\x03\x15json:"service_config"R\x0eserviceConfigs\x12J\n\x11log_configuration\x18\x0b \x01(\x0b2\x1d.viam.app.v1.LogConfigurationR\x10logConfiguration"\xa3\x02\n\rNetworkConfig\x12\x12\n\x04fqdn\x18\x01 \x01(\tR\x04fqdn\x12!\n\x0cbind_address\x18\x02 \x01(\tR\x0bbindAddress\x12"\n\rtls_cert_file\x18\x03 \x01(\tR\x0btlsCertFile\x12 \n\x0ctls_key_file\x18\x04 \x01(\tR\ntlsKeyFile\x127\n\x08sessions\x18\x05 \x01(\x0b2\x1b.viam.app.v1.SessionsConfigR\x08sessions\x12\\\n\x18traffic_tunnel_endpoints\x18\x06 \x03(\x0b2".viam.app.v1.TrafficTunnelEndpointR\x16trafficTunnelEndpoints"V\n\x0eSessionsConfig\x12D\n\x10heartbeat_window\x18\x01 \x01(\x0b2\x19.google.protobuf.DurationR\x0fheartbeatWindow"u\n\x15TrafficTunnelEndpoint\x12\x12\n\x04port\x18\x01 \x01(\x05R\x04port\x12H\n\x12connection_timeout\x18\x02 \x01(\x0b2\x19.google.protobuf.DurationR\x11connectionTimeout"\xe5\x01\n\nAuthConfig\x12:\n\x08handlers\x18\x01 \x03(\x0b2\x1e.viam.app.v1.AuthHandlerConfigR\x08handlers\x12*\n\x11tls_auth_entities\x18\x02 \x03(\tR\x0ftlsAuthEntities\x12V\n\x14external_auth_config\x18\x03 \x01(\x0b2\x1f.viam.app.v1.ExternalAuthConfigH\x00R\x12externalAuthConfig\x88\x01\x01B\x17\n\x15_external_auth_config"7\n\x08JWKSFile\x12+\n\x04json\x18\x01 \x01(\x0b2\x17.google.protobuf.StructR\x04json"?\n\x12ExternalAuthConfig\x12)\n\x04jwks\x18\x01 \x01(\x0b2\x15.viam.app.v1.JWKSFileR\x04jwks"v\n\x11AuthHandlerConfig\x120\n\x04type\x18\x01 \x01(\x0e2\x1c.viam.app.v1.CredentialsTypeR\x04type\x12/\n\x06config\x18\x05 \x01(\x0b2\x17.google.protobuf.StructR\x06config"\xcd\x01\n\x05Frame\x12\x16\n\x06parent\x18\x01 \x01(\tR\x06parent\x12:\n\x0btranslation\x18\x02 \x01(\x0b2\x18.viam.app.v1.TranslationR\x0btranslation\x12:\n\x0borientation\x18\x03 \x01(\x0b2\x18.viam.app.v1.OrientationR\x0borientation\x124\n\x08geometry\x18\x04 \x01(\x0b2\x18.viam.common.v1.GeometryR\x08geometry"(\n\x10LogConfiguration\x12\x14\n\x05level\x18\x01 \x01(\tR\x05level"7\n\x0bTranslation\x12\x0c\n\x01x\x18\x01 \x01(\x01R\x01x\x12\x0c\n\x01y\x18\x02 \x01(\x01R\x01y\x12\x0c\n\x01z\x18\x03 \x01(\x01R\x01z"\xd0\x07\n\x0bOrientation\x12O\n\x0eno_orientation\x18\x01 \x01(\x0b2&.viam.app.v1.Orientation.NoOrientationH\x00R\rnoOrientation\x12Z\n\x0evector_radians\x18\x02 \x01(\x0b21.viam.app.v1.Orientation.OrientationVectorRadiansH\x00R\rvectorRadians\x12Z\n\x0evector_degrees\x18\x03 \x01(\x0b21.viam.app.v1.Orientation.OrientationVectorDegreesH\x00R\rvectorDegrees\x12I\n\x0ceuler_angles\x18\x04 \x01(\x0b2$.viam.app.v1.Orientation.EulerAnglesH\x00R\x0beulerAngles\x12F\n\x0baxis_angles\x18\x05 \x01(\x0b2#.viam.app.v1.Orientation.AxisAnglesH\x00R\naxisAngles\x12E\n\nquaternion\x18\x06 \x01(\x0b2#.viam.app.v1.Orientation.QuaternionH\x00R\nquaternion\x1a\x0f\n\rNoOrientation\x1aj\n\x18OrientationVectorRadians\x12$\n\x05theta\x18\x01 \x01(\x01B\x0e\x9a\x84\x9e\x03\tjson:"th"R\x05theta\x12\x0c\n\x01x\x18\x02 \x01(\x01R\x01x\x12\x0c\n\x01y\x18\x03 \x01(\x01R\x01y\x12\x0c\n\x01z\x18\x04 \x01(\x01R\x01z\x1aj\n\x18OrientationVectorDegrees\x12$\n\x05theta\x18\x01 \x01(\x01B\x0e\x9a\x84\x9e\x03\tjson:"th"R\x05theta\x12\x0c\n\x01x\x18\x02 \x01(\x01R\x01x\x12\x0c\n\x01y\x18\x03 \x01(\x01R\x01y\x12\x0c\n\x01z\x18\x04 \x01(\x01R\x01z\x1aI\n\x0bEulerAngles\x12\x12\n\x04roll\x18\x01 \x01(\x01R\x04roll\x12\x14\n\x05pitch\x18\x02 \x01(\x01R\x05pitch\x12\x10\n\x03yaw\x18\x03 \x01(\x01R\x03yaw\x1a\\\n\nAxisAngles\x12$\n\x05theta\x18\x01 \x01(\x01B\x0e\x9a\x84\x9e\x03\tjson:"th"R\x05theta\x12\x0c\n\x01x\x18\x02 \x01(\x01R\x01x\x12\x0c\n\x01y\x18\x03 \x01(\x01R\x01y\x12\x0c\n\x01z\x18\x04 \x01(\x01R\x01z\x1aD\n\nQuaternion\x12\x0c\n\x01w\x18\x01 \x01(\x01R\x01w\x12\x0c\n\x01x\x18\x02 \x01(\x01R\x01x\x12\x0c\n\x01y\x18\x03 \x01(\x01R\x01y\x12\x0c\n\x01z\x18\x04 \x01(\x01R\x01zB\x06\n\x04type"\xf5\x03\n\x0cRemoteConfig\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07address\x18\x02 \x01(\tR\x07address\x12(\n\x05frame\x18\x03 \x01(\x0b2\x12.viam.app.v1.FrameR\x05frame\x12+\n\x04auth\x18\x04 \x01(\x0b2\x17.viam.app.v1.RemoteAuthR\x04auth\x12\x1d\n\nmanaged_by\x18\x05 \x01(\tR\tmanagedBy\x12\x1a\n\x08insecure\x18\x06 \x01(\x08R\x08insecure\x12U\n\x19connection_check_interval\x18\x07 \x01(\x0b2\x19.google.protobuf.DurationR\x17connectionCheckInterval\x12H\n\x12reconnect_interval\x18\x08 \x01(\x0b2\x19.google.protobuf.DurationR\x11reconnectInterval\x12l\n\x0fservice_configs\x18\t \x03(\x0b2\'.viam.app.v1.ResourceLevelServiceConfigB\x1a\x9a\x84\x9e\x03\x15json:"service_config"R\x0eserviceConfigs\x12\x16\n\x06secret\x18\n \x01(\tR\x06secret"\xc6\x01\n\nRemoteAuth\x12E\n\x0bcredentials\x18\x01 \x01(\x0b2#.viam.app.v1.RemoteAuth.CredentialsR\x0bcredentials\x12\x16\n\x06entity\x18\x02 \x01(\tR\x06entity\x1aY\n\x0bCredentials\x120\n\x04type\x18\x01 \x01(\x0e2\x1c.viam.app.v1.CredentialsTypeR\x04type\x12\x18\n\x07payload\x18\x02 \x01(\tR\x07payload"\xd1\x01\n\tAgentInfo\x12\x12\n\x04host\x18\x01 \x01(\tR\x04host\x12\x0e\n\x02os\x18\x02 \x01(\tR\x02os\x12\x10\n\x03ips\x18\x03 \x03(\tR\x03ips\x12\x18\n\x07version\x18\x04 \x01(\tR\x07version\x12!\n\x0cgit_revision\x18\x05 \x01(\tR\x0bgitRevision\x12\x1f\n\x08platform\x18\x06 \x01(\tH\x00R\x08platform\x88\x01\x01\x12#\n\rplatform_tags\x18\x07 \x03(\tR\x0cplatformTagsB\x0b\n\t_platform"j\n\rConfigRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12:\n\nagent_info\x18\x02 \x01(\x0b2\x16.viam.app.v1.AgentInfoH\x00R\tagentInfo\x88\x01\x01B\r\n\x0b_agent_info"B\n\x0eConfigResponse\x120\n\x06config\x18\x01 \x01(\x0b2\x18.viam.app.v1.RobotConfigR\x06config"$\n\x12CertificateRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"v\n\x13CertificateResponse\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\'\n\x0ftls_certificate\x18\x02 \x01(\tR\x0etlsCertificate\x12&\n\x0ftls_private_key\x18\x03 \x01(\tR\rtlsPrivateKey"J\n\nLogRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12,\n\x04logs\x18\x02 \x03(\x0b2\x18.viam.common.v1.LogEntryR\x04logs"\r\n\x0bLogResponse"%\n\x13NeedsRestartRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"\x9a\x01\n\x14NeedsRestartResponse\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0cmust_restart\x18\x02 \x01(\x08R\x0bmustRestart\x12O\n\x16restart_check_interval\x18\x03 \x01(\x0b2\x19.google.protobuf.DurationR\x14restartCheckInterval"\xf3\x02\n\x0cModuleConfig\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04path\x18\x02 \x01(\tR\x04path\x12\x1b\n\tlog_level\x18\x03 \x01(\tR\x08logLevel\x12\x12\n\x04type\x18\x04 \x01(\tR\x04type\x12\x1b\n\tmodule_id\x18\x05 \x01(\tR\x08moduleId\x124\n\x03env\x18\x06 \x03(\x0b2".viam.app.v1.ModuleConfig.EnvEntryR\x03env\x128\n\x06status\x18\x07 \x01(\x0b2 .viam.app.v1.AppValidationStatusR\x06status\x12E\n\x11first_run_timeout\x18\x08 \x01(\x0b2\x19.google.protobuf.DurationR\x0ffirstRunTimeout\x1a6\n\x08EnvEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x028\x01"\xa5\x01\n\rPackageConfig\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07package\x18\x02 \x01(\tR\x07package\x12\x18\n\x07version\x18\x03 \x01(\tR\x07version\x12\x12\n\x04type\x18\x04 \x01(\tR\x04type\x128\n\x06status\x18\x05 \x01(\x0b2 .viam.app.v1.AppValidationStatusR\x06status"\x8a\x01\n\x11MaintenanceConfig\x12=\n\x0bsensor_name\x18\x01 \x01(\x0b2\x1c.viam.common.v1.ResourceNameR\nsensorName\x126\n\x17maintenance_allowed_key\x18\x02 \x01(\tR\x15maintenanceAllowedKey*\xbf\x01\n\x0fCredentialsType\x12 \n\x1cCREDENTIALS_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19CREDENTIALS_TYPE_INTERNAL\x10\x01\x12\x1c\n\x18CREDENTIALS_TYPE_API_KEY\x10\x02\x12!\n\x1dCREDENTIALS_TYPE_ROBOT_SECRET\x10\x03\x12*\n&CREDENTIALS_TYPE_ROBOT_LOCATION_SECRET\x10\x042\xb2\x02\n\x0cRobotService\x12A\n\x06Config\x12\x1a.viam.app.v1.ConfigRequest\x1a\x1b.viam.app.v1.ConfigResponse\x12P\n\x0bCertificate\x12\x1f.viam.app.v1.CertificateRequest\x1a .viam.app.v1.CertificateResponse\x128\n\x03Log\x12\x17.viam.app.v1.LogRequest\x1a\x18.viam.app.v1.LogResponse\x12S\n\x0cNeedsRestart\x12 .viam.app.v1.NeedsRestartRequest\x1a!.viam.app.v1.NeedsRestartResponseB\x18Z\x16go.viam.com/api/app/v1b\x06proto3')
13
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12app/v1/robot.proto\x12\x0bviam.app.v1\x1a\x16common/v1/common.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x16tagger/v1/tagger.proto"\xf5\x07\n\x0bRobotConfig\x12.\n\x05cloud\x18\x01 \x01(\x0b2\x18.viam.app.v1.CloudConfigR\x05cloud\x123\n\x07remotes\x18\x02 \x03(\x0b2\x19.viam.app.v1.RemoteConfigR\x07remotes\x12<\n\ncomponents\x18\x03 \x03(\x0b2\x1c.viam.app.v1.ComponentConfigR\ncomponents\x128\n\tprocesses\x18\x04 \x03(\x0b2\x1a.viam.app.v1.ProcessConfigR\tprocesses\x126\n\x08services\x18\x05 \x03(\x0b2\x1a.viam.app.v1.ServiceConfigR\x08services\x129\n\x07network\x18\x06 \x01(\x0b2\x1a.viam.app.v1.NetworkConfigH\x00R\x07network\x88\x01\x01\x120\n\x04auth\x18\x07 \x01(\x0b2\x17.viam.app.v1.AuthConfigH\x01R\x04auth\x88\x01\x01\x12\x19\n\x05debug\x18\x08 \x01(\x08H\x02R\x05debug\x88\x01\x01\x123\n\x07modules\x18\t \x03(\x0b2\x19.viam.app.v1.ModuleConfigR\x07modules\x127\n\x15disable_partial_start\x18\n \x01(\x08H\x03R\x13disablePartialStart\x88\x01\x01\x126\n\x08packages\x18\x0b \x03(\x0b2\x1a.viam.app.v1.PackageConfigR\x08packages\x12\\\n\x19overwrite_fragment_status\x18\x0c \x03(\x0b2 .viam.app.v1.AppValidationStatusR\x17overwriteFragmentStatus\x12,\n\x12enable_web_profile\x18\r \x01(\x08R\x10enableWebProfile\x12/\n\x03log\x18\x0e \x03(\x0b2\x1d.viam.app.v1.LogPatternConfigR\x03log\x12\x1a\n\x08revision\x18\x0f \x01(\tR\x08revision\x12E\n\x0bmaintenance\x18\x10 \x01(\x0b2\x1e.viam.app.v1.MaintenanceConfigH\x04R\x0bmaintenance\x88\x01\x01\x12:\n\x19disable_log_deduplication\x18\x11 \x01(\x08R\x17disableLogDeduplicationB\n\n\x08_networkB\x07\n\x05_authB\x08\n\x06_debugB\x18\n\x16_disable_partial_startB\x0e\n\x0c_maintenance"B\n\x10LogPatternConfig\x12\x18\n\x07pattern\x18\x01 \x01(\tR\x07pattern\x12\x14\n\x05level\x18\x02 \x01(\tR\x05level"8\n\x0eLocationSecret\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x16\n\x06secret\x18\x02 \x01(\tR\x06secret"+\n\x13AppValidationStatus\x12\x14\n\x05error\x18\x01 \x01(\tR\x05error"\xbe\x03\n\x0bCloudConfig\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04fqdn\x18\x02 \x01(\tR\x04fqdn\x12\x1d\n\nlocal_fqdn\x18\x03 \x01(\tR\tlocalFqdn\x12\x1d\n\nmanaged_by\x18\x04 \x01(\tR\tmanagedBy\x12+\n\x11signaling_address\x18\x05 \x01(\tR\x10signalingAddress\x12-\n\x12signaling_insecure\x18\x06 \x01(\x08R\x11signalingInsecure\x12+\n\x0flocation_secret\x18\x07 \x01(\tB\x02\x18\x01R\x0elocationSecret\x12\x16\n\x06secret\x18\x08 \x01(\tR\x06secret\x12F\n\x10location_secrets\x18\t \x03(\x0b2\x1b.viam.app.v1.LocationSecretR\x0flocationSecrets\x12$\n\x0eprimary_org_id\x18\n \x01(\tR\x0cprimaryOrgId\x12\x1f\n\x0blocation_id\x18\x0b \x01(\tR\nlocationId\x12\x1d\n\nmachine_id\x18\x0c \x01(\tR\tmachineId"\xbb\x03\n\x0fComponentConfig\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1c\n\tnamespace\x18\x02 \x01(\tR\tnamespace\x12\x12\n\x04type\x18\x03 \x01(\tR\x04type\x12\x14\n\x05model\x18\x04 \x01(\tR\x05model\x12(\n\x05frame\x18\x05 \x01(\x0b2\x12.viam.app.v1.FrameR\x05frame\x12\x1d\n\ndepends_on\x18\x06 \x03(\tR\tdependsOn\x12l\n\x0fservice_configs\x18\x07 \x03(\x0b2\'.viam.app.v1.ResourceLevelServiceConfigB\x1a\x9a\x84\x9e\x03\x15json:"service_config"R\x0eserviceConfigs\x127\n\nattributes\x18\x08 \x01(\x0b2\x17.google.protobuf.StructR\nattributes\x12\x10\n\x03api\x18\t \x01(\tR\x03api\x12J\n\x11log_configuration\x18\n \x01(\x0b2\x1d.viam.app.v1.LogConfigurationR\x10logConfiguration"i\n\x1aResourceLevelServiceConfig\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x127\n\nattributes\x18\x02 \x01(\x0b2\x17.google.protobuf.StructR\nattributes"\xf0\x02\n\rProcessConfig\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x12\n\x04args\x18\x03 \x03(\tR\x04args\x12\x10\n\x03cwd\x18\x04 \x01(\tR\x03cwd\x12\x19\n\x08one_shot\x18\x05 \x01(\x08R\x07oneShot\x12\x10\n\x03log\x18\x06 \x01(\x08R\x03log\x12\x1f\n\x0bstop_signal\x18\x07 \x01(\x05R\nstopSignal\x12<\n\x0cstop_timeout\x18\x08 \x01(\x0b2\x19.google.protobuf.DurationR\x0bstopTimeout\x125\n\x03env\x18\t \x03(\x0b2#.viam.app.v1.ProcessConfig.EnvEntryR\x03env\x12\x1a\n\x08username\x18\n \x01(\tR\x08username\x1a6\n\x08EnvEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x028\x01"\x8f\x03\n\rServiceConfig\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1c\n\tnamespace\x18\x02 \x01(\tR\tnamespace\x12\x12\n\x04type\x18\x03 \x01(\tR\x04type\x127\n\nattributes\x18\x04 \x01(\x0b2\x17.google.protobuf.StructR\nattributes\x12\x1d\n\ndepends_on\x18\x05 \x03(\tR\tdependsOn\x12\x14\n\x05model\x18\x06 \x01(\tR\x05model\x12\x10\n\x03api\x18\t \x01(\tR\x03api\x12l\n\x0fservice_configs\x18\n \x03(\x0b2\'.viam.app.v1.ResourceLevelServiceConfigB\x1a\x9a\x84\x9e\x03\x15json:"service_config"R\x0eserviceConfigs\x12J\n\x11log_configuration\x18\x0b \x01(\x0b2\x1d.viam.app.v1.LogConfigurationR\x10logConfiguration"\xba\x02\n\rNetworkConfig\x12\x12\n\x04fqdn\x18\x01 \x01(\tR\x04fqdn\x12!\n\x0cbind_address\x18\x02 \x01(\tR\x0bbindAddress\x12"\n\rtls_cert_file\x18\x03 \x01(\tR\x0btlsCertFile\x12 \n\x0ctls_key_file\x18\x04 \x01(\tR\ntlsKeyFile\x127\n\x08sessions\x18\x05 \x01(\x0b2\x1b.viam.app.v1.SessionsConfigR\x08sessions\x12\\\n\x18traffic_tunnel_endpoints\x18\x06 \x03(\x0b2".viam.app.v1.TrafficTunnelEndpointR\x16trafficTunnelEndpoints\x12\x15\n\x06no_tls\x18\x07 \x01(\x08R\x05noTls"V\n\x0eSessionsConfig\x12D\n\x10heartbeat_window\x18\x01 \x01(\x0b2\x19.google.protobuf.DurationR\x0fheartbeatWindow"u\n\x15TrafficTunnelEndpoint\x12\x12\n\x04port\x18\x01 \x01(\x05R\x04port\x12H\n\x12connection_timeout\x18\x02 \x01(\x0b2\x19.google.protobuf.DurationR\x11connectionTimeout"\xe5\x01\n\nAuthConfig\x12:\n\x08handlers\x18\x01 \x03(\x0b2\x1e.viam.app.v1.AuthHandlerConfigR\x08handlers\x12*\n\x11tls_auth_entities\x18\x02 \x03(\tR\x0ftlsAuthEntities\x12V\n\x14external_auth_config\x18\x03 \x01(\x0b2\x1f.viam.app.v1.ExternalAuthConfigH\x00R\x12externalAuthConfig\x88\x01\x01B\x17\n\x15_external_auth_config"7\n\x08JWKSFile\x12+\n\x04json\x18\x01 \x01(\x0b2\x17.google.protobuf.StructR\x04json"?\n\x12ExternalAuthConfig\x12)\n\x04jwks\x18\x01 \x01(\x0b2\x15.viam.app.v1.JWKSFileR\x04jwks"v\n\x11AuthHandlerConfig\x120\n\x04type\x18\x01 \x01(\x0e2\x1c.viam.app.v1.CredentialsTypeR\x04type\x12/\n\x06config\x18\x05 \x01(\x0b2\x17.google.protobuf.StructR\x06config"\xcd\x01\n\x05Frame\x12\x16\n\x06parent\x18\x01 \x01(\tR\x06parent\x12:\n\x0btranslation\x18\x02 \x01(\x0b2\x18.viam.app.v1.TranslationR\x0btranslation\x12:\n\x0borientation\x18\x03 \x01(\x0b2\x18.viam.app.v1.OrientationR\x0borientation\x124\n\x08geometry\x18\x04 \x01(\x0b2\x18.viam.common.v1.GeometryR\x08geometry"(\n\x10LogConfiguration\x12\x14\n\x05level\x18\x01 \x01(\tR\x05level"7\n\x0bTranslation\x12\x0c\n\x01x\x18\x01 \x01(\x01R\x01x\x12\x0c\n\x01y\x18\x02 \x01(\x01R\x01y\x12\x0c\n\x01z\x18\x03 \x01(\x01R\x01z"\xd0\x07\n\x0bOrientation\x12O\n\x0eno_orientation\x18\x01 \x01(\x0b2&.viam.app.v1.Orientation.NoOrientationH\x00R\rnoOrientation\x12Z\n\x0evector_radians\x18\x02 \x01(\x0b21.viam.app.v1.Orientation.OrientationVectorRadiansH\x00R\rvectorRadians\x12Z\n\x0evector_degrees\x18\x03 \x01(\x0b21.viam.app.v1.Orientation.OrientationVectorDegreesH\x00R\rvectorDegrees\x12I\n\x0ceuler_angles\x18\x04 \x01(\x0b2$.viam.app.v1.Orientation.EulerAnglesH\x00R\x0beulerAngles\x12F\n\x0baxis_angles\x18\x05 \x01(\x0b2#.viam.app.v1.Orientation.AxisAnglesH\x00R\naxisAngles\x12E\n\nquaternion\x18\x06 \x01(\x0b2#.viam.app.v1.Orientation.QuaternionH\x00R\nquaternion\x1a\x0f\n\rNoOrientation\x1aj\n\x18OrientationVectorRadians\x12$\n\x05theta\x18\x01 \x01(\x01B\x0e\x9a\x84\x9e\x03\tjson:"th"R\x05theta\x12\x0c\n\x01x\x18\x02 \x01(\x01R\x01x\x12\x0c\n\x01y\x18\x03 \x01(\x01R\x01y\x12\x0c\n\x01z\x18\x04 \x01(\x01R\x01z\x1aj\n\x18OrientationVectorDegrees\x12$\n\x05theta\x18\x01 \x01(\x01B\x0e\x9a\x84\x9e\x03\tjson:"th"R\x05theta\x12\x0c\n\x01x\x18\x02 \x01(\x01R\x01x\x12\x0c\n\x01y\x18\x03 \x01(\x01R\x01y\x12\x0c\n\x01z\x18\x04 \x01(\x01R\x01z\x1aI\n\x0bEulerAngles\x12\x12\n\x04roll\x18\x01 \x01(\x01R\x04roll\x12\x14\n\x05pitch\x18\x02 \x01(\x01R\x05pitch\x12\x10\n\x03yaw\x18\x03 \x01(\x01R\x03yaw\x1a\\\n\nAxisAngles\x12$\n\x05theta\x18\x01 \x01(\x01B\x0e\x9a\x84\x9e\x03\tjson:"th"R\x05theta\x12\x0c\n\x01x\x18\x02 \x01(\x01R\x01x\x12\x0c\n\x01y\x18\x03 \x01(\x01R\x01y\x12\x0c\n\x01z\x18\x04 \x01(\x01R\x01z\x1aD\n\nQuaternion\x12\x0c\n\x01w\x18\x01 \x01(\x01R\x01w\x12\x0c\n\x01x\x18\x02 \x01(\x01R\x01x\x12\x0c\n\x01y\x18\x03 \x01(\x01R\x01y\x12\x0c\n\x01z\x18\x04 \x01(\x01R\x01zB\x06\n\x04type"\xf5\x03\n\x0cRemoteConfig\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07address\x18\x02 \x01(\tR\x07address\x12(\n\x05frame\x18\x03 \x01(\x0b2\x12.viam.app.v1.FrameR\x05frame\x12+\n\x04auth\x18\x04 \x01(\x0b2\x17.viam.app.v1.RemoteAuthR\x04auth\x12\x1d\n\nmanaged_by\x18\x05 \x01(\tR\tmanagedBy\x12\x1a\n\x08insecure\x18\x06 \x01(\x08R\x08insecure\x12U\n\x19connection_check_interval\x18\x07 \x01(\x0b2\x19.google.protobuf.DurationR\x17connectionCheckInterval\x12H\n\x12reconnect_interval\x18\x08 \x01(\x0b2\x19.google.protobuf.DurationR\x11reconnectInterval\x12l\n\x0fservice_configs\x18\t \x03(\x0b2\'.viam.app.v1.ResourceLevelServiceConfigB\x1a\x9a\x84\x9e\x03\x15json:"service_config"R\x0eserviceConfigs\x12\x16\n\x06secret\x18\n \x01(\tR\x06secret"\xc6\x01\n\nRemoteAuth\x12E\n\x0bcredentials\x18\x01 \x01(\x0b2#.viam.app.v1.RemoteAuth.CredentialsR\x0bcredentials\x12\x16\n\x06entity\x18\x02 \x01(\tR\x06entity\x1aY\n\x0bCredentials\x120\n\x04type\x18\x01 \x01(\x0e2\x1c.viam.app.v1.CredentialsTypeR\x04type\x12\x18\n\x07payload\x18\x02 \x01(\tR\x07payload"\xd1\x01\n\tAgentInfo\x12\x12\n\x04host\x18\x01 \x01(\tR\x04host\x12\x0e\n\x02os\x18\x02 \x01(\tR\x02os\x12\x10\n\x03ips\x18\x03 \x03(\tR\x03ips\x12\x18\n\x07version\x18\x04 \x01(\tR\x07version\x12!\n\x0cgit_revision\x18\x05 \x01(\tR\x0bgitRevision\x12\x1f\n\x08platform\x18\x06 \x01(\tH\x00R\x08platform\x88\x01\x01\x12#\n\rplatform_tags\x18\x07 \x03(\tR\x0cplatformTagsB\x0b\n\t_platform"j\n\rConfigRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12:\n\nagent_info\x18\x02 \x01(\x0b2\x16.viam.app.v1.AgentInfoH\x00R\tagentInfo\x88\x01\x01B\r\n\x0b_agent_info"B\n\x0eConfigResponse\x120\n\x06config\x18\x01 \x01(\x0b2\x18.viam.app.v1.RobotConfigR\x06config"$\n\x12CertificateRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"v\n\x13CertificateResponse\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\'\n\x0ftls_certificate\x18\x02 \x01(\tR\x0etlsCertificate\x12&\n\x0ftls_private_key\x18\x03 \x01(\tR\rtlsPrivateKey"J\n\nLogRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12,\n\x04logs\x18\x02 \x03(\x0b2\x18.viam.common.v1.LogEntryR\x04logs"\r\n\x0bLogResponse"%\n\x13NeedsRestartRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"\x9a\x01\n\x14NeedsRestartResponse\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0cmust_restart\x18\x02 \x01(\x08R\x0bmustRestart\x12O\n\x16restart_check_interval\x18\x03 \x01(\x0b2\x19.google.protobuf.DurationR\x14restartCheckInterval"\xf3\x02\n\x0cModuleConfig\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04path\x18\x02 \x01(\tR\x04path\x12\x1b\n\tlog_level\x18\x03 \x01(\tR\x08logLevel\x12\x12\n\x04type\x18\x04 \x01(\tR\x04type\x12\x1b\n\tmodule_id\x18\x05 \x01(\tR\x08moduleId\x124\n\x03env\x18\x06 \x03(\x0b2".viam.app.v1.ModuleConfig.EnvEntryR\x03env\x128\n\x06status\x18\x07 \x01(\x0b2 .viam.app.v1.AppValidationStatusR\x06status\x12E\n\x11first_run_timeout\x18\x08 \x01(\x0b2\x19.google.protobuf.DurationR\x0ffirstRunTimeout\x1a6\n\x08EnvEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x028\x01"\xa5\x01\n\rPackageConfig\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07package\x18\x02 \x01(\tR\x07package\x12\x18\n\x07version\x18\x03 \x01(\tR\x07version\x12\x12\n\x04type\x18\x04 \x01(\tR\x04type\x128\n\x06status\x18\x05 \x01(\x0b2 .viam.app.v1.AppValidationStatusR\x06status"\x8a\x01\n\x11MaintenanceConfig\x12=\n\x0bsensor_name\x18\x01 \x01(\x0b2\x1c.viam.common.v1.ResourceNameR\nsensorName\x126\n\x17maintenance_allowed_key\x18\x02 \x01(\tR\x15maintenanceAllowedKey*\xbf\x01\n\x0fCredentialsType\x12 \n\x1cCREDENTIALS_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19CREDENTIALS_TYPE_INTERNAL\x10\x01\x12\x1c\n\x18CREDENTIALS_TYPE_API_KEY\x10\x02\x12!\n\x1dCREDENTIALS_TYPE_ROBOT_SECRET\x10\x03\x12*\n&CREDENTIALS_TYPE_ROBOT_LOCATION_SECRET\x10\x042\xb2\x02\n\x0cRobotService\x12A\n\x06Config\x12\x1a.viam.app.v1.ConfigRequest\x1a\x1b.viam.app.v1.ConfigResponse\x12P\n\x0bCertificate\x12\x1f.viam.app.v1.CertificateRequest\x1a .viam.app.v1.CertificateResponse\x128\n\x03Log\x12\x17.viam.app.v1.LogRequest\x1a\x18.viam.app.v1.LogResponse\x12S\n\x0cNeedsRestart\x12 .viam.app.v1.NeedsRestartRequest\x1a!.viam.app.v1.NeedsRestartResponseB\x18Z\x16go.viam.com/api/app/v1b\x06proto3')
14
14
  _globals = globals()
15
15
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
16
16
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'app.v1.robot_pb2', _globals)
@@ -35,8 +35,8 @@ if not _descriptor._USE_C_DESCRIPTORS:
35
35
  _globals['_REMOTECONFIG'].fields_by_name['service_configs']._serialized_options = b'\x9a\x84\x9e\x03\x15json:"service_config"'
36
36
  _globals['_MODULECONFIG_ENVENTRY']._loaded_options = None
37
37
  _globals['_MODULECONFIG_ENVENTRY']._serialized_options = b'8\x01'
38
- _globals['_CREDENTIALSTYPE']._serialized_start = 7590
39
- _globals['_CREDENTIALSTYPE']._serialized_end = 7781
38
+ _globals['_CREDENTIALSTYPE']._serialized_start = 7613
39
+ _globals['_CREDENTIALSTYPE']._serialized_end = 7804
40
40
  _globals['_ROBOTCONFIG']._serialized_start = 146
41
41
  _globals['_ROBOTCONFIG']._serialized_end = 1159
42
42
  _globals['_LOGPATTERNCONFIG']._serialized_start = 1161
@@ -58,70 +58,70 @@ if not _descriptor._USE_C_DESCRIPTORS:
58
58
  _globals['_SERVICECONFIG']._serialized_start = 2706
59
59
  _globals['_SERVICECONFIG']._serialized_end = 3105
60
60
  _globals['_NETWORKCONFIG']._serialized_start = 3108
61
- _globals['_NETWORKCONFIG']._serialized_end = 3399
62
- _globals['_SESSIONSCONFIG']._serialized_start = 3401
63
- _globals['_SESSIONSCONFIG']._serialized_end = 3487
64
- _globals['_TRAFFICTUNNELENDPOINT']._serialized_start = 3489
65
- _globals['_TRAFFICTUNNELENDPOINT']._serialized_end = 3606
66
- _globals['_AUTHCONFIG']._serialized_start = 3609
67
- _globals['_AUTHCONFIG']._serialized_end = 3838
68
- _globals['_JWKSFILE']._serialized_start = 3840
69
- _globals['_JWKSFILE']._serialized_end = 3895
70
- _globals['_EXTERNALAUTHCONFIG']._serialized_start = 3897
71
- _globals['_EXTERNALAUTHCONFIG']._serialized_end = 3960
72
- _globals['_AUTHHANDLERCONFIG']._serialized_start = 3962
73
- _globals['_AUTHHANDLERCONFIG']._serialized_end = 4080
74
- _globals['_FRAME']._serialized_start = 4083
75
- _globals['_FRAME']._serialized_end = 4288
76
- _globals['_LOGCONFIGURATION']._serialized_start = 4290
77
- _globals['_LOGCONFIGURATION']._serialized_end = 4330
78
- _globals['_TRANSLATION']._serialized_start = 4332
79
- _globals['_TRANSLATION']._serialized_end = 4387
80
- _globals['_ORIENTATION']._serialized_start = 4390
81
- _globals['_ORIENTATION']._serialized_end = 5366
82
- _globals['_ORIENTATION_NOORIENTATION']._serialized_start = 4888
83
- _globals['_ORIENTATION_NOORIENTATION']._serialized_end = 4903
84
- _globals['_ORIENTATION_ORIENTATIONVECTORRADIANS']._serialized_start = 4905
85
- _globals['_ORIENTATION_ORIENTATIONVECTORRADIANS']._serialized_end = 5011
86
- _globals['_ORIENTATION_ORIENTATIONVECTORDEGREES']._serialized_start = 5013
87
- _globals['_ORIENTATION_ORIENTATIONVECTORDEGREES']._serialized_end = 5119
88
- _globals['_ORIENTATION_EULERANGLES']._serialized_start = 5121
89
- _globals['_ORIENTATION_EULERANGLES']._serialized_end = 5194
90
- _globals['_ORIENTATION_AXISANGLES']._serialized_start = 5196
91
- _globals['_ORIENTATION_AXISANGLES']._serialized_end = 5288
92
- _globals['_ORIENTATION_QUATERNION']._serialized_start = 5290
93
- _globals['_ORIENTATION_QUATERNION']._serialized_end = 5358
94
- _globals['_REMOTECONFIG']._serialized_start = 5369
95
- _globals['_REMOTECONFIG']._serialized_end = 5870
96
- _globals['_REMOTEAUTH']._serialized_start = 5873
97
- _globals['_REMOTEAUTH']._serialized_end = 6071
98
- _globals['_REMOTEAUTH_CREDENTIALS']._serialized_start = 5982
99
- _globals['_REMOTEAUTH_CREDENTIALS']._serialized_end = 6071
100
- _globals['_AGENTINFO']._serialized_start = 6074
101
- _globals['_AGENTINFO']._serialized_end = 6283
102
- _globals['_CONFIGREQUEST']._serialized_start = 6285
103
- _globals['_CONFIGREQUEST']._serialized_end = 6391
104
- _globals['_CONFIGRESPONSE']._serialized_start = 6393
105
- _globals['_CONFIGRESPONSE']._serialized_end = 6459
106
- _globals['_CERTIFICATEREQUEST']._serialized_start = 6461
107
- _globals['_CERTIFICATEREQUEST']._serialized_end = 6497
108
- _globals['_CERTIFICATERESPONSE']._serialized_start = 6499
109
- _globals['_CERTIFICATERESPONSE']._serialized_end = 6617
110
- _globals['_LOGREQUEST']._serialized_start = 6619
111
- _globals['_LOGREQUEST']._serialized_end = 6693
112
- _globals['_LOGRESPONSE']._serialized_start = 6695
113
- _globals['_LOGRESPONSE']._serialized_end = 6708
114
- _globals['_NEEDSRESTARTREQUEST']._serialized_start = 6710
115
- _globals['_NEEDSRESTARTREQUEST']._serialized_end = 6747
116
- _globals['_NEEDSRESTARTRESPONSE']._serialized_start = 6750
117
- _globals['_NEEDSRESTARTRESPONSE']._serialized_end = 6904
118
- _globals['_MODULECONFIG']._serialized_start = 6907
119
- _globals['_MODULECONFIG']._serialized_end = 7278
61
+ _globals['_NETWORKCONFIG']._serialized_end = 3422
62
+ _globals['_SESSIONSCONFIG']._serialized_start = 3424
63
+ _globals['_SESSIONSCONFIG']._serialized_end = 3510
64
+ _globals['_TRAFFICTUNNELENDPOINT']._serialized_start = 3512
65
+ _globals['_TRAFFICTUNNELENDPOINT']._serialized_end = 3629
66
+ _globals['_AUTHCONFIG']._serialized_start = 3632
67
+ _globals['_AUTHCONFIG']._serialized_end = 3861
68
+ _globals['_JWKSFILE']._serialized_start = 3863
69
+ _globals['_JWKSFILE']._serialized_end = 3918
70
+ _globals['_EXTERNALAUTHCONFIG']._serialized_start = 3920
71
+ _globals['_EXTERNALAUTHCONFIG']._serialized_end = 3983
72
+ _globals['_AUTHHANDLERCONFIG']._serialized_start = 3985
73
+ _globals['_AUTHHANDLERCONFIG']._serialized_end = 4103
74
+ _globals['_FRAME']._serialized_start = 4106
75
+ _globals['_FRAME']._serialized_end = 4311
76
+ _globals['_LOGCONFIGURATION']._serialized_start = 4313
77
+ _globals['_LOGCONFIGURATION']._serialized_end = 4353
78
+ _globals['_TRANSLATION']._serialized_start = 4355
79
+ _globals['_TRANSLATION']._serialized_end = 4410
80
+ _globals['_ORIENTATION']._serialized_start = 4413
81
+ _globals['_ORIENTATION']._serialized_end = 5389
82
+ _globals['_ORIENTATION_NOORIENTATION']._serialized_start = 4911
83
+ _globals['_ORIENTATION_NOORIENTATION']._serialized_end = 4926
84
+ _globals['_ORIENTATION_ORIENTATIONVECTORRADIANS']._serialized_start = 4928
85
+ _globals['_ORIENTATION_ORIENTATIONVECTORRADIANS']._serialized_end = 5034
86
+ _globals['_ORIENTATION_ORIENTATIONVECTORDEGREES']._serialized_start = 5036
87
+ _globals['_ORIENTATION_ORIENTATIONVECTORDEGREES']._serialized_end = 5142
88
+ _globals['_ORIENTATION_EULERANGLES']._serialized_start = 5144
89
+ _globals['_ORIENTATION_EULERANGLES']._serialized_end = 5217
90
+ _globals['_ORIENTATION_AXISANGLES']._serialized_start = 5219
91
+ _globals['_ORIENTATION_AXISANGLES']._serialized_end = 5311
92
+ _globals['_ORIENTATION_QUATERNION']._serialized_start = 5313
93
+ _globals['_ORIENTATION_QUATERNION']._serialized_end = 5381
94
+ _globals['_REMOTECONFIG']._serialized_start = 5392
95
+ _globals['_REMOTECONFIG']._serialized_end = 5893
96
+ _globals['_REMOTEAUTH']._serialized_start = 5896
97
+ _globals['_REMOTEAUTH']._serialized_end = 6094
98
+ _globals['_REMOTEAUTH_CREDENTIALS']._serialized_start = 6005
99
+ _globals['_REMOTEAUTH_CREDENTIALS']._serialized_end = 6094
100
+ _globals['_AGENTINFO']._serialized_start = 6097
101
+ _globals['_AGENTINFO']._serialized_end = 6306
102
+ _globals['_CONFIGREQUEST']._serialized_start = 6308
103
+ _globals['_CONFIGREQUEST']._serialized_end = 6414
104
+ _globals['_CONFIGRESPONSE']._serialized_start = 6416
105
+ _globals['_CONFIGRESPONSE']._serialized_end = 6482
106
+ _globals['_CERTIFICATEREQUEST']._serialized_start = 6484
107
+ _globals['_CERTIFICATEREQUEST']._serialized_end = 6520
108
+ _globals['_CERTIFICATERESPONSE']._serialized_start = 6522
109
+ _globals['_CERTIFICATERESPONSE']._serialized_end = 6640
110
+ _globals['_LOGREQUEST']._serialized_start = 6642
111
+ _globals['_LOGREQUEST']._serialized_end = 6716
112
+ _globals['_LOGRESPONSE']._serialized_start = 6718
113
+ _globals['_LOGRESPONSE']._serialized_end = 6731
114
+ _globals['_NEEDSRESTARTREQUEST']._serialized_start = 6733
115
+ _globals['_NEEDSRESTARTREQUEST']._serialized_end = 6770
116
+ _globals['_NEEDSRESTARTRESPONSE']._serialized_start = 6773
117
+ _globals['_NEEDSRESTARTRESPONSE']._serialized_end = 6927
118
+ _globals['_MODULECONFIG']._serialized_start = 6930
119
+ _globals['_MODULECONFIG']._serialized_end = 7301
120
120
  _globals['_MODULECONFIG_ENVENTRY']._serialized_start = 2649
121
121
  _globals['_MODULECONFIG_ENVENTRY']._serialized_end = 2703
122
- _globals['_PACKAGECONFIG']._serialized_start = 7281
123
- _globals['_PACKAGECONFIG']._serialized_end = 7446
124
- _globals['_MAINTENANCECONFIG']._serialized_start = 7449
125
- _globals['_MAINTENANCECONFIG']._serialized_end = 7587
126
- _globals['_ROBOTSERVICE']._serialized_start = 7784
127
- _globals['_ROBOTSERVICE']._serialized_end = 8090
122
+ _globals['_PACKAGECONFIG']._serialized_start = 7304
123
+ _globals['_PACKAGECONFIG']._serialized_end = 7469
124
+ _globals['_MAINTENANCECONFIG']._serialized_start = 7472
125
+ _globals['_MAINTENANCECONFIG']._serialized_end = 7610
126
+ _globals['_ROBOTSERVICE']._serialized_start = 7807
127
+ _globals['_ROBOTSERVICE']._serialized_end = 8113
@@ -423,10 +423,12 @@ class NetworkConfig(google.protobuf.message.Message):
423
423
  TLS_KEY_FILE_FIELD_NUMBER: builtins.int
424
424
  SESSIONS_FIELD_NUMBER: builtins.int
425
425
  TRAFFIC_TUNNEL_ENDPOINTS_FIELD_NUMBER: builtins.int
426
+ NO_TLS_FIELD_NUMBER: builtins.int
426
427
  fqdn: builtins.str
427
428
  bind_address: builtins.str
428
429
  tls_cert_file: builtins.str
429
430
  tls_key_file: builtins.str
431
+ no_tls: builtins.bool
430
432
 
431
433
  @property
432
434
  def sessions(self) -> global___SessionsConfig:
@@ -436,13 +438,13 @@ class NetworkConfig(google.protobuf.message.Message):
436
438
  def traffic_tunnel_endpoints(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TrafficTunnelEndpoint]:
437
439
  ...
438
440
 
439
- def __init__(self, *, fqdn: builtins.str=..., bind_address: builtins.str=..., tls_cert_file: builtins.str=..., tls_key_file: builtins.str=..., sessions: global___SessionsConfig | None=..., traffic_tunnel_endpoints: collections.abc.Iterable[global___TrafficTunnelEndpoint] | None=...) -> None:
441
+ def __init__(self, *, fqdn: builtins.str=..., bind_address: builtins.str=..., tls_cert_file: builtins.str=..., tls_key_file: builtins.str=..., sessions: global___SessionsConfig | None=..., traffic_tunnel_endpoints: collections.abc.Iterable[global___TrafficTunnelEndpoint] | None=..., no_tls: builtins.bool=...) -> None:
440
442
  ...
441
443
 
442
444
  def HasField(self, field_name: typing.Literal['sessions', b'sessions']) -> builtins.bool:
443
445
  ...
444
446
 
445
- def ClearField(self, field_name: typing.Literal['bind_address', b'bind_address', 'fqdn', b'fqdn', 'sessions', b'sessions', 'tls_cert_file', b'tls_cert_file', 'tls_key_file', b'tls_key_file', 'traffic_tunnel_endpoints', b'traffic_tunnel_endpoints']) -> None:
447
+ def ClearField(self, field_name: typing.Literal['bind_address', b'bind_address', 'fqdn', b'fqdn', 'no_tls', b'no_tls', 'sessions', b'sessions', 'tls_cert_file', b'tls_cert_file', 'tls_key_file', b'tls_key_file', 'traffic_tunnel_endpoints', b'traffic_tunnel_endpoints']) -> None:
446
448
  ...
447
449
  global___NetworkConfig = NetworkConfig
448
450
 
viam/module/module.py CHANGED
@@ -7,6 +7,7 @@ from inspect import iscoroutinefunction
7
7
  from threading import Lock
8
8
  from typing import List, Mapping, Optional, Sequence, Tuple
9
9
 
10
+ from grpclib.metadata import Deadline
10
11
  from grpclib.utils import _service_name
11
12
  from typing_extensions import Self
12
13
 
@@ -183,13 +184,15 @@ class Module:
183
184
  with self._lock:
184
185
  self._ready = ready
185
186
 
186
- async def add_resource(self, request: AddResourceRequest):
187
+ async def add_resource(self, request: AddResourceRequest, *, deadline: Optional[Deadline] = None):
187
188
  dependencies = await self._get_dependencies(request.dependencies)
188
189
  config: ComponentConfig = request.config
189
190
  api = API.from_string(config.api)
190
191
  model = Model.from_string(config.model, ignore_errors=True)
191
192
  creator = Registry.lookup_resource_creator(api, model)
192
193
  resource = creator(config, dependencies)
194
+ if deadline is not None and deadline.time_remaining() <= 0:
195
+ raise TimeoutError("Deadline expired")
193
196
  update_log_level(resource.logger, config.log_configuration.level.upper())
194
197
  self.server.register(resource)
195
198
 
viam/module/service.py CHANGED
@@ -1,7 +1,9 @@
1
1
  from typing import TYPE_CHECKING
2
2
 
3
+ from grpclib import Status
3
4
  from grpclib.server import Stream
4
5
 
6
+ from viam.errors import ViamGRPCError
5
7
  from viam.proto.module import (
6
8
  AddResourceRequest,
7
9
  AddResourceResponse,
@@ -29,7 +31,13 @@ class ModuleRPCService(ModuleServiceBase):
29
31
  async def AddResource(self, stream: Stream[AddResourceRequest, AddResourceResponse]) -> None:
30
32
  request = await stream.recv_message()
31
33
  assert request is not None
32
- await self._module.add_resource(request)
34
+ try:
35
+ await self._module.add_resource(request, deadline=stream.deadline)
36
+ except TimeoutError:
37
+ raise ViamGRPCError(
38
+ message="Timeout while adding resource",
39
+ grpc_code=Status.DEADLINE_EXCEEDED,
40
+ )
33
41
  await stream.send_message(AddResourceResponse())
34
42
 
35
43
  async def ReconfigureResource(self, stream: Stream[ReconfigureResourceRequest, ReconfigureResourceResponse]) -> None:
@@ -253,6 +253,8 @@ from ...gen.app.v1.app_pb2 import (
253
253
  UpdateOrganizationInviteAuthorizationsResponse,
254
254
  UpdateOrganizationMetadataRequest,
255
255
  UpdateOrganizationMetadataResponse,
256
+ UpdateOrganizationNamespaceRequest,
257
+ UpdateOrganizationNamespaceResponse,
256
258
  UpdateOrganizationRequest,
257
259
  UpdateOrganizationResponse,
258
260
  UpdateRegistryItemRequest,
@@ -528,6 +530,8 @@ __all__ = [
528
530
  "UpdateOrganizationInviteAuthorizationsResponse",
529
531
  "UpdateOrganizationMetadataRequest",
530
532
  "UpdateOrganizationMetadataResponse",
533
+ "UpdateOrganizationNamespaceRequest",
534
+ "UpdateOrganizationNamespaceResponse",
531
535
  "UpdateOrganizationRequest",
532
536
  "UpdateOrganizationResponse",
533
537
  "UpdateRegistryItemRequest",
@@ -12,6 +12,8 @@ from ....gen.app.datapipelines.v1.data_pipelines_pb2 import (
12
12
  CreateDataPipelineRequest,
13
13
  CreateDataPipelineResponse,
14
14
  DataPipeline,
15
+ DataPipelineRun,
16
+ DataPipelineRunStatus,
15
17
  DeleteDataPipelineRequest,
16
18
  DeleteDataPipelineResponse,
17
19
  DisableDataPipelineRequest,
@@ -20,12 +22,10 @@ from ....gen.app.datapipelines.v1.data_pipelines_pb2 import (
20
22
  EnableDataPipelineResponse,
21
23
  GetDataPipelineRequest,
22
24
  GetDataPipelineResponse,
25
+ ListDataPipelineRunsRequest,
26
+ ListDataPipelineRunsResponse,
23
27
  ListDataPipelinesRequest,
24
28
  ListDataPipelinesResponse,
25
- ListPipelineRunsRequest,
26
- ListPipelineRunsResponse,
27
- PipelineRun,
28
- PipelineRunStatus,
29
29
  UpdateDataPipelineRequest,
30
30
  UpdateDataPipelineResponse,
31
31
  )
@@ -37,6 +37,8 @@ __all__ = [
37
37
  "CreateDataPipelineRequest",
38
38
  "CreateDataPipelineResponse",
39
39
  "DataPipeline",
40
+ "DataPipelineRun",
41
+ "DataPipelineRunStatus",
40
42
  "DeleteDataPipelineRequest",
41
43
  "DeleteDataPipelineResponse",
42
44
  "DisableDataPipelineRequest",
@@ -45,12 +47,10 @@ __all__ = [
45
47
  "EnableDataPipelineResponse",
46
48
  "GetDataPipelineRequest",
47
49
  "GetDataPipelineResponse",
50
+ "ListDataPipelineRunsRequest",
51
+ "ListDataPipelineRunsResponse",
48
52
  "ListDataPipelinesRequest",
49
53
  "ListDataPipelinesResponse",
50
- "ListPipelineRunsRequest",
51
- "ListPipelineRunsResponse",
52
- "PipelineRun",
53
- "PipelineRunStatus",
54
54
  "UpdateDataPipelineRequest",
55
55
  "UpdateDataPipelineResponse",
56
56
  ]
viam/robot/client.py CHANGED
@@ -202,7 +202,7 @@ class RobotClient:
202
202
  """
203
203
  logging.setLevel(options.log_level)
204
204
  channel = await dial(address, options.dial_options)
205
- machine = await cls._with_channel(channel, options, True)
205
+ machine = await cls._with_channel(channel, options, True, robot_addr=address)
206
206
  machine._address = address
207
207
  return machine
208
208
 
@@ -237,7 +237,9 @@ class RobotClient:
237
237
  return await cls._with_channel(channel, options, False)
238
238
 
239
239
  @classmethod
240
- async def _with_channel(cls, channel: Union[Channel, ViamChannel], options: Options, close_channel: bool):
240
+ async def _with_channel(
241
+ cls, channel: Union[Channel, ViamChannel], options: Options, close_channel: bool, robot_addr: Optional[str] = None
242
+ ):
241
243
  """INTERNAL USE ONLY"""
242
244
 
243
245
  self = cls()
@@ -258,7 +260,7 @@ class RobotClient:
258
260
  self._options = options
259
261
  self._address = self._channel._path if self._channel._path else f"{self._channel._host}:{self._channel._port}"
260
262
  self._sessions_client = SessionsClient(
261
- self._channel, self._address, self._options.dial_options, disabled=self._options.disable_sessions
263
+ self._channel, self._address, self._options.dial_options, disabled=self._options.disable_sessions, robot_addr=robot_addr
262
264
  )
263
265
 
264
266
  try:
@@ -420,6 +422,7 @@ class RobotClient:
420
422
  direct_dial_address=direct_dial_address,
421
423
  dial_options=self._options.dial_options,
422
424
  disabled=self._options.disable_sessions,
425
+ robot_addr=self._address,
423
426
  )
424
427
 
425
428
  await self.refresh()
viam/rpc/dial.py CHANGED
@@ -232,8 +232,9 @@ class _Runtime:
232
232
  _ptr: ctypes.c_void_p
233
233
 
234
234
  def __init__(self) -> None:
235
+ suffix = "dylib" if sys.platform == "darwin" else "so" if "linux" in sys.platform else "dll"
235
236
  LOGGER.debug("Creating new viam-rust-utils runtime")
236
- libname = pathlib.Path(__file__).parent.absolute() / f"libviam_rust_utils.{'dylib' if sys.platform == 'darwin' else 'so'}"
237
+ libname = pathlib.Path(__file__).parent.absolute() / f"libviam_rust_utils.{suffix}"
237
238
  self._lib = ctypes.CDLL(libname.__str__())
238
239
  self._lib.init_rust_runtime.argtypes = ()
239
240
  self._lib.init_rust_runtime.restype = ctypes.c_void_p
@@ -311,6 +312,15 @@ async def dial(address: str, options: Optional[DialOptions] = None) -> ViamChann
311
312
  raise exception # type: ignore
312
313
 
313
314
 
315
+ def _create_chan(path: str) -> Channel:
316
+ if sys.platform == "win32" or sys.platform == "cygwin":
317
+ # we have to use a TCP connection, so we want a host and port for our channel.
318
+ host, port = _host_port_from_url(path)
319
+ return Channel(host=host, port=port, ssl=None)
320
+ # we're not on windows and so can use a UDS
321
+ return Channel(path=path, ssl=None)
322
+
323
+
314
324
  async def _dial_inner(address: str, options: Optional[DialOptions] = None) -> ViamChannel:
315
325
  async def send_request(event: SendRequest):
316
326
  event.metadata["viam-client"] = f"python;v{SDK_VERSION};v{API_VERSION}"
@@ -324,7 +334,7 @@ async def _dial_inner(address: str, options: Optional[DialOptions] = None) -> Vi
324
334
  path, path_ptr = await runtime.dial(address, opts)
325
335
  if path:
326
336
  LOGGER.info(f"Connecting to socket: {path}")
327
- chan = Channel(path=path, ssl=None)
337
+ chan = _create_chan(path)
328
338
  listen(chan, SendRequest, send_request)
329
339
 
330
340
  def release():
Binary file
viam/sessions_client.py CHANGED
@@ -1,6 +1,7 @@
1
1
  import asyncio
2
2
  import importlib
3
3
  import pkgutil
4
+ import sys
4
5
  from copy import deepcopy
5
6
  from datetime import timedelta
6
7
  from enum import IntEnum
@@ -36,7 +37,8 @@ class SessionsClient:
36
37
 
37
38
  channel: Channel
38
39
  client: RobotServiceStub
39
- _address: str
40
+ _address: str # direct dial address, when using webRTC this is the local socket rather than a robot address
41
+ _robot_address: Optional[str] # the actual machine address on app.viam.com. important for creating a sessions client on Windows
40
42
  _dial_options: DialOptions
41
43
  _disabled: bool
42
44
  _lock: Lock
@@ -47,13 +49,23 @@ class SessionsClient:
47
49
 
48
50
  _HEARTBEAT_MONITORED_METHODS: MutableMapping[str, bool] = {}
49
51
 
50
- def __init__(self, channel: Channel, direct_dial_address: str, dial_options: Optional[DialOptions], *, disabled: bool = False):
52
+ def __init__(
53
+ self,
54
+ channel: Channel,
55
+ direct_dial_address: str,
56
+ dial_options: Optional[DialOptions],
57
+ *,
58
+ disabled: bool = False,
59
+ robot_addr: Optional[str] = None,
60
+ ):
51
61
  self.channel = channel
52
62
  self.client = RobotServiceStub(channel)
53
63
  self._address = direct_dial_address
64
+ self._robot_address = robot_addr
54
65
  self._disabled = disabled
55
66
  self._dial_options = deepcopy(dial_options) if dial_options is not None else DialOptions()
56
- self._dial_options.disable_webrtc = True
67
+ if sys.platform != "win32" and sys.platform != "cygwin":
68
+ self._dial_options.disable_webrtc = True
57
69
  self._lock = Lock()
58
70
  self._current_id = ""
59
71
  self._heartbeat_interval = None
@@ -158,8 +170,19 @@ class SessionsClient:
158
170
  else:
159
171
  LOGGER.debug("Sent heartbeat successfully")
160
172
 
173
+ def _get_local_addr(self) -> str:
174
+ if sys.platform != "win32" and sys.platform != "cygwin":
175
+ # if we're not on windows, we want the direct dial address
176
+ return self._address
177
+
178
+ # return `robot_address` if it exists, otherwise fallback
179
+ # when using TCP (i.e., on Windows), we need to create a connection to the actual
180
+ # robot address for a sessions client to maintain connectivity successfully
181
+ return self._robot_address if self._robot_address is not None else self._address
182
+
161
183
  async def _heartbeat_process(self, wait: float):
162
- channel = await dial(address=self._address, options=self._dial_options)
184
+ addr = self._get_local_addr()
185
+ channel = await dial(address=addr, options=self._dial_options)
163
186
  client = RobotServiceStub(channel.channel)
164
187
  while True:
165
188
  with self._lock:
viam/version_metadata.py CHANGED
@@ -1,4 +1,4 @@
1
- __version__ = "0.44.1"
1
+ __version__ = "0.45.1"
2
2
 
3
- API_VERSION = "v0.1.428"
3
+ API_VERSION = "v0.1.432"
4
4
  SDK_VERSION = __version__