wandelbots_api_client 26.3.0.dev29__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 (693) 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 +555 -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 +811 -0
  352. wandelbots_api_client/v2/api/version_api.py +240 -0
  353. wandelbots_api_client/v2/api/virtual_controller_api.py +4534 -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 +317 -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_setup.py +130 -0
  425. wandelbots_api_client/v2/models/comparator.py +38 -0
  426. wandelbots_api_client/v2/models/configuration_archive_status.py +197 -0
  427. wandelbots_api_client/v2/models/configuration_archive_status_creating.py +94 -0
  428. wandelbots_api_client/v2/models/configuration_archive_status_error.py +91 -0
  429. wandelbots_api_client/v2/models/configuration_archive_status_success.py +90 -0
  430. wandelbots_api_client/v2/models/configuration_resource.py +104 -0
  431. wandelbots_api_client/v2/models/container_environment_inner.py +84 -0
  432. wandelbots_api_client/v2/models/container_image.py +110 -0
  433. wandelbots_api_client/v2/models/container_image_secrets_inner.py +83 -0
  434. wandelbots_api_client/v2/models/container_resources.py +87 -0
  435. wandelbots_api_client/v2/models/container_storage.py +94 -0
  436. wandelbots_api_client/v2/models/controller_description.py +97 -0
  437. wandelbots_api_client/v2/models/convex_hull.py +94 -0
  438. wandelbots_api_client/v2/models/coordinate_system.py +115 -0
  439. wandelbots_api_client/v2/models/coordinate_system_data.py +106 -0
  440. wandelbots_api_client/v2/models/cubic_spline_parameter.py +90 -0
  441. wandelbots_api_client/v2/models/cycle_time.py +86 -0
  442. wandelbots_api_client/v2/models/cylinder.py +92 -0
  443. wandelbots_api_client/v2/models/dh_parameter.py +98 -0
  444. wandelbots_api_client/v2/models/direction.py +34 -0
  445. wandelbots_api_client/v2/models/error.py +84 -0
  446. wandelbots_api_client/v2/models/error_invalid_joint_count.py +98 -0
  447. wandelbots_api_client/v2/models/error_joint_limit_exceeded.py +103 -0
  448. wandelbots_api_client/v2/models/error_joint_position_collision.py +106 -0
  449. wandelbots_api_client/v2/models/error_max_iterations_exceeded.py +91 -0
  450. wandelbots_api_client/v2/models/execute.py +95 -0
  451. wandelbots_api_client/v2/models/execute_details.py +164 -0
  452. wandelbots_api_client/v2/models/execute_jogging_request.py +204 -0
  453. wandelbots_api_client/v2/models/execute_jogging_response.py +246 -0
  454. wandelbots_api_client/v2/models/execute_trajectory_request.py +209 -0
  455. wandelbots_api_client/v2/models/execute_trajectory_response.py +246 -0
  456. wandelbots_api_client/v2/models/external_joint_stream_datapoint.py +93 -0
  457. wandelbots_api_client/v2/models/external_joint_stream_request.py +97 -0
  458. wandelbots_api_client/v2/models/fanuc_controller.py +91 -0
  459. wandelbots_api_client/v2/models/feedback_collision.py +112 -0
  460. wandelbots_api_client/v2/models/feedback_joint_limit_exceeded.py +99 -0
  461. wandelbots_api_client/v2/models/feedback_no_solution_in_current_configuration.py +100 -0
  462. wandelbots_api_client/v2/models/feedback_out_of_workspace.py +100 -0
  463. wandelbots_api_client/v2/models/feedback_singularity.py +99 -0
  464. wandelbots_api_client/v2/models/flag.py +83 -0
  465. wandelbots_api_client/v2/models/flange_payload.py +98 -0
  466. wandelbots_api_client/v2/models/float_value.py +91 -0
  467. wandelbots_api_client/v2/models/forward_kinematics422_response.py +97 -0
  468. wandelbots_api_client/v2/models/forward_kinematics_request.py +104 -0
  469. wandelbots_api_client/v2/models/forward_kinematics_response.py +93 -0
  470. wandelbots_api_client/v2/models/forward_kinematics_validation_error.py +107 -0
  471. wandelbots_api_client/v2/models/get_trajectory_response.py +97 -0
  472. wandelbots_api_client/v2/models/http_validation_error.py +93 -0
  473. wandelbots_api_client/v2/models/image_credentials.py +85 -0
  474. wandelbots_api_client/v2/models/inconsistent_trajectory_size_error.py +106 -0
  475. wandelbots_api_client/v2/models/inconsistent_trajectory_size_error_inconsistent_trajectory_size.py +91 -0
  476. wandelbots_api_client/v2/models/initialize_jogging_request.py +95 -0
  477. wandelbots_api_client/v2/models/initialize_jogging_response.py +91 -0
  478. wandelbots_api_client/v2/models/initialize_movement_request.py +112 -0
  479. wandelbots_api_client/v2/models/initialize_movement_request_trajectory.py +164 -0
  480. wandelbots_api_client/v2/models/initialize_movement_response.py +107 -0
  481. wandelbots_api_client/v2/models/integer_value.py +91 -0
  482. wandelbots_api_client/v2/models/invalid_dof_error.py +100 -0
  483. wandelbots_api_client/v2/models/invalid_dof_error_invalid_dof.py +86 -0
  484. wandelbots_api_client/v2/models/inverse_kinematics422_response.py +97 -0
  485. wandelbots_api_client/v2/models/inverse_kinematics_request.py +152 -0
  486. wandelbots_api_client/v2/models/inverse_kinematics_response.py +83 -0
  487. wandelbots_api_client/v2/models/inverse_kinematics_validation_error.py +107 -0
  488. wandelbots_api_client/v2/models/inverse_kinematics_validation_error_all_of_data.py +164 -0
  489. wandelbots_api_client/v2/models/io_boolean_value.py +92 -0
  490. wandelbots_api_client/v2/models/io_boundary.py +183 -0
  491. wandelbots_api_client/v2/models/io_description.py +116 -0
  492. wandelbots_api_client/v2/models/io_direction.py +34 -0
  493. wandelbots_api_client/v2/models/io_float_value.py +92 -0
  494. wandelbots_api_client/v2/models/io_integer_value.py +94 -0
  495. wandelbots_api_client/v2/models/io_origin.py +34 -0
  496. wandelbots_api_client/v2/models/io_value.py +183 -0
  497. wandelbots_api_client/v2/models/io_value_type.py +35 -0
  498. wandelbots_api_client/v2/models/jogging_details.py +97 -0
  499. wandelbots_api_client/v2/models/jogging_details_state.py +275 -0
  500. wandelbots_api_client/v2/models/jogging_paused_by_user.py +90 -0
  501. wandelbots_api_client/v2/models/jogging_paused_near_collision.py +91 -0
  502. wandelbots_api_client/v2/models/jogging_paused_near_joint_limit.py +92 -0
  503. wandelbots_api_client/v2/models/jogging_paused_near_singularity.py +91 -0
  504. wandelbots_api_client/v2/models/jogging_paused_on_io.py +90 -0
  505. wandelbots_api_client/v2/models/jogging_running.py +90 -0
  506. wandelbots_api_client/v2/models/joint_limit_exceeded_error.py +102 -0
  507. wandelbots_api_client/v2/models/joint_limits.py +101 -0
  508. wandelbots_api_client/v2/models/joint_trajectory.py +89 -0
  509. wandelbots_api_client/v2/models/joint_type_enum.py +34 -0
  510. wandelbots_api_client/v2/models/joint_velocity_request.py +91 -0
  511. wandelbots_api_client/v2/models/joint_velocity_response.py +91 -0
  512. wandelbots_api_client/v2/models/kinematic_model.py +118 -0
  513. wandelbots_api_client/v2/models/kuka_controller.py +106 -0
  514. wandelbots_api_client/v2/models/kuka_controller_rsi_server.py +89 -0
  515. wandelbots_api_client/v2/models/license.py +121 -0
  516. wandelbots_api_client/v2/models/license_status.py +85 -0
  517. wandelbots_api_client/v2/models/license_status_enum.py +37 -0
  518. wandelbots_api_client/v2/models/limit_range.py +84 -0
  519. wandelbots_api_client/v2/models/limit_set.py +118 -0
  520. wandelbots_api_client/v2/models/limits_override.py +136 -0
  521. wandelbots_api_client/v2/models/list_trajectories_response.py +86 -0
  522. wandelbots_api_client/v2/models/location1_inner.py +153 -0
  523. wandelbots_api_client/v2/models/manufacturer.py +37 -0
  524. wandelbots_api_client/v2/models/merge_trajectories422_response.py +97 -0
  525. wandelbots_api_client/v2/models/merge_trajectories_error.py +97 -0
  526. wandelbots_api_client/v2/models/merge_trajectories_error_error_feedback.py +209 -0
  527. wandelbots_api_client/v2/models/merge_trajectories_request.py +107 -0
  528. wandelbots_api_client/v2/models/merge_trajectories_response.py +109 -0
  529. wandelbots_api_client/v2/models/merge_trajectories_response_feedback_inner.py +147 -0
  530. wandelbots_api_client/v2/models/merge_trajectories_segment.py +126 -0
  531. wandelbots_api_client/v2/models/merge_trajectories_validation_error.py +109 -0
  532. wandelbots_api_client/v2/models/midpoint_insertion_algorithm.py +102 -0
  533. wandelbots_api_client/v2/models/modbus_io.py +109 -0
  534. wandelbots_api_client/v2/models/modbus_io_area.py +37 -0
  535. wandelbots_api_client/v2/models/modbus_io_byte_order.py +37 -0
  536. wandelbots_api_client/v2/models/modbus_io_data.py +105 -0
  537. wandelbots_api_client/v2/models/modbus_io_type_enum.py +36 -0
  538. wandelbots_api_client/v2/models/motion_command.py +106 -0
  539. wandelbots_api_client/v2/models/motion_command_blending.py +164 -0
  540. wandelbots_api_client/v2/models/motion_command_path.py +221 -0
  541. wandelbots_api_client/v2/models/motion_group_description.py +235 -0
  542. wandelbots_api_client/v2/models/motion_group_from_json.py +100 -0
  543. wandelbots_api_client/v2/models/motion_group_from_type.py +96 -0
  544. wandelbots_api_client/v2/models/motion_group_info.py +90 -0
  545. wandelbots_api_client/v2/models/motion_group_joints.py +97 -0
  546. wandelbots_api_client/v2/models/motion_group_setup.py +140 -0
  547. wandelbots_api_client/v2/models/motion_group_state.py +182 -0
  548. wandelbots_api_client/v2/models/motion_group_state_joint_limit_reached.py +83 -0
  549. wandelbots_api_client/v2/models/movement_error_response.py +91 -0
  550. wandelbots_api_client/v2/models/nan_value_error.py +100 -0
  551. wandelbots_api_client/v2/models/nan_value_error_nan_value.py +85 -0
  552. wandelbots_api_client/v2/models/network_device.py +85 -0
  553. wandelbots_api_client/v2/models/network_interface.py +86 -0
  554. wandelbots_api_client/v2/models/network_state.py +125 -0
  555. wandelbots_api_client/v2/models/op_mode.py +84 -0
  556. wandelbots_api_client/v2/models/operating_state.py +34 -0
  557. wandelbots_api_client/v2/models/operation_limits.py +106 -0
  558. wandelbots_api_client/v2/models/operation_mode.py +42 -0
  559. wandelbots_api_client/v2/models/orientation_type.py +58 -0
  560. wandelbots_api_client/v2/models/path_cartesian_ptp.py +100 -0
  561. wandelbots_api_client/v2/models/path_circle.py +105 -0
  562. wandelbots_api_client/v2/models/path_cubic_spline.py +106 -0
  563. wandelbots_api_client/v2/models/path_joint_ptp.py +93 -0
  564. wandelbots_api_client/v2/models/path_line.py +100 -0
  565. wandelbots_api_client/v2/models/pause_jogging_request.py +90 -0
  566. wandelbots_api_client/v2/models/pause_jogging_response.py +91 -0
  567. wandelbots_api_client/v2/models/pause_movement_request.py +90 -0
  568. wandelbots_api_client/v2/models/pause_movement_response.py +91 -0
  569. wandelbots_api_client/v2/models/pause_on_io.py +99 -0
  570. wandelbots_api_client/v2/models/payload.py +98 -0
  571. wandelbots_api_client/v2/models/plan422_response.py +93 -0
  572. wandelbots_api_client/v2/models/plan_collision_free_failed_response.py +93 -0
  573. wandelbots_api_client/v2/models/plan_collision_free_request.py +109 -0
  574. wandelbots_api_client/v2/models/plan_collision_free_response.py +89 -0
  575. wandelbots_api_client/v2/models/plan_collision_free_response_response.py +147 -0
  576. wandelbots_api_client/v2/models/plan_trajectory_failed_response.py +105 -0
  577. wandelbots_api_client/v2/models/plan_trajectory_failed_response_error_feedback.py +252 -0
  578. wandelbots_api_client/v2/models/plan_trajectory_request.py +113 -0
  579. wandelbots_api_client/v2/models/plan_trajectory_response.py +89 -0
  580. wandelbots_api_client/v2/models/plan_trajectory_response_response.py +147 -0
  581. wandelbots_api_client/v2/models/plan_validation_error.py +107 -0
  582. wandelbots_api_client/v2/models/plan_validation_error_all_of_data.py +183 -0
  583. wandelbots_api_client/v2/models/plane.py +90 -0
  584. wandelbots_api_client/v2/models/playback_speed_request.py +96 -0
  585. wandelbots_api_client/v2/models/playback_speed_response.py +91 -0
  586. wandelbots_api_client/v2/models/pose.py +90 -0
  587. wandelbots_api_client/v2/models/profinet_description.py +112 -0
  588. wandelbots_api_client/v2/models/profinet_input_output_config.py +98 -0
  589. wandelbots_api_client/v2/models/profinet_io.py +109 -0
  590. wandelbots_api_client/v2/models/profinet_io_data.py +105 -0
  591. wandelbots_api_client/v2/models/profinet_io_direction.py +35 -0
  592. wandelbots_api_client/v2/models/profinet_io_type_enum.py +42 -0
  593. wandelbots_api_client/v2/models/profinet_slot_description.py +106 -0
  594. wandelbots_api_client/v2/models/profinet_sub_slot_description.py +92 -0
  595. wandelbots_api_client/v2/models/program.py +105 -0
  596. wandelbots_api_client/v2/models/program_run.py +124 -0
  597. wandelbots_api_client/v2/models/program_run_state.py +37 -0
  598. wandelbots_api_client/v2/models/program_start_request.py +83 -0
  599. wandelbots_api_client/v2/models/rectangle.py +92 -0
  600. wandelbots_api_client/v2/models/rectangular_capsule.py +100 -0
  601. wandelbots_api_client/v2/models/release_channel.py +34 -0
  602. wandelbots_api_client/v2/models/robot_controller.py +105 -0
  603. wandelbots_api_client/v2/models/robot_controller_configuration.py +262 -0
  604. wandelbots_api_client/v2/models/robot_controller_configuration_request.py +99 -0
  605. wandelbots_api_client/v2/models/robot_controller_state.py +138 -0
  606. wandelbots_api_client/v2/models/robot_system_mode.py +37 -0
  607. wandelbots_api_client/v2/models/robot_tcp.py +110 -0
  608. wandelbots_api_client/v2/models/robot_tcp_data.py +108 -0
  609. wandelbots_api_client/v2/models/rrt_connect_algorithm.py +127 -0
  610. wandelbots_api_client/v2/models/safety_state_type.py +48 -0
  611. wandelbots_api_client/v2/models/service_group.py +36 -0
  612. wandelbots_api_client/v2/models/service_status.py +96 -0
  613. wandelbots_api_client/v2/models/service_status_phase.py +46 -0
  614. wandelbots_api_client/v2/models/service_status_response.py +100 -0
  615. wandelbots_api_client/v2/models/service_status_severity.py +35 -0
  616. wandelbots_api_client/v2/models/service_status_status.py +87 -0
  617. wandelbots_api_client/v2/models/set_io.py +96 -0
  618. wandelbots_api_client/v2/models/settable_robot_system_mode.py +36 -0
  619. wandelbots_api_client/v2/models/singularity_type_enum.py +35 -0
  620. wandelbots_api_client/v2/models/sphere.py +91 -0
  621. wandelbots_api_client/v2/models/start_movement_request.py +133 -0
  622. wandelbots_api_client/v2/models/start_movement_response.py +91 -0
  623. wandelbots_api_client/v2/models/start_on_io.py +99 -0
  624. wandelbots_api_client/v2/models/stream_io_values_response.py +103 -0
  625. wandelbots_api_client/v2/models/tcp_offset.py +88 -0
  626. wandelbots_api_client/v2/models/tcp_required_error.py +96 -0
  627. wandelbots_api_client/v2/models/tcp_velocity_request.py +110 -0
  628. wandelbots_api_client/v2/models/tcp_velocity_response.py +91 -0
  629. wandelbots_api_client/v2/models/torque_exceeded_error.py +102 -0
  630. wandelbots_api_client/v2/models/torque_exceeded_error_torque_exceeded.py +86 -0
  631. wandelbots_api_client/v2/models/trajectory_data.py +106 -0
  632. wandelbots_api_client/v2/models/trajectory_details.py +106 -0
  633. wandelbots_api_client/v2/models/trajectory_details_state.py +239 -0
  634. wandelbots_api_client/v2/models/trajectory_ended.py +90 -0
  635. wandelbots_api_client/v2/models/trajectory_id.py +93 -0
  636. wandelbots_api_client/v2/models/trajectory_paused_by_user.py +90 -0
  637. wandelbots_api_client/v2/models/trajectory_paused_on_io.py +90 -0
  638. wandelbots_api_client/v2/models/trajectory_running.py +94 -0
  639. wandelbots_api_client/v2/models/trajectory_section.py +84 -0
  640. wandelbots_api_client/v2/models/trajectory_wait_for_io.py +90 -0
  641. wandelbots_api_client/v2/models/unit_type.py +42 -0
  642. wandelbots_api_client/v2/models/universalrobots_controller.py +91 -0
  643. wandelbots_api_client/v2/models/update_cell_version_request.py +84 -0
  644. wandelbots_api_client/v2/models/update_nova_version_request.py +90 -0
  645. wandelbots_api_client/v2/models/validation_error.py +101 -0
  646. wandelbots_api_client/v2/models/validation_error2.py +85 -0
  647. wandelbots_api_client/v2/models/virtual_controller.py +113 -0
  648. wandelbots_api_client/v2/models/virtual_robot_configuration.py +88 -0
  649. wandelbots_api_client/v2/models/wait_for_io_event_request.py +93 -0
  650. wandelbots_api_client/v2/models/yaskawa_controller.py +91 -0
  651. wandelbots_api_client/v2/models/zod_validation_error.py +87 -0
  652. wandelbots_api_client/v2/models/zod_validation_error_error.py +108 -0
  653. wandelbots_api_client/v2/models/zod_validation_error_error_details_inner.py +101 -0
  654. wandelbots_api_client/v2/models/zod_validation_error_error_details_inner_path_inner.py +153 -0
  655. wandelbots_api_client/v2/py.typed +0 -0
  656. wandelbots_api_client/v2/rest.py +188 -0
  657. wandelbots_api_client/v2_pydantic/__init__.py +49 -0
  658. wandelbots_api_client/v2_pydantic/api/__init__.py +55 -0
  659. wandelbots_api_client/v2_pydantic/api/application_api.py +1532 -0
  660. wandelbots_api_client/v2_pydantic/api/bus_inputs_outputs_api.py +4534 -0
  661. wandelbots_api_client/v2_pydantic/api/cell_api.py +2163 -0
  662. wandelbots_api_client/v2_pydantic/api/controller_api.py +3238 -0
  663. wandelbots_api_client/v2_pydantic/api/controller_inputs_outputs_api.py +1244 -0
  664. wandelbots_api_client/v2_pydantic/api/jogging_api.py +113 -0
  665. wandelbots_api_client/v2_pydantic/api/kinematics_api.py +555 -0
  666. wandelbots_api_client/v2_pydantic/api/license_api.py +877 -0
  667. wandelbots_api_client/v2_pydantic/api/motion_group_api.py +689 -0
  668. wandelbots_api_client/v2_pydantic/api/motion_group_models_api.py +1222 -0
  669. wandelbots_api_client/v2_pydantic/api/nova_cloud_api.py +760 -0
  670. wandelbots_api_client/v2_pydantic/api/program_api.py +988 -0
  671. wandelbots_api_client/v2_pydantic/api/robot_configurations_api.py +485 -0
  672. wandelbots_api_client/v2_pydantic/api/store_collision_components_api.py +3479 -0
  673. wandelbots_api_client/v2_pydantic/api/store_collision_setups_api.py +1169 -0
  674. wandelbots_api_client/v2_pydantic/api/store_object_api.py +1414 -0
  675. wandelbots_api_client/v2_pydantic/api/system_api.py +2696 -0
  676. wandelbots_api_client/v2_pydantic/api/trajectory_caching_api.py +1339 -0
  677. wandelbots_api_client/v2_pydantic/api/trajectory_execution_api.py +115 -0
  678. wandelbots_api_client/v2_pydantic/api/trajectory_planning_api.py +811 -0
  679. wandelbots_api_client/v2_pydantic/api/version_api.py +240 -0
  680. wandelbots_api_client/v2_pydantic/api/virtual_controller_api.py +4534 -0
  681. wandelbots_api_client/v2_pydantic/api/virtual_controller_behavior_api.py +863 -0
  682. wandelbots_api_client/v2_pydantic/api/virtual_controller_inputs_outputs_api.py +895 -0
  683. wandelbots_api_client/v2_pydantic/api_client.py +692 -0
  684. wandelbots_api_client/v2_pydantic/api_response.py +20 -0
  685. wandelbots_api_client/v2_pydantic/configuration.py +579 -0
  686. wandelbots_api_client/v2_pydantic/exceptions.py +216 -0
  687. wandelbots_api_client/v2_pydantic/models/__init__.py +642 -0
  688. wandelbots_api_client/v2_pydantic/models/models.py +5090 -0
  689. wandelbots_api_client/v2_pydantic/py.typed +0 -0
  690. wandelbots_api_client/v2_pydantic/rest.py +188 -0
  691. wandelbots_api_client-26.3.0.dev29.dist-info/METADATA +241 -0
  692. wandelbots_api_client-26.3.0.dev29.dist-info/RECORD +693 -0
  693. wandelbots_api_client-26.3.0.dev29.dist-info/WHEEL +4 -0
@@ -0,0 +1,685 @@
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: 1.4.0 dev
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+ from furl import furl
15
+ import json
16
+ import humps
17
+ import re
18
+ import warnings
19
+ import websockets
20
+ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
21
+ from typing import Any, AsyncGenerator, Callable, Dict, List, Optional, Tuple, Union
22
+ from typing_extensions import Annotated
23
+ from urllib.parse import quote
24
+
25
+ from pydantic import Field, StrictStr
26
+ from typing_extensions import Annotated
27
+ from wandelbots_api_client.models.direction_jogging_request import DirectionJoggingRequest
28
+ from wandelbots_api_client.models.jogging_response import JoggingResponse
29
+ from wandelbots_api_client.models.jogging_service_capabilities import JoggingServiceCapabilities
30
+ from wandelbots_api_client.models.joint_jogging_request import JointJoggingRequest
31
+
32
+ from wandelbots_api_client.api_client import ApiClient, RequestSerialized
33
+ from wandelbots_api_client.api_response import ApiResponse
34
+ from wandelbots_api_client.rest import RESTResponseType
35
+
36
+
37
+ class MotionGroupJoggingApi:
38
+ """NOTE: This class is auto generated by OpenAPI Generator
39
+ Ref: https://openapi-generator.tech
40
+
41
+ Do not edit the class manually.
42
+ """
43
+
44
+ def __init__(self, api_client=None) -> None:
45
+ if api_client is None:
46
+ api_client = ApiClient.get_default()
47
+ self.api_client = api_client
48
+
49
+ @validate_call
50
+ async def direction_jogging(
51
+ self,
52
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
53
+ client_request_generator: Callable[[AsyncGenerator[JoggingResponse, None]], AsyncGenerator[DirectionJoggingRequest, None]],
54
+ ) -> None: # noqa: E501
55
+ """Stream Cartesian # noqa: E501
56
+
57
+ **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Move TCP along/around a specified direction vector with a specified velocity via a websocket. The purpose of a direction jogging motion is to move a device in exactly one direction with a specified maximum velocity. The sign of the velocity determines the direction of the movement: Positive [+] or Negative [-]. The velocity is given in [mm/s]. In contrast to a planned motion, a jogging motion can be changed dynamically while the motion group is in motion. Only one single client at a time can jog a particular motion group. If another client tries to jog the same motion group at the same time, the second call will fail. The movement of the motion group will start as soon as: * the motion group is not in motion * the websocket connection is established * the first request has been sent As long as the jogging motion is ongoing, responses will be sent continuously and contain the current state of the motion group. The responses will be sent with the specified rate according to the *response_rate* parameter of the initial websocket request. While in motion, the desired direction and velocity can be changed by sending a new request to the same websocket. The motion and sending of the replies will stop when: * a [stopJogging](#/operations/stopJogging) request was received, processed, and the movement stopped The motion group state will be published in the original command stream until the motion group has stopped * the client cancels the stream (not recommended, because final stopping position will not be returned from the stream) When a physical limit (e.g. workspace boundary) is reached, the motion group will stop moving in the desired direction. The stream, howewer, will continue to send the state until the client cancels the stream or sends the [stopJogging](#/operations/stopJogging) request. Singularities are avoided during a jogging motion. This avoidance can result in deviations from the specified direction. The amount of deviation depends on the robot type and current velocity. These mechanisms can lead to a small deviation from the specified direction. The size of deviation is depending on robot type and current velocity. **Usage example:** 1. Open a websocket via Python and start the jogging motion: ```bash > python -m websockets \"ws://<IP of Wandelbots NOVA API>/api/v1/cells/<your cell id>/motion-groups/move-tcp\" ``` 2. Send the following message to the server to move current TCP two parts up in the z direction and one part in the negative y direction with 0.2 mm/s along the specified direction vector: ```json { \"motion_group\": \"<your motion group id>\", \"position_direction\": { \"y\": -0.5, \"z\": 1 }, \"rotation_direction\": {}, \"position_velocity\": 0.2, \"response_rate\": 500 } ``` The NOVA API clients support jogging motions without the need to manually open a websocket. > **NOTE** > > If the jogging movement is stopped immediately, ensure that > > - A websocket connection is established. Websockets can be kept open until the robot's movement is done as opposed to a simple HTTP GET request. > > - The motion group is not in motion by another jogging movement or a planned movement. > **NOTE** > > If the robot does not move, ensure that > > - The joint velocity values are not zero, > > - The motion group is not in a state where it cannot move further (e.g. joint limit reached). > **NOTE** > > If the specified velocities are higher than the maximum allowed by the robot controller, the motion group will move with the maximum allowed velocities. # noqa: E501
58
+ :param client_request_generator: An AsyncGenerator that yields request of type DirectionJoggingRequest and takes an AsyncGenerator of JoggingResponse as an input argument (required)
59
+ :info All responses from the server will be yielded to client_request_generator through the (AsyncGenerator[JoggingResponse, None])
60
+ :type AsyncGenerator[DirectionJoggingRequest, None]
61
+ """
62
+
63
+ def format_path_parameters(path):
64
+ # Find all substrings that are enclosed in brackets
65
+ bracket_contents = re.findall(r"\{(.*?)\}", path)
66
+
67
+ # For each found substring, alter it to match the python variable name
68
+ for content in bracket_contents:
69
+ content = "{" + content + "}"
70
+ modified_content = humps.dekebabize(content)
71
+ path = path.replace(content, modified_content)
72
+
73
+ return path
74
+
75
+ async def iterate_responses(ws) -> AsyncGenerator[JoggingResponse, None]:
76
+ async for response in ws:
77
+ if "Cancelled on the server side" in response:
78
+ break
79
+ response_data = json.loads(response)
80
+ if "result" not in response_data:
81
+ raise Exception(response_data)
82
+ result_data = response_data["result"]
83
+ if isinstance(result_data, list):
84
+ # Handle list of objects
85
+ import re
86
+
87
+ # Extract the base type from List[BaseType] pattern
88
+ return_type_str = "JoggingResponse"
89
+ if return_type_str.startswith("List[") and return_type_str.endswith("]"):
90
+ base_type_name = return_type_str[5:-1] # Remove "List[" and "]"
91
+ # Get the actual class from the module
92
+ base_type_class = globals().get(base_type_name)
93
+ if base_type_class and hasattr(base_type_class, "from_dict"):
94
+ result_list = [base_type_class.from_dict(item) for item in result_data]
95
+ yield result_list
96
+ else:
97
+ yield result_data
98
+ else:
99
+ yield result_data
100
+ else:
101
+ # Handle single object
102
+ yield JoggingResponse.from_dict(result_data)
103
+
104
+ path = format_path_parameters("/cells/{cell}/motion-groups/move-tcp")
105
+ path = path.format(
106
+ cell=cell,
107
+ )
108
+
109
+ headers = websockets.Headers()
110
+ tmp_host = self.api_client.configuration.host
111
+ if self.api_client.configuration.host.startswith("https://"):
112
+ # Basic Auth
113
+ if self.api_client.configuration.username:
114
+ tmp_host = self.api_client.configuration.host.replace("https://", "")
115
+ tmp_host = f"wss://{self.api_client.configuration.username}:{self.api_client.configuration.password}@{tmp_host}"
116
+
117
+ # OAuth2
118
+ elif self.api_client.configuration.access_token:
119
+ tmp_host = self.api_client.configuration.host.replace("https://", "")
120
+ tmp_host = f"wss://{tmp_host}"
121
+ headers = websockets.Headers([("Authorization", f"Bearer {self.api_client.configuration.access_token}")])
122
+ else:
123
+ tmp_host = tmp_host.replace("http://", "ws://")
124
+
125
+ full_url = furl(tmp_host + path)
126
+
127
+ async with websockets.connect(full_url.url, open_timeout=10, additional_headers=headers) as websocket:
128
+ try:
129
+ async for request in client_request_generator(iterate_responses(websocket)):
130
+ await websocket.send(request.to_json())
131
+ finally:
132
+ await websocket.close()
133
+
134
+ @validate_call
135
+ async def get_jogging_capabilities(
136
+ self,
137
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
138
+ motion_group: Annotated[StrictStr, Field(description="The motion-group id.")],
139
+ _request_timeout: Union[
140
+ None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
141
+ ] = None,
142
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
143
+ _content_type: Optional[StrictStr] = None,
144
+ _headers: Optional[Dict[StrictStr, Any]] = None,
145
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
146
+ ) -> JoggingServiceCapabilities:
147
+ """Capabilities
148
+
149
+ **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Shows the options the motion group offers in regard to jogging. Some motion groups may not provide all information services, e.g. it is physically not possible to move a one-axis-turntable in a linear way.
150
+
151
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
152
+ :type cell: str
153
+ :param motion_group: The motion-group id. (required)
154
+ :type motion_group: str
155
+ :param _request_timeout: timeout setting for this request. If one
156
+ number provided, it will be total request
157
+ timeout. It can also be a pair (tuple) of
158
+ (connection, read) timeouts.
159
+ :type _request_timeout: int, tuple(int, int), optional
160
+ :param _request_auth: set to override the auth_settings for an a single
161
+ request; this effectively ignores the
162
+ authentication in the spec for a single request.
163
+ :type _request_auth: dict, optional
164
+ :param _content_type: force content-type for the request.
165
+ :type _content_type: str, Optional
166
+ :param _headers: set to override the headers for a single
167
+ request; this effectively ignores the headers
168
+ in the spec for a single request.
169
+ :type _headers: dict, optional
170
+ :param _host_index: set to override the host_index for a single
171
+ request; this effectively ignores the host_index
172
+ in the spec for a single request.
173
+ :type _host_index: int, optional
174
+ :return: Returns the result object.
175
+ """ # noqa: E501
176
+
177
+ _param = self._get_jogging_capabilities_serialize(
178
+ cell=cell,
179
+ motion_group=motion_group,
180
+ _request_auth=_request_auth,
181
+ _content_type=_content_type,
182
+ _headers=_headers,
183
+ _host_index=_host_index,
184
+ )
185
+
186
+ _response_types_map: Dict[str, Optional[str]] = {
187
+ "200": "JoggingServiceCapabilities",
188
+ }
189
+ response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
190
+ await response_data.read()
191
+ return self.api_client.response_deserialize(
192
+ response_data=response_data,
193
+ response_types_map=_response_types_map,
194
+ ).data
195
+
196
+ @validate_call
197
+ async def get_jogging_capabilities_with_http_info(
198
+ self,
199
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
200
+ motion_group: Annotated[StrictStr, Field(description="The motion-group id.")],
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
+ ) -> ApiResponse[JoggingServiceCapabilities]:
209
+ """Capabilities
210
+
211
+ **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Shows the options the motion group offers in regard to jogging. Some motion groups may not provide all information services, e.g. it is physically not possible to move a one-axis-turntable in a linear way.
212
+
213
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
214
+ :type cell: str
215
+ :param motion_group: The motion-group id. (required)
216
+ :type motion_group: str
217
+ :param _request_timeout: timeout setting for this request. If one
218
+ number provided, it will be total request
219
+ timeout. It can also be a pair (tuple) of
220
+ (connection, read) timeouts.
221
+ :type _request_timeout: int, tuple(int, int), optional
222
+ :param _request_auth: set to override the auth_settings for an a single
223
+ request; this effectively ignores the
224
+ authentication in the spec for a single request.
225
+ :type _request_auth: dict, optional
226
+ :param _content_type: force content-type for the request.
227
+ :type _content_type: str, Optional
228
+ :param _headers: set to override the headers for a single
229
+ request; this effectively ignores the headers
230
+ in the spec for a single request.
231
+ :type _headers: dict, optional
232
+ :param _host_index: set to override the host_index for a single
233
+ request; this effectively ignores the host_index
234
+ in the spec for a single request.
235
+ :type _host_index: int, optional
236
+ :return: Returns the result object.
237
+ """ # noqa: E501
238
+
239
+ _param = self._get_jogging_capabilities_serialize(
240
+ cell=cell,
241
+ motion_group=motion_group,
242
+ _request_auth=_request_auth,
243
+ _content_type=_content_type,
244
+ _headers=_headers,
245
+ _host_index=_host_index,
246
+ )
247
+
248
+ _response_types_map: Dict[str, Optional[str]] = {
249
+ "200": "JoggingServiceCapabilities",
250
+ }
251
+ response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
252
+ await response_data.read()
253
+ return self.api_client.response_deserialize(
254
+ response_data=response_data,
255
+ response_types_map=_response_types_map,
256
+ )
257
+
258
+ @validate_call
259
+ async def get_jogging_capabilities_without_preload_content(
260
+ self,
261
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
262
+ motion_group: Annotated[StrictStr, Field(description="The motion-group id.")],
263
+ _request_timeout: Union[
264
+ None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
265
+ ] = None,
266
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
267
+ _content_type: Optional[StrictStr] = None,
268
+ _headers: Optional[Dict[StrictStr, Any]] = None,
269
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
270
+ ) -> RESTResponseType:
271
+ """Capabilities
272
+
273
+ **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Shows the options the motion group offers in regard to jogging. Some motion groups may not provide all information services, e.g. it is physically not possible to move a one-axis-turntable in a linear way.
274
+
275
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
276
+ :type cell: str
277
+ :param motion_group: The motion-group id. (required)
278
+ :type motion_group: str
279
+ :param _request_timeout: timeout setting for this request. If one
280
+ number provided, it will be total request
281
+ timeout. It can also be a pair (tuple) of
282
+ (connection, read) timeouts.
283
+ :type _request_timeout: int, tuple(int, int), optional
284
+ :param _request_auth: set to override the auth_settings for an a single
285
+ request; this effectively ignores the
286
+ authentication in the spec for a single request.
287
+ :type _request_auth: dict, optional
288
+ :param _content_type: force content-type for the request.
289
+ :type _content_type: str, Optional
290
+ :param _headers: set to override the headers for a single
291
+ request; this effectively ignores the headers
292
+ in the spec for a single request.
293
+ :type _headers: dict, optional
294
+ :param _host_index: set to override the host_index for a single
295
+ request; this effectively ignores the host_index
296
+ in the spec for a single request.
297
+ :type _host_index: int, optional
298
+ :return: Returns the result object.
299
+ """ # noqa: E501
300
+
301
+ _param = self._get_jogging_capabilities_serialize(
302
+ cell=cell,
303
+ motion_group=motion_group,
304
+ _request_auth=_request_auth,
305
+ _content_type=_content_type,
306
+ _headers=_headers,
307
+ _host_index=_host_index,
308
+ )
309
+
310
+ _response_types_map: Dict[str, Optional[str]] = {
311
+ "200": "JoggingServiceCapabilities",
312
+ }
313
+ response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
314
+ return response_data.response
315
+
316
+ def _get_jogging_capabilities_serialize(
317
+ self,
318
+ cell,
319
+ motion_group,
320
+ _request_auth,
321
+ _content_type,
322
+ _headers,
323
+ _host_index,
324
+ ) -> RequestSerialized:
325
+
326
+ _host = None
327
+
328
+ _collection_formats: Dict[str, str] = {}
329
+
330
+ _path_params: Dict[str, str] = {}
331
+ _query_params: List[Tuple[str, str]] = []
332
+ _header_params: Dict[str, Optional[str]] = _headers or {}
333
+ _form_params: List[Tuple[str, str]] = []
334
+ _files: Dict[str, Union[str, bytes]] = {}
335
+ _body_params: Optional[bytes] = None
336
+
337
+ # process the path parameters
338
+ if cell is not None:
339
+ _path_params["cell"] = cell
340
+ if motion_group is not None:
341
+ _path_params["motion-group"] = motion_group
342
+ # process the query parameters
343
+ # process the header parameters
344
+ # process the form parameters
345
+ # process the body parameter
346
+
347
+ # set the HTTP header `Accept`
348
+ _header_params["Accept"] = self.api_client.select_header_accept(["application/json"])
349
+
350
+ # authentication setting
351
+ _auth_settings: List[str] = ["BearerAuth"]
352
+
353
+ return self.api_client.param_serialize(
354
+ method="GET",
355
+ resource_path="/cells/{cell}/motion-groups/{motion-group}/jogging-capabilities",
356
+ path_params=_path_params,
357
+ query_params=_query_params,
358
+ header_params=_header_params,
359
+ body=_body_params,
360
+ post_params=_form_params,
361
+ files=_files,
362
+ auth_settings=_auth_settings,
363
+ collection_formats=_collection_formats,
364
+ _host=_host,
365
+ _request_auth=_request_auth,
366
+ )
367
+
368
+ @validate_call
369
+ async def joint_jogging(
370
+ self,
371
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
372
+ client_request_generator: Callable[[AsyncGenerator[JoggingResponse, None]], AsyncGenerator[JointJoggingRequest, None]],
373
+ ) -> None: # noqa: E501
374
+ """Stream Joints # noqa: E501
375
+
376
+ **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Move one or more joints of a motion group with specified velocities via a websocket. The purpose of a joint jogging motion is to maneuver a motion group in one or more joints with a specified velocity for each joint. The sign of the velocity determines the direction of the joint movement. The velocity is given in [rad/s]. In contrast to a planned motion, a jogging motion can be changed dynamically while the motion group is in motion. Only one single client at a time can jog a particular motion group. If another client tries to jog the same motion group at the same time, the second call will fail. The movement of the motion group will start as soon as: * the motion group is not in motion * the websocket connection is established * the first request has been sent As long as the jogging motion is ongoing, responses will be sent continuously and contain the current state of the motion group. The responses will be sent with the specified rate according to the *response_rate* parameter of the initial websocket request. While in motion, the desired joint velocity can be changed by sending a new request to the same websocket. The motion and sending of the replies will stop when: * a [stopJogging](#/operations/stopJogging) request was received, processed, and the movement stopped Motion group state will be published in the original command stream until the motion group has fully stopped * the client cancels the stream (not recommended, because final stopping position will not be returned from the stream) When a physical limit (e.g. joint limit) is reached, the motion group will stop moving in the desired direction. The stream, howewer, will continue to send the state until the client cancels the stream or sends the [stopJogging](#/operations/stopJogging) request. **Usage example:** 1. Open a websocket via Python and start the jogging motion: ```bash > python -m websockets \"ws://<IP of Wandelbots NOVA API>/api/v1/cells/<your cell id>/motion-groups/move-joint\" ``` 2. Send the following message to move with a velocity of 0.1 rad/s (negative) for joint 5 and 0.2 rad/s for joint 6: ```json { \"motion_group\": \"<your motion group id>\", \"joint_velocities\": [0, 0, 0, 0, -0.1, 0.2], \"response_rate\": 500 } ``` The provided NOVA API clients also natively support jogging motions, without the need to manually open a websocket. > **NOTE** > > If the jogging movement is stopped immediately, ensure that > > - A websocket connection is established. Websockets can be kept open until the robot's movement is done as opposed to a simple HTTP GET request. > > - The motion group is not in motion by another jogging movement or a planned movement. > **NOTE** > > If the robot does not move, ensure that > > - The joint velocity values are not zero, > > - The motion group is not in a state where it cannot move further (e.g. joint limit reached). > **NOTE** > > If the specified velocities are higher than the maximum allowed by the robot controller, the motion group will move with the maximum allowed velocities. # noqa: E501
377
+ :param client_request_generator: An AsyncGenerator that yields request of type JointJoggingRequest and takes an AsyncGenerator of JoggingResponse as an input argument (required)
378
+ :info All responses from the server will be yielded to client_request_generator through the (AsyncGenerator[JoggingResponse, None])
379
+ :type AsyncGenerator[JointJoggingRequest, None]
380
+ """
381
+
382
+ def format_path_parameters(path):
383
+ # Find all substrings that are enclosed in brackets
384
+ bracket_contents = re.findall(r"\{(.*?)\}", path)
385
+
386
+ # For each found substring, alter it to match the python variable name
387
+ for content in bracket_contents:
388
+ content = "{" + content + "}"
389
+ modified_content = humps.dekebabize(content)
390
+ path = path.replace(content, modified_content)
391
+
392
+ return path
393
+
394
+ async def iterate_responses(ws) -> AsyncGenerator[JoggingResponse, None]:
395
+ async for response in ws:
396
+ if "Cancelled on the server side" in response:
397
+ break
398
+ response_data = json.loads(response)
399
+ if "result" not in response_data:
400
+ raise Exception(response_data)
401
+ result_data = response_data["result"]
402
+ if isinstance(result_data, list):
403
+ # Handle list of objects
404
+ import re
405
+
406
+ # Extract the base type from List[BaseType] pattern
407
+ return_type_str = "JoggingResponse"
408
+ if return_type_str.startswith("List[") and return_type_str.endswith("]"):
409
+ base_type_name = return_type_str[5:-1] # Remove "List[" and "]"
410
+ # Get the actual class from the module
411
+ base_type_class = globals().get(base_type_name)
412
+ if base_type_class and hasattr(base_type_class, "from_dict"):
413
+ result_list = [base_type_class.from_dict(item) for item in result_data]
414
+ yield result_list
415
+ else:
416
+ yield result_data
417
+ else:
418
+ yield result_data
419
+ else:
420
+ # Handle single object
421
+ yield JoggingResponse.from_dict(result_data)
422
+
423
+ path = format_path_parameters("/cells/{cell}/motion-groups/move-joint")
424
+ path = path.format(
425
+ cell=cell,
426
+ )
427
+
428
+ headers = websockets.Headers()
429
+ tmp_host = self.api_client.configuration.host
430
+ if self.api_client.configuration.host.startswith("https://"):
431
+ # Basic Auth
432
+ if self.api_client.configuration.username:
433
+ tmp_host = self.api_client.configuration.host.replace("https://", "")
434
+ tmp_host = f"wss://{self.api_client.configuration.username}:{self.api_client.configuration.password}@{tmp_host}"
435
+
436
+ # OAuth2
437
+ elif self.api_client.configuration.access_token:
438
+ tmp_host = self.api_client.configuration.host.replace("https://", "")
439
+ tmp_host = f"wss://{tmp_host}"
440
+ headers = websockets.Headers([("Authorization", f"Bearer {self.api_client.configuration.access_token}")])
441
+ else:
442
+ tmp_host = tmp_host.replace("http://", "ws://")
443
+
444
+ full_url = furl(tmp_host + path)
445
+
446
+ async with websockets.connect(full_url.url, open_timeout=10, additional_headers=headers) as websocket:
447
+ try:
448
+ async for request in client_request_generator(iterate_responses(websocket)):
449
+ await websocket.send(request.to_json())
450
+ finally:
451
+ await websocket.close()
452
+
453
+ @validate_call
454
+ async def stop_jogging(
455
+ self,
456
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
457
+ motion_group: Annotated[StrictStr, Field(description="The motion-group id.")],
458
+ _request_timeout: Union[
459
+ None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
460
+ ] = None,
461
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
462
+ _content_type: Optional[StrictStr] = None,
463
+ _headers: Optional[Dict[StrictStr, Any]] = None,
464
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
465
+ ) -> None:
466
+ """Stop
467
+
468
+ **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Stops an ongoing jogging movement as fast as possible. Until the motion group reaches standstill, it decelerates and keeps the last specified direction. This call will immediately return even if the deceleration is still in progress. After a stop request has been received, no further updates to the ongoing jogging movement are possible. State responses will be sent via the jogging stream until the motion group reaches standstill.
469
+
470
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
471
+ :type cell: str
472
+ :param motion_group: The motion-group id. (required)
473
+ :type motion_group: str
474
+ :param _request_timeout: timeout setting for this request. If one
475
+ number provided, it will be total request
476
+ timeout. It can also be a pair (tuple) of
477
+ (connection, read) timeouts.
478
+ :type _request_timeout: int, tuple(int, int), optional
479
+ :param _request_auth: set to override the auth_settings for an a single
480
+ request; this effectively ignores the
481
+ authentication in the spec for a single request.
482
+ :type _request_auth: dict, optional
483
+ :param _content_type: force content-type for the request.
484
+ :type _content_type: str, Optional
485
+ :param _headers: set to override the headers for a single
486
+ request; this effectively ignores the headers
487
+ in the spec for a single request.
488
+ :type _headers: dict, optional
489
+ :param _host_index: set to override the host_index for a single
490
+ request; this effectively ignores the host_index
491
+ in the spec for a single request.
492
+ :type _host_index: int, optional
493
+ :return: Returns the result object.
494
+ """ # noqa: E501
495
+
496
+ _param = self._stop_jogging_serialize(
497
+ cell=cell,
498
+ motion_group=motion_group,
499
+ _request_auth=_request_auth,
500
+ _content_type=_content_type,
501
+ _headers=_headers,
502
+ _host_index=_host_index,
503
+ )
504
+
505
+ _response_types_map: Dict[str, Optional[str]] = {
506
+ "200": None,
507
+ }
508
+ response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
509
+ await response_data.read()
510
+ return self.api_client.response_deserialize(
511
+ response_data=response_data,
512
+ response_types_map=_response_types_map,
513
+ ).data
514
+
515
+ @validate_call
516
+ async def stop_jogging_with_http_info(
517
+ self,
518
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
519
+ motion_group: Annotated[StrictStr, Field(description="The motion-group id.")],
520
+ _request_timeout: Union[
521
+ None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
522
+ ] = None,
523
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
524
+ _content_type: Optional[StrictStr] = None,
525
+ _headers: Optional[Dict[StrictStr, Any]] = None,
526
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
527
+ ) -> ApiResponse[None]:
528
+ """Stop
529
+
530
+ **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Stops an ongoing jogging movement as fast as possible. Until the motion group reaches standstill, it decelerates and keeps the last specified direction. This call will immediately return even if the deceleration is still in progress. After a stop request has been received, no further updates to the ongoing jogging movement are possible. State responses will be sent via the jogging stream until the motion group reaches standstill.
531
+
532
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
533
+ :type cell: str
534
+ :param motion_group: The motion-group id. (required)
535
+ :type motion_group: str
536
+ :param _request_timeout: timeout setting for this request. If one
537
+ number provided, it will be total request
538
+ timeout. It can also be a pair (tuple) of
539
+ (connection, read) timeouts.
540
+ :type _request_timeout: int, tuple(int, int), optional
541
+ :param _request_auth: set to override the auth_settings for an a single
542
+ request; this effectively ignores the
543
+ authentication in the spec for a single request.
544
+ :type _request_auth: dict, optional
545
+ :param _content_type: force content-type for the request.
546
+ :type _content_type: str, Optional
547
+ :param _headers: set to override the headers for a single
548
+ request; this effectively ignores the headers
549
+ in the spec for a single request.
550
+ :type _headers: dict, optional
551
+ :param _host_index: set to override the host_index for a single
552
+ request; this effectively ignores the host_index
553
+ in the spec for a single request.
554
+ :type _host_index: int, optional
555
+ :return: Returns the result object.
556
+ """ # noqa: E501
557
+
558
+ _param = self._stop_jogging_serialize(
559
+ cell=cell,
560
+ motion_group=motion_group,
561
+ _request_auth=_request_auth,
562
+ _content_type=_content_type,
563
+ _headers=_headers,
564
+ _host_index=_host_index,
565
+ )
566
+
567
+ _response_types_map: Dict[str, Optional[str]] = {
568
+ "200": None,
569
+ }
570
+ response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
571
+ await response_data.read()
572
+ return self.api_client.response_deserialize(
573
+ response_data=response_data,
574
+ response_types_map=_response_types_map,
575
+ )
576
+
577
+ @validate_call
578
+ async def stop_jogging_without_preload_content(
579
+ self,
580
+ cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
581
+ motion_group: Annotated[StrictStr, Field(description="The motion-group id.")],
582
+ _request_timeout: Union[
583
+ None, Annotated[StrictFloat, Field(gt=0)], Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]]
584
+ ] = None,
585
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
586
+ _content_type: Optional[StrictStr] = None,
587
+ _headers: Optional[Dict[StrictStr, Any]] = None,
588
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
589
+ ) -> RESTResponseType:
590
+ """Stop
591
+
592
+ **Required permissions:** `can_operate_controllers` - Operate and monitor robot controllers ___ Stops an ongoing jogging movement as fast as possible. Until the motion group reaches standstill, it decelerates and keeps the last specified direction. This call will immediately return even if the deceleration is still in progress. After a stop request has been received, no further updates to the ongoing jogging movement are possible. State responses will be sent via the jogging stream until the motion group reaches standstill.
593
+
594
+ :param cell: Unique identifier addressing a cell in all API calls. (required)
595
+ :type cell: str
596
+ :param motion_group: The motion-group id. (required)
597
+ :type motion_group: str
598
+ :param _request_timeout: timeout setting for this request. If one
599
+ number provided, it will be total request
600
+ timeout. It can also be a pair (tuple) of
601
+ (connection, read) timeouts.
602
+ :type _request_timeout: int, tuple(int, int), optional
603
+ :param _request_auth: set to override the auth_settings for an a single
604
+ request; this effectively ignores the
605
+ authentication in the spec for a single request.
606
+ :type _request_auth: dict, optional
607
+ :param _content_type: force content-type for the request.
608
+ :type _content_type: str, Optional
609
+ :param _headers: set to override the headers for a single
610
+ request; this effectively ignores the headers
611
+ in the spec for a single request.
612
+ :type _headers: dict, optional
613
+ :param _host_index: set to override the host_index for a single
614
+ request; this effectively ignores the host_index
615
+ in the spec for a single request.
616
+ :type _host_index: int, optional
617
+ :return: Returns the result object.
618
+ """ # noqa: E501
619
+
620
+ _param = self._stop_jogging_serialize(
621
+ cell=cell,
622
+ motion_group=motion_group,
623
+ _request_auth=_request_auth,
624
+ _content_type=_content_type,
625
+ _headers=_headers,
626
+ _host_index=_host_index,
627
+ )
628
+
629
+ _response_types_map: Dict[str, Optional[str]] = {
630
+ "200": None,
631
+ }
632
+ response_data = await self.api_client.call_api(*_param, _request_timeout=_request_timeout)
633
+ return response_data.response
634
+
635
+ def _stop_jogging_serialize(
636
+ self,
637
+ cell,
638
+ motion_group,
639
+ _request_auth,
640
+ _content_type,
641
+ _headers,
642
+ _host_index,
643
+ ) -> RequestSerialized:
644
+
645
+ _host = None
646
+
647
+ _collection_formats: Dict[str, str] = {}
648
+
649
+ _path_params: Dict[str, str] = {}
650
+ _query_params: List[Tuple[str, str]] = []
651
+ _header_params: Dict[str, Optional[str]] = _headers or {}
652
+ _form_params: List[Tuple[str, str]] = []
653
+ _files: Dict[str, Union[str, bytes]] = {}
654
+ _body_params: Optional[bytes] = None
655
+
656
+ # process the path parameters
657
+ if cell is not None:
658
+ _path_params["cell"] = cell
659
+ if motion_group is not None:
660
+ _path_params["motion-group"] = motion_group
661
+ # process the query parameters
662
+ # process the header parameters
663
+ # process the form parameters
664
+ # process the body parameter
665
+
666
+ # set the HTTP header `Accept`
667
+ _header_params["Accept"] = self.api_client.select_header_accept(["application/json"])
668
+
669
+ # authentication setting
670
+ _auth_settings: List[str] = ["BearerAuth"]
671
+
672
+ return self.api_client.param_serialize(
673
+ method="PUT",
674
+ resource_path="/cells/{cell}/motion-groups/{motion-group}/stop",
675
+ path_params=_path_params,
676
+ query_params=_query_params,
677
+ header_params=_header_params,
678
+ body=_body_params,
679
+ post_params=_form_params,
680
+ files=_files,
681
+ auth_settings=_auth_settings,
682
+ collection_formats=_collection_formats,
683
+ _host=_host,
684
+ _request_auth=_request_auth,
685
+ )