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