viam-sdk 0.45.2__py3-none-win_amd64.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.

Potentially problematic release.


This version of viam-sdk might be problematic. Click here for more details.

Files changed (476) hide show
  1. viam/__init__.py +71 -0
  2. viam/app/__init__.py +0 -0
  3. viam/app/_logs.py +34 -0
  4. viam/app/app_client.py +2525 -0
  5. viam/app/billing_client.py +143 -0
  6. viam/app/data_client.py +1715 -0
  7. viam/app/ml_training_client.py +251 -0
  8. viam/app/provisioning_client.py +95 -0
  9. viam/app/viam_client.py +260 -0
  10. viam/components/__init__.py +0 -0
  11. viam/components/arm/__init__.py +16 -0
  12. viam/components/arm/arm.py +223 -0
  13. viam/components/arm/client.py +124 -0
  14. viam/components/arm/service.py +123 -0
  15. viam/components/audio_input/__init__.py +18 -0
  16. viam/components/audio_input/audio_input.py +81 -0
  17. viam/components/audio_input/client.py +70 -0
  18. viam/components/audio_input/service.py +114 -0
  19. viam/components/base/__init__.py +13 -0
  20. viam/components/base/base.py +260 -0
  21. viam/components/base/client.py +153 -0
  22. viam/components/base/service.py +138 -0
  23. viam/components/board/__init__.py +9 -0
  24. viam/components/board/board.py +414 -0
  25. viam/components/board/client.py +241 -0
  26. viam/components/board/service.py +223 -0
  27. viam/components/button/__init__.py +10 -0
  28. viam/components/button/button.py +41 -0
  29. viam/components/button/client.py +52 -0
  30. viam/components/button/service.py +46 -0
  31. viam/components/camera/__init__.py +22 -0
  32. viam/components/camera/camera.py +138 -0
  33. viam/components/camera/client.py +98 -0
  34. viam/components/camera/service.py +105 -0
  35. viam/components/component_base.py +65 -0
  36. viam/components/encoder/__init__.py +18 -0
  37. viam/components/encoder/client.py +83 -0
  38. viam/components/encoder/encoder.py +118 -0
  39. viam/components/encoder/service.py +72 -0
  40. viam/components/gantry/__init__.py +11 -0
  41. viam/components/gantry/client.py +115 -0
  42. viam/components/gantry/gantry.py +156 -0
  43. viam/components/gantry/service.py +113 -0
  44. viam/components/generic/__init__.py +18 -0
  45. viam/components/generic/client.py +62 -0
  46. viam/components/generic/generic.py +76 -0
  47. viam/components/generic/service.py +40 -0
  48. viam/components/gripper/__init__.py +11 -0
  49. viam/components/gripper/client.py +85 -0
  50. viam/components/gripper/gripper.py +114 -0
  51. viam/components/gripper/service.py +81 -0
  52. viam/components/input/__init__.py +15 -0
  53. viam/components/input/client.py +194 -0
  54. viam/components/input/input.py +297 -0
  55. viam/components/input/service.py +175 -0
  56. viam/components/motor/__init__.py +11 -0
  57. viam/components/motor/client.py +168 -0
  58. viam/components/motor/motor.py +301 -0
  59. viam/components/motor/service.py +150 -0
  60. viam/components/movement_sensor/__init__.py +21 -0
  61. viam/components/movement_sensor/client.py +161 -0
  62. viam/components/movement_sensor/movement_sensor.py +253 -0
  63. viam/components/movement_sensor/service.py +146 -0
  64. viam/components/pose_tracker/__init__.py +17 -0
  65. viam/components/pose_tracker/client.py +50 -0
  66. viam/components/pose_tracker/pose_tracker.py +40 -0
  67. viam/components/pose_tracker/service.py +45 -0
  68. viam/components/power_sensor/__init__.py +17 -0
  69. viam/components/power_sensor/client.py +86 -0
  70. viam/components/power_sensor/power_sensor.py +104 -0
  71. viam/components/power_sensor/service.py +72 -0
  72. viam/components/sensor/__init__.py +18 -0
  73. viam/components/sensor/client.py +49 -0
  74. viam/components/sensor/sensor.py +48 -0
  75. viam/components/sensor/service.py +51 -0
  76. viam/components/servo/__init__.py +11 -0
  77. viam/components/servo/client.py +86 -0
  78. viam/components/servo/service.py +80 -0
  79. viam/components/servo/servo.py +114 -0
  80. viam/components/switch/__init__.py +10 -0
  81. viam/components/switch/client.py +83 -0
  82. viam/components/switch/service.py +72 -0
  83. viam/components/switch/switch.py +95 -0
  84. viam/errors.py +105 -0
  85. viam/gen/__init__.py +0 -0
  86. viam/gen/app/__init__.py +0 -0
  87. viam/gen/app/agent/__init__.py +0 -0
  88. viam/gen/app/agent/v1/__init__.py +0 -0
  89. viam/gen/app/agent/v1/agent_grpc.py +29 -0
  90. viam/gen/app/agent/v1/agent_pb2.py +47 -0
  91. viam/gen/app/agent/v1/agent_pb2.pyi +280 -0
  92. viam/gen/app/cloudslam/__init__.py +0 -0
  93. viam/gen/app/cloudslam/v1/__init__.py +0 -0
  94. viam/gen/app/cloudslam/v1/cloud_slam_grpc.py +70 -0
  95. viam/gen/app/cloudslam/v1/cloud_slam_pb2.py +54 -0
  96. viam/gen/app/cloudslam/v1/cloud_slam_pb2.pyi +384 -0
  97. viam/gen/app/data/__init__.py +0 -0
  98. viam/gen/app/data/v1/__init__.py +0 -0
  99. viam/gen/app/data/v1/data_grpc.py +206 -0
  100. viam/gen/app/data/v1/data_pb2.py +178 -0
  101. viam/gen/app/data/v1/data_pb2.pyi +1485 -0
  102. viam/gen/app/datapipelines/__init__.py +0 -0
  103. viam/gen/app/datapipelines/v1/__init__.py +0 -0
  104. viam/gen/app/datapipelines/v1/data_pipelines_grpc.py +84 -0
  105. viam/gen/app/datapipelines/v1/data_pipelines_pb2.py +56 -0
  106. viam/gen/app/datapipelines/v1/data_pipelines_pb2.pyi +370 -0
  107. viam/gen/app/dataset/__init__.py +0 -0
  108. viam/gen/app/dataset/v1/__init__.py +0 -0
  109. viam/gen/app/dataset/v1/dataset_grpc.py +60 -0
  110. viam/gen/app/dataset/v1/dataset_pb2.py +40 -0
  111. viam/gen/app/dataset/v1/dataset_pb2.pyi +179 -0
  112. viam/gen/app/datasync/__init__.py +0 -0
  113. viam/gen/app/datasync/v1/__init__.py +0 -0
  114. viam/gen/app/datasync/v1/data_sync_grpc.py +47 -0
  115. viam/gen/app/datasync/v1/data_sync_pb2.py +70 -0
  116. viam/gen/app/datasync/v1/data_sync_pb2.pyi +425 -0
  117. viam/gen/app/mlinference/__init__.py +0 -0
  118. viam/gen/app/mlinference/v1/__init__.py +0 -0
  119. viam/gen/app/mlinference/v1/ml_inference_grpc.py +28 -0
  120. viam/gen/app/mlinference/v1/ml_inference_pb2.py +23 -0
  121. viam/gen/app/mlinference/v1/ml_inference_pb2.pyi +63 -0
  122. viam/gen/app/mltraining/__init__.py +0 -0
  123. viam/gen/app/mltraining/v1/__init__.py +0 -0
  124. viam/gen/app/mltraining/v1/ml_training_grpc.py +78 -0
  125. viam/gen/app/mltraining/v1/ml_training_pb2.py +124 -0
  126. viam/gen/app/mltraining/v1/ml_training_pb2.pyi +415 -0
  127. viam/gen/app/packages/__init__.py +0 -0
  128. viam/gen/app/packages/v1/__init__.py +0 -0
  129. viam/gen/app/packages/v1/packages_grpc.py +54 -0
  130. viam/gen/app/packages/v1/packages_pb2.py +52 -0
  131. viam/gen/app/packages/v1/packages_pb2.pyi +311 -0
  132. viam/gen/app/v1/__init__.py +0 -0
  133. viam/gen/app/v1/app_grpc.py +863 -0
  134. viam/gen/app/v1/app_pb2.py +649 -0
  135. viam/gen/app/v1/app_pb2.pyi +5279 -0
  136. viam/gen/app/v1/billing_grpc.py +76 -0
  137. viam/gen/app/v1/billing_pb2.py +92 -0
  138. viam/gen/app/v1/billing_pb2.pyi +463 -0
  139. viam/gen/app/v1/end_user_grpc.py +59 -0
  140. viam/gen/app/v1/end_user_pb2.py +55 -0
  141. viam/gen/app/v1/end_user_pb2.pyi +181 -0
  142. viam/gen/app/v1/robot_grpc.py +55 -0
  143. viam/gen/app/v1/robot_pb2.py +127 -0
  144. viam/gen/app/v1/robot_pb2.pyi +1202 -0
  145. viam/gen/common/__init__.py +0 -0
  146. viam/gen/common/v1/__init__.py +0 -0
  147. viam/gen/common/v1/common_grpc.py +0 -0
  148. viam/gen/common/v1/common_pb2.py +78 -0
  149. viam/gen/common/v1/common_pb2.pyi +687 -0
  150. viam/gen/component/__init__.py +0 -0
  151. viam/gen/component/arm/__init__.py +0 -0
  152. viam/gen/component/arm/v1/__init__.py +0 -0
  153. viam/gen/component/arm/v1/arm_grpc.py +102 -0
  154. viam/gen/component/arm/v1/arm_pb2.py +74 -0
  155. viam/gen/component/arm/v1/arm_pb2.pyi +344 -0
  156. viam/gen/component/audioinput/__init__.py +0 -0
  157. viam/gen/component/audioinput/v1/__init__.py +0 -0
  158. viam/gen/component/audioinput/v1/audioinput_grpc.py +63 -0
  159. viam/gen/component/audioinput/v1/audioinput_pb2.py +45 -0
  160. viam/gen/component/audioinput/v1/audioinput_pb2.pyi +179 -0
  161. viam/gen/component/base/__init__.py +0 -0
  162. viam/gen/component/base/v1/__init__.py +0 -0
  163. viam/gen/component/base/v1/base_grpc.py +94 -0
  164. viam/gen/component/base/v1/base_pb2.py +66 -0
  165. viam/gen/component/base/v1/base_pb2.pyi +258 -0
  166. viam/gen/component/board/__init__.py +0 -0
  167. viam/gen/component/board/v1/__init__.py +0 -0
  168. viam/gen/component/board/v1/board_grpc.py +127 -0
  169. viam/gen/component/board/v1/board_pb2.py +103 -0
  170. viam/gen/component/board/v1/board_pb2.pyi +496 -0
  171. viam/gen/component/button/__init__.py +0 -0
  172. viam/gen/component/button/v1/__init__.py +0 -0
  173. viam/gen/component/button/v1/button_grpc.py +38 -0
  174. viam/gen/component/button/v1/button_pb2.py +28 -0
  175. viam/gen/component/button/v1/button_pb2.pyi +39 -0
  176. viam/gen/component/camera/__init__.py +0 -0
  177. viam/gen/component/camera/v1/__init__.py +0 -0
  178. viam/gen/component/camera/v1/camera_grpc.py +79 -0
  179. viam/gen/component/camera/v1/camera_pb2.py +67 -0
  180. viam/gen/component/camera/v1/camera_pb2.pyi +373 -0
  181. viam/gen/component/encoder/__init__.py +0 -0
  182. viam/gen/component/encoder/v1/__init__.py +0 -0
  183. viam/gen/component/encoder/v1/encoder_grpc.py +62 -0
  184. viam/gen/component/encoder/v1/encoder_pb2.py +44 -0
  185. viam/gen/component/encoder/v1/encoder_pb2.pyi +147 -0
  186. viam/gen/component/gantry/__init__.py +0 -0
  187. viam/gen/component/gantry/v1/__init__.py +0 -0
  188. viam/gen/component/gantry/v1/gantry_grpc.py +86 -0
  189. viam/gen/component/gantry/v1/gantry_pb2.py +62 -0
  190. viam/gen/component/gantry/v1/gantry_pb2.pyi +239 -0
  191. viam/gen/component/generic/__init__.py +0 -0
  192. viam/gen/component/generic/v1/__init__.py +0 -0
  193. viam/gen/component/generic/v1/generic_grpc.py +37 -0
  194. viam/gen/component/generic/v1/generic_pb2.py +23 -0
  195. viam/gen/component/generic/v1/generic_pb2.pyi +6 -0
  196. viam/gen/component/gripper/__init__.py +0 -0
  197. viam/gen/component/gripper/v1/__init__.py +0 -0
  198. viam/gen/component/gripper/v1/gripper_grpc.py +70 -0
  199. viam/gen/component/gripper/v1/gripper_pb2.py +48 -0
  200. viam/gen/component/gripper/v1/gripper_pb2.pyi +137 -0
  201. viam/gen/component/inputcontroller/__init__.py +0 -0
  202. viam/gen/component/inputcontroller/v1/__init__.py +0 -0
  203. viam/gen/component/inputcontroller/v1/input_controller_grpc.py +71 -0
  204. viam/gen/component/inputcontroller/v1/input_controller_pb2.py +55 -0
  205. viam/gen/component/inputcontroller/v1/input_controller_pb2.pyi +243 -0
  206. viam/gen/component/motor/__init__.py +0 -0
  207. viam/gen/component/motor/v1/__init__.py +0 -0
  208. viam/gen/component/motor/v1/motor_grpc.py +118 -0
  209. viam/gen/component/motor/v1/motor_pb2.py +86 -0
  210. viam/gen/component/motor/v1/motor_pb2.pyi +368 -0
  211. viam/gen/component/movementsensor/__init__.py +0 -0
  212. viam/gen/component/movementsensor/v1/__init__.py +0 -0
  213. viam/gen/component/movementsensor/v1/movementsensor_grpc.py +110 -0
  214. viam/gen/component/movementsensor/v1/movementsensor_pb2.py +78 -0
  215. viam/gen/component/movementsensor/v1/movementsensor_pb2.pyi +384 -0
  216. viam/gen/component/posetracker/__init__.py +0 -0
  217. viam/gen/component/posetracker/v1/__init__.py +0 -0
  218. viam/gen/component/posetracker/v1/pose_tracker_grpc.py +46 -0
  219. viam/gen/component/posetracker/v1/pose_tracker_pb2.py +34 -0
  220. viam/gen/component/posetracker/v1/pose_tracker_pb2.pyi +79 -0
  221. viam/gen/component/powersensor/__init__.py +0 -0
  222. viam/gen/component/powersensor/v1/__init__.py +0 -0
  223. viam/gen/component/powersensor/v1/powersensor_grpc.py +62 -0
  224. viam/gen/component/powersensor/v1/powersensor_pb2.py +42 -0
  225. viam/gen/component/powersensor/v1/powersensor_pb2.pyi +124 -0
  226. viam/gen/component/sensor/__init__.py +0 -0
  227. viam/gen/component/sensor/v1/__init__.py +0 -0
  228. viam/gen/component/sensor/v1/sensor_grpc.py +45 -0
  229. viam/gen/component/sensor/v1/sensor_pb2.py +25 -0
  230. viam/gen/component/sensor/v1/sensor_pb2.pyi +6 -0
  231. viam/gen/component/servo/__init__.py +0 -0
  232. viam/gen/component/servo/v1/__init__.py +0 -0
  233. viam/gen/component/servo/v1/servo_grpc.py +70 -0
  234. viam/gen/component/servo/v1/servo_pb2.py +50 -0
  235. viam/gen/component/servo/v1/servo_pb2.pyi +150 -0
  236. viam/gen/component/switch/__init__.py +0 -0
  237. viam/gen/component/switch/v1/__init__.py +0 -0
  238. viam/gen/component/switch/v1/switch_grpc.py +54 -0
  239. viam/gen/component/switch/v1/switch_pb2.py +40 -0
  240. viam/gen/component/switch/v1/switch_pb2.pyi +109 -0
  241. viam/gen/component/testecho/__init__.py +0 -0
  242. viam/gen/component/testecho/v1/__init__.py +0 -0
  243. viam/gen/component/testecho/v1/testecho_grpc.py +52 -0
  244. viam/gen/component/testecho/v1/testecho_pb2.py +36 -0
  245. viam/gen/component/testecho/v1/testecho_pb2.pyi +114 -0
  246. viam/gen/module/__init__.py +0 -0
  247. viam/gen/module/v1/__init__.py +0 -0
  248. viam/gen/module/v1/module_grpc.py +61 -0
  249. viam/gen/module/v1/module_pb2.py +43 -0
  250. viam/gen/module/v1/module_pb2.pyi +211 -0
  251. viam/gen/proto/__init__.py +0 -0
  252. viam/gen/proto/rpc/__init__.py +0 -0
  253. viam/gen/proto/rpc/examples/__init__.py +0 -0
  254. viam/gen/proto/rpc/examples/echo/__init__.py +0 -0
  255. viam/gen/proto/rpc/examples/echo/v1/__init__.py +0 -0
  256. viam/gen/proto/rpc/examples/echo/v1/echo_grpc.py +44 -0
  257. viam/gen/proto/rpc/examples/echo/v1/echo_pb2.py +32 -0
  258. viam/gen/proto/rpc/examples/echo/v1/echo_pb2.pyi +87 -0
  259. viam/gen/proto/rpc/examples/echoresource/__init__.py +0 -0
  260. viam/gen/proto/rpc/examples/echoresource/v1/__init__.py +0 -0
  261. viam/gen/proto/rpc/examples/echoresource/v1/echoresource_grpc.py +43 -0
  262. viam/gen/proto/rpc/examples/echoresource/v1/echoresource_pb2.py +29 -0
  263. viam/gen/proto/rpc/examples/echoresource/v1/echoresource_pb2.pyi +93 -0
  264. viam/gen/proto/rpc/v1/__init__.py +0 -0
  265. viam/gen/proto/rpc/v1/auth_grpc.py +47 -0
  266. viam/gen/proto/rpc/v1/auth_pb2.py +34 -0
  267. viam/gen/proto/rpc/v1/auth_pb2.pyi +92 -0
  268. viam/gen/proto/rpc/webrtc/__init__.py +0 -0
  269. viam/gen/proto/rpc/webrtc/v1/__init__.py +0 -0
  270. viam/gen/proto/rpc/webrtc/v1/grpc_grpc.py +0 -0
  271. viam/gen/proto/rpc/webrtc/v1/grpc_pb2.py +43 -0
  272. viam/gen/proto/rpc/webrtc/v1/grpc_pb2.pyi +304 -0
  273. viam/gen/proto/rpc/webrtc/v1/signaling_grpc.py +54 -0
  274. viam/gen/proto/rpc/webrtc/v1/signaling_pb2.py +70 -0
  275. viam/gen/proto/rpc/webrtc/v1/signaling_pb2.pyi +496 -0
  276. viam/gen/provisioning/__init__.py +0 -0
  277. viam/gen/provisioning/v1/__init__.py +0 -0
  278. viam/gen/provisioning/v1/provisioning_grpc.py +51 -0
  279. viam/gen/provisioning/v1/provisioning_pb2.py +39 -0
  280. viam/gen/provisioning/v1/provisioning_pb2.pyi +188 -0
  281. viam/gen/robot/__init__.py +0 -0
  282. viam/gen/robot/v1/__init__.py +0 -0
  283. viam/gen/robot/v1/robot_grpc.py +208 -0
  284. viam/gen/robot/v1/robot_pb2.py +188 -0
  285. viam/gen/robot/v1/robot_pb2.pyi +1020 -0
  286. viam/gen/service/__init__.py +0 -0
  287. viam/gen/service/datamanager/__init__.py +0 -0
  288. viam/gen/service/datamanager/v1/__init__.py +0 -0
  289. viam/gen/service/datamanager/v1/data_manager_grpc.py +38 -0
  290. viam/gen/service/datamanager/v1/data_manager_pb2.py +28 -0
  291. viam/gen/service/datamanager/v1/data_manager_pb2.pyi +39 -0
  292. viam/gen/service/discovery/__init__.py +0 -0
  293. viam/gen/service/discovery/v1/__init__.py +0 -0
  294. viam/gen/service/discovery/v1/discovery_grpc.py +39 -0
  295. viam/gen/service/discovery/v1/discovery_pb2.py +29 -0
  296. viam/gen/service/discovery/v1/discovery_pb2.pyi +51 -0
  297. viam/gen/service/generic/__init__.py +0 -0
  298. viam/gen/service/generic/v1/__init__.py +0 -0
  299. viam/gen/service/generic/v1/generic_grpc.py +29 -0
  300. viam/gen/service/generic/v1/generic_pb2.py +21 -0
  301. viam/gen/service/generic/v1/generic_pb2.pyi +6 -0
  302. viam/gen/service/mlmodel/__init__.py +0 -0
  303. viam/gen/service/mlmodel/v1/__init__.py +0 -0
  304. viam/gen/service/mlmodel/v1/mlmodel_grpc.py +37 -0
  305. viam/gen/service/mlmodel/v1/mlmodel_pb2.py +83 -0
  306. viam/gen/service/mlmodel/v1/mlmodel_pb2.pyi +480 -0
  307. viam/gen/service/motion/__init__.py +0 -0
  308. viam/gen/service/motion/v1/__init__.py +0 -0
  309. viam/gen/service/motion/v1/motion_grpc.py +87 -0
  310. viam/gen/service/motion/v1/motion_pb2.py +97 -0
  311. viam/gen/service/motion/v1/motion_pb2.pyi +838 -0
  312. viam/gen/service/navigation/__init__.py +0 -0
  313. viam/gen/service/navigation/v1/__init__.py +0 -0
  314. viam/gen/service/navigation/v1/navigation_grpc.py +102 -0
  315. viam/gen/service/navigation/v1/navigation_pb2.py +84 -0
  316. viam/gen/service/navigation/v1/navigation_pb2.pyi +419 -0
  317. viam/gen/service/sensors/__init__.py +0 -0
  318. viam/gen/service/sensors/v1/__init__.py +0 -0
  319. viam/gen/service/sensors/v1/sensors_grpc.py +46 -0
  320. viam/gen/service/sensors/v1/sensors_pb2.py +68 -0
  321. viam/gen/service/sensors/v1/sensors_pb2.pyi +137 -0
  322. viam/gen/service/shell/__init__.py +0 -0
  323. viam/gen/service/shell/v1/__init__.py +0 -0
  324. viam/gen/service/shell/v1/shell_grpc.py +55 -0
  325. viam/gen/service/shell/v1/shell_pb2.py +45 -0
  326. viam/gen/service/shell/v1/shell_pb2.pyi +307 -0
  327. viam/gen/service/slam/__init__.py +0 -0
  328. viam/gen/service/slam/v1/__init__.py +0 -0
  329. viam/gen/service/slam/v1/slam_grpc.py +61 -0
  330. viam/gen/service/slam/v1/slam_pb2.py +51 -0
  331. viam/gen/service/slam/v1/slam_pb2.pyi +213 -0
  332. viam/gen/service/vision/__init__.py +0 -0
  333. viam/gen/service/vision/v1/__init__.py +0 -0
  334. viam/gen/service/vision/v1/vision_grpc.py +87 -0
  335. viam/gen/service/vision/v1/vision_pb2.py +69 -0
  336. viam/gen/service/vision/v1/vision_pb2.pyi +454 -0
  337. viam/gen/stream/__init__.py +0 -0
  338. viam/gen/stream/v1/__init__.py +0 -0
  339. viam/gen/stream/v1/stream_grpc.py +59 -0
  340. viam/gen/stream/v1/stream_pb2.py +39 -0
  341. viam/gen/stream/v1/stream_pb2.pyi +161 -0
  342. viam/gen/tagger/__init__.py +0 -0
  343. viam/gen/tagger/v1/__init__.py +0 -0
  344. viam/gen/tagger/v1/tagger_grpc.py +0 -0
  345. viam/gen/tagger/v1/tagger_pb2.py +16 -0
  346. viam/gen/tagger/v1/tagger_pb2.pyi +15 -0
  347. viam/logging.py +216 -0
  348. viam/media/__init__.py +0 -0
  349. viam/media/audio.py +16 -0
  350. viam/media/utils/__init__.py +0 -0
  351. viam/media/utils/pil/__init__.py +51 -0
  352. viam/media/utils/pil/viam_rgba_plugin.py +73 -0
  353. viam/media/viam_rgba.py +10 -0
  354. viam/media/video.py +217 -0
  355. viam/module/__init__.py +5 -0
  356. viam/module/module.py +281 -0
  357. viam/module/service.py +66 -0
  358. viam/module/types.py +23 -0
  359. viam/operations.py +124 -0
  360. viam/proto/__init__.py +0 -0
  361. viam/proto/app/__init__.py +554 -0
  362. viam/proto/app/agent/__init__.py +28 -0
  363. viam/proto/app/billing.py +58 -0
  364. viam/proto/app/cloudslam/__init__.py +48 -0
  365. viam/proto/app/data/__init__.py +138 -0
  366. viam/proto/app/datapipelines/__init__.py +56 -0
  367. viam/proto/app/dataset/__init__.py +36 -0
  368. viam/proto/app/datasync/__init__.py +44 -0
  369. viam/proto/app/end_user.py +34 -0
  370. viam/proto/app/mlinference/__init__.py +15 -0
  371. viam/proto/app/mltraining/__init__.py +52 -0
  372. viam/proto/app/packages/__init__.py +38 -0
  373. viam/proto/app/robot.py +84 -0
  374. viam/proto/common/__init__.py +66 -0
  375. viam/proto/component/__init__.py +0 -0
  376. viam/proto/component/arm/__init__.py +48 -0
  377. viam/proto/component/audioinput/__init__.py +30 -0
  378. viam/proto/component/base/__init__.py +42 -0
  379. viam/proto/component/board/__init__.py +62 -0
  380. viam/proto/component/button/__init__.py +15 -0
  381. viam/proto/component/camera/__init__.py +46 -0
  382. viam/proto/component/encoder/__init__.py +28 -0
  383. viam/proto/component/gantry/__init__.py +40 -0
  384. viam/proto/component/generic/__init__.py +12 -0
  385. viam/proto/component/gripper/__init__.py +30 -0
  386. viam/proto/component/inputcontroller/__init__.py +38 -0
  387. viam/proto/component/motor/__init__.py +56 -0
  388. viam/proto/component/movementsensor/__init__.py +50 -0
  389. viam/proto/component/posetracker/__init__.py +19 -0
  390. viam/proto/component/powersensor/__init__.py +30 -0
  391. viam/proto/component/sensor/__init__.py +12 -0
  392. viam/proto/component/servo/__init__.py +32 -0
  393. viam/proto/component/switch/__init__.py +26 -0
  394. viam/proto/component/testecho/__init__.py +30 -0
  395. viam/proto/module/__init__.py +38 -0
  396. viam/proto/provisioning/__init__.py +36 -0
  397. viam/proto/robot/__init__.py +130 -0
  398. viam/proto/rpc/__init__.py +0 -0
  399. viam/proto/rpc/auth.py +34 -0
  400. viam/proto/rpc/examples/__init__.py +0 -0
  401. viam/proto/rpc/examples/echo/__init__.py +26 -0
  402. viam/proto/rpc/examples/echoresource/__init__.py +30 -0
  403. viam/proto/rpc/webrtc/__init__.py +0 -0
  404. viam/proto/rpc/webrtc/grpc.py +36 -0
  405. viam/proto/rpc/webrtc/signaling.py +58 -0
  406. viam/proto/service/__init__.py +0 -0
  407. viam/proto/service/datamanager/__init__.py +19 -0
  408. viam/proto/service/discovery/__init__.py +15 -0
  409. viam/proto/service/generic/__init__.py +12 -0
  410. viam/proto/service/mlmodel/__init__.py +54 -0
  411. viam/proto/service/motion/__init__.py +68 -0
  412. viam/proto/service/navigation/__init__.py +58 -0
  413. viam/proto/service/sensors/__init__.py +18 -0
  414. viam/proto/service/shell/__init__.py +36 -0
  415. viam/proto/service/slam/__init__.py +36 -0
  416. viam/proto/service/vision/__init__.py +46 -0
  417. viam/proto/stream/__init__.py +36 -0
  418. viam/proto/tagger/__init__.py +6 -0
  419. viam/py.typed +0 -0
  420. viam/resource/__init__.py +0 -0
  421. viam/resource/base.py +123 -0
  422. viam/resource/easy_resource.py +153 -0
  423. viam/resource/manager.py +126 -0
  424. viam/resource/registry.py +199 -0
  425. viam/resource/rpc_client_base.py +65 -0
  426. viam/resource/rpc_service_base.py +48 -0
  427. viam/resource/types.py +213 -0
  428. viam/robot/__init__.py +0 -0
  429. viam/robot/client.py +909 -0
  430. viam/robot/service.py +69 -0
  431. viam/rpc/__init__.py +0 -0
  432. viam/rpc/dial.py +420 -0
  433. viam/rpc/libviam_rust_utils.dll +0 -0
  434. viam/rpc/server.py +201 -0
  435. viam/rpc/signaling.py +29 -0
  436. viam/rpc/types.py +22 -0
  437. viam/services/__init__.py +0 -0
  438. viam/services/discovery/__init__.py +12 -0
  439. viam/services/discovery/client.py +55 -0
  440. viam/services/discovery/discovery.py +52 -0
  441. viam/services/discovery/service.py +43 -0
  442. viam/services/generic/__init__.py +18 -0
  443. viam/services/generic/client.py +58 -0
  444. viam/services/generic/generic.py +58 -0
  445. viam/services/generic/service.py +29 -0
  446. viam/services/mlmodel/__init__.py +24 -0
  447. viam/services/mlmodel/client.py +37 -0
  448. viam/services/mlmodel/mlmodel.py +78 -0
  449. viam/services/mlmodel/service.py +38 -0
  450. viam/services/mlmodel/utils.py +101 -0
  451. viam/services/motion/__init__.py +17 -0
  452. viam/services/motion/client.py +215 -0
  453. viam/services/motion/motion.py +378 -0
  454. viam/services/motion/service.py +132 -0
  455. viam/services/navigation/__init__.py +11 -0
  456. viam/services/navigation/client.py +99 -0
  457. viam/services/navigation/navigation.py +250 -0
  458. viam/services/navigation/service.py +137 -0
  459. viam/services/service_base.py +78 -0
  460. viam/services/service_client_base.py +46 -0
  461. viam/services/slam/__init__.py +17 -0
  462. viam/services/slam/client.py +62 -0
  463. viam/services/slam/service.py +75 -0
  464. viam/services/slam/slam.py +111 -0
  465. viam/services/vision/__init__.py +15 -0
  466. viam/services/vision/client.py +206 -0
  467. viam/services/vision/service.py +146 -0
  468. viam/services/vision/vision.py +315 -0
  469. viam/sessions_client.py +245 -0
  470. viam/streams.py +44 -0
  471. viam/utils.py +365 -0
  472. viam/version_metadata.py +4 -0
  473. viam_sdk-0.45.2.dist-info/METADATA +157 -0
  474. viam_sdk-0.45.2.dist-info/RECORD +476 -0
  475. viam_sdk-0.45.2.dist-info/WHEEL +4 -0
  476. viam_sdk-0.45.2.dist-info/licenses/LICENSE +202 -0
@@ -0,0 +1,838 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+ import builtins
6
+ import collections.abc
7
+ from .... import common
8
+ import google.protobuf.descriptor
9
+ import google.protobuf.internal.containers
10
+ import google.protobuf.internal.enum_type_wrapper
11
+ import google.protobuf.message
12
+ import google.protobuf.struct_pb2
13
+ import google.protobuf.timestamp_pb2
14
+ import sys
15
+ import typing
16
+ if sys.version_info >= (3, 10):
17
+ import typing as typing_extensions
18
+ else:
19
+ import typing_extensions
20
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
21
+
22
+ class _PlanState:
23
+ ValueType = typing.NewType('ValueType', builtins.int)
24
+ V: typing_extensions.TypeAlias = ValueType
25
+
26
+ class _PlanStateEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PlanState.ValueType], builtins.type):
27
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
28
+ PLAN_STATE_UNSPECIFIED: _PlanState.ValueType
29
+ PLAN_STATE_IN_PROGRESS: _PlanState.ValueType
30
+ PLAN_STATE_STOPPED: _PlanState.ValueType
31
+ PLAN_STATE_SUCCEEDED: _PlanState.ValueType
32
+ PLAN_STATE_FAILED: _PlanState.ValueType
33
+
34
+ class PlanState(_PlanState, metaclass=_PlanStateEnumTypeWrapper):
35
+ """The states that a plan can be in.
36
+ InProgress if the plan is executing.
37
+ Stopped if the plan was stopped.
38
+ Suceeded if the robot reached its destination successfully.
39
+ Failed if the robot did not reach its destination.
40
+ """
41
+ PLAN_STATE_UNSPECIFIED: PlanState.ValueType
42
+ PLAN_STATE_IN_PROGRESS: PlanState.ValueType
43
+ PLAN_STATE_STOPPED: PlanState.ValueType
44
+ PLAN_STATE_SUCCEEDED: PlanState.ValueType
45
+ PLAN_STATE_FAILED: PlanState.ValueType
46
+ global___PlanState = PlanState
47
+
48
+ @typing.final
49
+ class MoveRequest(google.protobuf.message.Message):
50
+ """Moves any component on the robot to a specified destination which can be from the reference frame of any other component on the robot."""
51
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
52
+ NAME_FIELD_NUMBER: builtins.int
53
+ DESTINATION_FIELD_NUMBER: builtins.int
54
+ COMPONENT_NAME_FIELD_NUMBER: builtins.int
55
+ WORLD_STATE_FIELD_NUMBER: builtins.int
56
+ CONSTRAINTS_FIELD_NUMBER: builtins.int
57
+ EXTRA_FIELD_NUMBER: builtins.int
58
+ name: builtins.str
59
+ 'Name of the motion service'
60
+
61
+ @property
62
+ def destination(self) -> common.v1.common_pb2.PoseInFrame:
63
+ """Destination to move to, which can a pose in the reference frame of any frame in the robot's frame system"""
64
+
65
+ @property
66
+ def component_name(self) -> common.v1.common_pb2.ResourceName:
67
+ """Component on the robot to move to the specified destination"""
68
+
69
+ @property
70
+ def world_state(self) -> common.v1.common_pb2.WorldState:
71
+ """Avoid obstacles by specifying their geometries in the world state
72
+ Augment the frame system of the robot by specifying additional transforms to add to it for the duration of the Move
73
+ """
74
+
75
+ @property
76
+ def constraints(self) -> global___Constraints:
77
+ """Constrain the way the robot will move"""
78
+
79
+ @property
80
+ def extra(self) -> google.protobuf.struct_pb2.Struct:
81
+ """Additional arguments to the method"""
82
+
83
+ def __init__(self, *, name: builtins.str=..., destination: common.v1.common_pb2.PoseInFrame | None=..., component_name: common.v1.common_pb2.ResourceName | None=..., world_state: common.v1.common_pb2.WorldState | None=..., constraints: global___Constraints | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
84
+ ...
85
+
86
+ def HasField(self, field_name: typing.Literal['_constraints', b'_constraints', '_world_state', b'_world_state', 'component_name', b'component_name', 'constraints', b'constraints', 'destination', b'destination', 'extra', b'extra', 'world_state', b'world_state']) -> builtins.bool:
87
+ ...
88
+
89
+ def ClearField(self, field_name: typing.Literal['_constraints', b'_constraints', '_world_state', b'_world_state', 'component_name', b'component_name', 'constraints', b'constraints', 'destination', b'destination', 'extra', b'extra', 'name', b'name', 'world_state', b'world_state']) -> None:
90
+ ...
91
+
92
+ @typing.overload
93
+ def WhichOneof(self, oneof_group: typing.Literal['_constraints', b'_constraints']) -> typing.Literal['constraints'] | None:
94
+ ...
95
+
96
+ @typing.overload
97
+ def WhichOneof(self, oneof_group: typing.Literal['_world_state', b'_world_state']) -> typing.Literal['world_state'] | None:
98
+ ...
99
+ global___MoveRequest = MoveRequest
100
+
101
+ @typing.final
102
+ class MoveResponse(google.protobuf.message.Message):
103
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
104
+ SUCCESS_FIELD_NUMBER: builtins.int
105
+ success: builtins.bool
106
+
107
+ def __init__(self, *, success: builtins.bool=...) -> None:
108
+ ...
109
+
110
+ def ClearField(self, field_name: typing.Literal['success', b'success']) -> None:
111
+ ...
112
+ global___MoveResponse = MoveResponse
113
+
114
+ @typing.final
115
+ class MoveOnMapRequest(google.protobuf.message.Message):
116
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
117
+ NAME_FIELD_NUMBER: builtins.int
118
+ DESTINATION_FIELD_NUMBER: builtins.int
119
+ COMPONENT_NAME_FIELD_NUMBER: builtins.int
120
+ SLAM_SERVICE_NAME_FIELD_NUMBER: builtins.int
121
+ MOTION_CONFIGURATION_FIELD_NUMBER: builtins.int
122
+ OBSTACLES_FIELD_NUMBER: builtins.int
123
+ EXTRA_FIELD_NUMBER: builtins.int
124
+ name: builtins.str
125
+ 'Name of the motion service'
126
+
127
+ @property
128
+ def destination(self) -> common.v1.common_pb2.Pose:
129
+ """Specify a destination to, which can be any pose with respect to the SLAM map's origin"""
130
+
131
+ @property
132
+ def component_name(self) -> common.v1.common_pb2.ResourceName:
133
+ """Component on the robot to move to the specified destination"""
134
+
135
+ @property
136
+ def slam_service_name(self) -> common.v1.common_pb2.ResourceName:
137
+ """Name of the slam service from which the SLAM map is requested"""
138
+
139
+ @property
140
+ def motion_configuration(self) -> global___MotionConfiguration:
141
+ """Optional set of motion configuration options"""
142
+
143
+ @property
144
+ def obstacles(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.Geometry]:
145
+ """Obstacles to be considered for motion planning"""
146
+
147
+ @property
148
+ def extra(self) -> google.protobuf.struct_pb2.Struct:
149
+ """Additional arguments to the method"""
150
+
151
+ def __init__(self, *, name: builtins.str=..., destination: common.v1.common_pb2.Pose | None=..., component_name: common.v1.common_pb2.ResourceName | None=..., slam_service_name: common.v1.common_pb2.ResourceName | None=..., motion_configuration: global___MotionConfiguration | None=..., obstacles: collections.abc.Iterable[common.v1.common_pb2.Geometry] | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
152
+ ...
153
+
154
+ def HasField(self, field_name: typing.Literal['_motion_configuration', b'_motion_configuration', 'component_name', b'component_name', 'destination', b'destination', 'extra', b'extra', 'motion_configuration', b'motion_configuration', 'slam_service_name', b'slam_service_name']) -> builtins.bool:
155
+ ...
156
+
157
+ def ClearField(self, field_name: typing.Literal['_motion_configuration', b'_motion_configuration', 'component_name', b'component_name', 'destination', b'destination', 'extra', b'extra', 'motion_configuration', b'motion_configuration', 'name', b'name', 'obstacles', b'obstacles', 'slam_service_name', b'slam_service_name']) -> None:
158
+ ...
159
+
160
+ def WhichOneof(self, oneof_group: typing.Literal['_motion_configuration', b'_motion_configuration']) -> typing.Literal['motion_configuration'] | None:
161
+ ...
162
+ global___MoveOnMapRequest = MoveOnMapRequest
163
+
164
+ @typing.final
165
+ class MoveOnMapResponse(google.protobuf.message.Message):
166
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
167
+ EXECUTION_ID_FIELD_NUMBER: builtins.int
168
+ execution_id: builtins.str
169
+ 'The unique ID which identifies the execution.\n Multiple plans will share the same execution_id if they were\n generated due to replanning.\n '
170
+
171
+ def __init__(self, *, execution_id: builtins.str=...) -> None:
172
+ ...
173
+
174
+ def ClearField(self, field_name: typing.Literal['execution_id', b'execution_id']) -> None:
175
+ ...
176
+ global___MoveOnMapResponse = MoveOnMapResponse
177
+
178
+ @typing.final
179
+ class ObstacleDetector(google.protobuf.message.Message):
180
+ """Pairs a vision service with a camera, informing the service about which camera it may use"""
181
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
182
+ VISION_SERVICE_FIELD_NUMBER: builtins.int
183
+ CAMERA_FIELD_NUMBER: builtins.int
184
+
185
+ @property
186
+ def vision_service(self) -> common.v1.common_pb2.ResourceName:
187
+ ...
188
+
189
+ @property
190
+ def camera(self) -> common.v1.common_pb2.ResourceName:
191
+ ...
192
+
193
+ def __init__(self, *, vision_service: common.v1.common_pb2.ResourceName | None=..., camera: common.v1.common_pb2.ResourceName | None=...) -> None:
194
+ ...
195
+
196
+ def HasField(self, field_name: typing.Literal['camera', b'camera', 'vision_service', b'vision_service']) -> builtins.bool:
197
+ ...
198
+
199
+ def ClearField(self, field_name: typing.Literal['camera', b'camera', 'vision_service', b'vision_service']) -> None:
200
+ ...
201
+ global___ObstacleDetector = ObstacleDetector
202
+
203
+ @typing.final
204
+ class MotionConfiguration(google.protobuf.message.Message):
205
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
206
+ OBSTACLE_DETECTORS_FIELD_NUMBER: builtins.int
207
+ POSITION_POLLING_FREQUENCY_HZ_FIELD_NUMBER: builtins.int
208
+ OBSTACLE_POLLING_FREQUENCY_HZ_FIELD_NUMBER: builtins.int
209
+ PLAN_DEVIATION_M_FIELD_NUMBER: builtins.int
210
+ LINEAR_M_PER_SEC_FIELD_NUMBER: builtins.int
211
+ ANGULAR_DEGS_PER_SEC_FIELD_NUMBER: builtins.int
212
+ position_polling_frequency_hz: builtins.float
213
+ 'Sets the frequency to poll for the position of the robot'
214
+ obstacle_polling_frequency_hz: builtins.float
215
+ 'Sets the frequency to poll the vision service(s) for new obstacles'
216
+ plan_deviation_m: builtins.float
217
+ 'Sets the distance in meters that a robot is allowed to deviate from the motion plan'
218
+ linear_m_per_sec: builtins.float
219
+ 'Optional linear velocity to target when moving'
220
+ angular_degs_per_sec: builtins.float
221
+ 'Optional angular velocity to target when turning'
222
+
223
+ @property
224
+ def obstacle_detectors(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ObstacleDetector]:
225
+ """The ObstacleDetectors that will be used for transient obstacle avoidance"""
226
+
227
+ def __init__(self, *, obstacle_detectors: collections.abc.Iterable[global___ObstacleDetector] | None=..., position_polling_frequency_hz: builtins.float | None=..., obstacle_polling_frequency_hz: builtins.float | None=..., plan_deviation_m: builtins.float | None=..., linear_m_per_sec: builtins.float | None=..., angular_degs_per_sec: builtins.float | None=...) -> None:
228
+ ...
229
+
230
+ def HasField(self, field_name: typing.Literal['_angular_degs_per_sec', b'_angular_degs_per_sec', '_linear_m_per_sec', b'_linear_m_per_sec', '_obstacle_polling_frequency_hz', b'_obstacle_polling_frequency_hz', '_plan_deviation_m', b'_plan_deviation_m', '_position_polling_frequency_hz', b'_position_polling_frequency_hz', 'angular_degs_per_sec', b'angular_degs_per_sec', 'linear_m_per_sec', b'linear_m_per_sec', 'obstacle_polling_frequency_hz', b'obstacle_polling_frequency_hz', 'plan_deviation_m', b'plan_deviation_m', 'position_polling_frequency_hz', b'position_polling_frequency_hz']) -> builtins.bool:
231
+ ...
232
+
233
+ def ClearField(self, field_name: typing.Literal['_angular_degs_per_sec', b'_angular_degs_per_sec', '_linear_m_per_sec', b'_linear_m_per_sec', '_obstacle_polling_frequency_hz', b'_obstacle_polling_frequency_hz', '_plan_deviation_m', b'_plan_deviation_m', '_position_polling_frequency_hz', b'_position_polling_frequency_hz', 'angular_degs_per_sec', b'angular_degs_per_sec', 'linear_m_per_sec', b'linear_m_per_sec', 'obstacle_detectors', b'obstacle_detectors', 'obstacle_polling_frequency_hz', b'obstacle_polling_frequency_hz', 'plan_deviation_m', b'plan_deviation_m', 'position_polling_frequency_hz', b'position_polling_frequency_hz']) -> None:
234
+ ...
235
+
236
+ @typing.overload
237
+ def WhichOneof(self, oneof_group: typing.Literal['_angular_degs_per_sec', b'_angular_degs_per_sec']) -> typing.Literal['angular_degs_per_sec'] | None:
238
+ ...
239
+
240
+ @typing.overload
241
+ def WhichOneof(self, oneof_group: typing.Literal['_linear_m_per_sec', b'_linear_m_per_sec']) -> typing.Literal['linear_m_per_sec'] | None:
242
+ ...
243
+
244
+ @typing.overload
245
+ def WhichOneof(self, oneof_group: typing.Literal['_obstacle_polling_frequency_hz', b'_obstacle_polling_frequency_hz']) -> typing.Literal['obstacle_polling_frequency_hz'] | None:
246
+ ...
247
+
248
+ @typing.overload
249
+ def WhichOneof(self, oneof_group: typing.Literal['_plan_deviation_m', b'_plan_deviation_m']) -> typing.Literal['plan_deviation_m'] | None:
250
+ ...
251
+
252
+ @typing.overload
253
+ def WhichOneof(self, oneof_group: typing.Literal['_position_polling_frequency_hz', b'_position_polling_frequency_hz']) -> typing.Literal['position_polling_frequency_hz'] | None:
254
+ ...
255
+ global___MotionConfiguration = MotionConfiguration
256
+
257
+ @typing.final
258
+ class MoveOnGlobeRequest(google.protobuf.message.Message):
259
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
260
+ NAME_FIELD_NUMBER: builtins.int
261
+ DESTINATION_FIELD_NUMBER: builtins.int
262
+ HEADING_FIELD_NUMBER: builtins.int
263
+ COMPONENT_NAME_FIELD_NUMBER: builtins.int
264
+ MOVEMENT_SENSOR_NAME_FIELD_NUMBER: builtins.int
265
+ OBSTACLES_FIELD_NUMBER: builtins.int
266
+ MOTION_CONFIGURATION_FIELD_NUMBER: builtins.int
267
+ BOUNDING_REGIONS_FIELD_NUMBER: builtins.int
268
+ EXTRA_FIELD_NUMBER: builtins.int
269
+ name: builtins.str
270
+ 'Name of the motion service'
271
+ heading: builtins.float
272
+ 'Optional compass heading to achieve at the destination, in degrees [0-360)'
273
+
274
+ @property
275
+ def destination(self) -> common.v1.common_pb2.GeoPoint:
276
+ """Destination, encoded as a GeoPoint"""
277
+
278
+ @property
279
+ def component_name(self) -> common.v1.common_pb2.ResourceName:
280
+ """Component on the robot to move to the specified destination"""
281
+
282
+ @property
283
+ def movement_sensor_name(self) -> common.v1.common_pb2.ResourceName:
284
+ """Name of the movement sensor which will be used to check robot location"""
285
+
286
+ @property
287
+ def obstacles(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.GeoGeometry]:
288
+ """Obstacles to be considered for motion planning"""
289
+
290
+ @property
291
+ def motion_configuration(self) -> global___MotionConfiguration:
292
+ """Optional set of motion configuration options"""
293
+
294
+ @property
295
+ def bounding_regions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.GeoGeometry]:
296
+ """Set of obstacles which the robot must remain within while navigating"""
297
+
298
+ @property
299
+ def extra(self) -> google.protobuf.struct_pb2.Struct:
300
+ """Additional arguments to the method"""
301
+
302
+ def __init__(self, *, name: builtins.str=..., destination: common.v1.common_pb2.GeoPoint | None=..., heading: builtins.float | None=..., component_name: common.v1.common_pb2.ResourceName | None=..., movement_sensor_name: common.v1.common_pb2.ResourceName | None=..., obstacles: collections.abc.Iterable[common.v1.common_pb2.GeoGeometry] | None=..., motion_configuration: global___MotionConfiguration | None=..., bounding_regions: collections.abc.Iterable[common.v1.common_pb2.GeoGeometry] | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
303
+ ...
304
+
305
+ def HasField(self, field_name: typing.Literal['_heading', b'_heading', '_motion_configuration', b'_motion_configuration', 'component_name', b'component_name', 'destination', b'destination', 'extra', b'extra', 'heading', b'heading', 'motion_configuration', b'motion_configuration', 'movement_sensor_name', b'movement_sensor_name']) -> builtins.bool:
306
+ ...
307
+
308
+ def ClearField(self, field_name: typing.Literal['_heading', b'_heading', '_motion_configuration', b'_motion_configuration', 'bounding_regions', b'bounding_regions', 'component_name', b'component_name', 'destination', b'destination', 'extra', b'extra', 'heading', b'heading', 'motion_configuration', b'motion_configuration', 'movement_sensor_name', b'movement_sensor_name', 'name', b'name', 'obstacles', b'obstacles']) -> None:
309
+ ...
310
+
311
+ @typing.overload
312
+ def WhichOneof(self, oneof_group: typing.Literal['_heading', b'_heading']) -> typing.Literal['heading'] | None:
313
+ ...
314
+
315
+ @typing.overload
316
+ def WhichOneof(self, oneof_group: typing.Literal['_motion_configuration', b'_motion_configuration']) -> typing.Literal['motion_configuration'] | None:
317
+ ...
318
+ global___MoveOnGlobeRequest = MoveOnGlobeRequest
319
+
320
+ @typing.final
321
+ class MoveOnGlobeResponse(google.protobuf.message.Message):
322
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
323
+ EXECUTION_ID_FIELD_NUMBER: builtins.int
324
+ execution_id: builtins.str
325
+ 'The unique ID which identifies the execution.\n Multiple plans will share the same execution_id if they were\n generated due to replanning.\n '
326
+
327
+ def __init__(self, *, execution_id: builtins.str=...) -> None:
328
+ ...
329
+
330
+ def ClearField(self, field_name: typing.Literal['execution_id', b'execution_id']) -> None:
331
+ ...
332
+ global___MoveOnGlobeResponse = MoveOnGlobeResponse
333
+
334
+ @typing.final
335
+ class GetPoseRequest(google.protobuf.message.Message):
336
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
337
+ NAME_FIELD_NUMBER: builtins.int
338
+ COMPONENT_NAME_FIELD_NUMBER: builtins.int
339
+ DESTINATION_FRAME_FIELD_NUMBER: builtins.int
340
+ SUPPLEMENTAL_TRANSFORMS_FIELD_NUMBER: builtins.int
341
+ EXTRA_FIELD_NUMBER: builtins.int
342
+ name: builtins.str
343
+ destination_frame: builtins.str
344
+ 'the reference frame in which the component\'s pose\n should be provided, if unset this defaults\n to the "world" reference frame\n '
345
+
346
+ @property
347
+ def component_name(self) -> common.v1.common_pb2.ResourceName:
348
+ """the component whose pose is being requested"""
349
+
350
+ @property
351
+ def supplemental_transforms(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.Transform]:
352
+ """pose information on any additional reference frames that are needed
353
+ to compute the component's pose
354
+ """
355
+
356
+ @property
357
+ def extra(self) -> google.protobuf.struct_pb2.Struct:
358
+ """Additional arguments to the method"""
359
+
360
+ def __init__(self, *, name: builtins.str=..., component_name: common.v1.common_pb2.ResourceName | None=..., destination_frame: builtins.str=..., supplemental_transforms: collections.abc.Iterable[common.v1.common_pb2.Transform] | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
361
+ ...
362
+
363
+ def HasField(self, field_name: typing.Literal['component_name', b'component_name', 'extra', b'extra']) -> builtins.bool:
364
+ ...
365
+
366
+ def ClearField(self, field_name: typing.Literal['component_name', b'component_name', 'destination_frame', b'destination_frame', 'extra', b'extra', 'name', b'name', 'supplemental_transforms', b'supplemental_transforms']) -> None:
367
+ ...
368
+ global___GetPoseRequest = GetPoseRequest
369
+
370
+ @typing.final
371
+ class GetPoseResponse(google.protobuf.message.Message):
372
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
373
+ POSE_FIELD_NUMBER: builtins.int
374
+
375
+ @property
376
+ def pose(self) -> common.v1.common_pb2.PoseInFrame:
377
+ ...
378
+
379
+ def __init__(self, *, pose: common.v1.common_pb2.PoseInFrame | None=...) -> None:
380
+ ...
381
+
382
+ def HasField(self, field_name: typing.Literal['pose', b'pose']) -> builtins.bool:
383
+ ...
384
+
385
+ def ClearField(self, field_name: typing.Literal['pose', b'pose']) -> None:
386
+ ...
387
+ global___GetPoseResponse = GetPoseResponse
388
+
389
+ @typing.final
390
+ class StopPlanRequest(google.protobuf.message.Message):
391
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
392
+ NAME_FIELD_NUMBER: builtins.int
393
+ COMPONENT_NAME_FIELD_NUMBER: builtins.int
394
+ EXTRA_FIELD_NUMBER: builtins.int
395
+ name: builtins.str
396
+ 'The name of the motion service'
397
+
398
+ @property
399
+ def component_name(self) -> common.v1.common_pb2.ResourceName:
400
+ """The component of the currently executing plan to stop"""
401
+
402
+ @property
403
+ def extra(self) -> google.protobuf.struct_pb2.Struct:
404
+ """Additional arguments to the method"""
405
+
406
+ def __init__(self, *, name: builtins.str=..., component_name: common.v1.common_pb2.ResourceName | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
407
+ ...
408
+
409
+ def HasField(self, field_name: typing.Literal['component_name', b'component_name', 'extra', b'extra']) -> builtins.bool:
410
+ ...
411
+
412
+ def ClearField(self, field_name: typing.Literal['component_name', b'component_name', 'extra', b'extra', 'name', b'name']) -> None:
413
+ ...
414
+ global___StopPlanRequest = StopPlanRequest
415
+
416
+ @typing.final
417
+ class StopPlanResponse(google.protobuf.message.Message):
418
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
419
+
420
+ def __init__(self) -> None:
421
+ ...
422
+ global___StopPlanResponse = StopPlanResponse
423
+
424
+ @typing.final
425
+ class ListPlanStatusesRequest(google.protobuf.message.Message):
426
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
427
+ NAME_FIELD_NUMBER: builtins.int
428
+ ONLY_ACTIVE_PLANS_FIELD_NUMBER: builtins.int
429
+ EXTRA_FIELD_NUMBER: builtins.int
430
+ name: builtins.str
431
+ 'The name of the motion service'
432
+ only_active_plans: builtins.bool
433
+ 'If supplied, the response will filter the\n plan results for the supplied state\n '
434
+
435
+ @property
436
+ def extra(self) -> google.protobuf.struct_pb2.Struct:
437
+ """Additional arguments to the method"""
438
+
439
+ def __init__(self, *, name: builtins.str=..., only_active_plans: builtins.bool=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
440
+ ...
441
+
442
+ def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool:
443
+ ...
444
+
445
+ def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'only_active_plans', b'only_active_plans']) -> None:
446
+ ...
447
+ global___ListPlanStatusesRequest = ListPlanStatusesRequest
448
+
449
+ @typing.final
450
+ class ListPlanStatusesResponse(google.protobuf.message.Message):
451
+ """Status of all executed / executing plan statuses with associated IDs within the 24 hour TTL"""
452
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
453
+ PLAN_STATUSES_WITH_IDS_FIELD_NUMBER: builtins.int
454
+
455
+ @property
456
+ def plan_statuses_with_ids(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PlanStatusWithID]:
457
+ """List of last known statuses with the associated IDs of all plans within the TTL
458
+ ordered by timestamp in ascending order
459
+ """
460
+
461
+ def __init__(self, *, plan_statuses_with_ids: collections.abc.Iterable[global___PlanStatusWithID] | None=...) -> None:
462
+ ...
463
+
464
+ def ClearField(self, field_name: typing.Literal['plan_statuses_with_ids', b'plan_statuses_with_ids']) -> None:
465
+ ...
466
+ global___ListPlanStatusesResponse = ListPlanStatusesResponse
467
+
468
+ @typing.final
469
+ class GetPlanRequest(google.protobuf.message.Message):
470
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
471
+ NAME_FIELD_NUMBER: builtins.int
472
+ COMPONENT_NAME_FIELD_NUMBER: builtins.int
473
+ LAST_PLAN_ONLY_FIELD_NUMBER: builtins.int
474
+ EXECUTION_ID_FIELD_NUMBER: builtins.int
475
+ EXTRA_FIELD_NUMBER: builtins.int
476
+ name: builtins.str
477
+ 'The name of the motion service'
478
+ last_plan_only: builtins.bool
479
+ 'If supplied, the response will only return\n the the last plan for the component / execution\n '
480
+ execution_id: builtins.str
481
+ 'If you want to know about the plans of a previous execution'
482
+
483
+ @property
484
+ def component_name(self) -> common.v1.common_pb2.ResourceName:
485
+ """The name of the component which was requested to be moved."""
486
+
487
+ @property
488
+ def extra(self) -> google.protobuf.struct_pb2.Struct:
489
+ """Additional arguments to the method"""
490
+
491
+ def __init__(self, *, name: builtins.str=..., component_name: common.v1.common_pb2.ResourceName | None=..., last_plan_only: builtins.bool=..., execution_id: builtins.str | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
492
+ ...
493
+
494
+ def HasField(self, field_name: typing.Literal['_execution_id', b'_execution_id', 'component_name', b'component_name', 'execution_id', b'execution_id', 'extra', b'extra']) -> builtins.bool:
495
+ ...
496
+
497
+ def ClearField(self, field_name: typing.Literal['_execution_id', b'_execution_id', 'component_name', b'component_name', 'execution_id', b'execution_id', 'extra', b'extra', 'last_plan_only', b'last_plan_only', 'name', b'name']) -> None:
498
+ ...
499
+
500
+ def WhichOneof(self, oneof_group: typing.Literal['_execution_id', b'_execution_id']) -> typing.Literal['execution_id'] | None:
501
+ ...
502
+ global___GetPlanRequest = GetPlanRequest
503
+
504
+ @typing.final
505
+ class GetPlanResponse(google.protobuf.message.Message):
506
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
507
+ CURRENT_PLAN_WITH_STATUS_FIELD_NUMBER: builtins.int
508
+ REPLAN_HISTORY_FIELD_NUMBER: builtins.int
509
+
510
+ @property
511
+ def current_plan_with_status(self) -> global___PlanWithStatus:
512
+ """The current plan and status that matches the request query"""
513
+
514
+ @property
515
+ def replan_history(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PlanWithStatus]:
516
+ """Returns the history of all previous plans that were
517
+ generated in ascending order.
518
+ This field will be empty if the motion service
519
+ did not need to re-plan.
520
+ """
521
+
522
+ def __init__(self, *, current_plan_with_status: global___PlanWithStatus | None=..., replan_history: collections.abc.Iterable[global___PlanWithStatus] | None=...) -> None:
523
+ ...
524
+
525
+ def HasField(self, field_name: typing.Literal['current_plan_with_status', b'current_plan_with_status']) -> builtins.bool:
526
+ ...
527
+
528
+ def ClearField(self, field_name: typing.Literal['current_plan_with_status', b'current_plan_with_status', 'replan_history', b'replan_history']) -> None:
529
+ ...
530
+ global___GetPlanResponse = GetPlanResponse
531
+
532
+ @typing.final
533
+ class Constraints(google.protobuf.message.Message):
534
+ """Constraints specifies all enumerated constraints to be passed to Viam's motion planning, along with any optional parameters"""
535
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
536
+ LINEAR_CONSTRAINT_FIELD_NUMBER: builtins.int
537
+ ORIENTATION_CONSTRAINT_FIELD_NUMBER: builtins.int
538
+ COLLISION_SPECIFICATION_FIELD_NUMBER: builtins.int
539
+
540
+ @property
541
+ def linear_constraint(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___LinearConstraint]:
542
+ """Typed message for a specific constraint"""
543
+
544
+ @property
545
+ def orientation_constraint(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___OrientationConstraint]:
546
+ ...
547
+
548
+ @property
549
+ def collision_specification(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CollisionSpecification]:
550
+ """Arc constraint, Time constraint, and others will be added here when they are supported"""
551
+
552
+ def __init__(self, *, linear_constraint: collections.abc.Iterable[global___LinearConstraint] | None=..., orientation_constraint: collections.abc.Iterable[global___OrientationConstraint] | None=..., collision_specification: collections.abc.Iterable[global___CollisionSpecification] | None=...) -> None:
553
+ ...
554
+
555
+ def ClearField(self, field_name: typing.Literal['collision_specification', b'collision_specification', 'linear_constraint', b'linear_constraint', 'orientation_constraint', b'orientation_constraint']) -> None:
556
+ ...
557
+ global___Constraints = Constraints
558
+
559
+ @typing.final
560
+ class LinearConstraint(google.protobuf.message.Message):
561
+ """LinearConstraint specifies that the component being moved should move linearly relative to its goal.
562
+ It does not constrain the motion of components other than the `component_name` specified in motion.Move
563
+ """
564
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
565
+ LINE_TOLERANCE_MM_FIELD_NUMBER: builtins.int
566
+ ORIENTATION_TOLERANCE_DEGS_FIELD_NUMBER: builtins.int
567
+ line_tolerance_mm: builtins.float
568
+ 'Max linear deviation from straight-line between start and goal, in mm.'
569
+ orientation_tolerance_degs: builtins.float
570
+ 'Max allowable orientation deviation, in degrees, while on the shortest path between start / goal states'
571
+
572
+ def __init__(self, *, line_tolerance_mm: builtins.float | None=..., orientation_tolerance_degs: builtins.float | None=...) -> None:
573
+ ...
574
+
575
+ def HasField(self, field_name: typing.Literal['_line_tolerance_mm', b'_line_tolerance_mm', '_orientation_tolerance_degs', b'_orientation_tolerance_degs', 'line_tolerance_mm', b'line_tolerance_mm', 'orientation_tolerance_degs', b'orientation_tolerance_degs']) -> builtins.bool:
576
+ ...
577
+
578
+ def ClearField(self, field_name: typing.Literal['_line_tolerance_mm', b'_line_tolerance_mm', '_orientation_tolerance_degs', b'_orientation_tolerance_degs', 'line_tolerance_mm', b'line_tolerance_mm', 'orientation_tolerance_degs', b'orientation_tolerance_degs']) -> None:
579
+ ...
580
+
581
+ @typing.overload
582
+ def WhichOneof(self, oneof_group: typing.Literal['_line_tolerance_mm', b'_line_tolerance_mm']) -> typing.Literal['line_tolerance_mm'] | None:
583
+ ...
584
+
585
+ @typing.overload
586
+ def WhichOneof(self, oneof_group: typing.Literal['_orientation_tolerance_degs', b'_orientation_tolerance_degs']) -> typing.Literal['orientation_tolerance_degs'] | None:
587
+ ...
588
+ global___LinearConstraint = LinearConstraint
589
+
590
+ @typing.final
591
+ class OrientationConstraint(google.protobuf.message.Message):
592
+ """OrientationConstraint specifies that the component being moved will not deviate its orientation beyond some threshold relative
593
+ to the goal. It does not constrain the motion of components other than the `component_name` specified in motion.Move
594
+ """
595
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
596
+ ORIENTATION_TOLERANCE_DEGS_FIELD_NUMBER: builtins.int
597
+ orientation_tolerance_degs: builtins.float
598
+ 'Max allowable orientation deviation, in degrees, while on the shortest path between start / goal states'
599
+
600
+ def __init__(self, *, orientation_tolerance_degs: builtins.float | None=...) -> None:
601
+ ...
602
+
603
+ def HasField(self, field_name: typing.Literal['_orientation_tolerance_degs', b'_orientation_tolerance_degs', 'orientation_tolerance_degs', b'orientation_tolerance_degs']) -> builtins.bool:
604
+ ...
605
+
606
+ def ClearField(self, field_name: typing.Literal['_orientation_tolerance_degs', b'_orientation_tolerance_degs', 'orientation_tolerance_degs', b'orientation_tolerance_degs']) -> None:
607
+ ...
608
+
609
+ def WhichOneof(self, oneof_group: typing.Literal['_orientation_tolerance_degs', b'_orientation_tolerance_degs']) -> typing.Literal['orientation_tolerance_degs'] | None:
610
+ ...
611
+ global___OrientationConstraint = OrientationConstraint
612
+
613
+ @typing.final
614
+ class CollisionSpecification(google.protobuf.message.Message):
615
+ """CollisionSpecification is used to selectively apply obstacle avoidance to specific parts of the robot"""
616
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
617
+
618
+ @typing.final
619
+ class AllowedFrameCollisions(google.protobuf.message.Message):
620
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
621
+ FRAME1_FIELD_NUMBER: builtins.int
622
+ FRAME2_FIELD_NUMBER: builtins.int
623
+ frame1: builtins.str
624
+ frame2: builtins.str
625
+
626
+ def __init__(self, *, frame1: builtins.str=..., frame2: builtins.str=...) -> None:
627
+ ...
628
+
629
+ def ClearField(self, field_name: typing.Literal['frame1', b'frame1', 'frame2', b'frame2']) -> None:
630
+ ...
631
+ ALLOWS_FIELD_NUMBER: builtins.int
632
+
633
+ @property
634
+ def allows(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CollisionSpecification.AllowedFrameCollisions]:
635
+ """Pairs of frame which should be allowed to collide with one another"""
636
+
637
+ def __init__(self, *, allows: collections.abc.Iterable[global___CollisionSpecification.AllowedFrameCollisions] | None=...) -> None:
638
+ ...
639
+
640
+ def ClearField(self, field_name: typing.Literal['allows', b'allows']) -> None:
641
+ ...
642
+ global___CollisionSpecification = CollisionSpecification
643
+
644
+ @typing.final
645
+ class PlanWithStatus(google.protobuf.message.Message):
646
+ """Describes a plan, its current status & all status changes
647
+ that have occured previously on that plan
648
+ """
649
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
650
+ PLAN_FIELD_NUMBER: builtins.int
651
+ STATUS_FIELD_NUMBER: builtins.int
652
+ STATUS_HISTORY_FIELD_NUMBER: builtins.int
653
+
654
+ @property
655
+ def plan(self) -> global___Plan:
656
+ """The plan"""
657
+
658
+ @property
659
+ def status(self) -> global___PlanStatus:
660
+ """The current status of the plan"""
661
+
662
+ @property
663
+ def status_history(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PlanStatus]:
664
+ """The prior status changes that have happened during plan execution"""
665
+
666
+ def __init__(self, *, plan: global___Plan | None=..., status: global___PlanStatus | None=..., status_history: collections.abc.Iterable[global___PlanStatus] | None=...) -> None:
667
+ ...
668
+
669
+ def HasField(self, field_name: typing.Literal['plan', b'plan', 'status', b'status']) -> builtins.bool:
670
+ ...
671
+
672
+ def ClearField(self, field_name: typing.Literal['plan', b'plan', 'status', b'status', 'status_history', b'status_history']) -> None:
673
+ ...
674
+ global___PlanWithStatus = PlanWithStatus
675
+
676
+ @typing.final
677
+ class PlanStatusWithID(google.protobuf.message.Message):
678
+ """PlanStatusWithID describes the state of a given plan at a
679
+ point in time plus the plan_id, component_name and execution_id
680
+ the status is associated with
681
+ """
682
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
683
+ PLAN_ID_FIELD_NUMBER: builtins.int
684
+ COMPONENT_NAME_FIELD_NUMBER: builtins.int
685
+ EXECUTION_ID_FIELD_NUMBER: builtins.int
686
+ STATUS_FIELD_NUMBER: builtins.int
687
+ plan_id: builtins.str
688
+ 'The unique ID of the plan'
689
+ execution_id: builtins.str
690
+ 'The unique ID which identifies the plan execution.\n Multiple plans will share the same execution_id if they were\n generated due to replanning.\n '
691
+
692
+ @property
693
+ def component_name(self) -> common.v1.common_pb2.ResourceName:
694
+ """The component to be moved.
695
+ Used for tracking & stopping.
696
+ NOTE: A plan may move more components than just the
697
+ component_name.
698
+ """
699
+
700
+ @property
701
+ def status(self) -> global___PlanStatus:
702
+ ...
703
+
704
+ def __init__(self, *, plan_id: builtins.str=..., component_name: common.v1.common_pb2.ResourceName | None=..., execution_id: builtins.str=..., status: global___PlanStatus | None=...) -> None:
705
+ ...
706
+
707
+ def HasField(self, field_name: typing.Literal['component_name', b'component_name', 'status', b'status']) -> builtins.bool:
708
+ ...
709
+
710
+ def ClearField(self, field_name: typing.Literal['component_name', b'component_name', 'execution_id', b'execution_id', 'plan_id', b'plan_id', 'status', b'status']) -> None:
711
+ ...
712
+ global___PlanStatusWithID = PlanStatusWithID
713
+
714
+ @typing.final
715
+ class PlanStatus(google.protobuf.message.Message):
716
+ """Plan status describes the state of a given plan at a
717
+ point in time
718
+ """
719
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
720
+ STATE_FIELD_NUMBER: builtins.int
721
+ TIMESTAMP_FIELD_NUMBER: builtins.int
722
+ REASON_FIELD_NUMBER: builtins.int
723
+ state: global___PlanState.ValueType
724
+ 'The state of the plan execution'
725
+ reason: builtins.str
726
+ 'The reason for the state change. If motion plan failed\n this will return the error message.\n If motion needed to re-plan, this will return\n the re-plan reason.\n '
727
+
728
+ @property
729
+ def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp:
730
+ """The time the executing plan transtioned to the state"""
731
+
732
+ def __init__(self, *, state: global___PlanState.ValueType=..., timestamp: google.protobuf.timestamp_pb2.Timestamp | None=..., reason: builtins.str | None=...) -> None:
733
+ ...
734
+
735
+ def HasField(self, field_name: typing.Literal['_reason', b'_reason', 'reason', b'reason', 'timestamp', b'timestamp']) -> builtins.bool:
736
+ ...
737
+
738
+ def ClearField(self, field_name: typing.Literal['_reason', b'_reason', 'reason', b'reason', 'state', b'state', 'timestamp', b'timestamp']) -> None:
739
+ ...
740
+
741
+ def WhichOneof(self, oneof_group: typing.Literal['_reason', b'_reason']) -> typing.Literal['reason'] | None:
742
+ ...
743
+ global___PlanStatus = PlanStatus
744
+
745
+ @typing.final
746
+ class Plan(google.protobuf.message.Message):
747
+ """A plan describes a motion plan"""
748
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
749
+ ID_FIELD_NUMBER: builtins.int
750
+ COMPONENT_NAME_FIELD_NUMBER: builtins.int
751
+ EXECUTION_ID_FIELD_NUMBER: builtins.int
752
+ STEPS_FIELD_NUMBER: builtins.int
753
+ id: builtins.str
754
+ "The plan's unique ID"
755
+ execution_id: builtins.str
756
+ 'The unique ID which identifies the execution.\n Multiple plans will share the same execution_id if they were\n generated due to replanning\n '
757
+
758
+ @property
759
+ def component_name(self) -> common.v1.common_pb2.ResourceName:
760
+ """The component requested to be moved.
761
+ Used for tracking & stopping.
762
+ NOTE: A plan may move more components than just the
763
+ root component.
764
+ """
765
+
766
+ @property
767
+ def steps(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PlanStep]:
768
+ """The steps of a plan is an ordered list of plan steps"""
769
+
770
+ def __init__(self, *, id: builtins.str=..., component_name: common.v1.common_pb2.ResourceName | None=..., execution_id: builtins.str=..., steps: collections.abc.Iterable[global___PlanStep] | None=...) -> None:
771
+ ...
772
+
773
+ def HasField(self, field_name: typing.Literal['component_name', b'component_name']) -> builtins.bool:
774
+ ...
775
+
776
+ def ClearField(self, field_name: typing.Literal['component_name', b'component_name', 'execution_id', b'execution_id', 'id', b'id', 'steps', b'steps']) -> None:
777
+ ...
778
+ global___Plan = Plan
779
+
780
+ @typing.final
781
+ class PlanStep(google.protobuf.message.Message):
782
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
783
+
784
+ @typing.final
785
+ class StepEntry(google.protobuf.message.Message):
786
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
787
+ KEY_FIELD_NUMBER: builtins.int
788
+ VALUE_FIELD_NUMBER: builtins.int
789
+ key: builtins.str
790
+
791
+ @property
792
+ def value(self) -> global___ComponentState:
793
+ ...
794
+
795
+ def __init__(self, *, key: builtins.str=..., value: global___ComponentState | None=...) -> None:
796
+ ...
797
+
798
+ def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool:
799
+ ...
800
+
801
+ def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None:
802
+ ...
803
+ STEP_FIELD_NUMBER: builtins.int
804
+
805
+ @property
806
+ def step(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___ComponentState]:
807
+ """A step is the component state each
808
+ component resource should reach while executing
809
+ that step of the plan.
810
+ Keys are the fully qualified component name.
811
+ """
812
+
813
+ def __init__(self, *, step: collections.abc.Mapping[builtins.str, global___ComponentState] | None=...) -> None:
814
+ ...
815
+
816
+ def ClearField(self, field_name: typing.Literal['step', b'step']) -> None:
817
+ ...
818
+ global___PlanStep = PlanStep
819
+
820
+ @typing.final
821
+ class ComponentState(google.protobuf.message.Message):
822
+ """A pose"""
823
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
824
+ POSE_FIELD_NUMBER: builtins.int
825
+
826
+ @property
827
+ def pose(self) -> common.v1.common_pb2.Pose:
828
+ ...
829
+
830
+ def __init__(self, *, pose: common.v1.common_pb2.Pose | None=...) -> None:
831
+ ...
832
+
833
+ def HasField(self, field_name: typing.Literal['pose', b'pose']) -> builtins.bool:
834
+ ...
835
+
836
+ def ClearField(self, field_name: typing.Literal['pose', b'pose']) -> None:
837
+ ...
838
+ global___ComponentState = ComponentState