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