wandelbots-api-client 25.6.0.dev7__py3-none-any.whl → 25.10.0rc2__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 (658) 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 +13 -8
  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 +59 -8
  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 +53 -8
  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 +27 -5
  29. wandelbots_api_client/api/virtual_robot_mode_api.py +1 -2
  30. wandelbots_api_client/api/virtual_robot_setup_api.py +16 -17
  31. wandelbots_api_client/api_client.py +14 -7
  32. wandelbots_api_client/authorization.py +244 -0
  33. wandelbots_api_client/configuration.py +18 -7
  34. wandelbots_api_client/exceptions.py +1 -1
  35. wandelbots_api_client/models/__init__.py +3 -4
  36. wandelbots_api_client/models/abb_controller.py +5 -5
  37. wandelbots_api_client/models/abb_controller_egm_server.py +3 -3
  38. wandelbots_api_client/models/activate_license_request.py +2 -2
  39. wandelbots_api_client/models/add_request.py +3 -3
  40. wandelbots_api_client/models/all_joint_positions_request.py +3 -3
  41. wandelbots_api_client/models/all_joint_positions_response.py +2 -2
  42. wandelbots_api_client/{v2/models/error2.py → models/api_version.py} +10 -10
  43. wandelbots_api_client/models/app.py +8 -8
  44. wandelbots_api_client/models/array_input.py +2 -2
  45. wandelbots_api_client/models/array_output.py +2 -2
  46. wandelbots_api_client/models/behavior.py +1 -1
  47. wandelbots_api_client/models/blending_auto.py +3 -3
  48. wandelbots_api_client/models/blending_position.py +3 -3
  49. wandelbots_api_client/models/box.py +5 -5
  50. wandelbots_api_client/models/box2.py +6 -6
  51. wandelbots_api_client/models/box3.py +6 -6
  52. wandelbots_api_client/models/capsule.py +3 -3
  53. wandelbots_api_client/models/capsule2.py +4 -4
  54. wandelbots_api_client/models/capsule3.py +4 -4
  55. wandelbots_api_client/models/capture.py +2 -2
  56. wandelbots_api_client/models/cell.py +4 -4
  57. wandelbots_api_client/models/circle.py +3 -3
  58. wandelbots_api_client/models/code_with_arguments.py +7 -6
  59. wandelbots_api_client/models/collection_value.py +1 -1
  60. wandelbots_api_client/models/collider.py +4 -4
  61. wandelbots_api_client/models/collider_input.py +4 -4
  62. wandelbots_api_client/models/collider_output.py +4 -4
  63. wandelbots_api_client/models/collider_output_shape.py +1 -1
  64. wandelbots_api_client/models/collider_shape.py +1 -41
  65. wandelbots_api_client/models/collision.py +7 -7
  66. wandelbots_api_client/models/collision_contact.py +3 -3
  67. wandelbots_api_client/models/collision_motion_group.py +7 -6
  68. wandelbots_api_client/models/collision_motion_group_assembly.py +9 -8
  69. wandelbots_api_client/models/collision_robot_configuration_input.py +12 -10
  70. wandelbots_api_client/models/collision_robot_configuration_output.py +12 -10
  71. wandelbots_api_client/models/collision_scene.py +11 -9
  72. wandelbots_api_client/models/collision_scene_assembly.py +14 -12
  73. wandelbots_api_client/models/command.py +7 -7
  74. wandelbots_api_client/models/command_settings.py +4 -4
  75. wandelbots_api_client/models/comparator.py +1 -1
  76. wandelbots_api_client/models/compound.py +2 -2
  77. wandelbots_api_client/models/container_environment_inner.py +3 -3
  78. wandelbots_api_client/models/container_image.py +4 -4
  79. wandelbots_api_client/models/container_image_secrets_inner.py +2 -2
  80. wandelbots_api_client/models/container_resources.py +2 -2
  81. wandelbots_api_client/models/container_storage.py +3 -3
  82. wandelbots_api_client/models/controller_capabilities.py +3 -3
  83. wandelbots_api_client/models/controller_instance.py +9 -9
  84. wandelbots_api_client/models/controller_instance_list.py +2 -2
  85. wandelbots_api_client/models/convex_hull.py +2 -2
  86. wandelbots_api_client/models/convex_hull2.py +3 -3
  87. wandelbots_api_client/models/convex_hull3.py +3 -3
  88. wandelbots_api_client/models/coordinate_system.py +6 -6
  89. wandelbots_api_client/models/coordinate_systems.py +2 -2
  90. wandelbots_api_client/models/create_device_request_inner.py +1 -1
  91. wandelbots_api_client/models/create_program_run200_response.py +2 -2
  92. wandelbots_api_client/models/create_program_run_request.py +2 -2
  93. wandelbots_api_client/models/create_trigger200_response.py +2 -2
  94. wandelbots_api_client/models/create_trigger_request.py +7 -7
  95. wandelbots_api_client/models/cubic_spline.py +2 -2
  96. wandelbots_api_client/models/cubic_spline_cubic_spline_parameter.py +3 -3
  97. wandelbots_api_client/models/cubic_spline_parameter.py +3 -3
  98. wandelbots_api_client/models/cycle_time.py +2 -2
  99. wandelbots_api_client/models/cylinder.py +3 -3
  100. wandelbots_api_client/models/cylinder2.py +4 -4
  101. wandelbots_api_client/models/cylinder3.py +4 -4
  102. wandelbots_api_client/models/dh_parameter.py +6 -6
  103. wandelbots_api_client/models/direction.py +1 -1
  104. wandelbots_api_client/models/direction_jogging_request.py +10 -10
  105. wandelbots_api_client/models/error.py +3 -3
  106. wandelbots_api_client/models/execute_trajectory_request.py +1 -1
  107. wandelbots_api_client/models/execute_trajectory_response.py +1 -1
  108. wandelbots_api_client/models/execution_result.py +4 -4
  109. wandelbots_api_client/models/external_joint_stream_datapoint.py +3 -3
  110. wandelbots_api_client/models/external_joint_stream_datapoint_value.py +5 -5
  111. wandelbots_api_client/models/fanuc_controller.py +3 -3
  112. wandelbots_api_client/models/feedback_collision.py +5 -5
  113. wandelbots_api_client/models/feedback_joint_limit_exceeded.py +4 -4
  114. wandelbots_api_client/models/feedback_out_of_workspace.py +3 -3
  115. wandelbots_api_client/models/feedback_singularity.py +4 -4
  116. wandelbots_api_client/models/flag.py +2 -2
  117. wandelbots_api_client/models/force_vector.py +4 -4
  118. wandelbots_api_client/models/geometry.py +12 -12
  119. wandelbots_api_client/models/get_all_program_runs200_response.py +2 -2
  120. wandelbots_api_client/models/get_all_triggers200_response.py +2 -2
  121. wandelbots_api_client/models/get_mode_response.py +2 -2
  122. wandelbots_api_client/models/get_trajectory_response.py +2 -2
  123. wandelbots_api_client/models/get_trajectory_sample_response.py +2 -2
  124. wandelbots_api_client/models/google_protobuf_any.py +2 -2
  125. wandelbots_api_client/models/http_exception_response.py +2 -2
  126. wandelbots_api_client/models/http_validation_error.py +2 -2
  127. wandelbots_api_client/models/http_validation_error2.py +2 -2
  128. wandelbots_api_client/models/image_credentials.py +4 -4
  129. wandelbots_api_client/models/info_service_capabilities.py +8 -8
  130. wandelbots_api_client/models/initialize_movement_request.py +6 -6
  131. wandelbots_api_client/models/initialize_movement_response.py +2 -2
  132. wandelbots_api_client/models/initialize_movement_response_init_response.py +3 -3
  133. wandelbots_api_client/models/io.py +6 -6
  134. wandelbots_api_client/models/io_description.py +10 -10
  135. wandelbots_api_client/models/io_value.py +5 -5
  136. wandelbots_api_client/models/ios.py +2 -2
  137. wandelbots_api_client/models/jogging_response.py +4 -4
  138. wandelbots_api_client/models/jogging_service_capabilities.py +3 -3
  139. wandelbots_api_client/models/joint_jogging_request.py +6 -6
  140. wandelbots_api_client/models/joint_limit.py +5 -5
  141. wandelbots_api_client/models/joint_limit_exceeded.py +3 -3
  142. wandelbots_api_client/models/joint_position_request.py +4 -4
  143. wandelbots_api_client/models/joint_trajectory.py +4 -4
  144. wandelbots_api_client/models/joints.py +2 -2
  145. wandelbots_api_client/models/kinematic_service_capabilities.py +4 -4
  146. wandelbots_api_client/models/kuka_controller.py +10 -8
  147. wandelbots_api_client/models/kuka_controller_rsi_server.py +3 -3
  148. wandelbots_api_client/models/license.py +11 -11
  149. wandelbots_api_client/models/license_status.py +3 -3
  150. wandelbots_api_client/models/license_status_enum.py +1 -1
  151. wandelbots_api_client/models/limit_settings.py +13 -13
  152. wandelbots_api_client/models/limits_override.py +7 -7
  153. wandelbots_api_client/models/list_devices200_response_inner.py +1 -1
  154. wandelbots_api_client/models/list_io_descriptions_response.py +2 -2
  155. wandelbots_api_client/models/list_io_values_response.py +2 -2
  156. wandelbots_api_client/models/list_payloads_response.py +2 -2
  157. wandelbots_api_client/models/list_program_metadata_response.py +2 -2
  158. wandelbots_api_client/models/list_recipe_metadata_response.py +2 -2
  159. wandelbots_api_client/models/list_response.py +2 -2
  160. wandelbots_api_client/models/list_tcps_response.py +2 -2
  161. wandelbots_api_client/models/manufacturer.py +1 -1
  162. wandelbots_api_client/models/mode_change_response.py +5 -5
  163. wandelbots_api_client/models/motion_command.py +4 -4
  164. wandelbots_api_client/models/motion_command_blending.py +1 -1
  165. wandelbots_api_client/models/motion_command_path.py +1 -1
  166. wandelbots_api_client/models/motion_group_behavior_getter.py +2 -2
  167. wandelbots_api_client/models/motion_group_info.py +4 -4
  168. wandelbots_api_client/models/motion_group_infos.py +2 -2
  169. wandelbots_api_client/models/motion_group_instance.py +6 -6
  170. wandelbots_api_client/models/motion_group_instance_list.py +2 -2
  171. wandelbots_api_client/models/motion_group_joints.py +5 -5
  172. wandelbots_api_client/models/motion_group_physical.py +6 -6
  173. wandelbots_api_client/models/motion_group_specification.py +3 -3
  174. wandelbots_api_client/models/motion_group_state.py +13 -13
  175. wandelbots_api_client/models/motion_group_state_joint_limit_reached.py +2 -2
  176. wandelbots_api_client/models/motion_group_state_response.py +3 -3
  177. wandelbots_api_client/models/motion_id.py +2 -2
  178. wandelbots_api_client/models/motion_ids_list_response.py +2 -2
  179. wandelbots_api_client/models/motion_vector.py +4 -4
  180. wandelbots_api_client/models/mounting.py +3 -3
  181. wandelbots_api_client/models/move_request.py +9 -9
  182. wandelbots_api_client/models/move_response.py +3 -3
  183. wandelbots_api_client/models/move_to_trajectory_via_joint_ptp_request.py +5 -5
  184. wandelbots_api_client/models/movement.py +2 -2
  185. wandelbots_api_client/models/movement_error.py +2 -2
  186. wandelbots_api_client/models/movement_error_error.py +2 -2
  187. wandelbots_api_client/models/movement_movement.py +4 -4
  188. wandelbots_api_client/models/op_mode.py +2 -2
  189. wandelbots_api_client/models/opcua_node_value_trigger_config.py +4 -4
  190. wandelbots_api_client/models/opcua_node_value_trigger_config_node_value.py +1 -1
  191. wandelbots_api_client/models/optimizer_setup.py +8 -8
  192. wandelbots_api_client/models/out_of_workspace.py +2 -2
  193. wandelbots_api_client/models/path.py +2 -2
  194. wandelbots_api_client/models/path_cartesian_ptp.py +3 -3
  195. wandelbots_api_client/models/path_circle.py +4 -4
  196. wandelbots_api_client/models/path_cubic_spline.py +3 -3
  197. wandelbots_api_client/models/path_joint_ptp.py +3 -3
  198. wandelbots_api_client/models/path_line.py +3 -3
  199. wandelbots_api_client/models/pause_movement_request.py +3 -3
  200. wandelbots_api_client/models/pause_movement_response.py +2 -2
  201. wandelbots_api_client/models/pause_movement_response_pause_response.py +3 -3
  202. wandelbots_api_client/models/pause_on_io.py +3 -3
  203. wandelbots_api_client/models/payload.py +5 -5
  204. wandelbots_api_client/models/plan_collision_free_ptp_request.py +10 -9
  205. wandelbots_api_client/models/plan_collision_free_ptp_request_target.py +1 -1
  206. wandelbots_api_client/models/plan_failed_on_trajectory_response.py +10 -10
  207. wandelbots_api_client/models/plan_failed_response.py +8 -8
  208. wandelbots_api_client/models/plan_request.py +6 -6
  209. wandelbots_api_client/models/plan_response.py +4 -4
  210. wandelbots_api_client/models/plan_successful_response.py +3 -3
  211. wandelbots_api_client/models/plan_trajectory_failed_response.py +4 -4
  212. wandelbots_api_client/models/plan_trajectory_failed_response_error_feedback.py +1 -1
  213. wandelbots_api_client/models/plan_trajectory_request.py +10 -9
  214. wandelbots_api_client/models/plan_trajectory_response.py +2 -2
  215. wandelbots_api_client/models/plan_trajectory_response_response.py +1 -1
  216. wandelbots_api_client/models/plane2.py +2 -2
  217. wandelbots_api_client/models/plane3.py +2 -2
  218. wandelbots_api_client/models/planned_motion.py +6 -6
  219. wandelbots_api_client/models/planner_pose.py +3 -3
  220. wandelbots_api_client/models/planning_limits.py +13 -13
  221. wandelbots_api_client/models/planning_limits_limit_range.py +3 -3
  222. wandelbots_api_client/models/playback_speed_request.py +3 -3
  223. wandelbots_api_client/models/playback_speed_response.py +2 -2
  224. wandelbots_api_client/models/playback_speed_response_playback_speed_response.py +2 -2
  225. wandelbots_api_client/models/point_cloud.py +2 -2
  226. wandelbots_api_client/models/pose.py +4 -4
  227. wandelbots_api_client/models/pose2.py +3 -3
  228. wandelbots_api_client/models/program_metadata.py +7 -7
  229. wandelbots_api_client/models/program_run.py +15 -14
  230. wandelbots_api_client/models/program_run_object.py +7 -7
  231. wandelbots_api_client/models/program_run_state.py +1 -1
  232. wandelbots_api_client/models/program_runner_reference.py +3 -3
  233. wandelbots_api_client/models/pyjectory_datatypes_core_pose.py +3 -3
  234. wandelbots_api_client/models/pyjectory_datatypes_serializer_orientation.py +2 -2
  235. wandelbots_api_client/models/pyjectory_datatypes_serializer_pose.py +2 -2
  236. wandelbots_api_client/models/pyjectory_datatypes_serializer_position.py +2 -2
  237. wandelbots_api_client/models/pyriphery_etcd_etcd_configuration.py +5 -5
  238. wandelbots_api_client/models/pyriphery_hardware_isaac_isaac_configuration.py +5 -5
  239. wandelbots_api_client/models/pyriphery_opcua_opcua_configuration.py +4 -4
  240. wandelbots_api_client/models/pyriphery_pyrae_controller_controller_configuration.py +7 -7
  241. wandelbots_api_client/models/pyriphery_pyrae_robot_robot_configuration.py +8 -8
  242. wandelbots_api_client/models/pyriphery_robotics_configurable_collision_scene_configurable_collision_scene_configuration_input.py +13 -11
  243. wandelbots_api_client/models/pyriphery_robotics_configurable_collision_scene_configurable_collision_scene_configuration_output.py +13 -11
  244. wandelbots_api_client/models/pyriphery_robotics_robotcell_timer_configuration.py +3 -3
  245. wandelbots_api_client/models/pyriphery_robotics_simulation_robot_with_view_open3d_configuration.py +4 -4
  246. wandelbots_api_client/models/pyriphery_robotics_simulation_simulated_io_configuration.py +3 -3
  247. wandelbots_api_client/models/pyriphery_robotics_simulation_simulated_opcua_configuration.py +3 -3
  248. wandelbots_api_client/models/quaternion.py +5 -5
  249. wandelbots_api_client/models/recipe_metadata.py +8 -8
  250. wandelbots_api_client/models/rectangle.py +3 -3
  251. wandelbots_api_client/models/rectangle2.py +4 -4
  252. wandelbots_api_client/models/rectangle3.py +4 -4
  253. wandelbots_api_client/models/rectangular_capsule.py +4 -4
  254. wandelbots_api_client/models/rectangular_capsule2.py +5 -5
  255. wandelbots_api_client/models/rectangular_capsule3.py +5 -5
  256. wandelbots_api_client/models/release_channel.py +1 -1
  257. wandelbots_api_client/models/request.py +1 -1
  258. wandelbots_api_client/models/request1.py +1 -1
  259. wandelbots_api_client/models/response_get_value_programs_values_key_get.py +1 -1
  260. wandelbots_api_client/models/response_get_values_programs_values_get_value.py +1 -1
  261. wandelbots_api_client/models/robot_controller.py +3 -3
  262. wandelbots_api_client/models/robot_controller_configuration.py +1 -1
  263. wandelbots_api_client/models/robot_controller_state.py +8 -8
  264. wandelbots_api_client/models/robot_link_geometry.py +3 -3
  265. wandelbots_api_client/models/robot_state.py +3 -3
  266. wandelbots_api_client/models/robot_system_mode.py +1 -1
  267. wandelbots_api_client/models/robot_tcp.py +5 -5
  268. wandelbots_api_client/models/robot_tcps.py +2 -2
  269. wandelbots_api_client/models/rotation_angle_types.py +1 -1
  270. wandelbots_api_client/models/rotation_angles.py +3 -3
  271. wandelbots_api_client/models/safety_configuration.py +6 -6
  272. wandelbots_api_client/models/safety_setup.py +5 -5
  273. wandelbots_api_client/models/safety_setup_safety_settings.py +3 -3
  274. wandelbots_api_client/models/safety_setup_safety_zone.py +5 -5
  275. wandelbots_api_client/models/safety_zone.py +4 -4
  276. wandelbots_api_client/models/safety_zone_limits.py +3 -3
  277. wandelbots_api_client/models/safety_zone_violation.py +2 -2
  278. wandelbots_api_client/models/service_status.py +3 -3
  279. wandelbots_api_client/models/service_status_phase.py +1 -1
  280. wandelbots_api_client/models/service_status_severity.py +1 -1
  281. wandelbots_api_client/models/service_status_status.py +4 -4
  282. wandelbots_api_client/models/set_io.py +3 -3
  283. wandelbots_api_client/models/set_playback_speed.py +3 -3
  284. wandelbots_api_client/models/single_joint_limit.py +3 -3
  285. wandelbots_api_client/models/singularity.py +3 -3
  286. wandelbots_api_client/models/singularity_type_enum.py +1 -1
  287. wandelbots_api_client/models/sphere.py +2 -2
  288. wandelbots_api_client/models/sphere2.py +3 -3
  289. wandelbots_api_client/models/sphere3.py +3 -3
  290. wandelbots_api_client/models/standstill.py +2 -2
  291. wandelbots_api_client/models/standstill_reason.py +1 -1
  292. wandelbots_api_client/models/standstill_standstill.py +4 -4
  293. wandelbots_api_client/models/start_movement_request.py +6 -6
  294. wandelbots_api_client/models/start_on_io.py +3 -3
  295. wandelbots_api_client/models/status.py +4 -4
  296. wandelbots_api_client/models/stop_response.py +4 -4
  297. wandelbots_api_client/models/store_value.py +1 -1
  298. wandelbots_api_client/models/stream_move_backward.py +2 -2
  299. wandelbots_api_client/models/stream_move_forward.py +2 -2
  300. wandelbots_api_client/models/stream_move_playback_speed.py +2 -2
  301. wandelbots_api_client/models/stream_move_request.py +1 -1
  302. wandelbots_api_client/models/stream_move_response.py +4 -4
  303. wandelbots_api_client/models/stream_move_to_trajectory.py +2 -2
  304. wandelbots_api_client/models/stream_stop.py +2 -2
  305. wandelbots_api_client/models/tcp_pose.py +5 -5
  306. wandelbots_api_client/models/tcp_pose_request.py +5 -5
  307. wandelbots_api_client/models/tool_geometry.py +3 -3
  308. wandelbots_api_client/models/trajectory_sample.py +12 -12
  309. wandelbots_api_client/models/trigger_object.py +11 -11
  310. wandelbots_api_client/models/trigger_type.py +1 -1
  311. wandelbots_api_client/models/universalrobots_controller.py +3 -3
  312. wandelbots_api_client/models/update_nova_version_request.py +2 -2
  313. wandelbots_api_client/models/update_program_metadata_request.py +4 -4
  314. wandelbots_api_client/models/update_recipe_metadata_request.py +4 -4
  315. wandelbots_api_client/models/update_trigger_request.py +6 -6
  316. wandelbots_api_client/models/validation_error.py +4 -4
  317. wandelbots_api_client/models/validation_error2.py +4 -4
  318. wandelbots_api_client/models/validation_error2_loc_inner.py +1 -1
  319. wandelbots_api_client/models/validation_error_loc_inner.py +1 -1
  320. wandelbots_api_client/models/value.py +1 -1
  321. wandelbots_api_client/models/vector3d.py +4 -4
  322. wandelbots_api_client/models/version_number.py +9 -9
  323. wandelbots_api_client/models/virtual_controller.py +7 -7
  324. wandelbots_api_client/models/virtual_controller_types.py +17 -2
  325. wandelbots_api_client/models/virtual_robot_configuration.py +3 -3
  326. wandelbots_api_client/models/yaskawa_controller.py +3 -3
  327. wandelbots_api_client/rest.py +3 -2
  328. wandelbots_api_client/v2/__init__.py +3 -4
  329. wandelbots_api_client/v2/api/__init__.py +16 -16
  330. wandelbots_api_client/v2/api/application_api.py +11 -12
  331. wandelbots_api_client/v2/api/bus_inputs_outputs_api.py +4555 -0
  332. wandelbots_api_client/v2/api/cell_api.py +8 -9
  333. wandelbots_api_client/v2/api/controller_api.py +206 -202
  334. wandelbots_api_client/v2/api/controller_inputs_outputs_api.py +45 -44
  335. wandelbots_api_client/v2/api/jogging_api.py +33 -11
  336. wandelbots_api_client/v2/api/kinematics_api.py +636 -0
  337. wandelbots_api_client/v2/api/license_api.py +8 -9
  338. wandelbots_api_client/v2/api/motion_group_api.py +61 -31
  339. wandelbots_api_client/v2/api/motion_group_models_api.py +557 -0
  340. wandelbots_api_client/v2/api/program_api.py +167 -1308
  341. wandelbots_api_client/v2/api/store_collision_components_api.py +823 -50
  342. wandelbots_api_client/v2/api/store_collision_setups_api.py +1404 -0
  343. wandelbots_api_client/v2/api/store_object_api.py +11 -12
  344. wandelbots_api_client/v2/api/system_api.py +282 -18
  345. wandelbots_api_client/v2/api/trajectory_caching_api.py +94 -20
  346. wandelbots_api_client/v2/api/trajectory_execution_api.py +33 -11
  347. wandelbots_api_client/v2/api/trajectory_planning_api.py +68 -323
  348. wandelbots_api_client/v2/api/{inverse_kinematics_api.py → version_api.py} +24 -81
  349. wandelbots_api_client/v2/api/virtual_controller_api.py +4565 -0
  350. wandelbots_api_client/v2/api/virtual_controller_behavior_api.py +982 -0
  351. wandelbots_api_client/v2/api/virtual_controller_inputs_outputs_api.py +1003 -0
  352. wandelbots_api_client/v2/api_client.py +15 -8
  353. wandelbots_api_client/v2/configuration.py +19 -8
  354. wandelbots_api_client/v2/exceptions.py +2 -2
  355. wandelbots_api_client/v2/models/__init__.py +210 -159
  356. wandelbots_api_client/v2/models/abb_controller.py +8 -11
  357. wandelbots_api_client/v2/models/abb_controller_egm_server.py +4 -4
  358. wandelbots_api_client/v2/models/activate_license_request.py +3 -3
  359. wandelbots_api_client/v2/models/add_trajectory_error.py +5 -5
  360. wandelbots_api_client/v2/models/add_trajectory_error_data.py +66 -66
  361. wandelbots_api_client/v2/models/add_trajectory_request.py +5 -5
  362. wandelbots_api_client/v2/models/add_trajectory_response.py +4 -4
  363. wandelbots_api_client/v2/models/{jogging_error_response_error.py → api_version.py} +9 -9
  364. wandelbots_api_client/v2/models/app.py +19 -11
  365. wandelbots_api_client/v2/models/behavior.py +3 -3
  366. wandelbots_api_client/v2/models/blending_auto.py +6 -5
  367. wandelbots_api_client/v2/models/blending_position.py +4 -4
  368. wandelbots_api_client/v2/models/boolean_value.py +7 -10
  369. wandelbots_api_client/v2/models/box.py +7 -7
  370. wandelbots_api_client/v2/models/{program_run_object.py → bus_io_description.py} +31 -20
  371. wandelbots_api_client/v2/models/{jogging_error_response.py → bus_io_modbus_client.py} +23 -14
  372. wandelbots_api_client/v2/models/bus_io_modbus_server.py +115 -0
  373. wandelbots_api_client/v2/models/bus_io_modbus_tcp_client.py +106 -0
  374. wandelbots_api_client/v2/models/bus_io_modbus_tcp_server.py +104 -0
  375. wandelbots_api_client/v2/models/{movement_error_error.py → bus_io_modbus_virtual.py} +17 -10
  376. wandelbots_api_client/v2/models/bus_io_profinet.py +114 -0
  377. wandelbots_api_client/v2/models/{motion_group_behavior_getter.py → bus_io_profinet_default_route.py} +12 -11
  378. wandelbots_api_client/v2/models/bus_io_profinet_ip_config.py +95 -0
  379. wandelbots_api_client/v2/models/{update_trigger_request.py → bus_io_profinet_network.py} +18 -18
  380. wandelbots_api_client/v2/models/bus_io_profinet_virtual.py +98 -0
  381. wandelbots_api_client/v2/models/bus_io_type.py +212 -0
  382. wandelbots_api_client/v2/models/{create_trigger200_response.py → bus_ios_state.py} +12 -9
  383. wandelbots_api_client/v2/models/bus_ios_state_enum.py +39 -0
  384. wandelbots_api_client/v2/models/capsule.py +5 -5
  385. wandelbots_api_client/v2/models/{robot_state.py → cartesian_limits.py} +15 -15
  386. wandelbots_api_client/v2/models/cell.py +7 -7
  387. wandelbots_api_client/v2/models/collider.py +5 -5
  388. wandelbots_api_client/v2/models/collider_shape.py +2 -42
  389. wandelbots_api_client/v2/models/collision.py +11 -11
  390. wandelbots_api_client/v2/models/collision_contact.py +6 -6
  391. wandelbots_api_client/v2/models/{collision2.py → collision_error.py} +7 -7
  392. wandelbots_api_client/v2/models/collision_free_algorithm.py +155 -0
  393. wandelbots_api_client/v2/models/{collision_motion_group_assembly.py → collision_setup.py} +32 -18
  394. wandelbots_api_client/v2/models/comparator.py +2 -2
  395. wandelbots_api_client/v2/models/configuration_archive_status.py +174 -0
  396. wandelbots_api_client/v2/models/{joints.py → configuration_archive_status_creating.py} +20 -10
  397. wandelbots_api_client/v2/models/configuration_archive_status_error.py +100 -0
  398. wandelbots_api_client/v2/models/configuration_archive_status_success.py +98 -0
  399. wandelbots_api_client/v2/models/configuration_resource.py +5 -5
  400. wandelbots_api_client/v2/models/container_environment_inner.py +4 -4
  401. wandelbots_api_client/v2/models/container_image.py +5 -5
  402. wandelbots_api_client/v2/models/container_image_secrets_inner.py +3 -3
  403. wandelbots_api_client/v2/models/{create_program_operator_run200_response.py → container_resources.py} +12 -9
  404. wandelbots_api_client/v2/models/container_storage.py +4 -4
  405. wandelbots_api_client/v2/models/{create_trigger_request.py → controller_description.py} +16 -21
  406. wandelbots_api_client/v2/models/convex_hull.py +4 -4
  407. wandelbots_api_client/v2/models/coordinate_system.py +11 -11
  408. wandelbots_api_client/v2/models/coordinate_system_data.py +101 -0
  409. wandelbots_api_client/v2/models/cubic_spline_parameter.py +4 -4
  410. wandelbots_api_client/v2/models/cycle_time.py +5 -4
  411. wandelbots_api_client/v2/models/cylinder.py +5 -5
  412. wandelbots_api_client/v2/models/dh_parameter.py +7 -7
  413. wandelbots_api_client/v2/models/direction.py +2 -2
  414. wandelbots_api_client/v2/models/error.py +4 -4
  415. wandelbots_api_client/v2/models/{jogging_paused_collision.py → error_invalid_joint_count.py} +21 -14
  416. wandelbots_api_client/v2/models/error_joint_limit_exceeded.py +103 -0
  417. wandelbots_api_client/v2/models/{coordinate_systems.py → error_joint_position_collision.py} +30 -19
  418. wandelbots_api_client/v2/models/error_max_iterations_exceeded.py +100 -0
  419. wandelbots_api_client/v2/models/execute.py +97 -0
  420. wandelbots_api_client/v2/models/{set_io_values_request_inner.py → execute_details.py} +47 -43
  421. wandelbots_api_client/v2/models/execute_jogging_request.py +52 -10
  422. wandelbots_api_client/v2/models/execute_jogging_response.py +87 -26
  423. wandelbots_api_client/v2/models/execute_trajectory_request.py +30 -2
  424. wandelbots_api_client/v2/models/execute_trajectory_response.py +61 -42
  425. wandelbots_api_client/v2/models/external_joint_stream_datapoint.py +6 -6
  426. wandelbots_api_client/v2/models/{robot_tcps.py → external_joint_stream_request.py} +17 -17
  427. wandelbots_api_client/v2/models/fanuc_controller.py +6 -9
  428. wandelbots_api_client/v2/models/feedback_collision.py +6 -6
  429. wandelbots_api_client/v2/models/feedback_joint_limit_exceeded.py +7 -6
  430. wandelbots_api_client/v2/models/feedback_out_of_workspace.py +4 -4
  431. wandelbots_api_client/v2/models/feedback_singularity.py +5 -5
  432. wandelbots_api_client/v2/models/flag.py +3 -3
  433. wandelbots_api_client/v2/models/float_value.py +8 -11
  434. wandelbots_api_client/v2/models/{get_all_triggers200_response.py → forward_kinematics422_response.py} +17 -17
  435. wandelbots_api_client/v2/models/forward_kinematics_request.py +104 -0
  436. wandelbots_api_client/v2/models/{controllers_list.py → forward_kinematics_response.py} +18 -18
  437. wandelbots_api_client/v2/models/{list_coordinate_systems_response.py → forward_kinematics_validation_error.py} +30 -18
  438. wandelbots_api_client/v2/models/get_trajectory_response.py +5 -5
  439. wandelbots_api_client/v2/models/http_validation_error.py +5 -5
  440. wandelbots_api_client/v2/models/image_credentials.py +5 -5
  441. wandelbots_api_client/v2/models/{inconsitent_trajectory_size.py → inconsistent_trajectory_size_error.py} +9 -9
  442. wandelbots_api_client/v2/models/{inconsitent_trajectory_size_inconsistent_trajectory_size.py → inconsistent_trajectory_size_error_inconsistent_trajectory_size.py} +9 -9
  443. wandelbots_api_client/v2/models/initialize_jogging_request.py +9 -16
  444. wandelbots_api_client/v2/models/initialize_jogging_response.py +17 -12
  445. wandelbots_api_client/v2/models/initialize_movement_request.py +7 -12
  446. wandelbots_api_client/v2/models/initialize_movement_request_trajectory.py +2 -2
  447. wandelbots_api_client/v2/models/initialize_movement_response.py +22 -11
  448. wandelbots_api_client/v2/models/integer_value.py +8 -11
  449. wandelbots_api_client/v2/models/{invalid_dof.py → invalid_dof_error.py} +9 -9
  450. wandelbots_api_client/v2/models/{invalid_dof_invalid_dof.py → invalid_dof_error_invalid_dof.py} +8 -8
  451. wandelbots_api_client/v2/models/{motion_group_infos.py → inverse_kinematics422_response.py} +18 -18
  452. wandelbots_api_client/v2/models/inverse_kinematics_request.py +51 -31
  453. wandelbots_api_client/v2/models/inverse_kinematics_response.py +3 -3
  454. wandelbots_api_client/v2/models/inverse_kinematics_validation_error.py +120 -0
  455. wandelbots_api_client/v2/models/inverse_kinematics_validation_error_all_of_data.py +155 -0
  456. wandelbots_api_client/v2/models/io_boolean_value.py +8 -11
  457. wandelbots_api_client/v2/models/{io_description_min.py → io_boundary.py} +10 -25
  458. wandelbots_api_client/v2/models/io_description.py +15 -15
  459. wandelbots_api_client/v2/models/io_direction.py +2 -2
  460. wandelbots_api_client/v2/models/io_float_value.py +9 -12
  461. wandelbots_api_client/v2/models/io_integer_value.py +9 -12
  462. wandelbots_api_client/v2/models/{trigger_type.py → io_origin.py} +7 -6
  463. wandelbots_api_client/v2/models/{set_output_values_request_inner.py → io_value.py} +10 -25
  464. wandelbots_api_client/v2/models/io_value_type.py +2 -2
  465. wandelbots_api_client/v2/models/{movement_movement.py → jogging_details.py} +21 -16
  466. wandelbots_api_client/v2/models/{jogging_state.py → jogging_details_state.py} +76 -43
  467. wandelbots_api_client/v2/models/{program_run_reference.py → jogging_paused_by_user.py} +17 -13
  468. wandelbots_api_client/v2/models/{jogging_paused_collision_paused_near_collision.py → jogging_paused_near_collision.py} +19 -10
  469. wandelbots_api_client/v2/models/{jogging_paused_joint_limit_paused_near_joint_limit.py → jogging_paused_near_joint_limit.py} +20 -10
  470. wandelbots_api_client/v2/models/jogging_paused_on_io.py +14 -7
  471. wandelbots_api_client/v2/models/jogging_running.py +14 -7
  472. wandelbots_api_client/v2/models/{joint_limit_exceeded.py → joint_limit_exceeded_error.py} +7 -7
  473. wandelbots_api_client/v2/models/joint_limits.py +101 -0
  474. wandelbots_api_client/v2/models/joint_trajectory.py +6 -23
  475. wandelbots_api_client/v2/models/joint_velocity_request.py +7 -14
  476. wandelbots_api_client/v2/models/joint_velocity_response.py +100 -0
  477. wandelbots_api_client/v2/models/kuka_controller.py +12 -13
  478. wandelbots_api_client/v2/models/kuka_controller_rsi_server.py +4 -4
  479. wandelbots_api_client/v2/models/license.py +12 -12
  480. wandelbots_api_client/v2/models/license_status.py +4 -4
  481. wandelbots_api_client/v2/models/license_status_enum.py +2 -2
  482. wandelbots_api_client/v2/models/{planning_limits_limit_range.py → limit_range.py} +8 -8
  483. wandelbots_api_client/v2/models/limit_set.py +129 -0
  484. wandelbots_api_client/v2/models/limits_override.py +8 -8
  485. wandelbots_api_client/v2/models/list_trajectories_response.py +3 -3
  486. wandelbots_api_client/v2/models/manufacturer.py +2 -2
  487. wandelbots_api_client/v2/models/midpoint_insertion_algorithm.py +101 -0
  488. wandelbots_api_client/v2/models/modbus_io.py +105 -0
  489. wandelbots_api_client/v2/models/modbus_io_area.py +40 -0
  490. wandelbots_api_client/v2/models/modbus_io_byte_order.py +40 -0
  491. wandelbots_api_client/v2/models/modbus_io_data.py +103 -0
  492. wandelbots_api_client/v2/models/modbus_io_type_enum.py +39 -0
  493. wandelbots_api_client/v2/models/motion_command.py +5 -5
  494. wandelbots_api_client/v2/models/motion_command_blending.py +2 -2
  495. wandelbots_api_client/v2/models/motion_command_path.py +2 -2
  496. wandelbots_api_client/v2/models/{planning_parameters.py → motion_group_description.py} +40 -35
  497. wandelbots_api_client/v2/models/motion_group_info.py +7 -6
  498. wandelbots_api_client/v2/models/motion_group_joints.py +6 -6
  499. wandelbots_api_client/v2/models/{robot_setup.py → motion_group_setup.py} +33 -35
  500. wandelbots_api_client/v2/models/motion_group_state.py +32 -44
  501. wandelbots_api_client/v2/models/motion_group_state_joint_limit_reached.py +3 -3
  502. wandelbots_api_client/v2/models/movement_error_response.py +100 -0
  503. wandelbots_api_client/v2/models/{nan_value.py → nan_value_error.py} +9 -9
  504. wandelbots_api_client/v2/models/{nan_value_nan_value.py → nan_value_error_nan_value.py} +6 -6
  505. wandelbots_api_client/v2/models/op_mode.py +3 -3
  506. wandelbots_api_client/v2/models/operating_state.py +2 -2
  507. wandelbots_api_client/v2/models/operation_limits.py +110 -0
  508. wandelbots_api_client/v2/models/operation_mode.py +2 -2
  509. wandelbots_api_client/v2/models/orientation_type.py +2 -2
  510. wandelbots_api_client/v2/models/path_cartesian_ptp.py +4 -4
  511. wandelbots_api_client/v2/models/path_circle.py +5 -5
  512. wandelbots_api_client/v2/models/path_cubic_spline.py +4 -4
  513. wandelbots_api_client/v2/models/path_joint_ptp.py +4 -4
  514. wandelbots_api_client/v2/models/path_line.py +4 -4
  515. wandelbots_api_client/v2/models/pause_jogging_request.py +98 -0
  516. wandelbots_api_client/v2/models/{initialize_jogging_response_init_response.py → pause_jogging_response.py} +19 -12
  517. wandelbots_api_client/v2/models/pause_movement_request.py +7 -12
  518. wandelbots_api_client/v2/models/pause_movement_response.py +17 -12
  519. wandelbots_api_client/v2/models/pause_on_io.py +11 -8
  520. wandelbots_api_client/v2/models/payload.py +6 -6
  521. wandelbots_api_client/v2/models/{http_validation_error2.py → plan422_response.py} +9 -9
  522. wandelbots_api_client/v2/models/{movement.py → plan_collision_free_failed_response.py} +13 -13
  523. wandelbots_api_client/v2/models/{jogging_response_jogging.py → plan_collision_free_request.py} +25 -21
  524. wandelbots_api_client/v2/models/{standstill.py → plan_collision_free_response.py} +13 -13
  525. wandelbots_api_client/{models/create_trigger_request_config.py → v2/models/plan_collision_free_response_response.py} +34 -20
  526. wandelbots_api_client/v2/models/plan_trajectory_failed_response.py +5 -5
  527. wandelbots_api_client/v2/models/plan_trajectory_failed_response_error_feedback.py +2 -2
  528. wandelbots_api_client/v2/models/plan_trajectory_request.py +11 -11
  529. wandelbots_api_client/v2/models/plan_trajectory_response.py +3 -3
  530. wandelbots_api_client/v2/models/plan_trajectory_response_response.py +2 -2
  531. wandelbots_api_client/v2/models/{get_all_program_operator_runs200_response.py → plan_validation_error.py} +30 -18
  532. wandelbots_api_client/v2/models/plan_validation_error_all_of_data.py +174 -0
  533. wandelbots_api_client/v2/models/plane.py +3 -3
  534. wandelbots_api_client/v2/models/playback_speed_request.py +7 -9
  535. wandelbots_api_client/v2/models/playback_speed_response.py +17 -12
  536. wandelbots_api_client/v2/models/pose.py +4 -4
  537. wandelbots_api_client/v2/models/profinet_description.py +120 -0
  538. wandelbots_api_client/v2/models/{opcua_node_value_trigger_config.py → profinet_input_output_config.py} +14 -17
  539. wandelbots_api_client/v2/models/profinet_io.py +104 -0
  540. wandelbots_api_client/v2/models/{program_request.py → profinet_io_data.py} +20 -39
  541. wandelbots_api_client/v2/models/profinet_io_direction.py +38 -0
  542. wandelbots_api_client/v2/models/profinet_io_type_enum.py +45 -0
  543. wandelbots_api_client/v2/models/{list_io_descriptions_response.py → profinet_slot_description.py} +23 -18
  544. wandelbots_api_client/v2/models/profinet_sub_slot_description.py +96 -0
  545. wandelbots_api_client/v2/models/program.py +109 -0
  546. wandelbots_api_client/v2/models/program_run.py +23 -35
  547. wandelbots_api_client/v2/models/program_run_state.py +8 -8
  548. wandelbots_api_client/v2/models/{jogging_paused_user_request.py → program_start_request.py} +10 -10
  549. wandelbots_api_client/v2/models/rectangle.py +5 -5
  550. wandelbots_api_client/v2/models/rectangular_capsule.py +6 -6
  551. wandelbots_api_client/v2/models/release_channel.py +2 -2
  552. wandelbots_api_client/v2/models/robot_controller.py +4 -4
  553. wandelbots_api_client/v2/models/robot_controller_configuration.py +2 -2
  554. wandelbots_api_client/v2/models/robot_controller_state.py +17 -11
  555. wandelbots_api_client/v2/models/robot_system_mode.py +8 -8
  556. wandelbots_api_client/v2/models/robot_tcp.py +10 -10
  557. wandelbots_api_client/v2/models/{motion_vector.py → robot_tcp_data.py} +16 -13
  558. wandelbots_api_client/v2/models/rrt_connect_algorithm.py +109 -0
  559. wandelbots_api_client/v2/models/safety_state_type.py +2 -2
  560. wandelbots_api_client/v2/models/service_group.py +2 -2
  561. wandelbots_api_client/v2/models/service_status.py +5 -5
  562. wandelbots_api_client/v2/models/service_status_phase.py +2 -2
  563. wandelbots_api_client/v2/models/service_status_response.py +4 -4
  564. wandelbots_api_client/v2/models/service_status_severity.py +2 -2
  565. wandelbots_api_client/v2/models/service_status_status.py +5 -5
  566. wandelbots_api_client/v2/models/{standstill_standstill.py → set_io.py} +17 -17
  567. wandelbots_api_client/v2/models/settable_robot_system_mode.py +2 -2
  568. wandelbots_api_client/v2/models/singularity_type_enum.py +2 -2
  569. wandelbots_api_client/v2/models/sphere.py +4 -4
  570. wandelbots_api_client/v2/models/start_movement_request.py +14 -15
  571. wandelbots_api_client/v2/models/start_movement_response.py +100 -0
  572. wandelbots_api_client/v2/models/start_on_io.py +11 -8
  573. wandelbots_api_client/v2/models/{list_io_values_response.py → stream_io_values_response.py} +17 -11
  574. wandelbots_api_client/v2/models/tcp_offset.py +4 -4
  575. wandelbots_api_client/v2/models/{tcp_required.py → tcp_required_error.py} +6 -6
  576. wandelbots_api_client/v2/models/tcp_velocity_request.py +6 -9
  577. wandelbots_api_client/v2/models/tcp_velocity_response.py +100 -0
  578. wandelbots_api_client/v2/models/{torque_exceeded.py → torque_exceeded_error.py} +9 -9
  579. wandelbots_api_client/v2/models/{torque_exceeded_torque_exceeded.py → torque_exceeded_error_torque_exceeded.py} +8 -8
  580. wandelbots_api_client/v2/models/trajectory_data.py +6 -6
  581. wandelbots_api_client/v2/models/trajectory_details.py +108 -0
  582. wandelbots_api_client/v2/models/trajectory_details_state.py +212 -0
  583. wandelbots_api_client/v2/models/trajectory_ended.py +98 -0
  584. wandelbots_api_client/v2/models/trajectory_id.py +4 -4
  585. wandelbots_api_client/v2/models/{get_mode_response.py → trajectory_paused_by_user.py} +17 -11
  586. wandelbots_api_client/v2/models/trajectory_paused_on_io.py +98 -0
  587. wandelbots_api_client/v2/models/trajectory_running.py +101 -0
  588. wandelbots_api_client/v2/models/{create_program_operator_run_request.py → trajectory_wait_for_io.py} +17 -10
  589. wandelbots_api_client/v2/models/unit_type.py +3 -3
  590. wandelbots_api_client/v2/models/universalrobots_controller.py +6 -9
  591. wandelbots_api_client/v2/models/update_nova_version_request.py +3 -3
  592. wandelbots_api_client/v2/models/validation_error.py +9 -7
  593. wandelbots_api_client/v2/models/validation_error2.py +6 -6
  594. wandelbots_api_client/v2/models/validation_error_loc_inner.py +2 -2
  595. wandelbots_api_client/v2/models/virtual_controller.py +11 -14
  596. wandelbots_api_client/v2/models/virtual_controller_types.py +18 -3
  597. wandelbots_api_client/v2/models/virtual_robot_configuration.py +4 -4
  598. wandelbots_api_client/v2/models/wait_for_io_event_request.py +6 -6
  599. wandelbots_api_client/v2/models/yaskawa_controller.py +6 -9
  600. wandelbots_api_client/v2/rest.py +4 -3
  601. wandelbots_api_client/v2_pydantic/__init__.py +50 -0
  602. wandelbots_api_client/v2_pydantic/api/__init__.py +51 -0
  603. wandelbots_api_client/{v2/api/virtual_robot_api.py → v2_pydantic/api/application_api.py} +327 -426
  604. wandelbots_api_client/v2_pydantic/api/bus_inputs_outputs_api.py +4603 -0
  605. wandelbots_api_client/{v2/api/virtual_robot_setup_api.py → v2_pydantic/api/cell_api.py} +291 -771
  606. wandelbots_api_client/v2_pydantic/api/controller_api.py +3721 -0
  607. wandelbots_api_client/v2_pydantic/api/controller_inputs_outputs_api.py +1395 -0
  608. wandelbots_api_client/v2_pydantic/api/jogging_api.py +125 -0
  609. wandelbots_api_client/v2_pydantic/api/kinematics_api.py +642 -0
  610. wandelbots_api_client/{v2/api/store_collision_scenes_api.py → v2_pydantic/api/license_api.py} +158 -248
  611. wandelbots_api_client/{v2/api/virtual_robot_behavior_api.py → v2_pydantic/api/motion_group_api.py} +156 -131
  612. wandelbots_api_client/v2_pydantic/api/motion_group_models_api.py +563 -0
  613. wandelbots_api_client/{v2/api/store_program_api.py → v2_pydantic/api/program_api.py} +191 -181
  614. wandelbots_api_client/v2_pydantic/api/store_collision_components_api.py +4170 -0
  615. wandelbots_api_client/v2_pydantic/api/store_collision_setups_api.py +1419 -0
  616. wandelbots_api_client/v2_pydantic/api/store_object_api.py +1719 -0
  617. wandelbots_api_client/{v2/api/program_operator_api.py → v2_pydantic/api/system_api.py} +625 -476
  618. wandelbots_api_client/{v2/api/virtual_robot_mode_api.py → v2_pydantic/api/trajectory_caching_api.py} +208 -162
  619. wandelbots_api_client/v2_pydantic/api/trajectory_execution_api.py +125 -0
  620. wandelbots_api_client/v2_pydantic/api/trajectory_planning_api.py +642 -0
  621. wandelbots_api_client/v2_pydantic/api/version_api.py +287 -0
  622. wandelbots_api_client/v2_pydantic/api/virtual_controller_api.py +4610 -0
  623. wandelbots_api_client/v2_pydantic/api/virtual_controller_behavior_api.py +991 -0
  624. wandelbots_api_client/v2_pydantic/api/virtual_controller_inputs_outputs_api.py +1012 -0
  625. wandelbots_api_client/v2_pydantic/api_client.py +809 -0
  626. wandelbots_api_client/v2_pydantic/api_response.py +21 -0
  627. wandelbots_api_client/v2_pydantic/configuration.py +606 -0
  628. wandelbots_api_client/v2_pydantic/exceptions.py +216 -0
  629. wandelbots_api_client/v2_pydantic/models.py +4561 -0
  630. wandelbots_api_client/v2_pydantic/py.typed +0 -0
  631. wandelbots_api_client/v2_pydantic/rest.py +213 -0
  632. wandelbots_api_client-25.10.0rc2.dist-info/METADATA +62 -0
  633. wandelbots_api_client-25.10.0rc2.dist-info/RECORD +640 -0
  634. {wandelbots_api_client-25.6.0.dev7.dist-info → wandelbots_api_client-25.10.0rc2.dist-info}/WHEEL +2 -1
  635. wandelbots_api_client-25.10.0rc2.dist-info/top_level.txt +1 -0
  636. wandelbots_api_client/v2/models/collision_motion_group.py +0 -121
  637. wandelbots_api_client/v2/models/collision_scene.py +0 -119
  638. wandelbots_api_client/v2/models/collision_scene_assembly.py +0 -129
  639. wandelbots_api_client/v2/models/controller.py +0 -132
  640. wandelbots_api_client/v2/models/external_joint_stream_datapoint_value.py +0 -97
  641. wandelbots_api_client/v2/models/initialize_movement_response_init_response.py +0 -93
  642. wandelbots_api_client/v2/models/jogging_paused_joint_limit.py +0 -95
  643. wandelbots_api_client/v2/models/jogging_response.py +0 -95
  644. wandelbots_api_client/v2/models/motion_group_instance.py +0 -101
  645. wandelbots_api_client/v2/models/motion_group_state_without_payload.py +0 -146
  646. wandelbots_api_client/v2/models/movement_error.py +0 -95
  647. wandelbots_api_client/v2/models/opcua_node_value_trigger_config_node_value.py +0 -160
  648. wandelbots_api_client/v2/models/pause_movement_response_pause_response.py +0 -93
  649. wandelbots_api_client/v2/models/planning_limits.py +0 -130
  650. wandelbots_api_client/v2/models/playback_speed_response_playback_speed_response.py +0 -91
  651. wandelbots_api_client/v2/models/program_run_result.py +0 -108
  652. wandelbots_api_client/v2/models/single_motion_group_collision_scene.py +0 -135
  653. wandelbots_api_client/v2/models/standstill_reason.py +0 -39
  654. wandelbots_api_client/v2/models/trigger_object.py +0 -111
  655. wandelbots_api_client/v2/models/version_number.py +0 -105
  656. wandelbots_api_client-25.6.0.dev7.dist-info/METADATA +0 -63
  657. wandelbots_api_client-25.6.0.dev7.dist-info/RECORD +0 -580
  658. {wandelbots_api_client-25.6.0.dev7.dist-info → wandelbots_api_client-25.10.0rc2.dist-info/licenses}/LICENSE +0 -0
@@ -0,0 +1,4610 @@
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, StrictBool, StrictStr
26
+ from typing import List, Optional
27
+ from typing_extensions import Annotated
28
+ from wandelbots_api_client.v2_pydantic.models import CoordinateSystem
29
+ from wandelbots_api_client.v2_pydantic.models import CoordinateSystemData
30
+ from wandelbots_api_client.v2_pydantic.models import Flag
31
+ from wandelbots_api_client.v2_pydantic.models import MotionGroupInfo
32
+ from wandelbots_api_client.v2_pydantic.models import MotionGroupJoints
33
+ from wandelbots_api_client.v2_pydantic.models import OpMode
34
+ from wandelbots_api_client.v2_pydantic.models import OperationMode
35
+ from wandelbots_api_client.v2_pydantic.models import RobotTcp
36
+ from wandelbots_api_client.v2_pydantic.models import RobotTcpData
37
+
38
+ from wandelbots_api_client.v2_pydantic.api_client import ApiClient, RequestSerialized
39
+ from wandelbots_api_client.v2_pydantic.api_response import ApiResponse
40
+ from wandelbots_api_client.v2_pydantic.rest import RESTResponseType
41
+
42
+ class VirtualControllerApi:
43
+ """NOTE: This class is auto generated by OpenAPI Generator
44
+ Ref: https://openapi-generator.tech
45
+
46
+ Do not edit the class manually.
47
+ """
48
+
49
+ def __init__(self, api_client=None) -> None:
50
+ if api_client is None:
51
+ api_client = ApiClient.get_default()
52
+ self.api_client = api_client
53
+
54
+ @validate_call
55
+ async def add_virtual_controller_coordinate_system(
56
+ self,
57
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
58
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
59
+ coordinate_system: Annotated[StrictStr, Field(description="Unique identifier addressing a coordinate system.")],
60
+ coordinate_system_data: CoordinateSystemData,
61
+ _request_timeout: Union[
62
+ None,
63
+ Annotated[StrictFloat, Field(gt=0)],
64
+ Tuple[
65
+ Annotated[StrictFloat, Field(gt=0)],
66
+ Annotated[StrictFloat, Field(gt=0)]
67
+ ]
68
+ ] = None,
69
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
70
+ _content_type: Optional[StrictStr] = None,
71
+ _headers: Optional[Dict[StrictStr, Any]] = None,
72
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
73
+ ) -> None:
74
+ """Add Coordinate Systems
75
+
76
+ Adds a coordinate system to the robot controller. <!-- theme: info --> > #### NOTE > > When a new coordinate system is added, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new coordinate system may not yet be available for visualization or program execution.
77
+
78
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
79
+ :type cell: str
80
+ :param controller: Unique identifier to address a controller in the cell. (required)
81
+ :type controller: str
82
+ :param coordinate_system: Unique identifier addressing a coordinate system. (required)
83
+ :type coordinate_system: str
84
+ :param coordinate_system_data: (required)
85
+ :type coordinate_system_data: CoordinateSystemData
86
+ :param _request_timeout: timeout setting for this request. If one
87
+ number provided, it will be total request
88
+ timeout. It can also be a pair (tuple) of
89
+ (connection, read) timeouts.
90
+ :type _request_timeout: int, tuple(int, int), optional
91
+ :param _request_auth: set to override the auth_settings for an a single
92
+ request; this effectively ignores the
93
+ authentication in the spec for a single request.
94
+ :type _request_auth: dict, optional
95
+ :param _content_type: force content-type for the request.
96
+ :type _content_type: str, Optional
97
+ :param _headers: set to override the headers for a single
98
+ request; this effectively ignores the headers
99
+ in the spec for a single request.
100
+ :type _headers: dict, optional
101
+ :param _host_index: set to override the host_index for a single
102
+ request; this effectively ignores the host_index
103
+ in the spec for a single request.
104
+ :type _host_index: int, optional
105
+ :return: Returns the result object.
106
+ """ # noqa: E501
107
+
108
+ _param = self._add_virtual_controller_coordinate_system_serialize(
109
+ cell=cell,
110
+ controller=controller,
111
+ coordinate_system=coordinate_system,
112
+ coordinate_system_data=coordinate_system_data,
113
+ _request_auth=_request_auth,
114
+ _content_type=_content_type,
115
+ _headers=_headers,
116
+ _host_index=_host_index
117
+ )
118
+
119
+ _response_types_map: Dict[str, Optional[str]] = {
120
+ '200': None,
121
+ '400': "Error",
122
+ '404': "Error",
123
+ }
124
+
125
+ response_data = await self.api_client.call_api(
126
+ *_param,
127
+ _request_timeout=_request_timeout
128
+ )
129
+ await response_data.read()
130
+ return self.api_client.response_deserialize(
131
+ response_data=response_data,
132
+ response_types_map=_response_types_map,
133
+ ).data
134
+
135
+
136
+ @validate_call
137
+ async def add_virtual_controller_coordinate_system_with_http_info(
138
+ self,
139
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
140
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
141
+ coordinate_system: Annotated[StrictStr, Field(description="Unique identifier addressing a coordinate system.")],
142
+ coordinate_system_data: CoordinateSystemData,
143
+ _request_timeout: Union[
144
+ None,
145
+ Annotated[StrictFloat, Field(gt=0)],
146
+ Tuple[
147
+ Annotated[StrictFloat, Field(gt=0)],
148
+ Annotated[StrictFloat, Field(gt=0)]
149
+ ]
150
+ ] = None,
151
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
152
+ _content_type: Optional[StrictStr] = None,
153
+ _headers: Optional[Dict[StrictStr, Any]] = None,
154
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
155
+ ) -> ApiResponse[None]:
156
+ """Add Coordinate Systems
157
+
158
+ Adds a coordinate system to the robot controller. <!-- theme: info --> > #### NOTE > > When a new coordinate system is added, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new coordinate system may not yet be available for visualization or program execution.
159
+
160
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
161
+ :type cell: str
162
+ :param controller: Unique identifier to address a controller in the cell. (required)
163
+ :type controller: str
164
+ :param coordinate_system: Unique identifier addressing a coordinate system. (required)
165
+ :type coordinate_system: str
166
+ :param coordinate_system_data: (required)
167
+ :type coordinate_system_data: CoordinateSystemData
168
+ :param _request_timeout: timeout setting for this request. If one
169
+ number provided, it will be total request
170
+ timeout. It can also be a pair (tuple) of
171
+ (connection, read) timeouts.
172
+ :type _request_timeout: int, tuple(int, int), optional
173
+ :param _request_auth: set to override the auth_settings for an a single
174
+ request; this effectively ignores the
175
+ authentication in the spec for a single request.
176
+ :type _request_auth: dict, optional
177
+ :param _content_type: force content-type for the request.
178
+ :type _content_type: str, Optional
179
+ :param _headers: set to override the headers for a single
180
+ request; this effectively ignores the headers
181
+ in the spec for a single request.
182
+ :type _headers: dict, optional
183
+ :param _host_index: set to override the host_index for a single
184
+ request; this effectively ignores the host_index
185
+ in the spec for a single request.
186
+ :type _host_index: int, optional
187
+ :return: Returns the result object.
188
+ """ # noqa: E501
189
+
190
+ _param = self._add_virtual_controller_coordinate_system_serialize(
191
+ cell=cell,
192
+ controller=controller,
193
+ coordinate_system=coordinate_system,
194
+ coordinate_system_data=coordinate_system_data,
195
+ _request_auth=_request_auth,
196
+ _content_type=_content_type,
197
+ _headers=_headers,
198
+ _host_index=_host_index
199
+ )
200
+
201
+ _response_types_map: Dict[str, Optional[str]] = {
202
+ '200': None,
203
+ '400': "Error",
204
+ '404': "Error",
205
+ }
206
+
207
+ response_data = await self.api_client.call_api(
208
+ *_param,
209
+ _request_timeout=_request_timeout
210
+ )
211
+ await response_data.read()
212
+ return self.api_client.response_deserialize(
213
+ response_data=response_data,
214
+ response_types_map=_response_types_map,
215
+ )
216
+
217
+
218
+ @validate_call
219
+ async def add_virtual_controller_coordinate_system_without_preload_content(
220
+ self,
221
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
222
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
223
+ coordinate_system: Annotated[StrictStr, Field(description="Unique identifier addressing a coordinate system.")],
224
+ coordinate_system_data: CoordinateSystemData,
225
+ _request_timeout: Union[
226
+ None,
227
+ Annotated[StrictFloat, Field(gt=0)],
228
+ Tuple[
229
+ Annotated[StrictFloat, Field(gt=0)],
230
+ Annotated[StrictFloat, Field(gt=0)]
231
+ ]
232
+ ] = None,
233
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
234
+ _content_type: Optional[StrictStr] = None,
235
+ _headers: Optional[Dict[StrictStr, Any]] = None,
236
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
237
+ ) -> RESTResponseType:
238
+ """Add Coordinate Systems
239
+
240
+ Adds a coordinate system to the robot controller. <!-- theme: info --> > #### NOTE > > When a new coordinate system is added, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new coordinate system may not yet be available for visualization or program execution.
241
+
242
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
243
+ :type cell: str
244
+ :param controller: Unique identifier to address a controller in the cell. (required)
245
+ :type controller: str
246
+ :param coordinate_system: Unique identifier addressing a coordinate system. (required)
247
+ :type coordinate_system: str
248
+ :param coordinate_system_data: (required)
249
+ :type coordinate_system_data: CoordinateSystemData
250
+ :param _request_timeout: timeout setting for this request. If one
251
+ number provided, it will be total request
252
+ timeout. It can also be a pair (tuple) of
253
+ (connection, read) timeouts.
254
+ :type _request_timeout: int, tuple(int, int), optional
255
+ :param _request_auth: set to override the auth_settings for an a single
256
+ request; this effectively ignores the
257
+ authentication in the spec for a single request.
258
+ :type _request_auth: dict, optional
259
+ :param _content_type: force content-type for the request.
260
+ :type _content_type: str, Optional
261
+ :param _headers: set to override the headers for a single
262
+ request; this effectively ignores the headers
263
+ in the spec for a single request.
264
+ :type _headers: dict, optional
265
+ :param _host_index: set to override the host_index for a single
266
+ request; this effectively ignores the host_index
267
+ in the spec for a single request.
268
+ :type _host_index: int, optional
269
+ :return: Returns the result object.
270
+ """ # noqa: E501
271
+
272
+ _param = self._add_virtual_controller_coordinate_system_serialize(
273
+ cell=cell,
274
+ controller=controller,
275
+ coordinate_system=coordinate_system,
276
+ coordinate_system_data=coordinate_system_data,
277
+ _request_auth=_request_auth,
278
+ _content_type=_content_type,
279
+ _headers=_headers,
280
+ _host_index=_host_index
281
+ )
282
+
283
+ _response_types_map: Dict[str, Optional[str]] = {
284
+ '200': None,
285
+ '400': "Error",
286
+ '404': "Error",
287
+ }
288
+
289
+ response_data = await self.api_client.call_api(
290
+ *_param,
291
+ _request_timeout=_request_timeout
292
+ )
293
+ return response_data.response
294
+
295
+
296
+ def _add_virtual_controller_coordinate_system_serialize(
297
+ self,
298
+ cell,
299
+ controller,
300
+ coordinate_system,
301
+ coordinate_system_data,
302
+ _request_auth,
303
+ _content_type,
304
+ _headers,
305
+ _host_index,
306
+ ) -> RequestSerialized:
307
+
308
+ _host = None
309
+
310
+ _collection_formats: Dict[str, str] = {
311
+ }
312
+
313
+ _path_params: Dict[str, str] = {}
314
+ _query_params: List[Tuple[str, str]] = []
315
+ _header_params: Dict[str, Optional[str]] = _headers or {}
316
+ _form_params: List[Tuple[str, str]] = []
317
+ _files: Dict[str, Union[str, bytes]] = {}
318
+ _body_params: Optional[bytes] = None
319
+
320
+ # process the path parameters
321
+ if cell is not None:
322
+ _path_params['cell'] = cell
323
+ if controller is not None:
324
+ _path_params['controller'] = controller
325
+ if coordinate_system is not None:
326
+ _path_params['coordinate-system'] = coordinate_system
327
+ # process the query parameters
328
+ # process the header parameters
329
+ # process the form parameters
330
+ # process the body parameter
331
+ if coordinate_system_data is not None:
332
+ _body_params = coordinate_system_data
333
+
334
+
335
+ # set the HTTP header `Accept`
336
+ _header_params['Accept'] = self.api_client.select_header_accept(
337
+ [
338
+ 'application/json'
339
+ ]
340
+ )
341
+
342
+ # set the HTTP header `Content-Type`
343
+ if _content_type:
344
+ _header_params['Content-Type'] = _content_type
345
+ else:
346
+ _default_content_type = (
347
+ self.api_client.select_header_content_type(
348
+ [
349
+ 'application/json'
350
+ ]
351
+ )
352
+ )
353
+ if _default_content_type is not None:
354
+ _header_params['Content-Type'] = _default_content_type
355
+
356
+ # authentication setting
357
+ _auth_settings: List[str] = [
358
+ 'BasicAuth',
359
+ 'BearerAuth'
360
+ ]
361
+
362
+ return self.api_client.param_serialize(
363
+ method='PUT',
364
+ resource_path='/cells/{cell}/virtual-controllers/{controller}/coordinate-systems/{coordinate-system}',
365
+ path_params=_path_params,
366
+ query_params=_query_params,
367
+ header_params=_header_params,
368
+ body=_body_params,
369
+ post_params=_form_params,
370
+ files=_files,
371
+ auth_settings=_auth_settings,
372
+ collection_formats=_collection_formats,
373
+ _host=_host,
374
+ _request_auth=_request_auth
375
+ )
376
+
377
+
378
+
379
+ @validate_call
380
+ async def add_virtual_controller_tcp(
381
+ self,
382
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
383
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
384
+ motion_group: Annotated[StrictStr, Field(description="The motion-group identifier.")],
385
+ tcp: Annotated[StrictStr, Field(description="The unique identifier of a TCP.")],
386
+ robot_tcp_data: RobotTcpData,
387
+ _request_timeout: Union[
388
+ None,
389
+ Annotated[StrictFloat, Field(gt=0)],
390
+ Tuple[
391
+ Annotated[StrictFloat, Field(gt=0)],
392
+ Annotated[StrictFloat, Field(gt=0)]
393
+ ]
394
+ ] = None,
395
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
396
+ _content_type: Optional[StrictStr] = None,
397
+ _headers: Optional[Dict[StrictStr, Any]] = None,
398
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
399
+ ) -> None:
400
+ """Add TCP
401
+
402
+ Adds a new TCP or updates an existing TCP in the motion group. The position and rotation values in the request body are defined within the flange's coordinate system. > **NOTE** > > Ensure the TCP's position is within the robot's reach. Refer to the robot's documentation or data sheet for details like joint limits or reach. <!-- theme: info --> > #### NOTE > > When adding or updating a TCP, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear. > - The TCP may not be immediately visible or appear outdated in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the TCP is available for operation. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the TCP may not yet be visible nor usable.
403
+
404
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
405
+ :type cell: str
406
+ :param controller: Unique identifier to address a controller in the cell. (required)
407
+ :type controller: str
408
+ :param motion_group: The motion-group identifier. (required)
409
+ :type motion_group: str
410
+ :param tcp: The unique identifier of a TCP. (required)
411
+ :type tcp: str
412
+ :param robot_tcp_data: (required)
413
+ :type robot_tcp_data: RobotTcpData
414
+ :param _request_timeout: timeout setting for this request. If one
415
+ number provided, it will be total request
416
+ timeout. It can also be a pair (tuple) of
417
+ (connection, read) timeouts.
418
+ :type _request_timeout: int, tuple(int, int), optional
419
+ :param _request_auth: set to override the auth_settings for an a single
420
+ request; this effectively ignores the
421
+ authentication in the spec for a single request.
422
+ :type _request_auth: dict, optional
423
+ :param _content_type: force content-type for the request.
424
+ :type _content_type: str, Optional
425
+ :param _headers: set to override the headers for a single
426
+ request; this effectively ignores the headers
427
+ in the spec for a single request.
428
+ :type _headers: dict, optional
429
+ :param _host_index: set to override the host_index for a single
430
+ request; this effectively ignores the host_index
431
+ in the spec for a single request.
432
+ :type _host_index: int, optional
433
+ :return: Returns the result object.
434
+ """ # noqa: E501
435
+
436
+ _param = self._add_virtual_controller_tcp_serialize(
437
+ cell=cell,
438
+ controller=controller,
439
+ motion_group=motion_group,
440
+ tcp=tcp,
441
+ robot_tcp_data=robot_tcp_data,
442
+ _request_auth=_request_auth,
443
+ _content_type=_content_type,
444
+ _headers=_headers,
445
+ _host_index=_host_index
446
+ )
447
+
448
+ _response_types_map: Dict[str, Optional[str]] = {
449
+ '200': None,
450
+ '400': "Error",
451
+ '404': "Error",
452
+ }
453
+
454
+ response_data = await self.api_client.call_api(
455
+ *_param,
456
+ _request_timeout=_request_timeout
457
+ )
458
+ await response_data.read()
459
+ return self.api_client.response_deserialize(
460
+ response_data=response_data,
461
+ response_types_map=_response_types_map,
462
+ ).data
463
+
464
+
465
+ @validate_call
466
+ async def add_virtual_controller_tcp_with_http_info(
467
+ self,
468
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
469
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
470
+ motion_group: Annotated[StrictStr, Field(description="The motion-group identifier.")],
471
+ tcp: Annotated[StrictStr, Field(description="The unique identifier of a TCP.")],
472
+ robot_tcp_data: RobotTcpData,
473
+ _request_timeout: Union[
474
+ None,
475
+ Annotated[StrictFloat, Field(gt=0)],
476
+ Tuple[
477
+ Annotated[StrictFloat, Field(gt=0)],
478
+ Annotated[StrictFloat, Field(gt=0)]
479
+ ]
480
+ ] = None,
481
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
482
+ _content_type: Optional[StrictStr] = None,
483
+ _headers: Optional[Dict[StrictStr, Any]] = None,
484
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
485
+ ) -> ApiResponse[None]:
486
+ """Add TCP
487
+
488
+ Adds a new TCP or updates an existing TCP in the motion group. The position and rotation values in the request body are defined within the flange's coordinate system. > **NOTE** > > Ensure the TCP's position is within the robot's reach. Refer to the robot's documentation or data sheet for details like joint limits or reach. <!-- theme: info --> > #### NOTE > > When adding or updating a TCP, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear. > - The TCP may not be immediately visible or appear outdated in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the TCP is available for operation. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the TCP may not yet be visible nor usable.
489
+
490
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
491
+ :type cell: str
492
+ :param controller: Unique identifier to address a controller in the cell. (required)
493
+ :type controller: str
494
+ :param motion_group: The motion-group identifier. (required)
495
+ :type motion_group: str
496
+ :param tcp: The unique identifier of a TCP. (required)
497
+ :type tcp: str
498
+ :param robot_tcp_data: (required)
499
+ :type robot_tcp_data: RobotTcpData
500
+ :param _request_timeout: timeout setting for this request. If one
501
+ number provided, it will be total request
502
+ timeout. It can also be a pair (tuple) of
503
+ (connection, read) timeouts.
504
+ :type _request_timeout: int, tuple(int, int), optional
505
+ :param _request_auth: set to override the auth_settings for an a single
506
+ request; this effectively ignores the
507
+ authentication in the spec for a single request.
508
+ :type _request_auth: dict, optional
509
+ :param _content_type: force content-type for the request.
510
+ :type _content_type: str, Optional
511
+ :param _headers: set to override the headers for a single
512
+ request; this effectively ignores the headers
513
+ in the spec for a single request.
514
+ :type _headers: dict, optional
515
+ :param _host_index: set to override the host_index for a single
516
+ request; this effectively ignores the host_index
517
+ in the spec for a single request.
518
+ :type _host_index: int, optional
519
+ :return: Returns the result object.
520
+ """ # noqa: E501
521
+
522
+ _param = self._add_virtual_controller_tcp_serialize(
523
+ cell=cell,
524
+ controller=controller,
525
+ motion_group=motion_group,
526
+ tcp=tcp,
527
+ robot_tcp_data=robot_tcp_data,
528
+ _request_auth=_request_auth,
529
+ _content_type=_content_type,
530
+ _headers=_headers,
531
+ _host_index=_host_index
532
+ )
533
+
534
+ _response_types_map: Dict[str, Optional[str]] = {
535
+ '200': None,
536
+ '400': "Error",
537
+ '404': "Error",
538
+ }
539
+
540
+ response_data = await self.api_client.call_api(
541
+ *_param,
542
+ _request_timeout=_request_timeout
543
+ )
544
+ await response_data.read()
545
+ return self.api_client.response_deserialize(
546
+ response_data=response_data,
547
+ response_types_map=_response_types_map,
548
+ )
549
+
550
+
551
+ @validate_call
552
+ async def add_virtual_controller_tcp_without_preload_content(
553
+ self,
554
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
555
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
556
+ motion_group: Annotated[StrictStr, Field(description="The motion-group identifier.")],
557
+ tcp: Annotated[StrictStr, Field(description="The unique identifier of a TCP.")],
558
+ robot_tcp_data: RobotTcpData,
559
+ _request_timeout: Union[
560
+ None,
561
+ Annotated[StrictFloat, Field(gt=0)],
562
+ Tuple[
563
+ Annotated[StrictFloat, Field(gt=0)],
564
+ Annotated[StrictFloat, Field(gt=0)]
565
+ ]
566
+ ] = None,
567
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
568
+ _content_type: Optional[StrictStr] = None,
569
+ _headers: Optional[Dict[StrictStr, Any]] = None,
570
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
571
+ ) -> RESTResponseType:
572
+ """Add TCP
573
+
574
+ Adds a new TCP or updates an existing TCP in the motion group. The position and rotation values in the request body are defined within the flange's coordinate system. > **NOTE** > > Ensure the TCP's position is within the robot's reach. Refer to the robot's documentation or data sheet for details like joint limits or reach. <!-- theme: info --> > #### NOTE > > When adding or updating a TCP, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear. > - The TCP may not be immediately visible or appear outdated in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the TCP is available for operation. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the TCP may not yet be visible nor usable.
575
+
576
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
577
+ :type cell: str
578
+ :param controller: Unique identifier to address a controller in the cell. (required)
579
+ :type controller: str
580
+ :param motion_group: The motion-group identifier. (required)
581
+ :type motion_group: str
582
+ :param tcp: The unique identifier of a TCP. (required)
583
+ :type tcp: str
584
+ :param robot_tcp_data: (required)
585
+ :type robot_tcp_data: RobotTcpData
586
+ :param _request_timeout: timeout setting for this request. If one
587
+ number provided, it will be total request
588
+ timeout. It can also be a pair (tuple) of
589
+ (connection, read) timeouts.
590
+ :type _request_timeout: int, tuple(int, int), optional
591
+ :param _request_auth: set to override the auth_settings for an a single
592
+ request; this effectively ignores the
593
+ authentication in the spec for a single request.
594
+ :type _request_auth: dict, optional
595
+ :param _content_type: force content-type for the request.
596
+ :type _content_type: str, Optional
597
+ :param _headers: set to override the headers for a single
598
+ request; this effectively ignores the headers
599
+ in the spec for a single request.
600
+ :type _headers: dict, optional
601
+ :param _host_index: set to override the host_index for a single
602
+ request; this effectively ignores the host_index
603
+ in the spec for a single request.
604
+ :type _host_index: int, optional
605
+ :return: Returns the result object.
606
+ """ # noqa: E501
607
+
608
+ _param = self._add_virtual_controller_tcp_serialize(
609
+ cell=cell,
610
+ controller=controller,
611
+ motion_group=motion_group,
612
+ tcp=tcp,
613
+ robot_tcp_data=robot_tcp_data,
614
+ _request_auth=_request_auth,
615
+ _content_type=_content_type,
616
+ _headers=_headers,
617
+ _host_index=_host_index
618
+ )
619
+
620
+ _response_types_map: Dict[str, Optional[str]] = {
621
+ '200': None,
622
+ '400': "Error",
623
+ '404': "Error",
624
+ }
625
+
626
+ response_data = await self.api_client.call_api(
627
+ *_param,
628
+ _request_timeout=_request_timeout
629
+ )
630
+ return response_data.response
631
+
632
+
633
+ def _add_virtual_controller_tcp_serialize(
634
+ self,
635
+ cell,
636
+ controller,
637
+ motion_group,
638
+ tcp,
639
+ robot_tcp_data,
640
+ _request_auth,
641
+ _content_type,
642
+ _headers,
643
+ _host_index,
644
+ ) -> RequestSerialized:
645
+
646
+ _host = None
647
+
648
+ _collection_formats: Dict[str, str] = {
649
+ }
650
+
651
+ _path_params: Dict[str, str] = {}
652
+ _query_params: List[Tuple[str, str]] = []
653
+ _header_params: Dict[str, Optional[str]] = _headers or {}
654
+ _form_params: List[Tuple[str, str]] = []
655
+ _files: Dict[str, Union[str, bytes]] = {}
656
+ _body_params: Optional[bytes] = None
657
+
658
+ # process the path parameters
659
+ if cell is not None:
660
+ _path_params['cell'] = cell
661
+ if controller is not None:
662
+ _path_params['controller'] = controller
663
+ if motion_group is not None:
664
+ _path_params['motion-group'] = motion_group
665
+ if tcp is not None:
666
+ _path_params['tcp'] = tcp
667
+ # process the query parameters
668
+ # process the header parameters
669
+ # process the form parameters
670
+ # process the body parameter
671
+ if robot_tcp_data is not None:
672
+ _body_params = robot_tcp_data
673
+
674
+
675
+ # set the HTTP header `Accept`
676
+ _header_params['Accept'] = self.api_client.select_header_accept(
677
+ [
678
+ 'application/json'
679
+ ]
680
+ )
681
+
682
+ # set the HTTP header `Content-Type`
683
+ if _content_type:
684
+ _header_params['Content-Type'] = _content_type
685
+ else:
686
+ _default_content_type = (
687
+ self.api_client.select_header_content_type(
688
+ [
689
+ 'application/json'
690
+ ]
691
+ )
692
+ )
693
+ if _default_content_type is not None:
694
+ _header_params['Content-Type'] = _default_content_type
695
+
696
+ # authentication setting
697
+ _auth_settings: List[str] = [
698
+ 'BasicAuth',
699
+ 'BearerAuth'
700
+ ]
701
+
702
+ return self.api_client.param_serialize(
703
+ method='PUT',
704
+ resource_path='/cells/{cell}/virtual-controllers/{controller}/motion-groups/{motion-group}/tcps/{tcp}',
705
+ path_params=_path_params,
706
+ query_params=_query_params,
707
+ header_params=_header_params,
708
+ body=_body_params,
709
+ post_params=_form_params,
710
+ files=_files,
711
+ auth_settings=_auth_settings,
712
+ collection_formats=_collection_formats,
713
+ _host=_host,
714
+ _request_auth=_request_auth
715
+ )
716
+
717
+
718
+
719
+ @validate_call
720
+ async def delete_virtual_controller_coordinate_system(
721
+ self,
722
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
723
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
724
+ coordinate_system: Annotated[StrictStr, Field(description="Unique identifier addressing a coordinate system.")],
725
+ delete_dependent: Annotated[Optional[StrictBool], Field(description="If true, all dependent coordinate systems will be deleted as well.")] = None,
726
+ _request_timeout: Union[
727
+ None,
728
+ Annotated[StrictFloat, Field(gt=0)],
729
+ Tuple[
730
+ Annotated[StrictFloat, Field(gt=0)],
731
+ Annotated[StrictFloat, Field(gt=0)]
732
+ ]
733
+ ] = None,
734
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
735
+ _content_type: Optional[StrictStr] = None,
736
+ _headers: Optional[Dict[StrictStr, Any]] = None,
737
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
738
+ ) -> None:
739
+ """Delete Coordinate System
740
+
741
+ Deletes a coordinate system from the virtual controller. This will remove the coordinate system from the list of coordinate systems and also remove all dependent coordinate systems that use the deleted coordinate system as reference. <!-- theme: info --> > #### NOTE > > When a new coordinate system is removed, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new coordinate system may not yet be available for visualization or program execution.
742
+
743
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
744
+ :type cell: str
745
+ :param controller: Unique identifier to address a controller in the cell. (required)
746
+ :type controller: str
747
+ :param coordinate_system: Unique identifier addressing a coordinate system. (required)
748
+ :type coordinate_system: str
749
+ :param delete_dependent: If true, all dependent coordinate systems will be deleted as well.
750
+ :type delete_dependent: bool
751
+ :param _request_timeout: timeout setting for this request. If one
752
+ number provided, it will be total request
753
+ timeout. It can also be a pair (tuple) of
754
+ (connection, read) timeouts.
755
+ :type _request_timeout: int, tuple(int, int), optional
756
+ :param _request_auth: set to override the auth_settings for an a single
757
+ request; this effectively ignores the
758
+ authentication in the spec for a single request.
759
+ :type _request_auth: dict, optional
760
+ :param _content_type: force content-type for the request.
761
+ :type _content_type: str, Optional
762
+ :param _headers: set to override the headers for a single
763
+ request; this effectively ignores the headers
764
+ in the spec for a single request.
765
+ :type _headers: dict, optional
766
+ :param _host_index: set to override the host_index for a single
767
+ request; this effectively ignores the host_index
768
+ in the spec for a single request.
769
+ :type _host_index: int, optional
770
+ :return: Returns the result object.
771
+ """ # noqa: E501
772
+
773
+ _param = self._delete_virtual_controller_coordinate_system_serialize(
774
+ cell=cell,
775
+ controller=controller,
776
+ coordinate_system=coordinate_system,
777
+ delete_dependent=delete_dependent,
778
+ _request_auth=_request_auth,
779
+ _content_type=_content_type,
780
+ _headers=_headers,
781
+ _host_index=_host_index
782
+ )
783
+
784
+ _response_types_map: Dict[str, Optional[str]] = {
785
+ '200': None,
786
+ '400': "Error",
787
+ '404': "Error",
788
+ }
789
+
790
+ response_data = await self.api_client.call_api(
791
+ *_param,
792
+ _request_timeout=_request_timeout
793
+ )
794
+ await response_data.read()
795
+ return self.api_client.response_deserialize(
796
+ response_data=response_data,
797
+ response_types_map=_response_types_map,
798
+ ).data
799
+
800
+
801
+ @validate_call
802
+ async def delete_virtual_controller_coordinate_system_with_http_info(
803
+ self,
804
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
805
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
806
+ coordinate_system: Annotated[StrictStr, Field(description="Unique identifier addressing a coordinate system.")],
807
+ delete_dependent: Annotated[Optional[StrictBool], Field(description="If true, all dependent coordinate systems will be deleted as well.")] = None,
808
+ _request_timeout: Union[
809
+ None,
810
+ Annotated[StrictFloat, Field(gt=0)],
811
+ Tuple[
812
+ Annotated[StrictFloat, Field(gt=0)],
813
+ Annotated[StrictFloat, Field(gt=0)]
814
+ ]
815
+ ] = None,
816
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
817
+ _content_type: Optional[StrictStr] = None,
818
+ _headers: Optional[Dict[StrictStr, Any]] = None,
819
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
820
+ ) -> ApiResponse[None]:
821
+ """Delete Coordinate System
822
+
823
+ Deletes a coordinate system from the virtual controller. This will remove the coordinate system from the list of coordinate systems and also remove all dependent coordinate systems that use the deleted coordinate system as reference. <!-- theme: info --> > #### NOTE > > When a new coordinate system is removed, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new coordinate system may not yet be available for visualization or program execution.
824
+
825
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
826
+ :type cell: str
827
+ :param controller: Unique identifier to address a controller in the cell. (required)
828
+ :type controller: str
829
+ :param coordinate_system: Unique identifier addressing a coordinate system. (required)
830
+ :type coordinate_system: str
831
+ :param delete_dependent: If true, all dependent coordinate systems will be deleted as well.
832
+ :type delete_dependent: bool
833
+ :param _request_timeout: timeout setting for this request. If one
834
+ number provided, it will be total request
835
+ timeout. It can also be a pair (tuple) of
836
+ (connection, read) timeouts.
837
+ :type _request_timeout: int, tuple(int, int), optional
838
+ :param _request_auth: set to override the auth_settings for an a single
839
+ request; this effectively ignores the
840
+ authentication in the spec for a single request.
841
+ :type _request_auth: dict, optional
842
+ :param _content_type: force content-type for the request.
843
+ :type _content_type: str, Optional
844
+ :param _headers: set to override the headers for a single
845
+ request; this effectively ignores the headers
846
+ in the spec for a single request.
847
+ :type _headers: dict, optional
848
+ :param _host_index: set to override the host_index for a single
849
+ request; this effectively ignores the host_index
850
+ in the spec for a single request.
851
+ :type _host_index: int, optional
852
+ :return: Returns the result object.
853
+ """ # noqa: E501
854
+
855
+ _param = self._delete_virtual_controller_coordinate_system_serialize(
856
+ cell=cell,
857
+ controller=controller,
858
+ coordinate_system=coordinate_system,
859
+ delete_dependent=delete_dependent,
860
+ _request_auth=_request_auth,
861
+ _content_type=_content_type,
862
+ _headers=_headers,
863
+ _host_index=_host_index
864
+ )
865
+
866
+ _response_types_map: Dict[str, Optional[str]] = {
867
+ '200': None,
868
+ '400': "Error",
869
+ '404': "Error",
870
+ }
871
+
872
+ response_data = await self.api_client.call_api(
873
+ *_param,
874
+ _request_timeout=_request_timeout
875
+ )
876
+ await response_data.read()
877
+ return self.api_client.response_deserialize(
878
+ response_data=response_data,
879
+ response_types_map=_response_types_map,
880
+ )
881
+
882
+
883
+ @validate_call
884
+ async def delete_virtual_controller_coordinate_system_without_preload_content(
885
+ self,
886
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
887
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
888
+ coordinate_system: Annotated[StrictStr, Field(description="Unique identifier addressing a coordinate system.")],
889
+ delete_dependent: Annotated[Optional[StrictBool], Field(description="If true, all dependent coordinate systems will be deleted as well.")] = None,
890
+ _request_timeout: Union[
891
+ None,
892
+ Annotated[StrictFloat, Field(gt=0)],
893
+ Tuple[
894
+ Annotated[StrictFloat, Field(gt=0)],
895
+ Annotated[StrictFloat, Field(gt=0)]
896
+ ]
897
+ ] = None,
898
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
899
+ _content_type: Optional[StrictStr] = None,
900
+ _headers: Optional[Dict[StrictStr, Any]] = None,
901
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
902
+ ) -> RESTResponseType:
903
+ """Delete Coordinate System
904
+
905
+ Deletes a coordinate system from the virtual controller. This will remove the coordinate system from the list of coordinate systems and also remove all dependent coordinate systems that use the deleted coordinate system as reference. <!-- theme: info --> > #### NOTE > > When a new coordinate system is removed, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or appear outdated in the UI. > - Coordinate system changes are not immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > This means that immediately after a successful response, the new coordinate system may not yet be available for visualization or program execution.
906
+
907
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
908
+ :type cell: str
909
+ :param controller: Unique identifier to address a controller in the cell. (required)
910
+ :type controller: str
911
+ :param coordinate_system: Unique identifier addressing a coordinate system. (required)
912
+ :type coordinate_system: str
913
+ :param delete_dependent: If true, all dependent coordinate systems will be deleted as well.
914
+ :type delete_dependent: bool
915
+ :param _request_timeout: timeout setting for this request. If one
916
+ number provided, it will be total request
917
+ timeout. It can also be a pair (tuple) of
918
+ (connection, read) timeouts.
919
+ :type _request_timeout: int, tuple(int, int), optional
920
+ :param _request_auth: set to override the auth_settings for an a single
921
+ request; this effectively ignores the
922
+ authentication in the spec for a single request.
923
+ :type _request_auth: dict, optional
924
+ :param _content_type: force content-type for the request.
925
+ :type _content_type: str, Optional
926
+ :param _headers: set to override the headers for a single
927
+ request; this effectively ignores the headers
928
+ in the spec for a single request.
929
+ :type _headers: dict, optional
930
+ :param _host_index: set to override the host_index for a single
931
+ request; this effectively ignores the host_index
932
+ in the spec for a single request.
933
+ :type _host_index: int, optional
934
+ :return: Returns the result object.
935
+ """ # noqa: E501
936
+
937
+ _param = self._delete_virtual_controller_coordinate_system_serialize(
938
+ cell=cell,
939
+ controller=controller,
940
+ coordinate_system=coordinate_system,
941
+ delete_dependent=delete_dependent,
942
+ _request_auth=_request_auth,
943
+ _content_type=_content_type,
944
+ _headers=_headers,
945
+ _host_index=_host_index
946
+ )
947
+
948
+ _response_types_map: Dict[str, Optional[str]] = {
949
+ '200': None,
950
+ '400': "Error",
951
+ '404': "Error",
952
+ }
953
+
954
+ response_data = await self.api_client.call_api(
955
+ *_param,
956
+ _request_timeout=_request_timeout
957
+ )
958
+ return response_data.response
959
+
960
+
961
+ def _delete_virtual_controller_coordinate_system_serialize(
962
+ self,
963
+ cell,
964
+ controller,
965
+ coordinate_system,
966
+ delete_dependent,
967
+ _request_auth,
968
+ _content_type,
969
+ _headers,
970
+ _host_index,
971
+ ) -> RequestSerialized:
972
+
973
+ _host = None
974
+
975
+ _collection_formats: Dict[str, str] = {
976
+ }
977
+
978
+ _path_params: Dict[str, str] = {}
979
+ _query_params: List[Tuple[str, str]] = []
980
+ _header_params: Dict[str, Optional[str]] = _headers or {}
981
+ _form_params: List[Tuple[str, str]] = []
982
+ _files: Dict[str, Union[str, bytes]] = {}
983
+ _body_params: Optional[bytes] = None
984
+
985
+ # process the path parameters
986
+ if cell is not None:
987
+ _path_params['cell'] = cell
988
+ if controller is not None:
989
+ _path_params['controller'] = controller
990
+ if coordinate_system is not None:
991
+ _path_params['coordinate-system'] = coordinate_system
992
+ # process the query parameters
993
+ if delete_dependent is not None:
994
+
995
+ _query_params.append(('delete_dependent', delete_dependent))
996
+
997
+ # process the header parameters
998
+ # process the form parameters
999
+ # process the body parameter
1000
+
1001
+
1002
+ # set the HTTP header `Accept`
1003
+ _header_params['Accept'] = self.api_client.select_header_accept(
1004
+ [
1005
+ 'application/json'
1006
+ ]
1007
+ )
1008
+
1009
+
1010
+ # authentication setting
1011
+ _auth_settings: List[str] = [
1012
+ 'BasicAuth',
1013
+ 'BearerAuth'
1014
+ ]
1015
+
1016
+ return self.api_client.param_serialize(
1017
+ method='DELETE',
1018
+ resource_path='/cells/{cell}/virtual-controllers/{controller}/coordinate-systems/{coordinate-system}',
1019
+ path_params=_path_params,
1020
+ query_params=_query_params,
1021
+ header_params=_header_params,
1022
+ body=_body_params,
1023
+ post_params=_form_params,
1024
+ files=_files,
1025
+ auth_settings=_auth_settings,
1026
+ collection_formats=_collection_formats,
1027
+ _host=_host,
1028
+ _request_auth=_request_auth
1029
+ )
1030
+
1031
+
1032
+
1033
+ @validate_call
1034
+ async def delete_virtual_controller_tcp(
1035
+ self,
1036
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
1037
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
1038
+ motion_group: Annotated[StrictStr, Field(description="The motion-group identifier.")],
1039
+ tcp: Annotated[StrictStr, Field(description="The unique identifier of a TCP.")],
1040
+ _request_timeout: Union[
1041
+ None,
1042
+ Annotated[StrictFloat, Field(gt=0)],
1043
+ Tuple[
1044
+ Annotated[StrictFloat, Field(gt=0)],
1045
+ Annotated[StrictFloat, Field(gt=0)]
1046
+ ]
1047
+ ] = None,
1048
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1049
+ _content_type: Optional[StrictStr] = None,
1050
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1051
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1052
+ ) -> None:
1053
+ """Remove TCP
1054
+
1055
+ Removes the TCP (Tool Center Point) from the motion group. An unknown TCP is a valid input and will simply be ignored. <!-- theme: info --> > #### NOTE > > When removing a TCP, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear. > - The removal of the TCP may not be immediately visible or appear outdated in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the then used TCP may not yet be visible nor usable.
1056
+
1057
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
1058
+ :type cell: str
1059
+ :param controller: Unique identifier to address a controller in the cell. (required)
1060
+ :type controller: str
1061
+ :param motion_group: The motion-group identifier. (required)
1062
+ :type motion_group: str
1063
+ :param tcp: The unique identifier of a TCP. (required)
1064
+ :type tcp: str
1065
+ :param _request_timeout: timeout setting for this request. If one
1066
+ number provided, it will be total request
1067
+ timeout. It can also be a pair (tuple) of
1068
+ (connection, read) timeouts.
1069
+ :type _request_timeout: int, tuple(int, int), optional
1070
+ :param _request_auth: set to override the auth_settings for an a single
1071
+ request; this effectively ignores the
1072
+ authentication in the spec for a single request.
1073
+ :type _request_auth: dict, optional
1074
+ :param _content_type: force content-type for the request.
1075
+ :type _content_type: str, Optional
1076
+ :param _headers: set to override the headers for a single
1077
+ request; this effectively ignores the headers
1078
+ in the spec for a single request.
1079
+ :type _headers: dict, optional
1080
+ :param _host_index: set to override the host_index for a single
1081
+ request; this effectively ignores the host_index
1082
+ in the spec for a single request.
1083
+ :type _host_index: int, optional
1084
+ :return: Returns the result object.
1085
+ """ # noqa: E501
1086
+
1087
+ _param = self._delete_virtual_controller_tcp_serialize(
1088
+ cell=cell,
1089
+ controller=controller,
1090
+ motion_group=motion_group,
1091
+ tcp=tcp,
1092
+ _request_auth=_request_auth,
1093
+ _content_type=_content_type,
1094
+ _headers=_headers,
1095
+ _host_index=_host_index
1096
+ )
1097
+
1098
+ _response_types_map: Dict[str, Optional[str]] = {
1099
+ '200': None,
1100
+ '400': "Error",
1101
+ '404': "Error",
1102
+ }
1103
+
1104
+ response_data = await self.api_client.call_api(
1105
+ *_param,
1106
+ _request_timeout=_request_timeout
1107
+ )
1108
+ await response_data.read()
1109
+ return self.api_client.response_deserialize(
1110
+ response_data=response_data,
1111
+ response_types_map=_response_types_map,
1112
+ ).data
1113
+
1114
+
1115
+ @validate_call
1116
+ async def delete_virtual_controller_tcp_with_http_info(
1117
+ self,
1118
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
1119
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
1120
+ motion_group: Annotated[StrictStr, Field(description="The motion-group identifier.")],
1121
+ tcp: Annotated[StrictStr, Field(description="The unique identifier of a TCP.")],
1122
+ _request_timeout: Union[
1123
+ None,
1124
+ Annotated[StrictFloat, Field(gt=0)],
1125
+ Tuple[
1126
+ Annotated[StrictFloat, Field(gt=0)],
1127
+ Annotated[StrictFloat, Field(gt=0)]
1128
+ ]
1129
+ ] = None,
1130
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1131
+ _content_type: Optional[StrictStr] = None,
1132
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1133
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1134
+ ) -> ApiResponse[None]:
1135
+ """Remove TCP
1136
+
1137
+ Removes the TCP (Tool Center Point) from the motion group. An unknown TCP is a valid input and will simply be ignored. <!-- theme: info --> > #### NOTE > > When removing a TCP, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear. > - The removal of the TCP may not be immediately visible or appear outdated in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the then used TCP may not yet be visible nor usable.
1138
+
1139
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
1140
+ :type cell: str
1141
+ :param controller: Unique identifier to address a controller in the cell. (required)
1142
+ :type controller: str
1143
+ :param motion_group: The motion-group identifier. (required)
1144
+ :type motion_group: str
1145
+ :param tcp: The unique identifier of a TCP. (required)
1146
+ :type tcp: str
1147
+ :param _request_timeout: timeout setting for this request. If one
1148
+ number provided, it will be total request
1149
+ timeout. It can also be a pair (tuple) of
1150
+ (connection, read) timeouts.
1151
+ :type _request_timeout: int, tuple(int, int), optional
1152
+ :param _request_auth: set to override the auth_settings for an a single
1153
+ request; this effectively ignores the
1154
+ authentication in the spec for a single request.
1155
+ :type _request_auth: dict, optional
1156
+ :param _content_type: force content-type for the request.
1157
+ :type _content_type: str, Optional
1158
+ :param _headers: set to override the headers for a single
1159
+ request; this effectively ignores the headers
1160
+ in the spec for a single request.
1161
+ :type _headers: dict, optional
1162
+ :param _host_index: set to override the host_index for a single
1163
+ request; this effectively ignores the host_index
1164
+ in the spec for a single request.
1165
+ :type _host_index: int, optional
1166
+ :return: Returns the result object.
1167
+ """ # noqa: E501
1168
+
1169
+ _param = self._delete_virtual_controller_tcp_serialize(
1170
+ cell=cell,
1171
+ controller=controller,
1172
+ motion_group=motion_group,
1173
+ tcp=tcp,
1174
+ _request_auth=_request_auth,
1175
+ _content_type=_content_type,
1176
+ _headers=_headers,
1177
+ _host_index=_host_index
1178
+ )
1179
+
1180
+ _response_types_map: Dict[str, Optional[str]] = {
1181
+ '200': None,
1182
+ '400': "Error",
1183
+ '404': "Error",
1184
+ }
1185
+
1186
+ response_data = await self.api_client.call_api(
1187
+ *_param,
1188
+ _request_timeout=_request_timeout
1189
+ )
1190
+ await response_data.read()
1191
+ return self.api_client.response_deserialize(
1192
+ response_data=response_data,
1193
+ response_types_map=_response_types_map,
1194
+ )
1195
+
1196
+
1197
+ @validate_call
1198
+ async def delete_virtual_controller_tcp_without_preload_content(
1199
+ self,
1200
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
1201
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
1202
+ motion_group: Annotated[StrictStr, Field(description="The motion-group identifier.")],
1203
+ tcp: Annotated[StrictStr, Field(description="The unique identifier of a TCP.")],
1204
+ _request_timeout: Union[
1205
+ None,
1206
+ Annotated[StrictFloat, Field(gt=0)],
1207
+ Tuple[
1208
+ Annotated[StrictFloat, Field(gt=0)],
1209
+ Annotated[StrictFloat, Field(gt=0)]
1210
+ ]
1211
+ ] = None,
1212
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1213
+ _content_type: Optional[StrictStr] = None,
1214
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1215
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1216
+ ) -> RESTResponseType:
1217
+ """Remove TCP
1218
+
1219
+ Removes the TCP (Tool Center Point) from the motion group. An unknown TCP is a valid input and will simply be ignored. <!-- theme: info --> > #### NOTE > > When removing a TCP, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear. > - The removal of the TCP may not be immediately visible or appear outdated in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the then used TCP may not yet be visible nor usable.
1220
+
1221
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
1222
+ :type cell: str
1223
+ :param controller: Unique identifier to address a controller in the cell. (required)
1224
+ :type controller: str
1225
+ :param motion_group: The motion-group identifier. (required)
1226
+ :type motion_group: str
1227
+ :param tcp: The unique identifier of a TCP. (required)
1228
+ :type tcp: str
1229
+ :param _request_timeout: timeout setting for this request. If one
1230
+ number provided, it will be total request
1231
+ timeout. It can also be a pair (tuple) of
1232
+ (connection, read) timeouts.
1233
+ :type _request_timeout: int, tuple(int, int), optional
1234
+ :param _request_auth: set to override the auth_settings for an a single
1235
+ request; this effectively ignores the
1236
+ authentication in the spec for a single request.
1237
+ :type _request_auth: dict, optional
1238
+ :param _content_type: force content-type for the request.
1239
+ :type _content_type: str, Optional
1240
+ :param _headers: set to override the headers for a single
1241
+ request; this effectively ignores the headers
1242
+ in the spec for a single request.
1243
+ :type _headers: dict, optional
1244
+ :param _host_index: set to override the host_index for a single
1245
+ request; this effectively ignores the host_index
1246
+ in the spec for a single request.
1247
+ :type _host_index: int, optional
1248
+ :return: Returns the result object.
1249
+ """ # noqa: E501
1250
+
1251
+ _param = self._delete_virtual_controller_tcp_serialize(
1252
+ cell=cell,
1253
+ controller=controller,
1254
+ motion_group=motion_group,
1255
+ tcp=tcp,
1256
+ _request_auth=_request_auth,
1257
+ _content_type=_content_type,
1258
+ _headers=_headers,
1259
+ _host_index=_host_index
1260
+ )
1261
+
1262
+ _response_types_map: Dict[str, Optional[str]] = {
1263
+ '200': None,
1264
+ '400': "Error",
1265
+ '404': "Error",
1266
+ }
1267
+
1268
+ response_data = await self.api_client.call_api(
1269
+ *_param,
1270
+ _request_timeout=_request_timeout
1271
+ )
1272
+ return response_data.response
1273
+
1274
+
1275
+ def _delete_virtual_controller_tcp_serialize(
1276
+ self,
1277
+ cell,
1278
+ controller,
1279
+ motion_group,
1280
+ tcp,
1281
+ _request_auth,
1282
+ _content_type,
1283
+ _headers,
1284
+ _host_index,
1285
+ ) -> RequestSerialized:
1286
+
1287
+ _host = None
1288
+
1289
+ _collection_formats: Dict[str, str] = {
1290
+ }
1291
+
1292
+ _path_params: Dict[str, str] = {}
1293
+ _query_params: List[Tuple[str, str]] = []
1294
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1295
+ _form_params: List[Tuple[str, str]] = []
1296
+ _files: Dict[str, Union[str, bytes]] = {}
1297
+ _body_params: Optional[bytes] = None
1298
+
1299
+ # process the path parameters
1300
+ if cell is not None:
1301
+ _path_params['cell'] = cell
1302
+ if controller is not None:
1303
+ _path_params['controller'] = controller
1304
+ if motion_group is not None:
1305
+ _path_params['motion-group'] = motion_group
1306
+ if tcp is not None:
1307
+ _path_params['tcp'] = tcp
1308
+ # process the query parameters
1309
+ # process the header parameters
1310
+ # process the form parameters
1311
+ # process the body parameter
1312
+
1313
+
1314
+ # set the HTTP header `Accept`
1315
+ _header_params['Accept'] = self.api_client.select_header_accept(
1316
+ [
1317
+ 'application/json'
1318
+ ]
1319
+ )
1320
+
1321
+
1322
+ # authentication setting
1323
+ _auth_settings: List[str] = [
1324
+ 'BasicAuth',
1325
+ 'BearerAuth'
1326
+ ]
1327
+
1328
+ return self.api_client.param_serialize(
1329
+ method='DELETE',
1330
+ resource_path='/cells/{cell}/virtual-controllers/{controller}/motion-groups/{motion-group}/tcps/{tcp}',
1331
+ path_params=_path_params,
1332
+ query_params=_query_params,
1333
+ header_params=_header_params,
1334
+ body=_body_params,
1335
+ post_params=_form_params,
1336
+ files=_files,
1337
+ auth_settings=_auth_settings,
1338
+ collection_formats=_collection_formats,
1339
+ _host=_host,
1340
+ _request_auth=_request_auth
1341
+ )
1342
+
1343
+
1344
+
1345
+ @validate_call
1346
+ async def get_emergency_stop(
1347
+ self,
1348
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
1349
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
1350
+ _request_timeout: Union[
1351
+ None,
1352
+ Annotated[StrictFloat, Field(gt=0)],
1353
+ Tuple[
1354
+ Annotated[StrictFloat, Field(gt=0)],
1355
+ Annotated[StrictFloat, Field(gt=0)]
1356
+ ]
1357
+ ] = None,
1358
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1359
+ _content_type: Optional[StrictStr] = None,
1360
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1361
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1362
+ ) -> Flag:
1363
+ """Get Emergency Stop State
1364
+
1365
+ Requests the Emergency Stop state of the virtual robot controller. Use [getCurrentMotionGroupState](getCurrentMotionGroupState) to get the Emergency Stop state with `safety_state` regardless of the controller type. > **NOTE** > > The Emergency Stop state can only be changed when using virtual robot controllers.
1366
+
1367
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
1368
+ :type cell: str
1369
+ :param controller: Unique identifier to address a controller in the cell. (required)
1370
+ :type controller: str
1371
+ :param _request_timeout: timeout setting for this request. If one
1372
+ number provided, it will be total request
1373
+ timeout. It can also be a pair (tuple) of
1374
+ (connection, read) timeouts.
1375
+ :type _request_timeout: int, tuple(int, int), optional
1376
+ :param _request_auth: set to override the auth_settings for an a single
1377
+ request; this effectively ignores the
1378
+ authentication in the spec for a single request.
1379
+ :type _request_auth: dict, optional
1380
+ :param _content_type: force content-type for the request.
1381
+ :type _content_type: str, Optional
1382
+ :param _headers: set to override the headers for a single
1383
+ request; this effectively ignores the headers
1384
+ in the spec for a single request.
1385
+ :type _headers: dict, optional
1386
+ :param _host_index: set to override the host_index for a single
1387
+ request; this effectively ignores the host_index
1388
+ in the spec for a single request.
1389
+ :type _host_index: int, optional
1390
+ :return: Returns the result object.
1391
+ """ # noqa: E501
1392
+
1393
+ _param = self._get_emergency_stop_serialize(
1394
+ cell=cell,
1395
+ controller=controller,
1396
+ _request_auth=_request_auth,
1397
+ _content_type=_content_type,
1398
+ _headers=_headers,
1399
+ _host_index=_host_index
1400
+ )
1401
+
1402
+ _response_types_map: Dict[str, Optional[str]] = {
1403
+ '200': "Flag",
1404
+ '400': "Error",
1405
+ '404': "Error",
1406
+ }
1407
+
1408
+ response_data = await self.api_client.call_api(
1409
+ *_param,
1410
+ _request_timeout=_request_timeout
1411
+ )
1412
+ await response_data.read()
1413
+ return self.api_client.response_deserialize(
1414
+ response_data=response_data,
1415
+ response_types_map=_response_types_map,
1416
+ ).data
1417
+
1418
+
1419
+ @validate_call
1420
+ async def get_emergency_stop_with_http_info(
1421
+ self,
1422
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
1423
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
1424
+ _request_timeout: Union[
1425
+ None,
1426
+ Annotated[StrictFloat, Field(gt=0)],
1427
+ Tuple[
1428
+ Annotated[StrictFloat, Field(gt=0)],
1429
+ Annotated[StrictFloat, Field(gt=0)]
1430
+ ]
1431
+ ] = None,
1432
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1433
+ _content_type: Optional[StrictStr] = None,
1434
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1435
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1436
+ ) -> ApiResponse[Flag]:
1437
+ """Get Emergency Stop State
1438
+
1439
+ Requests the Emergency Stop state of the virtual robot controller. Use [getCurrentMotionGroupState](getCurrentMotionGroupState) to get the Emergency Stop state with `safety_state` regardless of the controller type. > **NOTE** > > The Emergency Stop state can only be changed when using virtual robot controllers.
1440
+
1441
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
1442
+ :type cell: str
1443
+ :param controller: Unique identifier to address a controller in the cell. (required)
1444
+ :type controller: str
1445
+ :param _request_timeout: timeout setting for this request. If one
1446
+ number provided, it will be total request
1447
+ timeout. It can also be a pair (tuple) of
1448
+ (connection, read) timeouts.
1449
+ :type _request_timeout: int, tuple(int, int), optional
1450
+ :param _request_auth: set to override the auth_settings for an a single
1451
+ request; this effectively ignores the
1452
+ authentication in the spec for a single request.
1453
+ :type _request_auth: dict, optional
1454
+ :param _content_type: force content-type for the request.
1455
+ :type _content_type: str, Optional
1456
+ :param _headers: set to override the headers for a single
1457
+ request; this effectively ignores the headers
1458
+ in the spec for a single request.
1459
+ :type _headers: dict, optional
1460
+ :param _host_index: set to override the host_index for a single
1461
+ request; this effectively ignores the host_index
1462
+ in the spec for a single request.
1463
+ :type _host_index: int, optional
1464
+ :return: Returns the result object.
1465
+ """ # noqa: E501
1466
+
1467
+ _param = self._get_emergency_stop_serialize(
1468
+ cell=cell,
1469
+ controller=controller,
1470
+ _request_auth=_request_auth,
1471
+ _content_type=_content_type,
1472
+ _headers=_headers,
1473
+ _host_index=_host_index
1474
+ )
1475
+
1476
+ _response_types_map: Dict[str, Optional[str]] = {
1477
+ '200': "Flag",
1478
+ '400': "Error",
1479
+ '404': "Error",
1480
+ }
1481
+
1482
+ response_data = await self.api_client.call_api(
1483
+ *_param,
1484
+ _request_timeout=_request_timeout
1485
+ )
1486
+ await response_data.read()
1487
+ return self.api_client.response_deserialize(
1488
+ response_data=response_data,
1489
+ response_types_map=_response_types_map,
1490
+ )
1491
+
1492
+
1493
+ @validate_call
1494
+ async def get_emergency_stop_without_preload_content(
1495
+ self,
1496
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
1497
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
1498
+ _request_timeout: Union[
1499
+ None,
1500
+ Annotated[StrictFloat, Field(gt=0)],
1501
+ Tuple[
1502
+ Annotated[StrictFloat, Field(gt=0)],
1503
+ Annotated[StrictFloat, Field(gt=0)]
1504
+ ]
1505
+ ] = None,
1506
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1507
+ _content_type: Optional[StrictStr] = None,
1508
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1509
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1510
+ ) -> RESTResponseType:
1511
+ """Get Emergency Stop State
1512
+
1513
+ Requests the Emergency Stop state of the virtual robot controller. Use [getCurrentMotionGroupState](getCurrentMotionGroupState) to get the Emergency Stop state with `safety_state` regardless of the controller type. > **NOTE** > > The Emergency Stop state can only be changed when using virtual robot controllers.
1514
+
1515
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
1516
+ :type cell: str
1517
+ :param controller: Unique identifier to address a controller in the cell. (required)
1518
+ :type controller: str
1519
+ :param _request_timeout: timeout setting for this request. If one
1520
+ number provided, it will be total request
1521
+ timeout. It can also be a pair (tuple) of
1522
+ (connection, read) timeouts.
1523
+ :type _request_timeout: int, tuple(int, int), optional
1524
+ :param _request_auth: set to override the auth_settings for an a single
1525
+ request; this effectively ignores the
1526
+ authentication in the spec for a single request.
1527
+ :type _request_auth: dict, optional
1528
+ :param _content_type: force content-type for the request.
1529
+ :type _content_type: str, Optional
1530
+ :param _headers: set to override the headers for a single
1531
+ request; this effectively ignores the headers
1532
+ in the spec for a single request.
1533
+ :type _headers: dict, optional
1534
+ :param _host_index: set to override the host_index for a single
1535
+ request; this effectively ignores the host_index
1536
+ in the spec for a single request.
1537
+ :type _host_index: int, optional
1538
+ :return: Returns the result object.
1539
+ """ # noqa: E501
1540
+
1541
+ _param = self._get_emergency_stop_serialize(
1542
+ cell=cell,
1543
+ controller=controller,
1544
+ _request_auth=_request_auth,
1545
+ _content_type=_content_type,
1546
+ _headers=_headers,
1547
+ _host_index=_host_index
1548
+ )
1549
+
1550
+ _response_types_map: Dict[str, Optional[str]] = {
1551
+ '200': "Flag",
1552
+ '400': "Error",
1553
+ '404': "Error",
1554
+ }
1555
+
1556
+ response_data = await self.api_client.call_api(
1557
+ *_param,
1558
+ _request_timeout=_request_timeout
1559
+ )
1560
+ return response_data.response
1561
+
1562
+
1563
+ def _get_emergency_stop_serialize(
1564
+ self,
1565
+ cell,
1566
+ controller,
1567
+ _request_auth,
1568
+ _content_type,
1569
+ _headers,
1570
+ _host_index,
1571
+ ) -> RequestSerialized:
1572
+
1573
+ _host = None
1574
+
1575
+ _collection_formats: Dict[str, str] = {
1576
+ }
1577
+
1578
+ _path_params: Dict[str, str] = {}
1579
+ _query_params: List[Tuple[str, str]] = []
1580
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1581
+ _form_params: List[Tuple[str, str]] = []
1582
+ _files: Dict[str, Union[str, bytes]] = {}
1583
+ _body_params: Optional[bytes] = None
1584
+
1585
+ # process the path parameters
1586
+ if cell is not None:
1587
+ _path_params['cell'] = cell
1588
+ if controller is not None:
1589
+ _path_params['controller'] = controller
1590
+ # process the query parameters
1591
+ # process the header parameters
1592
+ # process the form parameters
1593
+ # process the body parameter
1594
+
1595
+
1596
+ # set the HTTP header `Accept`
1597
+ _header_params['Accept'] = self.api_client.select_header_accept(
1598
+ [
1599
+ 'application/json'
1600
+ ]
1601
+ )
1602
+
1603
+
1604
+ # authentication setting
1605
+ _auth_settings: List[str] = [
1606
+ 'BasicAuth',
1607
+ 'BearerAuth'
1608
+ ]
1609
+
1610
+ return self.api_client.param_serialize(
1611
+ method='GET',
1612
+ resource_path='/cells/{cell}/virtual-controllers/{controller}/emergency-stop',
1613
+ path_params=_path_params,
1614
+ query_params=_query_params,
1615
+ header_params=_header_params,
1616
+ body=_body_params,
1617
+ post_params=_form_params,
1618
+ files=_files,
1619
+ auth_settings=_auth_settings,
1620
+ collection_formats=_collection_formats,
1621
+ _host=_host,
1622
+ _request_auth=_request_auth
1623
+ )
1624
+
1625
+
1626
+
1627
+ @validate_call
1628
+ async def get_motion_group_state(
1629
+ self,
1630
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
1631
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
1632
+ motion_group: Annotated[StrictStr, Field(description="The motion-group identifier.")],
1633
+ _request_timeout: Union[
1634
+ None,
1635
+ Annotated[StrictFloat, Field(gt=0)],
1636
+ Tuple[
1637
+ Annotated[StrictFloat, Field(gt=0)],
1638
+ Annotated[StrictFloat, Field(gt=0)]
1639
+ ]
1640
+ ] = None,
1641
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1642
+ _content_type: Optional[StrictStr] = None,
1643
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1644
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1645
+ ) -> MotionGroupJoints:
1646
+ """Get Motion Group State
1647
+
1648
+ Get the current motion group state which provides values for the joints' position, velocity and acceleration.
1649
+
1650
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
1651
+ :type cell: str
1652
+ :param controller: Unique identifier to address a controller in the cell. (required)
1653
+ :type controller: str
1654
+ :param motion_group: The motion-group identifier. (required)
1655
+ :type motion_group: str
1656
+ :param _request_timeout: timeout setting for this request. If one
1657
+ number provided, it will be total request
1658
+ timeout. It can also be a pair (tuple) of
1659
+ (connection, read) timeouts.
1660
+ :type _request_timeout: int, tuple(int, int), optional
1661
+ :param _request_auth: set to override the auth_settings for an a single
1662
+ request; this effectively ignores the
1663
+ authentication in the spec for a single request.
1664
+ :type _request_auth: dict, optional
1665
+ :param _content_type: force content-type for the request.
1666
+ :type _content_type: str, Optional
1667
+ :param _headers: set to override the headers for a single
1668
+ request; this effectively ignores the headers
1669
+ in the spec for a single request.
1670
+ :type _headers: dict, optional
1671
+ :param _host_index: set to override the host_index for a single
1672
+ request; this effectively ignores the host_index
1673
+ in the spec for a single request.
1674
+ :type _host_index: int, optional
1675
+ :return: Returns the result object.
1676
+ """ # noqa: E501
1677
+
1678
+ _param = self._get_motion_group_state_serialize(
1679
+ cell=cell,
1680
+ controller=controller,
1681
+ motion_group=motion_group,
1682
+ _request_auth=_request_auth,
1683
+ _content_type=_content_type,
1684
+ _headers=_headers,
1685
+ _host_index=_host_index
1686
+ )
1687
+
1688
+ _response_types_map: Dict[str, Optional[str]] = {
1689
+ '200': "MotionGroupJoints",
1690
+ '400': "Error",
1691
+ '404': "Error",
1692
+ }
1693
+
1694
+ response_data = await self.api_client.call_api(
1695
+ *_param,
1696
+ _request_timeout=_request_timeout
1697
+ )
1698
+ await response_data.read()
1699
+ return self.api_client.response_deserialize(
1700
+ response_data=response_data,
1701
+ response_types_map=_response_types_map,
1702
+ ).data
1703
+
1704
+
1705
+ @validate_call
1706
+ async def get_motion_group_state_with_http_info(
1707
+ self,
1708
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
1709
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
1710
+ motion_group: Annotated[StrictStr, Field(description="The motion-group identifier.")],
1711
+ _request_timeout: Union[
1712
+ None,
1713
+ Annotated[StrictFloat, Field(gt=0)],
1714
+ Tuple[
1715
+ Annotated[StrictFloat, Field(gt=0)],
1716
+ Annotated[StrictFloat, Field(gt=0)]
1717
+ ]
1718
+ ] = None,
1719
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1720
+ _content_type: Optional[StrictStr] = None,
1721
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1722
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1723
+ ) -> ApiResponse[MotionGroupJoints]:
1724
+ """Get Motion Group State
1725
+
1726
+ Get the current motion group state which provides values for the joints' position, velocity and acceleration.
1727
+
1728
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
1729
+ :type cell: str
1730
+ :param controller: Unique identifier to address a controller in the cell. (required)
1731
+ :type controller: str
1732
+ :param motion_group: The motion-group identifier. (required)
1733
+ :type motion_group: str
1734
+ :param _request_timeout: timeout setting for this request. If one
1735
+ number provided, it will be total request
1736
+ timeout. It can also be a pair (tuple) of
1737
+ (connection, read) timeouts.
1738
+ :type _request_timeout: int, tuple(int, int), optional
1739
+ :param _request_auth: set to override the auth_settings for an a single
1740
+ request; this effectively ignores the
1741
+ authentication in the spec for a single request.
1742
+ :type _request_auth: dict, optional
1743
+ :param _content_type: force content-type for the request.
1744
+ :type _content_type: str, Optional
1745
+ :param _headers: set to override the headers for a single
1746
+ request; this effectively ignores the headers
1747
+ in the spec for a single request.
1748
+ :type _headers: dict, optional
1749
+ :param _host_index: set to override the host_index for a single
1750
+ request; this effectively ignores the host_index
1751
+ in the spec for a single request.
1752
+ :type _host_index: int, optional
1753
+ :return: Returns the result object.
1754
+ """ # noqa: E501
1755
+
1756
+ _param = self._get_motion_group_state_serialize(
1757
+ cell=cell,
1758
+ controller=controller,
1759
+ motion_group=motion_group,
1760
+ _request_auth=_request_auth,
1761
+ _content_type=_content_type,
1762
+ _headers=_headers,
1763
+ _host_index=_host_index
1764
+ )
1765
+
1766
+ _response_types_map: Dict[str, Optional[str]] = {
1767
+ '200': "MotionGroupJoints",
1768
+ '400': "Error",
1769
+ '404': "Error",
1770
+ }
1771
+
1772
+ response_data = await self.api_client.call_api(
1773
+ *_param,
1774
+ _request_timeout=_request_timeout
1775
+ )
1776
+ await response_data.read()
1777
+ return self.api_client.response_deserialize(
1778
+ response_data=response_data,
1779
+ response_types_map=_response_types_map,
1780
+ )
1781
+
1782
+
1783
+ @validate_call
1784
+ async def get_motion_group_state_without_preload_content(
1785
+ self,
1786
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
1787
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
1788
+ motion_group: Annotated[StrictStr, Field(description="The motion-group identifier.")],
1789
+ _request_timeout: Union[
1790
+ None,
1791
+ Annotated[StrictFloat, Field(gt=0)],
1792
+ Tuple[
1793
+ Annotated[StrictFloat, Field(gt=0)],
1794
+ Annotated[StrictFloat, Field(gt=0)]
1795
+ ]
1796
+ ] = None,
1797
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1798
+ _content_type: Optional[StrictStr] = None,
1799
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1800
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1801
+ ) -> RESTResponseType:
1802
+ """Get Motion Group State
1803
+
1804
+ Get the current motion group state which provides values for the joints' position, velocity and acceleration.
1805
+
1806
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
1807
+ :type cell: str
1808
+ :param controller: Unique identifier to address a controller in the cell. (required)
1809
+ :type controller: str
1810
+ :param motion_group: The motion-group identifier. (required)
1811
+ :type motion_group: str
1812
+ :param _request_timeout: timeout setting for this request. If one
1813
+ number provided, it will be total request
1814
+ timeout. It can also be a pair (tuple) of
1815
+ (connection, read) timeouts.
1816
+ :type _request_timeout: int, tuple(int, int), optional
1817
+ :param _request_auth: set to override the auth_settings for an a single
1818
+ request; this effectively ignores the
1819
+ authentication in the spec for a single request.
1820
+ :type _request_auth: dict, optional
1821
+ :param _content_type: force content-type for the request.
1822
+ :type _content_type: str, Optional
1823
+ :param _headers: set to override the headers for a single
1824
+ request; this effectively ignores the headers
1825
+ in the spec for a single request.
1826
+ :type _headers: dict, optional
1827
+ :param _host_index: set to override the host_index for a single
1828
+ request; this effectively ignores the host_index
1829
+ in the spec for a single request.
1830
+ :type _host_index: int, optional
1831
+ :return: Returns the result object.
1832
+ """ # noqa: E501
1833
+
1834
+ _param = self._get_motion_group_state_serialize(
1835
+ cell=cell,
1836
+ controller=controller,
1837
+ motion_group=motion_group,
1838
+ _request_auth=_request_auth,
1839
+ _content_type=_content_type,
1840
+ _headers=_headers,
1841
+ _host_index=_host_index
1842
+ )
1843
+
1844
+ _response_types_map: Dict[str, Optional[str]] = {
1845
+ '200': "MotionGroupJoints",
1846
+ '400': "Error",
1847
+ '404': "Error",
1848
+ }
1849
+
1850
+ response_data = await self.api_client.call_api(
1851
+ *_param,
1852
+ _request_timeout=_request_timeout
1853
+ )
1854
+ return response_data.response
1855
+
1856
+
1857
+ def _get_motion_group_state_serialize(
1858
+ self,
1859
+ cell,
1860
+ controller,
1861
+ motion_group,
1862
+ _request_auth,
1863
+ _content_type,
1864
+ _headers,
1865
+ _host_index,
1866
+ ) -> RequestSerialized:
1867
+
1868
+ _host = None
1869
+
1870
+ _collection_formats: Dict[str, str] = {
1871
+ }
1872
+
1873
+ _path_params: Dict[str, str] = {}
1874
+ _query_params: List[Tuple[str, str]] = []
1875
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1876
+ _form_params: List[Tuple[str, str]] = []
1877
+ _files: Dict[str, Union[str, bytes]] = {}
1878
+ _body_params: Optional[bytes] = None
1879
+
1880
+ # process the path parameters
1881
+ if cell is not None:
1882
+ _path_params['cell'] = cell
1883
+ if controller is not None:
1884
+ _path_params['controller'] = controller
1885
+ if motion_group is not None:
1886
+ _path_params['motion-group'] = motion_group
1887
+ # process the query parameters
1888
+ # process the header parameters
1889
+ # process the form parameters
1890
+ # process the body parameter
1891
+
1892
+
1893
+ # set the HTTP header `Accept`
1894
+ _header_params['Accept'] = self.api_client.select_header_accept(
1895
+ [
1896
+ 'application/json'
1897
+ ]
1898
+ )
1899
+
1900
+
1901
+ # authentication setting
1902
+ _auth_settings: List[str] = [
1903
+ 'BasicAuth',
1904
+ 'BearerAuth'
1905
+ ]
1906
+
1907
+ return self.api_client.param_serialize(
1908
+ method='GET',
1909
+ resource_path='/cells/{cell}/virtual-controllers/{controller}/motion-groups/{motion-group}/state',
1910
+ path_params=_path_params,
1911
+ query_params=_query_params,
1912
+ header_params=_header_params,
1913
+ body=_body_params,
1914
+ post_params=_form_params,
1915
+ files=_files,
1916
+ auth_settings=_auth_settings,
1917
+ collection_formats=_collection_formats,
1918
+ _host=_host,
1919
+ _request_auth=_request_auth
1920
+ )
1921
+
1922
+
1923
+
1924
+ @validate_call
1925
+ async def get_motion_groups(
1926
+ self,
1927
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
1928
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
1929
+ _request_timeout: Union[
1930
+ None,
1931
+ Annotated[StrictFloat, Field(gt=0)],
1932
+ Tuple[
1933
+ Annotated[StrictFloat, Field(gt=0)],
1934
+ Annotated[StrictFloat, Field(gt=0)]
1935
+ ]
1936
+ ] = None,
1937
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1938
+ _content_type: Optional[StrictStr] = None,
1939
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1940
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1941
+ ) -> List[MotionGroupInfo]:
1942
+ """Motion Group Description
1943
+
1944
+ Gets information on the motion group.
1945
+
1946
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
1947
+ :type cell: str
1948
+ :param controller: Unique identifier to address a controller in the cell. (required)
1949
+ :type controller: str
1950
+ :param _request_timeout: timeout setting for this request. If one
1951
+ number provided, it will be total request
1952
+ timeout. It can also be a pair (tuple) of
1953
+ (connection, read) timeouts.
1954
+ :type _request_timeout: int, tuple(int, int), optional
1955
+ :param _request_auth: set to override the auth_settings for an a single
1956
+ request; this effectively ignores the
1957
+ authentication in the spec for a single request.
1958
+ :type _request_auth: dict, optional
1959
+ :param _content_type: force content-type for the request.
1960
+ :type _content_type: str, Optional
1961
+ :param _headers: set to override the headers for a single
1962
+ request; this effectively ignores the headers
1963
+ in the spec for a single request.
1964
+ :type _headers: dict, optional
1965
+ :param _host_index: set to override the host_index for a single
1966
+ request; this effectively ignores the host_index
1967
+ in the spec for a single request.
1968
+ :type _host_index: int, optional
1969
+ :return: Returns the result object.
1970
+ """ # noqa: E501
1971
+
1972
+ _param = self._get_motion_groups_serialize(
1973
+ cell=cell,
1974
+ controller=controller,
1975
+ _request_auth=_request_auth,
1976
+ _content_type=_content_type,
1977
+ _headers=_headers,
1978
+ _host_index=_host_index
1979
+ )
1980
+
1981
+ _response_types_map: Dict[str, Optional[str]] = {
1982
+ '200': "List[MotionGroupInfo]",
1983
+ '400': "Error",
1984
+ '404': "Error",
1985
+ }
1986
+
1987
+ response_data = await self.api_client.call_api(
1988
+ *_param,
1989
+ _request_timeout=_request_timeout
1990
+ )
1991
+ await response_data.read()
1992
+ return self.api_client.response_deserialize(
1993
+ response_data=response_data,
1994
+ response_types_map=_response_types_map,
1995
+ ).data
1996
+
1997
+
1998
+ @validate_call
1999
+ async def get_motion_groups_with_http_info(
2000
+ self,
2001
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
2002
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
2003
+ _request_timeout: Union[
2004
+ None,
2005
+ Annotated[StrictFloat, Field(gt=0)],
2006
+ Tuple[
2007
+ Annotated[StrictFloat, Field(gt=0)],
2008
+ Annotated[StrictFloat, Field(gt=0)]
2009
+ ]
2010
+ ] = None,
2011
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2012
+ _content_type: Optional[StrictStr] = None,
2013
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2014
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2015
+ ) -> ApiResponse[List[MotionGroupInfo]]:
2016
+ """Motion Group Description
2017
+
2018
+ Gets information on the motion group.
2019
+
2020
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2021
+ :type cell: str
2022
+ :param controller: Unique identifier to address a controller in the cell. (required)
2023
+ :type controller: str
2024
+ :param _request_timeout: timeout setting for this request. If one
2025
+ number provided, it will be total request
2026
+ timeout. It can also be a pair (tuple) of
2027
+ (connection, read) timeouts.
2028
+ :type _request_timeout: int, tuple(int, int), optional
2029
+ :param _request_auth: set to override the auth_settings for an a single
2030
+ request; this effectively ignores the
2031
+ authentication in the spec for a single request.
2032
+ :type _request_auth: dict, optional
2033
+ :param _content_type: force content-type for the request.
2034
+ :type _content_type: str, Optional
2035
+ :param _headers: set to override the headers for a single
2036
+ request; this effectively ignores the headers
2037
+ in the spec for a single request.
2038
+ :type _headers: dict, optional
2039
+ :param _host_index: set to override the host_index for a single
2040
+ request; this effectively ignores the host_index
2041
+ in the spec for a single request.
2042
+ :type _host_index: int, optional
2043
+ :return: Returns the result object.
2044
+ """ # noqa: E501
2045
+
2046
+ _param = self._get_motion_groups_serialize(
2047
+ cell=cell,
2048
+ controller=controller,
2049
+ _request_auth=_request_auth,
2050
+ _content_type=_content_type,
2051
+ _headers=_headers,
2052
+ _host_index=_host_index
2053
+ )
2054
+
2055
+ _response_types_map: Dict[str, Optional[str]] = {
2056
+ '200': "List[MotionGroupInfo]",
2057
+ '400': "Error",
2058
+ '404': "Error",
2059
+ }
2060
+
2061
+ response_data = await self.api_client.call_api(
2062
+ *_param,
2063
+ _request_timeout=_request_timeout
2064
+ )
2065
+ await response_data.read()
2066
+ return self.api_client.response_deserialize(
2067
+ response_data=response_data,
2068
+ response_types_map=_response_types_map,
2069
+ )
2070
+
2071
+
2072
+ @validate_call
2073
+ async def get_motion_groups_without_preload_content(
2074
+ self,
2075
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
2076
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
2077
+ _request_timeout: Union[
2078
+ None,
2079
+ Annotated[StrictFloat, Field(gt=0)],
2080
+ Tuple[
2081
+ Annotated[StrictFloat, Field(gt=0)],
2082
+ Annotated[StrictFloat, Field(gt=0)]
2083
+ ]
2084
+ ] = None,
2085
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2086
+ _content_type: Optional[StrictStr] = None,
2087
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2088
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2089
+ ) -> RESTResponseType:
2090
+ """Motion Group Description
2091
+
2092
+ Gets information on the motion group.
2093
+
2094
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2095
+ :type cell: str
2096
+ :param controller: Unique identifier to address a controller in the cell. (required)
2097
+ :type controller: str
2098
+ :param _request_timeout: timeout setting for this request. If one
2099
+ number provided, it will be total request
2100
+ timeout. It can also be a pair (tuple) of
2101
+ (connection, read) timeouts.
2102
+ :type _request_timeout: int, tuple(int, int), optional
2103
+ :param _request_auth: set to override the auth_settings for an a single
2104
+ request; this effectively ignores the
2105
+ authentication in the spec for a single request.
2106
+ :type _request_auth: dict, optional
2107
+ :param _content_type: force content-type for the request.
2108
+ :type _content_type: str, Optional
2109
+ :param _headers: set to override the headers for a single
2110
+ request; this effectively ignores the headers
2111
+ in the spec for a single request.
2112
+ :type _headers: dict, optional
2113
+ :param _host_index: set to override the host_index for a single
2114
+ request; this effectively ignores the host_index
2115
+ in the spec for a single request.
2116
+ :type _host_index: int, optional
2117
+ :return: Returns the result object.
2118
+ """ # noqa: E501
2119
+
2120
+ _param = self._get_motion_groups_serialize(
2121
+ cell=cell,
2122
+ controller=controller,
2123
+ _request_auth=_request_auth,
2124
+ _content_type=_content_type,
2125
+ _headers=_headers,
2126
+ _host_index=_host_index
2127
+ )
2128
+
2129
+ _response_types_map: Dict[str, Optional[str]] = {
2130
+ '200': "List[MotionGroupInfo]",
2131
+ '400': "Error",
2132
+ '404': "Error",
2133
+ }
2134
+
2135
+ response_data = await self.api_client.call_api(
2136
+ *_param,
2137
+ _request_timeout=_request_timeout
2138
+ )
2139
+ return response_data.response
2140
+
2141
+
2142
+ def _get_motion_groups_serialize(
2143
+ self,
2144
+ cell,
2145
+ controller,
2146
+ _request_auth,
2147
+ _content_type,
2148
+ _headers,
2149
+ _host_index,
2150
+ ) -> RequestSerialized:
2151
+
2152
+ _host = None
2153
+
2154
+ _collection_formats: Dict[str, str] = {
2155
+ }
2156
+
2157
+ _path_params: Dict[str, str] = {}
2158
+ _query_params: List[Tuple[str, str]] = []
2159
+ _header_params: Dict[str, Optional[str]] = _headers or {}
2160
+ _form_params: List[Tuple[str, str]] = []
2161
+ _files: Dict[str, Union[str, bytes]] = {}
2162
+ _body_params: Optional[bytes] = None
2163
+
2164
+ # process the path parameters
2165
+ if cell is not None:
2166
+ _path_params['cell'] = cell
2167
+ if controller is not None:
2168
+ _path_params['controller'] = controller
2169
+ # process the query parameters
2170
+ # process the header parameters
2171
+ # process the form parameters
2172
+ # process the body parameter
2173
+
2174
+
2175
+ # set the HTTP header `Accept`
2176
+ _header_params['Accept'] = self.api_client.select_header_accept(
2177
+ [
2178
+ 'application/json'
2179
+ ]
2180
+ )
2181
+
2182
+
2183
+ # authentication setting
2184
+ _auth_settings: List[str] = [
2185
+ 'BasicAuth',
2186
+ 'BearerAuth'
2187
+ ]
2188
+
2189
+ return self.api_client.param_serialize(
2190
+ method='GET',
2191
+ resource_path='/cells/{cell}/virtual-controllers/{controller}/motion-groups',
2192
+ path_params=_path_params,
2193
+ query_params=_query_params,
2194
+ header_params=_header_params,
2195
+ body=_body_params,
2196
+ post_params=_form_params,
2197
+ files=_files,
2198
+ auth_settings=_auth_settings,
2199
+ collection_formats=_collection_formats,
2200
+ _host=_host,
2201
+ _request_auth=_request_auth
2202
+ )
2203
+
2204
+
2205
+
2206
+ @validate_call
2207
+ async def get_operation_mode(
2208
+ self,
2209
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
2210
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
2211
+ _request_timeout: Union[
2212
+ None,
2213
+ Annotated[StrictFloat, Field(gt=0)],
2214
+ Tuple[
2215
+ Annotated[StrictFloat, Field(gt=0)],
2216
+ Annotated[StrictFloat, Field(gt=0)]
2217
+ ]
2218
+ ] = None,
2219
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2220
+ _content_type: Optional[StrictStr] = None,
2221
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2222
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2223
+ ) -> OpMode:
2224
+ """Get Operation Mode
2225
+
2226
+ Requests the operation mode of the virtual robot controller. To get the operation mode regardless of the controller type, use [getCurrentMotionGroupState](getCurrentMotionGroupState). > **NOTE** > > The operation mode can only be changed via API when using virtual robot controllers.
2227
+
2228
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2229
+ :type cell: str
2230
+ :param controller: Unique identifier to address a controller in the cell. (required)
2231
+ :type controller: str
2232
+ :param _request_timeout: timeout setting for this request. If one
2233
+ number provided, it will be total request
2234
+ timeout. It can also be a pair (tuple) of
2235
+ (connection, read) timeouts.
2236
+ :type _request_timeout: int, tuple(int, int), optional
2237
+ :param _request_auth: set to override the auth_settings for an a single
2238
+ request; this effectively ignores the
2239
+ authentication in the spec for a single request.
2240
+ :type _request_auth: dict, optional
2241
+ :param _content_type: force content-type for the request.
2242
+ :type _content_type: str, Optional
2243
+ :param _headers: set to override the headers for a single
2244
+ request; this effectively ignores the headers
2245
+ in the spec for a single request.
2246
+ :type _headers: dict, optional
2247
+ :param _host_index: set to override the host_index for a single
2248
+ request; this effectively ignores the host_index
2249
+ in the spec for a single request.
2250
+ :type _host_index: int, optional
2251
+ :return: Returns the result object.
2252
+ """ # noqa: E501
2253
+
2254
+ _param = self._get_operation_mode_serialize(
2255
+ cell=cell,
2256
+ controller=controller,
2257
+ _request_auth=_request_auth,
2258
+ _content_type=_content_type,
2259
+ _headers=_headers,
2260
+ _host_index=_host_index
2261
+ )
2262
+
2263
+ _response_types_map: Dict[str, Optional[str]] = {
2264
+ '200': "OpMode",
2265
+ '400': "Error",
2266
+ '404': "Error",
2267
+ }
2268
+
2269
+ response_data = await self.api_client.call_api(
2270
+ *_param,
2271
+ _request_timeout=_request_timeout
2272
+ )
2273
+ await response_data.read()
2274
+ return self.api_client.response_deserialize(
2275
+ response_data=response_data,
2276
+ response_types_map=_response_types_map,
2277
+ ).data
2278
+
2279
+
2280
+ @validate_call
2281
+ async def get_operation_mode_with_http_info(
2282
+ self,
2283
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
2284
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
2285
+ _request_timeout: Union[
2286
+ None,
2287
+ Annotated[StrictFloat, Field(gt=0)],
2288
+ Tuple[
2289
+ Annotated[StrictFloat, Field(gt=0)],
2290
+ Annotated[StrictFloat, Field(gt=0)]
2291
+ ]
2292
+ ] = None,
2293
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2294
+ _content_type: Optional[StrictStr] = None,
2295
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2296
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2297
+ ) -> ApiResponse[OpMode]:
2298
+ """Get Operation Mode
2299
+
2300
+ Requests the operation mode of the virtual robot controller. To get the operation mode regardless of the controller type, use [getCurrentMotionGroupState](getCurrentMotionGroupState). > **NOTE** > > The operation mode can only be changed via API when using virtual robot controllers.
2301
+
2302
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2303
+ :type cell: str
2304
+ :param controller: Unique identifier to address a controller in the cell. (required)
2305
+ :type controller: str
2306
+ :param _request_timeout: timeout setting for this request. If one
2307
+ number provided, it will be total request
2308
+ timeout. It can also be a pair (tuple) of
2309
+ (connection, read) timeouts.
2310
+ :type _request_timeout: int, tuple(int, int), optional
2311
+ :param _request_auth: set to override the auth_settings for an a single
2312
+ request; this effectively ignores the
2313
+ authentication in the spec for a single request.
2314
+ :type _request_auth: dict, optional
2315
+ :param _content_type: force content-type for the request.
2316
+ :type _content_type: str, Optional
2317
+ :param _headers: set to override the headers for a single
2318
+ request; this effectively ignores the headers
2319
+ in the spec for a single request.
2320
+ :type _headers: dict, optional
2321
+ :param _host_index: set to override the host_index for a single
2322
+ request; this effectively ignores the host_index
2323
+ in the spec for a single request.
2324
+ :type _host_index: int, optional
2325
+ :return: Returns the result object.
2326
+ """ # noqa: E501
2327
+
2328
+ _param = self._get_operation_mode_serialize(
2329
+ cell=cell,
2330
+ controller=controller,
2331
+ _request_auth=_request_auth,
2332
+ _content_type=_content_type,
2333
+ _headers=_headers,
2334
+ _host_index=_host_index
2335
+ )
2336
+
2337
+ _response_types_map: Dict[str, Optional[str]] = {
2338
+ '200': "OpMode",
2339
+ '400': "Error",
2340
+ '404': "Error",
2341
+ }
2342
+
2343
+ response_data = await self.api_client.call_api(
2344
+ *_param,
2345
+ _request_timeout=_request_timeout
2346
+ )
2347
+ await response_data.read()
2348
+ return self.api_client.response_deserialize(
2349
+ response_data=response_data,
2350
+ response_types_map=_response_types_map,
2351
+ )
2352
+
2353
+
2354
+ @validate_call
2355
+ async def get_operation_mode_without_preload_content(
2356
+ self,
2357
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
2358
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
2359
+ _request_timeout: Union[
2360
+ None,
2361
+ Annotated[StrictFloat, Field(gt=0)],
2362
+ Tuple[
2363
+ Annotated[StrictFloat, Field(gt=0)],
2364
+ Annotated[StrictFloat, Field(gt=0)]
2365
+ ]
2366
+ ] = None,
2367
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2368
+ _content_type: Optional[StrictStr] = None,
2369
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2370
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2371
+ ) -> RESTResponseType:
2372
+ """Get Operation Mode
2373
+
2374
+ Requests the operation mode of the virtual robot controller. To get the operation mode regardless of the controller type, use [getCurrentMotionGroupState](getCurrentMotionGroupState). > **NOTE** > > The operation mode can only be changed via API when using virtual robot controllers.
2375
+
2376
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2377
+ :type cell: str
2378
+ :param controller: Unique identifier to address a controller in the cell. (required)
2379
+ :type controller: str
2380
+ :param _request_timeout: timeout setting for this request. If one
2381
+ number provided, it will be total request
2382
+ timeout. It can also be a pair (tuple) of
2383
+ (connection, read) timeouts.
2384
+ :type _request_timeout: int, tuple(int, int), optional
2385
+ :param _request_auth: set to override the auth_settings for an a single
2386
+ request; this effectively ignores the
2387
+ authentication in the spec for a single request.
2388
+ :type _request_auth: dict, optional
2389
+ :param _content_type: force content-type for the request.
2390
+ :type _content_type: str, Optional
2391
+ :param _headers: set to override the headers for a single
2392
+ request; this effectively ignores the headers
2393
+ in the spec for a single request.
2394
+ :type _headers: dict, optional
2395
+ :param _host_index: set to override the host_index for a single
2396
+ request; this effectively ignores the host_index
2397
+ in the spec for a single request.
2398
+ :type _host_index: int, optional
2399
+ :return: Returns the result object.
2400
+ """ # noqa: E501
2401
+
2402
+ _param = self._get_operation_mode_serialize(
2403
+ cell=cell,
2404
+ controller=controller,
2405
+ _request_auth=_request_auth,
2406
+ _content_type=_content_type,
2407
+ _headers=_headers,
2408
+ _host_index=_host_index
2409
+ )
2410
+
2411
+ _response_types_map: Dict[str, Optional[str]] = {
2412
+ '200': "OpMode",
2413
+ '400': "Error",
2414
+ '404': "Error",
2415
+ }
2416
+
2417
+ response_data = await self.api_client.call_api(
2418
+ *_param,
2419
+ _request_timeout=_request_timeout
2420
+ )
2421
+ return response_data.response
2422
+
2423
+
2424
+ def _get_operation_mode_serialize(
2425
+ self,
2426
+ cell,
2427
+ controller,
2428
+ _request_auth,
2429
+ _content_type,
2430
+ _headers,
2431
+ _host_index,
2432
+ ) -> RequestSerialized:
2433
+
2434
+ _host = None
2435
+
2436
+ _collection_formats: Dict[str, str] = {
2437
+ }
2438
+
2439
+ _path_params: Dict[str, str] = {}
2440
+ _query_params: List[Tuple[str, str]] = []
2441
+ _header_params: Dict[str, Optional[str]] = _headers or {}
2442
+ _form_params: List[Tuple[str, str]] = []
2443
+ _files: Dict[str, Union[str, bytes]] = {}
2444
+ _body_params: Optional[bytes] = None
2445
+
2446
+ # process the path parameters
2447
+ if cell is not None:
2448
+ _path_params['cell'] = cell
2449
+ if controller is not None:
2450
+ _path_params['controller'] = controller
2451
+ # process the query parameters
2452
+ # process the header parameters
2453
+ # process the form parameters
2454
+ # process the body parameter
2455
+
2456
+
2457
+ # set the HTTP header `Accept`
2458
+ _header_params['Accept'] = self.api_client.select_header_accept(
2459
+ [
2460
+ 'application/json'
2461
+ ]
2462
+ )
2463
+
2464
+
2465
+ # authentication setting
2466
+ _auth_settings: List[str] = [
2467
+ 'BasicAuth',
2468
+ 'BearerAuth'
2469
+ ]
2470
+
2471
+ return self.api_client.param_serialize(
2472
+ method='GET',
2473
+ resource_path='/cells/{cell}/virtual-controllers/{controller}/operationmode',
2474
+ path_params=_path_params,
2475
+ query_params=_query_params,
2476
+ header_params=_header_params,
2477
+ body=_body_params,
2478
+ post_params=_form_params,
2479
+ files=_files,
2480
+ auth_settings=_auth_settings,
2481
+ collection_formats=_collection_formats,
2482
+ _host=_host,
2483
+ _request_auth=_request_auth
2484
+ )
2485
+
2486
+
2487
+
2488
+ @validate_call
2489
+ async def get_virtual_controller_mounting(
2490
+ self,
2491
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
2492
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
2493
+ motion_group: Annotated[StrictStr, Field(description="The motion-group identifier.")],
2494
+ _request_timeout: Union[
2495
+ None,
2496
+ Annotated[StrictFloat, Field(gt=0)],
2497
+ Tuple[
2498
+ Annotated[StrictFloat, Field(gt=0)],
2499
+ Annotated[StrictFloat, Field(gt=0)]
2500
+ ]
2501
+ ] = None,
2502
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2503
+ _content_type: Optional[StrictStr] = None,
2504
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2505
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2506
+ ) -> CoordinateSystem:
2507
+ """Get Mounting
2508
+
2509
+ Gets motion group mounting. The motion group is based on the origin of the returned coordinate system.
2510
+
2511
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2512
+ :type cell: str
2513
+ :param controller: Unique identifier to address a controller in the cell. (required)
2514
+ :type controller: str
2515
+ :param motion_group: The motion-group identifier. (required)
2516
+ :type motion_group: str
2517
+ :param _request_timeout: timeout setting for this request. If one
2518
+ number provided, it will be total request
2519
+ timeout. It can also be a pair (tuple) of
2520
+ (connection, read) timeouts.
2521
+ :type _request_timeout: int, tuple(int, int), optional
2522
+ :param _request_auth: set to override the auth_settings for an a single
2523
+ request; this effectively ignores the
2524
+ authentication in the spec for a single request.
2525
+ :type _request_auth: dict, optional
2526
+ :param _content_type: force content-type for the request.
2527
+ :type _content_type: str, Optional
2528
+ :param _headers: set to override the headers for a single
2529
+ request; this effectively ignores the headers
2530
+ in the spec for a single request.
2531
+ :type _headers: dict, optional
2532
+ :param _host_index: set to override the host_index for a single
2533
+ request; this effectively ignores the host_index
2534
+ in the spec for a single request.
2535
+ :type _host_index: int, optional
2536
+ :return: Returns the result object.
2537
+ """ # noqa: E501
2538
+
2539
+ _param = self._get_virtual_controller_mounting_serialize(
2540
+ cell=cell,
2541
+ controller=controller,
2542
+ motion_group=motion_group,
2543
+ _request_auth=_request_auth,
2544
+ _content_type=_content_type,
2545
+ _headers=_headers,
2546
+ _host_index=_host_index
2547
+ )
2548
+
2549
+ _response_types_map: Dict[str, Optional[str]] = {
2550
+ '200': "CoordinateSystem",
2551
+ '400': "Error",
2552
+ '404': "Error",
2553
+ }
2554
+
2555
+ response_data = await self.api_client.call_api(
2556
+ *_param,
2557
+ _request_timeout=_request_timeout
2558
+ )
2559
+ await response_data.read()
2560
+ return self.api_client.response_deserialize(
2561
+ response_data=response_data,
2562
+ response_types_map=_response_types_map,
2563
+ ).data
2564
+
2565
+
2566
+ @validate_call
2567
+ async def get_virtual_controller_mounting_with_http_info(
2568
+ self,
2569
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
2570
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
2571
+ motion_group: Annotated[StrictStr, Field(description="The motion-group identifier.")],
2572
+ _request_timeout: Union[
2573
+ None,
2574
+ Annotated[StrictFloat, Field(gt=0)],
2575
+ Tuple[
2576
+ Annotated[StrictFloat, Field(gt=0)],
2577
+ Annotated[StrictFloat, Field(gt=0)]
2578
+ ]
2579
+ ] = None,
2580
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2581
+ _content_type: Optional[StrictStr] = None,
2582
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2583
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2584
+ ) -> ApiResponse[CoordinateSystem]:
2585
+ """Get Mounting
2586
+
2587
+ Gets motion group mounting. The motion group is based on the origin of the returned coordinate system.
2588
+
2589
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2590
+ :type cell: str
2591
+ :param controller: Unique identifier to address a controller in the cell. (required)
2592
+ :type controller: str
2593
+ :param motion_group: The motion-group identifier. (required)
2594
+ :type motion_group: str
2595
+ :param _request_timeout: timeout setting for this request. If one
2596
+ number provided, it will be total request
2597
+ timeout. It can also be a pair (tuple) of
2598
+ (connection, read) timeouts.
2599
+ :type _request_timeout: int, tuple(int, int), optional
2600
+ :param _request_auth: set to override the auth_settings for an a single
2601
+ request; this effectively ignores the
2602
+ authentication in the spec for a single request.
2603
+ :type _request_auth: dict, optional
2604
+ :param _content_type: force content-type for the request.
2605
+ :type _content_type: str, Optional
2606
+ :param _headers: set to override the headers for a single
2607
+ request; this effectively ignores the headers
2608
+ in the spec for a single request.
2609
+ :type _headers: dict, optional
2610
+ :param _host_index: set to override the host_index for a single
2611
+ request; this effectively ignores the host_index
2612
+ in the spec for a single request.
2613
+ :type _host_index: int, optional
2614
+ :return: Returns the result object.
2615
+ """ # noqa: E501
2616
+
2617
+ _param = self._get_virtual_controller_mounting_serialize(
2618
+ cell=cell,
2619
+ controller=controller,
2620
+ motion_group=motion_group,
2621
+ _request_auth=_request_auth,
2622
+ _content_type=_content_type,
2623
+ _headers=_headers,
2624
+ _host_index=_host_index
2625
+ )
2626
+
2627
+ _response_types_map: Dict[str, Optional[str]] = {
2628
+ '200': "CoordinateSystem",
2629
+ '400': "Error",
2630
+ '404': "Error",
2631
+ }
2632
+
2633
+ response_data = await self.api_client.call_api(
2634
+ *_param,
2635
+ _request_timeout=_request_timeout
2636
+ )
2637
+ await response_data.read()
2638
+ return self.api_client.response_deserialize(
2639
+ response_data=response_data,
2640
+ response_types_map=_response_types_map,
2641
+ )
2642
+
2643
+
2644
+ @validate_call
2645
+ async def get_virtual_controller_mounting_without_preload_content(
2646
+ self,
2647
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
2648
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
2649
+ motion_group: Annotated[StrictStr, Field(description="The motion-group identifier.")],
2650
+ _request_timeout: Union[
2651
+ None,
2652
+ Annotated[StrictFloat, Field(gt=0)],
2653
+ Tuple[
2654
+ Annotated[StrictFloat, Field(gt=0)],
2655
+ Annotated[StrictFloat, Field(gt=0)]
2656
+ ]
2657
+ ] = None,
2658
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2659
+ _content_type: Optional[StrictStr] = None,
2660
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2661
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2662
+ ) -> RESTResponseType:
2663
+ """Get Mounting
2664
+
2665
+ Gets motion group mounting. The motion group is based on the origin of the returned coordinate system.
2666
+
2667
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2668
+ :type cell: str
2669
+ :param controller: Unique identifier to address a controller in the cell. (required)
2670
+ :type controller: str
2671
+ :param motion_group: The motion-group identifier. (required)
2672
+ :type motion_group: str
2673
+ :param _request_timeout: timeout setting for this request. If one
2674
+ number provided, it will be total request
2675
+ timeout. It can also be a pair (tuple) of
2676
+ (connection, read) timeouts.
2677
+ :type _request_timeout: int, tuple(int, int), optional
2678
+ :param _request_auth: set to override the auth_settings for an a single
2679
+ request; this effectively ignores the
2680
+ authentication in the spec for a single request.
2681
+ :type _request_auth: dict, optional
2682
+ :param _content_type: force content-type for the request.
2683
+ :type _content_type: str, Optional
2684
+ :param _headers: set to override the headers for a single
2685
+ request; this effectively ignores the headers
2686
+ in the spec for a single request.
2687
+ :type _headers: dict, optional
2688
+ :param _host_index: set to override the host_index for a single
2689
+ request; this effectively ignores the host_index
2690
+ in the spec for a single request.
2691
+ :type _host_index: int, optional
2692
+ :return: Returns the result object.
2693
+ """ # noqa: E501
2694
+
2695
+ _param = self._get_virtual_controller_mounting_serialize(
2696
+ cell=cell,
2697
+ controller=controller,
2698
+ motion_group=motion_group,
2699
+ _request_auth=_request_auth,
2700
+ _content_type=_content_type,
2701
+ _headers=_headers,
2702
+ _host_index=_host_index
2703
+ )
2704
+
2705
+ _response_types_map: Dict[str, Optional[str]] = {
2706
+ '200': "CoordinateSystem",
2707
+ '400': "Error",
2708
+ '404': "Error",
2709
+ }
2710
+
2711
+ response_data = await self.api_client.call_api(
2712
+ *_param,
2713
+ _request_timeout=_request_timeout
2714
+ )
2715
+ return response_data.response
2716
+
2717
+
2718
+ def _get_virtual_controller_mounting_serialize(
2719
+ self,
2720
+ cell,
2721
+ controller,
2722
+ motion_group,
2723
+ _request_auth,
2724
+ _content_type,
2725
+ _headers,
2726
+ _host_index,
2727
+ ) -> RequestSerialized:
2728
+
2729
+ _host = None
2730
+
2731
+ _collection_formats: Dict[str, str] = {
2732
+ }
2733
+
2734
+ _path_params: Dict[str, str] = {}
2735
+ _query_params: List[Tuple[str, str]] = []
2736
+ _header_params: Dict[str, Optional[str]] = _headers or {}
2737
+ _form_params: List[Tuple[str, str]] = []
2738
+ _files: Dict[str, Union[str, bytes]] = {}
2739
+ _body_params: Optional[bytes] = None
2740
+
2741
+ # process the path parameters
2742
+ if cell is not None:
2743
+ _path_params['cell'] = cell
2744
+ if controller is not None:
2745
+ _path_params['controller'] = controller
2746
+ if motion_group is not None:
2747
+ _path_params['motion-group'] = motion_group
2748
+ # process the query parameters
2749
+ # process the header parameters
2750
+ # process the form parameters
2751
+ # process the body parameter
2752
+
2753
+
2754
+ # set the HTTP header `Accept`
2755
+ _header_params['Accept'] = self.api_client.select_header_accept(
2756
+ [
2757
+ 'application/json'
2758
+ ]
2759
+ )
2760
+
2761
+
2762
+ # authentication setting
2763
+ _auth_settings: List[str] = [
2764
+ 'BasicAuth',
2765
+ 'BearerAuth'
2766
+ ]
2767
+
2768
+ return self.api_client.param_serialize(
2769
+ method='GET',
2770
+ resource_path='/cells/{cell}/virtual-controllers/{controller}/motion-groups/{motion-group}/mounting',
2771
+ path_params=_path_params,
2772
+ query_params=_query_params,
2773
+ header_params=_header_params,
2774
+ body=_body_params,
2775
+ post_params=_form_params,
2776
+ files=_files,
2777
+ auth_settings=_auth_settings,
2778
+ collection_formats=_collection_formats,
2779
+ _host=_host,
2780
+ _request_auth=_request_auth
2781
+ )
2782
+
2783
+
2784
+
2785
+ @validate_call
2786
+ async def list_virtual_controller_coordinate_systems(
2787
+ self,
2788
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
2789
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
2790
+ _request_timeout: Union[
2791
+ None,
2792
+ Annotated[StrictFloat, Field(gt=0)],
2793
+ Tuple[
2794
+ Annotated[StrictFloat, Field(gt=0)],
2795
+ Annotated[StrictFloat, Field(gt=0)]
2796
+ ]
2797
+ ] = None,
2798
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2799
+ _content_type: Optional[StrictStr] = None,
2800
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2801
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2802
+ ) -> List[CoordinateSystem]:
2803
+ """List Coordinate Systems
2804
+
2805
+ Lists all coordinate systems on the robot controller.
2806
+
2807
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2808
+ :type cell: str
2809
+ :param controller: Unique identifier to address a controller in the cell. (required)
2810
+ :type controller: str
2811
+ :param _request_timeout: timeout setting for this request. If one
2812
+ number provided, it will be total request
2813
+ timeout. It can also be a pair (tuple) of
2814
+ (connection, read) timeouts.
2815
+ :type _request_timeout: int, tuple(int, int), optional
2816
+ :param _request_auth: set to override the auth_settings for an a single
2817
+ request; this effectively ignores the
2818
+ authentication in the spec for a single request.
2819
+ :type _request_auth: dict, optional
2820
+ :param _content_type: force content-type for the request.
2821
+ :type _content_type: str, Optional
2822
+ :param _headers: set to override the headers for a single
2823
+ request; this effectively ignores the headers
2824
+ in the spec for a single request.
2825
+ :type _headers: dict, optional
2826
+ :param _host_index: set to override the host_index for a single
2827
+ request; this effectively ignores the host_index
2828
+ in the spec for a single request.
2829
+ :type _host_index: int, optional
2830
+ :return: Returns the result object.
2831
+ """ # noqa: E501
2832
+
2833
+ _param = self._list_virtual_controller_coordinate_systems_serialize(
2834
+ cell=cell,
2835
+ controller=controller,
2836
+ _request_auth=_request_auth,
2837
+ _content_type=_content_type,
2838
+ _headers=_headers,
2839
+ _host_index=_host_index
2840
+ )
2841
+
2842
+ _response_types_map: Dict[str, Optional[str]] = {
2843
+ '200': "List[CoordinateSystem]",
2844
+ '400': "Error",
2845
+ '404': "Error",
2846
+ }
2847
+
2848
+ response_data = await self.api_client.call_api(
2849
+ *_param,
2850
+ _request_timeout=_request_timeout
2851
+ )
2852
+ await response_data.read()
2853
+ return self.api_client.response_deserialize(
2854
+ response_data=response_data,
2855
+ response_types_map=_response_types_map,
2856
+ ).data
2857
+
2858
+
2859
+ @validate_call
2860
+ async def list_virtual_controller_coordinate_systems_with_http_info(
2861
+ self,
2862
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
2863
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
2864
+ _request_timeout: Union[
2865
+ None,
2866
+ Annotated[StrictFloat, Field(gt=0)],
2867
+ Tuple[
2868
+ Annotated[StrictFloat, Field(gt=0)],
2869
+ Annotated[StrictFloat, Field(gt=0)]
2870
+ ]
2871
+ ] = None,
2872
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2873
+ _content_type: Optional[StrictStr] = None,
2874
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2875
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2876
+ ) -> ApiResponse[List[CoordinateSystem]]:
2877
+ """List Coordinate Systems
2878
+
2879
+ Lists all coordinate systems on the robot controller.
2880
+
2881
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2882
+ :type cell: str
2883
+ :param controller: Unique identifier to address a controller in the cell. (required)
2884
+ :type controller: str
2885
+ :param _request_timeout: timeout setting for this request. If one
2886
+ number provided, it will be total request
2887
+ timeout. It can also be a pair (tuple) of
2888
+ (connection, read) timeouts.
2889
+ :type _request_timeout: int, tuple(int, int), optional
2890
+ :param _request_auth: set to override the auth_settings for an a single
2891
+ request; this effectively ignores the
2892
+ authentication in the spec for a single request.
2893
+ :type _request_auth: dict, optional
2894
+ :param _content_type: force content-type for the request.
2895
+ :type _content_type: str, Optional
2896
+ :param _headers: set to override the headers for a single
2897
+ request; this effectively ignores the headers
2898
+ in the spec for a single request.
2899
+ :type _headers: dict, optional
2900
+ :param _host_index: set to override the host_index for a single
2901
+ request; this effectively ignores the host_index
2902
+ in the spec for a single request.
2903
+ :type _host_index: int, optional
2904
+ :return: Returns the result object.
2905
+ """ # noqa: E501
2906
+
2907
+ _param = self._list_virtual_controller_coordinate_systems_serialize(
2908
+ cell=cell,
2909
+ controller=controller,
2910
+ _request_auth=_request_auth,
2911
+ _content_type=_content_type,
2912
+ _headers=_headers,
2913
+ _host_index=_host_index
2914
+ )
2915
+
2916
+ _response_types_map: Dict[str, Optional[str]] = {
2917
+ '200': "List[CoordinateSystem]",
2918
+ '400': "Error",
2919
+ '404': "Error",
2920
+ }
2921
+
2922
+ response_data = await self.api_client.call_api(
2923
+ *_param,
2924
+ _request_timeout=_request_timeout
2925
+ )
2926
+ await response_data.read()
2927
+ return self.api_client.response_deserialize(
2928
+ response_data=response_data,
2929
+ response_types_map=_response_types_map,
2930
+ )
2931
+
2932
+
2933
+ @validate_call
2934
+ async def list_virtual_controller_coordinate_systems_without_preload_content(
2935
+ self,
2936
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
2937
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
2938
+ _request_timeout: Union[
2939
+ None,
2940
+ Annotated[StrictFloat, Field(gt=0)],
2941
+ Tuple[
2942
+ Annotated[StrictFloat, Field(gt=0)],
2943
+ Annotated[StrictFloat, Field(gt=0)]
2944
+ ]
2945
+ ] = None,
2946
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2947
+ _content_type: Optional[StrictStr] = None,
2948
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2949
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2950
+ ) -> RESTResponseType:
2951
+ """List Coordinate Systems
2952
+
2953
+ Lists all coordinate systems on the robot controller.
2954
+
2955
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
2956
+ :type cell: str
2957
+ :param controller: Unique identifier to address a controller in the cell. (required)
2958
+ :type controller: str
2959
+ :param _request_timeout: timeout setting for this request. If one
2960
+ number provided, it will be total request
2961
+ timeout. It can also be a pair (tuple) of
2962
+ (connection, read) timeouts.
2963
+ :type _request_timeout: int, tuple(int, int), optional
2964
+ :param _request_auth: set to override the auth_settings for an a single
2965
+ request; this effectively ignores the
2966
+ authentication in the spec for a single request.
2967
+ :type _request_auth: dict, optional
2968
+ :param _content_type: force content-type for the request.
2969
+ :type _content_type: str, Optional
2970
+ :param _headers: set to override the headers for a single
2971
+ request; this effectively ignores the headers
2972
+ in the spec for a single request.
2973
+ :type _headers: dict, optional
2974
+ :param _host_index: set to override the host_index for a single
2975
+ request; this effectively ignores the host_index
2976
+ in the spec for a single request.
2977
+ :type _host_index: int, optional
2978
+ :return: Returns the result object.
2979
+ """ # noqa: E501
2980
+
2981
+ _param = self._list_virtual_controller_coordinate_systems_serialize(
2982
+ cell=cell,
2983
+ controller=controller,
2984
+ _request_auth=_request_auth,
2985
+ _content_type=_content_type,
2986
+ _headers=_headers,
2987
+ _host_index=_host_index
2988
+ )
2989
+
2990
+ _response_types_map: Dict[str, Optional[str]] = {
2991
+ '200': "List[CoordinateSystem]",
2992
+ '400': "Error",
2993
+ '404': "Error",
2994
+ }
2995
+
2996
+ response_data = await self.api_client.call_api(
2997
+ *_param,
2998
+ _request_timeout=_request_timeout
2999
+ )
3000
+ return response_data.response
3001
+
3002
+
3003
+ def _list_virtual_controller_coordinate_systems_serialize(
3004
+ self,
3005
+ cell,
3006
+ controller,
3007
+ _request_auth,
3008
+ _content_type,
3009
+ _headers,
3010
+ _host_index,
3011
+ ) -> RequestSerialized:
3012
+
3013
+ _host = None
3014
+
3015
+ _collection_formats: Dict[str, str] = {
3016
+ }
3017
+
3018
+ _path_params: Dict[str, str] = {}
3019
+ _query_params: List[Tuple[str, str]] = []
3020
+ _header_params: Dict[str, Optional[str]] = _headers or {}
3021
+ _form_params: List[Tuple[str, str]] = []
3022
+ _files: Dict[str, Union[str, bytes]] = {}
3023
+ _body_params: Optional[bytes] = None
3024
+
3025
+ # process the path parameters
3026
+ if cell is not None:
3027
+ _path_params['cell'] = cell
3028
+ if controller is not None:
3029
+ _path_params['controller'] = controller
3030
+ # process the query parameters
3031
+ # process the header parameters
3032
+ # process the form parameters
3033
+ # process the body parameter
3034
+
3035
+
3036
+ # set the HTTP header `Accept`
3037
+ _header_params['Accept'] = self.api_client.select_header_accept(
3038
+ [
3039
+ 'application/json'
3040
+ ]
3041
+ )
3042
+
3043
+
3044
+ # authentication setting
3045
+ _auth_settings: List[str] = [
3046
+ 'BasicAuth',
3047
+ 'BearerAuth'
3048
+ ]
3049
+
3050
+ return self.api_client.param_serialize(
3051
+ method='GET',
3052
+ resource_path='/cells/{cell}/virtual-controllers/{controller}/coordinate-systems',
3053
+ path_params=_path_params,
3054
+ query_params=_query_params,
3055
+ header_params=_header_params,
3056
+ body=_body_params,
3057
+ post_params=_form_params,
3058
+ files=_files,
3059
+ auth_settings=_auth_settings,
3060
+ collection_formats=_collection_formats,
3061
+ _host=_host,
3062
+ _request_auth=_request_auth
3063
+ )
3064
+
3065
+
3066
+
3067
+ @validate_call
3068
+ async def list_virtual_controller_tcps(
3069
+ self,
3070
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
3071
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
3072
+ motion_group: Annotated[StrictStr, Field(description="The motion-group identifier.")],
3073
+ _request_timeout: Union[
3074
+ None,
3075
+ Annotated[StrictFloat, Field(gt=0)],
3076
+ Tuple[
3077
+ Annotated[StrictFloat, Field(gt=0)],
3078
+ Annotated[StrictFloat, Field(gt=0)]
3079
+ ]
3080
+ ] = None,
3081
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3082
+ _content_type: Optional[StrictStr] = None,
3083
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3084
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3085
+ ) -> List[RobotTcp]:
3086
+ """List TCPs
3087
+
3088
+ Lists TCPs of the motion group. An empty TCP list is valid, e.g., for external axes.
3089
+
3090
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
3091
+ :type cell: str
3092
+ :param controller: Unique identifier to address a controller in the cell. (required)
3093
+ :type controller: str
3094
+ :param motion_group: The motion-group identifier. (required)
3095
+ :type motion_group: str
3096
+ :param _request_timeout: timeout setting for this request. If one
3097
+ number provided, it will be total request
3098
+ timeout. It can also be a pair (tuple) of
3099
+ (connection, read) timeouts.
3100
+ :type _request_timeout: int, tuple(int, int), optional
3101
+ :param _request_auth: set to override the auth_settings for an a single
3102
+ request; this effectively ignores the
3103
+ authentication in the spec for a single request.
3104
+ :type _request_auth: dict, optional
3105
+ :param _content_type: force content-type for the request.
3106
+ :type _content_type: str, Optional
3107
+ :param _headers: set to override the headers for a single
3108
+ request; this effectively ignores the headers
3109
+ in the spec for a single request.
3110
+ :type _headers: dict, optional
3111
+ :param _host_index: set to override the host_index for a single
3112
+ request; this effectively ignores the host_index
3113
+ in the spec for a single request.
3114
+ :type _host_index: int, optional
3115
+ :return: Returns the result object.
3116
+ """ # noqa: E501
3117
+
3118
+ _param = self._list_virtual_controller_tcps_serialize(
3119
+ cell=cell,
3120
+ controller=controller,
3121
+ motion_group=motion_group,
3122
+ _request_auth=_request_auth,
3123
+ _content_type=_content_type,
3124
+ _headers=_headers,
3125
+ _host_index=_host_index
3126
+ )
3127
+
3128
+ _response_types_map: Dict[str, Optional[str]] = {
3129
+ '200': "List[RobotTcp]",
3130
+ '400': "Error",
3131
+ '404': "Error",
3132
+ }
3133
+
3134
+ response_data = await self.api_client.call_api(
3135
+ *_param,
3136
+ _request_timeout=_request_timeout
3137
+ )
3138
+ await response_data.read()
3139
+ return self.api_client.response_deserialize(
3140
+ response_data=response_data,
3141
+ response_types_map=_response_types_map,
3142
+ ).data
3143
+
3144
+
3145
+ @validate_call
3146
+ async def list_virtual_controller_tcps_with_http_info(
3147
+ self,
3148
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
3149
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
3150
+ motion_group: Annotated[StrictStr, Field(description="The motion-group identifier.")],
3151
+ _request_timeout: Union[
3152
+ None,
3153
+ Annotated[StrictFloat, Field(gt=0)],
3154
+ Tuple[
3155
+ Annotated[StrictFloat, Field(gt=0)],
3156
+ Annotated[StrictFloat, Field(gt=0)]
3157
+ ]
3158
+ ] = None,
3159
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3160
+ _content_type: Optional[StrictStr] = None,
3161
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3162
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3163
+ ) -> ApiResponse[List[RobotTcp]]:
3164
+ """List TCPs
3165
+
3166
+ Lists TCPs of the motion group. An empty TCP list is valid, e.g., for external axes.
3167
+
3168
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
3169
+ :type cell: str
3170
+ :param controller: Unique identifier to address a controller in the cell. (required)
3171
+ :type controller: str
3172
+ :param motion_group: The motion-group identifier. (required)
3173
+ :type motion_group: str
3174
+ :param _request_timeout: timeout setting for this request. If one
3175
+ number provided, it will be total request
3176
+ timeout. It can also be a pair (tuple) of
3177
+ (connection, read) timeouts.
3178
+ :type _request_timeout: int, tuple(int, int), optional
3179
+ :param _request_auth: set to override the auth_settings for an a single
3180
+ request; this effectively ignores the
3181
+ authentication in the spec for a single request.
3182
+ :type _request_auth: dict, optional
3183
+ :param _content_type: force content-type for the request.
3184
+ :type _content_type: str, Optional
3185
+ :param _headers: set to override the headers for a single
3186
+ request; this effectively ignores the headers
3187
+ in the spec for a single request.
3188
+ :type _headers: dict, optional
3189
+ :param _host_index: set to override the host_index for a single
3190
+ request; this effectively ignores the host_index
3191
+ in the spec for a single request.
3192
+ :type _host_index: int, optional
3193
+ :return: Returns the result object.
3194
+ """ # noqa: E501
3195
+
3196
+ _param = self._list_virtual_controller_tcps_serialize(
3197
+ cell=cell,
3198
+ controller=controller,
3199
+ motion_group=motion_group,
3200
+ _request_auth=_request_auth,
3201
+ _content_type=_content_type,
3202
+ _headers=_headers,
3203
+ _host_index=_host_index
3204
+ )
3205
+
3206
+ _response_types_map: Dict[str, Optional[str]] = {
3207
+ '200': "List[RobotTcp]",
3208
+ '400': "Error",
3209
+ '404': "Error",
3210
+ }
3211
+
3212
+ response_data = await self.api_client.call_api(
3213
+ *_param,
3214
+ _request_timeout=_request_timeout
3215
+ )
3216
+ await response_data.read()
3217
+ return self.api_client.response_deserialize(
3218
+ response_data=response_data,
3219
+ response_types_map=_response_types_map,
3220
+ )
3221
+
3222
+
3223
+ @validate_call
3224
+ async def list_virtual_controller_tcps_without_preload_content(
3225
+ self,
3226
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
3227
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
3228
+ motion_group: Annotated[StrictStr, Field(description="The motion-group identifier.")],
3229
+ _request_timeout: Union[
3230
+ None,
3231
+ Annotated[StrictFloat, Field(gt=0)],
3232
+ Tuple[
3233
+ Annotated[StrictFloat, Field(gt=0)],
3234
+ Annotated[StrictFloat, Field(gt=0)]
3235
+ ]
3236
+ ] = None,
3237
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3238
+ _content_type: Optional[StrictStr] = None,
3239
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3240
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3241
+ ) -> RESTResponseType:
3242
+ """List TCPs
3243
+
3244
+ Lists TCPs of the motion group. An empty TCP list is valid, e.g., for external axes.
3245
+
3246
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
3247
+ :type cell: str
3248
+ :param controller: Unique identifier to address a controller in the cell. (required)
3249
+ :type controller: str
3250
+ :param motion_group: The motion-group identifier. (required)
3251
+ :type motion_group: str
3252
+ :param _request_timeout: timeout setting for this request. If one
3253
+ number provided, it will be total request
3254
+ timeout. It can also be a pair (tuple) of
3255
+ (connection, read) timeouts.
3256
+ :type _request_timeout: int, tuple(int, int), optional
3257
+ :param _request_auth: set to override the auth_settings for an a single
3258
+ request; this effectively ignores the
3259
+ authentication in the spec for a single request.
3260
+ :type _request_auth: dict, optional
3261
+ :param _content_type: force content-type for the request.
3262
+ :type _content_type: str, Optional
3263
+ :param _headers: set to override the headers for a single
3264
+ request; this effectively ignores the headers
3265
+ in the spec for a single request.
3266
+ :type _headers: dict, optional
3267
+ :param _host_index: set to override the host_index for a single
3268
+ request; this effectively ignores the host_index
3269
+ in the spec for a single request.
3270
+ :type _host_index: int, optional
3271
+ :return: Returns the result object.
3272
+ """ # noqa: E501
3273
+
3274
+ _param = self._list_virtual_controller_tcps_serialize(
3275
+ cell=cell,
3276
+ controller=controller,
3277
+ motion_group=motion_group,
3278
+ _request_auth=_request_auth,
3279
+ _content_type=_content_type,
3280
+ _headers=_headers,
3281
+ _host_index=_host_index
3282
+ )
3283
+
3284
+ _response_types_map: Dict[str, Optional[str]] = {
3285
+ '200': "List[RobotTcp]",
3286
+ '400': "Error",
3287
+ '404': "Error",
3288
+ }
3289
+
3290
+ response_data = await self.api_client.call_api(
3291
+ *_param,
3292
+ _request_timeout=_request_timeout
3293
+ )
3294
+ return response_data.response
3295
+
3296
+
3297
+ def _list_virtual_controller_tcps_serialize(
3298
+ self,
3299
+ cell,
3300
+ controller,
3301
+ motion_group,
3302
+ _request_auth,
3303
+ _content_type,
3304
+ _headers,
3305
+ _host_index,
3306
+ ) -> RequestSerialized:
3307
+
3308
+ _host = None
3309
+
3310
+ _collection_formats: Dict[str, str] = {
3311
+ }
3312
+
3313
+ _path_params: Dict[str, str] = {}
3314
+ _query_params: List[Tuple[str, str]] = []
3315
+ _header_params: Dict[str, Optional[str]] = _headers or {}
3316
+ _form_params: List[Tuple[str, str]] = []
3317
+ _files: Dict[str, Union[str, bytes]] = {}
3318
+ _body_params: Optional[bytes] = None
3319
+
3320
+ # process the path parameters
3321
+ if cell is not None:
3322
+ _path_params['cell'] = cell
3323
+ if controller is not None:
3324
+ _path_params['controller'] = controller
3325
+ if motion_group is not None:
3326
+ _path_params['motion-group'] = motion_group
3327
+ # process the query parameters
3328
+ # process the header parameters
3329
+ # process the form parameters
3330
+ # process the body parameter
3331
+
3332
+
3333
+ # set the HTTP header `Accept`
3334
+ _header_params['Accept'] = self.api_client.select_header_accept(
3335
+ [
3336
+ 'application/json'
3337
+ ]
3338
+ )
3339
+
3340
+
3341
+ # authentication setting
3342
+ _auth_settings: List[str] = [
3343
+ 'BasicAuth',
3344
+ 'BearerAuth'
3345
+ ]
3346
+
3347
+ return self.api_client.param_serialize(
3348
+ method='GET',
3349
+ resource_path='/cells/{cell}/virtual-controllers/{controller}/motion-groups/{motion-group}/tcps',
3350
+ path_params=_path_params,
3351
+ query_params=_query_params,
3352
+ header_params=_header_params,
3353
+ body=_body_params,
3354
+ post_params=_form_params,
3355
+ files=_files,
3356
+ auth_settings=_auth_settings,
3357
+ collection_formats=_collection_formats,
3358
+ _host=_host,
3359
+ _request_auth=_request_auth
3360
+ )
3361
+
3362
+
3363
+
3364
+ @validate_call
3365
+ async def set_emergency_stop(
3366
+ self,
3367
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
3368
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
3369
+ active: Optional[StrictBool] = None,
3370
+ _request_timeout: Union[
3371
+ None,
3372
+ Annotated[StrictFloat, Field(gt=0)],
3373
+ Tuple[
3374
+ Annotated[StrictFloat, Field(gt=0)],
3375
+ Annotated[StrictFloat, Field(gt=0)]
3376
+ ]
3377
+ ] = None,
3378
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3379
+ _content_type: Optional[StrictStr] = None,
3380
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3381
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3382
+ ) -> None:
3383
+ """Push or Release Emergency Stop
3384
+
3385
+ Activates or releases the Emergency Stop on the virtual robot controller. Activating the Emergency Stop stops the execution of all motions. The stop is executed on physical controllers immediately not gracefully and not on paths. Due to restricted physical behavior of the virtual robot controller, the Emergency Stop is executed on paths. To return to normal operation the Emergency Stop needs to be released. Use [getCurrentMotionGroupState](getCurrentMotionGroupState) to get the Emergency Stop state with `safety_state` regardless of the controller type. > **NOTE** > > The Emergency Stop state can only be changed via API when using virtual robot controllers.
3386
+
3387
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
3388
+ :type cell: str
3389
+ :param controller: Unique identifier to address a controller in the cell. (required)
3390
+ :type controller: str
3391
+ :param active:
3392
+ :type active: bool
3393
+ :param _request_timeout: timeout setting for this request. If one
3394
+ number provided, it will be total request
3395
+ timeout. It can also be a pair (tuple) of
3396
+ (connection, read) timeouts.
3397
+ :type _request_timeout: int, tuple(int, int), optional
3398
+ :param _request_auth: set to override the auth_settings for an a single
3399
+ request; this effectively ignores the
3400
+ authentication in the spec for a single request.
3401
+ :type _request_auth: dict, optional
3402
+ :param _content_type: force content-type for the request.
3403
+ :type _content_type: str, Optional
3404
+ :param _headers: set to override the headers for a single
3405
+ request; this effectively ignores the headers
3406
+ in the spec for a single request.
3407
+ :type _headers: dict, optional
3408
+ :param _host_index: set to override the host_index for a single
3409
+ request; this effectively ignores the host_index
3410
+ in the spec for a single request.
3411
+ :type _host_index: int, optional
3412
+ :return: Returns the result object.
3413
+ """ # noqa: E501
3414
+
3415
+ _param = self._set_emergency_stop_serialize(
3416
+ cell=cell,
3417
+ controller=controller,
3418
+ active=active,
3419
+ _request_auth=_request_auth,
3420
+ _content_type=_content_type,
3421
+ _headers=_headers,
3422
+ _host_index=_host_index
3423
+ )
3424
+
3425
+ _response_types_map: Dict[str, Optional[str]] = {
3426
+ '200': None,
3427
+ '400': "Error",
3428
+ '404': "Error",
3429
+ }
3430
+
3431
+ response_data = await self.api_client.call_api(
3432
+ *_param,
3433
+ _request_timeout=_request_timeout
3434
+ )
3435
+ await response_data.read()
3436
+ return self.api_client.response_deserialize(
3437
+ response_data=response_data,
3438
+ response_types_map=_response_types_map,
3439
+ ).data
3440
+
3441
+
3442
+ @validate_call
3443
+ async def set_emergency_stop_with_http_info(
3444
+ self,
3445
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
3446
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
3447
+ active: Optional[StrictBool] = None,
3448
+ _request_timeout: Union[
3449
+ None,
3450
+ Annotated[StrictFloat, Field(gt=0)],
3451
+ Tuple[
3452
+ Annotated[StrictFloat, Field(gt=0)],
3453
+ Annotated[StrictFloat, Field(gt=0)]
3454
+ ]
3455
+ ] = None,
3456
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3457
+ _content_type: Optional[StrictStr] = None,
3458
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3459
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3460
+ ) -> ApiResponse[None]:
3461
+ """Push or Release Emergency Stop
3462
+
3463
+ Activates or releases the Emergency Stop on the virtual robot controller. Activating the Emergency Stop stops the execution of all motions. The stop is executed on physical controllers immediately not gracefully and not on paths. Due to restricted physical behavior of the virtual robot controller, the Emergency Stop is executed on paths. To return to normal operation the Emergency Stop needs to be released. Use [getCurrentMotionGroupState](getCurrentMotionGroupState) to get the Emergency Stop state with `safety_state` regardless of the controller type. > **NOTE** > > The Emergency Stop state can only be changed via API when using virtual robot controllers.
3464
+
3465
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
3466
+ :type cell: str
3467
+ :param controller: Unique identifier to address a controller in the cell. (required)
3468
+ :type controller: str
3469
+ :param active:
3470
+ :type active: bool
3471
+ :param _request_timeout: timeout setting for this request. If one
3472
+ number provided, it will be total request
3473
+ timeout. It can also be a pair (tuple) of
3474
+ (connection, read) timeouts.
3475
+ :type _request_timeout: int, tuple(int, int), optional
3476
+ :param _request_auth: set to override the auth_settings for an a single
3477
+ request; this effectively ignores the
3478
+ authentication in the spec for a single request.
3479
+ :type _request_auth: dict, optional
3480
+ :param _content_type: force content-type for the request.
3481
+ :type _content_type: str, Optional
3482
+ :param _headers: set to override the headers for a single
3483
+ request; this effectively ignores the headers
3484
+ in the spec for a single request.
3485
+ :type _headers: dict, optional
3486
+ :param _host_index: set to override the host_index for a single
3487
+ request; this effectively ignores the host_index
3488
+ in the spec for a single request.
3489
+ :type _host_index: int, optional
3490
+ :return: Returns the result object.
3491
+ """ # noqa: E501
3492
+
3493
+ _param = self._set_emergency_stop_serialize(
3494
+ cell=cell,
3495
+ controller=controller,
3496
+ active=active,
3497
+ _request_auth=_request_auth,
3498
+ _content_type=_content_type,
3499
+ _headers=_headers,
3500
+ _host_index=_host_index
3501
+ )
3502
+
3503
+ _response_types_map: Dict[str, Optional[str]] = {
3504
+ '200': None,
3505
+ '400': "Error",
3506
+ '404': "Error",
3507
+ }
3508
+
3509
+ response_data = await self.api_client.call_api(
3510
+ *_param,
3511
+ _request_timeout=_request_timeout
3512
+ )
3513
+ await response_data.read()
3514
+ return self.api_client.response_deserialize(
3515
+ response_data=response_data,
3516
+ response_types_map=_response_types_map,
3517
+ )
3518
+
3519
+
3520
+ @validate_call
3521
+ async def set_emergency_stop_without_preload_content(
3522
+ self,
3523
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
3524
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
3525
+ active: Optional[StrictBool] = None,
3526
+ _request_timeout: Union[
3527
+ None,
3528
+ Annotated[StrictFloat, Field(gt=0)],
3529
+ Tuple[
3530
+ Annotated[StrictFloat, Field(gt=0)],
3531
+ Annotated[StrictFloat, Field(gt=0)]
3532
+ ]
3533
+ ] = None,
3534
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3535
+ _content_type: Optional[StrictStr] = None,
3536
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3537
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3538
+ ) -> RESTResponseType:
3539
+ """Push or Release Emergency Stop
3540
+
3541
+ Activates or releases the Emergency Stop on the virtual robot controller. Activating the Emergency Stop stops the execution of all motions. The stop is executed on physical controllers immediately not gracefully and not on paths. Due to restricted physical behavior of the virtual robot controller, the Emergency Stop is executed on paths. To return to normal operation the Emergency Stop needs to be released. Use [getCurrentMotionGroupState](getCurrentMotionGroupState) to get the Emergency Stop state with `safety_state` regardless of the controller type. > **NOTE** > > The Emergency Stop state can only be changed via API when using virtual robot controllers.
3542
+
3543
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
3544
+ :type cell: str
3545
+ :param controller: Unique identifier to address a controller in the cell. (required)
3546
+ :type controller: str
3547
+ :param active:
3548
+ :type active: bool
3549
+ :param _request_timeout: timeout setting for this request. If one
3550
+ number provided, it will be total request
3551
+ timeout. It can also be a pair (tuple) of
3552
+ (connection, read) timeouts.
3553
+ :type _request_timeout: int, tuple(int, int), optional
3554
+ :param _request_auth: set to override the auth_settings for an a single
3555
+ request; this effectively ignores the
3556
+ authentication in the spec for a single request.
3557
+ :type _request_auth: dict, optional
3558
+ :param _content_type: force content-type for the request.
3559
+ :type _content_type: str, Optional
3560
+ :param _headers: set to override the headers for a single
3561
+ request; this effectively ignores the headers
3562
+ in the spec for a single request.
3563
+ :type _headers: dict, optional
3564
+ :param _host_index: set to override the host_index for a single
3565
+ request; this effectively ignores the host_index
3566
+ in the spec for a single request.
3567
+ :type _host_index: int, optional
3568
+ :return: Returns the result object.
3569
+ """ # noqa: E501
3570
+
3571
+ _param = self._set_emergency_stop_serialize(
3572
+ cell=cell,
3573
+ controller=controller,
3574
+ active=active,
3575
+ _request_auth=_request_auth,
3576
+ _content_type=_content_type,
3577
+ _headers=_headers,
3578
+ _host_index=_host_index
3579
+ )
3580
+
3581
+ _response_types_map: Dict[str, Optional[str]] = {
3582
+ '200': None,
3583
+ '400': "Error",
3584
+ '404': "Error",
3585
+ }
3586
+
3587
+ response_data = await self.api_client.call_api(
3588
+ *_param,
3589
+ _request_timeout=_request_timeout
3590
+ )
3591
+ return response_data.response
3592
+
3593
+
3594
+ def _set_emergency_stop_serialize(
3595
+ self,
3596
+ cell,
3597
+ controller,
3598
+ active,
3599
+ _request_auth,
3600
+ _content_type,
3601
+ _headers,
3602
+ _host_index,
3603
+ ) -> RequestSerialized:
3604
+
3605
+ _host = None
3606
+
3607
+ _collection_formats: Dict[str, str] = {
3608
+ }
3609
+
3610
+ _path_params: Dict[str, str] = {}
3611
+ _query_params: List[Tuple[str, str]] = []
3612
+ _header_params: Dict[str, Optional[str]] = _headers or {}
3613
+ _form_params: List[Tuple[str, str]] = []
3614
+ _files: Dict[str, Union[str, bytes]] = {}
3615
+ _body_params: Optional[bytes] = None
3616
+
3617
+ # process the path parameters
3618
+ if cell is not None:
3619
+ _path_params['cell'] = cell
3620
+ if controller is not None:
3621
+ _path_params['controller'] = controller
3622
+ # process the query parameters
3623
+ if active is not None:
3624
+
3625
+ _query_params.append(('active', active))
3626
+
3627
+ # process the header parameters
3628
+ # process the form parameters
3629
+ # process the body parameter
3630
+
3631
+
3632
+ # set the HTTP header `Accept`
3633
+ _header_params['Accept'] = self.api_client.select_header_accept(
3634
+ [
3635
+ 'application/json'
3636
+ ]
3637
+ )
3638
+
3639
+
3640
+ # authentication setting
3641
+ _auth_settings: List[str] = [
3642
+ 'BasicAuth',
3643
+ 'BearerAuth'
3644
+ ]
3645
+
3646
+ return self.api_client.param_serialize(
3647
+ method='PUT',
3648
+ resource_path='/cells/{cell}/virtual-controllers/{controller}/emergency-stop',
3649
+ path_params=_path_params,
3650
+ query_params=_query_params,
3651
+ header_params=_header_params,
3652
+ body=_body_params,
3653
+ post_params=_form_params,
3654
+ files=_files,
3655
+ auth_settings=_auth_settings,
3656
+ collection_formats=_collection_formats,
3657
+ _host=_host,
3658
+ _request_auth=_request_auth
3659
+ )
3660
+
3661
+
3662
+
3663
+ @validate_call
3664
+ async def set_motion_group_state(
3665
+ self,
3666
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
3667
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
3668
+ motion_group: Annotated[StrictStr, Field(description="The motion-group identifier.")],
3669
+ motion_group_joints: MotionGroupJoints,
3670
+ _request_timeout: Union[
3671
+ None,
3672
+ Annotated[StrictFloat, Field(gt=0)],
3673
+ Tuple[
3674
+ Annotated[StrictFloat, Field(gt=0)],
3675
+ Annotated[StrictFloat, Field(gt=0)]
3676
+ ]
3677
+ ] = None,
3678
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3679
+ _content_type: Optional[StrictStr] = None,
3680
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3681
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3682
+ ) -> None:
3683
+ """Set Motion Group State
3684
+
3685
+ Sets the values for joint position, joint velocity or joint acceleration of a motion group state. The values are immediately applied to the joints of the motion group. <!-- theme: info --> > #### NOTE > > Only use the endpoint when the motion group is in monitor mode. If the motion group is controlled, currently jogging or planning motions, > the values are overridden by the controller or an error may occur.
3686
+
3687
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
3688
+ :type cell: str
3689
+ :param controller: Unique identifier to address a controller in the cell. (required)
3690
+ :type controller: str
3691
+ :param motion_group: The motion-group identifier. (required)
3692
+ :type motion_group: str
3693
+ :param motion_group_joints: (required)
3694
+ :type motion_group_joints: MotionGroupJoints
3695
+ :param _request_timeout: timeout setting for this request. If one
3696
+ number provided, it will be total request
3697
+ timeout. It can also be a pair (tuple) of
3698
+ (connection, read) timeouts.
3699
+ :type _request_timeout: int, tuple(int, int), optional
3700
+ :param _request_auth: set to override the auth_settings for an a single
3701
+ request; this effectively ignores the
3702
+ authentication in the spec for a single request.
3703
+ :type _request_auth: dict, optional
3704
+ :param _content_type: force content-type for the request.
3705
+ :type _content_type: str, Optional
3706
+ :param _headers: set to override the headers for a single
3707
+ request; this effectively ignores the headers
3708
+ in the spec for a single request.
3709
+ :type _headers: dict, optional
3710
+ :param _host_index: set to override the host_index for a single
3711
+ request; this effectively ignores the host_index
3712
+ in the spec for a single request.
3713
+ :type _host_index: int, optional
3714
+ :return: Returns the result object.
3715
+ """ # noqa: E501
3716
+
3717
+ _param = self._set_motion_group_state_serialize(
3718
+ cell=cell,
3719
+ controller=controller,
3720
+ motion_group=motion_group,
3721
+ motion_group_joints=motion_group_joints,
3722
+ _request_auth=_request_auth,
3723
+ _content_type=_content_type,
3724
+ _headers=_headers,
3725
+ _host_index=_host_index
3726
+ )
3727
+
3728
+ _response_types_map: Dict[str, Optional[str]] = {
3729
+ '200': None,
3730
+ '400': "Error",
3731
+ '404': "Error",
3732
+ }
3733
+
3734
+ response_data = await self.api_client.call_api(
3735
+ *_param,
3736
+ _request_timeout=_request_timeout
3737
+ )
3738
+ await response_data.read()
3739
+ return self.api_client.response_deserialize(
3740
+ response_data=response_data,
3741
+ response_types_map=_response_types_map,
3742
+ ).data
3743
+
3744
+
3745
+ @validate_call
3746
+ async def set_motion_group_state_with_http_info(
3747
+ self,
3748
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
3749
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
3750
+ motion_group: Annotated[StrictStr, Field(description="The motion-group identifier.")],
3751
+ motion_group_joints: MotionGroupJoints,
3752
+ _request_timeout: Union[
3753
+ None,
3754
+ Annotated[StrictFloat, Field(gt=0)],
3755
+ Tuple[
3756
+ Annotated[StrictFloat, Field(gt=0)],
3757
+ Annotated[StrictFloat, Field(gt=0)]
3758
+ ]
3759
+ ] = None,
3760
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3761
+ _content_type: Optional[StrictStr] = None,
3762
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3763
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3764
+ ) -> ApiResponse[None]:
3765
+ """Set Motion Group State
3766
+
3767
+ Sets the values for joint position, joint velocity or joint acceleration of a motion group state. The values are immediately applied to the joints of the motion group. <!-- theme: info --> > #### NOTE > > Only use the endpoint when the motion group is in monitor mode. If the motion group is controlled, currently jogging or planning motions, > the values are overridden by the controller or an error may occur.
3768
+
3769
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
3770
+ :type cell: str
3771
+ :param controller: Unique identifier to address a controller in the cell. (required)
3772
+ :type controller: str
3773
+ :param motion_group: The motion-group identifier. (required)
3774
+ :type motion_group: str
3775
+ :param motion_group_joints: (required)
3776
+ :type motion_group_joints: MotionGroupJoints
3777
+ :param _request_timeout: timeout setting for this request. If one
3778
+ number provided, it will be total request
3779
+ timeout. It can also be a pair (tuple) of
3780
+ (connection, read) timeouts.
3781
+ :type _request_timeout: int, tuple(int, int), optional
3782
+ :param _request_auth: set to override the auth_settings for an a single
3783
+ request; this effectively ignores the
3784
+ authentication in the spec for a single request.
3785
+ :type _request_auth: dict, optional
3786
+ :param _content_type: force content-type for the request.
3787
+ :type _content_type: str, Optional
3788
+ :param _headers: set to override the headers for a single
3789
+ request; this effectively ignores the headers
3790
+ in the spec for a single request.
3791
+ :type _headers: dict, optional
3792
+ :param _host_index: set to override the host_index for a single
3793
+ request; this effectively ignores the host_index
3794
+ in the spec for a single request.
3795
+ :type _host_index: int, optional
3796
+ :return: Returns the result object.
3797
+ """ # noqa: E501
3798
+
3799
+ _param = self._set_motion_group_state_serialize(
3800
+ cell=cell,
3801
+ controller=controller,
3802
+ motion_group=motion_group,
3803
+ motion_group_joints=motion_group_joints,
3804
+ _request_auth=_request_auth,
3805
+ _content_type=_content_type,
3806
+ _headers=_headers,
3807
+ _host_index=_host_index
3808
+ )
3809
+
3810
+ _response_types_map: Dict[str, Optional[str]] = {
3811
+ '200': None,
3812
+ '400': "Error",
3813
+ '404': "Error",
3814
+ }
3815
+
3816
+ response_data = await self.api_client.call_api(
3817
+ *_param,
3818
+ _request_timeout=_request_timeout
3819
+ )
3820
+ await response_data.read()
3821
+ return self.api_client.response_deserialize(
3822
+ response_data=response_data,
3823
+ response_types_map=_response_types_map,
3824
+ )
3825
+
3826
+
3827
+ @validate_call
3828
+ async def set_motion_group_state_without_preload_content(
3829
+ self,
3830
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
3831
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
3832
+ motion_group: Annotated[StrictStr, Field(description="The motion-group identifier.")],
3833
+ motion_group_joints: MotionGroupJoints,
3834
+ _request_timeout: Union[
3835
+ None,
3836
+ Annotated[StrictFloat, Field(gt=0)],
3837
+ Tuple[
3838
+ Annotated[StrictFloat, Field(gt=0)],
3839
+ Annotated[StrictFloat, Field(gt=0)]
3840
+ ]
3841
+ ] = None,
3842
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3843
+ _content_type: Optional[StrictStr] = None,
3844
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3845
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3846
+ ) -> RESTResponseType:
3847
+ """Set Motion Group State
3848
+
3849
+ Sets the values for joint position, joint velocity or joint acceleration of a motion group state. The values are immediately applied to the joints of the motion group. <!-- theme: info --> > #### NOTE > > Only use the endpoint when the motion group is in monitor mode. If the motion group is controlled, currently jogging or planning motions, > the values are overridden by the controller or an error may occur.
3850
+
3851
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
3852
+ :type cell: str
3853
+ :param controller: Unique identifier to address a controller in the cell. (required)
3854
+ :type controller: str
3855
+ :param motion_group: The motion-group identifier. (required)
3856
+ :type motion_group: str
3857
+ :param motion_group_joints: (required)
3858
+ :type motion_group_joints: MotionGroupJoints
3859
+ :param _request_timeout: timeout setting for this request. If one
3860
+ number provided, it will be total request
3861
+ timeout. It can also be a pair (tuple) of
3862
+ (connection, read) timeouts.
3863
+ :type _request_timeout: int, tuple(int, int), optional
3864
+ :param _request_auth: set to override the auth_settings for an a single
3865
+ request; this effectively ignores the
3866
+ authentication in the spec for a single request.
3867
+ :type _request_auth: dict, optional
3868
+ :param _content_type: force content-type for the request.
3869
+ :type _content_type: str, Optional
3870
+ :param _headers: set to override the headers for a single
3871
+ request; this effectively ignores the headers
3872
+ in the spec for a single request.
3873
+ :type _headers: dict, optional
3874
+ :param _host_index: set to override the host_index for a single
3875
+ request; this effectively ignores the host_index
3876
+ in the spec for a single request.
3877
+ :type _host_index: int, optional
3878
+ :return: Returns the result object.
3879
+ """ # noqa: E501
3880
+
3881
+ _param = self._set_motion_group_state_serialize(
3882
+ cell=cell,
3883
+ controller=controller,
3884
+ motion_group=motion_group,
3885
+ motion_group_joints=motion_group_joints,
3886
+ _request_auth=_request_auth,
3887
+ _content_type=_content_type,
3888
+ _headers=_headers,
3889
+ _host_index=_host_index
3890
+ )
3891
+
3892
+ _response_types_map: Dict[str, Optional[str]] = {
3893
+ '200': None,
3894
+ '400': "Error",
3895
+ '404': "Error",
3896
+ }
3897
+
3898
+ response_data = await self.api_client.call_api(
3899
+ *_param,
3900
+ _request_timeout=_request_timeout
3901
+ )
3902
+ return response_data.response
3903
+
3904
+
3905
+ def _set_motion_group_state_serialize(
3906
+ self,
3907
+ cell,
3908
+ controller,
3909
+ motion_group,
3910
+ motion_group_joints,
3911
+ _request_auth,
3912
+ _content_type,
3913
+ _headers,
3914
+ _host_index,
3915
+ ) -> RequestSerialized:
3916
+
3917
+ _host = None
3918
+
3919
+ _collection_formats: Dict[str, str] = {
3920
+ }
3921
+
3922
+ _path_params: Dict[str, str] = {}
3923
+ _query_params: List[Tuple[str, str]] = []
3924
+ _header_params: Dict[str, Optional[str]] = _headers or {}
3925
+ _form_params: List[Tuple[str, str]] = []
3926
+ _files: Dict[str, Union[str, bytes]] = {}
3927
+ _body_params: Optional[bytes] = None
3928
+
3929
+ # process the path parameters
3930
+ if cell is not None:
3931
+ _path_params['cell'] = cell
3932
+ if controller is not None:
3933
+ _path_params['controller'] = controller
3934
+ if motion_group is not None:
3935
+ _path_params['motion-group'] = motion_group
3936
+ # process the query parameters
3937
+ # process the header parameters
3938
+ # process the form parameters
3939
+ # process the body parameter
3940
+ if motion_group_joints is not None:
3941
+ _body_params = motion_group_joints
3942
+
3943
+
3944
+ # set the HTTP header `Accept`
3945
+ _header_params['Accept'] = self.api_client.select_header_accept(
3946
+ [
3947
+ 'application/json'
3948
+ ]
3949
+ )
3950
+
3951
+ # set the HTTP header `Content-Type`
3952
+ if _content_type:
3953
+ _header_params['Content-Type'] = _content_type
3954
+ else:
3955
+ _default_content_type = (
3956
+ self.api_client.select_header_content_type(
3957
+ [
3958
+ 'application/json'
3959
+ ]
3960
+ )
3961
+ )
3962
+ if _default_content_type is not None:
3963
+ _header_params['Content-Type'] = _default_content_type
3964
+
3965
+ # authentication setting
3966
+ _auth_settings: List[str] = [
3967
+ 'BasicAuth',
3968
+ 'BearerAuth'
3969
+ ]
3970
+
3971
+ return self.api_client.param_serialize(
3972
+ method='PUT',
3973
+ resource_path='/cells/{cell}/virtual-controllers/{controller}/motion-groups/{motion-group}/state',
3974
+ path_params=_path_params,
3975
+ query_params=_query_params,
3976
+ header_params=_header_params,
3977
+ body=_body_params,
3978
+ post_params=_form_params,
3979
+ files=_files,
3980
+ auth_settings=_auth_settings,
3981
+ collection_formats=_collection_formats,
3982
+ _host=_host,
3983
+ _request_auth=_request_auth
3984
+ )
3985
+
3986
+
3987
+
3988
+ @validate_call
3989
+ async def set_operation_mode(
3990
+ self,
3991
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
3992
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
3993
+ mode: OperationMode,
3994
+ _request_timeout: Union[
3995
+ None,
3996
+ Annotated[StrictFloat, Field(gt=0)],
3997
+ Tuple[
3998
+ Annotated[StrictFloat, Field(gt=0)],
3999
+ Annotated[StrictFloat, Field(gt=0)]
4000
+ ]
4001
+ ] = None,
4002
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
4003
+ _content_type: Optional[StrictStr] = None,
4004
+ _headers: Optional[Dict[StrictStr, Any]] = None,
4005
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
4006
+ ) -> None:
4007
+ """Set Operation Mode
4008
+
4009
+ Changes the operation mode of the virtual robot controller to the specified value. To get the operation mode regardless of the controller type, use [getCurrentMotionGroupState](getCurrentMotionGroupState). > **NOTE** > > The operation mode can only be changed via API when using virtual robot controllers.
4010
+
4011
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
4012
+ :type cell: str
4013
+ :param controller: Unique identifier to address a controller in the cell. (required)
4014
+ :type controller: str
4015
+ :param mode: (required)
4016
+ :type mode: OperationMode
4017
+ :param _request_timeout: timeout setting for this request. If one
4018
+ number provided, it will be total request
4019
+ timeout. It can also be a pair (tuple) of
4020
+ (connection, read) timeouts.
4021
+ :type _request_timeout: int, tuple(int, int), optional
4022
+ :param _request_auth: set to override the auth_settings for an a single
4023
+ request; this effectively ignores the
4024
+ authentication in the spec for a single request.
4025
+ :type _request_auth: dict, optional
4026
+ :param _content_type: force content-type for the request.
4027
+ :type _content_type: str, Optional
4028
+ :param _headers: set to override the headers for a single
4029
+ request; this effectively ignores the headers
4030
+ in the spec for a single request.
4031
+ :type _headers: dict, optional
4032
+ :param _host_index: set to override the host_index for a single
4033
+ request; this effectively ignores the host_index
4034
+ in the spec for a single request.
4035
+ :type _host_index: int, optional
4036
+ :return: Returns the result object.
4037
+ """ # noqa: E501
4038
+
4039
+ _param = self._set_operation_mode_serialize(
4040
+ cell=cell,
4041
+ controller=controller,
4042
+ mode=mode,
4043
+ _request_auth=_request_auth,
4044
+ _content_type=_content_type,
4045
+ _headers=_headers,
4046
+ _host_index=_host_index
4047
+ )
4048
+
4049
+ _response_types_map: Dict[str, Optional[str]] = {
4050
+ '200': None,
4051
+ '400': "Error",
4052
+ '404': "Error",
4053
+ }
4054
+
4055
+ response_data = await self.api_client.call_api(
4056
+ *_param,
4057
+ _request_timeout=_request_timeout
4058
+ )
4059
+ await response_data.read()
4060
+ return self.api_client.response_deserialize(
4061
+ response_data=response_data,
4062
+ response_types_map=_response_types_map,
4063
+ ).data
4064
+
4065
+
4066
+ @validate_call
4067
+ async def set_operation_mode_with_http_info(
4068
+ self,
4069
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
4070
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
4071
+ mode: OperationMode,
4072
+ _request_timeout: Union[
4073
+ None,
4074
+ Annotated[StrictFloat, Field(gt=0)],
4075
+ Tuple[
4076
+ Annotated[StrictFloat, Field(gt=0)],
4077
+ Annotated[StrictFloat, Field(gt=0)]
4078
+ ]
4079
+ ] = None,
4080
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
4081
+ _content_type: Optional[StrictStr] = None,
4082
+ _headers: Optional[Dict[StrictStr, Any]] = None,
4083
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
4084
+ ) -> ApiResponse[None]:
4085
+ """Set Operation Mode
4086
+
4087
+ Changes the operation mode of the virtual robot controller to the specified value. To get the operation mode regardless of the controller type, use [getCurrentMotionGroupState](getCurrentMotionGroupState). > **NOTE** > > The operation mode can only be changed via API when using virtual robot controllers.
4088
+
4089
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
4090
+ :type cell: str
4091
+ :param controller: Unique identifier to address a controller in the cell. (required)
4092
+ :type controller: str
4093
+ :param mode: (required)
4094
+ :type mode: OperationMode
4095
+ :param _request_timeout: timeout setting for this request. If one
4096
+ number provided, it will be total request
4097
+ timeout. It can also be a pair (tuple) of
4098
+ (connection, read) timeouts.
4099
+ :type _request_timeout: int, tuple(int, int), optional
4100
+ :param _request_auth: set to override the auth_settings for an a single
4101
+ request; this effectively ignores the
4102
+ authentication in the spec for a single request.
4103
+ :type _request_auth: dict, optional
4104
+ :param _content_type: force content-type for the request.
4105
+ :type _content_type: str, Optional
4106
+ :param _headers: set to override the headers for a single
4107
+ request; this effectively ignores the headers
4108
+ in the spec for a single request.
4109
+ :type _headers: dict, optional
4110
+ :param _host_index: set to override the host_index for a single
4111
+ request; this effectively ignores the host_index
4112
+ in the spec for a single request.
4113
+ :type _host_index: int, optional
4114
+ :return: Returns the result object.
4115
+ """ # noqa: E501
4116
+
4117
+ _param = self._set_operation_mode_serialize(
4118
+ cell=cell,
4119
+ controller=controller,
4120
+ mode=mode,
4121
+ _request_auth=_request_auth,
4122
+ _content_type=_content_type,
4123
+ _headers=_headers,
4124
+ _host_index=_host_index
4125
+ )
4126
+
4127
+ _response_types_map: Dict[str, Optional[str]] = {
4128
+ '200': None,
4129
+ '400': "Error",
4130
+ '404': "Error",
4131
+ }
4132
+
4133
+ response_data = await self.api_client.call_api(
4134
+ *_param,
4135
+ _request_timeout=_request_timeout
4136
+ )
4137
+ await response_data.read()
4138
+ return self.api_client.response_deserialize(
4139
+ response_data=response_data,
4140
+ response_types_map=_response_types_map,
4141
+ )
4142
+
4143
+
4144
+ @validate_call
4145
+ async def set_operation_mode_without_preload_content(
4146
+ self,
4147
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
4148
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
4149
+ mode: OperationMode,
4150
+ _request_timeout: Union[
4151
+ None,
4152
+ Annotated[StrictFloat, Field(gt=0)],
4153
+ Tuple[
4154
+ Annotated[StrictFloat, Field(gt=0)],
4155
+ Annotated[StrictFloat, Field(gt=0)]
4156
+ ]
4157
+ ] = None,
4158
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
4159
+ _content_type: Optional[StrictStr] = None,
4160
+ _headers: Optional[Dict[StrictStr, Any]] = None,
4161
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
4162
+ ) -> RESTResponseType:
4163
+ """Set Operation Mode
4164
+
4165
+ Changes the operation mode of the virtual robot controller to the specified value. To get the operation mode regardless of the controller type, use [getCurrentMotionGroupState](getCurrentMotionGroupState). > **NOTE** > > The operation mode can only be changed via API when using virtual robot controllers.
4166
+
4167
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
4168
+ :type cell: str
4169
+ :param controller: Unique identifier to address a controller in the cell. (required)
4170
+ :type controller: str
4171
+ :param mode: (required)
4172
+ :type mode: OperationMode
4173
+ :param _request_timeout: timeout setting for this request. If one
4174
+ number provided, it will be total request
4175
+ timeout. It can also be a pair (tuple) of
4176
+ (connection, read) timeouts.
4177
+ :type _request_timeout: int, tuple(int, int), optional
4178
+ :param _request_auth: set to override the auth_settings for an a single
4179
+ request; this effectively ignores the
4180
+ authentication in the spec for a single request.
4181
+ :type _request_auth: dict, optional
4182
+ :param _content_type: force content-type for the request.
4183
+ :type _content_type: str, Optional
4184
+ :param _headers: set to override the headers for a single
4185
+ request; this effectively ignores the headers
4186
+ in the spec for a single request.
4187
+ :type _headers: dict, optional
4188
+ :param _host_index: set to override the host_index for a single
4189
+ request; this effectively ignores the host_index
4190
+ in the spec for a single request.
4191
+ :type _host_index: int, optional
4192
+ :return: Returns the result object.
4193
+ """ # noqa: E501
4194
+
4195
+ _param = self._set_operation_mode_serialize(
4196
+ cell=cell,
4197
+ controller=controller,
4198
+ mode=mode,
4199
+ _request_auth=_request_auth,
4200
+ _content_type=_content_type,
4201
+ _headers=_headers,
4202
+ _host_index=_host_index
4203
+ )
4204
+
4205
+ _response_types_map: Dict[str, Optional[str]] = {
4206
+ '200': None,
4207
+ '400': "Error",
4208
+ '404': "Error",
4209
+ }
4210
+
4211
+ response_data = await self.api_client.call_api(
4212
+ *_param,
4213
+ _request_timeout=_request_timeout
4214
+ )
4215
+ return response_data.response
4216
+
4217
+
4218
+ def _set_operation_mode_serialize(
4219
+ self,
4220
+ cell,
4221
+ controller,
4222
+ mode,
4223
+ _request_auth,
4224
+ _content_type,
4225
+ _headers,
4226
+ _host_index,
4227
+ ) -> RequestSerialized:
4228
+
4229
+ _host = None
4230
+
4231
+ _collection_formats: Dict[str, str] = {
4232
+ }
4233
+
4234
+ _path_params: Dict[str, str] = {}
4235
+ _query_params: List[Tuple[str, str]] = []
4236
+ _header_params: Dict[str, Optional[str]] = _headers or {}
4237
+ _form_params: List[Tuple[str, str]] = []
4238
+ _files: Dict[str, Union[str, bytes]] = {}
4239
+ _body_params: Optional[bytes] = None
4240
+
4241
+ # process the path parameters
4242
+ if cell is not None:
4243
+ _path_params['cell'] = cell
4244
+ if controller is not None:
4245
+ _path_params['controller'] = controller
4246
+ # process the query parameters
4247
+ if mode is not None:
4248
+
4249
+ _query_params.append(('mode', mode.value))
4250
+
4251
+ # process the header parameters
4252
+ # process the form parameters
4253
+ # process the body parameter
4254
+
4255
+
4256
+ # set the HTTP header `Accept`
4257
+ _header_params['Accept'] = self.api_client.select_header_accept(
4258
+ [
4259
+ 'application/json'
4260
+ ]
4261
+ )
4262
+
4263
+
4264
+ # authentication setting
4265
+ _auth_settings: List[str] = [
4266
+ 'BasicAuth',
4267
+ 'BearerAuth'
4268
+ ]
4269
+
4270
+ return self.api_client.param_serialize(
4271
+ method='PUT',
4272
+ resource_path='/cells/{cell}/virtual-controllers/{controller}/operationmode',
4273
+ path_params=_path_params,
4274
+ query_params=_query_params,
4275
+ header_params=_header_params,
4276
+ body=_body_params,
4277
+ post_params=_form_params,
4278
+ files=_files,
4279
+ auth_settings=_auth_settings,
4280
+ collection_formats=_collection_formats,
4281
+ _host=_host,
4282
+ _request_auth=_request_auth
4283
+ )
4284
+
4285
+
4286
+
4287
+ @validate_call
4288
+ async def set_virtual_controller_mounting(
4289
+ self,
4290
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
4291
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
4292
+ motion_group: Annotated[StrictStr, Field(description="The motion-group identifier.")],
4293
+ coordinate_system: CoordinateSystem,
4294
+ _request_timeout: Union[
4295
+ None,
4296
+ Annotated[StrictFloat, Field(gt=0)],
4297
+ Tuple[
4298
+ Annotated[StrictFloat, Field(gt=0)],
4299
+ Annotated[StrictFloat, Field(gt=0)]
4300
+ ]
4301
+ ] = None,
4302
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
4303
+ _content_type: Optional[StrictStr] = None,
4304
+ _headers: Optional[Dict[StrictStr, Any]] = None,
4305
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
4306
+ ) -> CoordinateSystem:
4307
+ """Set Mounting
4308
+
4309
+ Sets the motion group mounting by specifying a coordinate system. The motion group will be based on the coordinate system's origin. The coordinate system defines a transformation offset, which consists of: - A unique identifier - A user-facing name - An offset in another coordinate system, referenced by the unique identifier of the reference coordinate system. <!-- theme: info --> > #### Changing the mounting configuration is considered a setup change > > When the mounting is set to a new coordinate system, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or not reflect the new mounting immediately. > - Motion group state and coordinate system alignment may not be immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the updated mounting may not yet be visible.
4310
+
4311
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
4312
+ :type cell: str
4313
+ :param controller: Unique identifier to address a controller in the cell. (required)
4314
+ :type controller: str
4315
+ :param motion_group: The motion-group identifier. (required)
4316
+ :type motion_group: str
4317
+ :param coordinate_system: (required)
4318
+ :type coordinate_system: CoordinateSystem
4319
+ :param _request_timeout: timeout setting for this request. If one
4320
+ number provided, it will be total request
4321
+ timeout. It can also be a pair (tuple) of
4322
+ (connection, read) timeouts.
4323
+ :type _request_timeout: int, tuple(int, int), optional
4324
+ :param _request_auth: set to override the auth_settings for an a single
4325
+ request; this effectively ignores the
4326
+ authentication in the spec for a single request.
4327
+ :type _request_auth: dict, optional
4328
+ :param _content_type: force content-type for the request.
4329
+ :type _content_type: str, Optional
4330
+ :param _headers: set to override the headers for a single
4331
+ request; this effectively ignores the headers
4332
+ in the spec for a single request.
4333
+ :type _headers: dict, optional
4334
+ :param _host_index: set to override the host_index for a single
4335
+ request; this effectively ignores the host_index
4336
+ in the spec for a single request.
4337
+ :type _host_index: int, optional
4338
+ :return: Returns the result object.
4339
+ """ # noqa: E501
4340
+
4341
+ _param = self._set_virtual_controller_mounting_serialize(
4342
+ cell=cell,
4343
+ controller=controller,
4344
+ motion_group=motion_group,
4345
+ coordinate_system=coordinate_system,
4346
+ _request_auth=_request_auth,
4347
+ _content_type=_content_type,
4348
+ _headers=_headers,
4349
+ _host_index=_host_index
4350
+ )
4351
+
4352
+ _response_types_map: Dict[str, Optional[str]] = {
4353
+ '200': "CoordinateSystem",
4354
+ '400': "Error",
4355
+ '404': "Error",
4356
+ }
4357
+
4358
+ response_data = await self.api_client.call_api(
4359
+ *_param,
4360
+ _request_timeout=_request_timeout
4361
+ )
4362
+ await response_data.read()
4363
+ return self.api_client.response_deserialize(
4364
+ response_data=response_data,
4365
+ response_types_map=_response_types_map,
4366
+ ).data
4367
+
4368
+
4369
+ @validate_call
4370
+ async def set_virtual_controller_mounting_with_http_info(
4371
+ self,
4372
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
4373
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
4374
+ motion_group: Annotated[StrictStr, Field(description="The motion-group identifier.")],
4375
+ coordinate_system: CoordinateSystem,
4376
+ _request_timeout: Union[
4377
+ None,
4378
+ Annotated[StrictFloat, Field(gt=0)],
4379
+ Tuple[
4380
+ Annotated[StrictFloat, Field(gt=0)],
4381
+ Annotated[StrictFloat, Field(gt=0)]
4382
+ ]
4383
+ ] = None,
4384
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
4385
+ _content_type: Optional[StrictStr] = None,
4386
+ _headers: Optional[Dict[StrictStr, Any]] = None,
4387
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
4388
+ ) -> ApiResponse[CoordinateSystem]:
4389
+ """Set Mounting
4390
+
4391
+ Sets the motion group mounting by specifying a coordinate system. The motion group will be based on the coordinate system's origin. The coordinate system defines a transformation offset, which consists of: - A unique identifier - A user-facing name - An offset in another coordinate system, referenced by the unique identifier of the reference coordinate system. <!-- theme: info --> > #### Changing the mounting configuration is considered a setup change > > When the mounting is set to a new coordinate system, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or not reflect the new mounting immediately. > - Motion group state and coordinate system alignment may not be immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the updated mounting may not yet be visible.
4392
+
4393
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
4394
+ :type cell: str
4395
+ :param controller: Unique identifier to address a controller in the cell. (required)
4396
+ :type controller: str
4397
+ :param motion_group: The motion-group identifier. (required)
4398
+ :type motion_group: str
4399
+ :param coordinate_system: (required)
4400
+ :type coordinate_system: CoordinateSystem
4401
+ :param _request_timeout: timeout setting for this request. If one
4402
+ number provided, it will be total request
4403
+ timeout. It can also be a pair (tuple) of
4404
+ (connection, read) timeouts.
4405
+ :type _request_timeout: int, tuple(int, int), optional
4406
+ :param _request_auth: set to override the auth_settings for an a single
4407
+ request; this effectively ignores the
4408
+ authentication in the spec for a single request.
4409
+ :type _request_auth: dict, optional
4410
+ :param _content_type: force content-type for the request.
4411
+ :type _content_type: str, Optional
4412
+ :param _headers: set to override the headers for a single
4413
+ request; this effectively ignores the headers
4414
+ in the spec for a single request.
4415
+ :type _headers: dict, optional
4416
+ :param _host_index: set to override the host_index for a single
4417
+ request; this effectively ignores the host_index
4418
+ in the spec for a single request.
4419
+ :type _host_index: int, optional
4420
+ :return: Returns the result object.
4421
+ """ # noqa: E501
4422
+
4423
+ _param = self._set_virtual_controller_mounting_serialize(
4424
+ cell=cell,
4425
+ controller=controller,
4426
+ motion_group=motion_group,
4427
+ coordinate_system=coordinate_system,
4428
+ _request_auth=_request_auth,
4429
+ _content_type=_content_type,
4430
+ _headers=_headers,
4431
+ _host_index=_host_index
4432
+ )
4433
+
4434
+ _response_types_map: Dict[str, Optional[str]] = {
4435
+ '200': "CoordinateSystem",
4436
+ '400': "Error",
4437
+ '404': "Error",
4438
+ }
4439
+
4440
+ response_data = await self.api_client.call_api(
4441
+ *_param,
4442
+ _request_timeout=_request_timeout
4443
+ )
4444
+ await response_data.read()
4445
+ return self.api_client.response_deserialize(
4446
+ response_data=response_data,
4447
+ response_types_map=_response_types_map,
4448
+ )
4449
+
4450
+
4451
+ @validate_call
4452
+ async def set_virtual_controller_mounting_without_preload_content(
4453
+ self,
4454
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
4455
+ controller: Annotated[StrictStr, Field(description="Unique identifier to address a controller in the cell.")],
4456
+ motion_group: Annotated[StrictStr, Field(description="The motion-group identifier.")],
4457
+ coordinate_system: CoordinateSystem,
4458
+ _request_timeout: Union[
4459
+ None,
4460
+ Annotated[StrictFloat, Field(gt=0)],
4461
+ Tuple[
4462
+ Annotated[StrictFloat, Field(gt=0)],
4463
+ Annotated[StrictFloat, Field(gt=0)]
4464
+ ]
4465
+ ] = None,
4466
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
4467
+ _content_type: Optional[StrictStr] = None,
4468
+ _headers: Optional[Dict[StrictStr, Any]] = None,
4469
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
4470
+ ) -> RESTResponseType:
4471
+ """Set Mounting
4472
+
4473
+ Sets the motion group mounting by specifying a coordinate system. The motion group will be based on the coordinate system's origin. The coordinate system defines a transformation offset, which consists of: - A unique identifier - A user-facing name - An offset in another coordinate system, referenced by the unique identifier of the reference coordinate system. <!-- theme: info --> > #### Changing the mounting configuration is considered a setup change > > When the mounting is set to a new coordinate system, the **virtual robot is restarted** to apply the new configuration. > > During this restart: > - Robot visualization can temporarily disappear or not reflect the new mounting immediately. > - Motion group state and coordinate system alignment may not be immediately visible in visualizations. > - All connections to virtual robot are closed and re-established, which introduces a short delay before the system is fully operational again. > > The API call itself does **not wait until the restart and re-synchronization are complete**. > A successful response indicates that the request was accepted, but the updated mounting may not yet be visible.
4474
+
4475
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
4476
+ :type cell: str
4477
+ :param controller: Unique identifier to address a controller in the cell. (required)
4478
+ :type controller: str
4479
+ :param motion_group: The motion-group identifier. (required)
4480
+ :type motion_group: str
4481
+ :param coordinate_system: (required)
4482
+ :type coordinate_system: CoordinateSystem
4483
+ :param _request_timeout: timeout setting for this request. If one
4484
+ number provided, it will be total request
4485
+ timeout. It can also be a pair (tuple) of
4486
+ (connection, read) timeouts.
4487
+ :type _request_timeout: int, tuple(int, int), optional
4488
+ :param _request_auth: set to override the auth_settings for an a single
4489
+ request; this effectively ignores the
4490
+ authentication in the spec for a single request.
4491
+ :type _request_auth: dict, optional
4492
+ :param _content_type: force content-type for the request.
4493
+ :type _content_type: str, Optional
4494
+ :param _headers: set to override the headers for a single
4495
+ request; this effectively ignores the headers
4496
+ in the spec for a single request.
4497
+ :type _headers: dict, optional
4498
+ :param _host_index: set to override the host_index for a single
4499
+ request; this effectively ignores the host_index
4500
+ in the spec for a single request.
4501
+ :type _host_index: int, optional
4502
+ :return: Returns the result object.
4503
+ """ # noqa: E501
4504
+
4505
+ _param = self._set_virtual_controller_mounting_serialize(
4506
+ cell=cell,
4507
+ controller=controller,
4508
+ motion_group=motion_group,
4509
+ coordinate_system=coordinate_system,
4510
+ _request_auth=_request_auth,
4511
+ _content_type=_content_type,
4512
+ _headers=_headers,
4513
+ _host_index=_host_index
4514
+ )
4515
+
4516
+ _response_types_map: Dict[str, Optional[str]] = {
4517
+ '200': "CoordinateSystem",
4518
+ '400': "Error",
4519
+ '404': "Error",
4520
+ }
4521
+
4522
+ response_data = await self.api_client.call_api(
4523
+ *_param,
4524
+ _request_timeout=_request_timeout
4525
+ )
4526
+ return response_data.response
4527
+
4528
+
4529
+ def _set_virtual_controller_mounting_serialize(
4530
+ self,
4531
+ cell,
4532
+ controller,
4533
+ motion_group,
4534
+ coordinate_system,
4535
+ _request_auth,
4536
+ _content_type,
4537
+ _headers,
4538
+ _host_index,
4539
+ ) -> RequestSerialized:
4540
+
4541
+ _host = None
4542
+
4543
+ _collection_formats: Dict[str, str] = {
4544
+ }
4545
+
4546
+ _path_params: Dict[str, str] = {}
4547
+ _query_params: List[Tuple[str, str]] = []
4548
+ _header_params: Dict[str, Optional[str]] = _headers or {}
4549
+ _form_params: List[Tuple[str, str]] = []
4550
+ _files: Dict[str, Union[str, bytes]] = {}
4551
+ _body_params: Optional[bytes] = None
4552
+
4553
+ # process the path parameters
4554
+ if cell is not None:
4555
+ _path_params['cell'] = cell
4556
+ if controller is not None:
4557
+ _path_params['controller'] = controller
4558
+ if motion_group is not None:
4559
+ _path_params['motion-group'] = motion_group
4560
+ # process the query parameters
4561
+ # process the header parameters
4562
+ # process the form parameters
4563
+ # process the body parameter
4564
+ if coordinate_system is not None:
4565
+ _body_params = coordinate_system
4566
+
4567
+
4568
+ # set the HTTP header `Accept`
4569
+ _header_params['Accept'] = self.api_client.select_header_accept(
4570
+ [
4571
+ 'application/json'
4572
+ ]
4573
+ )
4574
+
4575
+ # set the HTTP header `Content-Type`
4576
+ if _content_type:
4577
+ _header_params['Content-Type'] = _content_type
4578
+ else:
4579
+ _default_content_type = (
4580
+ self.api_client.select_header_content_type(
4581
+ [
4582
+ 'application/json'
4583
+ ]
4584
+ )
4585
+ )
4586
+ if _default_content_type is not None:
4587
+ _header_params['Content-Type'] = _default_content_type
4588
+
4589
+ # authentication setting
4590
+ _auth_settings: List[str] = [
4591
+ 'BasicAuth',
4592
+ 'BearerAuth'
4593
+ ]
4594
+
4595
+ return self.api_client.param_serialize(
4596
+ method='PUT',
4597
+ resource_path='/cells/{cell}/virtual-controllers/{controller}/motion-groups/{motion-group}/mounting',
4598
+ path_params=_path_params,
4599
+ query_params=_query_params,
4600
+ header_params=_header_params,
4601
+ body=_body_params,
4602
+ post_params=_form_params,
4603
+ files=_files,
4604
+ auth_settings=_auth_settings,
4605
+ collection_formats=_collection_formats,
4606
+ _host=_host,
4607
+ _request_auth=_request_auth
4608
+ )
4609
+
4610
+