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