wandelbots-api-client 25.8.0.dev77__py3-none-any.whl → 25.11.0.dev12__py3-none-any.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.
Files changed (637) hide show
  1. wandelbots_api_client/__init__.py +2 -3
  2. wandelbots_api_client/api/__init__.py +2 -0
  3. wandelbots_api_client/api/application_api.py +1 -2
  4. wandelbots_api_client/api/cell_api.py +1 -2
  5. wandelbots_api_client/api/controller_api.py +10 -5
  6. wandelbots_api_client/api/controller_ios_api.py +3 -6
  7. wandelbots_api_client/api/coordinate_systems_api.py +1 -2
  8. wandelbots_api_client/api/device_configuration_api.py +1 -2
  9. wandelbots_api_client/api/library_program_api.py +1 -2
  10. wandelbots_api_client/api/library_program_metadata_api.py +1 -2
  11. wandelbots_api_client/api/library_recipe_api.py +1 -2
  12. wandelbots_api_client/api/library_recipe_metadata_api.py +1 -2
  13. wandelbots_api_client/api/license_api.py +1 -2
  14. wandelbots_api_client/api/motion_api.py +17 -6
  15. wandelbots_api_client/api/motion_group_api.py +1 -2
  16. wandelbots_api_client/api/motion_group_infos_api.py +3 -2
  17. wandelbots_api_client/api/motion_group_jogging_api.py +11 -6
  18. wandelbots_api_client/api/motion_group_kinematic_api.py +1 -2
  19. wandelbots_api_client/api/program_api.py +1 -2
  20. wandelbots_api_client/api/program_operator_api.py +1 -2
  21. wandelbots_api_client/api/program_values_api.py +1 -2
  22. wandelbots_api_client/api/store_collision_components_api.py +10 -8
  23. wandelbots_api_client/api/store_collision_scenes_api.py +1 -2
  24. wandelbots_api_client/api/store_object_api.py +1 -2
  25. wandelbots_api_client/api/system_api.py +1 -2
  26. wandelbots_api_client/api/version_api.py +284 -0
  27. wandelbots_api_client/api/virtual_robot_api.py +1 -2
  28. wandelbots_api_client/api/virtual_robot_behavior_api.py +6 -4
  29. wandelbots_api_client/api/virtual_robot_mode_api.py +1 -2
  30. wandelbots_api_client/api/virtual_robot_setup_api.py +1 -2
  31. wandelbots_api_client/api_client.py +14 -7
  32. wandelbots_api_client/configuration.py +18 -7
  33. wandelbots_api_client/exceptions.py +1 -1
  34. wandelbots_api_client/models/__init__.py +3 -4
  35. wandelbots_api_client/models/abb_controller.py +5 -5
  36. wandelbots_api_client/models/abb_controller_egm_server.py +3 -3
  37. wandelbots_api_client/models/activate_license_request.py +2 -2
  38. wandelbots_api_client/models/add_request.py +3 -3
  39. wandelbots_api_client/models/all_joint_positions_request.py +3 -3
  40. wandelbots_api_client/models/all_joint_positions_response.py +2 -2
  41. wandelbots_api_client/models/api_version.py +91 -0
  42. wandelbots_api_client/models/app.py +8 -8
  43. wandelbots_api_client/models/array_input.py +2 -2
  44. wandelbots_api_client/models/array_output.py +2 -2
  45. wandelbots_api_client/models/behavior.py +1 -1
  46. wandelbots_api_client/models/blending_auto.py +3 -3
  47. wandelbots_api_client/models/blending_position.py +3 -3
  48. wandelbots_api_client/models/box.py +5 -5
  49. wandelbots_api_client/models/box2.py +6 -6
  50. wandelbots_api_client/models/box3.py +6 -6
  51. wandelbots_api_client/models/capsule.py +3 -3
  52. wandelbots_api_client/models/capsule2.py +4 -4
  53. wandelbots_api_client/models/capsule3.py +4 -4
  54. wandelbots_api_client/models/capture.py +2 -2
  55. wandelbots_api_client/models/cell.py +4 -4
  56. wandelbots_api_client/models/circle.py +3 -3
  57. wandelbots_api_client/models/code_with_arguments.py +7 -6
  58. wandelbots_api_client/models/collection_value.py +1 -1
  59. wandelbots_api_client/models/collider.py +4 -4
  60. wandelbots_api_client/models/collider_input.py +4 -4
  61. wandelbots_api_client/models/collider_output.py +4 -4
  62. wandelbots_api_client/models/collider_output_shape.py +1 -1
  63. wandelbots_api_client/models/collider_shape.py +1 -41
  64. wandelbots_api_client/models/collision.py +7 -7
  65. wandelbots_api_client/models/collision_contact.py +3 -3
  66. wandelbots_api_client/models/collision_motion_group.py +7 -6
  67. wandelbots_api_client/models/collision_motion_group_assembly.py +9 -8
  68. wandelbots_api_client/models/collision_robot_configuration_input.py +12 -10
  69. wandelbots_api_client/models/collision_robot_configuration_output.py +12 -10
  70. wandelbots_api_client/models/collision_scene.py +11 -9
  71. wandelbots_api_client/models/collision_scene_assembly.py +14 -12
  72. wandelbots_api_client/models/command.py +7 -7
  73. wandelbots_api_client/models/command_settings.py +4 -4
  74. wandelbots_api_client/models/comparator.py +1 -1
  75. wandelbots_api_client/models/compound.py +2 -2
  76. wandelbots_api_client/models/container_environment_inner.py +3 -3
  77. wandelbots_api_client/models/container_image.py +4 -4
  78. wandelbots_api_client/models/container_image_secrets_inner.py +2 -2
  79. wandelbots_api_client/models/container_resources.py +2 -2
  80. wandelbots_api_client/models/container_storage.py +3 -3
  81. wandelbots_api_client/models/controller_capabilities.py +3 -3
  82. wandelbots_api_client/models/controller_instance.py +9 -9
  83. wandelbots_api_client/models/controller_instance_list.py +2 -2
  84. wandelbots_api_client/models/convex_hull.py +2 -2
  85. wandelbots_api_client/models/convex_hull2.py +3 -3
  86. wandelbots_api_client/models/convex_hull3.py +3 -3
  87. wandelbots_api_client/models/coordinate_system.py +6 -6
  88. wandelbots_api_client/models/coordinate_systems.py +2 -2
  89. wandelbots_api_client/models/create_device_request_inner.py +1 -1
  90. wandelbots_api_client/models/create_program_run200_response.py +2 -2
  91. wandelbots_api_client/models/create_program_run_request.py +2 -2
  92. wandelbots_api_client/models/create_trigger200_response.py +2 -2
  93. wandelbots_api_client/models/create_trigger_request.py +7 -7
  94. wandelbots_api_client/models/cubic_spline.py +2 -2
  95. wandelbots_api_client/models/cubic_spline_cubic_spline_parameter.py +3 -3
  96. wandelbots_api_client/models/cubic_spline_parameter.py +3 -3
  97. wandelbots_api_client/models/cycle_time.py +2 -2
  98. wandelbots_api_client/models/cylinder.py +3 -3
  99. wandelbots_api_client/models/cylinder2.py +4 -4
  100. wandelbots_api_client/models/cylinder3.py +4 -4
  101. wandelbots_api_client/models/dh_parameter.py +6 -6
  102. wandelbots_api_client/models/direction.py +1 -1
  103. wandelbots_api_client/models/direction_jogging_request.py +10 -10
  104. wandelbots_api_client/models/error.py +3 -3
  105. wandelbots_api_client/models/execute_trajectory_request.py +1 -1
  106. wandelbots_api_client/models/execute_trajectory_response.py +1 -1
  107. wandelbots_api_client/models/execution_result.py +4 -4
  108. wandelbots_api_client/models/external_joint_stream_datapoint.py +3 -3
  109. wandelbots_api_client/models/external_joint_stream_datapoint_value.py +5 -5
  110. wandelbots_api_client/models/fanuc_controller.py +3 -3
  111. wandelbots_api_client/models/feedback_collision.py +5 -5
  112. wandelbots_api_client/models/feedback_joint_limit_exceeded.py +4 -4
  113. wandelbots_api_client/models/feedback_out_of_workspace.py +3 -3
  114. wandelbots_api_client/models/feedback_singularity.py +4 -4
  115. wandelbots_api_client/models/flag.py +2 -2
  116. wandelbots_api_client/models/force_vector.py +4 -4
  117. wandelbots_api_client/models/geometry.py +12 -12
  118. wandelbots_api_client/models/get_all_program_runs200_response.py +2 -2
  119. wandelbots_api_client/models/get_all_triggers200_response.py +2 -2
  120. wandelbots_api_client/models/get_mode_response.py +2 -2
  121. wandelbots_api_client/models/get_trajectory_response.py +2 -2
  122. wandelbots_api_client/models/get_trajectory_sample_response.py +2 -2
  123. wandelbots_api_client/models/google_protobuf_any.py +2 -2
  124. wandelbots_api_client/models/http_exception_response.py +2 -2
  125. wandelbots_api_client/models/http_validation_error.py +2 -2
  126. wandelbots_api_client/models/http_validation_error2.py +2 -2
  127. wandelbots_api_client/models/image_credentials.py +4 -4
  128. wandelbots_api_client/models/info_service_capabilities.py +8 -8
  129. wandelbots_api_client/models/initialize_movement_request.py +6 -6
  130. wandelbots_api_client/models/initialize_movement_response.py +2 -2
  131. wandelbots_api_client/models/initialize_movement_response_init_response.py +3 -3
  132. wandelbots_api_client/models/io.py +6 -6
  133. wandelbots_api_client/models/io_description.py +10 -10
  134. wandelbots_api_client/models/io_value.py +5 -5
  135. wandelbots_api_client/models/ios.py +2 -2
  136. wandelbots_api_client/models/jogging_response.py +4 -4
  137. wandelbots_api_client/models/jogging_service_capabilities.py +3 -3
  138. wandelbots_api_client/models/joint_jogging_request.py +6 -6
  139. wandelbots_api_client/models/joint_limit.py +5 -5
  140. wandelbots_api_client/models/joint_limit_exceeded.py +3 -3
  141. wandelbots_api_client/models/joint_position_request.py +4 -4
  142. wandelbots_api_client/models/joint_trajectory.py +4 -4
  143. wandelbots_api_client/models/joints.py +2 -2
  144. wandelbots_api_client/models/kinematic_service_capabilities.py +4 -4
  145. wandelbots_api_client/models/kuka_controller.py +10 -8
  146. wandelbots_api_client/models/kuka_controller_rsi_server.py +3 -3
  147. wandelbots_api_client/models/license.py +11 -11
  148. wandelbots_api_client/models/license_status.py +3 -3
  149. wandelbots_api_client/models/license_status_enum.py +1 -1
  150. wandelbots_api_client/models/limit_settings.py +13 -13
  151. wandelbots_api_client/models/limits_override.py +7 -7
  152. wandelbots_api_client/models/list_devices200_response_inner.py +1 -1
  153. wandelbots_api_client/models/list_io_descriptions_response.py +2 -2
  154. wandelbots_api_client/models/list_io_values_response.py +2 -2
  155. wandelbots_api_client/models/list_payloads_response.py +2 -2
  156. wandelbots_api_client/models/list_program_metadata_response.py +2 -2
  157. wandelbots_api_client/models/list_recipe_metadata_response.py +2 -2
  158. wandelbots_api_client/models/list_response.py +2 -2
  159. wandelbots_api_client/models/list_tcps_response.py +2 -2
  160. wandelbots_api_client/models/manufacturer.py +1 -1
  161. wandelbots_api_client/models/mode_change_response.py +5 -5
  162. wandelbots_api_client/models/motion_command.py +4 -4
  163. wandelbots_api_client/models/motion_command_blending.py +1 -1
  164. wandelbots_api_client/models/motion_command_path.py +1 -1
  165. wandelbots_api_client/models/motion_group_behavior_getter.py +2 -2
  166. wandelbots_api_client/models/motion_group_info.py +4 -4
  167. wandelbots_api_client/models/motion_group_infos.py +2 -2
  168. wandelbots_api_client/models/motion_group_instance.py +6 -6
  169. wandelbots_api_client/models/motion_group_instance_list.py +2 -2
  170. wandelbots_api_client/models/motion_group_joints.py +5 -5
  171. wandelbots_api_client/models/motion_group_physical.py +6 -6
  172. wandelbots_api_client/models/motion_group_specification.py +3 -3
  173. wandelbots_api_client/models/motion_group_state.py +13 -13
  174. wandelbots_api_client/models/motion_group_state_joint_limit_reached.py +2 -2
  175. wandelbots_api_client/models/motion_group_state_response.py +3 -3
  176. wandelbots_api_client/models/motion_id.py +2 -2
  177. wandelbots_api_client/models/motion_ids_list_response.py +2 -2
  178. wandelbots_api_client/models/motion_vector.py +4 -4
  179. wandelbots_api_client/models/mounting.py +3 -3
  180. wandelbots_api_client/models/move_request.py +9 -9
  181. wandelbots_api_client/models/move_response.py +3 -3
  182. wandelbots_api_client/models/move_to_trajectory_via_joint_ptp_request.py +5 -5
  183. wandelbots_api_client/models/movement.py +2 -2
  184. wandelbots_api_client/models/movement_error.py +2 -2
  185. wandelbots_api_client/models/movement_error_error.py +2 -2
  186. wandelbots_api_client/models/movement_movement.py +4 -4
  187. wandelbots_api_client/models/op_mode.py +2 -2
  188. wandelbots_api_client/models/opcua_node_value_trigger_config.py +4 -4
  189. wandelbots_api_client/models/opcua_node_value_trigger_config_node_value.py +1 -1
  190. wandelbots_api_client/models/optimizer_setup.py +8 -8
  191. wandelbots_api_client/models/out_of_workspace.py +2 -2
  192. wandelbots_api_client/models/path.py +2 -2
  193. wandelbots_api_client/models/path_cartesian_ptp.py +3 -3
  194. wandelbots_api_client/models/path_circle.py +4 -4
  195. wandelbots_api_client/models/path_cubic_spline.py +3 -3
  196. wandelbots_api_client/models/path_joint_ptp.py +3 -3
  197. wandelbots_api_client/models/path_line.py +3 -3
  198. wandelbots_api_client/models/pause_movement_request.py +3 -3
  199. wandelbots_api_client/models/pause_movement_response.py +2 -2
  200. wandelbots_api_client/models/pause_movement_response_pause_response.py +3 -3
  201. wandelbots_api_client/models/pause_on_io.py +3 -3
  202. wandelbots_api_client/models/payload.py +5 -5
  203. wandelbots_api_client/models/plan_collision_free_ptp_request.py +10 -9
  204. wandelbots_api_client/models/plan_collision_free_ptp_request_target.py +1 -1
  205. wandelbots_api_client/models/plan_failed_on_trajectory_response.py +10 -10
  206. wandelbots_api_client/models/plan_failed_response.py +8 -8
  207. wandelbots_api_client/models/plan_request.py +6 -6
  208. wandelbots_api_client/models/plan_response.py +4 -4
  209. wandelbots_api_client/models/plan_successful_response.py +3 -3
  210. wandelbots_api_client/models/plan_trajectory_failed_response.py +4 -4
  211. wandelbots_api_client/models/plan_trajectory_failed_response_error_feedback.py +1 -1
  212. wandelbots_api_client/models/plan_trajectory_request.py +10 -9
  213. wandelbots_api_client/models/plan_trajectory_response.py +2 -2
  214. wandelbots_api_client/models/plan_trajectory_response_response.py +1 -1
  215. wandelbots_api_client/models/plane2.py +2 -2
  216. wandelbots_api_client/models/plane3.py +2 -2
  217. wandelbots_api_client/models/planned_motion.py +6 -6
  218. wandelbots_api_client/models/planner_pose.py +3 -3
  219. wandelbots_api_client/models/planning_limits.py +13 -13
  220. wandelbots_api_client/models/planning_limits_limit_range.py +3 -3
  221. wandelbots_api_client/models/playback_speed_request.py +3 -3
  222. wandelbots_api_client/models/playback_speed_response.py +2 -2
  223. wandelbots_api_client/models/playback_speed_response_playback_speed_response.py +2 -2
  224. wandelbots_api_client/models/point_cloud.py +2 -2
  225. wandelbots_api_client/models/pose.py +4 -4
  226. wandelbots_api_client/models/pose2.py +3 -3
  227. wandelbots_api_client/models/program_metadata.py +7 -7
  228. wandelbots_api_client/models/program_run.py +15 -14
  229. wandelbots_api_client/models/program_run_object.py +7 -7
  230. wandelbots_api_client/models/program_run_state.py +1 -1
  231. wandelbots_api_client/models/program_runner_reference.py +3 -3
  232. wandelbots_api_client/models/pyjectory_datatypes_core_pose.py +3 -3
  233. wandelbots_api_client/models/pyjectory_datatypes_serializer_orientation.py +2 -2
  234. wandelbots_api_client/models/pyjectory_datatypes_serializer_pose.py +2 -2
  235. wandelbots_api_client/models/pyjectory_datatypes_serializer_position.py +2 -2
  236. wandelbots_api_client/models/pyriphery_etcd_etcd_configuration.py +5 -5
  237. wandelbots_api_client/models/pyriphery_hardware_isaac_isaac_configuration.py +5 -5
  238. wandelbots_api_client/models/pyriphery_opcua_opcua_configuration.py +4 -4
  239. wandelbots_api_client/models/pyriphery_pyrae_controller_controller_configuration.py +7 -7
  240. wandelbots_api_client/models/pyriphery_pyrae_robot_robot_configuration.py +8 -8
  241. wandelbots_api_client/models/pyriphery_robotics_configurable_collision_scene_configurable_collision_scene_configuration_input.py +13 -11
  242. wandelbots_api_client/models/pyriphery_robotics_configurable_collision_scene_configurable_collision_scene_configuration_output.py +13 -11
  243. wandelbots_api_client/models/pyriphery_robotics_robotcell_timer_configuration.py +3 -3
  244. wandelbots_api_client/models/pyriphery_robotics_simulation_robot_with_view_open3d_configuration.py +4 -4
  245. wandelbots_api_client/models/pyriphery_robotics_simulation_simulated_io_configuration.py +3 -3
  246. wandelbots_api_client/models/pyriphery_robotics_simulation_simulated_opcua_configuration.py +3 -3
  247. wandelbots_api_client/models/quaternion.py +5 -5
  248. wandelbots_api_client/models/recipe_metadata.py +8 -8
  249. wandelbots_api_client/models/rectangle.py +3 -3
  250. wandelbots_api_client/models/rectangle2.py +4 -4
  251. wandelbots_api_client/models/rectangle3.py +4 -4
  252. wandelbots_api_client/models/rectangular_capsule.py +4 -4
  253. wandelbots_api_client/models/rectangular_capsule2.py +5 -5
  254. wandelbots_api_client/models/rectangular_capsule3.py +5 -5
  255. wandelbots_api_client/models/release_channel.py +1 -1
  256. wandelbots_api_client/models/request.py +1 -1
  257. wandelbots_api_client/models/request1.py +1 -1
  258. wandelbots_api_client/models/response_get_value_programs_values_key_get.py +1 -1
  259. wandelbots_api_client/models/response_get_values_programs_values_get_value.py +1 -1
  260. wandelbots_api_client/models/robot_controller.py +3 -3
  261. wandelbots_api_client/models/robot_controller_configuration.py +1 -1
  262. wandelbots_api_client/models/robot_controller_state.py +8 -8
  263. wandelbots_api_client/models/robot_link_geometry.py +3 -3
  264. wandelbots_api_client/models/robot_state.py +3 -3
  265. wandelbots_api_client/models/robot_system_mode.py +1 -1
  266. wandelbots_api_client/models/robot_tcp.py +5 -5
  267. wandelbots_api_client/models/robot_tcps.py +2 -2
  268. wandelbots_api_client/models/rotation_angle_types.py +1 -1
  269. wandelbots_api_client/models/rotation_angles.py +3 -3
  270. wandelbots_api_client/models/safety_configuration.py +6 -6
  271. wandelbots_api_client/models/safety_setup.py +5 -5
  272. wandelbots_api_client/models/safety_setup_safety_settings.py +3 -3
  273. wandelbots_api_client/models/safety_setup_safety_zone.py +5 -5
  274. wandelbots_api_client/models/safety_zone.py +4 -4
  275. wandelbots_api_client/models/safety_zone_limits.py +3 -3
  276. wandelbots_api_client/models/safety_zone_violation.py +2 -2
  277. wandelbots_api_client/models/service_status.py +3 -3
  278. wandelbots_api_client/models/service_status_phase.py +1 -1
  279. wandelbots_api_client/models/service_status_severity.py +1 -1
  280. wandelbots_api_client/models/service_status_status.py +4 -4
  281. wandelbots_api_client/models/set_io.py +3 -3
  282. wandelbots_api_client/models/set_playback_speed.py +3 -3
  283. wandelbots_api_client/models/single_joint_limit.py +3 -3
  284. wandelbots_api_client/models/singularity.py +3 -3
  285. wandelbots_api_client/models/singularity_type_enum.py +1 -1
  286. wandelbots_api_client/models/sphere.py +2 -2
  287. wandelbots_api_client/models/sphere2.py +3 -3
  288. wandelbots_api_client/models/sphere3.py +3 -3
  289. wandelbots_api_client/models/standstill.py +2 -2
  290. wandelbots_api_client/models/standstill_reason.py +1 -1
  291. wandelbots_api_client/models/standstill_standstill.py +4 -4
  292. wandelbots_api_client/models/start_movement_request.py +6 -6
  293. wandelbots_api_client/models/start_on_io.py +3 -3
  294. wandelbots_api_client/models/status.py +4 -4
  295. wandelbots_api_client/models/stop_response.py +4 -4
  296. wandelbots_api_client/models/store_value.py +1 -1
  297. wandelbots_api_client/models/stream_move_backward.py +2 -2
  298. wandelbots_api_client/models/stream_move_forward.py +2 -2
  299. wandelbots_api_client/models/stream_move_playback_speed.py +2 -2
  300. wandelbots_api_client/models/stream_move_request.py +1 -1
  301. wandelbots_api_client/models/stream_move_response.py +4 -4
  302. wandelbots_api_client/models/stream_move_to_trajectory.py +2 -2
  303. wandelbots_api_client/models/stream_stop.py +2 -2
  304. wandelbots_api_client/models/tcp_pose.py +5 -5
  305. wandelbots_api_client/models/tcp_pose_request.py +5 -5
  306. wandelbots_api_client/models/tool_geometry.py +3 -3
  307. wandelbots_api_client/models/trajectory_sample.py +12 -12
  308. wandelbots_api_client/models/trigger_object.py +11 -11
  309. wandelbots_api_client/models/trigger_type.py +1 -1
  310. wandelbots_api_client/models/universalrobots_controller.py +3 -3
  311. wandelbots_api_client/models/update_nova_version_request.py +2 -2
  312. wandelbots_api_client/models/update_program_metadata_request.py +4 -4
  313. wandelbots_api_client/models/update_recipe_metadata_request.py +4 -4
  314. wandelbots_api_client/models/update_trigger_request.py +6 -6
  315. wandelbots_api_client/models/validation_error.py +4 -4
  316. wandelbots_api_client/models/validation_error2.py +4 -4
  317. wandelbots_api_client/models/validation_error2_loc_inner.py +1 -1
  318. wandelbots_api_client/models/validation_error_loc_inner.py +1 -1
  319. wandelbots_api_client/models/value.py +1 -1
  320. wandelbots_api_client/models/vector3d.py +4 -4
  321. wandelbots_api_client/models/version_number.py +9 -9
  322. wandelbots_api_client/models/virtual_controller.py +6 -6
  323. wandelbots_api_client/models/virtual_controller_types.py +11 -1
  324. wandelbots_api_client/models/virtual_robot_configuration.py +3 -3
  325. wandelbots_api_client/models/yaskawa_controller.py +3 -3
  326. wandelbots_api_client/rest.py +3 -2
  327. wandelbots_api_client/v2/__init__.py +3 -4
  328. wandelbots_api_client/v2/api/__init__.py +2 -0
  329. wandelbots_api_client/v2/api/application_api.py +11 -12
  330. wandelbots_api_client/v2/api/bus_inputs_outputs_api.py +930 -82
  331. wandelbots_api_client/v2/api/cell_api.py +8 -9
  332. wandelbots_api_client/v2/api/controller_api.py +35 -32
  333. wandelbots_api_client/v2/api/controller_inputs_outputs_api.py +14 -13
  334. wandelbots_api_client/v2/api/jogging_api.py +8 -6
  335. wandelbots_api_client/v2/api/kinematics_api.py +14 -16
  336. wandelbots_api_client/v2/api/license_api.py +8 -9
  337. wandelbots_api_client/v2/api/motion_group_api.py +10 -9
  338. wandelbots_api_client/v2/api/motion_group_models_api.py +13 -50
  339. wandelbots_api_client/v2/api/program_api.py +2 -3
  340. wandelbots_api_client/v2/api/store_collision_components_api.py +823 -50
  341. wandelbots_api_client/v2/api/store_collision_setups_api.py +264 -7
  342. wandelbots_api_client/v2/api/store_object_api.py +11 -12
  343. wandelbots_api_client/v2/api/system_api.py +6 -6
  344. wandelbots_api_client/v2/api/trajectory_caching_api.py +14 -15
  345. wandelbots_api_client/v2/api/trajectory_execution_api.py +8 -6
  346. wandelbots_api_client/v2/api/trajectory_planning_api.py +17 -19
  347. wandelbots_api_client/v2/api/version_api.py +284 -0
  348. wandelbots_api_client/v2/api/virtual_controller_api.py +53 -39
  349. wandelbots_api_client/v2/api/virtual_controller_behavior_api.py +20 -12
  350. wandelbots_api_client/v2/api/virtual_controller_inputs_outputs_api.py +5 -6
  351. wandelbots_api_client/v2/api_client.py +15 -8
  352. wandelbots_api_client/v2/configuration.py +19 -8
  353. wandelbots_api_client/v2/exceptions.py +2 -2
  354. wandelbots_api_client/v2/models/__init__.py +50 -29
  355. wandelbots_api_client/v2/models/abb_controller.py +8 -11
  356. wandelbots_api_client/v2/models/abb_controller_egm_server.py +4 -4
  357. wandelbots_api_client/v2/models/activate_license_request.py +3 -3
  358. wandelbots_api_client/v2/models/add_trajectory_error.py +5 -5
  359. wandelbots_api_client/v2/models/add_trajectory_error_data.py +58 -58
  360. wandelbots_api_client/v2/models/add_trajectory_request.py +5 -5
  361. wandelbots_api_client/v2/models/add_trajectory_response.py +4 -4
  362. wandelbots_api_client/v2/models/api_version.py +91 -0
  363. wandelbots_api_client/v2/models/app.py +11 -11
  364. wandelbots_api_client/v2/models/behavior.py +3 -3
  365. wandelbots_api_client/v2/models/blending_auto.py +6 -5
  366. wandelbots_api_client/v2/models/blending_position.py +4 -4
  367. wandelbots_api_client/v2/models/boolean_value.py +6 -9
  368. wandelbots_api_client/v2/models/box.py +7 -7
  369. wandelbots_api_client/v2/models/{io_description2.py → bus_io_description.py} +16 -16
  370. wandelbots_api_client/v2/models/bus_io_modbus_client.py +104 -0
  371. wandelbots_api_client/v2/models/bus_io_modbus_server.py +115 -0
  372. wandelbots_api_client/v2/models/bus_io_modbus_tcp_client.py +106 -0
  373. wandelbots_api_client/v2/models/bus_io_modbus_tcp_server.py +104 -0
  374. wandelbots_api_client/v2/models/bus_io_modbus_virtual.py +98 -0
  375. wandelbots_api_client/v2/models/bus_io_profinet.py +8 -11
  376. wandelbots_api_client/v2/models/bus_io_profinet_default_route.py +4 -4
  377. wandelbots_api_client/v2/models/bus_io_profinet_ip_config.py +5 -5
  378. wandelbots_api_client/v2/models/bus_io_profinet_network.py +5 -5
  379. wandelbots_api_client/v2/models/bus_io_profinet_virtual.py +5 -8
  380. wandelbots_api_client/v2/models/bus_io_type.py +65 -18
  381. wandelbots_api_client/v2/models/bus_ios_state.py +4 -4
  382. wandelbots_api_client/v2/models/bus_ios_state_enum.py +2 -2
  383. wandelbots_api_client/v2/models/capsule.py +5 -5
  384. wandelbots_api_client/v2/models/cartesian_limits.py +6 -6
  385. wandelbots_api_client/v2/models/cell.py +7 -7
  386. wandelbots_api_client/v2/models/collider.py +5 -5
  387. wandelbots_api_client/v2/models/collider_shape.py +2 -42
  388. wandelbots_api_client/v2/models/collision.py +8 -8
  389. wandelbots_api_client/v2/models/collision_contact.py +4 -4
  390. wandelbots_api_client/v2/models/collision_error.py +3 -3
  391. wandelbots_api_client/v2/models/collision_free_algorithm.py +3 -3
  392. wandelbots_api_client/v2/models/collision_setup.py +14 -12
  393. wandelbots_api_client/v2/models/comparator.py +2 -2
  394. wandelbots_api_client/v2/models/configuration_archive_status.py +2 -17
  395. wandelbots_api_client/v2/models/configuration_archive_status_creating.py +4 -4
  396. wandelbots_api_client/v2/models/configuration_archive_status_error.py +4 -4
  397. wandelbots_api_client/v2/models/configuration_archive_status_success.py +3 -3
  398. wandelbots_api_client/v2/models/configuration_resource.py +5 -5
  399. wandelbots_api_client/v2/models/container_environment_inner.py +4 -4
  400. wandelbots_api_client/v2/models/container_image.py +5 -5
  401. wandelbots_api_client/v2/models/container_image_secrets_inner.py +3 -3
  402. wandelbots_api_client/v2/models/container_resources.py +4 -4
  403. wandelbots_api_client/v2/models/container_storage.py +4 -4
  404. wandelbots_api_client/v2/models/controller_description.py +6 -6
  405. wandelbots_api_client/v2/models/convex_hull.py +4 -4
  406. wandelbots_api_client/v2/models/coordinate_system.py +8 -8
  407. wandelbots_api_client/v2/models/coordinate_system_data.py +7 -7
  408. wandelbots_api_client/v2/models/cubic_spline_parameter.py +4 -4
  409. wandelbots_api_client/v2/models/cycle_time.py +5 -4
  410. wandelbots_api_client/v2/models/cylinder.py +5 -5
  411. wandelbots_api_client/v2/models/dh_parameter.py +7 -7
  412. wandelbots_api_client/v2/models/direction.py +2 -2
  413. wandelbots_api_client/v2/models/error.py +4 -4
  414. wandelbots_api_client/v2/models/error_invalid_joint_count.py +5 -5
  415. wandelbots_api_client/v2/models/error_joint_limit_exceeded.py +6 -5
  416. wandelbots_api_client/v2/models/error_joint_position_collision.py +6 -6
  417. wandelbots_api_client/v2/models/error_max_iterations_exceeded.py +4 -4
  418. wandelbots_api_client/v2/models/execute.py +4 -4
  419. wandelbots_api_client/v2/models/execute_details.py +2 -12
  420. wandelbots_api_client/v2/models/execute_jogging_request.py +30 -2
  421. wandelbots_api_client/v2/models/execute_jogging_response.py +7 -7
  422. wandelbots_api_client/v2/models/execute_trajectory_request.py +30 -2
  423. wandelbots_api_client/v2/models/execute_trajectory_response.py +7 -7
  424. wandelbots_api_client/v2/models/external_joint_stream_datapoint.py +4 -4
  425. wandelbots_api_client/v2/models/external_joint_stream_request.py +3 -3
  426. wandelbots_api_client/v2/models/fanuc_controller.py +6 -9
  427. wandelbots_api_client/v2/models/feedback_collision.py +6 -6
  428. wandelbots_api_client/v2/models/feedback_joint_limit_exceeded.py +7 -6
  429. wandelbots_api_client/v2/models/feedback_out_of_workspace.py +4 -4
  430. wandelbots_api_client/v2/models/feedback_singularity.py +5 -5
  431. wandelbots_api_client/v2/models/flag.py +3 -3
  432. wandelbots_api_client/v2/models/float_value.py +6 -9
  433. wandelbots_api_client/v2/models/forward_kinematics422_response.py +3 -3
  434. wandelbots_api_client/v2/models/forward_kinematics_request.py +6 -6
  435. wandelbots_api_client/v2/models/forward_kinematics_response.py +3 -3
  436. wandelbots_api_client/v2/models/forward_kinematics_validation_error.py +7 -7
  437. wandelbots_api_client/v2/models/get_trajectory_response.py +5 -5
  438. wandelbots_api_client/v2/models/http_validation_error.py +3 -3
  439. wandelbots_api_client/v2/models/image_credentials.py +5 -5
  440. wandelbots_api_client/v2/models/{inconsitent_trajectory_size.py → inconsistent_trajectory_size_error.py} +9 -9
  441. wandelbots_api_client/v2/models/{inconsitent_trajectory_size_inconsistent_trajectory_size.py → inconsistent_trajectory_size_error_inconsistent_trajectory_size.py} +9 -9
  442. wandelbots_api_client/v2/models/initialize_jogging_request.py +7 -10
  443. wandelbots_api_client/v2/models/initialize_jogging_response.py +4 -4
  444. wandelbots_api_client/v2/models/initialize_movement_request.py +7 -10
  445. wandelbots_api_client/v2/models/initialize_movement_request_trajectory.py +2 -2
  446. wandelbots_api_client/v2/models/initialize_movement_response.py +5 -5
  447. wandelbots_api_client/v2/models/integer_value.py +6 -9
  448. wandelbots_api_client/v2/models/{invalid_dof.py → invalid_dof_error.py} +9 -9
  449. wandelbots_api_client/v2/models/{invalid_dof_invalid_dof.py → invalid_dof_error_invalid_dof.py} +8 -8
  450. wandelbots_api_client/v2/models/inverse_kinematics422_response.py +3 -3
  451. wandelbots_api_client/v2/models/inverse_kinematics_request.py +12 -11
  452. wandelbots_api_client/v2/models/inverse_kinematics_response.py +3 -3
  453. wandelbots_api_client/v2/models/inverse_kinematics_validation_error.py +7 -7
  454. wandelbots_api_client/v2/models/inverse_kinematics_validation_error_all_of_data.py +2 -2
  455. wandelbots_api_client/v2/models/io_boolean_value.py +7 -10
  456. wandelbots_api_client/v2/models/{io_description_min.py → io_boundary.py} +10 -25
  457. wandelbots_api_client/v2/models/io_description.py +13 -13
  458. wandelbots_api_client/v2/models/io_direction.py +2 -2
  459. wandelbots_api_client/v2/models/io_float_value.py +7 -10
  460. wandelbots_api_client/v2/models/io_integer_value.py +7 -10
  461. wandelbots_api_client/v2/models/io_origin.py +37 -0
  462. wandelbots_api_client/v2/models/io_value.py +2 -17
  463. wandelbots_api_client/v2/models/io_value_type.py +2 -2
  464. wandelbots_api_client/v2/models/jogging_details.py +4 -4
  465. wandelbots_api_client/v2/models/jogging_details_state.py +2 -27
  466. wandelbots_api_client/v2/models/jogging_paused_by_user.py +3 -3
  467. wandelbots_api_client/v2/models/jogging_paused_near_collision.py +4 -4
  468. wandelbots_api_client/v2/models/jogging_paused_near_joint_limit.py +6 -5
  469. wandelbots_api_client/v2/models/jogging_paused_on_io.py +3 -3
  470. wandelbots_api_client/v2/models/jogging_running.py +3 -3
  471. wandelbots_api_client/v2/models/{joint_limit_exceeded.py → joint_limit_exceeded_error.py} +7 -7
  472. wandelbots_api_client/v2/models/joint_limits.py +6 -6
  473. wandelbots_api_client/v2/models/joint_trajectory.py +5 -5
  474. wandelbots_api_client/v2/models/joint_velocity_request.py +6 -9
  475. wandelbots_api_client/v2/models/joint_velocity_response.py +4 -4
  476. wandelbots_api_client/v2/models/kuka_controller.py +12 -13
  477. wandelbots_api_client/v2/models/kuka_controller_rsi_server.py +4 -4
  478. wandelbots_api_client/v2/models/license.py +12 -12
  479. wandelbots_api_client/v2/models/license_status.py +4 -4
  480. wandelbots_api_client/v2/models/license_status_enum.py +2 -2
  481. wandelbots_api_client/v2/models/limit_range.py +4 -4
  482. wandelbots_api_client/v2/models/limit_set.py +7 -7
  483. wandelbots_api_client/v2/models/limits_override.py +8 -8
  484. wandelbots_api_client/v2/models/list_trajectories_response.py +3 -3
  485. wandelbots_api_client/v2/models/manufacturer.py +2 -2
  486. wandelbots_api_client/v2/models/midpoint_insertion_algorithm.py +4 -4
  487. wandelbots_api_client/v2/models/modbus_io.py +105 -0
  488. wandelbots_api_client/v2/models/modbus_io_area.py +40 -0
  489. wandelbots_api_client/v2/models/modbus_io_byte_order.py +40 -0
  490. wandelbots_api_client/v2/models/{http_validation_error2.py → modbus_io_data.py} +23 -28
  491. wandelbots_api_client/v2/models/modbus_io_type_enum.py +39 -0
  492. wandelbots_api_client/v2/models/motion_command.py +5 -5
  493. wandelbots_api_client/v2/models/motion_command_blending.py +2 -2
  494. wandelbots_api_client/v2/models/motion_command_path.py +2 -2
  495. wandelbots_api_client/v2/models/motion_group_description.py +30 -25
  496. wandelbots_api_client/v2/models/motion_group_info.py +7 -6
  497. wandelbots_api_client/v2/models/motion_group_joints.py +6 -6
  498. wandelbots_api_client/v2/models/motion_group_setup.py +15 -13
  499. wandelbots_api_client/v2/models/motion_group_state.py +18 -17
  500. wandelbots_api_client/v2/models/motion_group_state_joint_limit_reached.py +3 -3
  501. wandelbots_api_client/v2/models/movement_error_response.py +4 -4
  502. wandelbots_api_client/v2/models/{nan_value.py → nan_value_error.py} +9 -9
  503. wandelbots_api_client/v2/models/{nan_value_nan_value.py → nan_value_error_nan_value.py} +6 -6
  504. wandelbots_api_client/v2/models/op_mode.py +3 -3
  505. wandelbots_api_client/v2/models/operating_state.py +2 -2
  506. wandelbots_api_client/v2/models/operation_limits.py +6 -6
  507. wandelbots_api_client/v2/models/operation_mode.py +2 -2
  508. wandelbots_api_client/v2/models/orientation_type.py +2 -2
  509. wandelbots_api_client/v2/models/path_cartesian_ptp.py +4 -4
  510. wandelbots_api_client/v2/models/path_circle.py +5 -5
  511. wandelbots_api_client/v2/models/path_cubic_spline.py +4 -4
  512. wandelbots_api_client/v2/models/path_joint_ptp.py +4 -4
  513. wandelbots_api_client/v2/models/path_line.py +4 -4
  514. wandelbots_api_client/v2/models/pause_jogging_request.py +5 -8
  515. wandelbots_api_client/v2/models/pause_jogging_response.py +4 -4
  516. wandelbots_api_client/v2/models/pause_movement_request.py +5 -8
  517. wandelbots_api_client/v2/models/pause_movement_response.py +4 -4
  518. wandelbots_api_client/v2/models/pause_on_io.py +9 -6
  519. wandelbots_api_client/v2/models/payload.py +6 -6
  520. wandelbots_api_client/v2/models/plan422_response.py +3 -3
  521. wandelbots_api_client/v2/models/plan_collision_free_failed_response.py +3 -3
  522. wandelbots_api_client/v2/models/plan_collision_free_request.py +6 -6
  523. wandelbots_api_client/v2/models/plan_collision_free_response.py +3 -3
  524. wandelbots_api_client/v2/models/plan_collision_free_response_response.py +2 -2
  525. wandelbots_api_client/v2/models/plan_trajectory_failed_response.py +5 -5
  526. wandelbots_api_client/v2/models/plan_trajectory_failed_response_error_feedback.py +2 -2
  527. wandelbots_api_client/v2/models/plan_trajectory_request.py +5 -5
  528. wandelbots_api_client/v2/models/plan_trajectory_response.py +3 -3
  529. wandelbots_api_client/v2/models/plan_trajectory_response_response.py +2 -2
  530. wandelbots_api_client/v2/models/plan_validation_error.py +7 -7
  531. wandelbots_api_client/v2/models/plan_validation_error_all_of_data.py +2 -2
  532. wandelbots_api_client/v2/models/plane.py +3 -3
  533. wandelbots_api_client/v2/models/playback_speed_request.py +8 -10
  534. wandelbots_api_client/v2/models/playback_speed_response.py +4 -4
  535. wandelbots_api_client/v2/models/pose.py +4 -4
  536. wandelbots_api_client/v2/models/profinet_description.py +7 -7
  537. wandelbots_api_client/v2/models/profinet_input_output_config.py +5 -5
  538. wandelbots_api_client/v2/models/profinet_io.py +10 -10
  539. wandelbots_api_client/v2/models/profinet_io_data.py +9 -9
  540. wandelbots_api_client/v2/models/profinet_io_direction.py +3 -3
  541. wandelbots_api_client/v2/models/profinet_io_type_enum.py +2 -2
  542. wandelbots_api_client/v2/models/profinet_slot_description.py +6 -6
  543. wandelbots_api_client/v2/models/profinet_sub_slot_description.py +5 -5
  544. wandelbots_api_client/v2/models/program.py +8 -8
  545. wandelbots_api_client/v2/models/program_run.py +16 -14
  546. wandelbots_api_client/v2/models/program_run_state.py +2 -2
  547. wandelbots_api_client/v2/models/program_start_request.py +3 -3
  548. wandelbots_api_client/v2/models/rectangle.py +5 -5
  549. wandelbots_api_client/v2/models/rectangular_capsule.py +6 -6
  550. wandelbots_api_client/v2/models/release_channel.py +2 -2
  551. wandelbots_api_client/v2/models/robot_controller.py +4 -4
  552. wandelbots_api_client/v2/models/robot_controller_configuration.py +2 -2
  553. wandelbots_api_client/v2/models/robot_controller_state.py +13 -12
  554. wandelbots_api_client/v2/models/robot_system_mode.py +2 -2
  555. wandelbots_api_client/v2/models/robot_tcp.py +7 -7
  556. wandelbots_api_client/v2/models/robot_tcp_data.py +6 -6
  557. wandelbots_api_client/v2/models/rrt_connect_algorithm.py +8 -8
  558. wandelbots_api_client/v2/models/safety_state_type.py +2 -2
  559. wandelbots_api_client/v2/models/service_group.py +2 -2
  560. wandelbots_api_client/v2/models/service_status.py +5 -5
  561. wandelbots_api_client/v2/models/service_status_phase.py +2 -2
  562. wandelbots_api_client/v2/models/service_status_response.py +4 -4
  563. wandelbots_api_client/v2/models/service_status_severity.py +2 -2
  564. wandelbots_api_client/v2/models/service_status_status.py +5 -5
  565. wandelbots_api_client/v2/models/set_io.py +9 -6
  566. wandelbots_api_client/v2/models/settable_robot_system_mode.py +2 -2
  567. wandelbots_api_client/v2/models/singularity_type_enum.py +2 -2
  568. wandelbots_api_client/v2/models/sphere.py +4 -4
  569. wandelbots_api_client/v2/models/start_movement_request.py +13 -14
  570. wandelbots_api_client/v2/models/start_movement_response.py +4 -4
  571. wandelbots_api_client/v2/models/start_on_io.py +9 -6
  572. wandelbots_api_client/v2/models/stream_io_values_response.py +7 -6
  573. wandelbots_api_client/v2/models/tcp_offset.py +4 -4
  574. wandelbots_api_client/v2/models/{tcp_required.py → tcp_required_error.py} +6 -6
  575. wandelbots_api_client/v2/models/tcp_velocity_request.py +7 -10
  576. wandelbots_api_client/v2/models/tcp_velocity_response.py +4 -4
  577. wandelbots_api_client/v2/models/{torque_exceeded.py → torque_exceeded_error.py} +9 -9
  578. wandelbots_api_client/v2/models/{torque_exceeded_torque_exceeded.py → torque_exceeded_error_torque_exceeded.py} +8 -8
  579. wandelbots_api_client/v2/models/trajectory_data.py +7 -7
  580. wandelbots_api_client/v2/models/trajectory_details.py +6 -6
  581. wandelbots_api_client/v2/models/trajectory_details_state.py +2 -27
  582. wandelbots_api_client/v2/models/trajectory_ended.py +3 -3
  583. wandelbots_api_client/v2/models/trajectory_id.py +5 -5
  584. wandelbots_api_client/v2/models/trajectory_paused_by_user.py +3 -3
  585. wandelbots_api_client/v2/models/trajectory_paused_on_io.py +3 -3
  586. wandelbots_api_client/v2/models/trajectory_running.py +6 -5
  587. wandelbots_api_client/v2/models/trajectory_wait_for_io.py +3 -3
  588. wandelbots_api_client/v2/models/unit_type.py +2 -2
  589. wandelbots_api_client/v2/models/universalrobots_controller.py +6 -9
  590. wandelbots_api_client/v2/models/update_nova_version_request.py +3 -3
  591. wandelbots_api_client/v2/models/validation_error.py +6 -6
  592. wandelbots_api_client/v2/models/validation_error2.py +5 -5
  593. wandelbots_api_client/v2/models/validation_error_loc_inner.py +2 -2
  594. wandelbots_api_client/v2/models/virtual_controller.py +8 -11
  595. wandelbots_api_client/v2/models/virtual_controller_types.py +12 -2
  596. wandelbots_api_client/v2/models/virtual_robot_configuration.py +4 -4
  597. wandelbots_api_client/v2/models/wait_for_io_event_request.py +4 -4
  598. wandelbots_api_client/v2/models/yaskawa_controller.py +6 -9
  599. wandelbots_api_client/v2/rest.py +4 -3
  600. wandelbots_api_client/v2_pydantic/__init__.py +50 -0
  601. wandelbots_api_client/v2_pydantic/api/__init__.py +51 -0
  602. wandelbots_api_client/v2_pydantic/api/application_api.py +1803 -0
  603. wandelbots_api_client/v2_pydantic/api/bus_inputs_outputs_api.py +4603 -0
  604. wandelbots_api_client/v2_pydantic/api/cell_api.py +2003 -0
  605. wandelbots_api_client/v2_pydantic/api/controller_api.py +3721 -0
  606. wandelbots_api_client/v2_pydantic/api/controller_inputs_outputs_api.py +1395 -0
  607. wandelbots_api_client/v2_pydantic/api/jogging_api.py +125 -0
  608. wandelbots_api_client/v2_pydantic/api/kinematics_api.py +642 -0
  609. wandelbots_api_client/v2_pydantic/api/license_api.py +1061 -0
  610. wandelbots_api_client/v2_pydantic/api/motion_group_api.py +733 -0
  611. wandelbots_api_client/v2_pydantic/api/motion_group_models_api.py +563 -0
  612. wandelbots_api_client/v2_pydantic/api/program_api.py +1187 -0
  613. wandelbots_api_client/v2_pydantic/api/store_collision_components_api.py +4170 -0
  614. wandelbots_api_client/v2_pydantic/api/store_collision_setups_api.py +1419 -0
  615. wandelbots_api_client/v2_pydantic/api/store_object_api.py +1719 -0
  616. wandelbots_api_client/v2_pydantic/api/system_api.py +2427 -0
  617. wandelbots_api_client/v2_pydantic/api/trajectory_caching_api.py +1508 -0
  618. wandelbots_api_client/v2_pydantic/api/trajectory_execution_api.py +125 -0
  619. wandelbots_api_client/v2_pydantic/api/trajectory_planning_api.py +642 -0
  620. wandelbots_api_client/v2_pydantic/api/version_api.py +287 -0
  621. wandelbots_api_client/v2_pydantic/api/virtual_controller_api.py +4610 -0
  622. wandelbots_api_client/v2_pydantic/api/virtual_controller_behavior_api.py +991 -0
  623. wandelbots_api_client/v2_pydantic/api/virtual_controller_inputs_outputs_api.py +1012 -0
  624. wandelbots_api_client/v2_pydantic/api_client.py +809 -0
  625. wandelbots_api_client/v2_pydantic/api_response.py +21 -0
  626. wandelbots_api_client/v2_pydantic/configuration.py +606 -0
  627. wandelbots_api_client/v2_pydantic/exceptions.py +216 -0
  628. wandelbots_api_client/v2_pydantic/models.py +4561 -0
  629. wandelbots_api_client/v2_pydantic/py.typed +0 -0
  630. wandelbots_api_client/v2_pydantic/rest.py +213 -0
  631. {wandelbots_api_client-25.8.0.dev77.dist-info → wandelbots_api_client-25.11.0.dev12.dist-info}/METADATA +17 -16
  632. wandelbots_api_client-25.11.0.dev12.dist-info/RECORD +640 -0
  633. wandelbots_api_client/models/create_trigger_request_config.py +0 -123
  634. wandelbots_api_client-25.8.0.dev77.dist-info/RECORD +0 -596
  635. {wandelbots_api_client-25.8.0.dev77.dist-info → wandelbots_api_client-25.11.0.dev12.dist-info}/WHEEL +0 -0
  636. {wandelbots_api_client-25.8.0.dev77.dist-info → wandelbots_api_client-25.11.0.dev12.dist-info}/licenses/LICENSE +0 -0
  637. {wandelbots_api_client-25.8.0.dev77.dist-info → wandelbots_api_client-25.11.0.dev12.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,3721 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Wandelbots NOVA API
5
+
6
+ Interact with robots in an easy and intuitive way.
7
+
8
+ The version of the OpenAPI document: 2.1.0 dev
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+ from furl import furl
15
+ import json
16
+ import humps
17
+ import re
18
+ import warnings
19
+ import websockets
20
+ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
21
+ from typing import Any, AsyncGenerator, Callable, Dict, List, Optional, Tuple, Union
22
+ from typing_extensions import Annotated
23
+ from urllib.parse import quote
24
+
25
+ from pydantic import Field, StrictStr
26
+ from typing import List, Optional
27
+ from typing_extensions import Annotated
28
+ from wandelbots_api_client.v2_pydantic.models import ControllerDescription
29
+ from wandelbots_api_client.v2_pydantic.models import CoordinateSystem
30
+ from wandelbots_api_client.v2_pydantic.models import OrientationType
31
+ from wandelbots_api_client.v2_pydantic.models import RobotController
32
+ from wandelbots_api_client.v2_pydantic.models import RobotControllerState
33
+ from wandelbots_api_client.v2_pydantic.models import SettableRobotSystemMode
34
+ from wandelbots_api_client.v2_pydantic.models import VirtualRobotConfiguration
35
+
36
+ from wandelbots_api_client.v2_pydantic.api_client import ApiClient, RequestSerialized
37
+ from wandelbots_api_client.v2_pydantic.api_response import ApiResponse
38
+ from wandelbots_api_client.v2_pydantic.rest import RESTResponseType
39
+
40
+ class ControllerApi:
41
+ """NOTE: This class is auto generated by OpenAPI Generator
42
+ Ref: https://openapi-generator.tech
43
+
44
+ Do not edit the class manually.
45
+ """
46
+
47
+ def __init__(self, api_client=None) -> None:
48
+ if api_client is None:
49
+ api_client = ApiClient.get_default()
50
+ self.api_client = api_client
51
+
52
+ @validate_call
53
+ async def add_robot_controller(
54
+ self,
55
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
56
+ robot_controller: RobotController,
57
+ completion_timeout: Optional[Annotated[int, Field(strict=True, ge=1)]] = None,
58
+ _request_timeout: Union[
59
+ None,
60
+ Annotated[StrictFloat, Field(gt=0)],
61
+ Tuple[
62
+ Annotated[StrictFloat, Field(gt=0)],
63
+ Annotated[StrictFloat, Field(gt=0)]
64
+ ]
65
+ ] = None,
66
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
67
+ _content_type: Optional[StrictStr] = None,
68
+ _headers: Optional[Dict[StrictStr, Any]] = None,
69
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
70
+ ) -> None:
71
+ """Add Robot Controller
72
+
73
+ Add a robot controller to the cell.
74
+
75
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
76
+ :type cell: str
77
+ :param robot_controller: (required)
78
+ :type robot_controller: RobotController
79
+ :param completion_timeout:
80
+ :type completion_timeout: int
81
+ :param _request_timeout: timeout setting for this request. If one
82
+ number provided, it will be total request
83
+ timeout. It can also be a pair (tuple) of
84
+ (connection, read) timeouts.
85
+ :type _request_timeout: int, tuple(int, int), optional
86
+ :param _request_auth: set to override the auth_settings for an a single
87
+ request; this effectively ignores the
88
+ authentication in the spec for a single request.
89
+ :type _request_auth: dict, optional
90
+ :param _content_type: force content-type for the request.
91
+ :type _content_type: str, Optional
92
+ :param _headers: set to override the headers for a single
93
+ request; this effectively ignores the headers
94
+ in the spec for a single request.
95
+ :type _headers: dict, optional
96
+ :param _host_index: set to override the host_index for a single
97
+ request; this effectively ignores the host_index
98
+ in the spec for a single request.
99
+ :type _host_index: int, optional
100
+ :return: Returns the result object.
101
+ """ # noqa: E501
102
+
103
+ _param = self._add_robot_controller_serialize(
104
+ cell=cell,
105
+ robot_controller=robot_controller,
106
+ completion_timeout=completion_timeout,
107
+ _request_auth=_request_auth,
108
+ _content_type=_content_type,
109
+ _headers=_headers,
110
+ _host_index=_host_index
111
+ )
112
+
113
+ _response_types_map: Dict[str, Optional[str]] = {
114
+ '200': None,
115
+ '202': None,
116
+ '403': "Error",
117
+ '404': "Error",
118
+ '409': None,
119
+ }
120
+
121
+ response_data = await self.api_client.call_api(
122
+ *_param,
123
+ _request_timeout=_request_timeout
124
+ )
125
+ await response_data.read()
126
+ return self.api_client.response_deserialize(
127
+ response_data=response_data,
128
+ response_types_map=_response_types_map,
129
+ ).data
130
+
131
+
132
+ @validate_call
133
+ async def add_robot_controller_with_http_info(
134
+ self,
135
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
136
+ robot_controller: RobotController,
137
+ completion_timeout: Optional[Annotated[int, Field(strict=True, ge=1)]] = None,
138
+ _request_timeout: Union[
139
+ None,
140
+ Annotated[StrictFloat, Field(gt=0)],
141
+ Tuple[
142
+ Annotated[StrictFloat, Field(gt=0)],
143
+ Annotated[StrictFloat, Field(gt=0)]
144
+ ]
145
+ ] = None,
146
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
147
+ _content_type: Optional[StrictStr] = None,
148
+ _headers: Optional[Dict[StrictStr, Any]] = None,
149
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
150
+ ) -> ApiResponse[None]:
151
+ """Add Robot Controller
152
+
153
+ Add a robot controller to the cell.
154
+
155
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
156
+ :type cell: str
157
+ :param robot_controller: (required)
158
+ :type robot_controller: RobotController
159
+ :param completion_timeout:
160
+ :type completion_timeout: int
161
+ :param _request_timeout: timeout setting for this request. If one
162
+ number provided, it will be total request
163
+ timeout. It can also be a pair (tuple) of
164
+ (connection, read) timeouts.
165
+ :type _request_timeout: int, tuple(int, int), optional
166
+ :param _request_auth: set to override the auth_settings for an a single
167
+ request; this effectively ignores the
168
+ authentication in the spec for a single request.
169
+ :type _request_auth: dict, optional
170
+ :param _content_type: force content-type for the request.
171
+ :type _content_type: str, Optional
172
+ :param _headers: set to override the headers for a single
173
+ request; this effectively ignores the headers
174
+ in the spec for a single request.
175
+ :type _headers: dict, optional
176
+ :param _host_index: set to override the host_index for a single
177
+ request; this effectively ignores the host_index
178
+ in the spec for a single request.
179
+ :type _host_index: int, optional
180
+ :return: Returns the result object.
181
+ """ # noqa: E501
182
+
183
+ _param = self._add_robot_controller_serialize(
184
+ cell=cell,
185
+ robot_controller=robot_controller,
186
+ completion_timeout=completion_timeout,
187
+ _request_auth=_request_auth,
188
+ _content_type=_content_type,
189
+ _headers=_headers,
190
+ _host_index=_host_index
191
+ )
192
+
193
+ _response_types_map: Dict[str, Optional[str]] = {
194
+ '200': None,
195
+ '202': None,
196
+ '403': "Error",
197
+ '404': "Error",
198
+ '409': None,
199
+ }
200
+
201
+ response_data = await self.api_client.call_api(
202
+ *_param,
203
+ _request_timeout=_request_timeout
204
+ )
205
+ await response_data.read()
206
+ return self.api_client.response_deserialize(
207
+ response_data=response_data,
208
+ response_types_map=_response_types_map,
209
+ )
210
+
211
+
212
+ @validate_call
213
+ async def add_robot_controller_without_preload_content(
214
+ self,
215
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
216
+ robot_controller: RobotController,
217
+ completion_timeout: Optional[Annotated[int, Field(strict=True, ge=1)]] = None,
218
+ _request_timeout: Union[
219
+ None,
220
+ Annotated[StrictFloat, Field(gt=0)],
221
+ Tuple[
222
+ Annotated[StrictFloat, Field(gt=0)],
223
+ Annotated[StrictFloat, Field(gt=0)]
224
+ ]
225
+ ] = None,
226
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
227
+ _content_type: Optional[StrictStr] = None,
228
+ _headers: Optional[Dict[StrictStr, Any]] = None,
229
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
230
+ ) -> RESTResponseType:
231
+ """Add Robot Controller
232
+
233
+ Add a robot controller to the cell.
234
+
235
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
236
+ :type cell: str
237
+ :param robot_controller: (required)
238
+ :type robot_controller: RobotController
239
+ :param completion_timeout:
240
+ :type completion_timeout: int
241
+ :param _request_timeout: timeout setting for this request. If one
242
+ number provided, it will be total request
243
+ timeout. It can also be a pair (tuple) of
244
+ (connection, read) timeouts.
245
+ :type _request_timeout: int, tuple(int, int), optional
246
+ :param _request_auth: set to override the auth_settings for an a single
247
+ request; this effectively ignores the
248
+ authentication in the spec for a single request.
249
+ :type _request_auth: dict, optional
250
+ :param _content_type: force content-type for the request.
251
+ :type _content_type: str, Optional
252
+ :param _headers: set to override the headers for a single
253
+ request; this effectively ignores the headers
254
+ in the spec for a single request.
255
+ :type _headers: dict, optional
256
+ :param _host_index: set to override the host_index for a single
257
+ request; this effectively ignores the host_index
258
+ in the spec for a single request.
259
+ :type _host_index: int, optional
260
+ :return: Returns the result object.
261
+ """ # noqa: E501
262
+
263
+ _param = self._add_robot_controller_serialize(
264
+ cell=cell,
265
+ robot_controller=robot_controller,
266
+ completion_timeout=completion_timeout,
267
+ _request_auth=_request_auth,
268
+ _content_type=_content_type,
269
+ _headers=_headers,
270
+ _host_index=_host_index
271
+ )
272
+
273
+ _response_types_map: Dict[str, Optional[str]] = {
274
+ '200': None,
275
+ '202': None,
276
+ '403': "Error",
277
+ '404': "Error",
278
+ '409': None,
279
+ }
280
+
281
+ response_data = await self.api_client.call_api(
282
+ *_param,
283
+ _request_timeout=_request_timeout
284
+ )
285
+ return response_data.response
286
+
287
+
288
+ def _add_robot_controller_serialize(
289
+ self,
290
+ cell,
291
+ robot_controller,
292
+ completion_timeout,
293
+ _request_auth,
294
+ _content_type,
295
+ _headers,
296
+ _host_index,
297
+ ) -> RequestSerialized:
298
+
299
+ _host = None
300
+
301
+ _collection_formats: Dict[str, str] = {
302
+ }
303
+
304
+ _path_params: Dict[str, str] = {}
305
+ _query_params: List[Tuple[str, str]] = []
306
+ _header_params: Dict[str, Optional[str]] = _headers or {}
307
+ _form_params: List[Tuple[str, str]] = []
308
+ _files: Dict[str, Union[str, bytes]] = {}
309
+ _body_params: Optional[bytes] = None
310
+
311
+ # process the path parameters
312
+ if cell is not None:
313
+ _path_params['cell'] = cell
314
+ # process the query parameters
315
+ if completion_timeout is not None:
316
+
317
+ _query_params.append(('completion_timeout', completion_timeout))
318
+
319
+ # process the header parameters
320
+ # process the form parameters
321
+ # process the body parameter
322
+ if robot_controller is not None:
323
+ _body_params = robot_controller
324
+
325
+
326
+ # set the HTTP header `Accept`
327
+ _header_params['Accept'] = self.api_client.select_header_accept(
328
+ [
329
+ 'application/json'
330
+ ]
331
+ )
332
+
333
+ # set the HTTP header `Content-Type`
334
+ if _content_type:
335
+ _header_params['Content-Type'] = _content_type
336
+ else:
337
+ _default_content_type = (
338
+ self.api_client.select_header_content_type(
339
+ [
340
+ 'application/json'
341
+ ]
342
+ )
343
+ )
344
+ if _default_content_type is not None:
345
+ _header_params['Content-Type'] = _default_content_type
346
+
347
+ # authentication setting
348
+ _auth_settings: List[str] = [
349
+ 'BasicAuth',
350
+ 'BearerAuth'
351
+ ]
352
+
353
+ return self.api_client.param_serialize(
354
+ method='POST',
355
+ resource_path='/cells/{cell}/controllers',
356
+ path_params=_path_params,
357
+ query_params=_query_params,
358
+ header_params=_header_params,
359
+ body=_body_params,
360
+ post_params=_form_params,
361
+ files=_files,
362
+ auth_settings=_auth_settings,
363
+ collection_formats=_collection_formats,
364
+ _host=_host,
365
+ _request_auth=_request_auth
366
+ )
367
+
368
+
369
+
370
+ @validate_call
371
+ async def clear_robot_controllers(
372
+ self,
373
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
374
+ completion_timeout: Optional[Annotated[int, Field(strict=True, ge=1)]] = None,
375
+ _request_timeout: Union[
376
+ None,
377
+ Annotated[StrictFloat, Field(gt=0)],
378
+ Tuple[
379
+ Annotated[StrictFloat, Field(gt=0)],
380
+ Annotated[StrictFloat, Field(gt=0)]
381
+ ]
382
+ ] = None,
383
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
384
+ _content_type: Optional[StrictStr] = None,
385
+ _headers: Optional[Dict[StrictStr, Any]] = None,
386
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
387
+ ) -> None:
388
+ """Clear Robot Controllers
389
+
390
+ Delete all robot controllers from the cell. To replace all robot controllers in a cell, use this endpoint in combination with [addRobotController](addRobotController).
391
+
392
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
393
+ :type cell: str
394
+ :param completion_timeout:
395
+ :type completion_timeout: int
396
+ :param _request_timeout: timeout setting for this request. If one
397
+ number provided, it will be total request
398
+ timeout. It can also be a pair (tuple) of
399
+ (connection, read) timeouts.
400
+ :type _request_timeout: int, tuple(int, int), optional
401
+ :param _request_auth: set to override the auth_settings for an a single
402
+ request; this effectively ignores the
403
+ authentication in the spec for a single request.
404
+ :type _request_auth: dict, optional
405
+ :param _content_type: force content-type for the request.
406
+ :type _content_type: str, Optional
407
+ :param _headers: set to override the headers for a single
408
+ request; this effectively ignores the headers
409
+ in the spec for a single request.
410
+ :type _headers: dict, optional
411
+ :param _host_index: set to override the host_index for a single
412
+ request; this effectively ignores the host_index
413
+ in the spec for a single request.
414
+ :type _host_index: int, optional
415
+ :return: Returns the result object.
416
+ """ # noqa: E501
417
+
418
+ _param = self._clear_robot_controllers_serialize(
419
+ cell=cell,
420
+ completion_timeout=completion_timeout,
421
+ _request_auth=_request_auth,
422
+ _content_type=_content_type,
423
+ _headers=_headers,
424
+ _host_index=_host_index
425
+ )
426
+
427
+ _response_types_map: Dict[str, Optional[str]] = {
428
+ '200': None,
429
+ '202': None,
430
+ '404': "Error",
431
+ }
432
+
433
+ response_data = await self.api_client.call_api(
434
+ *_param,
435
+ _request_timeout=_request_timeout
436
+ )
437
+ await response_data.read()
438
+ return self.api_client.response_deserialize(
439
+ response_data=response_data,
440
+ response_types_map=_response_types_map,
441
+ ).data
442
+
443
+
444
+ @validate_call
445
+ async def clear_robot_controllers_with_http_info(
446
+ self,
447
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
448
+ completion_timeout: Optional[Annotated[int, Field(strict=True, ge=1)]] = None,
449
+ _request_timeout: Union[
450
+ None,
451
+ Annotated[StrictFloat, Field(gt=0)],
452
+ Tuple[
453
+ Annotated[StrictFloat, Field(gt=0)],
454
+ Annotated[StrictFloat, Field(gt=0)]
455
+ ]
456
+ ] = None,
457
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
458
+ _content_type: Optional[StrictStr] = None,
459
+ _headers: Optional[Dict[StrictStr, Any]] = None,
460
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
461
+ ) -> ApiResponse[None]:
462
+ """Clear Robot Controllers
463
+
464
+ Delete all robot controllers from the cell. To replace all robot controllers in a cell, use this endpoint in combination with [addRobotController](addRobotController).
465
+
466
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
467
+ :type cell: str
468
+ :param completion_timeout:
469
+ :type completion_timeout: int
470
+ :param _request_timeout: timeout setting for this request. If one
471
+ number provided, it will be total request
472
+ timeout. It can also be a pair (tuple) of
473
+ (connection, read) timeouts.
474
+ :type _request_timeout: int, tuple(int, int), optional
475
+ :param _request_auth: set to override the auth_settings for an a single
476
+ request; this effectively ignores the
477
+ authentication in the spec for a single request.
478
+ :type _request_auth: dict, optional
479
+ :param _content_type: force content-type for the request.
480
+ :type _content_type: str, Optional
481
+ :param _headers: set to override the headers for a single
482
+ request; this effectively ignores the headers
483
+ in the spec for a single request.
484
+ :type _headers: dict, optional
485
+ :param _host_index: set to override the host_index for a single
486
+ request; this effectively ignores the host_index
487
+ in the spec for a single request.
488
+ :type _host_index: int, optional
489
+ :return: Returns the result object.
490
+ """ # noqa: E501
491
+
492
+ _param = self._clear_robot_controllers_serialize(
493
+ cell=cell,
494
+ completion_timeout=completion_timeout,
495
+ _request_auth=_request_auth,
496
+ _content_type=_content_type,
497
+ _headers=_headers,
498
+ _host_index=_host_index
499
+ )
500
+
501
+ _response_types_map: Dict[str, Optional[str]] = {
502
+ '200': None,
503
+ '202': None,
504
+ '404': "Error",
505
+ }
506
+
507
+ response_data = await self.api_client.call_api(
508
+ *_param,
509
+ _request_timeout=_request_timeout
510
+ )
511
+ await response_data.read()
512
+ return self.api_client.response_deserialize(
513
+ response_data=response_data,
514
+ response_types_map=_response_types_map,
515
+ )
516
+
517
+
518
+ @validate_call
519
+ async def clear_robot_controllers_without_preload_content(
520
+ self,
521
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
522
+ completion_timeout: Optional[Annotated[int, Field(strict=True, ge=1)]] = None,
523
+ _request_timeout: Union[
524
+ None,
525
+ Annotated[StrictFloat, Field(gt=0)],
526
+ Tuple[
527
+ Annotated[StrictFloat, Field(gt=0)],
528
+ Annotated[StrictFloat, Field(gt=0)]
529
+ ]
530
+ ] = None,
531
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
532
+ _content_type: Optional[StrictStr] = None,
533
+ _headers: Optional[Dict[StrictStr, Any]] = None,
534
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
535
+ ) -> RESTResponseType:
536
+ """Clear Robot Controllers
537
+
538
+ Delete all robot controllers from the cell. To replace all robot controllers in a cell, use this endpoint in combination with [addRobotController](addRobotController).
539
+
540
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
541
+ :type cell: str
542
+ :param completion_timeout:
543
+ :type completion_timeout: int
544
+ :param _request_timeout: timeout setting for this request. If one
545
+ number provided, it will be total request
546
+ timeout. It can also be a pair (tuple) of
547
+ (connection, read) timeouts.
548
+ :type _request_timeout: int, tuple(int, int), optional
549
+ :param _request_auth: set to override the auth_settings for an a single
550
+ request; this effectively ignores the
551
+ authentication in the spec for a single request.
552
+ :type _request_auth: dict, optional
553
+ :param _content_type: force content-type for the request.
554
+ :type _content_type: str, Optional
555
+ :param _headers: set to override the headers for a single
556
+ request; this effectively ignores the headers
557
+ in the spec for a single request.
558
+ :type _headers: dict, optional
559
+ :param _host_index: set to override the host_index for a single
560
+ request; this effectively ignores the host_index
561
+ in the spec for a single request.
562
+ :type _host_index: int, optional
563
+ :return: Returns the result object.
564
+ """ # noqa: E501
565
+
566
+ _param = self._clear_robot_controllers_serialize(
567
+ cell=cell,
568
+ completion_timeout=completion_timeout,
569
+ _request_auth=_request_auth,
570
+ _content_type=_content_type,
571
+ _headers=_headers,
572
+ _host_index=_host_index
573
+ )
574
+
575
+ _response_types_map: Dict[str, Optional[str]] = {
576
+ '200': None,
577
+ '202': None,
578
+ '404': "Error",
579
+ }
580
+
581
+ response_data = await self.api_client.call_api(
582
+ *_param,
583
+ _request_timeout=_request_timeout
584
+ )
585
+ return response_data.response
586
+
587
+
588
+ def _clear_robot_controllers_serialize(
589
+ self,
590
+ cell,
591
+ completion_timeout,
592
+ _request_auth,
593
+ _content_type,
594
+ _headers,
595
+ _host_index,
596
+ ) -> RequestSerialized:
597
+
598
+ _host = None
599
+
600
+ _collection_formats: Dict[str, str] = {
601
+ }
602
+
603
+ _path_params: Dict[str, str] = {}
604
+ _query_params: List[Tuple[str, str]] = []
605
+ _header_params: Dict[str, Optional[str]] = _headers or {}
606
+ _form_params: List[Tuple[str, str]] = []
607
+ _files: Dict[str, Union[str, bytes]] = {}
608
+ _body_params: Optional[bytes] = None
609
+
610
+ # process the path parameters
611
+ if cell is not None:
612
+ _path_params['cell'] = cell
613
+ # process the query parameters
614
+ if completion_timeout is not None:
615
+
616
+ _query_params.append(('completion_timeout', completion_timeout))
617
+
618
+ # process the header parameters
619
+ # process the form parameters
620
+ # process the body parameter
621
+
622
+
623
+ # set the HTTP header `Accept`
624
+ _header_params['Accept'] = self.api_client.select_header_accept(
625
+ [
626
+ 'application/json'
627
+ ]
628
+ )
629
+
630
+
631
+ # authentication setting
632
+ _auth_settings: List[str] = [
633
+ 'BasicAuth',
634
+ 'BearerAuth'
635
+ ]
636
+
637
+ return self.api_client.param_serialize(
638
+ method='DELETE',
639
+ resource_path='/cells/{cell}/controllers',
640
+ path_params=_path_params,
641
+ query_params=_query_params,
642
+ header_params=_header_params,
643
+ body=_body_params,
644
+ post_params=_form_params,
645
+ files=_files,
646
+ auth_settings=_auth_settings,
647
+ collection_formats=_collection_formats,
648
+ _host=_host,
649
+ _request_auth=_request_auth
650
+ )
651
+
652
+
653
+
654
+ @validate_call
655
+ async def delete_robot_controller(
656
+ self,
657
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
658
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
659
+ completion_timeout: Optional[Annotated[int, Field(strict=True, ge=1)]] = None,
660
+ _request_timeout: Union[
661
+ None,
662
+ Annotated[StrictFloat, Field(gt=0)],
663
+ Tuple[
664
+ Annotated[StrictFloat, Field(gt=0)],
665
+ Annotated[StrictFloat, Field(gt=0)]
666
+ ]
667
+ ] = None,
668
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
669
+ _content_type: Optional[StrictStr] = None,
670
+ _headers: Optional[Dict[StrictStr, Any]] = None,
671
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
672
+ ) -> None:
673
+ """Delete Robot Controller
674
+
675
+ Delete a robot controller from the cell.
676
+
677
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
678
+ :type cell: str
679
+ :param controller: Unique identifier to address a controller in the cell. (required)
680
+ :type controller: str
681
+ :param completion_timeout:
682
+ :type completion_timeout: int
683
+ :param _request_timeout: timeout setting for this request. If one
684
+ number provided, it will be total request
685
+ timeout. It can also be a pair (tuple) of
686
+ (connection, read) timeouts.
687
+ :type _request_timeout: int, tuple(int, int), optional
688
+ :param _request_auth: set to override the auth_settings for an a single
689
+ request; this effectively ignores the
690
+ authentication in the spec for a single request.
691
+ :type _request_auth: dict, optional
692
+ :param _content_type: force content-type for the request.
693
+ :type _content_type: str, Optional
694
+ :param _headers: set to override the headers for a single
695
+ request; this effectively ignores the headers
696
+ in the spec for a single request.
697
+ :type _headers: dict, optional
698
+ :param _host_index: set to override the host_index for a single
699
+ request; this effectively ignores the host_index
700
+ in the spec for a single request.
701
+ :type _host_index: int, optional
702
+ :return: Returns the result object.
703
+ """ # noqa: E501
704
+
705
+ _param = self._delete_robot_controller_serialize(
706
+ cell=cell,
707
+ controller=controller,
708
+ completion_timeout=completion_timeout,
709
+ _request_auth=_request_auth,
710
+ _content_type=_content_type,
711
+ _headers=_headers,
712
+ _host_index=_host_index
713
+ )
714
+
715
+ _response_types_map: Dict[str, Optional[str]] = {
716
+ '200': None,
717
+ '202': None,
718
+ '404': "Error",
719
+ }
720
+
721
+ response_data = await self.api_client.call_api(
722
+ *_param,
723
+ _request_timeout=_request_timeout
724
+ )
725
+ await response_data.read()
726
+ return self.api_client.response_deserialize(
727
+ response_data=response_data,
728
+ response_types_map=_response_types_map,
729
+ ).data
730
+
731
+
732
+ @validate_call
733
+ async def delete_robot_controller_with_http_info(
734
+ self,
735
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
736
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
737
+ completion_timeout: Optional[Annotated[int, Field(strict=True, ge=1)]] = None,
738
+ _request_timeout: Union[
739
+ None,
740
+ Annotated[StrictFloat, Field(gt=0)],
741
+ Tuple[
742
+ Annotated[StrictFloat, Field(gt=0)],
743
+ Annotated[StrictFloat, Field(gt=0)]
744
+ ]
745
+ ] = None,
746
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
747
+ _content_type: Optional[StrictStr] = None,
748
+ _headers: Optional[Dict[StrictStr, Any]] = None,
749
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
750
+ ) -> ApiResponse[None]:
751
+ """Delete Robot Controller
752
+
753
+ Delete a robot controller from the cell.
754
+
755
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
756
+ :type cell: str
757
+ :param controller: Unique identifier to address a controller in the cell. (required)
758
+ :type controller: str
759
+ :param completion_timeout:
760
+ :type completion_timeout: int
761
+ :param _request_timeout: timeout setting for this request. If one
762
+ number provided, it will be total request
763
+ timeout. It can also be a pair (tuple) of
764
+ (connection, read) timeouts.
765
+ :type _request_timeout: int, tuple(int, int), optional
766
+ :param _request_auth: set to override the auth_settings for an a single
767
+ request; this effectively ignores the
768
+ authentication in the spec for a single request.
769
+ :type _request_auth: dict, optional
770
+ :param _content_type: force content-type for the request.
771
+ :type _content_type: str, Optional
772
+ :param _headers: set to override the headers for a single
773
+ request; this effectively ignores the headers
774
+ in the spec for a single request.
775
+ :type _headers: dict, optional
776
+ :param _host_index: set to override the host_index for a single
777
+ request; this effectively ignores the host_index
778
+ in the spec for a single request.
779
+ :type _host_index: int, optional
780
+ :return: Returns the result object.
781
+ """ # noqa: E501
782
+
783
+ _param = self._delete_robot_controller_serialize(
784
+ cell=cell,
785
+ controller=controller,
786
+ completion_timeout=completion_timeout,
787
+ _request_auth=_request_auth,
788
+ _content_type=_content_type,
789
+ _headers=_headers,
790
+ _host_index=_host_index
791
+ )
792
+
793
+ _response_types_map: Dict[str, Optional[str]] = {
794
+ '200': None,
795
+ '202': None,
796
+ '404': "Error",
797
+ }
798
+
799
+ response_data = await self.api_client.call_api(
800
+ *_param,
801
+ _request_timeout=_request_timeout
802
+ )
803
+ await response_data.read()
804
+ return self.api_client.response_deserialize(
805
+ response_data=response_data,
806
+ response_types_map=_response_types_map,
807
+ )
808
+
809
+
810
+ @validate_call
811
+ async def delete_robot_controller_without_preload_content(
812
+ self,
813
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
814
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
815
+ completion_timeout: Optional[Annotated[int, Field(strict=True, ge=1)]] = None,
816
+ _request_timeout: Union[
817
+ None,
818
+ Annotated[StrictFloat, Field(gt=0)],
819
+ Tuple[
820
+ Annotated[StrictFloat, Field(gt=0)],
821
+ Annotated[StrictFloat, Field(gt=0)]
822
+ ]
823
+ ] = None,
824
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
825
+ _content_type: Optional[StrictStr] = None,
826
+ _headers: Optional[Dict[StrictStr, Any]] = None,
827
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
828
+ ) -> RESTResponseType:
829
+ """Delete Robot Controller
830
+
831
+ Delete a robot controller from the cell.
832
+
833
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
834
+ :type cell: str
835
+ :param controller: Unique identifier to address a controller in the cell. (required)
836
+ :type controller: str
837
+ :param completion_timeout:
838
+ :type completion_timeout: int
839
+ :param _request_timeout: timeout setting for this request. If one
840
+ number provided, it will be total request
841
+ timeout. It can also be a pair (tuple) of
842
+ (connection, read) timeouts.
843
+ :type _request_timeout: int, tuple(int, int), optional
844
+ :param _request_auth: set to override the auth_settings for an a single
845
+ request; this effectively ignores the
846
+ authentication in the spec for a single request.
847
+ :type _request_auth: dict, optional
848
+ :param _content_type: force content-type for the request.
849
+ :type _content_type: str, Optional
850
+ :param _headers: set to override the headers for a single
851
+ request; this effectively ignores the headers
852
+ in the spec for a single request.
853
+ :type _headers: dict, optional
854
+ :param _host_index: set to override the host_index for a single
855
+ request; this effectively ignores the host_index
856
+ in the spec for a single request.
857
+ :type _host_index: int, optional
858
+ :return: Returns the result object.
859
+ """ # noqa: E501
860
+
861
+ _param = self._delete_robot_controller_serialize(
862
+ cell=cell,
863
+ controller=controller,
864
+ completion_timeout=completion_timeout,
865
+ _request_auth=_request_auth,
866
+ _content_type=_content_type,
867
+ _headers=_headers,
868
+ _host_index=_host_index
869
+ )
870
+
871
+ _response_types_map: Dict[str, Optional[str]] = {
872
+ '200': None,
873
+ '202': None,
874
+ '404': "Error",
875
+ }
876
+
877
+ response_data = await self.api_client.call_api(
878
+ *_param,
879
+ _request_timeout=_request_timeout
880
+ )
881
+ return response_data.response
882
+
883
+
884
+ def _delete_robot_controller_serialize(
885
+ self,
886
+ cell,
887
+ controller,
888
+ completion_timeout,
889
+ _request_auth,
890
+ _content_type,
891
+ _headers,
892
+ _host_index,
893
+ ) -> RequestSerialized:
894
+
895
+ _host = None
896
+
897
+ _collection_formats: Dict[str, str] = {
898
+ }
899
+
900
+ _path_params: Dict[str, str] = {}
901
+ _query_params: List[Tuple[str, str]] = []
902
+ _header_params: Dict[str, Optional[str]] = _headers or {}
903
+ _form_params: List[Tuple[str, str]] = []
904
+ _files: Dict[str, Union[str, bytes]] = {}
905
+ _body_params: Optional[bytes] = None
906
+
907
+ # process the path parameters
908
+ if cell is not None:
909
+ _path_params['cell'] = cell
910
+ if controller is not None:
911
+ _path_params['controller'] = controller
912
+ # process the query parameters
913
+ if completion_timeout is not None:
914
+
915
+ _query_params.append(('completion_timeout', completion_timeout))
916
+
917
+ # process the header parameters
918
+ # process the form parameters
919
+ # process the body parameter
920
+
921
+
922
+ # set the HTTP header `Accept`
923
+ _header_params['Accept'] = self.api_client.select_header_accept(
924
+ [
925
+ 'application/json'
926
+ ]
927
+ )
928
+
929
+
930
+ # authentication setting
931
+ _auth_settings: List[str] = [
932
+ 'BasicAuth',
933
+ 'BearerAuth'
934
+ ]
935
+
936
+ return self.api_client.param_serialize(
937
+ method='DELETE',
938
+ resource_path='/cells/{cell}/controllers/{controller}',
939
+ path_params=_path_params,
940
+ query_params=_query_params,
941
+ header_params=_header_params,
942
+ body=_body_params,
943
+ post_params=_form_params,
944
+ files=_files,
945
+ auth_settings=_auth_settings,
946
+ collection_formats=_collection_formats,
947
+ _host=_host,
948
+ _request_auth=_request_auth
949
+ )
950
+
951
+
952
+
953
+ @validate_call
954
+ async def get_controller_description(
955
+ self,
956
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
957
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
958
+ _request_timeout: Union[
959
+ None,
960
+ Annotated[StrictFloat, Field(gt=0)],
961
+ Tuple[
962
+ Annotated[StrictFloat, Field(gt=0)],
963
+ Annotated[StrictFloat, Field(gt=0)]
964
+ ]
965
+ ] = None,
966
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
967
+ _content_type: Optional[StrictStr] = None,
968
+ _headers: Optional[Dict[StrictStr, Any]] = None,
969
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
970
+ ) -> ControllerDescription:
971
+ """Description
972
+
973
+ Get description of a configured robot controller including a list of connected motion group identifiers. Use [getMotionGroupDescription](getMotionGroupDescription) to get more information about the motion group.
974
+
975
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
976
+ :type cell: str
977
+ :param controller: Unique identifier to address a controller in the cell. (required)
978
+ :type controller: str
979
+ :param _request_timeout: timeout setting for this request. If one
980
+ number provided, it will be total request
981
+ timeout. It can also be a pair (tuple) of
982
+ (connection, read) timeouts.
983
+ :type _request_timeout: int, tuple(int, int), optional
984
+ :param _request_auth: set to override the auth_settings for an a single
985
+ request; this effectively ignores the
986
+ authentication in the spec for a single request.
987
+ :type _request_auth: dict, optional
988
+ :param _content_type: force content-type for the request.
989
+ :type _content_type: str, Optional
990
+ :param _headers: set to override the headers for a single
991
+ request; this effectively ignores the headers
992
+ in the spec for a single request.
993
+ :type _headers: dict, optional
994
+ :param _host_index: set to override the host_index for a single
995
+ request; this effectively ignores the host_index
996
+ in the spec for a single request.
997
+ :type _host_index: int, optional
998
+ :return: Returns the result object.
999
+ """ # noqa: E501
1000
+
1001
+ _param = self._get_controller_description_serialize(
1002
+ cell=cell,
1003
+ controller=controller,
1004
+ _request_auth=_request_auth,
1005
+ _content_type=_content_type,
1006
+ _headers=_headers,
1007
+ _host_index=_host_index
1008
+ )
1009
+
1010
+ _response_types_map: Dict[str, Optional[str]] = {
1011
+ '200': "ControllerDescription",
1012
+ '400': "Error",
1013
+ '404': "Error",
1014
+ }
1015
+
1016
+ response_data = await self.api_client.call_api(
1017
+ *_param,
1018
+ _request_timeout=_request_timeout
1019
+ )
1020
+ await response_data.read()
1021
+ return self.api_client.response_deserialize(
1022
+ response_data=response_data,
1023
+ response_types_map=_response_types_map,
1024
+ ).data
1025
+
1026
+
1027
+ @validate_call
1028
+ async def get_controller_description_with_http_info(
1029
+ self,
1030
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
1031
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
1032
+ _request_timeout: Union[
1033
+ None,
1034
+ Annotated[StrictFloat, Field(gt=0)],
1035
+ Tuple[
1036
+ Annotated[StrictFloat, Field(gt=0)],
1037
+ Annotated[StrictFloat, Field(gt=0)]
1038
+ ]
1039
+ ] = None,
1040
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1041
+ _content_type: Optional[StrictStr] = None,
1042
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1043
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1044
+ ) -> ApiResponse[ControllerDescription]:
1045
+ """Description
1046
+
1047
+ Get description of a configured robot controller including a list of connected motion group identifiers. Use [getMotionGroupDescription](getMotionGroupDescription) to get more information about the motion group.
1048
+
1049
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
1050
+ :type cell: str
1051
+ :param controller: Unique identifier to address a controller in the cell. (required)
1052
+ :type controller: str
1053
+ :param _request_timeout: timeout setting for this request. If one
1054
+ number provided, it will be total request
1055
+ timeout. It can also be a pair (tuple) of
1056
+ (connection, read) timeouts.
1057
+ :type _request_timeout: int, tuple(int, int), optional
1058
+ :param _request_auth: set to override the auth_settings for an a single
1059
+ request; this effectively ignores the
1060
+ authentication in the spec for a single request.
1061
+ :type _request_auth: dict, optional
1062
+ :param _content_type: force content-type for the request.
1063
+ :type _content_type: str, Optional
1064
+ :param _headers: set to override the headers for a single
1065
+ request; this effectively ignores the headers
1066
+ in the spec for a single request.
1067
+ :type _headers: dict, optional
1068
+ :param _host_index: set to override the host_index for a single
1069
+ request; this effectively ignores the host_index
1070
+ in the spec for a single request.
1071
+ :type _host_index: int, optional
1072
+ :return: Returns the result object.
1073
+ """ # noqa: E501
1074
+
1075
+ _param = self._get_controller_description_serialize(
1076
+ cell=cell,
1077
+ controller=controller,
1078
+ _request_auth=_request_auth,
1079
+ _content_type=_content_type,
1080
+ _headers=_headers,
1081
+ _host_index=_host_index
1082
+ )
1083
+
1084
+ _response_types_map: Dict[str, Optional[str]] = {
1085
+ '200': "ControllerDescription",
1086
+ '400': "Error",
1087
+ '404': "Error",
1088
+ }
1089
+
1090
+ response_data = await self.api_client.call_api(
1091
+ *_param,
1092
+ _request_timeout=_request_timeout
1093
+ )
1094
+ await response_data.read()
1095
+ return self.api_client.response_deserialize(
1096
+ response_data=response_data,
1097
+ response_types_map=_response_types_map,
1098
+ )
1099
+
1100
+
1101
+ @validate_call
1102
+ async def get_controller_description_without_preload_content(
1103
+ self,
1104
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
1105
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
1106
+ _request_timeout: Union[
1107
+ None,
1108
+ Annotated[StrictFloat, Field(gt=0)],
1109
+ Tuple[
1110
+ Annotated[StrictFloat, Field(gt=0)],
1111
+ Annotated[StrictFloat, Field(gt=0)]
1112
+ ]
1113
+ ] = None,
1114
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1115
+ _content_type: Optional[StrictStr] = None,
1116
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1117
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1118
+ ) -> RESTResponseType:
1119
+ """Description
1120
+
1121
+ Get description of a configured robot controller including a list of connected motion group identifiers. Use [getMotionGroupDescription](getMotionGroupDescription) to get more information about the motion group.
1122
+
1123
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
1124
+ :type cell: str
1125
+ :param controller: Unique identifier to address a controller in the cell. (required)
1126
+ :type controller: str
1127
+ :param _request_timeout: timeout setting for this request. If one
1128
+ number provided, it will be total request
1129
+ timeout. It can also be a pair (tuple) of
1130
+ (connection, read) timeouts.
1131
+ :type _request_timeout: int, tuple(int, int), optional
1132
+ :param _request_auth: set to override the auth_settings for an a single
1133
+ request; this effectively ignores the
1134
+ authentication in the spec for a single request.
1135
+ :type _request_auth: dict, optional
1136
+ :param _content_type: force content-type for the request.
1137
+ :type _content_type: str, Optional
1138
+ :param _headers: set to override the headers for a single
1139
+ request; this effectively ignores the headers
1140
+ in the spec for a single request.
1141
+ :type _headers: dict, optional
1142
+ :param _host_index: set to override the host_index for a single
1143
+ request; this effectively ignores the host_index
1144
+ in the spec for a single request.
1145
+ :type _host_index: int, optional
1146
+ :return: Returns the result object.
1147
+ """ # noqa: E501
1148
+
1149
+ _param = self._get_controller_description_serialize(
1150
+ cell=cell,
1151
+ controller=controller,
1152
+ _request_auth=_request_auth,
1153
+ _content_type=_content_type,
1154
+ _headers=_headers,
1155
+ _host_index=_host_index
1156
+ )
1157
+
1158
+ _response_types_map: Dict[str, Optional[str]] = {
1159
+ '200': "ControllerDescription",
1160
+ '400': "Error",
1161
+ '404': "Error",
1162
+ }
1163
+
1164
+ response_data = await self.api_client.call_api(
1165
+ *_param,
1166
+ _request_timeout=_request_timeout
1167
+ )
1168
+ return response_data.response
1169
+
1170
+
1171
+ def _get_controller_description_serialize(
1172
+ self,
1173
+ cell,
1174
+ controller,
1175
+ _request_auth,
1176
+ _content_type,
1177
+ _headers,
1178
+ _host_index,
1179
+ ) -> RequestSerialized:
1180
+
1181
+ _host = None
1182
+
1183
+ _collection_formats: Dict[str, str] = {
1184
+ }
1185
+
1186
+ _path_params: Dict[str, str] = {}
1187
+ _query_params: List[Tuple[str, str]] = []
1188
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1189
+ _form_params: List[Tuple[str, str]] = []
1190
+ _files: Dict[str, Union[str, bytes]] = {}
1191
+ _body_params: Optional[bytes] = None
1192
+
1193
+ # process the path parameters
1194
+ if cell is not None:
1195
+ _path_params['cell'] = cell
1196
+ if controller is not None:
1197
+ _path_params['controller'] = controller
1198
+ # process the query parameters
1199
+ # process the header parameters
1200
+ # process the form parameters
1201
+ # process the body parameter
1202
+
1203
+
1204
+ # set the HTTP header `Accept`
1205
+ _header_params['Accept'] = self.api_client.select_header_accept(
1206
+ [
1207
+ 'application/json'
1208
+ ]
1209
+ )
1210
+
1211
+
1212
+ # authentication setting
1213
+ _auth_settings: List[str] = [
1214
+ 'BasicAuth',
1215
+ 'BearerAuth'
1216
+ ]
1217
+
1218
+ return self.api_client.param_serialize(
1219
+ method='GET',
1220
+ resource_path='/cells/{cell}/controllers/{controller}/description',
1221
+ path_params=_path_params,
1222
+ query_params=_query_params,
1223
+ header_params=_header_params,
1224
+ body=_body_params,
1225
+ post_params=_form_params,
1226
+ files=_files,
1227
+ auth_settings=_auth_settings,
1228
+ collection_formats=_collection_formats,
1229
+ _host=_host,
1230
+ _request_auth=_request_auth
1231
+ )
1232
+
1233
+
1234
+
1235
+ @validate_call
1236
+ async def get_coordinate_system(
1237
+ self,
1238
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
1239
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
1240
+ coordinate_system: Annotated[StrictStr, Field(description="Unique identifier addressing a coordinate system.")],
1241
+ orientation_type: Optional[OrientationType] = None,
1242
+ _request_timeout: Union[
1243
+ None,
1244
+ Annotated[StrictFloat, Field(gt=0)],
1245
+ Tuple[
1246
+ Annotated[StrictFloat, Field(gt=0)],
1247
+ Annotated[StrictFloat, Field(gt=0)]
1248
+ ]
1249
+ ] = None,
1250
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1251
+ _content_type: Optional[StrictStr] = None,
1252
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1253
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1254
+ ) -> CoordinateSystem:
1255
+ """Coordinate System
1256
+
1257
+ Request a coordinate system specification for a given identifier. Use parameter `orientation_type` to get the orientation part of the transformation offset of the coordinate system returned in the requested orientation notation. If parameter `orientation_type` is not set, the orientation part of the transformation offset of the coordinate system is returned in rotation vector notation. The coordinate systems from the robot controller are loaded when the motion group associated with the coordinate system is activated. With deactivation of the motion group, the associated coordinate systems are removed from NOVA. The unique identifier of the coordinate systems from the robot controllers are suffixed with `On` + the unique identifier of the robot controller.
1258
+
1259
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
1260
+ :type cell: str
1261
+ :param controller: Unique identifier to address a controller in the cell. (required)
1262
+ :type controller: str
1263
+ :param coordinate_system: Unique identifier addressing a coordinate system. (required)
1264
+ :type coordinate_system: str
1265
+ :param orientation_type:
1266
+ :type orientation_type: OrientationType
1267
+ :param _request_timeout: timeout setting for this request. If one
1268
+ number provided, it will be total request
1269
+ timeout. It can also be a pair (tuple) of
1270
+ (connection, read) timeouts.
1271
+ :type _request_timeout: int, tuple(int, int), optional
1272
+ :param _request_auth: set to override the auth_settings for an a single
1273
+ request; this effectively ignores the
1274
+ authentication in the spec for a single request.
1275
+ :type _request_auth: dict, optional
1276
+ :param _content_type: force content-type for the request.
1277
+ :type _content_type: str, Optional
1278
+ :param _headers: set to override the headers for a single
1279
+ request; this effectively ignores the headers
1280
+ in the spec for a single request.
1281
+ :type _headers: dict, optional
1282
+ :param _host_index: set to override the host_index for a single
1283
+ request; this effectively ignores the host_index
1284
+ in the spec for a single request.
1285
+ :type _host_index: int, optional
1286
+ :return: Returns the result object.
1287
+ """ # noqa: E501
1288
+
1289
+ _param = self._get_coordinate_system_serialize(
1290
+ cell=cell,
1291
+ controller=controller,
1292
+ coordinate_system=coordinate_system,
1293
+ orientation_type=orientation_type,
1294
+ _request_auth=_request_auth,
1295
+ _content_type=_content_type,
1296
+ _headers=_headers,
1297
+ _host_index=_host_index
1298
+ )
1299
+
1300
+ _response_types_map: Dict[str, Optional[str]] = {
1301
+ '200': "CoordinateSystem",
1302
+ '400': "Error",
1303
+ '404': "Error",
1304
+ }
1305
+
1306
+ response_data = await self.api_client.call_api(
1307
+ *_param,
1308
+ _request_timeout=_request_timeout
1309
+ )
1310
+ await response_data.read()
1311
+ return self.api_client.response_deserialize(
1312
+ response_data=response_data,
1313
+ response_types_map=_response_types_map,
1314
+ ).data
1315
+
1316
+
1317
+ @validate_call
1318
+ async def get_coordinate_system_with_http_info(
1319
+ self,
1320
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
1321
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
1322
+ coordinate_system: Annotated[StrictStr, Field(description="Unique identifier addressing a coordinate system.")],
1323
+ orientation_type: Optional[OrientationType] = None,
1324
+ _request_timeout: Union[
1325
+ None,
1326
+ Annotated[StrictFloat, Field(gt=0)],
1327
+ Tuple[
1328
+ Annotated[StrictFloat, Field(gt=0)],
1329
+ Annotated[StrictFloat, Field(gt=0)]
1330
+ ]
1331
+ ] = None,
1332
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1333
+ _content_type: Optional[StrictStr] = None,
1334
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1335
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1336
+ ) -> ApiResponse[CoordinateSystem]:
1337
+ """Coordinate System
1338
+
1339
+ Request a coordinate system specification for a given identifier. Use parameter `orientation_type` to get the orientation part of the transformation offset of the coordinate system returned in the requested orientation notation. If parameter `orientation_type` is not set, the orientation part of the transformation offset of the coordinate system is returned in rotation vector notation. The coordinate systems from the robot controller are loaded when the motion group associated with the coordinate system is activated. With deactivation of the motion group, the associated coordinate systems are removed from NOVA. The unique identifier of the coordinate systems from the robot controllers are suffixed with `On` + the unique identifier of the robot controller.
1340
+
1341
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
1342
+ :type cell: str
1343
+ :param controller: Unique identifier to address a controller in the cell. (required)
1344
+ :type controller: str
1345
+ :param coordinate_system: Unique identifier addressing a coordinate system. (required)
1346
+ :type coordinate_system: str
1347
+ :param orientation_type:
1348
+ :type orientation_type: OrientationType
1349
+ :param _request_timeout: timeout setting for this request. If one
1350
+ number provided, it will be total request
1351
+ timeout. It can also be a pair (tuple) of
1352
+ (connection, read) timeouts.
1353
+ :type _request_timeout: int, tuple(int, int), optional
1354
+ :param _request_auth: set to override the auth_settings for an a single
1355
+ request; this effectively ignores the
1356
+ authentication in the spec for a single request.
1357
+ :type _request_auth: dict, optional
1358
+ :param _content_type: force content-type for the request.
1359
+ :type _content_type: str, Optional
1360
+ :param _headers: set to override the headers for a single
1361
+ request; this effectively ignores the headers
1362
+ in the spec for a single request.
1363
+ :type _headers: dict, optional
1364
+ :param _host_index: set to override the host_index for a single
1365
+ request; this effectively ignores the host_index
1366
+ in the spec for a single request.
1367
+ :type _host_index: int, optional
1368
+ :return: Returns the result object.
1369
+ """ # noqa: E501
1370
+
1371
+ _param = self._get_coordinate_system_serialize(
1372
+ cell=cell,
1373
+ controller=controller,
1374
+ coordinate_system=coordinate_system,
1375
+ orientation_type=orientation_type,
1376
+ _request_auth=_request_auth,
1377
+ _content_type=_content_type,
1378
+ _headers=_headers,
1379
+ _host_index=_host_index
1380
+ )
1381
+
1382
+ _response_types_map: Dict[str, Optional[str]] = {
1383
+ '200': "CoordinateSystem",
1384
+ '400': "Error",
1385
+ '404': "Error",
1386
+ }
1387
+
1388
+ response_data = await self.api_client.call_api(
1389
+ *_param,
1390
+ _request_timeout=_request_timeout
1391
+ )
1392
+ await response_data.read()
1393
+ return self.api_client.response_deserialize(
1394
+ response_data=response_data,
1395
+ response_types_map=_response_types_map,
1396
+ )
1397
+
1398
+
1399
+ @validate_call
1400
+ async def get_coordinate_system_without_preload_content(
1401
+ self,
1402
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
1403
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
1404
+ coordinate_system: Annotated[StrictStr, Field(description="Unique identifier addressing a coordinate system.")],
1405
+ orientation_type: Optional[OrientationType] = None,
1406
+ _request_timeout: Union[
1407
+ None,
1408
+ Annotated[StrictFloat, Field(gt=0)],
1409
+ Tuple[
1410
+ Annotated[StrictFloat, Field(gt=0)],
1411
+ Annotated[StrictFloat, Field(gt=0)]
1412
+ ]
1413
+ ] = None,
1414
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1415
+ _content_type: Optional[StrictStr] = None,
1416
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1417
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1418
+ ) -> RESTResponseType:
1419
+ """Coordinate System
1420
+
1421
+ Request a coordinate system specification for a given identifier. Use parameter `orientation_type` to get the orientation part of the transformation offset of the coordinate system returned in the requested orientation notation. If parameter `orientation_type` is not set, the orientation part of the transformation offset of the coordinate system is returned in rotation vector notation. The coordinate systems from the robot controller are loaded when the motion group associated with the coordinate system is activated. With deactivation of the motion group, the associated coordinate systems are removed from NOVA. The unique identifier of the coordinate systems from the robot controllers are suffixed with `On` + the unique identifier of the robot controller.
1422
+
1423
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
1424
+ :type cell: str
1425
+ :param controller: Unique identifier to address a controller in the cell. (required)
1426
+ :type controller: str
1427
+ :param coordinate_system: Unique identifier addressing a coordinate system. (required)
1428
+ :type coordinate_system: str
1429
+ :param orientation_type:
1430
+ :type orientation_type: OrientationType
1431
+ :param _request_timeout: timeout setting for this request. If one
1432
+ number provided, it will be total request
1433
+ timeout. It can also be a pair (tuple) of
1434
+ (connection, read) timeouts.
1435
+ :type _request_timeout: int, tuple(int, int), optional
1436
+ :param _request_auth: set to override the auth_settings for an a single
1437
+ request; this effectively ignores the
1438
+ authentication in the spec for a single request.
1439
+ :type _request_auth: dict, optional
1440
+ :param _content_type: force content-type for the request.
1441
+ :type _content_type: str, Optional
1442
+ :param _headers: set to override the headers for a single
1443
+ request; this effectively ignores the headers
1444
+ in the spec for a single request.
1445
+ :type _headers: dict, optional
1446
+ :param _host_index: set to override the host_index for a single
1447
+ request; this effectively ignores the host_index
1448
+ in the spec for a single request.
1449
+ :type _host_index: int, optional
1450
+ :return: Returns the result object.
1451
+ """ # noqa: E501
1452
+
1453
+ _param = self._get_coordinate_system_serialize(
1454
+ cell=cell,
1455
+ controller=controller,
1456
+ coordinate_system=coordinate_system,
1457
+ orientation_type=orientation_type,
1458
+ _request_auth=_request_auth,
1459
+ _content_type=_content_type,
1460
+ _headers=_headers,
1461
+ _host_index=_host_index
1462
+ )
1463
+
1464
+ _response_types_map: Dict[str, Optional[str]] = {
1465
+ '200': "CoordinateSystem",
1466
+ '400': "Error",
1467
+ '404': "Error",
1468
+ }
1469
+
1470
+ response_data = await self.api_client.call_api(
1471
+ *_param,
1472
+ _request_timeout=_request_timeout
1473
+ )
1474
+ return response_data.response
1475
+
1476
+
1477
+ def _get_coordinate_system_serialize(
1478
+ self,
1479
+ cell,
1480
+ controller,
1481
+ coordinate_system,
1482
+ orientation_type,
1483
+ _request_auth,
1484
+ _content_type,
1485
+ _headers,
1486
+ _host_index,
1487
+ ) -> RequestSerialized:
1488
+
1489
+ _host = None
1490
+
1491
+ _collection_formats: Dict[str, str] = {
1492
+ }
1493
+
1494
+ _path_params: Dict[str, str] = {}
1495
+ _query_params: List[Tuple[str, str]] = []
1496
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1497
+ _form_params: List[Tuple[str, str]] = []
1498
+ _files: Dict[str, Union[str, bytes]] = {}
1499
+ _body_params: Optional[bytes] = None
1500
+
1501
+ # process the path parameters
1502
+ if cell is not None:
1503
+ _path_params['cell'] = cell
1504
+ if controller is not None:
1505
+ _path_params['controller'] = controller
1506
+ if coordinate_system is not None:
1507
+ _path_params['coordinate-system'] = coordinate_system
1508
+ # process the query parameters
1509
+ if orientation_type is not None:
1510
+
1511
+ _query_params.append(('orientation_type', orientation_type.value))
1512
+
1513
+ # process the header parameters
1514
+ # process the form parameters
1515
+ # process the body parameter
1516
+
1517
+
1518
+ # set the HTTP header `Accept`
1519
+ _header_params['Accept'] = self.api_client.select_header_accept(
1520
+ [
1521
+ 'application/json'
1522
+ ]
1523
+ )
1524
+
1525
+
1526
+ # authentication setting
1527
+ _auth_settings: List[str] = [
1528
+ 'BasicAuth',
1529
+ 'BearerAuth'
1530
+ ]
1531
+
1532
+ return self.api_client.param_serialize(
1533
+ method='GET',
1534
+ resource_path='/cells/{cell}/controllers/{controller}/coordinate-systems/{coordinate-system}',
1535
+ path_params=_path_params,
1536
+ query_params=_query_params,
1537
+ header_params=_header_params,
1538
+ body=_body_params,
1539
+ post_params=_form_params,
1540
+ files=_files,
1541
+ auth_settings=_auth_settings,
1542
+ collection_formats=_collection_formats,
1543
+ _host=_host,
1544
+ _request_auth=_request_auth
1545
+ )
1546
+
1547
+
1548
+
1549
+ @validate_call
1550
+ async def get_current_robot_controller_state(
1551
+ self,
1552
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
1553
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
1554
+ _request_timeout: Union[
1555
+ None,
1556
+ Annotated[StrictFloat, Field(gt=0)],
1557
+ Tuple[
1558
+ Annotated[StrictFloat, Field(gt=0)],
1559
+ Annotated[StrictFloat, Field(gt=0)]
1560
+ ]
1561
+ ] = None,
1562
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1563
+ _content_type: Optional[StrictStr] = None,
1564
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1565
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1566
+ ) -> RobotControllerState:
1567
+ """State
1568
+
1569
+ Get the current state of a robot controller.
1570
+
1571
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
1572
+ :type cell: str
1573
+ :param controller: Unique identifier to address a controller in the cell. (required)
1574
+ :type controller: str
1575
+ :param _request_timeout: timeout setting for this request. If one
1576
+ number provided, it will be total request
1577
+ timeout. It can also be a pair (tuple) of
1578
+ (connection, read) timeouts.
1579
+ :type _request_timeout: int, tuple(int, int), optional
1580
+ :param _request_auth: set to override the auth_settings for an a single
1581
+ request; this effectively ignores the
1582
+ authentication in the spec for a single request.
1583
+ :type _request_auth: dict, optional
1584
+ :param _content_type: force content-type for the request.
1585
+ :type _content_type: str, Optional
1586
+ :param _headers: set to override the headers for a single
1587
+ request; this effectively ignores the headers
1588
+ in the spec for a single request.
1589
+ :type _headers: dict, optional
1590
+ :param _host_index: set to override the host_index for a single
1591
+ request; this effectively ignores the host_index
1592
+ in the spec for a single request.
1593
+ :type _host_index: int, optional
1594
+ :return: Returns the result object.
1595
+ """ # noqa: E501
1596
+
1597
+ _param = self._get_current_robot_controller_state_serialize(
1598
+ cell=cell,
1599
+ controller=controller,
1600
+ _request_auth=_request_auth,
1601
+ _content_type=_content_type,
1602
+ _headers=_headers,
1603
+ _host_index=_host_index
1604
+ )
1605
+
1606
+ _response_types_map: Dict[str, Optional[str]] = {
1607
+ '200': "RobotControllerState",
1608
+ '400': "Error",
1609
+ '404': "Error",
1610
+ }
1611
+
1612
+ response_data = await self.api_client.call_api(
1613
+ *_param,
1614
+ _request_timeout=_request_timeout
1615
+ )
1616
+ await response_data.read()
1617
+ return self.api_client.response_deserialize(
1618
+ response_data=response_data,
1619
+ response_types_map=_response_types_map,
1620
+ ).data
1621
+
1622
+
1623
+ @validate_call
1624
+ async def get_current_robot_controller_state_with_http_info(
1625
+ self,
1626
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
1627
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
1628
+ _request_timeout: Union[
1629
+ None,
1630
+ Annotated[StrictFloat, Field(gt=0)],
1631
+ Tuple[
1632
+ Annotated[StrictFloat, Field(gt=0)],
1633
+ Annotated[StrictFloat, Field(gt=0)]
1634
+ ]
1635
+ ] = None,
1636
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1637
+ _content_type: Optional[StrictStr] = None,
1638
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1639
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1640
+ ) -> ApiResponse[RobotControllerState]:
1641
+ """State
1642
+
1643
+ Get the current state of a robot controller.
1644
+
1645
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
1646
+ :type cell: str
1647
+ :param controller: Unique identifier to address a controller in the cell. (required)
1648
+ :type controller: str
1649
+ :param _request_timeout: timeout setting for this request. If one
1650
+ number provided, it will be total request
1651
+ timeout. It can also be a pair (tuple) of
1652
+ (connection, read) timeouts.
1653
+ :type _request_timeout: int, tuple(int, int), optional
1654
+ :param _request_auth: set to override the auth_settings for an a single
1655
+ request; this effectively ignores the
1656
+ authentication in the spec for a single request.
1657
+ :type _request_auth: dict, optional
1658
+ :param _content_type: force content-type for the request.
1659
+ :type _content_type: str, Optional
1660
+ :param _headers: set to override the headers for a single
1661
+ request; this effectively ignores the headers
1662
+ in the spec for a single request.
1663
+ :type _headers: dict, optional
1664
+ :param _host_index: set to override the host_index for a single
1665
+ request; this effectively ignores the host_index
1666
+ in the spec for a single request.
1667
+ :type _host_index: int, optional
1668
+ :return: Returns the result object.
1669
+ """ # noqa: E501
1670
+
1671
+ _param = self._get_current_robot_controller_state_serialize(
1672
+ cell=cell,
1673
+ controller=controller,
1674
+ _request_auth=_request_auth,
1675
+ _content_type=_content_type,
1676
+ _headers=_headers,
1677
+ _host_index=_host_index
1678
+ )
1679
+
1680
+ _response_types_map: Dict[str, Optional[str]] = {
1681
+ '200': "RobotControllerState",
1682
+ '400': "Error",
1683
+ '404': "Error",
1684
+ }
1685
+
1686
+ response_data = await self.api_client.call_api(
1687
+ *_param,
1688
+ _request_timeout=_request_timeout
1689
+ )
1690
+ await response_data.read()
1691
+ return self.api_client.response_deserialize(
1692
+ response_data=response_data,
1693
+ response_types_map=_response_types_map,
1694
+ )
1695
+
1696
+
1697
+ @validate_call
1698
+ async def get_current_robot_controller_state_without_preload_content(
1699
+ self,
1700
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
1701
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
1702
+ _request_timeout: Union[
1703
+ None,
1704
+ Annotated[StrictFloat, Field(gt=0)],
1705
+ Tuple[
1706
+ Annotated[StrictFloat, Field(gt=0)],
1707
+ Annotated[StrictFloat, Field(gt=0)]
1708
+ ]
1709
+ ] = None,
1710
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1711
+ _content_type: Optional[StrictStr] = None,
1712
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1713
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1714
+ ) -> RESTResponseType:
1715
+ """State
1716
+
1717
+ Get the current state of a robot controller.
1718
+
1719
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
1720
+ :type cell: str
1721
+ :param controller: Unique identifier to address a controller in the cell. (required)
1722
+ :type controller: str
1723
+ :param _request_timeout: timeout setting for this request. If one
1724
+ number provided, it will be total request
1725
+ timeout. It can also be a pair (tuple) of
1726
+ (connection, read) timeouts.
1727
+ :type _request_timeout: int, tuple(int, int), optional
1728
+ :param _request_auth: set to override the auth_settings for an a single
1729
+ request; this effectively ignores the
1730
+ authentication in the spec for a single request.
1731
+ :type _request_auth: dict, optional
1732
+ :param _content_type: force content-type for the request.
1733
+ :type _content_type: str, Optional
1734
+ :param _headers: set to override the headers for a single
1735
+ request; this effectively ignores the headers
1736
+ in the spec for a single request.
1737
+ :type _headers: dict, optional
1738
+ :param _host_index: set to override the host_index for a single
1739
+ request; this effectively ignores the host_index
1740
+ in the spec for a single request.
1741
+ :type _host_index: int, optional
1742
+ :return: Returns the result object.
1743
+ """ # noqa: E501
1744
+
1745
+ _param = self._get_current_robot_controller_state_serialize(
1746
+ cell=cell,
1747
+ controller=controller,
1748
+ _request_auth=_request_auth,
1749
+ _content_type=_content_type,
1750
+ _headers=_headers,
1751
+ _host_index=_host_index
1752
+ )
1753
+
1754
+ _response_types_map: Dict[str, Optional[str]] = {
1755
+ '200': "RobotControllerState",
1756
+ '400': "Error",
1757
+ '404': "Error",
1758
+ }
1759
+
1760
+ response_data = await self.api_client.call_api(
1761
+ *_param,
1762
+ _request_timeout=_request_timeout
1763
+ )
1764
+ return response_data.response
1765
+
1766
+
1767
+ def _get_current_robot_controller_state_serialize(
1768
+ self,
1769
+ cell,
1770
+ controller,
1771
+ _request_auth,
1772
+ _content_type,
1773
+ _headers,
1774
+ _host_index,
1775
+ ) -> RequestSerialized:
1776
+
1777
+ _host = None
1778
+
1779
+ _collection_formats: Dict[str, str] = {
1780
+ }
1781
+
1782
+ _path_params: Dict[str, str] = {}
1783
+ _query_params: List[Tuple[str, str]] = []
1784
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1785
+ _form_params: List[Tuple[str, str]] = []
1786
+ _files: Dict[str, Union[str, bytes]] = {}
1787
+ _body_params: Optional[bytes] = None
1788
+
1789
+ # process the path parameters
1790
+ if cell is not None:
1791
+ _path_params['cell'] = cell
1792
+ if controller is not None:
1793
+ _path_params['controller'] = controller
1794
+ # process the query parameters
1795
+ # process the header parameters
1796
+ # process the form parameters
1797
+ # process the body parameter
1798
+
1799
+
1800
+ # set the HTTP header `Accept`
1801
+ _header_params['Accept'] = self.api_client.select_header_accept(
1802
+ [
1803
+ 'application/json'
1804
+ ]
1805
+ )
1806
+
1807
+
1808
+ # authentication setting
1809
+ _auth_settings: List[str] = [
1810
+ 'BasicAuth',
1811
+ 'BearerAuth'
1812
+ ]
1813
+
1814
+ return self.api_client.param_serialize(
1815
+ method='GET',
1816
+ resource_path='/cells/{cell}/controllers/{controller}/state',
1817
+ path_params=_path_params,
1818
+ query_params=_query_params,
1819
+ header_params=_header_params,
1820
+ body=_body_params,
1821
+ post_params=_form_params,
1822
+ files=_files,
1823
+ auth_settings=_auth_settings,
1824
+ collection_formats=_collection_formats,
1825
+ _host=_host,
1826
+ _request_auth=_request_auth
1827
+ )
1828
+
1829
+
1830
+
1831
+ @validate_call
1832
+ async def get_robot_controller(
1833
+ self,
1834
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
1835
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
1836
+ _request_timeout: Union[
1837
+ None,
1838
+ Annotated[StrictFloat, Field(gt=0)],
1839
+ Tuple[
1840
+ Annotated[StrictFloat, Field(gt=0)],
1841
+ Annotated[StrictFloat, Field(gt=0)]
1842
+ ]
1843
+ ] = None,
1844
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1845
+ _content_type: Optional[StrictStr] = None,
1846
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1847
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1848
+ ) -> RobotController:
1849
+ """Robot Controller
1850
+
1851
+ Get the configuration for a robot controller.
1852
+
1853
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
1854
+ :type cell: str
1855
+ :param controller: Unique identifier to address a controller in the cell. (required)
1856
+ :type controller: str
1857
+ :param _request_timeout: timeout setting for this request. If one
1858
+ number provided, it will be total request
1859
+ timeout. It can also be a pair (tuple) of
1860
+ (connection, read) timeouts.
1861
+ :type _request_timeout: int, tuple(int, int), optional
1862
+ :param _request_auth: set to override the auth_settings for an a single
1863
+ request; this effectively ignores the
1864
+ authentication in the spec for a single request.
1865
+ :type _request_auth: dict, optional
1866
+ :param _content_type: force content-type for the request.
1867
+ :type _content_type: str, Optional
1868
+ :param _headers: set to override the headers for a single
1869
+ request; this effectively ignores the headers
1870
+ in the spec for a single request.
1871
+ :type _headers: dict, optional
1872
+ :param _host_index: set to override the host_index for a single
1873
+ request; this effectively ignores the host_index
1874
+ in the spec for a single request.
1875
+ :type _host_index: int, optional
1876
+ :return: Returns the result object.
1877
+ """ # noqa: E501
1878
+
1879
+ _param = self._get_robot_controller_serialize(
1880
+ cell=cell,
1881
+ controller=controller,
1882
+ _request_auth=_request_auth,
1883
+ _content_type=_content_type,
1884
+ _headers=_headers,
1885
+ _host_index=_host_index
1886
+ )
1887
+
1888
+ _response_types_map: Dict[str, Optional[str]] = {
1889
+ '200': "RobotController",
1890
+ '404': "Error",
1891
+ }
1892
+
1893
+ response_data = await self.api_client.call_api(
1894
+ *_param,
1895
+ _request_timeout=_request_timeout
1896
+ )
1897
+ await response_data.read()
1898
+ return self.api_client.response_deserialize(
1899
+ response_data=response_data,
1900
+ response_types_map=_response_types_map,
1901
+ ).data
1902
+
1903
+
1904
+ @validate_call
1905
+ async def get_robot_controller_with_http_info(
1906
+ self,
1907
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
1908
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
1909
+ _request_timeout: Union[
1910
+ None,
1911
+ Annotated[StrictFloat, Field(gt=0)],
1912
+ Tuple[
1913
+ Annotated[StrictFloat, Field(gt=0)],
1914
+ Annotated[StrictFloat, Field(gt=0)]
1915
+ ]
1916
+ ] = None,
1917
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1918
+ _content_type: Optional[StrictStr] = None,
1919
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1920
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1921
+ ) -> ApiResponse[RobotController]:
1922
+ """Robot Controller
1923
+
1924
+ Get the configuration for a robot controller.
1925
+
1926
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
1927
+ :type cell: str
1928
+ :param controller: Unique identifier to address a controller in the cell. (required)
1929
+ :type controller: str
1930
+ :param _request_timeout: timeout setting for this request. If one
1931
+ number provided, it will be total request
1932
+ timeout. It can also be a pair (tuple) of
1933
+ (connection, read) timeouts.
1934
+ :type _request_timeout: int, tuple(int, int), optional
1935
+ :param _request_auth: set to override the auth_settings for an a single
1936
+ request; this effectively ignores the
1937
+ authentication in the spec for a single request.
1938
+ :type _request_auth: dict, optional
1939
+ :param _content_type: force content-type for the request.
1940
+ :type _content_type: str, Optional
1941
+ :param _headers: set to override the headers for a single
1942
+ request; this effectively ignores the headers
1943
+ in the spec for a single request.
1944
+ :type _headers: dict, optional
1945
+ :param _host_index: set to override the host_index for a single
1946
+ request; this effectively ignores the host_index
1947
+ in the spec for a single request.
1948
+ :type _host_index: int, optional
1949
+ :return: Returns the result object.
1950
+ """ # noqa: E501
1951
+
1952
+ _param = self._get_robot_controller_serialize(
1953
+ cell=cell,
1954
+ controller=controller,
1955
+ _request_auth=_request_auth,
1956
+ _content_type=_content_type,
1957
+ _headers=_headers,
1958
+ _host_index=_host_index
1959
+ )
1960
+
1961
+ _response_types_map: Dict[str, Optional[str]] = {
1962
+ '200': "RobotController",
1963
+ '404': "Error",
1964
+ }
1965
+
1966
+ response_data = await self.api_client.call_api(
1967
+ *_param,
1968
+ _request_timeout=_request_timeout
1969
+ )
1970
+ await response_data.read()
1971
+ return self.api_client.response_deserialize(
1972
+ response_data=response_data,
1973
+ response_types_map=_response_types_map,
1974
+ )
1975
+
1976
+
1977
+ @validate_call
1978
+ async def get_robot_controller_without_preload_content(
1979
+ self,
1980
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
1981
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
1982
+ _request_timeout: Union[
1983
+ None,
1984
+ Annotated[StrictFloat, Field(gt=0)],
1985
+ Tuple[
1986
+ Annotated[StrictFloat, Field(gt=0)],
1987
+ Annotated[StrictFloat, Field(gt=0)]
1988
+ ]
1989
+ ] = None,
1990
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1991
+ _content_type: Optional[StrictStr] = None,
1992
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1993
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1994
+ ) -> RESTResponseType:
1995
+ """Robot Controller
1996
+
1997
+ Get the configuration for a robot controller.
1998
+
1999
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2000
+ :type cell: str
2001
+ :param controller: Unique identifier to address a controller in the cell. (required)
2002
+ :type controller: str
2003
+ :param _request_timeout: timeout setting for this request. If one
2004
+ number provided, it will be total request
2005
+ timeout. It can also be a pair (tuple) of
2006
+ (connection, read) timeouts.
2007
+ :type _request_timeout: int, tuple(int, int), optional
2008
+ :param _request_auth: set to override the auth_settings for an a single
2009
+ request; this effectively ignores the
2010
+ authentication in the spec for a single request.
2011
+ :type _request_auth: dict, optional
2012
+ :param _content_type: force content-type for the request.
2013
+ :type _content_type: str, Optional
2014
+ :param _headers: set to override the headers for a single
2015
+ request; this effectively ignores the headers
2016
+ in the spec for a single request.
2017
+ :type _headers: dict, optional
2018
+ :param _host_index: set to override the host_index for a single
2019
+ request; this effectively ignores the host_index
2020
+ in the spec for a single request.
2021
+ :type _host_index: int, optional
2022
+ :return: Returns the result object.
2023
+ """ # noqa: E501
2024
+
2025
+ _param = self._get_robot_controller_serialize(
2026
+ cell=cell,
2027
+ controller=controller,
2028
+ _request_auth=_request_auth,
2029
+ _content_type=_content_type,
2030
+ _headers=_headers,
2031
+ _host_index=_host_index
2032
+ )
2033
+
2034
+ _response_types_map: Dict[str, Optional[str]] = {
2035
+ '200': "RobotController",
2036
+ '404': "Error",
2037
+ }
2038
+
2039
+ response_data = await self.api_client.call_api(
2040
+ *_param,
2041
+ _request_timeout=_request_timeout
2042
+ )
2043
+ return response_data.response
2044
+
2045
+
2046
+ def _get_robot_controller_serialize(
2047
+ self,
2048
+ cell,
2049
+ controller,
2050
+ _request_auth,
2051
+ _content_type,
2052
+ _headers,
2053
+ _host_index,
2054
+ ) -> RequestSerialized:
2055
+
2056
+ _host = None
2057
+
2058
+ _collection_formats: Dict[str, str] = {
2059
+ }
2060
+
2061
+ _path_params: Dict[str, str] = {}
2062
+ _query_params: List[Tuple[str, str]] = []
2063
+ _header_params: Dict[str, Optional[str]] = _headers or {}
2064
+ _form_params: List[Tuple[str, str]] = []
2065
+ _files: Dict[str, Union[str, bytes]] = {}
2066
+ _body_params: Optional[bytes] = None
2067
+
2068
+ # process the path parameters
2069
+ if cell is not None:
2070
+ _path_params['cell'] = cell
2071
+ if controller is not None:
2072
+ _path_params['controller'] = controller
2073
+ # process the query parameters
2074
+ # process the header parameters
2075
+ # process the form parameters
2076
+ # process the body parameter
2077
+
2078
+
2079
+ # set the HTTP header `Accept`
2080
+ _header_params['Accept'] = self.api_client.select_header_accept(
2081
+ [
2082
+ 'application/json'
2083
+ ]
2084
+ )
2085
+
2086
+
2087
+ # authentication setting
2088
+ _auth_settings: List[str] = [
2089
+ 'BasicAuth',
2090
+ 'BearerAuth'
2091
+ ]
2092
+
2093
+ return self.api_client.param_serialize(
2094
+ method='GET',
2095
+ resource_path='/cells/{cell}/controllers/{controller}',
2096
+ path_params=_path_params,
2097
+ query_params=_query_params,
2098
+ header_params=_header_params,
2099
+ body=_body_params,
2100
+ post_params=_form_params,
2101
+ files=_files,
2102
+ auth_settings=_auth_settings,
2103
+ collection_formats=_collection_formats,
2104
+ _host=_host,
2105
+ _request_auth=_request_auth
2106
+ )
2107
+
2108
+
2109
+
2110
+ @validate_call
2111
+ async def get_virtual_controller_configuration(
2112
+ self,
2113
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
2114
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
2115
+ _request_timeout: Union[
2116
+ None,
2117
+ Annotated[StrictFloat, Field(gt=0)],
2118
+ Tuple[
2119
+ Annotated[StrictFloat, Field(gt=0)],
2120
+ Annotated[StrictFloat, Field(gt=0)]
2121
+ ]
2122
+ ] = None,
2123
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2124
+ _content_type: Optional[StrictStr] = None,
2125
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2126
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2127
+ ) -> VirtualRobotConfiguration:
2128
+ """Virtual Controller Configuration
2129
+
2130
+ Receive data to configure a virtual robot controller based on another controller. This can be used to create a virtual clone of a specific physical robot. When adding a virtual controller, use the Virtual configuration variant of [addRobotController](addRobotController) and pass the content string from this endpoint as the `json` field. Omit the `type` field that selects a preset configuration which is not required when providing a complete configuration.
2131
+
2132
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2133
+ :type cell: str
2134
+ :param controller: Unique identifier to address a controller in the cell. (required)
2135
+ :type controller: str
2136
+ :param _request_timeout: timeout setting for this request. If one
2137
+ number provided, it will be total request
2138
+ timeout. It can also be a pair (tuple) of
2139
+ (connection, read) timeouts.
2140
+ :type _request_timeout: int, tuple(int, int), optional
2141
+ :param _request_auth: set to override the auth_settings for an a single
2142
+ request; this effectively ignores the
2143
+ authentication in the spec for a single request.
2144
+ :type _request_auth: dict, optional
2145
+ :param _content_type: force content-type for the request.
2146
+ :type _content_type: str, Optional
2147
+ :param _headers: set to override the headers for a single
2148
+ request; this effectively ignores the headers
2149
+ in the spec for a single request.
2150
+ :type _headers: dict, optional
2151
+ :param _host_index: set to override the host_index for a single
2152
+ request; this effectively ignores the host_index
2153
+ in the spec for a single request.
2154
+ :type _host_index: int, optional
2155
+ :return: Returns the result object.
2156
+ """ # noqa: E501
2157
+
2158
+ _param = self._get_virtual_controller_configuration_serialize(
2159
+ cell=cell,
2160
+ controller=controller,
2161
+ _request_auth=_request_auth,
2162
+ _content_type=_content_type,
2163
+ _headers=_headers,
2164
+ _host_index=_host_index
2165
+ )
2166
+
2167
+ _response_types_map: Dict[str, Optional[str]] = {
2168
+ '200': "VirtualRobotConfiguration",
2169
+ '400': "Error",
2170
+ '404': "Error",
2171
+ }
2172
+
2173
+ response_data = await self.api_client.call_api(
2174
+ *_param,
2175
+ _request_timeout=_request_timeout
2176
+ )
2177
+ await response_data.read()
2178
+ return self.api_client.response_deserialize(
2179
+ response_data=response_data,
2180
+ response_types_map=_response_types_map,
2181
+ ).data
2182
+
2183
+
2184
+ @validate_call
2185
+ async def get_virtual_controller_configuration_with_http_info(
2186
+ self,
2187
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
2188
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
2189
+ _request_timeout: Union[
2190
+ None,
2191
+ Annotated[StrictFloat, Field(gt=0)],
2192
+ Tuple[
2193
+ Annotated[StrictFloat, Field(gt=0)],
2194
+ Annotated[StrictFloat, Field(gt=0)]
2195
+ ]
2196
+ ] = None,
2197
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2198
+ _content_type: Optional[StrictStr] = None,
2199
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2200
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2201
+ ) -> ApiResponse[VirtualRobotConfiguration]:
2202
+ """Virtual Controller Configuration
2203
+
2204
+ Receive data to configure a virtual robot controller based on another controller. This can be used to create a virtual clone of a specific physical robot. When adding a virtual controller, use the Virtual configuration variant of [addRobotController](addRobotController) and pass the content string from this endpoint as the `json` field. Omit the `type` field that selects a preset configuration which is not required when providing a complete configuration.
2205
+
2206
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2207
+ :type cell: str
2208
+ :param controller: Unique identifier to address a controller in the cell. (required)
2209
+ :type controller: str
2210
+ :param _request_timeout: timeout setting for this request. If one
2211
+ number provided, it will be total request
2212
+ timeout. It can also be a pair (tuple) of
2213
+ (connection, read) timeouts.
2214
+ :type _request_timeout: int, tuple(int, int), optional
2215
+ :param _request_auth: set to override the auth_settings for an a single
2216
+ request; this effectively ignores the
2217
+ authentication in the spec for a single request.
2218
+ :type _request_auth: dict, optional
2219
+ :param _content_type: force content-type for the request.
2220
+ :type _content_type: str, Optional
2221
+ :param _headers: set to override the headers for a single
2222
+ request; this effectively ignores the headers
2223
+ in the spec for a single request.
2224
+ :type _headers: dict, optional
2225
+ :param _host_index: set to override the host_index for a single
2226
+ request; this effectively ignores the host_index
2227
+ in the spec for a single request.
2228
+ :type _host_index: int, optional
2229
+ :return: Returns the result object.
2230
+ """ # noqa: E501
2231
+
2232
+ _param = self._get_virtual_controller_configuration_serialize(
2233
+ cell=cell,
2234
+ controller=controller,
2235
+ _request_auth=_request_auth,
2236
+ _content_type=_content_type,
2237
+ _headers=_headers,
2238
+ _host_index=_host_index
2239
+ )
2240
+
2241
+ _response_types_map: Dict[str, Optional[str]] = {
2242
+ '200': "VirtualRobotConfiguration",
2243
+ '400': "Error",
2244
+ '404': "Error",
2245
+ }
2246
+
2247
+ response_data = await self.api_client.call_api(
2248
+ *_param,
2249
+ _request_timeout=_request_timeout
2250
+ )
2251
+ await response_data.read()
2252
+ return self.api_client.response_deserialize(
2253
+ response_data=response_data,
2254
+ response_types_map=_response_types_map,
2255
+ )
2256
+
2257
+
2258
+ @validate_call
2259
+ async def get_virtual_controller_configuration_without_preload_content(
2260
+ self,
2261
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
2262
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
2263
+ _request_timeout: Union[
2264
+ None,
2265
+ Annotated[StrictFloat, Field(gt=0)],
2266
+ Tuple[
2267
+ Annotated[StrictFloat, Field(gt=0)],
2268
+ Annotated[StrictFloat, Field(gt=0)]
2269
+ ]
2270
+ ] = None,
2271
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2272
+ _content_type: Optional[StrictStr] = None,
2273
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2274
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2275
+ ) -> RESTResponseType:
2276
+ """Virtual Controller Configuration
2277
+
2278
+ Receive data to configure a virtual robot controller based on another controller. This can be used to create a virtual clone of a specific physical robot. When adding a virtual controller, use the Virtual configuration variant of [addRobotController](addRobotController) and pass the content string from this endpoint as the `json` field. Omit the `type` field that selects a preset configuration which is not required when providing a complete configuration.
2279
+
2280
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2281
+ :type cell: str
2282
+ :param controller: Unique identifier to address a controller in the cell. (required)
2283
+ :type controller: str
2284
+ :param _request_timeout: timeout setting for this request. If one
2285
+ number provided, it will be total request
2286
+ timeout. It can also be a pair (tuple) of
2287
+ (connection, read) timeouts.
2288
+ :type _request_timeout: int, tuple(int, int), optional
2289
+ :param _request_auth: set to override the auth_settings for an a single
2290
+ request; this effectively ignores the
2291
+ authentication in the spec for a single request.
2292
+ :type _request_auth: dict, optional
2293
+ :param _content_type: force content-type for the request.
2294
+ :type _content_type: str, Optional
2295
+ :param _headers: set to override the headers for a single
2296
+ request; this effectively ignores the headers
2297
+ in the spec for a single request.
2298
+ :type _headers: dict, optional
2299
+ :param _host_index: set to override the host_index for a single
2300
+ request; this effectively ignores the host_index
2301
+ in the spec for a single request.
2302
+ :type _host_index: int, optional
2303
+ :return: Returns the result object.
2304
+ """ # noqa: E501
2305
+
2306
+ _param = self._get_virtual_controller_configuration_serialize(
2307
+ cell=cell,
2308
+ controller=controller,
2309
+ _request_auth=_request_auth,
2310
+ _content_type=_content_type,
2311
+ _headers=_headers,
2312
+ _host_index=_host_index
2313
+ )
2314
+
2315
+ _response_types_map: Dict[str, Optional[str]] = {
2316
+ '200': "VirtualRobotConfiguration",
2317
+ '400': "Error",
2318
+ '404': "Error",
2319
+ }
2320
+
2321
+ response_data = await self.api_client.call_api(
2322
+ *_param,
2323
+ _request_timeout=_request_timeout
2324
+ )
2325
+ return response_data.response
2326
+
2327
+
2328
+ def _get_virtual_controller_configuration_serialize(
2329
+ self,
2330
+ cell,
2331
+ controller,
2332
+ _request_auth,
2333
+ _content_type,
2334
+ _headers,
2335
+ _host_index,
2336
+ ) -> RequestSerialized:
2337
+
2338
+ _host = None
2339
+
2340
+ _collection_formats: Dict[str, str] = {
2341
+ }
2342
+
2343
+ _path_params: Dict[str, str] = {}
2344
+ _query_params: List[Tuple[str, str]] = []
2345
+ _header_params: Dict[str, Optional[str]] = _headers or {}
2346
+ _form_params: List[Tuple[str, str]] = []
2347
+ _files: Dict[str, Union[str, bytes]] = {}
2348
+ _body_params: Optional[bytes] = None
2349
+
2350
+ # process the path parameters
2351
+ if cell is not None:
2352
+ _path_params['cell'] = cell
2353
+ if controller is not None:
2354
+ _path_params['controller'] = controller
2355
+ # process the query parameters
2356
+ # process the header parameters
2357
+ # process the form parameters
2358
+ # process the body parameter
2359
+
2360
+
2361
+ # set the HTTP header `Accept`
2362
+ _header_params['Accept'] = self.api_client.select_header_accept(
2363
+ [
2364
+ 'application/json'
2365
+ ]
2366
+ )
2367
+
2368
+
2369
+ # authentication setting
2370
+ _auth_settings: List[str] = [
2371
+ 'BasicAuth',
2372
+ 'BearerAuth'
2373
+ ]
2374
+
2375
+ return self.api_client.param_serialize(
2376
+ method='GET',
2377
+ resource_path='/cells/{cell}/controllers/{controller}/virtual-robot-configuration',
2378
+ path_params=_path_params,
2379
+ query_params=_query_params,
2380
+ header_params=_header_params,
2381
+ body=_body_params,
2382
+ post_params=_form_params,
2383
+ files=_files,
2384
+ auth_settings=_auth_settings,
2385
+ collection_formats=_collection_formats,
2386
+ _host=_host,
2387
+ _request_auth=_request_auth
2388
+ )
2389
+
2390
+
2391
+
2392
+ @validate_call
2393
+ async def list_coordinate_systems(
2394
+ self,
2395
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
2396
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
2397
+ orientation_type: Optional[OrientationType] = None,
2398
+ _request_timeout: Union[
2399
+ None,
2400
+ Annotated[StrictFloat, Field(gt=0)],
2401
+ Tuple[
2402
+ Annotated[StrictFloat, Field(gt=0)],
2403
+ Annotated[StrictFloat, Field(gt=0)]
2404
+ ]
2405
+ ] = None,
2406
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2407
+ _content_type: Optional[StrictStr] = None,
2408
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2409
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2410
+ ) -> List[CoordinateSystem]:
2411
+ """List Coordinate Systems
2412
+
2413
+ Lists all specifications of coordinate systems from robot controllers. Use parameter `orientation_type` to get the orientation part of the transformation offset of the coordinate system returned in the requested orientation notation. If parameter `orientation_type` is not set, the orientation part of the transformation offset of the coordinate system is returned in rotation vector notation. The coordinate systems from the robot controller are loaded when the motion group associated with the coordinate system is activated. With deactivation of the motion group, the associated coordinate systems are removed from NOVA. The unique identifier of the coordinate systems from the robot controllers are suffixed with `On` + the unique identifier of the robot controller.
2414
+
2415
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2416
+ :type cell: str
2417
+ :param controller: Unique identifier to address a controller in the cell. (required)
2418
+ :type controller: str
2419
+ :param orientation_type:
2420
+ :type orientation_type: OrientationType
2421
+ :param _request_timeout: timeout setting for this request. If one
2422
+ number provided, it will be total request
2423
+ timeout. It can also be a pair (tuple) of
2424
+ (connection, read) timeouts.
2425
+ :type _request_timeout: int, tuple(int, int), optional
2426
+ :param _request_auth: set to override the auth_settings for an a single
2427
+ request; this effectively ignores the
2428
+ authentication in the spec for a single request.
2429
+ :type _request_auth: dict, optional
2430
+ :param _content_type: force content-type for the request.
2431
+ :type _content_type: str, Optional
2432
+ :param _headers: set to override the headers for a single
2433
+ request; this effectively ignores the headers
2434
+ in the spec for a single request.
2435
+ :type _headers: dict, optional
2436
+ :param _host_index: set to override the host_index for a single
2437
+ request; this effectively ignores the host_index
2438
+ in the spec for a single request.
2439
+ :type _host_index: int, optional
2440
+ :return: Returns the result object.
2441
+ """ # noqa: E501
2442
+
2443
+ _param = self._list_coordinate_systems_serialize(
2444
+ cell=cell,
2445
+ controller=controller,
2446
+ orientation_type=orientation_type,
2447
+ _request_auth=_request_auth,
2448
+ _content_type=_content_type,
2449
+ _headers=_headers,
2450
+ _host_index=_host_index
2451
+ )
2452
+
2453
+ _response_types_map: Dict[str, Optional[str]] = {
2454
+ '200': "List[CoordinateSystem]",
2455
+ '400': "Error",
2456
+ }
2457
+
2458
+ response_data = await self.api_client.call_api(
2459
+ *_param,
2460
+ _request_timeout=_request_timeout
2461
+ )
2462
+ await response_data.read()
2463
+ return self.api_client.response_deserialize(
2464
+ response_data=response_data,
2465
+ response_types_map=_response_types_map,
2466
+ ).data
2467
+
2468
+
2469
+ @validate_call
2470
+ async def list_coordinate_systems_with_http_info(
2471
+ self,
2472
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
2473
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
2474
+ orientation_type: Optional[OrientationType] = None,
2475
+ _request_timeout: Union[
2476
+ None,
2477
+ Annotated[StrictFloat, Field(gt=0)],
2478
+ Tuple[
2479
+ Annotated[StrictFloat, Field(gt=0)],
2480
+ Annotated[StrictFloat, Field(gt=0)]
2481
+ ]
2482
+ ] = None,
2483
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2484
+ _content_type: Optional[StrictStr] = None,
2485
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2486
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2487
+ ) -> ApiResponse[List[CoordinateSystem]]:
2488
+ """List Coordinate Systems
2489
+
2490
+ Lists all specifications of coordinate systems from robot controllers. Use parameter `orientation_type` to get the orientation part of the transformation offset of the coordinate system returned in the requested orientation notation. If parameter `orientation_type` is not set, the orientation part of the transformation offset of the coordinate system is returned in rotation vector notation. The coordinate systems from the robot controller are loaded when the motion group associated with the coordinate system is activated. With deactivation of the motion group, the associated coordinate systems are removed from NOVA. The unique identifier of the coordinate systems from the robot controllers are suffixed with `On` + the unique identifier of the robot controller.
2491
+
2492
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2493
+ :type cell: str
2494
+ :param controller: Unique identifier to address a controller in the cell. (required)
2495
+ :type controller: str
2496
+ :param orientation_type:
2497
+ :type orientation_type: OrientationType
2498
+ :param _request_timeout: timeout setting for this request. If one
2499
+ number provided, it will be total request
2500
+ timeout. It can also be a pair (tuple) of
2501
+ (connection, read) timeouts.
2502
+ :type _request_timeout: int, tuple(int, int), optional
2503
+ :param _request_auth: set to override the auth_settings for an a single
2504
+ request; this effectively ignores the
2505
+ authentication in the spec for a single request.
2506
+ :type _request_auth: dict, optional
2507
+ :param _content_type: force content-type for the request.
2508
+ :type _content_type: str, Optional
2509
+ :param _headers: set to override the headers for a single
2510
+ request; this effectively ignores the headers
2511
+ in the spec for a single request.
2512
+ :type _headers: dict, optional
2513
+ :param _host_index: set to override the host_index for a single
2514
+ request; this effectively ignores the host_index
2515
+ in the spec for a single request.
2516
+ :type _host_index: int, optional
2517
+ :return: Returns the result object.
2518
+ """ # noqa: E501
2519
+
2520
+ _param = self._list_coordinate_systems_serialize(
2521
+ cell=cell,
2522
+ controller=controller,
2523
+ orientation_type=orientation_type,
2524
+ _request_auth=_request_auth,
2525
+ _content_type=_content_type,
2526
+ _headers=_headers,
2527
+ _host_index=_host_index
2528
+ )
2529
+
2530
+ _response_types_map: Dict[str, Optional[str]] = {
2531
+ '200': "List[CoordinateSystem]",
2532
+ '400': "Error",
2533
+ }
2534
+
2535
+ response_data = await self.api_client.call_api(
2536
+ *_param,
2537
+ _request_timeout=_request_timeout
2538
+ )
2539
+ await response_data.read()
2540
+ return self.api_client.response_deserialize(
2541
+ response_data=response_data,
2542
+ response_types_map=_response_types_map,
2543
+ )
2544
+
2545
+
2546
+ @validate_call
2547
+ async def list_coordinate_systems_without_preload_content(
2548
+ self,
2549
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
2550
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
2551
+ orientation_type: Optional[OrientationType] = None,
2552
+ _request_timeout: Union[
2553
+ None,
2554
+ Annotated[StrictFloat, Field(gt=0)],
2555
+ Tuple[
2556
+ Annotated[StrictFloat, Field(gt=0)],
2557
+ Annotated[StrictFloat, Field(gt=0)]
2558
+ ]
2559
+ ] = None,
2560
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2561
+ _content_type: Optional[StrictStr] = None,
2562
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2563
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2564
+ ) -> RESTResponseType:
2565
+ """List Coordinate Systems
2566
+
2567
+ Lists all specifications of coordinate systems from robot controllers. Use parameter `orientation_type` to get the orientation part of the transformation offset of the coordinate system returned in the requested orientation notation. If parameter `orientation_type` is not set, the orientation part of the transformation offset of the coordinate system is returned in rotation vector notation. The coordinate systems from the robot controller are loaded when the motion group associated with the coordinate system is activated. With deactivation of the motion group, the associated coordinate systems are removed from NOVA. The unique identifier of the coordinate systems from the robot controllers are suffixed with `On` + the unique identifier of the robot controller.
2568
+
2569
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2570
+ :type cell: str
2571
+ :param controller: Unique identifier to address a controller in the cell. (required)
2572
+ :type controller: str
2573
+ :param orientation_type:
2574
+ :type orientation_type: OrientationType
2575
+ :param _request_timeout: timeout setting for this request. If one
2576
+ number provided, it will be total request
2577
+ timeout. It can also be a pair (tuple) of
2578
+ (connection, read) timeouts.
2579
+ :type _request_timeout: int, tuple(int, int), optional
2580
+ :param _request_auth: set to override the auth_settings for an a single
2581
+ request; this effectively ignores the
2582
+ authentication in the spec for a single request.
2583
+ :type _request_auth: dict, optional
2584
+ :param _content_type: force content-type for the request.
2585
+ :type _content_type: str, Optional
2586
+ :param _headers: set to override the headers for a single
2587
+ request; this effectively ignores the headers
2588
+ in the spec for a single request.
2589
+ :type _headers: dict, optional
2590
+ :param _host_index: set to override the host_index for a single
2591
+ request; this effectively ignores the host_index
2592
+ in the spec for a single request.
2593
+ :type _host_index: int, optional
2594
+ :return: Returns the result object.
2595
+ """ # noqa: E501
2596
+
2597
+ _param = self._list_coordinate_systems_serialize(
2598
+ cell=cell,
2599
+ controller=controller,
2600
+ orientation_type=orientation_type,
2601
+ _request_auth=_request_auth,
2602
+ _content_type=_content_type,
2603
+ _headers=_headers,
2604
+ _host_index=_host_index
2605
+ )
2606
+
2607
+ _response_types_map: Dict[str, Optional[str]] = {
2608
+ '200': "List[CoordinateSystem]",
2609
+ '400': "Error",
2610
+ }
2611
+
2612
+ response_data = await self.api_client.call_api(
2613
+ *_param,
2614
+ _request_timeout=_request_timeout
2615
+ )
2616
+ return response_data.response
2617
+
2618
+
2619
+ def _list_coordinate_systems_serialize(
2620
+ self,
2621
+ cell,
2622
+ controller,
2623
+ orientation_type,
2624
+ _request_auth,
2625
+ _content_type,
2626
+ _headers,
2627
+ _host_index,
2628
+ ) -> RequestSerialized:
2629
+
2630
+ _host = None
2631
+
2632
+ _collection_formats: Dict[str, str] = {
2633
+ }
2634
+
2635
+ _path_params: Dict[str, str] = {}
2636
+ _query_params: List[Tuple[str, str]] = []
2637
+ _header_params: Dict[str, Optional[str]] = _headers or {}
2638
+ _form_params: List[Tuple[str, str]] = []
2639
+ _files: Dict[str, Union[str, bytes]] = {}
2640
+ _body_params: Optional[bytes] = None
2641
+
2642
+ # process the path parameters
2643
+ if cell is not None:
2644
+ _path_params['cell'] = cell
2645
+ if controller is not None:
2646
+ _path_params['controller'] = controller
2647
+ # process the query parameters
2648
+ if orientation_type is not None:
2649
+
2650
+ _query_params.append(('orientation_type', orientation_type.value))
2651
+
2652
+ # process the header parameters
2653
+ # process the form parameters
2654
+ # process the body parameter
2655
+
2656
+
2657
+ # set the HTTP header `Accept`
2658
+ _header_params['Accept'] = self.api_client.select_header_accept(
2659
+ [
2660
+ 'application/json'
2661
+ ]
2662
+ )
2663
+
2664
+
2665
+ # authentication setting
2666
+ _auth_settings: List[str] = [
2667
+ 'BasicAuth',
2668
+ 'BearerAuth'
2669
+ ]
2670
+
2671
+ return self.api_client.param_serialize(
2672
+ method='GET',
2673
+ resource_path='/cells/{cell}/controllers/{controller}/coordinate-systems',
2674
+ path_params=_path_params,
2675
+ query_params=_query_params,
2676
+ header_params=_header_params,
2677
+ body=_body_params,
2678
+ post_params=_form_params,
2679
+ files=_files,
2680
+ auth_settings=_auth_settings,
2681
+ collection_formats=_collection_formats,
2682
+ _host=_host,
2683
+ _request_auth=_request_auth
2684
+ )
2685
+
2686
+
2687
+
2688
+ @validate_call
2689
+ async def list_robot_controllers(
2690
+ self,
2691
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
2692
+ _request_timeout: Union[
2693
+ None,
2694
+ Annotated[StrictFloat, Field(gt=0)],
2695
+ Tuple[
2696
+ Annotated[StrictFloat, Field(gt=0)],
2697
+ Annotated[StrictFloat, Field(gt=0)]
2698
+ ]
2699
+ ] = None,
2700
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2701
+ _content_type: Optional[StrictStr] = None,
2702
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2703
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2704
+ ) -> List[str]:
2705
+ """List Robot Controllers
2706
+
2707
+ List the names of all deployed robot controllers.
2708
+
2709
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2710
+ :type cell: str
2711
+ :param _request_timeout: timeout setting for this request. If one
2712
+ number provided, it will be total request
2713
+ timeout. It can also be a pair (tuple) of
2714
+ (connection, read) timeouts.
2715
+ :type _request_timeout: int, tuple(int, int), optional
2716
+ :param _request_auth: set to override the auth_settings for an a single
2717
+ request; this effectively ignores the
2718
+ authentication in the spec for a single request.
2719
+ :type _request_auth: dict, optional
2720
+ :param _content_type: force content-type for the request.
2721
+ :type _content_type: str, Optional
2722
+ :param _headers: set to override the headers for a single
2723
+ request; this effectively ignores the headers
2724
+ in the spec for a single request.
2725
+ :type _headers: dict, optional
2726
+ :param _host_index: set to override the host_index for a single
2727
+ request; this effectively ignores the host_index
2728
+ in the spec for a single request.
2729
+ :type _host_index: int, optional
2730
+ :return: Returns the result object.
2731
+ """ # noqa: E501
2732
+
2733
+ _param = self._list_robot_controllers_serialize(
2734
+ cell=cell,
2735
+ _request_auth=_request_auth,
2736
+ _content_type=_content_type,
2737
+ _headers=_headers,
2738
+ _host_index=_host_index
2739
+ )
2740
+
2741
+ _response_types_map: Dict[str, Optional[str]] = {
2742
+ '200': "List[str]",
2743
+ }
2744
+
2745
+ response_data = await self.api_client.call_api(
2746
+ *_param,
2747
+ _request_timeout=_request_timeout
2748
+ )
2749
+ await response_data.read()
2750
+ return self.api_client.response_deserialize(
2751
+ response_data=response_data,
2752
+ response_types_map=_response_types_map,
2753
+ ).data
2754
+
2755
+
2756
+ @validate_call
2757
+ async def list_robot_controllers_with_http_info(
2758
+ self,
2759
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
2760
+ _request_timeout: Union[
2761
+ None,
2762
+ Annotated[StrictFloat, Field(gt=0)],
2763
+ Tuple[
2764
+ Annotated[StrictFloat, Field(gt=0)],
2765
+ Annotated[StrictFloat, Field(gt=0)]
2766
+ ]
2767
+ ] = None,
2768
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2769
+ _content_type: Optional[StrictStr] = None,
2770
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2771
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2772
+ ) -> ApiResponse[List[str]]:
2773
+ """List Robot Controllers
2774
+
2775
+ List the names of all deployed robot controllers.
2776
+
2777
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2778
+ :type cell: str
2779
+ :param _request_timeout: timeout setting for this request. If one
2780
+ number provided, it will be total request
2781
+ timeout. It can also be a pair (tuple) of
2782
+ (connection, read) timeouts.
2783
+ :type _request_timeout: int, tuple(int, int), optional
2784
+ :param _request_auth: set to override the auth_settings for an a single
2785
+ request; this effectively ignores the
2786
+ authentication in the spec for a single request.
2787
+ :type _request_auth: dict, optional
2788
+ :param _content_type: force content-type for the request.
2789
+ :type _content_type: str, Optional
2790
+ :param _headers: set to override the headers for a single
2791
+ request; this effectively ignores the headers
2792
+ in the spec for a single request.
2793
+ :type _headers: dict, optional
2794
+ :param _host_index: set to override the host_index for a single
2795
+ request; this effectively ignores the host_index
2796
+ in the spec for a single request.
2797
+ :type _host_index: int, optional
2798
+ :return: Returns the result object.
2799
+ """ # noqa: E501
2800
+
2801
+ _param = self._list_robot_controllers_serialize(
2802
+ cell=cell,
2803
+ _request_auth=_request_auth,
2804
+ _content_type=_content_type,
2805
+ _headers=_headers,
2806
+ _host_index=_host_index
2807
+ )
2808
+
2809
+ _response_types_map: Dict[str, Optional[str]] = {
2810
+ '200': "List[str]",
2811
+ }
2812
+
2813
+ response_data = await self.api_client.call_api(
2814
+ *_param,
2815
+ _request_timeout=_request_timeout
2816
+ )
2817
+ await response_data.read()
2818
+ return self.api_client.response_deserialize(
2819
+ response_data=response_data,
2820
+ response_types_map=_response_types_map,
2821
+ )
2822
+
2823
+
2824
+ @validate_call
2825
+ async def list_robot_controllers_without_preload_content(
2826
+ self,
2827
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
2828
+ _request_timeout: Union[
2829
+ None,
2830
+ Annotated[StrictFloat, Field(gt=0)],
2831
+ Tuple[
2832
+ Annotated[StrictFloat, Field(gt=0)],
2833
+ Annotated[StrictFloat, Field(gt=0)]
2834
+ ]
2835
+ ] = None,
2836
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2837
+ _content_type: Optional[StrictStr] = None,
2838
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2839
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2840
+ ) -> RESTResponseType:
2841
+ """List Robot Controllers
2842
+
2843
+ List the names of all deployed robot controllers.
2844
+
2845
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2846
+ :type cell: str
2847
+ :param _request_timeout: timeout setting for this request. If one
2848
+ number provided, it will be total request
2849
+ timeout. It can also be a pair (tuple) of
2850
+ (connection, read) timeouts.
2851
+ :type _request_timeout: int, tuple(int, int), optional
2852
+ :param _request_auth: set to override the auth_settings for an a single
2853
+ request; this effectively ignores the
2854
+ authentication in the spec for a single request.
2855
+ :type _request_auth: dict, optional
2856
+ :param _content_type: force content-type for the request.
2857
+ :type _content_type: str, Optional
2858
+ :param _headers: set to override the headers for a single
2859
+ request; this effectively ignores the headers
2860
+ in the spec for a single request.
2861
+ :type _headers: dict, optional
2862
+ :param _host_index: set to override the host_index for a single
2863
+ request; this effectively ignores the host_index
2864
+ in the spec for a single request.
2865
+ :type _host_index: int, optional
2866
+ :return: Returns the result object.
2867
+ """ # noqa: E501
2868
+
2869
+ _param = self._list_robot_controllers_serialize(
2870
+ cell=cell,
2871
+ _request_auth=_request_auth,
2872
+ _content_type=_content_type,
2873
+ _headers=_headers,
2874
+ _host_index=_host_index
2875
+ )
2876
+
2877
+ _response_types_map: Dict[str, Optional[str]] = {
2878
+ '200': "List[str]",
2879
+ }
2880
+
2881
+ response_data = await self.api_client.call_api(
2882
+ *_param,
2883
+ _request_timeout=_request_timeout
2884
+ )
2885
+ return response_data.response
2886
+
2887
+
2888
+ def _list_robot_controllers_serialize(
2889
+ self,
2890
+ cell,
2891
+ _request_auth,
2892
+ _content_type,
2893
+ _headers,
2894
+ _host_index,
2895
+ ) -> RequestSerialized:
2896
+
2897
+ _host = None
2898
+
2899
+ _collection_formats: Dict[str, str] = {
2900
+ }
2901
+
2902
+ _path_params: Dict[str, str] = {}
2903
+ _query_params: List[Tuple[str, str]] = []
2904
+ _header_params: Dict[str, Optional[str]] = _headers or {}
2905
+ _form_params: List[Tuple[str, str]] = []
2906
+ _files: Dict[str, Union[str, bytes]] = {}
2907
+ _body_params: Optional[bytes] = None
2908
+
2909
+ # process the path parameters
2910
+ if cell is not None:
2911
+ _path_params['cell'] = cell
2912
+ # process the query parameters
2913
+ # process the header parameters
2914
+ # process the form parameters
2915
+ # process the body parameter
2916
+
2917
+
2918
+ # set the HTTP header `Accept`
2919
+ _header_params['Accept'] = self.api_client.select_header_accept(
2920
+ [
2921
+ 'application/json'
2922
+ ]
2923
+ )
2924
+
2925
+
2926
+ # authentication setting
2927
+ _auth_settings: List[str] = [
2928
+ 'BasicAuth',
2929
+ 'BearerAuth'
2930
+ ]
2931
+
2932
+ return self.api_client.param_serialize(
2933
+ method='GET',
2934
+ resource_path='/cells/{cell}/controllers',
2935
+ path_params=_path_params,
2936
+ query_params=_query_params,
2937
+ header_params=_header_params,
2938
+ body=_body_params,
2939
+ post_params=_form_params,
2940
+ files=_files,
2941
+ auth_settings=_auth_settings,
2942
+ collection_formats=_collection_formats,
2943
+ _host=_host,
2944
+ _request_auth=_request_auth
2945
+ )
2946
+
2947
+
2948
+
2949
+ @validate_call
2950
+ async def set_default_mode(
2951
+ self,
2952
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
2953
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
2954
+ mode: SettableRobotSystemMode,
2955
+ _request_timeout: Union[
2956
+ None,
2957
+ Annotated[StrictFloat, Field(gt=0)],
2958
+ Tuple[
2959
+ Annotated[StrictFloat, Field(gt=0)],
2960
+ Annotated[StrictFloat, Field(gt=0)]
2961
+ ]
2962
+ ] = None,
2963
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2964
+ _content_type: Optional[StrictStr] = None,
2965
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2966
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2967
+ ) -> None:
2968
+ """Set Default Mode
2969
+
2970
+ Switch between monitor and control usage as default for a robot controller. Monitoring mode is used to read information from the robot controller and control mode is used to command the robot system. As long as the robot controller is connected via network, monitoring mode is always possible. To switch to control mode the robot controller must be in `automatic` or `manual` operating mode and safety state `normal` or `reduced`. If the robot controller is in `manual` operating mode, you have to manually confirm the control usage activation on the robot control panel. This manual confirmation can't be replaced with this API. Without manual confirmation the robot controller will stay in monitor mode. The robot system will try to activate the required operation mode for the requested usage unless no active call requires a different mode. > **NOTE** > > `setDefaultMode` enables the robot controller to stay in control mode to keep the motors activated. > This allows for faster execution of sequential movements as no mode switches are required. > **NOTE** > > Some robot controllers prevent the external activation of automatic operating mode. In this case, changing the operating mode manually at the robot controller is mandatory. > **NOTE** > > The current operation mode and safety state can be requested via [getCurrentRobotControllerState](getCurrentRobotControllerState). If a mode change is not possible, the response lists reasons for the failed change.
2971
+
2972
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2973
+ :type cell: str
2974
+ :param controller: Unique identifier to address a controller in the cell. (required)
2975
+ :type controller: str
2976
+ :param mode: (required)
2977
+ :type mode: SettableRobotSystemMode
2978
+ :param _request_timeout: timeout setting for this request. If one
2979
+ number provided, it will be total request
2980
+ timeout. It can also be a pair (tuple) of
2981
+ (connection, read) timeouts.
2982
+ :type _request_timeout: int, tuple(int, int), optional
2983
+ :param _request_auth: set to override the auth_settings for an a single
2984
+ request; this effectively ignores the
2985
+ authentication in the spec for a single request.
2986
+ :type _request_auth: dict, optional
2987
+ :param _content_type: force content-type for the request.
2988
+ :type _content_type: str, Optional
2989
+ :param _headers: set to override the headers for a single
2990
+ request; this effectively ignores the headers
2991
+ in the spec for a single request.
2992
+ :type _headers: dict, optional
2993
+ :param _host_index: set to override the host_index for a single
2994
+ request; this effectively ignores the host_index
2995
+ in the spec for a single request.
2996
+ :type _host_index: int, optional
2997
+ :return: Returns the result object.
2998
+ """ # noqa: E501
2999
+
3000
+ _param = self._set_default_mode_serialize(
3001
+ cell=cell,
3002
+ controller=controller,
3003
+ mode=mode,
3004
+ _request_auth=_request_auth,
3005
+ _content_type=_content_type,
3006
+ _headers=_headers,
3007
+ _host_index=_host_index
3008
+ )
3009
+
3010
+ _response_types_map: Dict[str, Optional[str]] = {
3011
+ '200': None,
3012
+ '400': "Error",
3013
+ '404': "Error",
3014
+ }
3015
+
3016
+ response_data = await self.api_client.call_api(
3017
+ *_param,
3018
+ _request_timeout=_request_timeout
3019
+ )
3020
+ await response_data.read()
3021
+ return self.api_client.response_deserialize(
3022
+ response_data=response_data,
3023
+ response_types_map=_response_types_map,
3024
+ ).data
3025
+
3026
+
3027
+ @validate_call
3028
+ async def set_default_mode_with_http_info(
3029
+ self,
3030
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
3031
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
3032
+ mode: SettableRobotSystemMode,
3033
+ _request_timeout: Union[
3034
+ None,
3035
+ Annotated[StrictFloat, Field(gt=0)],
3036
+ Tuple[
3037
+ Annotated[StrictFloat, Field(gt=0)],
3038
+ Annotated[StrictFloat, Field(gt=0)]
3039
+ ]
3040
+ ] = None,
3041
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3042
+ _content_type: Optional[StrictStr] = None,
3043
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3044
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3045
+ ) -> ApiResponse[None]:
3046
+ """Set Default Mode
3047
+
3048
+ Switch between monitor and control usage as default for a robot controller. Monitoring mode is used to read information from the robot controller and control mode is used to command the robot system. As long as the robot controller is connected via network, monitoring mode is always possible. To switch to control mode the robot controller must be in `automatic` or `manual` operating mode and safety state `normal` or `reduced`. If the robot controller is in `manual` operating mode, you have to manually confirm the control usage activation on the robot control panel. This manual confirmation can't be replaced with this API. Without manual confirmation the robot controller will stay in monitor mode. The robot system will try to activate the required operation mode for the requested usage unless no active call requires a different mode. > **NOTE** > > `setDefaultMode` enables the robot controller to stay in control mode to keep the motors activated. > This allows for faster execution of sequential movements as no mode switches are required. > **NOTE** > > Some robot controllers prevent the external activation of automatic operating mode. In this case, changing the operating mode manually at the robot controller is mandatory. > **NOTE** > > The current operation mode and safety state can be requested via [getCurrentRobotControllerState](getCurrentRobotControllerState). If a mode change is not possible, the response lists reasons for the failed change.
3049
+
3050
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
3051
+ :type cell: str
3052
+ :param controller: Unique identifier to address a controller in the cell. (required)
3053
+ :type controller: str
3054
+ :param mode: (required)
3055
+ :type mode: SettableRobotSystemMode
3056
+ :param _request_timeout: timeout setting for this request. If one
3057
+ number provided, it will be total request
3058
+ timeout. It can also be a pair (tuple) of
3059
+ (connection, read) timeouts.
3060
+ :type _request_timeout: int, tuple(int, int), optional
3061
+ :param _request_auth: set to override the auth_settings for an a single
3062
+ request; this effectively ignores the
3063
+ authentication in the spec for a single request.
3064
+ :type _request_auth: dict, optional
3065
+ :param _content_type: force content-type for the request.
3066
+ :type _content_type: str, Optional
3067
+ :param _headers: set to override the headers for a single
3068
+ request; this effectively ignores the headers
3069
+ in the spec for a single request.
3070
+ :type _headers: dict, optional
3071
+ :param _host_index: set to override the host_index for a single
3072
+ request; this effectively ignores the host_index
3073
+ in the spec for a single request.
3074
+ :type _host_index: int, optional
3075
+ :return: Returns the result object.
3076
+ """ # noqa: E501
3077
+
3078
+ _param = self._set_default_mode_serialize(
3079
+ cell=cell,
3080
+ controller=controller,
3081
+ mode=mode,
3082
+ _request_auth=_request_auth,
3083
+ _content_type=_content_type,
3084
+ _headers=_headers,
3085
+ _host_index=_host_index
3086
+ )
3087
+
3088
+ _response_types_map: Dict[str, Optional[str]] = {
3089
+ '200': None,
3090
+ '400': "Error",
3091
+ '404': "Error",
3092
+ }
3093
+
3094
+ response_data = await self.api_client.call_api(
3095
+ *_param,
3096
+ _request_timeout=_request_timeout
3097
+ )
3098
+ await response_data.read()
3099
+ return self.api_client.response_deserialize(
3100
+ response_data=response_data,
3101
+ response_types_map=_response_types_map,
3102
+ )
3103
+
3104
+
3105
+ @validate_call
3106
+ async def set_default_mode_without_preload_content(
3107
+ self,
3108
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
3109
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
3110
+ mode: SettableRobotSystemMode,
3111
+ _request_timeout: Union[
3112
+ None,
3113
+ Annotated[StrictFloat, Field(gt=0)],
3114
+ Tuple[
3115
+ Annotated[StrictFloat, Field(gt=0)],
3116
+ Annotated[StrictFloat, Field(gt=0)]
3117
+ ]
3118
+ ] = None,
3119
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3120
+ _content_type: Optional[StrictStr] = None,
3121
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3122
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3123
+ ) -> RESTResponseType:
3124
+ """Set Default Mode
3125
+
3126
+ Switch between monitor and control usage as default for a robot controller. Monitoring mode is used to read information from the robot controller and control mode is used to command the robot system. As long as the robot controller is connected via network, monitoring mode is always possible. To switch to control mode the robot controller must be in `automatic` or `manual` operating mode and safety state `normal` or `reduced`. If the robot controller is in `manual` operating mode, you have to manually confirm the control usage activation on the robot control panel. This manual confirmation can't be replaced with this API. Without manual confirmation the robot controller will stay in monitor mode. The robot system will try to activate the required operation mode for the requested usage unless no active call requires a different mode. > **NOTE** > > `setDefaultMode` enables the robot controller to stay in control mode to keep the motors activated. > This allows for faster execution of sequential movements as no mode switches are required. > **NOTE** > > Some robot controllers prevent the external activation of automatic operating mode. In this case, changing the operating mode manually at the robot controller is mandatory. > **NOTE** > > The current operation mode and safety state can be requested via [getCurrentRobotControllerState](getCurrentRobotControllerState). If a mode change is not possible, the response lists reasons for the failed change.
3127
+
3128
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
3129
+ :type cell: str
3130
+ :param controller: Unique identifier to address a controller in the cell. (required)
3131
+ :type controller: str
3132
+ :param mode: (required)
3133
+ :type mode: SettableRobotSystemMode
3134
+ :param _request_timeout: timeout setting for this request. If one
3135
+ number provided, it will be total request
3136
+ timeout. It can also be a pair (tuple) of
3137
+ (connection, read) timeouts.
3138
+ :type _request_timeout: int, tuple(int, int), optional
3139
+ :param _request_auth: set to override the auth_settings for an a single
3140
+ request; this effectively ignores the
3141
+ authentication in the spec for a single request.
3142
+ :type _request_auth: dict, optional
3143
+ :param _content_type: force content-type for the request.
3144
+ :type _content_type: str, Optional
3145
+ :param _headers: set to override the headers for a single
3146
+ request; this effectively ignores the headers
3147
+ in the spec for a single request.
3148
+ :type _headers: dict, optional
3149
+ :param _host_index: set to override the host_index for a single
3150
+ request; this effectively ignores the host_index
3151
+ in the spec for a single request.
3152
+ :type _host_index: int, optional
3153
+ :return: Returns the result object.
3154
+ """ # noqa: E501
3155
+
3156
+ _param = self._set_default_mode_serialize(
3157
+ cell=cell,
3158
+ controller=controller,
3159
+ mode=mode,
3160
+ _request_auth=_request_auth,
3161
+ _content_type=_content_type,
3162
+ _headers=_headers,
3163
+ _host_index=_host_index
3164
+ )
3165
+
3166
+ _response_types_map: Dict[str, Optional[str]] = {
3167
+ '200': None,
3168
+ '400': "Error",
3169
+ '404': "Error",
3170
+ }
3171
+
3172
+ response_data = await self.api_client.call_api(
3173
+ *_param,
3174
+ _request_timeout=_request_timeout
3175
+ )
3176
+ return response_data.response
3177
+
3178
+
3179
+ def _set_default_mode_serialize(
3180
+ self,
3181
+ cell,
3182
+ controller,
3183
+ mode,
3184
+ _request_auth,
3185
+ _content_type,
3186
+ _headers,
3187
+ _host_index,
3188
+ ) -> RequestSerialized:
3189
+
3190
+ _host = None
3191
+
3192
+ _collection_formats: Dict[str, str] = {
3193
+ }
3194
+
3195
+ _path_params: Dict[str, str] = {}
3196
+ _query_params: List[Tuple[str, str]] = []
3197
+ _header_params: Dict[str, Optional[str]] = _headers or {}
3198
+ _form_params: List[Tuple[str, str]] = []
3199
+ _files: Dict[str, Union[str, bytes]] = {}
3200
+ _body_params: Optional[bytes] = None
3201
+
3202
+ # process the path parameters
3203
+ if cell is not None:
3204
+ _path_params['cell'] = cell
3205
+ if controller is not None:
3206
+ _path_params['controller'] = controller
3207
+ # process the query parameters
3208
+ if mode is not None:
3209
+
3210
+ _query_params.append(('mode', mode.value))
3211
+
3212
+ # process the header parameters
3213
+ # process the form parameters
3214
+ # process the body parameter
3215
+
3216
+
3217
+ # set the HTTP header `Accept`
3218
+ _header_params['Accept'] = self.api_client.select_header_accept(
3219
+ [
3220
+ 'application/json'
3221
+ ]
3222
+ )
3223
+
3224
+
3225
+ # authentication setting
3226
+ _auth_settings: List[str] = [
3227
+ 'BasicAuth',
3228
+ 'BearerAuth'
3229
+ ]
3230
+
3231
+ return self.api_client.param_serialize(
3232
+ method='PUT',
3233
+ resource_path='/cells/{cell}/controllers/{controller}/mode',
3234
+ path_params=_path_params,
3235
+ query_params=_query_params,
3236
+ header_params=_header_params,
3237
+ body=_body_params,
3238
+ post_params=_form_params,
3239
+ files=_files,
3240
+ auth_settings=_auth_settings,
3241
+ collection_formats=_collection_formats,
3242
+ _host=_host,
3243
+ _request_auth=_request_auth
3244
+ )
3245
+
3246
+
3247
+
3248
+ @validate_call
3249
+ async def stream_free_drive(self, cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")], controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")], response_rate: Optional[Annotated[int, Field(le=2147483647, strict=True, ge=0)]] = None) -> AsyncGenerator[RobotControllerState, None]: # noqa: E501
3250
+ """Stream Free Drive # noqa: E501
3251
+
3252
+ <!-- theme: success --> > Websocket endpoint Sets the robot controller into freedrive mode and stays in freedrive until the websocket connection is closed by the client. In freedrive mode, it is possible to move the attached motion groups by hand. This is a blocking call. As long as the websocket connection is open, no other endpoint can control or move the robot. <!-- theme: danger --> > **DANGER** > > Danger caused by robot. Improper assessment by the integrator of the application-specific hazards can result in people being > crushed, drawn in or caught due to the robot's complex movement sequences. Before opening the websocket, ensure that > > - The robot is in a safe state, > - The right payload is set, > - No humans or object are within the robot's reach or within the cell. As long as the websocket connection is open you will get the current state of the robot system in the response in the specified `response_rate`. If the activation failed, the returned status will return possible reasons for the failure. Free drive mode is only available for robot controllers that support it, in particular cobots. Use [listRobotControllers](listRobotControllers) to check if the robot controller supports free drive mode. # noqa: E501
3253
+ :param request: A StreamFreeDriveRequest
3254
+ :info All responses from the server will be yielded
3255
+ :type StreamFreeDriveRequest
3256
+ """
3257
+ def format_path_parameters(path):
3258
+ # Find all substrings that are enclosed in brackets
3259
+ bracket_contents = re.findall(r'\{(.*?)\}', path)
3260
+
3261
+ # For each found substring, replace underscores with spaces
3262
+ for content in bracket_contents:
3263
+ content = "{" + content + "}"
3264
+ modified_content = humps.dekebabize(content)
3265
+ path = path.replace(content, modified_content)
3266
+
3267
+ return path
3268
+
3269
+ def append_parameter_connector(url_schema):
3270
+ if not "?" in url_schema:
3271
+ url_schema += "?"
3272
+ else:
3273
+ url_schema += "&"
3274
+ return url_schema
3275
+
3276
+ path = format_path_parameters("/cells/{cell}/controllers/{controller}/free-drive-stream")
3277
+ path = path.format(cell=cell,controller=controller,)
3278
+
3279
+ headers = websockets.Headers()
3280
+ tmp_host = self.api_client.configuration.host
3281
+ if self.api_client.configuration.host.startswith("https://"):
3282
+ # Basic Auth
3283
+ if self.api_client.configuration.username:
3284
+ tmp_host = self.api_client.configuration.host.replace("https://", "")
3285
+ tmp_host = f"wss://{self.api_client.configuration.username}:{self.api_client.configuration.password}@{tmp_host}"
3286
+
3287
+ # OAuth2
3288
+ elif self.api_client.configuration.access_token:
3289
+ tmp_host = self.api_client.configuration.host.replace("https://", "")
3290
+ tmp_host = f"wss://{tmp_host}"
3291
+ headers = websockets.Headers([
3292
+ ("Authorization", f"Bearer {self.api_client.configuration.access_token}")
3293
+ ])
3294
+ else:
3295
+ tmp_host = tmp_host.replace("http://", "ws://")
3296
+
3297
+ url_schema = tmp_host + path
3298
+ if locals().get("response_rate") is not None:
3299
+ url_schema = append_parameter_connector(url_schema)
3300
+ if isinstance(response_rate, list):
3301
+ url_schema += "&".join(["response_rate=" + s for s in response_rate])
3302
+ else:
3303
+ url_schema += "response_rate="+str(response_rate)
3304
+ full_url = furl(url_schema)
3305
+
3306
+ async with websockets.connect(full_url.url, open_timeout=10, additional_headers=headers) as websocket:
3307
+ try:
3308
+ async for response in websocket:
3309
+ response_data = json.loads(response)
3310
+ if "result" not in response_data:
3311
+ raise Exception(response_data)
3312
+ yield RobotControllerState.model_validate(response_data["result"])
3313
+ except websockets.exceptions.ConnectionClosed:
3314
+ return
3315
+ finally:
3316
+ await websocket.close()
3317
+
3318
+
3319
+ @validate_call
3320
+ async def stream_robot_controller_state(self, cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")], controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")], response_rate: Optional[Annotated[int, Field(le=2147483647, strict=True, ge=0)]] = None, add_controller_timeout: Optional[Annotated[int, Field(le=2147483647, strict=True, ge=0)]] = None) -> AsyncGenerator[RobotControllerState, None]: # noqa: E501
3321
+ """Stream State # noqa: E501
3322
+
3323
+ <!-- theme: success --> > Websocket endpoint Receive updates of the state of a robot controller. The stream can be opened before the controller is registered. To register a controller, call [addRobotController](addRobotController). While connecting, the stream sends initialization updates. Once the controller reaches `MODE_MONITOR`, it sends controller state updates. # noqa: E501
3324
+ :param request: A StreamRobotControllerStateRequest
3325
+ :info All responses from the server will be yielded
3326
+ :type StreamRobotControllerStateRequest
3327
+ """
3328
+ def format_path_parameters(path):
3329
+ # Find all substrings that are enclosed in brackets
3330
+ bracket_contents = re.findall(r'\{(.*?)\}', path)
3331
+
3332
+ # For each found substring, replace underscores with spaces
3333
+ for content in bracket_contents:
3334
+ content = "{" + content + "}"
3335
+ modified_content = humps.dekebabize(content)
3336
+ path = path.replace(content, modified_content)
3337
+
3338
+ return path
3339
+
3340
+ def append_parameter_connector(url_schema):
3341
+ if not "?" in url_schema:
3342
+ url_schema += "?"
3343
+ else:
3344
+ url_schema += "&"
3345
+ return url_schema
3346
+
3347
+ path = format_path_parameters("/cells/{cell}/controllers/{controller}/state-stream")
3348
+ path = path.format(cell=cell,controller=controller,)
3349
+
3350
+ headers = websockets.Headers()
3351
+ tmp_host = self.api_client.configuration.host
3352
+ if self.api_client.configuration.host.startswith("https://"):
3353
+ # Basic Auth
3354
+ if self.api_client.configuration.username:
3355
+ tmp_host = self.api_client.configuration.host.replace("https://", "")
3356
+ tmp_host = f"wss://{self.api_client.configuration.username}:{self.api_client.configuration.password}@{tmp_host}"
3357
+
3358
+ # OAuth2
3359
+ elif self.api_client.configuration.access_token:
3360
+ tmp_host = self.api_client.configuration.host.replace("https://", "")
3361
+ tmp_host = f"wss://{tmp_host}"
3362
+ headers = websockets.Headers([
3363
+ ("Authorization", f"Bearer {self.api_client.configuration.access_token}")
3364
+ ])
3365
+ else:
3366
+ tmp_host = tmp_host.replace("http://", "ws://")
3367
+
3368
+ url_schema = tmp_host + path
3369
+ if locals().get("response_rate") is not None:
3370
+ url_schema = append_parameter_connector(url_schema)
3371
+ if isinstance(response_rate, list):
3372
+ url_schema += "&".join(["response_rate=" + s for s in response_rate])
3373
+ else:
3374
+ url_schema += "response_rate="+str(response_rate)
3375
+ if locals().get("add_controller_timeout") is not None:
3376
+ url_schema = append_parameter_connector(url_schema)
3377
+ if isinstance(add_controller_timeout, list):
3378
+ url_schema += "&".join(["add_controller_timeout=" + s for s in add_controller_timeout])
3379
+ else:
3380
+ url_schema += "add_controller_timeout="+str(add_controller_timeout)
3381
+ full_url = furl(url_schema)
3382
+
3383
+ async with websockets.connect(full_url.url, open_timeout=10, additional_headers=headers) as websocket:
3384
+ try:
3385
+ async for response in websocket:
3386
+ response_data = json.loads(response)
3387
+ if "result" not in response_data:
3388
+ raise Exception(response_data)
3389
+ yield RobotControllerState.model_validate(response_data["result"])
3390
+ except websockets.exceptions.ConnectionClosed:
3391
+ return
3392
+ finally:
3393
+ await websocket.close()
3394
+
3395
+
3396
+ @validate_call
3397
+ async def update_robot_controller(
3398
+ self,
3399
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
3400
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
3401
+ robot_controller: RobotController,
3402
+ completion_timeout: Optional[Annotated[int, Field(strict=True, ge=1)]] = None,
3403
+ _request_timeout: Union[
3404
+ None,
3405
+ Annotated[StrictFloat, Field(gt=0)],
3406
+ Tuple[
3407
+ Annotated[StrictFloat, Field(gt=0)],
3408
+ Annotated[StrictFloat, Field(gt=0)]
3409
+ ]
3410
+ ] = None,
3411
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3412
+ _content_type: Optional[StrictStr] = None,
3413
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3414
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3415
+ ) -> None:
3416
+ """Update Robot Controller
3417
+
3418
+ Update the configuration of a robot controller. Reconfigure certain options of a robot controller, or deploy a specific container image of a robot controller. To update a virtual controller, the previous controller will be deleted and a new one created. Changes to the configuration, e.g., TCPs, coordinate systems, mounting, are **not** transferred to the new robot. <!-- theme: info --> > **NOTE** > > An update is not a reset. To do a reset: > 1. Get the current configuration via [getRobotController](getRobotController). > 2. Delete the existing virtual robot controller via [deleteRobotController](deleteRobotController). > 3. Add a virtual robot controller with [addRobotController](addRobotController).
3419
+
3420
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
3421
+ :type cell: str
3422
+ :param controller: Unique identifier to address a controller in the cell. (required)
3423
+ :type controller: str
3424
+ :param robot_controller: (required)
3425
+ :type robot_controller: RobotController
3426
+ :param completion_timeout:
3427
+ :type completion_timeout: int
3428
+ :param _request_timeout: timeout setting for this request. If one
3429
+ number provided, it will be total request
3430
+ timeout. It can also be a pair (tuple) of
3431
+ (connection, read) timeouts.
3432
+ :type _request_timeout: int, tuple(int, int), optional
3433
+ :param _request_auth: set to override the auth_settings for an a single
3434
+ request; this effectively ignores the
3435
+ authentication in the spec for a single request.
3436
+ :type _request_auth: dict, optional
3437
+ :param _content_type: force content-type for the request.
3438
+ :type _content_type: str, Optional
3439
+ :param _headers: set to override the headers for a single
3440
+ request; this effectively ignores the headers
3441
+ in the spec for a single request.
3442
+ :type _headers: dict, optional
3443
+ :param _host_index: set to override the host_index for a single
3444
+ request; this effectively ignores the host_index
3445
+ in the spec for a single request.
3446
+ :type _host_index: int, optional
3447
+ :return: Returns the result object.
3448
+ """ # noqa: E501
3449
+
3450
+ _param = self._update_robot_controller_serialize(
3451
+ cell=cell,
3452
+ controller=controller,
3453
+ robot_controller=robot_controller,
3454
+ completion_timeout=completion_timeout,
3455
+ _request_auth=_request_auth,
3456
+ _content_type=_content_type,
3457
+ _headers=_headers,
3458
+ _host_index=_host_index
3459
+ )
3460
+
3461
+ _response_types_map: Dict[str, Optional[str]] = {
3462
+ '200': None,
3463
+ '202': None,
3464
+ '404': "Error",
3465
+ }
3466
+
3467
+ response_data = await self.api_client.call_api(
3468
+ *_param,
3469
+ _request_timeout=_request_timeout
3470
+ )
3471
+ await response_data.read()
3472
+ return self.api_client.response_deserialize(
3473
+ response_data=response_data,
3474
+ response_types_map=_response_types_map,
3475
+ ).data
3476
+
3477
+
3478
+ @validate_call
3479
+ async def update_robot_controller_with_http_info(
3480
+ self,
3481
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
3482
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
3483
+ robot_controller: RobotController,
3484
+ completion_timeout: Optional[Annotated[int, Field(strict=True, ge=1)]] = None,
3485
+ _request_timeout: Union[
3486
+ None,
3487
+ Annotated[StrictFloat, Field(gt=0)],
3488
+ Tuple[
3489
+ Annotated[StrictFloat, Field(gt=0)],
3490
+ Annotated[StrictFloat, Field(gt=0)]
3491
+ ]
3492
+ ] = None,
3493
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3494
+ _content_type: Optional[StrictStr] = None,
3495
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3496
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3497
+ ) -> ApiResponse[None]:
3498
+ """Update Robot Controller
3499
+
3500
+ Update the configuration of a robot controller. Reconfigure certain options of a robot controller, or deploy a specific container image of a robot controller. To update a virtual controller, the previous controller will be deleted and a new one created. Changes to the configuration, e.g., TCPs, coordinate systems, mounting, are **not** transferred to the new robot. <!-- theme: info --> > **NOTE** > > An update is not a reset. To do a reset: > 1. Get the current configuration via [getRobotController](getRobotController). > 2. Delete the existing virtual robot controller via [deleteRobotController](deleteRobotController). > 3. Add a virtual robot controller with [addRobotController](addRobotController).
3501
+
3502
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
3503
+ :type cell: str
3504
+ :param controller: Unique identifier to address a controller in the cell. (required)
3505
+ :type controller: str
3506
+ :param robot_controller: (required)
3507
+ :type robot_controller: RobotController
3508
+ :param completion_timeout:
3509
+ :type completion_timeout: int
3510
+ :param _request_timeout: timeout setting for this request. If one
3511
+ number provided, it will be total request
3512
+ timeout. It can also be a pair (tuple) of
3513
+ (connection, read) timeouts.
3514
+ :type _request_timeout: int, tuple(int, int), optional
3515
+ :param _request_auth: set to override the auth_settings for an a single
3516
+ request; this effectively ignores the
3517
+ authentication in the spec for a single request.
3518
+ :type _request_auth: dict, optional
3519
+ :param _content_type: force content-type for the request.
3520
+ :type _content_type: str, Optional
3521
+ :param _headers: set to override the headers for a single
3522
+ request; this effectively ignores the headers
3523
+ in the spec for a single request.
3524
+ :type _headers: dict, optional
3525
+ :param _host_index: set to override the host_index for a single
3526
+ request; this effectively ignores the host_index
3527
+ in the spec for a single request.
3528
+ :type _host_index: int, optional
3529
+ :return: Returns the result object.
3530
+ """ # noqa: E501
3531
+
3532
+ _param = self._update_robot_controller_serialize(
3533
+ cell=cell,
3534
+ controller=controller,
3535
+ robot_controller=robot_controller,
3536
+ completion_timeout=completion_timeout,
3537
+ _request_auth=_request_auth,
3538
+ _content_type=_content_type,
3539
+ _headers=_headers,
3540
+ _host_index=_host_index
3541
+ )
3542
+
3543
+ _response_types_map: Dict[str, Optional[str]] = {
3544
+ '200': None,
3545
+ '202': None,
3546
+ '404': "Error",
3547
+ }
3548
+
3549
+ response_data = await self.api_client.call_api(
3550
+ *_param,
3551
+ _request_timeout=_request_timeout
3552
+ )
3553
+ await response_data.read()
3554
+ return self.api_client.response_deserialize(
3555
+ response_data=response_data,
3556
+ response_types_map=_response_types_map,
3557
+ )
3558
+
3559
+
3560
+ @validate_call
3561
+ async def update_robot_controller_without_preload_content(
3562
+ self,
3563
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
3564
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
3565
+ robot_controller: RobotController,
3566
+ completion_timeout: Optional[Annotated[int, Field(strict=True, ge=1)]] = None,
3567
+ _request_timeout: Union[
3568
+ None,
3569
+ Annotated[StrictFloat, Field(gt=0)],
3570
+ Tuple[
3571
+ Annotated[StrictFloat, Field(gt=0)],
3572
+ Annotated[StrictFloat, Field(gt=0)]
3573
+ ]
3574
+ ] = None,
3575
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3576
+ _content_type: Optional[StrictStr] = None,
3577
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3578
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3579
+ ) -> RESTResponseType:
3580
+ """Update Robot Controller
3581
+
3582
+ Update the configuration of a robot controller. Reconfigure certain options of a robot controller, or deploy a specific container image of a robot controller. To update a virtual controller, the previous controller will be deleted and a new one created. Changes to the configuration, e.g., TCPs, coordinate systems, mounting, are **not** transferred to the new robot. <!-- theme: info --> > **NOTE** > > An update is not a reset. To do a reset: > 1. Get the current configuration via [getRobotController](getRobotController). > 2. Delete the existing virtual robot controller via [deleteRobotController](deleteRobotController). > 3. Add a virtual robot controller with [addRobotController](addRobotController).
3583
+
3584
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
3585
+ :type cell: str
3586
+ :param controller: Unique identifier to address a controller in the cell. (required)
3587
+ :type controller: str
3588
+ :param robot_controller: (required)
3589
+ :type robot_controller: RobotController
3590
+ :param completion_timeout:
3591
+ :type completion_timeout: int
3592
+ :param _request_timeout: timeout setting for this request. If one
3593
+ number provided, it will be total request
3594
+ timeout. It can also be a pair (tuple) of
3595
+ (connection, read) timeouts.
3596
+ :type _request_timeout: int, tuple(int, int), optional
3597
+ :param _request_auth: set to override the auth_settings for an a single
3598
+ request; this effectively ignores the
3599
+ authentication in the spec for a single request.
3600
+ :type _request_auth: dict, optional
3601
+ :param _content_type: force content-type for the request.
3602
+ :type _content_type: str, Optional
3603
+ :param _headers: set to override the headers for a single
3604
+ request; this effectively ignores the headers
3605
+ in the spec for a single request.
3606
+ :type _headers: dict, optional
3607
+ :param _host_index: set to override the host_index for a single
3608
+ request; this effectively ignores the host_index
3609
+ in the spec for a single request.
3610
+ :type _host_index: int, optional
3611
+ :return: Returns the result object.
3612
+ """ # noqa: E501
3613
+
3614
+ _param = self._update_robot_controller_serialize(
3615
+ cell=cell,
3616
+ controller=controller,
3617
+ robot_controller=robot_controller,
3618
+ completion_timeout=completion_timeout,
3619
+ _request_auth=_request_auth,
3620
+ _content_type=_content_type,
3621
+ _headers=_headers,
3622
+ _host_index=_host_index
3623
+ )
3624
+
3625
+ _response_types_map: Dict[str, Optional[str]] = {
3626
+ '200': None,
3627
+ '202': None,
3628
+ '404': "Error",
3629
+ }
3630
+
3631
+ response_data = await self.api_client.call_api(
3632
+ *_param,
3633
+ _request_timeout=_request_timeout
3634
+ )
3635
+ return response_data.response
3636
+
3637
+
3638
+ def _update_robot_controller_serialize(
3639
+ self,
3640
+ cell,
3641
+ controller,
3642
+ robot_controller,
3643
+ completion_timeout,
3644
+ _request_auth,
3645
+ _content_type,
3646
+ _headers,
3647
+ _host_index,
3648
+ ) -> RequestSerialized:
3649
+
3650
+ _host = None
3651
+
3652
+ _collection_formats: Dict[str, str] = {
3653
+ }
3654
+
3655
+ _path_params: Dict[str, str] = {}
3656
+ _query_params: List[Tuple[str, str]] = []
3657
+ _header_params: Dict[str, Optional[str]] = _headers or {}
3658
+ _form_params: List[Tuple[str, str]] = []
3659
+ _files: Dict[str, Union[str, bytes]] = {}
3660
+ _body_params: Optional[bytes] = None
3661
+
3662
+ # process the path parameters
3663
+ if cell is not None:
3664
+ _path_params['cell'] = cell
3665
+ if controller is not None:
3666
+ _path_params['controller'] = controller
3667
+ # process the query parameters
3668
+ if completion_timeout is not None:
3669
+
3670
+ _query_params.append(('completion_timeout', completion_timeout))
3671
+
3672
+ # process the header parameters
3673
+ # process the form parameters
3674
+ # process the body parameter
3675
+ if robot_controller is not None:
3676
+ _body_params = robot_controller
3677
+
3678
+
3679
+ # set the HTTP header `Accept`
3680
+ _header_params['Accept'] = self.api_client.select_header_accept(
3681
+ [
3682
+ 'application/json'
3683
+ ]
3684
+ )
3685
+
3686
+ # set the HTTP header `Content-Type`
3687
+ if _content_type:
3688
+ _header_params['Content-Type'] = _content_type
3689
+ else:
3690
+ _default_content_type = (
3691
+ self.api_client.select_header_content_type(
3692
+ [
3693
+ 'application/json'
3694
+ ]
3695
+ )
3696
+ )
3697
+ if _default_content_type is not None:
3698
+ _header_params['Content-Type'] = _default_content_type
3699
+
3700
+ # authentication setting
3701
+ _auth_settings: List[str] = [
3702
+ 'BasicAuth',
3703
+ 'BearerAuth'
3704
+ ]
3705
+
3706
+ return self.api_client.param_serialize(
3707
+ method='PUT',
3708
+ resource_path='/cells/{cell}/controllers/{controller}',
3709
+ path_params=_path_params,
3710
+ query_params=_query_params,
3711
+ header_params=_header_params,
3712
+ body=_body_params,
3713
+ post_params=_form_params,
3714
+ files=_files,
3715
+ auth_settings=_auth_settings,
3716
+ collection_formats=_collection_formats,
3717
+ _host=_host,
3718
+ _request_auth=_request_auth
3719
+ )
3720
+
3721
+