wandelbots-api-client 25.11.0.dev27__py3-none-any.whl → 26.1.0.dev42__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 (347) hide show
  1. wandelbots_api_client/__init__.py +2 -2
  2. wandelbots_api_client/api/application_api.py +1 -1
  3. wandelbots_api_client/api/cell_api.py +1 -1
  4. wandelbots_api_client/api/controller_api.py +1 -1
  5. wandelbots_api_client/api/controller_ios_api.py +1 -1
  6. wandelbots_api_client/api/coordinate_systems_api.py +1 -1
  7. wandelbots_api_client/api/device_configuration_api.py +1 -1
  8. wandelbots_api_client/api/library_program_api.py +1 -1
  9. wandelbots_api_client/api/library_program_metadata_api.py +1 -1
  10. wandelbots_api_client/api/library_recipe_api.py +1 -1
  11. wandelbots_api_client/api/library_recipe_metadata_api.py +1 -1
  12. wandelbots_api_client/api/license_api.py +1 -1
  13. wandelbots_api_client/api/motion_api.py +4 -4
  14. wandelbots_api_client/api/motion_group_api.py +1 -1
  15. wandelbots_api_client/api/motion_group_infos_api.py +1 -1
  16. wandelbots_api_client/api/motion_group_jogging_api.py +1 -1
  17. wandelbots_api_client/api/motion_group_kinematic_api.py +1 -1
  18. wandelbots_api_client/api/program_api.py +1 -1
  19. wandelbots_api_client/api/program_operator_api.py +1 -1
  20. wandelbots_api_client/api/program_values_api.py +1 -1
  21. wandelbots_api_client/api/store_collision_components_api.py +1 -1
  22. wandelbots_api_client/api/store_collision_scenes_api.py +1 -1
  23. wandelbots_api_client/api/store_object_api.py +1 -1
  24. wandelbots_api_client/api/system_api.py +1 -1
  25. wandelbots_api_client/api/version_api.py +1 -1
  26. wandelbots_api_client/api/virtual_robot_api.py +1 -1
  27. wandelbots_api_client/api/virtual_robot_behavior_api.py +1 -1
  28. wandelbots_api_client/api/virtual_robot_mode_api.py +1 -1
  29. wandelbots_api_client/api/virtual_robot_setup_api.py +1 -1
  30. wandelbots_api_client/api_client.py +2 -2
  31. wandelbots_api_client/configuration.py +3 -3
  32. wandelbots_api_client/exceptions.py +1 -1
  33. wandelbots_api_client/models/__init__.py +1 -1
  34. wandelbots_api_client/models/abb_controller.py +1 -1
  35. wandelbots_api_client/models/abb_controller_egm_server.py +1 -1
  36. wandelbots_api_client/models/activate_license_request.py +1 -1
  37. wandelbots_api_client/models/add_request.py +1 -1
  38. wandelbots_api_client/models/all_joint_positions_request.py +1 -1
  39. wandelbots_api_client/models/all_joint_positions_response.py +1 -1
  40. wandelbots_api_client/models/api_version.py +1 -1
  41. wandelbots_api_client/models/app.py +1 -1
  42. wandelbots_api_client/models/array_input.py +1 -1
  43. wandelbots_api_client/models/array_output.py +1 -1
  44. wandelbots_api_client/models/behavior.py +1 -1
  45. wandelbots_api_client/models/blending_auto.py +1 -1
  46. wandelbots_api_client/models/blending_position.py +1 -1
  47. wandelbots_api_client/models/box.py +1 -1
  48. wandelbots_api_client/models/box2.py +1 -1
  49. wandelbots_api_client/models/box3.py +1 -1
  50. wandelbots_api_client/models/capsule.py +1 -1
  51. wandelbots_api_client/models/capsule2.py +1 -1
  52. wandelbots_api_client/models/capsule3.py +1 -1
  53. wandelbots_api_client/models/capture.py +1 -1
  54. wandelbots_api_client/models/cell.py +1 -1
  55. wandelbots_api_client/models/circle.py +1 -1
  56. wandelbots_api_client/models/code_with_arguments.py +1 -1
  57. wandelbots_api_client/models/collection_value.py +1 -1
  58. wandelbots_api_client/models/collider.py +1 -1
  59. wandelbots_api_client/models/collider_input.py +1 -1
  60. wandelbots_api_client/models/collider_output.py +1 -1
  61. wandelbots_api_client/models/collider_output_shape.py +1 -1
  62. wandelbots_api_client/models/collider_shape.py +1 -1
  63. wandelbots_api_client/models/collision.py +1 -1
  64. wandelbots_api_client/models/collision_contact.py +1 -1
  65. wandelbots_api_client/models/collision_motion_group.py +1 -1
  66. wandelbots_api_client/models/collision_motion_group_assembly.py +1 -1
  67. wandelbots_api_client/models/collision_robot_configuration_input.py +1 -1
  68. wandelbots_api_client/models/collision_robot_configuration_output.py +1 -1
  69. wandelbots_api_client/models/collision_scene.py +1 -1
  70. wandelbots_api_client/models/collision_scene_assembly.py +1 -1
  71. wandelbots_api_client/models/command.py +1 -1
  72. wandelbots_api_client/models/command_settings.py +1 -1
  73. wandelbots_api_client/models/comparator.py +1 -1
  74. wandelbots_api_client/models/compound.py +1 -1
  75. wandelbots_api_client/models/container_environment_inner.py +1 -1
  76. wandelbots_api_client/models/container_image.py +1 -1
  77. wandelbots_api_client/models/container_image_secrets_inner.py +1 -1
  78. wandelbots_api_client/models/container_resources.py +1 -1
  79. wandelbots_api_client/models/container_storage.py +1 -1
  80. wandelbots_api_client/models/controller_capabilities.py +1 -1
  81. wandelbots_api_client/models/controller_instance.py +1 -1
  82. wandelbots_api_client/models/controller_instance_list.py +1 -1
  83. wandelbots_api_client/models/convex_hull.py +1 -1
  84. wandelbots_api_client/models/convex_hull2.py +1 -1
  85. wandelbots_api_client/models/convex_hull3.py +1 -1
  86. wandelbots_api_client/models/coordinate_system.py +1 -1
  87. wandelbots_api_client/models/coordinate_systems.py +1 -1
  88. wandelbots_api_client/models/create_device_request_inner.py +1 -1
  89. wandelbots_api_client/models/create_program_run200_response.py +1 -1
  90. wandelbots_api_client/models/create_program_run_request.py +1 -1
  91. wandelbots_api_client/models/create_trigger200_response.py +1 -1
  92. wandelbots_api_client/models/create_trigger_request.py +1 -1
  93. wandelbots_api_client/models/cubic_spline.py +1 -1
  94. wandelbots_api_client/models/cubic_spline_cubic_spline_parameter.py +1 -1
  95. wandelbots_api_client/models/cubic_spline_parameter.py +1 -1
  96. wandelbots_api_client/models/cycle_time.py +1 -1
  97. wandelbots_api_client/models/cylinder.py +1 -1
  98. wandelbots_api_client/models/cylinder2.py +1 -1
  99. wandelbots_api_client/models/cylinder3.py +1 -1
  100. wandelbots_api_client/models/dh_parameter.py +1 -1
  101. wandelbots_api_client/models/direction.py +1 -1
  102. wandelbots_api_client/models/direction_jogging_request.py +1 -1
  103. wandelbots_api_client/models/error.py +1 -1
  104. wandelbots_api_client/models/execute_trajectory_request.py +1 -1
  105. wandelbots_api_client/models/execute_trajectory_response.py +1 -1
  106. wandelbots_api_client/models/execution_result.py +1 -1
  107. wandelbots_api_client/models/external_joint_stream_datapoint.py +1 -1
  108. wandelbots_api_client/models/external_joint_stream_datapoint_value.py +1 -1
  109. wandelbots_api_client/models/fanuc_controller.py +1 -1
  110. wandelbots_api_client/models/feedback_collision.py +1 -1
  111. wandelbots_api_client/models/feedback_joint_limit_exceeded.py +1 -1
  112. wandelbots_api_client/models/feedback_out_of_workspace.py +1 -1
  113. wandelbots_api_client/models/feedback_singularity.py +1 -1
  114. wandelbots_api_client/models/flag.py +1 -1
  115. wandelbots_api_client/models/force_vector.py +1 -1
  116. wandelbots_api_client/models/geometry.py +1 -1
  117. wandelbots_api_client/models/get_all_program_runs200_response.py +1 -1
  118. wandelbots_api_client/models/get_all_triggers200_response.py +1 -1
  119. wandelbots_api_client/models/get_mode_response.py +1 -1
  120. wandelbots_api_client/models/get_trajectory_response.py +1 -1
  121. wandelbots_api_client/models/get_trajectory_sample_response.py +1 -1
  122. wandelbots_api_client/models/google_protobuf_any.py +1 -1
  123. wandelbots_api_client/models/http_exception_response.py +1 -1
  124. wandelbots_api_client/models/http_validation_error.py +1 -1
  125. wandelbots_api_client/models/http_validation_error2.py +1 -1
  126. wandelbots_api_client/models/image_credentials.py +1 -1
  127. wandelbots_api_client/models/info_service_capabilities.py +1 -1
  128. wandelbots_api_client/models/initialize_movement_request.py +1 -1
  129. wandelbots_api_client/models/initialize_movement_response.py +1 -1
  130. wandelbots_api_client/models/initialize_movement_response_init_response.py +1 -1
  131. wandelbots_api_client/models/io.py +1 -1
  132. wandelbots_api_client/models/io_description.py +1 -1
  133. wandelbots_api_client/models/io_value.py +1 -1
  134. wandelbots_api_client/models/ios.py +1 -1
  135. wandelbots_api_client/models/jogging_response.py +1 -1
  136. wandelbots_api_client/models/jogging_service_capabilities.py +1 -1
  137. wandelbots_api_client/models/joint_jogging_request.py +1 -1
  138. wandelbots_api_client/models/joint_limit.py +1 -1
  139. wandelbots_api_client/models/joint_limit_exceeded.py +1 -1
  140. wandelbots_api_client/models/joint_position_request.py +1 -1
  141. wandelbots_api_client/models/joint_trajectory.py +1 -1
  142. wandelbots_api_client/models/joints.py +1 -1
  143. wandelbots_api_client/models/kinematic_service_capabilities.py +1 -1
  144. wandelbots_api_client/models/kuka_controller.py +1 -1
  145. wandelbots_api_client/models/kuka_controller_rsi_server.py +1 -1
  146. wandelbots_api_client/models/license.py +1 -1
  147. wandelbots_api_client/models/license_status.py +1 -1
  148. wandelbots_api_client/models/license_status_enum.py +1 -1
  149. wandelbots_api_client/models/limit_settings.py +1 -1
  150. wandelbots_api_client/models/limits_override.py +1 -1
  151. wandelbots_api_client/models/list_devices200_response_inner.py +1 -1
  152. wandelbots_api_client/models/list_io_descriptions_response.py +1 -1
  153. wandelbots_api_client/models/list_io_values_response.py +1 -1
  154. wandelbots_api_client/models/list_payloads_response.py +1 -1
  155. wandelbots_api_client/models/list_program_metadata_response.py +1 -1
  156. wandelbots_api_client/models/list_recipe_metadata_response.py +1 -1
  157. wandelbots_api_client/models/list_response.py +1 -1
  158. wandelbots_api_client/models/list_tcps_response.py +1 -1
  159. wandelbots_api_client/models/manufacturer.py +1 -1
  160. wandelbots_api_client/models/mode_change_response.py +1 -1
  161. wandelbots_api_client/models/motion_command.py +1 -1
  162. wandelbots_api_client/models/motion_command_blending.py +1 -1
  163. wandelbots_api_client/models/motion_command_path.py +1 -1
  164. wandelbots_api_client/models/motion_group_behavior_getter.py +1 -1
  165. wandelbots_api_client/models/motion_group_info.py +1 -1
  166. wandelbots_api_client/models/motion_group_infos.py +1 -1
  167. wandelbots_api_client/models/motion_group_instance.py +1 -1
  168. wandelbots_api_client/models/motion_group_instance_list.py +1 -1
  169. wandelbots_api_client/models/motion_group_joints.py +1 -1
  170. wandelbots_api_client/models/motion_group_physical.py +1 -1
  171. wandelbots_api_client/models/motion_group_specification.py +1 -1
  172. wandelbots_api_client/models/motion_group_state.py +1 -1
  173. wandelbots_api_client/models/motion_group_state_joint_limit_reached.py +1 -1
  174. wandelbots_api_client/models/motion_group_state_response.py +1 -1
  175. wandelbots_api_client/models/motion_id.py +1 -1
  176. wandelbots_api_client/models/motion_ids_list_response.py +1 -1
  177. wandelbots_api_client/models/motion_vector.py +1 -1
  178. wandelbots_api_client/models/mounting.py +1 -1
  179. wandelbots_api_client/models/move_request.py +1 -1
  180. wandelbots_api_client/models/move_response.py +1 -1
  181. wandelbots_api_client/models/move_to_trajectory_via_joint_ptp_request.py +1 -1
  182. wandelbots_api_client/models/movement.py +1 -1
  183. wandelbots_api_client/models/movement_error.py +1 -1
  184. wandelbots_api_client/models/movement_error_error.py +1 -1
  185. wandelbots_api_client/models/movement_movement.py +1 -1
  186. wandelbots_api_client/models/op_mode.py +1 -1
  187. wandelbots_api_client/models/opcua_node_value_trigger_config.py +1 -1
  188. wandelbots_api_client/models/opcua_node_value_trigger_config_node_value.py +1 -1
  189. wandelbots_api_client/models/optimizer_setup.py +1 -1
  190. wandelbots_api_client/models/out_of_workspace.py +1 -1
  191. wandelbots_api_client/models/path.py +1 -1
  192. wandelbots_api_client/models/path_cartesian_ptp.py +1 -1
  193. wandelbots_api_client/models/path_circle.py +1 -1
  194. wandelbots_api_client/models/path_cubic_spline.py +1 -1
  195. wandelbots_api_client/models/path_joint_ptp.py +1 -1
  196. wandelbots_api_client/models/path_line.py +1 -1
  197. wandelbots_api_client/models/pause_movement_request.py +1 -1
  198. wandelbots_api_client/models/pause_movement_response.py +1 -1
  199. wandelbots_api_client/models/pause_movement_response_pause_response.py +1 -1
  200. wandelbots_api_client/models/pause_on_io.py +1 -1
  201. wandelbots_api_client/models/payload.py +1 -1
  202. wandelbots_api_client/models/plan_collision_free_ptp_request.py +1 -1
  203. wandelbots_api_client/models/plan_collision_free_ptp_request_target.py +1 -1
  204. wandelbots_api_client/models/plan_failed_on_trajectory_response.py +1 -1
  205. wandelbots_api_client/models/plan_failed_response.py +1 -1
  206. wandelbots_api_client/models/plan_request.py +1 -1
  207. wandelbots_api_client/models/plan_response.py +1 -1
  208. wandelbots_api_client/models/plan_successful_response.py +1 -1
  209. wandelbots_api_client/models/plan_trajectory_failed_response.py +1 -1
  210. wandelbots_api_client/models/plan_trajectory_failed_response_error_feedback.py +1 -1
  211. wandelbots_api_client/models/plan_trajectory_request.py +1 -1
  212. wandelbots_api_client/models/plan_trajectory_response.py +1 -1
  213. wandelbots_api_client/models/plan_trajectory_response_response.py +1 -1
  214. wandelbots_api_client/models/plane2.py +1 -1
  215. wandelbots_api_client/models/plane3.py +1 -1
  216. wandelbots_api_client/models/planned_motion.py +1 -1
  217. wandelbots_api_client/models/planner_pose.py +1 -1
  218. wandelbots_api_client/models/planning_limits.py +1 -1
  219. wandelbots_api_client/models/planning_limits_limit_range.py +1 -1
  220. wandelbots_api_client/models/playback_speed_request.py +1 -1
  221. wandelbots_api_client/models/playback_speed_response.py +1 -1
  222. wandelbots_api_client/models/playback_speed_response_playback_speed_response.py +1 -1
  223. wandelbots_api_client/models/point_cloud.py +1 -1
  224. wandelbots_api_client/models/pose.py +1 -1
  225. wandelbots_api_client/models/pose2.py +1 -1
  226. wandelbots_api_client/models/program_metadata.py +1 -1
  227. wandelbots_api_client/models/program_run.py +1 -1
  228. wandelbots_api_client/models/program_run_object.py +1 -1
  229. wandelbots_api_client/models/program_run_state.py +1 -1
  230. wandelbots_api_client/models/program_runner_reference.py +1 -1
  231. wandelbots_api_client/models/pyjectory_datatypes_core_pose.py +1 -1
  232. wandelbots_api_client/models/pyjectory_datatypes_serializer_orientation.py +1 -1
  233. wandelbots_api_client/models/pyjectory_datatypes_serializer_pose.py +1 -1
  234. wandelbots_api_client/models/pyjectory_datatypes_serializer_position.py +1 -1
  235. wandelbots_api_client/models/pyriphery_etcd_etcd_configuration.py +1 -1
  236. wandelbots_api_client/models/pyriphery_hardware_isaac_isaac_configuration.py +1 -1
  237. wandelbots_api_client/models/pyriphery_opcua_opcua_configuration.py +1 -1
  238. wandelbots_api_client/models/pyriphery_pyrae_controller_controller_configuration.py +1 -1
  239. wandelbots_api_client/models/pyriphery_pyrae_robot_robot_configuration.py +1 -1
  240. wandelbots_api_client/models/pyriphery_robotics_configurable_collision_scene_configurable_collision_scene_configuration_input.py +1 -1
  241. wandelbots_api_client/models/pyriphery_robotics_configurable_collision_scene_configurable_collision_scene_configuration_output.py +1 -1
  242. wandelbots_api_client/models/pyriphery_robotics_robotcell_timer_configuration.py +1 -1
  243. wandelbots_api_client/models/pyriphery_robotics_simulation_robot_with_view_open3d_configuration.py +1 -1
  244. wandelbots_api_client/models/pyriphery_robotics_simulation_simulated_io_configuration.py +1 -1
  245. wandelbots_api_client/models/pyriphery_robotics_simulation_simulated_opcua_configuration.py +1 -1
  246. wandelbots_api_client/models/quaternion.py +1 -1
  247. wandelbots_api_client/models/recipe_metadata.py +1 -1
  248. wandelbots_api_client/models/rectangle.py +1 -1
  249. wandelbots_api_client/models/rectangle2.py +1 -1
  250. wandelbots_api_client/models/rectangle3.py +1 -1
  251. wandelbots_api_client/models/rectangular_capsule.py +1 -1
  252. wandelbots_api_client/models/rectangular_capsule2.py +1 -1
  253. wandelbots_api_client/models/rectangular_capsule3.py +1 -1
  254. wandelbots_api_client/models/release_channel.py +1 -1
  255. wandelbots_api_client/models/request.py +1 -1
  256. wandelbots_api_client/models/request1.py +1 -1
  257. wandelbots_api_client/models/response_get_value_programs_values_key_get.py +1 -1
  258. wandelbots_api_client/models/response_get_values_programs_values_get_value.py +1 -1
  259. wandelbots_api_client/models/robot_controller.py +1 -1
  260. wandelbots_api_client/models/robot_controller_configuration.py +1 -1
  261. wandelbots_api_client/models/robot_controller_state.py +1 -1
  262. wandelbots_api_client/models/robot_link_geometry.py +1 -1
  263. wandelbots_api_client/models/robot_state.py +1 -1
  264. wandelbots_api_client/models/robot_system_mode.py +1 -1
  265. wandelbots_api_client/models/robot_tcp.py +1 -1
  266. wandelbots_api_client/models/robot_tcps.py +1 -1
  267. wandelbots_api_client/models/rotation_angle_types.py +1 -1
  268. wandelbots_api_client/models/rotation_angles.py +1 -1
  269. wandelbots_api_client/models/safety_configuration.py +1 -1
  270. wandelbots_api_client/models/safety_setup.py +1 -1
  271. wandelbots_api_client/models/safety_setup_safety_settings.py +1 -1
  272. wandelbots_api_client/models/safety_setup_safety_zone.py +1 -1
  273. wandelbots_api_client/models/safety_zone.py +1 -1
  274. wandelbots_api_client/models/safety_zone_limits.py +1 -1
  275. wandelbots_api_client/models/safety_zone_violation.py +1 -1
  276. wandelbots_api_client/models/service_status.py +1 -1
  277. wandelbots_api_client/models/service_status_phase.py +1 -1
  278. wandelbots_api_client/models/service_status_severity.py +1 -1
  279. wandelbots_api_client/models/service_status_status.py +1 -1
  280. wandelbots_api_client/models/set_io.py +1 -1
  281. wandelbots_api_client/models/set_playback_speed.py +1 -1
  282. wandelbots_api_client/models/single_joint_limit.py +1 -1
  283. wandelbots_api_client/models/singularity.py +1 -1
  284. wandelbots_api_client/models/singularity_type_enum.py +1 -1
  285. wandelbots_api_client/models/sphere.py +1 -1
  286. wandelbots_api_client/models/sphere2.py +1 -1
  287. wandelbots_api_client/models/sphere3.py +1 -1
  288. wandelbots_api_client/models/standstill.py +1 -1
  289. wandelbots_api_client/models/standstill_reason.py +1 -1
  290. wandelbots_api_client/models/standstill_standstill.py +1 -1
  291. wandelbots_api_client/models/start_movement_request.py +1 -1
  292. wandelbots_api_client/models/start_on_io.py +1 -1
  293. wandelbots_api_client/models/status.py +1 -1
  294. wandelbots_api_client/models/stop_response.py +1 -1
  295. wandelbots_api_client/models/store_value.py +1 -1
  296. wandelbots_api_client/models/stream_move_backward.py +1 -1
  297. wandelbots_api_client/models/stream_move_forward.py +1 -1
  298. wandelbots_api_client/models/stream_move_playback_speed.py +1 -1
  299. wandelbots_api_client/models/stream_move_request.py +1 -1
  300. wandelbots_api_client/models/stream_move_response.py +1 -1
  301. wandelbots_api_client/models/stream_move_to_trajectory.py +1 -1
  302. wandelbots_api_client/models/stream_stop.py +1 -1
  303. wandelbots_api_client/models/tcp_pose.py +1 -1
  304. wandelbots_api_client/models/tcp_pose_request.py +1 -1
  305. wandelbots_api_client/models/tool_geometry.py +1 -1
  306. wandelbots_api_client/models/trajectory_sample.py +1 -1
  307. wandelbots_api_client/models/trigger_object.py +1 -1
  308. wandelbots_api_client/models/trigger_type.py +1 -1
  309. wandelbots_api_client/models/universalrobots_controller.py +1 -1
  310. wandelbots_api_client/models/update_nova_version_request.py +1 -1
  311. wandelbots_api_client/models/update_program_metadata_request.py +1 -1
  312. wandelbots_api_client/models/update_recipe_metadata_request.py +1 -1
  313. wandelbots_api_client/models/update_trigger_request.py +1 -1
  314. wandelbots_api_client/models/validation_error.py +1 -1
  315. wandelbots_api_client/models/validation_error2.py +1 -1
  316. wandelbots_api_client/models/validation_error2_loc_inner.py +1 -1
  317. wandelbots_api_client/models/validation_error_loc_inner.py +1 -1
  318. wandelbots_api_client/models/value.py +1 -1
  319. wandelbots_api_client/models/vector3d.py +1 -1
  320. wandelbots_api_client/models/version_number.py +1 -1
  321. wandelbots_api_client/models/virtual_controller.py +1 -1
  322. wandelbots_api_client/models/virtual_controller_types.py +1 -1
  323. wandelbots_api_client/models/virtual_robot_configuration.py +1 -1
  324. wandelbots_api_client/models/yaskawa_controller.py +1 -1
  325. wandelbots_api_client/rest.py +1 -1
  326. wandelbots_api_client/v2/__init__.py +1 -1
  327. wandelbots_api_client/v2/api/jogging_api.py +1 -1
  328. wandelbots_api_client/v2/api/motion_group_models_api.py +530 -2
  329. wandelbots_api_client/v2/api/trajectory_execution_api.py +1 -1
  330. wandelbots_api_client/v2/api_client.py +1 -1
  331. wandelbots_api_client/v2/configuration.py +1 -1
  332. wandelbots_api_client/v2/models/__init__.py +2 -0
  333. wandelbots_api_client/v2/models/blending_auto.py +1 -1
  334. wandelbots_api_client/v2/models/blending_position.py +15 -1
  335. wandelbots_api_client/v2/models/blending_space.py +37 -0
  336. wandelbots_api_client/v2_pydantic/__init__.py +1 -1
  337. wandelbots_api_client/v2_pydantic/api/jogging_api.py +1 -1
  338. wandelbots_api_client/v2_pydantic/api/motion_group_models_api.py +536 -2
  339. wandelbots_api_client/v2_pydantic/api/trajectory_execution_api.py +1 -1
  340. wandelbots_api_client/v2_pydantic/api_client.py +1 -1
  341. wandelbots_api_client/v2_pydantic/configuration.py +1 -1
  342. wandelbots_api_client/v2_pydantic/models.py +397 -375
  343. {wandelbots_api_client-25.11.0.dev27.dist-info → wandelbots_api_client-26.1.0.dev42.dist-info}/METADATA +3 -3
  344. {wandelbots_api_client-25.11.0.dev27.dist-info → wandelbots_api_client-26.1.0.dev42.dist-info}/RECORD +347 -346
  345. {wandelbots_api_client-25.11.0.dev27.dist-info → wandelbots_api_client-26.1.0.dev42.dist-info}/WHEEL +0 -0
  346. {wandelbots_api_client-25.11.0.dev27.dist-info → wandelbots_api_client-26.1.0.dev42.dist-info}/licenses/LICENSE +0 -0
  347. {wandelbots_api_client-25.11.0.dev27.dist-info → wandelbots_api_client-26.1.0.dev42.dist-info}/top_level.txt +0 -0
@@ -1,13 +1,13 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: public.openapi.yaml
3
- # timestamp: 2025-12-15T10:38:33+00:00
3
+ # timestamp: 2026-01-07T10:19:54+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
7
7
  from datetime import date
8
8
  from enum import Enum
9
9
  from pathlib import Path
10
- from typing import Annotated, Any, Dict, List, Literal, Optional, Union
10
+ from typing import Annotated, Any, Literal
11
11
 
12
12
  from pydantic import AwareDatetime, BaseModel, EmailStr, Field, RootModel
13
13
 
@@ -17,7 +17,7 @@ class NameList(RootModel):
17
17
  A list of names
18
18
  """
19
19
 
20
- root: List[str]
20
+ root: list[str]
21
21
  """
22
22
  A list of names
23
23
  """
@@ -127,7 +127,7 @@ class KukaController(BaseModel):
127
127
  """
128
128
  The RSI server runs inside of the cell.
129
129
  """
130
- slow_cycle_rate: Optional[bool] = False
130
+ slow_cycle_rate: bool | None = False
131
131
  """
132
132
  If true, uses slower cycle time of 12ms instead of 4ms.
133
133
 
@@ -284,15 +284,15 @@ class VirtualController(BaseModel):
284
284
 
285
285
  kind: Literal['VirtualController'] = 'VirtualController'
286
286
  manufacturer: Manufacturer
287
- type: Optional[VirtualControllerTypes] = None
288
- json_: Annotated[Optional[str], Field(alias='json')] = None
287
+ type: VirtualControllerTypes | None = None
288
+ json_: Annotated[str | None, Field(alias='json')] = None
289
289
  """
290
290
  Complete JSON configuration of the virtual robot controller.
291
291
  Can be obtained from the physical controller's configuration via [getVirtualControllerConfiguration](getVirtualControllerConfiguration).
292
292
  If provided, the `type` field should not be used.
293
293
 
294
294
  """
295
- initial_joint_position: Optional[str] = None
295
+ initial_joint_position: str | None = None
296
296
  """
297
297
  Initial joint position of the first motion group from the virtual robot controller.
298
298
  Provide the joint position as a JSON array containing 7 float values,
@@ -323,14 +323,12 @@ class RobotController(BaseModel):
323
323
 
324
324
  """
325
325
  configuration: Annotated[
326
- Union[
327
- AbbController,
328
- FanucController,
329
- KukaController,
330
- UniversalrobotsController,
331
- VirtualController,
332
- YaskawaController,
333
- ],
326
+ AbbController
327
+ | FanucController
328
+ | KukaController
329
+ | UniversalrobotsController
330
+ | VirtualController
331
+ | YaskawaController,
334
332
  Field(discriminator='kind'),
335
333
  ]
336
334
 
@@ -360,8 +358,8 @@ class ContainerImage(BaseModel):
360
358
  """
361
359
  The location of a container image in the form of `<registry>/<image>:<tag>`.
362
360
  """
363
- credentials: Optional[ImageCredentials] = None
364
- secrets: Optional[List[Secret]] = None
361
+ credentials: ImageCredentials | None = None
362
+ secrets: list[Secret] | None = None
365
363
  """
366
364
  Known secrets for authentication with the container registry.
367
365
  """
@@ -379,7 +377,7 @@ class ContainerEnvironment(RootModel):
379
377
 
380
378
  """
381
379
 
382
- root: List[ContainerEnvironmentItem]
380
+ root: list[ContainerEnvironmentItem]
383
381
  """
384
382
  A list of environment variables with name and their value.
385
383
  These can be used to configure the containerized application, and turn features on or off.
@@ -446,11 +444,11 @@ class ContainerResources(BaseModel):
446
444
  Additional resources that the application requires.
447
445
  """
448
446
 
449
- intel_gpu: Annotated[Optional[int], Field(ge=0, le=1)] = None
447
+ intel_gpu: Annotated[int | None, Field(ge=0, le=1)] = None
450
448
  """
451
449
  Number of GPUs the application requires.
452
450
  """
453
- memory_limit: Annotated[Optional[str], Field(examples=['1000Mi'])] = None
451
+ memory_limit: Annotated[str | None, Field(examples=['1000Mi'])] = None
454
452
  """
455
453
  The maximum memory allocated to this application.
456
454
  """
@@ -478,14 +476,14 @@ class App(BaseModel):
478
476
  The path of the icon for the App (/$cell/$name/$app_icon).
479
477
  """
480
478
  container_image: ContainerImage
481
- port: Optional[int] = 8080
479
+ port: int | None = 8080
482
480
  """
483
481
  The port the containerized webserver is listening on.
484
482
  """
485
- environment: Optional[ContainerEnvironment] = None
486
- storage: Optional[ContainerStorage] = None
487
- resources: Optional[ContainerResources] = None
488
- health_path: Optional[str] = None
483
+ environment: ContainerEnvironment | None = None
484
+ storage: ContainerStorage | None = None
485
+ resources: ContainerResources | None = None
486
+ health_path: str | None = None
489
487
  """
490
488
  Defines the URL path suffix used to check the application's health status. The complete health check URL
491
489
  is constructed as `/$cell/$name/$health_path`. When the application is working as expected,
@@ -498,7 +496,7 @@ class App(BaseModel):
498
496
  automatically restart the application container to restore service.
499
497
 
500
498
  """
501
- diagnosis_path: Optional[str] = None
499
+ diagnosis_path: str | None = None
502
500
  """
503
501
  Defines the URL path suffix used to provide an endpoint for diagnosis data collection.
504
502
  The complete diagnosis check URL is constructed as `/$cell/$name/$diagnosis_path`.
@@ -518,13 +516,13 @@ class Cell(BaseModel):
518
516
  """
519
517
 
520
518
  name: CellName
521
- description: Optional[CellDescription] = None
522
- controllers: Optional[List[RobotController]] = None
523
- apps: Optional[List[App]] = None
519
+ description: CellDescription | None = None
520
+ controllers: list[RobotController] | None = None
521
+ apps: list[App] | None = None
524
522
 
525
523
 
526
524
  class Error(BaseModel):
527
- code: Optional[str] = None
525
+ code: str | None = None
528
526
  message: str
529
527
 
530
528
 
@@ -570,7 +568,7 @@ class ServiceStatusPhase(Enum):
570
568
  class Status(BaseModel):
571
569
  severity: ServiceStatusSeverity
572
570
  code: ServiceStatusPhase
573
- reason: Optional[str] = None
571
+ reason: str | None = None
574
572
 
575
573
 
576
574
  class ServiceStatus(BaseModel):
@@ -580,7 +578,7 @@ class ServiceStatus(BaseModel):
580
578
 
581
579
 
582
580
  class ServiceStatusList(RootModel):
583
- root: List[ServiceStatus]
581
+ root: list[ServiceStatus]
584
582
 
585
583
  def __getitem__(self, index: int) -> ServiceStatus:
586
584
  """
@@ -644,14 +642,14 @@ class BusIOProfinetIpConfig(BaseModel):
644
642
 
645
643
 
646
644
  class BusIOProfinetNetwork(BaseModel):
647
- device_name: Annotated[Optional[str], Field(examples=['pnDevice'])] = None
645
+ device_name: Annotated[str | None, Field(examples=['pnDevice'])] = None
648
646
  """
649
647
  Name of Station (NoS) of the PROFINET device. The NoS is used in combination with IPv4 record to identify your device in the PROFINET network.
650
648
  The `device_name` will be used as NoS if no REMA XML file is already present on your machine and no `rema_xml_content` is provided.
651
649
 
652
650
  """
653
- ip_config: Optional[BusIOProfinetIpConfig] = None
654
- rema_xml_content: Optional[str] = None
651
+ ip_config: BusIOProfinetIpConfig | None = None
652
+ rema_xml_content: str | None = None
655
653
  """
656
654
  Content of the PROFINET REMA XML file.
657
655
  Is used when PROFINET service is added for the first time to create the REMA XML file that holds data to be kept for the next session.
@@ -690,7 +688,7 @@ class BusIOProfinet(BaseModel):
690
688
  """
691
689
 
692
690
  bus_type: Literal['profinet'] = 'profinet'
693
- network_config: Optional[BusIOProfinetNetwork] = None
691
+ network_config: BusIOProfinetNetwork | None = None
694
692
  """
695
693
  Used to enable IP communication through the same physical ethernet interface while PROFINET driver is active.
696
694
 
@@ -709,7 +707,9 @@ class BusIOProfinet(BaseModel):
709
707
  MAC address of the physical ethernet interface that you want to use for PROFINET communication.
710
708
 
711
709
  """
712
- default_route: Optional[BusIOProfinetDefaultRoute] = None
710
+ default_route: Annotated[
711
+ BusIOProfinetDefaultRoute | None, Field(deprecated=True)
712
+ ] = None
713
713
 
714
714
 
715
715
  class BusIOProfinetVirtual(BaseModel):
@@ -722,7 +722,7 @@ class BusIOProfinetVirtual(BaseModel):
722
722
 
723
723
 
724
724
  class BusIOModbusTCPServer(BaseModel):
725
- network_type: Optional[Literal['tcp']] = None
725
+ network_type: Literal['tcp'] | None = None
726
726
  port: Annotated[int, Field(examples=[502], ge=1, le=65534)]
727
727
  """
728
728
  Port number of the MODBUS server to establish communication with.
@@ -766,7 +766,7 @@ class BusIOModbusServer(BaseModel):
766
766
 
767
767
 
768
768
  class BusIOModbusTCPClient(BaseModel):
769
- network_type: Optional[Literal['tcp']] = None
769
+ network_type: Literal['tcp'] | None = None
770
770
  ip: Annotated[str, Field(examples=['192.168.1.100'])]
771
771
  """
772
772
  IP address of the MODBUS server to establish communication with.
@@ -800,13 +800,11 @@ class BusIOModbusVirtual(BaseModel):
800
800
 
801
801
  class BusIOType(RootModel):
802
802
  root: Annotated[
803
- Union[
804
- BusIOProfinet,
805
- BusIOProfinetVirtual,
806
- BusIOModbusServer,
807
- BusIOModbusClient,
808
- BusIOModbusVirtual,
809
- ],
803
+ BusIOProfinet
804
+ | BusIOProfinetVirtual
805
+ | BusIOModbusServer
806
+ | BusIOModbusClient
807
+ | BusIOModbusVirtual,
810
808
  Field(discriminator='bus_type'),
811
809
  ]
812
810
 
@@ -845,7 +843,7 @@ class Metadata(RootModel):
845
843
  Additional metadata to add to the backup
846
844
  """
847
845
 
848
- root: Dict[str, str]
846
+ root: dict[str, str]
849
847
 
850
848
 
851
849
  class ConfigurationArchive(RootModel):
@@ -883,11 +881,9 @@ class ConfigurationArchiveStatusSuccess(BaseModel):
883
881
 
884
882
  class ConfigurationArchiveStatus(RootModel):
885
883
  root: Annotated[
886
- Union[
887
- ConfigurationArchiveStatusCreating,
888
- ConfigurationArchiveStatusError,
889
- ConfigurationArchiveStatusSuccess,
890
- ],
884
+ ConfigurationArchiveStatusCreating
885
+ | ConfigurationArchiveStatusError
886
+ | ConfigurationArchiveStatusSuccess,
891
887
  Field(discriminator='status'),
892
888
  ]
893
889
  """
@@ -925,7 +921,7 @@ class License(BaseModel):
925
921
  """
926
922
  Identification key of the license.
927
923
  """
928
- license_expiry_date: Optional[date] = None
924
+ license_expiry_date: date | None = None
929
925
  """
930
926
  Expiration date of the license.
931
927
  """
@@ -941,11 +937,11 @@ class License(BaseModel):
941
937
  """
942
938
  Amount of times the license can be activated.
943
939
  """
944
- feature_limitations: Optional[Dict[str, int]] = None
940
+ feature_limitations: dict[str, int] | None = None
945
941
  """
946
942
  Feature limitations of the license.
947
943
  """
948
- feature_flags: Optional[List[str]] = None
944
+ feature_flags: list[str] | None = None
949
945
  """
950
946
  Features enabled by a license.
951
947
  """
@@ -1101,7 +1097,7 @@ class Vector3d(RootModel):
1101
1097
 
1102
1098
  """
1103
1099
 
1104
- root: Annotated[List[float], Field(max_length=3, min_length=3, title='Vector3d')]
1100
+ root: Annotated[list[float], Field(max_length=3, min_length=3, title='Vector3d')]
1105
1101
  """
1106
1102
  A three-dimensional vector [x, y, z] with double precision.
1107
1103
 
@@ -1138,7 +1134,7 @@ class ConvexHull(BaseModel):
1138
1134
  """
1139
1135
 
1140
1136
  shape_type: Literal['convex_hull'] = 'convex_hull'
1141
- vertices: List[Vector3d]
1137
+ vertices: list[Vector3d]
1142
1138
  """
1143
1139
  The list of encapsulated points.
1144
1140
  """
@@ -1154,7 +1150,7 @@ class RotationVector(RootModel):
1154
1150
  """
1155
1151
 
1156
1152
  root: Annotated[
1157
- List[float], Field(max_length=3, min_length=3, title='RotationVector')
1153
+ list[float], Field(max_length=3, min_length=3, title='RotationVector')
1158
1154
  ]
1159
1155
  """
1160
1156
  Defines a rotation in 3D space.
@@ -1197,8 +1193,8 @@ class Pose(BaseModel):
1197
1193
 
1198
1194
  """
1199
1195
 
1200
- position: Optional[Vector3d] = None
1201
- orientation: Optional[RotationVector] = None
1196
+ position: Vector3d | None = None
1197
+ orientation: RotationVector | None = None
1202
1198
 
1203
1199
 
1204
1200
  class Collider(BaseModel):
@@ -1216,27 +1212,25 @@ class Collider(BaseModel):
1216
1212
  """
1217
1213
 
1218
1214
  shape: Annotated[
1219
- Union[
1220
- Sphere,
1221
- Box,
1222
- Rectangle,
1223
- Plane,
1224
- Cylinder,
1225
- Capsule,
1226
- RectangularCapsule,
1227
- ConvexHull,
1228
- ],
1215
+ Sphere
1216
+ | Box
1217
+ | Rectangle
1218
+ | Plane
1219
+ | Cylinder
1220
+ | Capsule
1221
+ | RectangularCapsule
1222
+ | ConvexHull,
1229
1223
  Field(discriminator='shape_type'),
1230
1224
  ]
1231
- pose: Optional[Pose] = None
1232
- margin: Optional[float] = 0
1225
+ pose: Pose | None = None
1226
+ margin: float | None = 0
1233
1227
  """
1234
1228
  Increases the shape's size in all dimensions. Applied in [mm]. Can be used to keep a safe distance to the shape.
1235
1229
  """
1236
1230
 
1237
1231
 
1238
1232
  class Link(RootModel):
1239
- root: Dict[str, Collider]
1233
+ root: dict[str, Collider]
1240
1234
 
1241
1235
 
1242
1236
  class LinkChain(RootModel):
@@ -1257,7 +1251,7 @@ class LinkChain(RootModel):
1257
1251
  """
1258
1252
 
1259
1253
  root: Annotated[
1260
- List[Link],
1254
+ list[Link],
1261
1255
  Field(
1262
1256
  examples=[
1263
1257
  [
@@ -1335,7 +1329,7 @@ class ControllerDescription(BaseModel):
1335
1329
  The data type to describe a robot controller.
1336
1330
  """
1337
1331
 
1338
- connected_motion_groups: List[str]
1332
+ connected_motion_groups: list[str]
1339
1333
  supports_freedrive: bool
1340
1334
  """
1341
1335
  Can this controller be moved through freedrive (true), or not (false).
@@ -1462,7 +1456,7 @@ class Joints(RootModel):
1462
1456
 
1463
1457
  """
1464
1458
 
1465
- root: List[float]
1459
+ root: list[float]
1466
1460
  """
1467
1461
  This structure describes a set of joint values, e.g., positions, currents, torques, of a motion group.
1468
1462
 
@@ -1502,7 +1496,7 @@ class MotionGroupStateJointLimitReached(BaseModel):
1502
1496
 
1503
1497
  """
1504
1498
 
1505
- limit_reached: List[bool]
1499
+ limit_reached: list[bool]
1506
1500
  """
1507
1501
  If true, operational (soft) jointLimit is reached for specific joint.
1508
1502
  """
@@ -1546,7 +1540,7 @@ class JoggingPausedNearJointLimit(BaseModel):
1546
1540
  """
1547
1541
 
1548
1542
  kind: Literal['PAUSED_NEAR_JOINT_LIMIT'] = 'PAUSED_NEAR_JOINT_LIMIT'
1549
- joint_indices: List[JointIndice]
1543
+ joint_indices: list[JointIndice]
1550
1544
 
1551
1545
 
1552
1546
  class JoggingPausedNearCollision(BaseModel):
@@ -1573,13 +1567,11 @@ class JoggingDetails(BaseModel):
1573
1567
  """
1574
1568
 
1575
1569
  state: Annotated[
1576
- Union[
1577
- JoggingRunning,
1578
- JoggingPausedByUser,
1579
- JoggingPausedOnIO,
1580
- JoggingPausedNearJointLimit,
1581
- JoggingPausedNearCollision,
1582
- ],
1570
+ JoggingRunning
1571
+ | JoggingPausedByUser
1572
+ | JoggingPausedOnIO
1573
+ | JoggingPausedNearJointLimit
1574
+ | JoggingPausedNearCollision,
1583
1575
  Field(discriminator='kind'),
1584
1576
  ]
1585
1577
  kind: Literal['JOGGING'] = 'JOGGING'
@@ -1670,13 +1662,11 @@ class TrajectoryDetails(BaseModel):
1670
1662
  """
1671
1663
  location: Location
1672
1664
  state: Annotated[
1673
- Union[
1674
- TrajectoryRunning,
1675
- TrajectoryPausedByUser,
1676
- TrajectoryEnded,
1677
- TrajectoryWaitForIO,
1678
- TrajectoryPausedOnIO,
1679
- ],
1665
+ TrajectoryRunning
1666
+ | TrajectoryPausedByUser
1667
+ | TrajectoryEnded
1668
+ | TrajectoryWaitForIO
1669
+ | TrajectoryPausedOnIO,
1680
1670
  Field(discriminator='kind'),
1681
1671
  ]
1682
1672
  kind: Literal['TRAJECTORY'] = 'TRAJECTORY'
@@ -1694,13 +1684,13 @@ class Execute(BaseModel):
1694
1684
 
1695
1685
  """
1696
1686
 
1697
- joint_position: List[float]
1687
+ joint_position: list[float]
1698
1688
  """
1699
1689
  Commanded joint position of each joint in [rad]. This command was sent in the time step the corresponding state was received.
1700
1690
 
1701
1691
  """
1702
1692
  details: Annotated[
1703
- Optional[Union[JoggingDetails, TrajectoryDetails]], Field(discriminator='kind')
1693
+ JoggingDetails | TrajectoryDetails | None, Field(discriminator='kind')
1704
1694
  ] = None
1705
1695
 
1706
1696
 
@@ -1737,19 +1727,19 @@ class MotionGroupState(BaseModel):
1737
1727
  Indicates whether the joint is in a limit for all joints of the motion group.
1738
1728
 
1739
1729
  """
1740
- joint_torque: Optional[Joints] = None
1730
+ joint_torque: Joints | None = None
1741
1731
  """
1742
1732
  Current joint torque of each joint in [Nm].
1743
1733
  Is only available if the robot controller supports it, e.g., available for UR controllers.
1744
1734
 
1745
1735
  """
1746
- joint_current: Optional[Joints] = None
1736
+ joint_current: Joints | None = None
1747
1737
  """
1748
1738
  Current at TCP in [A].
1749
1739
  Is only available if the robot controller supports it, e.g., available for UR controllers.
1750
1740
 
1751
1741
  """
1752
- flange_pose: Optional[Pose] = None
1742
+ flange_pose: Pose | None = None
1753
1743
  """
1754
1744
  Pose of the flange.
1755
1745
  Positions are in [mm].
@@ -1758,13 +1748,13 @@ class MotionGroupState(BaseModel):
1758
1748
  For robot arms a flange pose is always returned, for positioners the flange might not be available, depending on the model.
1759
1749
 
1760
1750
  """
1761
- tcp: Optional[str] = None
1751
+ tcp: str | None = None
1762
1752
  """
1763
1753
  Unique identifier addressing the active TCP.
1764
1754
  Might not be returned for positioners as some do not support TCPs, depending on the model.
1765
1755
 
1766
1756
  """
1767
- tcp_pose: Optional[Pose] = None
1757
+ tcp_pose: Pose | None = None
1768
1758
  """
1769
1759
  Pose of the TCP selected on the robot control panel.
1770
1760
  Positions are in [mm].
@@ -1773,14 +1763,14 @@ class MotionGroupState(BaseModel):
1773
1763
  Might not be returned for positioners as some do not support TCPs, depending on the model.
1774
1764
 
1775
1765
  """
1776
- coordinate_system: Optional[str] = None
1766
+ coordinate_system: str | None = None
1777
1767
  """
1778
1768
  Unique identifier addressing the reference coordinate system of the cartesian data.
1779
1769
  Might not be returned for positioners as some do not support TCPs, depending on the model.
1780
1770
  Default: world coordinate system of corresponding controller.
1781
1771
 
1782
1772
  """
1783
- payload: Optional[str] = None
1773
+ payload: str | None = None
1784
1774
  """
1785
1775
  Unique identifier addressing the active payload.
1786
1776
  Only fetchable via GET endpoint, not available in WebSocket.
@@ -1792,7 +1782,7 @@ class MotionGroupState(BaseModel):
1792
1782
  Convenience: Signals that NOVA treats measured joint velocities as 0.
1793
1783
 
1794
1784
  """
1795
- execute: Optional[Execute] = None
1785
+ execute: Execute | None = None
1796
1786
  """
1797
1787
  Data that was commanded to the motion group. Includes additional data on NOVA's execution components for executing trajectories and jogging.
1798
1788
  This is a convenience field to indicate the last command sent to the motion group.
@@ -1810,7 +1800,7 @@ class RobotControllerState(BaseModel):
1810
1800
  """
1811
1801
  Mode of communication and control between NOVA and the robot controller.
1812
1802
  """
1813
- last_error: Optional[List[str]] = None
1803
+ last_error: list[str] | None = None
1814
1804
  """
1815
1805
  Last error stack encountered during initialization process or after a controller disconnect.
1816
1806
  At this stage, it's unclear whether the error is fatal.
@@ -1837,14 +1827,14 @@ class RobotControllerState(BaseModel):
1837
1827
  """
1838
1828
  operation_mode: OperationMode
1839
1829
  safety_state: SafetyStateType
1840
- velocity_override: Annotated[Optional[int], Field(ge=1, le=100)] = None
1830
+ velocity_override: Annotated[int | None, Field(ge=1, le=100)] = None
1841
1831
  """
1842
1832
  If made available by the robot controller, returns the current velocity override in
1843
1833
  [percentage] for movements adjusted on robot control panel.
1844
1834
  Valid value range: 1 - 100.
1845
1835
 
1846
1836
  """
1847
- motion_groups: Annotated[List[MotionGroupState], Field(title='MotionGroupState[]')]
1837
+ motion_groups: Annotated[list[MotionGroupState], Field(title='MotionGroupState[]')]
1848
1838
  """
1849
1839
  State of indicated motion groups.
1850
1840
  In case of state request via controller all configured motion groups are returned.
@@ -1924,7 +1914,7 @@ class FloatValue(BaseModel):
1924
1914
 
1925
1915
  class IOBoundary(RootModel):
1926
1916
  root: Annotated[
1927
- Union[BooleanValue, IntegerValue, FloatValue],
1917
+ BooleanValue | IntegerValue | FloatValue,
1928
1918
  Field(discriminator='value_type', title='IOBoundary'),
1929
1919
  ]
1930
1920
 
@@ -1940,20 +1930,20 @@ class IODescription(BaseModel):
1940
1930
  Name of the input/output. Customize it on the physical controller or in the virtual robot specification.
1941
1931
 
1942
1932
  """
1943
- group: Optional[str] = None
1933
+ group: str | None = None
1944
1934
  """
1945
1935
  Name of the input/output group. Customize it on the physical controller or in the virtual robot specification.
1946
1936
 
1947
1937
  """
1948
1938
  direction: IODirection
1949
1939
  value_type: IOValueType
1950
- unit: Optional[UnitType] = None
1951
- min: Optional[IOBoundary] = None
1952
- max: Optional[IOBoundary] = None
1940
+ unit: UnitType | None = None
1941
+ min: IOBoundary | None = None
1942
+ max: IOBoundary | None = None
1953
1943
 
1954
1944
 
1955
1945
  class ListIODescriptionsResponse(RootModel):
1956
- root: List[IODescription]
1946
+ root: list[IODescription]
1957
1947
 
1958
1948
  def __getitem__(self, index: int) -> IODescription:
1959
1949
  """
@@ -2029,7 +2019,7 @@ class IOFloatValue(BaseModel):
2029
2019
 
2030
2020
  class IOValue(RootModel):
2031
2021
  root: Annotated[
2032
- Union[IOBooleanValue, IOIntegerValue, IOFloatValue],
2022
+ IOBooleanValue | IOIntegerValue | IOFloatValue,
2033
2023
  Field(discriminator='value_type'),
2034
2024
  ]
2035
2025
 
@@ -2039,7 +2029,7 @@ class StreamIOValuesResponse(BaseModel):
2039
2029
  Array of input/output values.
2040
2030
  """
2041
2031
 
2042
- io_values: List[IOValue]
2032
+ io_values: list[IOValue]
2043
2033
  timestamp: AwareDatetime
2044
2034
  """
2045
2035
  Timestamp indicating when the represented information was received from the robot controller.
@@ -2058,7 +2048,7 @@ class ListIOValuesResponse(RootModel):
2058
2048
  """
2059
2049
 
2060
2050
  root: Annotated[
2061
- List[IOValue],
2051
+ list[IOValue],
2062
2052
  Field(
2063
2053
  examples=[
2064
2054
  {
@@ -2211,7 +2201,7 @@ class Orientation(RootModel):
2211
2201
 
2212
2202
  """
2213
2203
 
2214
- root: Annotated[List[float], Field(max_length=4, min_length=3, title='Orientation')]
2204
+ root: Annotated[list[float], Field(max_length=4, min_length=3, title='Orientation')]
2215
2205
  """
2216
2206
  Describes an orientation in 3D space.
2217
2207
  A tree-to-four-dimensional vector [x, y, z, w] with double precision.
@@ -2244,17 +2234,17 @@ class Orientation(RootModel):
2244
2234
 
2245
2235
 
2246
2236
  class CoordinateSystemData(BaseModel):
2247
- name: Optional[str] = None
2237
+ name: str | None = None
2248
2238
  """
2249
2239
  Human readable name of this coordinate system.
2250
2240
  """
2251
- reference_coordinate_system: Optional[str] = None
2241
+ reference_coordinate_system: str | None = None
2252
2242
  """
2253
2243
  The identifier of the reference coordinate system. Empty if world is used.
2254
2244
  """
2255
- position: Optional[Vector3d] = None
2256
- orientation: Optional[Orientation] = None
2257
- orientation_type: Optional[OrientationType] = 'ROTATION_VECTOR'
2245
+ position: Vector3d | None = None
2246
+ orientation: Orientation | None = None
2247
+ orientation_type: OrientationType | None = 'ROTATION_VECTOR'
2258
2248
 
2259
2249
 
2260
2250
  class CoordinateSystem(CoordinateSystemData):
@@ -2265,7 +2255,7 @@ class CoordinateSystem(CoordinateSystemData):
2265
2255
 
2266
2256
 
2267
2257
  class ListCoordinateSystemsResponse(RootModel):
2268
- root: List[CoordinateSystem]
2258
+ root: list[CoordinateSystem]
2269
2259
 
2270
2260
  def __getitem__(self, index: int) -> CoordinateSystem:
2271
2261
  """
@@ -2312,7 +2302,7 @@ class ColliderDictionary(RootModel):
2312
2302
  A collection of identifiable colliders.
2313
2303
  """
2314
2304
 
2315
- root: Dict[str, Collider]
2305
+ root: dict[str, Collider]
2316
2306
 
2317
2307
 
2318
2308
  class LimitRange(BaseModel):
@@ -2320,37 +2310,37 @@ class LimitRange(BaseModel):
2320
2310
  The upper_limit must be greater then the lower_limit.
2321
2311
  """
2322
2312
 
2323
- lower_limit: Optional[float] = None
2324
- upper_limit: Optional[float] = None
2313
+ lower_limit: float | None = None
2314
+ upper_limit: float | None = None
2325
2315
 
2326
2316
 
2327
2317
  class JointLimits(BaseModel):
2328
- position: Optional[LimitRange] = None
2329
- velocity: Optional[float] = None
2330
- acceleration: Optional[float] = None
2331
- torque: Optional[float] = None
2318
+ position: LimitRange | None = None
2319
+ velocity: float | None = None
2320
+ acceleration: float | None = None
2321
+ torque: float | None = None
2332
2322
 
2333
2323
 
2334
2324
  class CartesianLimits(BaseModel):
2335
- velocity: Optional[float] = None
2336
- acceleration: Optional[float] = None
2337
- orientation_velocity: Optional[float] = None
2338
- orientation_acceleration: Optional[float] = None
2325
+ velocity: float | None = None
2326
+ acceleration: float | None = None
2327
+ orientation_velocity: float | None = None
2328
+ orientation_acceleration: float | None = None
2339
2329
 
2340
2330
 
2341
2331
  class LimitSet(BaseModel):
2342
- joints: Optional[List[JointLimits]] = None
2343
- tcp: Optional[CartesianLimits] = None
2344
- elbow: Optional[CartesianLimits] = None
2345
- flange: Optional[CartesianLimits] = None
2346
- coupled_shoulder_elbow_joint: Optional[JointLimits] = None
2332
+ joints: list[JointLimits] | None = None
2333
+ tcp: CartesianLimits | None = None
2334
+ elbow: CartesianLimits | None = None
2335
+ flange: CartesianLimits | None = None
2336
+ coupled_shoulder_elbow_joint: JointLimits | None = None
2347
2337
 
2348
2338
 
2349
2339
  class OperationLimits(BaseModel):
2350
- auto_limits: Optional[LimitSet] = None
2351
- manual_limits: Optional[LimitSet] = None
2352
- manual_t1_limits: Optional[LimitSet] = None
2353
- manual_t2_limits: Optional[LimitSet] = None
2340
+ auto_limits: LimitSet | None = None
2341
+ manual_limits: LimitSet | None = None
2342
+ manual_t1_limits: LimitSet | None = None
2343
+ manual_t2_limits: LimitSet | None = None
2354
2344
 
2355
2345
 
2356
2346
  class Payload(BaseModel):
@@ -2359,8 +2349,8 @@ class Payload(BaseModel):
2359
2349
  """
2360
2350
  Mass of payload in [kg].
2361
2351
  """
2362
- center_of_mass: Optional[Vector3d] = None
2363
- moment_of_inertia: Optional[Vector3d] = None
2352
+ center_of_mass: Vector3d | None = None
2353
+ moment_of_inertia: Vector3d | None = None
2364
2354
 
2365
2355
 
2366
2356
  class DHParameter(BaseModel):
@@ -2368,23 +2358,23 @@ class DHParameter(BaseModel):
2368
2358
  A single set of DH parameters.
2369
2359
  """
2370
2360
 
2371
- alpha: Optional[float] = None
2361
+ alpha: float | None = None
2372
2362
  """
2373
2363
  Angle about x-axis in [rad].
2374
2364
  """
2375
- theta: Optional[float] = None
2365
+ theta: float | None = None
2376
2366
  """
2377
2367
  Angle about z-axis in [rad].
2378
2368
  """
2379
- a: Optional[float] = None
2369
+ a: float | None = None
2380
2370
  """
2381
2371
  Offset along x-axis in [mm].
2382
2372
  """
2383
- d: Optional[float] = None
2373
+ d: float | None = None
2384
2374
  """
2385
2375
  Offset along z-axis in [mm].
2386
2376
  """
2387
- reverse_rotation_direction: Optional[bool] = None
2377
+ reverse_rotation_direction: bool | None = None
2388
2378
  """
2389
2379
  True, if rotation direction of joint is reversed.
2390
2380
  """
@@ -2396,30 +2386,30 @@ class MotionGroupDescription(BaseModel):
2396
2386
  """
2397
2387
 
2398
2388
  motion_group_model: MotionGroupModel
2399
- mounting: Optional[Pose] = None
2389
+ mounting: Pose | None = None
2400
2390
  """
2401
2391
  The offset from the world frame to the motion group base.
2402
2392
  """
2403
- tcps: Annotated[
2404
- Optional[Dict[str, TcpOffset]], Field(title='TcpOffsetDictionary')
2405
- ] = None
2393
+ tcps: Annotated[dict[str, TcpOffset] | None, Field(title='TcpOffsetDictionary')] = (
2394
+ None
2395
+ )
2406
2396
  """
2407
2397
  Maps a TCP name to its offset relative to the flange coordinate system. Key must be a TCP identifier.
2408
2398
  Values are TcpOffsets.
2409
2399
 
2410
2400
  """
2411
- safety_zones: Optional[ColliderDictionary] = None
2401
+ safety_zones: ColliderDictionary | None = None
2412
2402
  """
2413
2403
  SafetyZones are areas which cannot be entered or where certain limits apply.
2414
2404
  """
2415
- safety_link_colliders: Optional[List[ColliderDictionary]] = None
2405
+ safety_link_colliders: list[ColliderDictionary] | None = None
2416
2406
  """
2417
2407
  The shape of the MotionGroups links to validate against safety zones.
2418
2408
  Indexed along the kinematic chain, starting with a static base shape before first joint.
2419
2409
 
2420
2410
  """
2421
2411
  safety_tool_colliders: Annotated[
2422
- Optional[Dict[str, ColliderDictionary]], Field(title='SafetyToolColliders')
2412
+ dict[str, ColliderDictionary] | None, Field(title='SafetyToolColliders')
2423
2413
  ] = None
2424
2414
  """
2425
2415
  Maps a TCP name to its tool collider. Key must be a TCP identifier.
@@ -2427,23 +2417,23 @@ class MotionGroupDescription(BaseModel):
2427
2417
 
2428
2418
  """
2429
2419
  operation_limits: OperationLimits
2430
- payloads: Annotated[
2431
- Optional[Dict[str, Payload]], Field(title='PayloadDictionary')
2432
- ] = None
2420
+ payloads: Annotated[dict[str, Payload] | None, Field(title='PayloadDictionary')] = (
2421
+ None
2422
+ )
2433
2423
  """
2434
2424
  Maps a payload name to its configuration. Key must be a payload identifier.
2435
2425
  Values are payload objects.
2436
2426
 
2437
2427
  """
2438
- cycle_time: Annotated[Optional[int], Field(ge=0, le=2147483647)] = None
2428
+ cycle_time: Annotated[int | None, Field(ge=0, le=2147483647)] = None
2439
2429
  """
2440
2430
  [ms] cycle time of the motion group controller. A trajectory for this motion group should be computed to this resolution.
2441
2431
  """
2442
- dh_parameters: Optional[List[DHParameter]] = None
2432
+ dh_parameters: list[DHParameter] | None = None
2443
2433
  """
2444
2434
  The DH parameters describing the motion group geometry, starting from base.
2445
2435
  """
2446
- serial_number: Optional[str] = None
2436
+ serial_number: str | None = None
2447
2437
  """
2448
2438
  The serial number of the motion group, if available. If not available, the serial number of the robot controller. If not available, empty.
2449
2439
 
@@ -2460,28 +2450,28 @@ class Tool(RootModel):
2460
2450
 
2461
2451
  """
2462
2452
 
2463
- root: Dict[str, Collider]
2453
+ root: dict[str, Collider]
2464
2454
 
2465
2455
 
2466
2456
  class CollisionSetup(BaseModel):
2467
- colliders: Optional[ColliderDictionary] = None
2457
+ colliders: ColliderDictionary | None = None
2468
2458
  """
2469
2459
  Colliders are checked against links and tool.
2470
2460
 
2471
2461
  """
2472
- link_chain: Optional[LinkChain] = None
2462
+ link_chain: LinkChain | None = None
2473
2463
  """
2474
2464
  The shape of the motion groups links to validate against colliders.
2475
2465
  Indexed along the kinematic chain, starting with a static base shape before first joint.
2476
2466
  The base of the motion group is not checked for collision against the environment.
2477
2467
 
2478
2468
  """
2479
- tool: Optional[Tool] = None
2469
+ tool: Tool | None = None
2480
2470
  """
2481
2471
  Shape of the tool to validate against colliders.
2482
2472
 
2483
2473
  """
2484
- self_collision_detection: Optional[bool] = True
2474
+ self_collision_detection: bool | None = True
2485
2475
  """
2486
2476
  If true, self-collision detection is enabled for the motion group.
2487
2477
 
@@ -2509,7 +2499,7 @@ class CollisionSetups(RootModel):
2509
2499
 
2510
2500
  """
2511
2501
 
2512
- root: Dict[str, CollisionSetup]
2502
+ root: dict[str, CollisionSetup]
2513
2503
 
2514
2504
 
2515
2505
  class MotionGroupSetup(BaseModel):
@@ -2518,18 +2508,18 @@ class MotionGroupSetup(BaseModel):
2518
2508
  """
2519
2509
  [ms] cycle time of the motion group controller. A trajectory for this motion group should be computed to this resolution.
2520
2510
  """
2521
- mounting: Optional[Pose] = None
2511
+ mounting: Pose | None = None
2522
2512
  """
2523
2513
  The offset from the world frame to the motion group base.
2524
2514
  """
2525
- tcp_offset: Optional[Pose] = None
2526
- global_limits: Optional[LimitSet] = None
2527
- payload: Optional[Payload] = None
2528
- collision_setups: Optional[CollisionSetups] = None
2515
+ tcp_offset: Pose | None = None
2516
+ global_limits: LimitSet | None = None
2517
+ payload: Payload | None = None
2518
+ collision_setups: CollisionSetups | None = None
2529
2519
 
2530
2520
 
2531
2521
  class DoubleArray(RootModel):
2532
- root: List[float]
2522
+ root: list[float]
2533
2523
 
2534
2524
  def __getitem__(self, index: int) -> float:
2535
2525
  """
@@ -2557,23 +2547,70 @@ class DoubleArray(RootModel):
2557
2547
 
2558
2548
 
2559
2549
  class BlendingAuto(BaseModel):
2560
- min_velocity_in_percent: Annotated[Optional[int], Field(ge=0, le=100)] = None
2550
+ min_velocity_in_percent: Annotated[int | None, Field(ge=0, le=100)] = None
2561
2551
  """
2562
- Auto-blending is used to keep a constant velocity when blending between two motion commands.
2552
+ Auto-blending is used to keep a constant velocity when blending between two motion commands. To use auto-blending, the TCP velocity limit must be set.
2563
2553
  It changes the TCP path around the target point of the motion command.
2564
- The value represents the percentage of the original velocity.
2554
+ The value represents the percentage of the original velocity. Auto-blending is always performed in cartesian space.
2565
2555
 
2566
2556
  """
2567
2557
  blending_name: Literal['BlendingAuto'] = 'BlendingAuto'
2568
2558
 
2569
2559
 
2560
+ class BlendingSpace(Enum):
2561
+ """
2562
+ Defines the space in which blending is performed.
2563
+ - `JOINT`: Zone blending is performed in joint space
2564
+ - `CARTESIAN`: Auto-blending is performed in cartesian space
2565
+
2566
+ """
2567
+
2568
+ JOINT = 'JOINT'
2569
+ CARTESIAN = 'CARTESIAN'
2570
+
2571
+
2570
2572
  class BlendingPosition(BaseModel):
2571
- position_zone_radius: Optional[float] = None
2573
+ position_zone_radius: float | None = None
2572
2574
  """
2573
2575
  Specifies the maximum radius in [mm] around the motion command's target point
2574
2576
  where the TCP path can be altered to blend the motion command into the following one.
2575
2577
  If auto-blending blends too much of the resulting trajectory, use position-blending to restrict the blending zone radius.
2576
2578
 
2579
+ """
2580
+ position_zone_percentage: Annotated[float | None, Field(ge=0.0, le=100.0)] = None
2581
+ """
2582
+ Specifies the maximum blending percentage based on the trajectory length in position space
2583
+ around the motion command's target point. Percentage indicated in 0.0 - 100.0.
2584
+
2585
+ """
2586
+ orientation_zone_radius: float | None = None
2587
+ """
2588
+ Specifies the maximum radius in [rad] for orientation blending around the motion command's
2589
+ target orientation. At the target's orientation, the TCP orientation can be altered to blend into the following motion.
2590
+
2591
+ """
2592
+ orientation_zone_percentage: Annotated[float | None, Field(ge=0.0, le=100.0)] = None
2593
+ """
2594
+ Specifies the maximum blending percentage for orientation blending
2595
+ based on the trajectory length in orientation space. Percentage indicated in 0.0 - 100.0.
2596
+
2597
+ """
2598
+ joints_zone_radius: float | None = None
2599
+ """
2600
+ Specifies the maximum radius in [rad] for joint space blending around the motion command's
2601
+ target joint configuration. At the target joint configuration, the joint path can be altered to blend into the following motion.
2602
+
2603
+ """
2604
+ joints_zone_percentage: Annotated[float | None, Field(ge=0.0, le=100.0)] = None
2605
+ """
2606
+ Specifies the maximum blending percentage for joint space blending
2607
+ based on the trajectory length in joint space. Percentage indicated in 0.0 to 100.0.
2608
+
2609
+ """
2610
+ space: BlendingSpace | None = None
2611
+ """
2612
+ Defines the space in which blending is performed.
2613
+
2577
2614
  """
2578
2615
  blending_name: Literal['BlendingPosition'] = 'BlendingPosition'
2579
2616
 
@@ -2584,34 +2621,34 @@ class LimitsOverride(BaseModel):
2584
2621
 
2585
2622
  """
2586
2623
 
2587
- joint_velocity_limits: Optional[List[float]] = None
2624
+ joint_velocity_limits: list[float] | None = None
2588
2625
  """
2589
2626
  Maximum joint velocity in [rad/s] for each joint.
2590
2627
  Either leave this field empty or set a value for each joint.
2591
2628
 
2592
2629
  """
2593
- joint_acceleration_limits: Optional[List[float]] = None
2630
+ joint_acceleration_limits: list[float] | None = None
2594
2631
  """
2595
2632
  Maximum joint acceleration in [rad/s^2] for each joint.
2596
2633
  Either leave this field empty or set a value for each joint.
2597
2634
 
2598
2635
  """
2599
- tcp_velocity_limit: Optional[float] = None
2636
+ tcp_velocity_limit: float | None = None
2600
2637
  """
2601
2638
  Maximum allowed TCP velocity in [mm/s].
2602
2639
 
2603
2640
  """
2604
- tcp_acceleration_limit: Optional[float] = None
2641
+ tcp_acceleration_limit: float | None = None
2605
2642
  """
2606
2643
  Maximum allowed TCP acceleration in [mm/s^2].
2607
2644
 
2608
2645
  """
2609
- tcp_orientation_velocity_limit: Optional[float] = None
2646
+ tcp_orientation_velocity_limit: float | None = None
2610
2647
  """
2611
2648
  Maximum allowed TCP rotation velocity in [rad/s].
2612
2649
 
2613
2650
  """
2614
- tcp_orientation_acceleration_limit: Optional[float] = None
2651
+ tcp_orientation_acceleration_limit: float | None = None
2615
2652
  """
2616
2653
  Maximum allowed TCP rotation acceleration in [rad/s^2].
2617
2654
 
@@ -2642,7 +2679,7 @@ class PathCubicSpline(BaseModel):
2642
2679
 
2643
2680
  """
2644
2681
 
2645
- parameters: List[CubicSplineParameter]
2682
+ parameters: list[CubicSplineParameter]
2646
2683
  path_definition_name: Literal['PathCubicSpline'] = 'PathCubicSpline'
2647
2684
 
2648
2685
 
@@ -2683,21 +2720,20 @@ class PathJointPTP(BaseModel):
2683
2720
 
2684
2721
  class MotionCommand(BaseModel):
2685
2722
  blending: Annotated[
2686
- Optional[Union[BlendingAuto, BlendingPosition]],
2687
- Field(discriminator='blending_name'),
2723
+ BlendingAuto | BlendingPosition | None, Field(discriminator='blending_name')
2688
2724
  ] = None
2689
2725
  """
2690
2726
  Blending alters the TCP path at the target point of a motion command
2691
2727
  to ensure that the velocity does not drop to zero between two motion commands.
2692
2728
 
2693
2729
  """
2694
- limits_override: Optional[LimitsOverride] = None
2730
+ limits_override: LimitsOverride | None = None
2695
2731
  """
2696
2732
  Limits override is used to override the global limits of the motion group for this segment of the motion.
2697
2733
 
2698
2734
  """
2699
2735
  path: Annotated[
2700
- Union[PathCartesianPTP, PathCubicSpline, PathLine, PathCircle, PathJointPTP],
2736
+ PathCartesianPTP | PathCubicSpline | PathLine | PathCircle | PathJointPTP,
2701
2737
  Field(discriminator='path_definition_name'),
2702
2738
  ]
2703
2739
 
@@ -2716,7 +2752,7 @@ class PlanTrajectoryRequest(BaseModel):
2716
2752
  To move the robot to the start joint position use the endpoint [streamMoveToTrajectoryViaJointP2P](streamMoveToTrajectoryViaJointP2P).
2717
2753
 
2718
2754
  """
2719
- motion_commands: List[MotionCommand]
2755
+ motion_commands: list[MotionCommand]
2720
2756
  """
2721
2757
  List of motion commands. A command consists of a path definition (line, circle, joint_ptp, cartesian_ptp, cubic_spline), blending, and limits override.
2722
2758
 
@@ -2724,17 +2760,17 @@ class PlanTrajectoryRequest(BaseModel):
2724
2760
 
2725
2761
 
2726
2762
  class JointTrajectory(BaseModel):
2727
- joint_positions: List[Joints]
2763
+ joint_positions: list[Joints]
2728
2764
  """
2729
2765
  List of joint positions [rad] for each sample.
2730
2766
  The number of samples must match the number of timestamps provided in the times field.
2731
2767
 
2732
2768
  """
2733
- times: List[float]
2769
+ times: list[float]
2734
2770
  """
2735
2771
  Timestamp for each sample [s].
2736
2772
  """
2737
- locations: List[Location]
2773
+ locations: list[Location]
2738
2774
 
2739
2775
 
2740
2776
  class FeedbackOutOfWorkspace(BaseModel):
@@ -2742,7 +2778,7 @@ class FeedbackOutOfWorkspace(BaseModel):
2742
2778
  Requested TCP pose is outside of motion group's workspace.
2743
2779
  """
2744
2780
 
2745
- invalid_tcp_pose: Optional[Pose] = None
2781
+ invalid_tcp_pose: Pose | None = None
2746
2782
  error_feedback_name: Literal['FeedbackOutOfWorkspace'] = 'FeedbackOutOfWorkspace'
2747
2783
 
2748
2784
 
@@ -2763,8 +2799,8 @@ class FeedbackSingularity(BaseModel):
2763
2799
 
2764
2800
  """
2765
2801
 
2766
- singularity_type: Optional[SingularityTypeEnum] = None
2767
- singular_joint_position: Optional[DoubleArray] = None
2802
+ singularity_type: SingularityTypeEnum | None = None
2803
+ singular_joint_position: DoubleArray | None = None
2768
2804
  error_feedback_name: Literal['FeedbackSingularity'] = 'FeedbackSingularity'
2769
2805
 
2770
2806
 
@@ -2775,46 +2811,44 @@ class FeedbackJointLimitExceeded(BaseModel):
2775
2811
 
2776
2812
  """
2777
2813
 
2778
- joint_index: Annotated[Optional[int], Field(ge=0, le=2147483647)] = None
2779
- joint_position: Optional[DoubleArray] = None
2814
+ joint_index: Annotated[int | None, Field(ge=0, le=2147483647)] = None
2815
+ joint_position: DoubleArray | None = None
2780
2816
  error_feedback_name: Literal['FeedbackJointLimitExceeded'] = (
2781
2817
  'FeedbackJointLimitExceeded'
2782
2818
  )
2783
2819
 
2784
2820
 
2785
2821
  class CollisionContact(BaseModel):
2786
- local: Optional[Vector3d] = None
2787
- root: Optional[Vector3d] = None
2822
+ local: Vector3d | None = None
2823
+ root: Vector3d | None = None
2788
2824
 
2789
2825
 
2790
2826
  class Collision(BaseModel):
2791
- id_of_a: Optional[str] = None
2792
- id_of_b: Optional[str] = None
2793
- id_of_layer: Optional[str] = None
2794
- normal_root_on_b: Optional[Vector3d] = None
2795
- position_on_a: Optional[CollisionContact] = None
2796
- position_on_b: Optional[CollisionContact] = None
2827
+ id_of_a: str | None = None
2828
+ id_of_b: str | None = None
2829
+ id_of_layer: str | None = None
2830
+ normal_root_on_b: Vector3d | None = None
2831
+ position_on_a: CollisionContact | None = None
2832
+ position_on_b: CollisionContact | None = None
2797
2833
 
2798
2834
 
2799
2835
  class FeedbackCollision(BaseModel):
2800
- collisions: Optional[List[Collision]] = None
2801
- joint_position: Optional[DoubleArray] = None
2802
- tcp_pose: Optional[Pose] = None
2836
+ collisions: list[Collision] | None = None
2837
+ joint_position: DoubleArray | None = None
2838
+ tcp_pose: Pose | None = None
2803
2839
  error_feedback_name: Literal['FeedbackCollision'] = 'FeedbackCollision'
2804
2840
 
2805
2841
 
2806
2842
  class PlanTrajectoryFailedResponse(BaseModel):
2807
2843
  error_feedback: Annotated[
2808
- Union[
2809
- FeedbackOutOfWorkspace,
2810
- FeedbackSingularity,
2811
- FeedbackJointLimitExceeded,
2812
- FeedbackCollision,
2813
- ],
2844
+ FeedbackOutOfWorkspace
2845
+ | FeedbackSingularity
2846
+ | FeedbackJointLimitExceeded
2847
+ | FeedbackCollision,
2814
2848
  Field(discriminator='error_feedback_name'),
2815
2849
  ]
2816
2850
  error_location_on_trajectory: Location
2817
- joint_trajectory: Optional[JointTrajectory] = None
2851
+ joint_trajectory: JointTrajectory | None = None
2818
2852
  """
2819
2853
  The joint trajectory from the start joint position to the error.
2820
2854
 
@@ -2822,14 +2856,14 @@ class PlanTrajectoryFailedResponse(BaseModel):
2822
2856
 
2823
2857
 
2824
2858
  class PlanTrajectoryResponse(BaseModel):
2825
- response: Union[JointTrajectory, PlanTrajectoryFailedResponse]
2859
+ response: JointTrajectory | PlanTrajectoryFailedResponse
2826
2860
 
2827
2861
 
2828
2862
  class ValidationError(BaseModel):
2829
- loc: Annotated[List[Union[str, int]], Field(title='Location')]
2863
+ loc: Annotated[list[str | int], Field(title='Location')]
2830
2864
  msg: Annotated[str, Field(title='Message')]
2831
2865
  type: Annotated[str, Field(title='Error Type')]
2832
- input: Dict[str, Any]
2866
+ input: dict[str, Any]
2833
2867
 
2834
2868
 
2835
2869
  class ErrorInvalidJointCount(BaseModel):
@@ -2858,12 +2892,12 @@ class ErrorJointLimitExceeded(BaseModel):
2858
2892
 
2859
2893
  """
2860
2894
 
2861
- joint_index: Annotated[Optional[int], Field(ge=0, le=2147483647)] = None
2895
+ joint_index: Annotated[int | None, Field(ge=0, le=2147483647)] = None
2862
2896
  """
2863
2897
  Index of the joint exceeding its limits (0-based).
2864
2898
 
2865
2899
  """
2866
- joint_position: Optional[DoubleArray] = None
2900
+ joint_position: DoubleArray | None = None
2867
2901
  """
2868
2902
  The joint position violating the limits.
2869
2903
 
@@ -2877,8 +2911,8 @@ class ErrorJointPositionCollision(BaseModel):
2877
2911
 
2878
2912
  """
2879
2913
 
2880
- collisions: Optional[List[Collision]] = None
2881
- joint_position: Optional[DoubleArray] = None
2914
+ collisions: list[Collision] | None = None
2915
+ joint_position: DoubleArray | None = None
2882
2916
  """
2883
2917
  The joint position that collides.
2884
2918
 
@@ -2890,13 +2924,10 @@ class ErrorJointPositionCollision(BaseModel):
2890
2924
 
2891
2925
  class PlanValidationError(ValidationError):
2892
2926
  data: Annotated[
2893
- Optional[
2894
- Union[
2895
- ErrorInvalidJointCount,
2896
- ErrorJointLimitExceeded,
2897
- ErrorJointPositionCollision,
2898
- ]
2899
- ],
2927
+ ErrorInvalidJointCount
2928
+ | ErrorJointLimitExceeded
2929
+ | ErrorJointPositionCollision
2930
+ | None,
2900
2931
  Field(discriminator='error_feedback_name'),
2901
2932
  ] = None
2902
2933
  """
@@ -2906,7 +2937,7 @@ class PlanValidationError(ValidationError):
2906
2937
 
2907
2938
 
2908
2939
  class Plan422Response(BaseModel):
2909
- detail: Annotated[Optional[List[PlanValidationError]], Field(title='Detail')] = None
2940
+ detail: Annotated[list[PlanValidationError] | None, Field(title='Detail')] = None
2910
2941
 
2911
2942
 
2912
2943
  class RRTConnectAlgorithm(BaseModel):
@@ -2921,25 +2952,25 @@ class RRTConnectAlgorithm(BaseModel):
2921
2952
  This is a custom implementation optimized for manipulator kinematics and collision checking in industrial contexts.
2922
2953
 
2923
2954
  """
2924
- max_iterations: Annotated[Optional[int], Field(ge=1)] = 10000
2955
+ max_iterations: Annotated[int | None, Field(ge=1)] = 10000
2925
2956
  """
2926
2957
  Maximum number of iterations for the RRT Connect algorithm.
2927
2958
  Higher values increase likelihood of success, but also computation time.
2928
2959
 
2929
2960
  """
2930
- max_step_size: Optional[float] = 1
2961
+ max_step_size: float | None = 1
2931
2962
  """
2932
2963
  Maximum step size for tree extension in joint space.
2933
2964
  """
2934
- adaptive_step_size: Optional[bool] = True
2965
+ adaptive_step_size: bool | None = True
2935
2966
  """
2936
2967
  Adjust the maximum step size during the search based on the recent success rate of tree expansion.
2937
2968
  """
2938
- apply_smoothing: Optional[bool] = True
2969
+ apply_smoothing: bool | None = True
2939
2970
  """
2940
2971
  Apply smoothing after the search has succeeded. This will remove as many intermediate points as possible while keeping the path valid.
2941
2972
  """
2942
- apply_blending: Optional[bool] = True
2973
+ apply_blending: bool | None = True
2943
2974
  """
2944
2975
  Apply blending after the search has succeeded and smoothing has been applied. This will apply the largest viable blending at each intermediate point.
2945
2976
  """
@@ -2954,7 +2985,7 @@ class MidpointInsertionAlgorithm(BaseModel):
2954
2985
  This algorithm adds a single midpoint between the start and target joint position to find collision-free paths.
2955
2986
 
2956
2987
  """
2957
- max_iterations: Annotated[Optional[int], Field(ge=1)] = 1000
2988
+ max_iterations: Annotated[int | None, Field(ge=1)] = 1000
2958
2989
  """
2959
2990
  Maximum number of iterations for the midpoint insertion algorithm.
2960
2991
  Higher values increase likelyhood of success, but also computation time (linear).
@@ -2964,7 +2995,7 @@ class MidpointInsertionAlgorithm(BaseModel):
2964
2995
 
2965
2996
  class CollisionFreeAlgorithm(RootModel):
2966
2997
  root: Annotated[
2967
- Union[RRTConnectAlgorithm, MidpointInsertionAlgorithm],
2998
+ RRTConnectAlgorithm | MidpointInsertionAlgorithm,
2968
2999
  Field(discriminator='algorithm_name', title='CollisionFreeAlgorithm'),
2969
3000
  ]
2970
3001
  """
@@ -3008,7 +3039,7 @@ class ErrorMaxIterationsExceeded(BaseModel):
3008
3039
 
3009
3040
  """
3010
3041
 
3011
- max_iterations: Optional[int] = None
3042
+ max_iterations: int | None = None
3012
3043
  """
3013
3044
  The maximum number of iterations that was reached.
3014
3045
 
@@ -3035,7 +3066,7 @@ class PlanCollisionFreeResponse(BaseModel):
3035
3066
 
3036
3067
  """
3037
3068
 
3038
- response: Union[JointTrajectory, PlanCollisionFreeFailedResponse]
3069
+ response: JointTrajectory | PlanCollisionFreeFailedResponse
3039
3070
 
3040
3071
 
3041
3072
  class JointPositionLimits(RootModel):
@@ -3044,7 +3075,7 @@ class JointPositionLimits(RootModel):
3044
3075
 
3045
3076
  """
3046
3077
 
3047
- root: Annotated[List[LimitRange], Field(title='JointPositionLimits')]
3078
+ root: Annotated[list[LimitRange], Field(title='JointPositionLimits')]
3048
3079
  """
3049
3080
  Joint position limits in [rad], indexed starting from base.
3050
3081
 
@@ -3077,27 +3108,27 @@ class JointPositionLimits(RootModel):
3077
3108
 
3078
3109
  class InverseKinematicsRequest(BaseModel):
3079
3110
  motion_group_model: MotionGroupModel
3080
- tcp_poses: List[Pose]
3111
+ tcp_poses: list[Pose]
3081
3112
  """
3082
3113
  List of TCP poses for which the inverse solutions are computed.
3083
3114
 
3084
3115
  """
3085
- tcp_offset: Optional[Pose] = None
3086
- mounting: Optional[Pose] = None
3116
+ tcp_offset: Pose | None = None
3117
+ mounting: Pose | None = None
3087
3118
  """
3088
3119
  Offset from the world frame to the motion group base.
3089
3120
  """
3090
- joint_position_limits: Optional[JointPositionLimits] = None
3091
- collision_setups: Optional[CollisionSetups] = None
3121
+ joint_position_limits: JointPositionLimits | None = None
3122
+ collision_setups: CollisionSetups | None = None
3092
3123
 
3093
3124
 
3094
3125
  class InverseKinematicsResponse(BaseModel):
3095
- joints: List[List[DoubleArray]]
3126
+ joints: list[list[DoubleArray]]
3096
3127
 
3097
3128
 
3098
3129
  class InverseKinematicsValidationError(ValidationError):
3099
3130
  data: Annotated[
3100
- Optional[Union[ErrorInvalidJointCount, ErrorJointLimitExceeded]],
3131
+ ErrorInvalidJointCount | ErrorJointLimitExceeded | None,
3101
3132
  Field(discriminator='error_feedback_name'),
3102
3133
  ] = None
3103
3134
  """
@@ -3108,26 +3139,26 @@ class InverseKinematicsValidationError(ValidationError):
3108
3139
 
3109
3140
  class InverseKinematics422Response(BaseModel):
3110
3141
  detail: Annotated[
3111
- Optional[List[InverseKinematicsValidationError]], Field(title='Detail')
3142
+ list[InverseKinematicsValidationError] | None, Field(title='Detail')
3112
3143
  ] = None
3113
3144
 
3114
3145
 
3115
3146
  class ForwardKinematicsRequest(BaseModel):
3116
3147
  motion_group_model: MotionGroupModel
3117
- joint_positions: List[DoubleArray]
3148
+ joint_positions: list[DoubleArray]
3118
3149
  """
3119
3150
  List of joint positions [rad] for which TCP poses are computed.
3120
3151
 
3121
3152
  """
3122
- tcp_offset: Optional[Pose] = None
3123
- mounting: Optional[Pose] = None
3153
+ tcp_offset: Pose | None = None
3154
+ mounting: Pose | None = None
3124
3155
  """
3125
3156
  Offset from the world frame to the motion group base.
3126
3157
  """
3127
3158
 
3128
3159
 
3129
3160
  class ForwardKinematicsResponse(BaseModel):
3130
- tcp_poses: List[Pose]
3161
+ tcp_poses: list[Pose]
3131
3162
  """
3132
3163
  List of computed TCP poses corresponding to the input joint positions.
3133
3164
 
@@ -3135,17 +3166,17 @@ class ForwardKinematicsResponse(BaseModel):
3135
3166
 
3136
3167
 
3137
3168
  class ForwardKinematicsValidationError(ValidationError):
3138
- data: Optional[ErrorInvalidJointCount] = None
3169
+ data: ErrorInvalidJointCount | None = None
3139
3170
 
3140
3171
 
3141
3172
  class ForwardKinematics422Response(BaseModel):
3142
3173
  detail: Annotated[
3143
- Optional[List[ForwardKinematicsValidationError]], Field(title='Detail')
3174
+ list[ForwardKinematicsValidationError] | None, Field(title='Detail')
3144
3175
  ] = None
3145
3176
 
3146
3177
 
3147
3178
  class ListTrajectoriesResponse(BaseModel):
3148
- trajectories: Optional[List[str]] = None
3179
+ trajectories: list[str] | None = None
3149
3180
  """
3150
3181
  Identifiers of trajectories which are currently cached.
3151
3182
  Use [addTrajectory](addTrajectory) to add a new trajectory. Adding trajectories is necessary to execute them.
@@ -3165,7 +3196,7 @@ class AddTrajectoryRequest(BaseModel):
3165
3196
  an equal number of corresponding timestamps.
3166
3197
 
3167
3198
  """
3168
- tcp: Optional[str] = None
3199
+ tcp: str | None = None
3169
3200
  """
3170
3201
  Unique identifier of the tool the trajectory is planned for.
3171
3202
  """
@@ -3176,13 +3207,13 @@ class TcpRequiredError(BaseModel):
3176
3207
  Requested motion group requires TCP to be defined.
3177
3208
  """
3178
3209
 
3179
- tcp_missing: Optional[Dict[str, Any]] = None
3210
+ tcp_missing: dict[str, Any] | None = None
3180
3211
 
3181
3212
 
3182
3213
  class InconsistentTrajectorySize(BaseModel):
3183
- joint_position_size: Optional[int] = None
3184
- times_size: Optional[int] = None
3185
- locations_size: Optional[int] = None
3214
+ joint_position_size: int | None = None
3215
+ times_size: int | None = None
3216
+ locations_size: int | None = None
3186
3217
 
3187
3218
 
3188
3219
  class InconsistentTrajectorySizeError(BaseModel):
@@ -3191,24 +3222,24 @@ class InconsistentTrajectorySizeError(BaseModel):
3191
3222
 
3192
3223
  """
3193
3224
 
3194
- inconsistent_trajectory_size: Optional[InconsistentTrajectorySize] = None
3225
+ inconsistent_trajectory_size: InconsistentTrajectorySize | None = None
3195
3226
 
3196
3227
 
3197
3228
  class JointLimitExceededError(BaseModel):
3198
- joint_limit_exceeded: Optional[FeedbackJointLimitExceeded] = None
3229
+ joint_limit_exceeded: FeedbackJointLimitExceeded | None = None
3199
3230
 
3200
3231
 
3201
3232
  class CollisionError(BaseModel):
3202
- collision: Optional[FeedbackCollision] = None
3233
+ collision: FeedbackCollision | None = None
3203
3234
 
3204
3235
 
3205
3236
  class TorqueExceeded(BaseModel):
3206
- torque_value: Optional[float] = None
3237
+ torque_value: float | None = None
3207
3238
  """
3208
3239
  The torque value that was exceeded.
3209
3240
 
3210
3241
  """
3211
- torque_limit: Optional[float] = None
3242
+ torque_limit: float | None = None
3212
3243
  """
3213
3244
  The value of the torque limit that was exceeded.
3214
3245
 
@@ -3216,23 +3247,23 @@ class TorqueExceeded(BaseModel):
3216
3247
 
3217
3248
 
3218
3249
  class TorqueExceededError(BaseModel):
3219
- torque_exceeded: Optional[TorqueExceeded] = None
3250
+ torque_exceeded: TorqueExceeded | None = None
3220
3251
 
3221
3252
 
3222
3253
  class InvalidDof(BaseModel):
3223
- valid_dof: Optional[int] = None
3254
+ valid_dof: int | None = None
3224
3255
  """
3225
3256
  The valid degrees of freedom for the motion group.
3226
3257
 
3227
3258
  """
3228
- joint_position: Optional[List[float]] = None
3259
+ joint_position: list[float] | None = None
3229
3260
  """
3230
3261
  The joint position that is out of its limits.
3231
3262
  """
3232
3263
 
3233
3264
 
3234
3265
  class InvalidDofError(BaseModel):
3235
- invalid_dof: Optional[InvalidDof] = None
3266
+ invalid_dof: InvalidDof | None = None
3236
3267
 
3237
3268
 
3238
3269
  class NanValue(BaseModel):
@@ -3240,33 +3271,32 @@ class NanValue(BaseModel):
3240
3271
  Requested joint position contains NaN values.
3241
3272
  """
3242
3273
 
3243
- joint_position: Optional[List[float]] = None
3274
+ joint_position: list[float] | None = None
3244
3275
  """
3245
3276
  The joint position that is out of its limits.
3246
3277
  """
3247
3278
 
3248
3279
 
3249
3280
  class NanValueError(BaseModel):
3250
- nan_value: Optional[NanValue] = None
3281
+ nan_value: NanValue | None = None
3251
3282
  """
3252
3283
  Requested joint position contains NaN values.
3253
3284
  """
3254
3285
 
3255
3286
 
3256
3287
  class AddTrajectoryError(BaseModel):
3257
- message: Optional[str] = None
3258
- location: Optional[Location] = None
3259
- data: Optional[
3260
- Union[
3261
- TcpRequiredError,
3262
- InconsistentTrajectorySizeError,
3263
- JointLimitExceededError,
3264
- CollisionError,
3265
- TorqueExceededError,
3266
- InvalidDofError,
3267
- NanValueError,
3268
- ]
3269
- ] = None
3288
+ message: str | None = None
3289
+ location: Location | None = None
3290
+ data: (
3291
+ TcpRequiredError
3292
+ | InconsistentTrajectorySizeError
3293
+ | JointLimitExceededError
3294
+ | CollisionError
3295
+ | TorqueExceededError
3296
+ | InvalidDofError
3297
+ | NanValueError
3298
+ | None
3299
+ ) = None
3270
3300
 
3271
3301
 
3272
3302
  class AddTrajectoryResponse(BaseModel):
@@ -3281,12 +3311,12 @@ class AddTrajectoryResponse(BaseModel):
3281
3311
 
3282
3312
  """
3283
3313
 
3284
- trajectory: Optional[str] = None
3314
+ trajectory: str | None = None
3285
3315
  """
3286
3316
  The unique identifier of the trajectory. Use this identifier to execute the trajectory with the [executeTrajectory](executeTrajectory) endpoint.
3287
3317
 
3288
3318
  """
3289
- error: Optional[AddTrajectoryError] = None
3319
+ error: AddTrajectoryError | None = None
3290
3320
  """
3291
3321
  Always check this field first. If this field is present, the trajectory has an error and is only partially or not executable.
3292
3322
 
@@ -3329,7 +3359,7 @@ class TrajectoryData(BaseModel):
3329
3359
  Type specifier for server, set automatically.
3330
3360
 
3331
3361
  """
3332
- motion_group: Optional[str] = None
3362
+ motion_group: str | None = None
3333
3363
  """
3334
3364
  Identifier of the motion-group.
3335
3365
  """
@@ -3339,7 +3369,7 @@ class TrajectoryData(BaseModel):
3339
3369
  an equal number of corresponding timestamps.
3340
3370
 
3341
3371
  """
3342
- tcp: Optional[str] = None
3372
+ tcp: str | None = None
3343
3373
  """
3344
3374
  Unique identifier of the tool the trajectory is planned for.
3345
3375
  """
@@ -3359,14 +3389,14 @@ class InitializeMovementRequest(BaseModel):
3359
3389
 
3360
3390
  """
3361
3391
  trajectory: Annotated[
3362
- Union[TrajectoryId, TrajectoryData], Field(discriminator='message_type')
3392
+ TrajectoryId | TrajectoryData, Field(discriminator='message_type')
3363
3393
  ]
3364
3394
  """
3365
3395
  The trajectory which should be executed and locked to the connection.
3366
3396
 
3367
3397
  """
3368
- initial_location: Optional[Location] = None
3369
- response_coordinate_system: Optional[str] = None
3398
+ initial_location: Location | None = None
3399
+ response_coordinate_system: str | None = None
3370
3400
  """
3371
3401
  Unique identifier addressing a coordinate system to which the responses are transformed.
3372
3402
  If not set, world coordinate system is used.
@@ -3454,26 +3484,26 @@ class StartMovementRequest(BaseModel):
3454
3484
  Type specifier for server, set automatically.
3455
3485
 
3456
3486
  """
3457
- direction: Optional[Direction] = 'DIRECTION_FORWARD'
3458
- target_location: Optional[Location] = None
3487
+ direction: Direction | None = 'DIRECTION_FORWARD'
3488
+ target_location: Location | None = None
3459
3489
  """
3460
3490
  The target location to which the motion group moves along the trajectory to.
3461
3491
  If `direction` and `target_location` are both specified, target location takes precedence.
3462
3492
  If neither is specified, the default is `DIRECTION_FORWARD`.
3463
3493
 
3464
3494
  """
3465
- set_outputs: Optional[List[SetIO]] = None
3495
+ set_outputs: list[SetIO] | None = None
3466
3496
  """
3467
3497
  Attaches a list of output commands to the trajectory. The outputs are set to the specified values right after the specified location was reached.
3468
3498
  If the specified location is located before the start location (forward direction: value is smaller, backward direction: value is bigger), the output is not set.
3469
3499
 
3470
3500
  """
3471
- start_on_io: Optional[StartOnIO] = None
3501
+ start_on_io: StartOnIO | None = None
3472
3502
  """
3473
3503
  Defines an input/output that is listened to before the movement. Execution starts if the defined comparator evaluates to `true`.
3474
3504
 
3475
3505
  """
3476
- pause_on_io: Optional[PauseOnIO] = None
3506
+ pause_on_io: PauseOnIO | None = None
3477
3507
  """
3478
3508
  Defines an input/output that is listened to during the movement. Execution pauses if the defined comparator evaluates to `true`.
3479
3509
 
@@ -3517,12 +3547,10 @@ class PlaybackSpeedRequest(BaseModel):
3517
3547
 
3518
3548
  class ExecuteTrajectoryRequest(RootModel):
3519
3549
  root: Annotated[
3520
- Union[
3521
- InitializeMovementRequest,
3522
- StartMovementRequest,
3523
- PauseMovementRequest,
3524
- PlaybackSpeedRequest,
3525
- ],
3550
+ InitializeMovementRequest
3551
+ | StartMovementRequest
3552
+ | PauseMovementRequest
3553
+ | PlaybackSpeedRequest,
3526
3554
  Field(discriminator='message_type', title='ExecuteTrajectoryRequest'),
3527
3555
  ]
3528
3556
 
@@ -3533,11 +3561,11 @@ class InitializeMovementResponse(BaseModel):
3533
3561
 
3534
3562
  """
3535
3563
 
3536
- message: Optional[str] = None
3564
+ message: str | None = None
3537
3565
  """
3538
3566
  Error message in case of invalid InitializeMovementRequest.
3539
3567
  """
3540
- add_trajectory_error: Optional[AddTrajectoryError] = None
3568
+ add_trajectory_error: AddTrajectoryError | None = None
3541
3569
  """
3542
3570
  Error can occur if joint trajectory was added by [InitializeMovementRequest](InitializeMovementRequest) and the trajectory is invalid.
3543
3571
 
@@ -3553,7 +3581,7 @@ class StartMovementResponse(BaseModel):
3553
3581
 
3554
3582
  """
3555
3583
 
3556
- message: Optional[str] = None
3584
+ message: str | None = None
3557
3585
  """
3558
3586
  Error message in case of invalid StartMovementResquest.
3559
3587
  """
@@ -3568,7 +3596,7 @@ class PauseMovementResponse(BaseModel):
3568
3596
 
3569
3597
  """
3570
3598
 
3571
- message: Optional[str] = None
3599
+ message: str | None = None
3572
3600
  """
3573
3601
  Error message in case of invalid PauseMovementResquest.
3574
3602
  """
@@ -3581,7 +3609,7 @@ class PlaybackSpeedResponse(BaseModel):
3581
3609
 
3582
3610
  """
3583
3611
 
3584
- message: Optional[str] = None
3612
+ message: str | None = None
3585
3613
  """
3586
3614
  Error message in case of invalid PlaybackSpeedRequest.
3587
3615
  """
@@ -3603,13 +3631,11 @@ class MovementErrorResponse(BaseModel):
3603
3631
 
3604
3632
  class ExecuteTrajectoryResponse(RootModel):
3605
3633
  root: Annotated[
3606
- Union[
3607
- InitializeMovementResponse,
3608
- StartMovementResponse,
3609
- PauseMovementResponse,
3610
- PlaybackSpeedResponse,
3611
- MovementErrorResponse,
3612
- ],
3634
+ InitializeMovementResponse
3635
+ | StartMovementResponse
3636
+ | PauseMovementResponse
3637
+ | PlaybackSpeedResponse
3638
+ | MovementErrorResponse,
3613
3639
  Field(discriminator='kind', title='ExecuteTrajectoryResponse'),
3614
3640
  ]
3615
3641
 
@@ -3628,12 +3654,12 @@ class InitializeJoggingRequest(BaseModel):
3628
3654
  """
3629
3655
  Identifier of the motion group.
3630
3656
  """
3631
- tcp: Optional[str] = None
3657
+ tcp: str | None = None
3632
3658
  """
3633
3659
  Identifier of the tool. Required for robots (all limits, including TCP limits, are respected at all times regardless of the motion). Not required for external axes.
3634
3660
 
3635
3661
  """
3636
- response_coordinate_system: Optional[str] = None
3662
+ response_coordinate_system: str | None = None
3637
3663
  """
3638
3664
  Unique identifier addressing a coordinate system to which the responses are transformed.
3639
3665
  If not set, world coordinate system is used.
@@ -3671,7 +3697,7 @@ class TcpVelocityRequest(BaseModel):
3671
3697
  """
3672
3698
  translation: Vector3d
3673
3699
  rotation: Vector3d
3674
- use_tool_coordinate_system: Optional[bool] = False
3700
+ use_tool_coordinate_system: bool | None = False
3675
3701
  """
3676
3702
  If true, TCP velocities are interpreted in the tool coordinate system, specified by the TCP.
3677
3703
  If false, TCP velocities are interpreted in the world coordinate system.
@@ -3694,12 +3720,10 @@ class PauseJoggingRequest(BaseModel):
3694
3720
 
3695
3721
  class ExecuteJoggingRequest(RootModel):
3696
3722
  root: Annotated[
3697
- Union[
3698
- InitializeJoggingRequest,
3699
- JointVelocityRequest,
3700
- TcpVelocityRequest,
3701
- PauseJoggingRequest,
3702
- ],
3723
+ InitializeJoggingRequest
3724
+ | JointVelocityRequest
3725
+ | TcpVelocityRequest
3726
+ | PauseJoggingRequest,
3703
3727
  Field(discriminator='message_type', title='ExecuteJoggingRequest'),
3704
3728
  ]
3705
3729
 
@@ -3710,7 +3734,7 @@ class InitializeJoggingResponse(BaseModel):
3710
3734
 
3711
3735
  """
3712
3736
 
3713
- message: Optional[str] = None
3737
+ message: str | None = None
3714
3738
  """
3715
3739
  Error message in case of invalid InitializeJoggingRequest.
3716
3740
  """
@@ -3723,7 +3747,7 @@ class PauseJoggingResponse(BaseModel):
3723
3747
 
3724
3748
  """
3725
3749
 
3726
- message: Optional[str] = None
3750
+ message: str | None = None
3727
3751
  """
3728
3752
  Error message in case of invalid PauseJoggingRequest.
3729
3753
  """
@@ -3736,7 +3760,7 @@ class TcpVelocityResponse(BaseModel):
3736
3760
 
3737
3761
  """
3738
3762
 
3739
- message: Optional[str] = None
3763
+ message: str | None = None
3740
3764
  """
3741
3765
  Error message in case of invalid TcpVelocityRequest.
3742
3766
  """
@@ -3749,7 +3773,7 @@ class JointVelocityResponse(BaseModel):
3749
3773
 
3750
3774
  """
3751
3775
 
3752
- message: Optional[str] = None
3776
+ message: str | None = None
3753
3777
  """
3754
3778
  Error message in case of invalid JointVelocityRequest.
3755
3779
  """
@@ -3758,13 +3782,11 @@ class JointVelocityResponse(BaseModel):
3758
3782
 
3759
3783
  class ExecuteJoggingResponse(RootModel):
3760
3784
  root: Annotated[
3761
- Union[
3762
- InitializeJoggingResponse,
3763
- PauseJoggingResponse,
3764
- TcpVelocityResponse,
3765
- JointVelocityResponse,
3766
- MovementErrorResponse,
3767
- ],
3785
+ InitializeJoggingResponse
3786
+ | PauseJoggingResponse
3787
+ | TcpVelocityResponse
3788
+ | JointVelocityResponse
3789
+ | MovementErrorResponse,
3768
3790
  Field(discriminator='kind', title='ExecuteJoggingResponse'),
3769
3791
  ]
3770
3792
 
@@ -3784,14 +3806,14 @@ class Program(BaseModel):
3784
3806
  title='Unique program identifier',
3785
3807
  ),
3786
3808
  ]
3787
- name: Annotated[Optional[str], Field(title='Program name')] = None
3788
- description: Annotated[Optional[str], Field(title='Program description')] = None
3809
+ name: Annotated[str | None, Field(title='Program name')] = None
3810
+ description: Annotated[str | None, Field(title='Program description')] = None
3789
3811
  app: Annotated[str, Field(title='The app containing the program.')]
3790
3812
  input_schema: Annotated[
3791
- Optional[Dict[str, Any]], Field(title='Program input json schema')
3813
+ dict[str, Any] | None, Field(title='Program input json schema')
3792
3814
  ] = None
3793
3815
  preconditions: Annotated[
3794
- Optional[Dict[str, Any]],
3816
+ dict[str, Any] | None,
3795
3817
  Field(title='Preconditions before the program can be started'),
3796
3818
  ] = None
3797
3819
 
@@ -3801,7 +3823,7 @@ class ProgramStartRequest(BaseModel):
3801
3823
  The state of a program run.
3802
3824
  """
3803
3825
 
3804
- arguments: Dict[str, Any]
3826
+ arguments: dict[str, Any]
3805
3827
  """
3806
3828
  The arguments to pass to the program.
3807
3829
  """
@@ -3832,7 +3854,7 @@ class ProgramRun(BaseModel):
3832
3854
  """
3833
3855
  Unique identifier of the program
3834
3856
  """
3835
- app: Annotated[Optional[str], Field(title='App Id')] = None
3857
+ app: Annotated[str | None, Field(title='App Id')] = None
3836
3858
  """
3837
3859
  Identifier of the app that produced the program run
3838
3860
  """
@@ -3840,35 +3862,35 @@ class ProgramRun(BaseModel):
3840
3862
  """
3841
3863
  State of the program run
3842
3864
  """
3843
- logs: Annotated[Optional[str], Field(title='Logs')] = None
3865
+ logs: Annotated[str | None, Field(title='Logs')] = None
3844
3866
  """
3845
3867
  Logs of the program run
3846
3868
  """
3847
- stdout: Annotated[Optional[str], Field(title='Stdout')] = None
3869
+ stdout: Annotated[str | None, Field(title='Stdout')] = None
3848
3870
  """
3849
3871
  Stdout of the program run
3850
3872
  """
3851
- stderr: Annotated[Optional[str], Field(title='Stderr')] = None
3873
+ stderr: Annotated[str | None, Field(title='Stderr')] = None
3852
3874
  """
3853
3875
  Stderr of the program run
3854
3876
  """
3855
- error: Annotated[Optional[str], Field(title='Error')] = None
3877
+ error: Annotated[str | None, Field(title='Error')] = None
3856
3878
  """
3857
3879
  Error message of the program run, if any
3858
3880
  """
3859
- traceback: Annotated[Optional[str], Field(title='Traceback')] = None
3881
+ traceback: Annotated[str | None, Field(title='Traceback')] = None
3860
3882
  """
3861
3883
  Traceback of the program run, if any
3862
3884
  """
3863
- start_time: Annotated[Optional[AwareDatetime], Field(title='Start Time')] = None
3885
+ start_time: Annotated[AwareDatetime | None, Field(title='Start Time')] = None
3864
3886
  """
3865
3887
  Start time of the program run in RFC3339 format
3866
3888
  """
3867
- end_time: Annotated[Optional[AwareDatetime], Field(title='End Time')] = None
3889
+ end_time: Annotated[AwareDatetime | None, Field(title='End Time')] = None
3868
3890
  """
3869
3891
  End time of the program run in RFC3339 format
3870
3892
  """
3871
- input_data: Annotated[Optional[Dict[str, Any]], Field(title='Input Data')] = None
3893
+ input_data: Annotated[dict[str, Any] | None, Field(title='Input Data')] = None
3872
3894
  """
3873
3895
  Input data of the program run
3874
3896
  """
@@ -3879,13 +3901,13 @@ class ValidationError2(BaseModel):
3879
3901
  A validation error of a program.
3880
3902
  """
3881
3903
 
3882
- loc: Annotated[List[int], Field(title='Location')]
3904
+ loc: Annotated[list[int], Field(title='Location')]
3883
3905
  msg: Annotated[str, Field(title='Message')]
3884
3906
  type: Annotated[str, Field(title='Error Type')]
3885
3907
 
3886
3908
 
3887
3909
  class HTTPValidationError(BaseModel):
3888
- detail: Annotated[Optional[List[ValidationError2]], Field(title='Detail')] = None
3910
+ detail: Annotated[list[ValidationError2] | None, Field(title='Detail')] = None
3889
3911
 
3890
3912
 
3891
3913
  class MotionGroupInfo(BaseModel):
@@ -3907,7 +3929,7 @@ class MotionGroupInfo(BaseModel):
3907
3929
 
3908
3930
 
3909
3931
  class MotionGroupInfos(RootModel):
3910
- root: List[MotionGroupInfo]
3932
+ root: list[MotionGroupInfo]
3911
3933
 
3912
3934
  def __getitem__(self, index: int) -> MotionGroupInfo:
3913
3935
  """
@@ -3940,22 +3962,22 @@ class MotionGroupJoints(BaseModel):
3940
3962
  Everything but positions is optional.
3941
3963
  """
3942
3964
 
3943
- positions: List[float]
3965
+ positions: list[float]
3944
3966
  """
3945
3967
  The joint positions of the motion group.
3946
3968
 
3947
3969
  """
3948
- velocities: Optional[List[float]] = None
3970
+ velocities: list[float] | None = None
3949
3971
  """
3950
3972
  The joint velocities of the motion group.
3951
3973
 
3952
3974
  """
3953
- accelerations: Optional[List[float]] = None
3975
+ accelerations: list[float] | None = None
3954
3976
  """
3955
3977
  The joint accelerations of the motion group.
3956
3978
 
3957
3979
  """
3958
- torques: Optional[List[float]] = None
3980
+ torques: list[float] | None = None
3959
3981
  """
3960
3982
  The joint torques of the motion group.
3961
3983
 
@@ -3963,13 +3985,13 @@ class MotionGroupJoints(BaseModel):
3963
3985
 
3964
3986
 
3965
3987
  class RobotTcpData(BaseModel):
3966
- name: Optional[str] = None
3988
+ name: str | None = None
3967
3989
  """
3968
3990
  A readable and changeable name for frontend visualization.
3969
3991
  """
3970
3992
  position: Vector3d
3971
- orientation: Optional[Orientation] = None
3972
- orientation_type: Optional[OrientationType] = 'ROTATION_VECTOR'
3993
+ orientation: Orientation | None = None
3994
+ orientation_type: OrientationType | None = 'ROTATION_VECTOR'
3973
3995
 
3974
3996
 
3975
3997
  class RobotTcp(RobotTcpData):
@@ -3981,7 +4003,7 @@ class RobotTcp(RobotTcpData):
3981
4003
 
3982
4004
  class RobotTcps(RootModel):
3983
4005
  root: Annotated[
3984
- List[RobotTcp],
4006
+ list[RobotTcp],
3985
4007
  Field(
3986
4008
  examples=[
3987
4009
  [
@@ -4087,7 +4109,7 @@ class ExternalJointStreamDatapoint(BaseModel):
4087
4109
 
4088
4110
 
4089
4111
  class ExternalJointStreamDatapoints(RootModel):
4090
- root: List[ExternalJointStreamDatapoint]
4112
+ root: list[ExternalJointStreamDatapoint]
4091
4113
 
4092
4114
  def __getitem__(self, index: int) -> ExternalJointStreamDatapoint:
4093
4115
  """
@@ -4133,7 +4155,7 @@ class MetadataObject(RootModel):
4133
4155
  A metadata object.
4134
4156
  """
4135
4157
 
4136
- root: Dict[str, str]
4158
+ root: dict[str, str]
4137
4159
 
4138
4160
 
4139
4161
  class BinaryObject(RootModel):
@@ -4156,13 +4178,13 @@ class BusIODescription(BaseModel):
4156
4178
  """
4157
4179
  direction: IODirection
4158
4180
  value_type: IOValueType
4159
- unit: Optional[UnitType] = None
4160
- min: Optional[IOBoundary] = None
4161
- max: Optional[IOBoundary] = None
4181
+ unit: UnitType | None = None
4182
+ min: IOBoundary | None = None
4183
+ max: IOBoundary | None = None
4162
4184
 
4163
4185
 
4164
4186
  class ListBusIODescriptionsResponse(RootModel):
4165
- root: List[BusIODescription]
4187
+ root: list[BusIODescription]
4166
4188
 
4167
4189
  def __getitem__(self, index: int) -> BusIODescription:
4168
4190
  """
@@ -4203,7 +4225,7 @@ class BusIOsStateEnum(Enum):
4203
4225
 
4204
4226
  class BusIOsState(BaseModel):
4205
4227
  state: BusIOsStateEnum
4206
- message: Optional[str] = None
4228
+ message: str | None = None
4207
4229
  """
4208
4230
  A message providing additional information on the input/output service, e.g., BUS service status, encountered errors.
4209
4231
  May be empty if no additional information is available.
@@ -4251,7 +4273,7 @@ class ProfinetSlotDescription(BaseModel):
4251
4273
  The API identifies the application relation (AR) that is using the slot.
4252
4274
 
4253
4275
  """
4254
- subslots: List[ProfinetSubSlotDescription]
4276
+ subslots: list[ProfinetSubSlotDescription]
4255
4277
  """
4256
4278
  An array of PROFINET subslots.
4257
4279
 
@@ -4269,14 +4291,14 @@ class ProfinetDescription(BaseModel):
4269
4291
  The device identifier of the PROFINET device, identifying the specific device within the vendor's range.
4270
4292
 
4271
4293
  """
4272
- slots: Optional[List[ProfinetSlotDescription]] = None
4273
- device_name: Annotated[Optional[str], Field(examples=['pnDevice'])] = None
4294
+ slots: list[ProfinetSlotDescription] | None = None
4295
+ device_name: Annotated[str | None, Field(examples=['pnDevice'])] = None
4274
4296
  """
4275
4297
  Name of Station (NoS) of the PROFINET device. The NoS is used in combination with IPv4 record to identify your device in the PROFINET network.
4276
4298
  The `device_name` will be used as NoS if no REMA XML file is already present on your NOVA instance and no `rema_xml_content` is provided.
4277
4299
 
4278
4300
  """
4279
- ip_config: Optional[BusIOProfinetIpConfig] = None
4301
+ ip_config: BusIOProfinetIpConfig | None = None
4280
4302
 
4281
4303
 
4282
4304
  class ProfinetIOTypeEnum(Enum):
@@ -4325,7 +4347,7 @@ class ProfinetIOData(BaseModel):
4325
4347
  The byte address is used to locate the specific input/output variable within the device's memory or data structure.
4326
4348
 
4327
4349
  """
4328
- bit_address: Annotated[Optional[int], Field(ge=0, le=7)] = None
4350
+ bit_address: Annotated[int | None, Field(ge=0, le=7)] = None
4329
4351
  """
4330
4352
  The bit address of the input/output variable within the byte or word address.
4331
4353
  The bit address is used to specify the exact bit within the byte or word that corresponds to the input/output variable.
@@ -4347,7 +4369,7 @@ class ProfinetIOs(RootModel):
4347
4369
  Array of PROFINET input/output variable configurations.
4348
4370
  """
4349
4371
 
4350
- root: List[ProfinetIO]
4372
+ root: list[ProfinetIO]
4351
4373
  """
4352
4374
  Array of PROFINET input/output variable configurations.
4353
4375
  """
@@ -4478,7 +4500,7 @@ class ModbusIOs(RootModel):
4478
4500
  Array of MODBUS input/output variable configurations.
4479
4501
  """
4480
4502
 
4481
- root: List[ModbusIO]
4503
+ root: list[ModbusIO]
4482
4504
  """
4483
4505
  Array of MODBUS input/output variable configurations.
4484
4506
  """
@@ -4525,7 +4547,7 @@ class ConfigurationResource(BaseModel):
4525
4547
  """
4526
4548
  Human-readable name of the configuration resource.
4527
4549
  """
4528
- children: Optional[ConfigurationResourceArray] = None
4550
+ children: ConfigurationResourceArray | None = None
4529
4551
 
4530
4552
 
4531
4553
  class ConfigurationResourceArray(RootModel):
@@ -4533,7 +4555,7 @@ class ConfigurationResourceArray(RootModel):
4533
4555
  Array of configuration resources.
4534
4556
  """
4535
4557
 
4536
- root: List[ConfigurationResource]
4558
+ root: list[ConfigurationResource]
4537
4559
  """
4538
4560
  Array of configuration resources.
4539
4561
  """