wandelbots-api-client 25.11.0.dev28__py3-none-any.whl → 26.1.0.dev53__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 (354) 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 +4 -2
  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 +4 -4
  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/__init__.py +2 -0
  328. wandelbots_api_client/v2/api/jogging_api.py +1 -1
  329. wandelbots_api_client/v2/api/motion_group_models_api.py +530 -2
  330. wandelbots_api_client/v2/api/robot_configurations_api.py +291 -0
  331. wandelbots_api_client/v2/api/trajectory_execution_api.py +1 -1
  332. wandelbots_api_client/v2/api_client.py +1 -1
  333. wandelbots_api_client/v2/configuration.py +1 -1
  334. wandelbots_api_client/v2/models/__init__.py +5 -3
  335. wandelbots_api_client/v2/models/blending_auto.py +1 -1
  336. wandelbots_api_client/v2/models/blending_position.py +15 -1
  337. wandelbots_api_client/v2/models/blending_space.py +37 -0
  338. wandelbots_api_client/v2/models/virtual_controller.py +1 -2
  339. wandelbots_api_client/v2/models/virtual_controller_types.py +1 -1
  340. wandelbots_api_client/v2_pydantic/__init__.py +1 -1
  341. wandelbots_api_client/v2_pydantic/api/__init__.py +2 -0
  342. wandelbots_api_client/v2_pydantic/api/jogging_api.py +1 -1
  343. wandelbots_api_client/v2_pydantic/api/motion_group_models_api.py +536 -2
  344. wandelbots_api_client/v2_pydantic/api/robot_configurations_api.py +294 -0
  345. wandelbots_api_client/v2_pydantic/api/trajectory_execution_api.py +1 -1
  346. wandelbots_api_client/v2_pydantic/api_client.py +1 -1
  347. wandelbots_api_client/v2_pydantic/configuration.py +1 -1
  348. wandelbots_api_client/v2_pydantic/models.py +423 -499
  349. wandelbots_api_client/v2_pydantic/virtual_controller_types.py +126 -0
  350. {wandelbots_api_client-25.11.0.dev28.dist-info → wandelbots_api_client-26.1.0.dev53.dist-info}/METADATA +3 -3
  351. {wandelbots_api_client-25.11.0.dev28.dist-info → wandelbots_api_client-26.1.0.dev53.dist-info}/RECORD +354 -350
  352. {wandelbots_api_client-25.11.0.dev28.dist-info → wandelbots_api_client-26.1.0.dev53.dist-info}/WHEEL +0 -0
  353. {wandelbots_api_client-25.11.0.dev28.dist-info → wandelbots_api_client-26.1.0.dev53.dist-info}/licenses/LICENSE +0 -0
  354. {wandelbots_api_client-25.11.0.dev28.dist-info → wandelbots_api_client-26.1.0.dev53.dist-info}/top_level.txt +0 -0
@@ -1,15 +1,16 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: public.openapi.yaml
3
- # timestamp: 2025-12-15T12:30:46+00:00
3
+ # timestamp: 2026-01-10T00:12:37+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
+ from .virtual_controller_types import VirtualControllerTypes
13
14
 
14
15
 
15
16
  class NameList(RootModel):
@@ -17,7 +18,7 @@ class NameList(RootModel):
17
18
  A list of names
18
19
  """
19
20
 
20
- root: List[str]
21
+ root: list[str]
21
22
  """
22
23
  A list of names
23
24
  """
@@ -127,7 +128,7 @@ class KukaController(BaseModel):
127
128
  """
128
129
  The RSI server runs inside of the cell.
129
130
  """
130
- slow_cycle_rate: Optional[bool] = False
131
+ slow_cycle_rate: bool | None = False
131
132
  """
132
133
  If true, uses slower cycle time of 12ms instead of 4ms.
133
134
 
@@ -151,130 +152,6 @@ class Manufacturer(Enum):
151
152
  YASKAWA = 'yaskawa'
152
153
 
153
154
 
154
- class VirtualControllerTypes(Enum):
155
- ABB_IRB1010_037_15 = 'abb-irb1010_037_15'
156
- ABB_IRB1100_0475_4 = 'abb-irb1100_0475_4'
157
- ABB_IRB1100_058_4 = 'abb-irb1100_058_4'
158
- ABB_IRB1200_7 = 'abb-irb1200_7'
159
- ABB_IRB1300_09_11 = 'abb-irb1300_09_11'
160
- ABB_IRB1300_115_10 = 'abb-irb1300_115_10'
161
- ABB_IRB1300_14_12 = 'abb-irb1300_14_12'
162
- ABB_IRB1300_14_7 = 'abb-irb1300_14_7'
163
- ABB_IRB1600_12_10 = 'abb-irb1600_12_10'
164
- ABB_IRB1600_12_6 = 'abb-irb1600_12_6'
165
- ABB_IRB1600_145_10 = 'abb-irb1600_145_10'
166
- ABB_IRB1600_145_6 = 'abb-irb1600_145_6'
167
- ABB_IRB2600_ID_185_15 = 'abb-irb2600ID_185_15'
168
- ABB_IRB2600_ID_200_8 = 'abb-irb2600ID_200_8'
169
- ABB_IRB2600_165_12 = 'abb-irb2600_165_12'
170
- ABB_IRB2600_165_20 = 'abb-irb2600_165_20'
171
- ABB_IRB2600_185_12 = 'abb-irb2600_185_12'
172
- ABB_IRB4600_205_45 = 'abb-irb4600_205_45'
173
- ABB_IRB4600_205_60 = 'abb-irb4600_205_60'
174
- ABB_IRB4600_250_20 = 'abb-irb4600_250_20'
175
- ABB_IRB4600_255_40 = 'abb-irb4600_255_40'
176
- ABB_IRB6730_210_310 = 'abb-irb6730_210_310'
177
- ABB_IRB6730_240_290 = 'abb-irb6730_240_290'
178
- FANUC_ARC_MATE_100I_D = 'fanuc-arc_mate_100iD'
179
- FANUC_ARC_MATE_100I_D16_S = 'fanuc-arc_mate_100iD16S'
180
- FANUC_ARC_MATE_120I_D = 'fanuc-arc_mate_120iD'
181
- FANUC_ARC_MATE_120I_D12_L = 'fanuc-arc_mate_120iD12L'
182
- FANUC_ARC_MATE_120I_D35 = 'fanuc-arc_mate_120iD35'
183
- FANUC_CR35IB = 'fanuc-cr35ib'
184
- FANUC_CR7IA = 'fanuc-cr7ia'
185
- FANUC_CR7IAL = 'fanuc-cr7ial'
186
- FANUC_CRX10IA = 'fanuc-crx10ia'
187
- FANUC_CRX10IAL = 'fanuc-crx10ial'
188
- FANUC_CRX20IAL = 'fanuc-crx20ial'
189
- FANUC_CRX25IA = 'fanuc-crx25ia'
190
- FANUC_CRX30IA = 'fanuc-crx30ia'
191
- FANUC_CRX5IA = 'fanuc-crx5ia'
192
- FANUC_LR_MATE_200I_D = 'fanuc-lr_mate_200iD'
193
- FANUC_LR_MATE_200I_D4_S = 'fanuc-lr_mate_200iD4S'
194
- FANUC_LR_MATE_200I_D7_L = 'fanuc-lr_mate_200iD7L'
195
- FANUC_M10I_D12 = 'fanuc-m10iD12'
196
- FANUC_M10I_D16_S = 'fanuc-m10iD16S'
197
- FANUC_M20I_D25 = 'fanuc-m20iD25'
198
- FANUC_M20I_D35 = 'fanuc-m20iD35'
199
- FANUC_M710I_C20_L = 'fanuc-m710iC20L'
200
- FANUC_M900I_B280_L = 'fanuc-m900iB280L'
201
- FANUC_M900I_B360_E = 'fanuc-m900iB360E'
202
- FANUC_R2000IC125L = 'fanuc-r2000ic125l'
203
- FANUC_R2000IC210F = 'fanuc-r2000ic210f'
204
- KUKA_KR10_R1100 = 'kuka-kr10_r1100'
205
- KUKA_KR10_R1100_2 = 'kuka-kr10_r1100_2'
206
- KUKA_KR10_R900 = 'kuka-kr10_r900'
207
- KUKA_KR10_R900_2 = 'kuka-kr10_r900_2'
208
- KUKA_KR120_R2700_2 = 'kuka-kr120_r2700_2'
209
- KUKA_KR12_R1810_2 = 'kuka-kr12_r1810_2'
210
- KUKA_KR150_R2 = 'kuka-kr150_r2'
211
- KUKA_KR16_R1610_2 = 'kuka-kr16_r1610_2'
212
- KUKA_KR16_R2010_2 = 'kuka-kr16_r2010_2'
213
- KUKA_KR20_R1810 = 'kuka-kr20_r1810'
214
- KUKA_KR20_R1810_2 = 'kuka-kr20_r1810_2'
215
- KUKA_KR120_R3100_2 = 'kuka-kr120_r3100_2'
216
- KUKA_KR120_R3900_2_K = 'kuka-kr120_r3900_2_k'
217
- KUKA_KR210_R2700_EXTRA = 'kuka-kr210_r2700_extra'
218
- KUKA_KR210_R2700_2 = 'kuka-kr210_r2700_2'
219
- KUKA_KR210_R3100_2 = 'kuka-kr210_r3100_2'
220
- KUKA_KR210_R3300_2 = 'kuka-kr210_r3300_2'
221
- KUKA_KR240_R2700 = 'kuka-kr240_r2700'
222
- KUKA_KR240_R2900 = 'kuka-kr240_r2900'
223
- KUKA_KR240_R3700_2 = 'kuka-kr240_r3700_2'
224
- KUKA_KR250_R2700_2 = 'kuka-kr250_r2700_2'
225
- KUKA_KR270_R2700 = 'kuka-kr270_r2700'
226
- KUKA_KR30_R2100 = 'kuka-kr30_r2100'
227
- KUKA_KR30_R3 = 'kuka-kr30_r3'
228
- KUKA_KR360_L240_3 = 'kuka-kr360_l240_3'
229
- KUKA_KR3_R540 = 'kuka-kr3_r540'
230
- KUKA_KR4_R600 = 'kuka-kr4_r600'
231
- KUKA_KR500_L340_3 = 'kuka-kr500_l340_3'
232
- KUKA_KR50_R2500 = 'kuka-kr50_r2500'
233
- KUKA_KR60_R3 = 'kuka-kr60_r3'
234
- KUKA_KR6_R1820 = 'kuka-kr6_r1820'
235
- KUKA_KR6_R700_2 = 'kuka-kr6_r700_2'
236
- KUKA_KR6_R700_SIXX = 'kuka-kr6_r700_sixx'
237
- KUKA_KR6_R900 = 'kuka-kr6_r900'
238
- KUKA_KR6_R900_2 = 'kuka-kr6_r900_2'
239
- KUKA_KR70_R2100 = 'kuka-kr70_r2100'
240
- KUKA_LBR_IISY_11_R1300 = 'kuka-lbr_iisy_11_r1300'
241
- UNIVERSALROBOTS_UR10CB = 'universalrobots-ur10cb'
242
- UNIVERSALROBOTS_UR10E = 'universalrobots-ur10e'
243
- UNIVERSALROBOTS_UR12E = 'universalrobots-ur12e'
244
- UNIVERSALROBOTS_UR16E = 'universalrobots-ur16e'
245
- UNIVERSALROBOTS_UR20E = 'universalrobots-ur20e'
246
- UNIVERSALROBOTS_UR3E = 'universalrobots-ur3e'
247
- UNIVERSALROBOTS_UR5CB = 'universalrobots-ur5cb'
248
- UNIVERSALROBOTS_UR5E = 'universalrobots-ur5e'
249
- UNIVERSALROBOTS_UR7E = 'universalrobots-ur7e'
250
- YASKAWA_AR1440 = 'yaskawa-ar1440'
251
- YASKAWA_AR1730 = 'yaskawa-ar1730'
252
- YASKAWA_AR2010 = 'yaskawa-ar2010'
253
- YASKAWA_AR3120 = 'yaskawa-ar3120'
254
- YASKAWA_AR700 = 'yaskawa-ar700'
255
- YASKAWA_AR900 = 'yaskawa-ar900'
256
- YASKAWA_GP110 = 'yaskawa-gp110'
257
- YASKAWA_GP12 = 'yaskawa-gp12'
258
- YASKAWA_GP180 = 'yaskawa-gp180'
259
- YASKAWA_GP180_120 = 'yaskawa-gp180-120'
260
- YASKAWA_GP20HL = 'yaskawa-gp20hl'
261
- YASKAWA_GP215 = 'yaskawa-gp215'
262
- YASKAWA_GP225 = 'yaskawa-gp225'
263
- YASKAWA_GP25 = 'yaskawa-gp25'
264
- YASKAWA_GP250 = 'yaskawa-gp250'
265
- YASKAWA_GP25_12 = 'yaskawa-gp25_12'
266
- YASKAWA_GP280 = 'yaskawa-gp280'
267
- YASKAWA_GP35_L = 'yaskawa-gp35L'
268
- YASKAWA_GP400 = 'yaskawa-gp400'
269
- YASKAWA_GP50 = 'yaskawa-gp50'
270
- YASKAWA_GP600 = 'yaskawa-gp600'
271
- YASKAWA_GP7 = 'yaskawa-gp7'
272
- YASKAWA_GP8 = 'yaskawa-gp8'
273
- YASKAWA_GP88 = 'yaskawa-gp88'
274
- YASKAWA_HC10DTP = 'yaskawa-hc10dtp'
275
- YASKAWA_HC20DTP = 'yaskawa-hc20dtp'
276
-
277
-
278
155
  class VirtualController(BaseModel):
279
156
  """
280
157
  The configuration of a virtual robot controller has to contain the manufacturer string,
@@ -284,15 +161,40 @@ class VirtualController(BaseModel):
284
161
 
285
162
  kind: Literal['VirtualController'] = 'VirtualController'
286
163
  manufacturer: Manufacturer
287
- type: Optional[VirtualControllerTypes] = None
288
- json_: Annotated[Optional[str], Field(alias='json')] = None
164
+ type: Annotated[
165
+ str | None,
166
+ Field(
167
+ examples=[
168
+ 'abb-irb1200_7',
169
+ 'abb-irb1010_037_15',
170
+ 'abb-irb2600ID_200_8',
171
+ 'fanuc-arc_mate_120iD12L',
172
+ 'fanuc-crx10ial',
173
+ 'fanuc-lr_mate_200iD4S',
174
+ 'fanuc-r2000ic125l',
175
+ 'kuka-kr10_r1100_2',
176
+ 'kuka-kr210_r2700_extra',
177
+ 'kuka-lbr_iisy_11_r1300',
178
+ 'universalrobots-ur10cb',
179
+ 'yaskawa-ar1440',
180
+ 'yaskawa-gp180-120',
181
+ 'yaskawa-hc20dtp',
182
+ ]
183
+ ),
184
+ ] = None
185
+ """
186
+ Preset type of the virtual robot controller.
187
+ See [getRobotConfigurations](getRobotConfigurations) for supported types.
188
+
189
+ """
190
+ json_: Annotated[str | None, Field(alias='json')] = None
289
191
  """
290
192
  Complete JSON configuration of the virtual robot controller.
291
193
  Can be obtained from the physical controller's configuration via [getVirtualControllerConfiguration](getVirtualControllerConfiguration).
292
194
  If provided, the `type` field should not be used.
293
195
 
294
196
  """
295
- initial_joint_position: Optional[str] = None
197
+ initial_joint_position: str | None = None
296
198
  """
297
199
  Initial joint position of the first motion group from the virtual robot controller.
298
200
  Provide the joint position as a JSON array containing 7 float values,
@@ -323,14 +225,12 @@ class RobotController(BaseModel):
323
225
 
324
226
  """
325
227
  configuration: Annotated[
326
- Union[
327
- AbbController,
328
- FanucController,
329
- KukaController,
330
- UniversalrobotsController,
331
- VirtualController,
332
- YaskawaController,
333
- ],
228
+ AbbController
229
+ | FanucController
230
+ | KukaController
231
+ | UniversalrobotsController
232
+ | VirtualController
233
+ | YaskawaController,
334
234
  Field(discriminator='kind'),
335
235
  ]
336
236
 
@@ -360,8 +260,8 @@ class ContainerImage(BaseModel):
360
260
  """
361
261
  The location of a container image in the form of `<registry>/<image>:<tag>`.
362
262
  """
363
- credentials: Optional[ImageCredentials] = None
364
- secrets: Optional[List[Secret]] = None
263
+ credentials: ImageCredentials | None = None
264
+ secrets: list[Secret] | None = None
365
265
  """
366
266
  Known secrets for authentication with the container registry.
367
267
  """
@@ -379,7 +279,7 @@ class ContainerEnvironment(RootModel):
379
279
 
380
280
  """
381
281
 
382
- root: List[ContainerEnvironmentItem]
282
+ root: list[ContainerEnvironmentItem]
383
283
  """
384
284
  A list of environment variables with name and their value.
385
285
  These can be used to configure the containerized application, and turn features on or off.
@@ -446,11 +346,11 @@ class ContainerResources(BaseModel):
446
346
  Additional resources that the application requires.
447
347
  """
448
348
 
449
- intel_gpu: Annotated[Optional[int], Field(ge=0, le=1)] = None
349
+ intel_gpu: Annotated[int | None, Field(ge=0, le=1)] = None
450
350
  """
451
351
  Number of GPUs the application requires.
452
352
  """
453
- memory_limit: Annotated[Optional[str], Field(examples=['1000Mi'])] = None
353
+ memory_limit: Annotated[str | None, Field(examples=['1000Mi'])] = None
454
354
  """
455
355
  The maximum memory allocated to this application.
456
356
  """
@@ -478,14 +378,14 @@ class App(BaseModel):
478
378
  The path of the icon for the App (/$cell/$name/$app_icon).
479
379
  """
480
380
  container_image: ContainerImage
481
- port: Optional[int] = 8080
381
+ port: int | None = 8080
482
382
  """
483
383
  The port the containerized webserver is listening on.
484
384
  """
485
- environment: Optional[ContainerEnvironment] = None
486
- storage: Optional[ContainerStorage] = None
487
- resources: Optional[ContainerResources] = None
488
- health_path: Optional[str] = None
385
+ environment: ContainerEnvironment | None = None
386
+ storage: ContainerStorage | None = None
387
+ resources: ContainerResources | None = None
388
+ health_path: str | None = None
489
389
  """
490
390
  Defines the URL path suffix used to check the application's health status. The complete health check URL
491
391
  is constructed as `/$cell/$name/$health_path`. When the application is working as expected,
@@ -498,7 +398,7 @@ class App(BaseModel):
498
398
  automatically restart the application container to restore service.
499
399
 
500
400
  """
501
- diagnosis_path: Optional[str] = None
401
+ diagnosis_path: str | None = None
502
402
  """
503
403
  Defines the URL path suffix used to provide an endpoint for diagnosis data collection.
504
404
  The complete diagnosis check URL is constructed as `/$cell/$name/$diagnosis_path`.
@@ -518,13 +418,13 @@ class Cell(BaseModel):
518
418
  """
519
419
 
520
420
  name: CellName
521
- description: Optional[CellDescription] = None
522
- controllers: Optional[List[RobotController]] = None
523
- apps: Optional[List[App]] = None
421
+ description: CellDescription | None = None
422
+ controllers: list[RobotController] | None = None
423
+ apps: list[App] | None = None
524
424
 
525
425
 
526
426
  class Error(BaseModel):
527
- code: Optional[str] = None
427
+ code: str | None = None
528
428
  message: str
529
429
 
530
430
 
@@ -570,7 +470,7 @@ class ServiceStatusPhase(Enum):
570
470
  class Status(BaseModel):
571
471
  severity: ServiceStatusSeverity
572
472
  code: ServiceStatusPhase
573
- reason: Optional[str] = None
473
+ reason: str | None = None
574
474
 
575
475
 
576
476
  class ServiceStatus(BaseModel):
@@ -580,7 +480,7 @@ class ServiceStatus(BaseModel):
580
480
 
581
481
 
582
482
  class ServiceStatusList(RootModel):
583
- root: List[ServiceStatus]
483
+ root: list[ServiceStatus]
584
484
 
585
485
  def __getitem__(self, index: int) -> ServiceStatus:
586
486
  """
@@ -644,14 +544,14 @@ class BusIOProfinetIpConfig(BaseModel):
644
544
 
645
545
 
646
546
  class BusIOProfinetNetwork(BaseModel):
647
- device_name: Annotated[Optional[str], Field(examples=['pnDevice'])] = None
547
+ device_name: Annotated[str | None, Field(examples=['pnDevice'])] = None
648
548
  """
649
549
  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
550
  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
551
 
652
552
  """
653
- ip_config: Optional[BusIOProfinetIpConfig] = None
654
- rema_xml_content: Optional[str] = None
553
+ ip_config: BusIOProfinetIpConfig | None = None
554
+ rema_xml_content: str | None = None
655
555
  """
656
556
  Content of the PROFINET REMA XML file.
657
557
  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 +590,7 @@ class BusIOProfinet(BaseModel):
690
590
  """
691
591
 
692
592
  bus_type: Literal['profinet'] = 'profinet'
693
- network_config: Optional[BusIOProfinetNetwork] = None
593
+ network_config: BusIOProfinetNetwork | None = None
694
594
  """
695
595
  Used to enable IP communication through the same physical ethernet interface while PROFINET driver is active.
696
596
 
@@ -709,7 +609,9 @@ class BusIOProfinet(BaseModel):
709
609
  MAC address of the physical ethernet interface that you want to use for PROFINET communication.
710
610
 
711
611
  """
712
- default_route: Optional[BusIOProfinetDefaultRoute] = None
612
+ default_route: Annotated[
613
+ BusIOProfinetDefaultRoute | None, Field(deprecated=True)
614
+ ] = None
713
615
 
714
616
 
715
617
  class BusIOProfinetVirtual(BaseModel):
@@ -722,7 +624,7 @@ class BusIOProfinetVirtual(BaseModel):
722
624
 
723
625
 
724
626
  class BusIOModbusTCPServer(BaseModel):
725
- network_type: Optional[Literal['tcp']] = None
627
+ network_type: Literal['tcp'] | None = None
726
628
  port: Annotated[int, Field(examples=[502], ge=1, le=65534)]
727
629
  """
728
630
  Port number of the MODBUS server to establish communication with.
@@ -766,7 +668,7 @@ class BusIOModbusServer(BaseModel):
766
668
 
767
669
 
768
670
  class BusIOModbusTCPClient(BaseModel):
769
- network_type: Optional[Literal['tcp']] = None
671
+ network_type: Literal['tcp'] | None = None
770
672
  ip: Annotated[str, Field(examples=['192.168.1.100'])]
771
673
  """
772
674
  IP address of the MODBUS server to establish communication with.
@@ -800,13 +702,11 @@ class BusIOModbusVirtual(BaseModel):
800
702
 
801
703
  class BusIOType(RootModel):
802
704
  root: Annotated[
803
- Union[
804
- BusIOProfinet,
805
- BusIOProfinetVirtual,
806
- BusIOModbusServer,
807
- BusIOModbusClient,
808
- BusIOModbusVirtual,
809
- ],
705
+ BusIOProfinet
706
+ | BusIOProfinetVirtual
707
+ | BusIOModbusServer
708
+ | BusIOModbusClient
709
+ | BusIOModbusVirtual,
810
710
  Field(discriminator='bus_type'),
811
711
  ]
812
712
 
@@ -845,7 +745,7 @@ class Metadata(RootModel):
845
745
  Additional metadata to add to the backup
846
746
  """
847
747
 
848
- root: Dict[str, str]
748
+ root: dict[str, str]
849
749
 
850
750
 
851
751
  class ConfigurationArchive(RootModel):
@@ -883,11 +783,9 @@ class ConfigurationArchiveStatusSuccess(BaseModel):
883
783
 
884
784
  class ConfigurationArchiveStatus(RootModel):
885
785
  root: Annotated[
886
- Union[
887
- ConfigurationArchiveStatusCreating,
888
- ConfigurationArchiveStatusError,
889
- ConfigurationArchiveStatusSuccess,
890
- ],
786
+ ConfigurationArchiveStatusCreating
787
+ | ConfigurationArchiveStatusError
788
+ | ConfigurationArchiveStatusSuccess,
891
789
  Field(discriminator='status'),
892
790
  ]
893
791
  """
@@ -925,7 +823,7 @@ class License(BaseModel):
925
823
  """
926
824
  Identification key of the license.
927
825
  """
928
- license_expiry_date: Optional[date] = None
826
+ license_expiry_date: date | None = None
929
827
  """
930
828
  Expiration date of the license.
931
829
  """
@@ -941,11 +839,11 @@ class License(BaseModel):
941
839
  """
942
840
  Amount of times the license can be activated.
943
841
  """
944
- feature_limitations: Optional[Dict[str, int]] = None
842
+ feature_limitations: dict[str, int] | None = None
945
843
  """
946
844
  Feature limitations of the license.
947
845
  """
948
- feature_flags: Optional[List[str]] = None
846
+ feature_flags: list[str] | None = None
949
847
  """
950
848
  Features enabled by a license.
951
849
  """
@@ -1101,7 +999,7 @@ class Vector3d(RootModel):
1101
999
 
1102
1000
  """
1103
1001
 
1104
- root: Annotated[List[float], Field(max_length=3, min_length=3, title='Vector3d')]
1002
+ root: Annotated[list[float], Field(max_length=3, min_length=3, title='Vector3d')]
1105
1003
  """
1106
1004
  A three-dimensional vector [x, y, z] with double precision.
1107
1005
 
@@ -1138,7 +1036,7 @@ class ConvexHull(BaseModel):
1138
1036
  """
1139
1037
 
1140
1038
  shape_type: Literal['convex_hull'] = 'convex_hull'
1141
- vertices: List[Vector3d]
1039
+ vertices: list[Vector3d]
1142
1040
  """
1143
1041
  The list of encapsulated points.
1144
1042
  """
@@ -1154,7 +1052,7 @@ class RotationVector(RootModel):
1154
1052
  """
1155
1053
 
1156
1054
  root: Annotated[
1157
- List[float], Field(max_length=3, min_length=3, title='RotationVector')
1055
+ list[float], Field(max_length=3, min_length=3, title='RotationVector')
1158
1056
  ]
1159
1057
  """
1160
1058
  Defines a rotation in 3D space.
@@ -1197,8 +1095,8 @@ class Pose(BaseModel):
1197
1095
 
1198
1096
  """
1199
1097
 
1200
- position: Optional[Vector3d] = None
1201
- orientation: Optional[RotationVector] = None
1098
+ position: Vector3d | None = None
1099
+ orientation: RotationVector | None = None
1202
1100
 
1203
1101
 
1204
1102
  class Collider(BaseModel):
@@ -1216,27 +1114,25 @@ class Collider(BaseModel):
1216
1114
  """
1217
1115
 
1218
1116
  shape: Annotated[
1219
- Union[
1220
- Sphere,
1221
- Box,
1222
- Rectangle,
1223
- Plane,
1224
- Cylinder,
1225
- Capsule,
1226
- RectangularCapsule,
1227
- ConvexHull,
1228
- ],
1117
+ Sphere
1118
+ | Box
1119
+ | Rectangle
1120
+ | Plane
1121
+ | Cylinder
1122
+ | Capsule
1123
+ | RectangularCapsule
1124
+ | ConvexHull,
1229
1125
  Field(discriminator='shape_type'),
1230
1126
  ]
1231
- pose: Optional[Pose] = None
1232
- margin: Optional[float] = 0
1127
+ pose: Pose | None = None
1128
+ margin: float | None = 0
1233
1129
  """
1234
1130
  Increases the shape's size in all dimensions. Applied in [mm]. Can be used to keep a safe distance to the shape.
1235
1131
  """
1236
1132
 
1237
1133
 
1238
1134
  class Link(RootModel):
1239
- root: Dict[str, Collider]
1135
+ root: dict[str, Collider]
1240
1136
 
1241
1137
 
1242
1138
  class LinkChain(RootModel):
@@ -1257,7 +1153,7 @@ class LinkChain(RootModel):
1257
1153
  """
1258
1154
 
1259
1155
  root: Annotated[
1260
- List[Link],
1156
+ list[Link],
1261
1157
  Field(
1262
1158
  examples=[
1263
1159
  [
@@ -1335,7 +1231,7 @@ class ControllerDescription(BaseModel):
1335
1231
  The data type to describe a robot controller.
1336
1232
  """
1337
1233
 
1338
- connected_motion_groups: List[str]
1234
+ connected_motion_groups: list[str]
1339
1235
  supports_freedrive: bool
1340
1236
  """
1341
1237
  Can this controller be moved through freedrive (true), or not (false).
@@ -1462,7 +1358,7 @@ class Joints(RootModel):
1462
1358
 
1463
1359
  """
1464
1360
 
1465
- root: List[float]
1361
+ root: list[float]
1466
1362
  """
1467
1363
  This structure describes a set of joint values, e.g., positions, currents, torques, of a motion group.
1468
1364
 
@@ -1502,7 +1398,7 @@ class MotionGroupStateJointLimitReached(BaseModel):
1502
1398
 
1503
1399
  """
1504
1400
 
1505
- limit_reached: List[bool]
1401
+ limit_reached: list[bool]
1506
1402
  """
1507
1403
  If true, operational (soft) jointLimit is reached for specific joint.
1508
1404
  """
@@ -1546,7 +1442,7 @@ class JoggingPausedNearJointLimit(BaseModel):
1546
1442
  """
1547
1443
 
1548
1444
  kind: Literal['PAUSED_NEAR_JOINT_LIMIT'] = 'PAUSED_NEAR_JOINT_LIMIT'
1549
- joint_indices: List[JointIndice]
1445
+ joint_indices: list[JointIndice]
1550
1446
 
1551
1447
 
1552
1448
  class JoggingPausedNearCollision(BaseModel):
@@ -1573,13 +1469,11 @@ class JoggingDetails(BaseModel):
1573
1469
  """
1574
1470
 
1575
1471
  state: Annotated[
1576
- Union[
1577
- JoggingRunning,
1578
- JoggingPausedByUser,
1579
- JoggingPausedOnIO,
1580
- JoggingPausedNearJointLimit,
1581
- JoggingPausedNearCollision,
1582
- ],
1472
+ JoggingRunning
1473
+ | JoggingPausedByUser
1474
+ | JoggingPausedOnIO
1475
+ | JoggingPausedNearJointLimit
1476
+ | JoggingPausedNearCollision,
1583
1477
  Field(discriminator='kind'),
1584
1478
  ]
1585
1479
  kind: Literal['JOGGING'] = 'JOGGING'
@@ -1670,13 +1564,11 @@ class TrajectoryDetails(BaseModel):
1670
1564
  """
1671
1565
  location: Location
1672
1566
  state: Annotated[
1673
- Union[
1674
- TrajectoryRunning,
1675
- TrajectoryPausedByUser,
1676
- TrajectoryEnded,
1677
- TrajectoryWaitForIO,
1678
- TrajectoryPausedOnIO,
1679
- ],
1567
+ TrajectoryRunning
1568
+ | TrajectoryPausedByUser
1569
+ | TrajectoryEnded
1570
+ | TrajectoryWaitForIO
1571
+ | TrajectoryPausedOnIO,
1680
1572
  Field(discriminator='kind'),
1681
1573
  ]
1682
1574
  kind: Literal['TRAJECTORY'] = 'TRAJECTORY'
@@ -1694,13 +1586,13 @@ class Execute(BaseModel):
1694
1586
 
1695
1587
  """
1696
1588
 
1697
- joint_position: List[float]
1589
+ joint_position: list[float]
1698
1590
  """
1699
1591
  Commanded joint position of each joint in [rad]. This command was sent in the time step the corresponding state was received.
1700
1592
 
1701
1593
  """
1702
1594
  details: Annotated[
1703
- Optional[Union[JoggingDetails, TrajectoryDetails]], Field(discriminator='kind')
1595
+ JoggingDetails | TrajectoryDetails | None, Field(discriminator='kind')
1704
1596
  ] = None
1705
1597
 
1706
1598
 
@@ -1737,19 +1629,19 @@ class MotionGroupState(BaseModel):
1737
1629
  Indicates whether the joint is in a limit for all joints of the motion group.
1738
1630
 
1739
1631
  """
1740
- joint_torque: Optional[Joints] = None
1632
+ joint_torque: Joints | None = None
1741
1633
  """
1742
1634
  Current joint torque of each joint in [Nm].
1743
1635
  Is only available if the robot controller supports it, e.g., available for UR controllers.
1744
1636
 
1745
1637
  """
1746
- joint_current: Optional[Joints] = None
1638
+ joint_current: Joints | None = None
1747
1639
  """
1748
1640
  Current at TCP in [A].
1749
1641
  Is only available if the robot controller supports it, e.g., available for UR controllers.
1750
1642
 
1751
1643
  """
1752
- flange_pose: Optional[Pose] = None
1644
+ flange_pose: Pose | None = None
1753
1645
  """
1754
1646
  Pose of the flange.
1755
1647
  Positions are in [mm].
@@ -1758,13 +1650,13 @@ class MotionGroupState(BaseModel):
1758
1650
  For robot arms a flange pose is always returned, for positioners the flange might not be available, depending on the model.
1759
1651
 
1760
1652
  """
1761
- tcp: Optional[str] = None
1653
+ tcp: str | None = None
1762
1654
  """
1763
1655
  Unique identifier addressing the active TCP.
1764
1656
  Might not be returned for positioners as some do not support TCPs, depending on the model.
1765
1657
 
1766
1658
  """
1767
- tcp_pose: Optional[Pose] = None
1659
+ tcp_pose: Pose | None = None
1768
1660
  """
1769
1661
  Pose of the TCP selected on the robot control panel.
1770
1662
  Positions are in [mm].
@@ -1773,14 +1665,14 @@ class MotionGroupState(BaseModel):
1773
1665
  Might not be returned for positioners as some do not support TCPs, depending on the model.
1774
1666
 
1775
1667
  """
1776
- coordinate_system: Optional[str] = None
1668
+ coordinate_system: str | None = None
1777
1669
  """
1778
1670
  Unique identifier addressing the reference coordinate system of the cartesian data.
1779
1671
  Might not be returned for positioners as some do not support TCPs, depending on the model.
1780
1672
  Default: world coordinate system of corresponding controller.
1781
1673
 
1782
1674
  """
1783
- payload: Optional[str] = None
1675
+ payload: str | None = None
1784
1676
  """
1785
1677
  Unique identifier addressing the active payload.
1786
1678
  Only fetchable via GET endpoint, not available in WebSocket.
@@ -1792,7 +1684,7 @@ class MotionGroupState(BaseModel):
1792
1684
  Convenience: Signals that NOVA treats measured joint velocities as 0.
1793
1685
 
1794
1686
  """
1795
- execute: Optional[Execute] = None
1687
+ execute: Execute | None = None
1796
1688
  """
1797
1689
  Data that was commanded to the motion group. Includes additional data on NOVA's execution components for executing trajectories and jogging.
1798
1690
  This is a convenience field to indicate the last command sent to the motion group.
@@ -1810,7 +1702,7 @@ class RobotControllerState(BaseModel):
1810
1702
  """
1811
1703
  Mode of communication and control between NOVA and the robot controller.
1812
1704
  """
1813
- last_error: Optional[List[str]] = None
1705
+ last_error: list[str] | None = None
1814
1706
  """
1815
1707
  Last error stack encountered during initialization process or after a controller disconnect.
1816
1708
  At this stage, it's unclear whether the error is fatal.
@@ -1837,14 +1729,14 @@ class RobotControllerState(BaseModel):
1837
1729
  """
1838
1730
  operation_mode: OperationMode
1839
1731
  safety_state: SafetyStateType
1840
- velocity_override: Annotated[Optional[int], Field(ge=1, le=100)] = None
1732
+ velocity_override: Annotated[int | None, Field(ge=1, le=100)] = None
1841
1733
  """
1842
1734
  If made available by the robot controller, returns the current velocity override in
1843
1735
  [percentage] for movements adjusted on robot control panel.
1844
1736
  Valid value range: 1 - 100.
1845
1737
 
1846
1738
  """
1847
- motion_groups: Annotated[List[MotionGroupState], Field(title='MotionGroupState[]')]
1739
+ motion_groups: Annotated[list[MotionGroupState], Field(title='MotionGroupState[]')]
1848
1740
  """
1849
1741
  State of indicated motion groups.
1850
1742
  In case of state request via controller all configured motion groups are returned.
@@ -1924,7 +1816,7 @@ class FloatValue(BaseModel):
1924
1816
 
1925
1817
  class IOBoundary(RootModel):
1926
1818
  root: Annotated[
1927
- Union[BooleanValue, IntegerValue, FloatValue],
1819
+ BooleanValue | IntegerValue | FloatValue,
1928
1820
  Field(discriminator='value_type', title='IOBoundary'),
1929
1821
  ]
1930
1822
 
@@ -1940,20 +1832,20 @@ class IODescription(BaseModel):
1940
1832
  Name of the input/output. Customize it on the physical controller or in the virtual robot specification.
1941
1833
 
1942
1834
  """
1943
- group: Optional[str] = None
1835
+ group: str | None = None
1944
1836
  """
1945
1837
  Name of the input/output group. Customize it on the physical controller or in the virtual robot specification.
1946
1838
 
1947
1839
  """
1948
1840
  direction: IODirection
1949
1841
  value_type: IOValueType
1950
- unit: Optional[UnitType] = None
1951
- min: Optional[IOBoundary] = None
1952
- max: Optional[IOBoundary] = None
1842
+ unit: UnitType | None = None
1843
+ min: IOBoundary | None = None
1844
+ max: IOBoundary | None = None
1953
1845
 
1954
1846
 
1955
1847
  class ListIODescriptionsResponse(RootModel):
1956
- root: List[IODescription]
1848
+ root: list[IODescription]
1957
1849
 
1958
1850
  def __getitem__(self, index: int) -> IODescription:
1959
1851
  """
@@ -2029,7 +1921,7 @@ class IOFloatValue(BaseModel):
2029
1921
 
2030
1922
  class IOValue(RootModel):
2031
1923
  root: Annotated[
2032
- Union[IOBooleanValue, IOIntegerValue, IOFloatValue],
1924
+ IOBooleanValue | IOIntegerValue | IOFloatValue,
2033
1925
  Field(discriminator='value_type'),
2034
1926
  ]
2035
1927
 
@@ -2039,7 +1931,7 @@ class StreamIOValuesResponse(BaseModel):
2039
1931
  Array of input/output values.
2040
1932
  """
2041
1933
 
2042
- io_values: List[IOValue]
1934
+ io_values: list[IOValue]
2043
1935
  timestamp: AwareDatetime
2044
1936
  """
2045
1937
  Timestamp indicating when the represented information was received from the robot controller.
@@ -2058,7 +1950,7 @@ class ListIOValuesResponse(RootModel):
2058
1950
  """
2059
1951
 
2060
1952
  root: Annotated[
2061
- List[IOValue],
1953
+ list[IOValue],
2062
1954
  Field(
2063
1955
  examples=[
2064
1956
  {
@@ -2211,7 +2103,7 @@ class Orientation(RootModel):
2211
2103
 
2212
2104
  """
2213
2105
 
2214
- root: Annotated[List[float], Field(max_length=4, min_length=3, title='Orientation')]
2106
+ root: Annotated[list[float], Field(max_length=4, min_length=3, title='Orientation')]
2215
2107
  """
2216
2108
  Describes an orientation in 3D space.
2217
2109
  A tree-to-four-dimensional vector [x, y, z, w] with double precision.
@@ -2244,17 +2136,17 @@ class Orientation(RootModel):
2244
2136
 
2245
2137
 
2246
2138
  class CoordinateSystemData(BaseModel):
2247
- name: Optional[str] = None
2139
+ name: str | None = None
2248
2140
  """
2249
2141
  Human readable name of this coordinate system.
2250
2142
  """
2251
- reference_coordinate_system: Optional[str] = None
2143
+ reference_coordinate_system: str | None = None
2252
2144
  """
2253
2145
  The identifier of the reference coordinate system. Empty if world is used.
2254
2146
  """
2255
- position: Optional[Vector3d] = None
2256
- orientation: Optional[Orientation] = None
2257
- orientation_type: Optional[OrientationType] = 'ROTATION_VECTOR'
2147
+ position: Vector3d | None = None
2148
+ orientation: Orientation | None = None
2149
+ orientation_type: OrientationType | None = 'ROTATION_VECTOR'
2258
2150
 
2259
2151
 
2260
2152
  class CoordinateSystem(CoordinateSystemData):
@@ -2265,7 +2157,7 @@ class CoordinateSystem(CoordinateSystemData):
2265
2157
 
2266
2158
 
2267
2159
  class ListCoordinateSystemsResponse(RootModel):
2268
- root: List[CoordinateSystem]
2160
+ root: list[CoordinateSystem]
2269
2161
 
2270
2162
  def __getitem__(self, index: int) -> CoordinateSystem:
2271
2163
  """
@@ -2312,7 +2204,7 @@ class ColliderDictionary(RootModel):
2312
2204
  A collection of identifiable colliders.
2313
2205
  """
2314
2206
 
2315
- root: Dict[str, Collider]
2207
+ root: dict[str, Collider]
2316
2208
 
2317
2209
 
2318
2210
  class LimitRange(BaseModel):
@@ -2320,37 +2212,37 @@ class LimitRange(BaseModel):
2320
2212
  The upper_limit must be greater then the lower_limit.
2321
2213
  """
2322
2214
 
2323
- lower_limit: Optional[float] = None
2324
- upper_limit: Optional[float] = None
2215
+ lower_limit: float | None = None
2216
+ upper_limit: float | None = None
2325
2217
 
2326
2218
 
2327
2219
  class JointLimits(BaseModel):
2328
- position: Optional[LimitRange] = None
2329
- velocity: Optional[float] = None
2330
- acceleration: Optional[float] = None
2331
- torque: Optional[float] = None
2220
+ position: LimitRange | None = None
2221
+ velocity: float | None = None
2222
+ acceleration: float | None = None
2223
+ torque: float | None = None
2332
2224
 
2333
2225
 
2334
2226
  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
2227
+ velocity: float | None = None
2228
+ acceleration: float | None = None
2229
+ orientation_velocity: float | None = None
2230
+ orientation_acceleration: float | None = None
2339
2231
 
2340
2232
 
2341
2233
  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
2234
+ joints: list[JointLimits] | None = None
2235
+ tcp: CartesianLimits | None = None
2236
+ elbow: CartesianLimits | None = None
2237
+ flange: CartesianLimits | None = None
2238
+ coupled_shoulder_elbow_joint: JointLimits | None = None
2347
2239
 
2348
2240
 
2349
2241
  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
2242
+ auto_limits: LimitSet | None = None
2243
+ manual_limits: LimitSet | None = None
2244
+ manual_t1_limits: LimitSet | None = None
2245
+ manual_t2_limits: LimitSet | None = None
2354
2246
 
2355
2247
 
2356
2248
  class Payload(BaseModel):
@@ -2359,8 +2251,8 @@ class Payload(BaseModel):
2359
2251
  """
2360
2252
  Mass of payload in [kg].
2361
2253
  """
2362
- center_of_mass: Optional[Vector3d] = None
2363
- moment_of_inertia: Optional[Vector3d] = None
2254
+ center_of_mass: Vector3d | None = None
2255
+ moment_of_inertia: Vector3d | None = None
2364
2256
 
2365
2257
 
2366
2258
  class DHParameter(BaseModel):
@@ -2368,23 +2260,23 @@ class DHParameter(BaseModel):
2368
2260
  A single set of DH parameters.
2369
2261
  """
2370
2262
 
2371
- alpha: Optional[float] = None
2263
+ alpha: float | None = None
2372
2264
  """
2373
2265
  Angle about x-axis in [rad].
2374
2266
  """
2375
- theta: Optional[float] = None
2267
+ theta: float | None = None
2376
2268
  """
2377
2269
  Angle about z-axis in [rad].
2378
2270
  """
2379
- a: Optional[float] = None
2271
+ a: float | None = None
2380
2272
  """
2381
2273
  Offset along x-axis in [mm].
2382
2274
  """
2383
- d: Optional[float] = None
2275
+ d: float | None = None
2384
2276
  """
2385
2277
  Offset along z-axis in [mm].
2386
2278
  """
2387
- reverse_rotation_direction: Optional[bool] = None
2279
+ reverse_rotation_direction: bool | None = None
2388
2280
  """
2389
2281
  True, if rotation direction of joint is reversed.
2390
2282
  """
@@ -2396,30 +2288,30 @@ class MotionGroupDescription(BaseModel):
2396
2288
  """
2397
2289
 
2398
2290
  motion_group_model: MotionGroupModel
2399
- mounting: Optional[Pose] = None
2291
+ mounting: Pose | None = None
2400
2292
  """
2401
2293
  The offset from the world frame to the motion group base.
2402
2294
  """
2403
- tcps: Annotated[
2404
- Optional[Dict[str, TcpOffset]], Field(title='TcpOffsetDictionary')
2405
- ] = None
2295
+ tcps: Annotated[dict[str, TcpOffset] | None, Field(title='TcpOffsetDictionary')] = (
2296
+ None
2297
+ )
2406
2298
  """
2407
2299
  Maps a TCP name to its offset relative to the flange coordinate system. Key must be a TCP identifier.
2408
2300
  Values are TcpOffsets.
2409
2301
 
2410
2302
  """
2411
- safety_zones: Optional[ColliderDictionary] = None
2303
+ safety_zones: ColliderDictionary | None = None
2412
2304
  """
2413
2305
  SafetyZones are areas which cannot be entered or where certain limits apply.
2414
2306
  """
2415
- safety_link_colliders: Optional[List[ColliderDictionary]] = None
2307
+ safety_link_colliders: list[ColliderDictionary] | None = None
2416
2308
  """
2417
2309
  The shape of the MotionGroups links to validate against safety zones.
2418
2310
  Indexed along the kinematic chain, starting with a static base shape before first joint.
2419
2311
 
2420
2312
  """
2421
2313
  safety_tool_colliders: Annotated[
2422
- Optional[Dict[str, ColliderDictionary]], Field(title='SafetyToolColliders')
2314
+ dict[str, ColliderDictionary] | None, Field(title='SafetyToolColliders')
2423
2315
  ] = None
2424
2316
  """
2425
2317
  Maps a TCP name to its tool collider. Key must be a TCP identifier.
@@ -2427,23 +2319,23 @@ class MotionGroupDescription(BaseModel):
2427
2319
 
2428
2320
  """
2429
2321
  operation_limits: OperationLimits
2430
- payloads: Annotated[
2431
- Optional[Dict[str, Payload]], Field(title='PayloadDictionary')
2432
- ] = None
2322
+ payloads: Annotated[dict[str, Payload] | None, Field(title='PayloadDictionary')] = (
2323
+ None
2324
+ )
2433
2325
  """
2434
2326
  Maps a payload name to its configuration. Key must be a payload identifier.
2435
2327
  Values are payload objects.
2436
2328
 
2437
2329
  """
2438
- cycle_time: Annotated[Optional[int], Field(ge=0, le=2147483647)] = None
2330
+ cycle_time: Annotated[int | None, Field(ge=0, le=2147483647)] = None
2439
2331
  """
2440
2332
  [ms] cycle time of the motion group controller. A trajectory for this motion group should be computed to this resolution.
2441
2333
  """
2442
- dh_parameters: Optional[List[DHParameter]] = None
2334
+ dh_parameters: list[DHParameter] | None = None
2443
2335
  """
2444
2336
  The DH parameters describing the motion group geometry, starting from base.
2445
2337
  """
2446
- serial_number: Optional[str] = None
2338
+ serial_number: str | None = None
2447
2339
  """
2448
2340
  The serial number of the motion group, if available. If not available, the serial number of the robot controller. If not available, empty.
2449
2341
 
@@ -2460,28 +2352,28 @@ class Tool(RootModel):
2460
2352
 
2461
2353
  """
2462
2354
 
2463
- root: Dict[str, Collider]
2355
+ root: dict[str, Collider]
2464
2356
 
2465
2357
 
2466
2358
  class CollisionSetup(BaseModel):
2467
- colliders: Optional[ColliderDictionary] = None
2359
+ colliders: ColliderDictionary | None = None
2468
2360
  """
2469
2361
  Colliders are checked against links and tool.
2470
2362
 
2471
2363
  """
2472
- link_chain: Optional[LinkChain] = None
2364
+ link_chain: LinkChain | None = None
2473
2365
  """
2474
2366
  The shape of the motion groups links to validate against colliders.
2475
2367
  Indexed along the kinematic chain, starting with a static base shape before first joint.
2476
2368
  The base of the motion group is not checked for collision against the environment.
2477
2369
 
2478
2370
  """
2479
- tool: Optional[Tool] = None
2371
+ tool: Tool | None = None
2480
2372
  """
2481
2373
  Shape of the tool to validate against colliders.
2482
2374
 
2483
2375
  """
2484
- self_collision_detection: Optional[bool] = True
2376
+ self_collision_detection: bool | None = True
2485
2377
  """
2486
2378
  If true, self-collision detection is enabled for the motion group.
2487
2379
 
@@ -2509,7 +2401,7 @@ class CollisionSetups(RootModel):
2509
2401
 
2510
2402
  """
2511
2403
 
2512
- root: Dict[str, CollisionSetup]
2404
+ root: dict[str, CollisionSetup]
2513
2405
 
2514
2406
 
2515
2407
  class MotionGroupSetup(BaseModel):
@@ -2518,18 +2410,18 @@ class MotionGroupSetup(BaseModel):
2518
2410
  """
2519
2411
  [ms] cycle time of the motion group controller. A trajectory for this motion group should be computed to this resolution.
2520
2412
  """
2521
- mounting: Optional[Pose] = None
2413
+ mounting: Pose | None = None
2522
2414
  """
2523
2415
  The offset from the world frame to the motion group base.
2524
2416
  """
2525
- tcp_offset: Optional[Pose] = None
2526
- global_limits: Optional[LimitSet] = None
2527
- payload: Optional[Payload] = None
2528
- collision_setups: Optional[CollisionSetups] = None
2417
+ tcp_offset: Pose | None = None
2418
+ global_limits: LimitSet | None = None
2419
+ payload: Payload | None = None
2420
+ collision_setups: CollisionSetups | None = None
2529
2421
 
2530
2422
 
2531
2423
  class DoubleArray(RootModel):
2532
- root: List[float]
2424
+ root: list[float]
2533
2425
 
2534
2426
  def __getitem__(self, index: int) -> float:
2535
2427
  """
@@ -2557,23 +2449,70 @@ class DoubleArray(RootModel):
2557
2449
 
2558
2450
 
2559
2451
  class BlendingAuto(BaseModel):
2560
- min_velocity_in_percent: Annotated[Optional[int], Field(ge=0, le=100)] = None
2452
+ min_velocity_in_percent: Annotated[int | None, Field(ge=0, le=100)] = None
2561
2453
  """
2562
- Auto-blending is used to keep a constant velocity when blending between two motion commands.
2454
+ 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
2455
  It changes the TCP path around the target point of the motion command.
2564
- The value represents the percentage of the original velocity.
2456
+ The value represents the percentage of the original velocity. Auto-blending is always performed in cartesian space.
2565
2457
 
2566
2458
  """
2567
2459
  blending_name: Literal['BlendingAuto'] = 'BlendingAuto'
2568
2460
 
2569
2461
 
2462
+ class BlendingSpace(Enum):
2463
+ """
2464
+ Defines the space in which blending is performed.
2465
+ - `JOINT`: Zone blending is performed in joint space
2466
+ - `CARTESIAN`: Auto-blending is performed in cartesian space
2467
+
2468
+ """
2469
+
2470
+ JOINT = 'JOINT'
2471
+ CARTESIAN = 'CARTESIAN'
2472
+
2473
+
2570
2474
  class BlendingPosition(BaseModel):
2571
- position_zone_radius: Optional[float] = None
2475
+ position_zone_radius: float | None = None
2572
2476
  """
2573
2477
  Specifies the maximum radius in [mm] around the motion command's target point
2574
2478
  where the TCP path can be altered to blend the motion command into the following one.
2575
2479
  If auto-blending blends too much of the resulting trajectory, use position-blending to restrict the blending zone radius.
2576
2480
 
2481
+ """
2482
+ position_zone_percentage: Annotated[float | None, Field(ge=0.0, le=100.0)] = None
2483
+ """
2484
+ Specifies the maximum blending percentage based on the trajectory length in position space
2485
+ around the motion command's target point. Percentage indicated in 0.0 - 100.0.
2486
+
2487
+ """
2488
+ orientation_zone_radius: float | None = None
2489
+ """
2490
+ Specifies the maximum radius in [rad] for orientation blending around the motion command's
2491
+ target orientation. At the target's orientation, the TCP orientation can be altered to blend into the following motion.
2492
+
2493
+ """
2494
+ orientation_zone_percentage: Annotated[float | None, Field(ge=0.0, le=100.0)] = None
2495
+ """
2496
+ Specifies the maximum blending percentage for orientation blending
2497
+ based on the trajectory length in orientation space. Percentage indicated in 0.0 - 100.0.
2498
+
2499
+ """
2500
+ joints_zone_radius: float | None = None
2501
+ """
2502
+ Specifies the maximum radius in [rad] for joint space blending around the motion command's
2503
+ target joint configuration. At the target joint configuration, the joint path can be altered to blend into the following motion.
2504
+
2505
+ """
2506
+ joints_zone_percentage: Annotated[float | None, Field(ge=0.0, le=100.0)] = None
2507
+ """
2508
+ Specifies the maximum blending percentage for joint space blending
2509
+ based on the trajectory length in joint space. Percentage indicated in 0.0 to 100.0.
2510
+
2511
+ """
2512
+ space: BlendingSpace | None = None
2513
+ """
2514
+ Defines the space in which blending is performed.
2515
+
2577
2516
  """
2578
2517
  blending_name: Literal['BlendingPosition'] = 'BlendingPosition'
2579
2518
 
@@ -2584,34 +2523,34 @@ class LimitsOverride(BaseModel):
2584
2523
 
2585
2524
  """
2586
2525
 
2587
- joint_velocity_limits: Optional[List[float]] = None
2526
+ joint_velocity_limits: list[float] | None = None
2588
2527
  """
2589
2528
  Maximum joint velocity in [rad/s] for each joint.
2590
2529
  Either leave this field empty or set a value for each joint.
2591
2530
 
2592
2531
  """
2593
- joint_acceleration_limits: Optional[List[float]] = None
2532
+ joint_acceleration_limits: list[float] | None = None
2594
2533
  """
2595
2534
  Maximum joint acceleration in [rad/s^2] for each joint.
2596
2535
  Either leave this field empty or set a value for each joint.
2597
2536
 
2598
2537
  """
2599
- tcp_velocity_limit: Optional[float] = None
2538
+ tcp_velocity_limit: float | None = None
2600
2539
  """
2601
2540
  Maximum allowed TCP velocity in [mm/s].
2602
2541
 
2603
2542
  """
2604
- tcp_acceleration_limit: Optional[float] = None
2543
+ tcp_acceleration_limit: float | None = None
2605
2544
  """
2606
2545
  Maximum allowed TCP acceleration in [mm/s^2].
2607
2546
 
2608
2547
  """
2609
- tcp_orientation_velocity_limit: Optional[float] = None
2548
+ tcp_orientation_velocity_limit: float | None = None
2610
2549
  """
2611
2550
  Maximum allowed TCP rotation velocity in [rad/s].
2612
2551
 
2613
2552
  """
2614
- tcp_orientation_acceleration_limit: Optional[float] = None
2553
+ tcp_orientation_acceleration_limit: float | None = None
2615
2554
  """
2616
2555
  Maximum allowed TCP rotation acceleration in [rad/s^2].
2617
2556
 
@@ -2642,7 +2581,7 @@ class PathCubicSpline(BaseModel):
2642
2581
 
2643
2582
  """
2644
2583
 
2645
- parameters: List[CubicSplineParameter]
2584
+ parameters: list[CubicSplineParameter]
2646
2585
  path_definition_name: Literal['PathCubicSpline'] = 'PathCubicSpline'
2647
2586
 
2648
2587
 
@@ -2683,21 +2622,20 @@ class PathJointPTP(BaseModel):
2683
2622
 
2684
2623
  class MotionCommand(BaseModel):
2685
2624
  blending: Annotated[
2686
- Optional[Union[BlendingAuto, BlendingPosition]],
2687
- Field(discriminator='blending_name'),
2625
+ BlendingAuto | BlendingPosition | None, Field(discriminator='blending_name')
2688
2626
  ] = None
2689
2627
  """
2690
2628
  Blending alters the TCP path at the target point of a motion command
2691
2629
  to ensure that the velocity does not drop to zero between two motion commands.
2692
2630
 
2693
2631
  """
2694
- limits_override: Optional[LimitsOverride] = None
2632
+ limits_override: LimitsOverride | None = None
2695
2633
  """
2696
2634
  Limits override is used to override the global limits of the motion group for this segment of the motion.
2697
2635
 
2698
2636
  """
2699
2637
  path: Annotated[
2700
- Union[PathCartesianPTP, PathCubicSpline, PathLine, PathCircle, PathJointPTP],
2638
+ PathCartesianPTP | PathCubicSpline | PathLine | PathCircle | PathJointPTP,
2701
2639
  Field(discriminator='path_definition_name'),
2702
2640
  ]
2703
2641
 
@@ -2716,7 +2654,7 @@ class PlanTrajectoryRequest(BaseModel):
2716
2654
  To move the robot to the start joint position use the endpoint [streamMoveToTrajectoryViaJointP2P](streamMoveToTrajectoryViaJointP2P).
2717
2655
 
2718
2656
  """
2719
- motion_commands: List[MotionCommand]
2657
+ motion_commands: list[MotionCommand]
2720
2658
  """
2721
2659
  List of motion commands. A command consists of a path definition (line, circle, joint_ptp, cartesian_ptp, cubic_spline), blending, and limits override.
2722
2660
 
@@ -2724,17 +2662,17 @@ class PlanTrajectoryRequest(BaseModel):
2724
2662
 
2725
2663
 
2726
2664
  class JointTrajectory(BaseModel):
2727
- joint_positions: List[Joints]
2665
+ joint_positions: list[Joints]
2728
2666
  """
2729
2667
  List of joint positions [rad] for each sample.
2730
2668
  The number of samples must match the number of timestamps provided in the times field.
2731
2669
 
2732
2670
  """
2733
- times: List[float]
2671
+ times: list[float]
2734
2672
  """
2735
2673
  Timestamp for each sample [s].
2736
2674
  """
2737
- locations: List[Location]
2675
+ locations: list[Location]
2738
2676
 
2739
2677
 
2740
2678
  class FeedbackOutOfWorkspace(BaseModel):
@@ -2742,7 +2680,7 @@ class FeedbackOutOfWorkspace(BaseModel):
2742
2680
  Requested TCP pose is outside of motion group's workspace.
2743
2681
  """
2744
2682
 
2745
- invalid_tcp_pose: Optional[Pose] = None
2683
+ invalid_tcp_pose: Pose | None = None
2746
2684
  error_feedback_name: Literal['FeedbackOutOfWorkspace'] = 'FeedbackOutOfWorkspace'
2747
2685
 
2748
2686
 
@@ -2763,8 +2701,8 @@ class FeedbackSingularity(BaseModel):
2763
2701
 
2764
2702
  """
2765
2703
 
2766
- singularity_type: Optional[SingularityTypeEnum] = None
2767
- singular_joint_position: Optional[DoubleArray] = None
2704
+ singularity_type: SingularityTypeEnum | None = None
2705
+ singular_joint_position: DoubleArray | None = None
2768
2706
  error_feedback_name: Literal['FeedbackSingularity'] = 'FeedbackSingularity'
2769
2707
 
2770
2708
 
@@ -2775,46 +2713,44 @@ class FeedbackJointLimitExceeded(BaseModel):
2775
2713
 
2776
2714
  """
2777
2715
 
2778
- joint_index: Annotated[Optional[int], Field(ge=0, le=2147483647)] = None
2779
- joint_position: Optional[DoubleArray] = None
2716
+ joint_index: Annotated[int | None, Field(ge=0, le=2147483647)] = None
2717
+ joint_position: DoubleArray | None = None
2780
2718
  error_feedback_name: Literal['FeedbackJointLimitExceeded'] = (
2781
2719
  'FeedbackJointLimitExceeded'
2782
2720
  )
2783
2721
 
2784
2722
 
2785
2723
  class CollisionContact(BaseModel):
2786
- local: Optional[Vector3d] = None
2787
- root: Optional[Vector3d] = None
2724
+ local: Vector3d | None = None
2725
+ root: Vector3d | None = None
2788
2726
 
2789
2727
 
2790
2728
  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
2729
+ id_of_a: str | None = None
2730
+ id_of_b: str | None = None
2731
+ id_of_layer: str | None = None
2732
+ normal_root_on_b: Vector3d | None = None
2733
+ position_on_a: CollisionContact | None = None
2734
+ position_on_b: CollisionContact | None = None
2797
2735
 
2798
2736
 
2799
2737
  class FeedbackCollision(BaseModel):
2800
- collisions: Optional[List[Collision]] = None
2801
- joint_position: Optional[DoubleArray] = None
2802
- tcp_pose: Optional[Pose] = None
2738
+ collisions: list[Collision] | None = None
2739
+ joint_position: DoubleArray | None = None
2740
+ tcp_pose: Pose | None = None
2803
2741
  error_feedback_name: Literal['FeedbackCollision'] = 'FeedbackCollision'
2804
2742
 
2805
2743
 
2806
2744
  class PlanTrajectoryFailedResponse(BaseModel):
2807
2745
  error_feedback: Annotated[
2808
- Union[
2809
- FeedbackOutOfWorkspace,
2810
- FeedbackSingularity,
2811
- FeedbackJointLimitExceeded,
2812
- FeedbackCollision,
2813
- ],
2746
+ FeedbackOutOfWorkspace
2747
+ | FeedbackSingularity
2748
+ | FeedbackJointLimitExceeded
2749
+ | FeedbackCollision,
2814
2750
  Field(discriminator='error_feedback_name'),
2815
2751
  ]
2816
2752
  error_location_on_trajectory: Location
2817
- joint_trajectory: Optional[JointTrajectory] = None
2753
+ joint_trajectory: JointTrajectory | None = None
2818
2754
  """
2819
2755
  The joint trajectory from the start joint position to the error.
2820
2756
 
@@ -2822,14 +2758,14 @@ class PlanTrajectoryFailedResponse(BaseModel):
2822
2758
 
2823
2759
 
2824
2760
  class PlanTrajectoryResponse(BaseModel):
2825
- response: Union[JointTrajectory, PlanTrajectoryFailedResponse]
2761
+ response: JointTrajectory | PlanTrajectoryFailedResponse
2826
2762
 
2827
2763
 
2828
2764
  class ValidationError(BaseModel):
2829
- loc: Annotated[List[Union[str, int]], Field(title='Location')]
2765
+ loc: Annotated[list[str | int], Field(title='Location')]
2830
2766
  msg: Annotated[str, Field(title='Message')]
2831
2767
  type: Annotated[str, Field(title='Error Type')]
2832
- input: Dict[str, Any]
2768
+ input: dict[str, Any]
2833
2769
 
2834
2770
 
2835
2771
  class ErrorInvalidJointCount(BaseModel):
@@ -2858,12 +2794,12 @@ class ErrorJointLimitExceeded(BaseModel):
2858
2794
 
2859
2795
  """
2860
2796
 
2861
- joint_index: Annotated[Optional[int], Field(ge=0, le=2147483647)] = None
2797
+ joint_index: Annotated[int | None, Field(ge=0, le=2147483647)] = None
2862
2798
  """
2863
2799
  Index of the joint exceeding its limits (0-based).
2864
2800
 
2865
2801
  """
2866
- joint_position: Optional[DoubleArray] = None
2802
+ joint_position: DoubleArray | None = None
2867
2803
  """
2868
2804
  The joint position violating the limits.
2869
2805
 
@@ -2877,8 +2813,8 @@ class ErrorJointPositionCollision(BaseModel):
2877
2813
 
2878
2814
  """
2879
2815
 
2880
- collisions: Optional[List[Collision]] = None
2881
- joint_position: Optional[DoubleArray] = None
2816
+ collisions: list[Collision] | None = None
2817
+ joint_position: DoubleArray | None = None
2882
2818
  """
2883
2819
  The joint position that collides.
2884
2820
 
@@ -2890,13 +2826,10 @@ class ErrorJointPositionCollision(BaseModel):
2890
2826
 
2891
2827
  class PlanValidationError(ValidationError):
2892
2828
  data: Annotated[
2893
- Optional[
2894
- Union[
2895
- ErrorInvalidJointCount,
2896
- ErrorJointLimitExceeded,
2897
- ErrorJointPositionCollision,
2898
- ]
2899
- ],
2829
+ ErrorInvalidJointCount
2830
+ | ErrorJointLimitExceeded
2831
+ | ErrorJointPositionCollision
2832
+ | None,
2900
2833
  Field(discriminator='error_feedback_name'),
2901
2834
  ] = None
2902
2835
  """
@@ -2906,7 +2839,7 @@ class PlanValidationError(ValidationError):
2906
2839
 
2907
2840
 
2908
2841
  class Plan422Response(BaseModel):
2909
- detail: Annotated[Optional[List[PlanValidationError]], Field(title='Detail')] = None
2842
+ detail: Annotated[list[PlanValidationError] | None, Field(title='Detail')] = None
2910
2843
 
2911
2844
 
2912
2845
  class RRTConnectAlgorithm(BaseModel):
@@ -2921,25 +2854,25 @@ class RRTConnectAlgorithm(BaseModel):
2921
2854
  This is a custom implementation optimized for manipulator kinematics and collision checking in industrial contexts.
2922
2855
 
2923
2856
  """
2924
- max_iterations: Annotated[Optional[int], Field(ge=1)] = 10000
2857
+ max_iterations: Annotated[int | None, Field(ge=1)] = 10000
2925
2858
  """
2926
2859
  Maximum number of iterations for the RRT Connect algorithm.
2927
2860
  Higher values increase likelihood of success, but also computation time.
2928
2861
 
2929
2862
  """
2930
- max_step_size: Optional[float] = 1
2863
+ max_step_size: float | None = 1
2931
2864
  """
2932
2865
  Maximum step size for tree extension in joint space.
2933
2866
  """
2934
- adaptive_step_size: Optional[bool] = True
2867
+ adaptive_step_size: bool | None = True
2935
2868
  """
2936
2869
  Adjust the maximum step size during the search based on the recent success rate of tree expansion.
2937
2870
  """
2938
- apply_smoothing: Optional[bool] = True
2871
+ apply_smoothing: bool | None = True
2939
2872
  """
2940
2873
  Apply smoothing after the search has succeeded. This will remove as many intermediate points as possible while keeping the path valid.
2941
2874
  """
2942
- apply_blending: Optional[bool] = True
2875
+ apply_blending: bool | None = True
2943
2876
  """
2944
2877
  Apply blending after the search has succeeded and smoothing has been applied. This will apply the largest viable blending at each intermediate point.
2945
2878
  """
@@ -2954,7 +2887,7 @@ class MidpointInsertionAlgorithm(BaseModel):
2954
2887
  This algorithm adds a single midpoint between the start and target joint position to find collision-free paths.
2955
2888
 
2956
2889
  """
2957
- max_iterations: Annotated[Optional[int], Field(ge=1)] = 1000
2890
+ max_iterations: Annotated[int | None, Field(ge=1)] = 1000
2958
2891
  """
2959
2892
  Maximum number of iterations for the midpoint insertion algorithm.
2960
2893
  Higher values increase likelyhood of success, but also computation time (linear).
@@ -2964,7 +2897,7 @@ class MidpointInsertionAlgorithm(BaseModel):
2964
2897
 
2965
2898
  class CollisionFreeAlgorithm(RootModel):
2966
2899
  root: Annotated[
2967
- Union[RRTConnectAlgorithm, MidpointInsertionAlgorithm],
2900
+ RRTConnectAlgorithm | MidpointInsertionAlgorithm,
2968
2901
  Field(discriminator='algorithm_name', title='CollisionFreeAlgorithm'),
2969
2902
  ]
2970
2903
  """
@@ -3008,7 +2941,7 @@ class ErrorMaxIterationsExceeded(BaseModel):
3008
2941
 
3009
2942
  """
3010
2943
 
3011
- max_iterations: Optional[int] = None
2944
+ max_iterations: int | None = None
3012
2945
  """
3013
2946
  The maximum number of iterations that was reached.
3014
2947
 
@@ -3035,7 +2968,7 @@ class PlanCollisionFreeResponse(BaseModel):
3035
2968
 
3036
2969
  """
3037
2970
 
3038
- response: Union[JointTrajectory, PlanCollisionFreeFailedResponse]
2971
+ response: JointTrajectory | PlanCollisionFreeFailedResponse
3039
2972
 
3040
2973
 
3041
2974
  class JointPositionLimits(RootModel):
@@ -3044,7 +2977,7 @@ class JointPositionLimits(RootModel):
3044
2977
 
3045
2978
  """
3046
2979
 
3047
- root: Annotated[List[LimitRange], Field(title='JointPositionLimits')]
2980
+ root: Annotated[list[LimitRange], Field(title='JointPositionLimits')]
3048
2981
  """
3049
2982
  Joint position limits in [rad], indexed starting from base.
3050
2983
 
@@ -3077,27 +3010,27 @@ class JointPositionLimits(RootModel):
3077
3010
 
3078
3011
  class InverseKinematicsRequest(BaseModel):
3079
3012
  motion_group_model: MotionGroupModel
3080
- tcp_poses: List[Pose]
3013
+ tcp_poses: list[Pose]
3081
3014
  """
3082
3015
  List of TCP poses for which the inverse solutions are computed.
3083
3016
 
3084
3017
  """
3085
- tcp_offset: Optional[Pose] = None
3086
- mounting: Optional[Pose] = None
3018
+ tcp_offset: Pose | None = None
3019
+ mounting: Pose | None = None
3087
3020
  """
3088
3021
  Offset from the world frame to the motion group base.
3089
3022
  """
3090
- joint_position_limits: Optional[JointPositionLimits] = None
3091
- collision_setups: Optional[CollisionSetups] = None
3023
+ joint_position_limits: JointPositionLimits | None = None
3024
+ collision_setups: CollisionSetups | None = None
3092
3025
 
3093
3026
 
3094
3027
  class InverseKinematicsResponse(BaseModel):
3095
- joints: List[List[DoubleArray]]
3028
+ joints: list[list[DoubleArray]]
3096
3029
 
3097
3030
 
3098
3031
  class InverseKinematicsValidationError(ValidationError):
3099
3032
  data: Annotated[
3100
- Optional[Union[ErrorInvalidJointCount, ErrorJointLimitExceeded]],
3033
+ ErrorInvalidJointCount | ErrorJointLimitExceeded | None,
3101
3034
  Field(discriminator='error_feedback_name'),
3102
3035
  ] = None
3103
3036
  """
@@ -3108,26 +3041,26 @@ class InverseKinematicsValidationError(ValidationError):
3108
3041
 
3109
3042
  class InverseKinematics422Response(BaseModel):
3110
3043
  detail: Annotated[
3111
- Optional[List[InverseKinematicsValidationError]], Field(title='Detail')
3044
+ list[InverseKinematicsValidationError] | None, Field(title='Detail')
3112
3045
  ] = None
3113
3046
 
3114
3047
 
3115
3048
  class ForwardKinematicsRequest(BaseModel):
3116
3049
  motion_group_model: MotionGroupModel
3117
- joint_positions: List[DoubleArray]
3050
+ joint_positions: list[DoubleArray]
3118
3051
  """
3119
3052
  List of joint positions [rad] for which TCP poses are computed.
3120
3053
 
3121
3054
  """
3122
- tcp_offset: Optional[Pose] = None
3123
- mounting: Optional[Pose] = None
3055
+ tcp_offset: Pose | None = None
3056
+ mounting: Pose | None = None
3124
3057
  """
3125
3058
  Offset from the world frame to the motion group base.
3126
3059
  """
3127
3060
 
3128
3061
 
3129
3062
  class ForwardKinematicsResponse(BaseModel):
3130
- tcp_poses: List[Pose]
3063
+ tcp_poses: list[Pose]
3131
3064
  """
3132
3065
  List of computed TCP poses corresponding to the input joint positions.
3133
3066
 
@@ -3135,17 +3068,17 @@ class ForwardKinematicsResponse(BaseModel):
3135
3068
 
3136
3069
 
3137
3070
  class ForwardKinematicsValidationError(ValidationError):
3138
- data: Optional[ErrorInvalidJointCount] = None
3071
+ data: ErrorInvalidJointCount | None = None
3139
3072
 
3140
3073
 
3141
3074
  class ForwardKinematics422Response(BaseModel):
3142
3075
  detail: Annotated[
3143
- Optional[List[ForwardKinematicsValidationError]], Field(title='Detail')
3076
+ list[ForwardKinematicsValidationError] | None, Field(title='Detail')
3144
3077
  ] = None
3145
3078
 
3146
3079
 
3147
3080
  class ListTrajectoriesResponse(BaseModel):
3148
- trajectories: Optional[List[str]] = None
3081
+ trajectories: list[str] | None = None
3149
3082
  """
3150
3083
  Identifiers of trajectories which are currently cached.
3151
3084
  Use [addTrajectory](addTrajectory) to add a new trajectory. Adding trajectories is necessary to execute them.
@@ -3165,7 +3098,7 @@ class AddTrajectoryRequest(BaseModel):
3165
3098
  an equal number of corresponding timestamps.
3166
3099
 
3167
3100
  """
3168
- tcp: Optional[str] = None
3101
+ tcp: str | None = None
3169
3102
  """
3170
3103
  Unique identifier of the tool the trajectory is planned for.
3171
3104
  """
@@ -3176,13 +3109,13 @@ class TcpRequiredError(BaseModel):
3176
3109
  Requested motion group requires TCP to be defined.
3177
3110
  """
3178
3111
 
3179
- tcp_missing: Optional[Dict[str, Any]] = None
3112
+ tcp_missing: dict[str, Any] | None = None
3180
3113
 
3181
3114
 
3182
3115
  class InconsistentTrajectorySize(BaseModel):
3183
- joint_position_size: Optional[int] = None
3184
- times_size: Optional[int] = None
3185
- locations_size: Optional[int] = None
3116
+ joint_position_size: int | None = None
3117
+ times_size: int | None = None
3118
+ locations_size: int | None = None
3186
3119
 
3187
3120
 
3188
3121
  class InconsistentTrajectorySizeError(BaseModel):
@@ -3191,24 +3124,24 @@ class InconsistentTrajectorySizeError(BaseModel):
3191
3124
 
3192
3125
  """
3193
3126
 
3194
- inconsistent_trajectory_size: Optional[InconsistentTrajectorySize] = None
3127
+ inconsistent_trajectory_size: InconsistentTrajectorySize | None = None
3195
3128
 
3196
3129
 
3197
3130
  class JointLimitExceededError(BaseModel):
3198
- joint_limit_exceeded: Optional[FeedbackJointLimitExceeded] = None
3131
+ joint_limit_exceeded: FeedbackJointLimitExceeded | None = None
3199
3132
 
3200
3133
 
3201
3134
  class CollisionError(BaseModel):
3202
- collision: Optional[FeedbackCollision] = None
3135
+ collision: FeedbackCollision | None = None
3203
3136
 
3204
3137
 
3205
3138
  class TorqueExceeded(BaseModel):
3206
- torque_value: Optional[float] = None
3139
+ torque_value: float | None = None
3207
3140
  """
3208
3141
  The torque value that was exceeded.
3209
3142
 
3210
3143
  """
3211
- torque_limit: Optional[float] = None
3144
+ torque_limit: float | None = None
3212
3145
  """
3213
3146
  The value of the torque limit that was exceeded.
3214
3147
 
@@ -3216,23 +3149,23 @@ class TorqueExceeded(BaseModel):
3216
3149
 
3217
3150
 
3218
3151
  class TorqueExceededError(BaseModel):
3219
- torque_exceeded: Optional[TorqueExceeded] = None
3152
+ torque_exceeded: TorqueExceeded | None = None
3220
3153
 
3221
3154
 
3222
3155
  class InvalidDof(BaseModel):
3223
- valid_dof: Optional[int] = None
3156
+ valid_dof: int | None = None
3224
3157
  """
3225
3158
  The valid degrees of freedom for the motion group.
3226
3159
 
3227
3160
  """
3228
- joint_position: Optional[List[float]] = None
3161
+ joint_position: list[float] | None = None
3229
3162
  """
3230
3163
  The joint position that is out of its limits.
3231
3164
  """
3232
3165
 
3233
3166
 
3234
3167
  class InvalidDofError(BaseModel):
3235
- invalid_dof: Optional[InvalidDof] = None
3168
+ invalid_dof: InvalidDof | None = None
3236
3169
 
3237
3170
 
3238
3171
  class NanValue(BaseModel):
@@ -3240,33 +3173,32 @@ class NanValue(BaseModel):
3240
3173
  Requested joint position contains NaN values.
3241
3174
  """
3242
3175
 
3243
- joint_position: Optional[List[float]] = None
3176
+ joint_position: list[float] | None = None
3244
3177
  """
3245
3178
  The joint position that is out of its limits.
3246
3179
  """
3247
3180
 
3248
3181
 
3249
3182
  class NanValueError(BaseModel):
3250
- nan_value: Optional[NanValue] = None
3183
+ nan_value: NanValue | None = None
3251
3184
  """
3252
3185
  Requested joint position contains NaN values.
3253
3186
  """
3254
3187
 
3255
3188
 
3256
3189
  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
3190
+ message: str | None = None
3191
+ location: Location | None = None
3192
+ data: (
3193
+ TcpRequiredError
3194
+ | InconsistentTrajectorySizeError
3195
+ | JointLimitExceededError
3196
+ | CollisionError
3197
+ | TorqueExceededError
3198
+ | InvalidDofError
3199
+ | NanValueError
3200
+ | None
3201
+ ) = None
3270
3202
 
3271
3203
 
3272
3204
  class AddTrajectoryResponse(BaseModel):
@@ -3281,12 +3213,12 @@ class AddTrajectoryResponse(BaseModel):
3281
3213
 
3282
3214
  """
3283
3215
 
3284
- trajectory: Optional[str] = None
3216
+ trajectory: str | None = None
3285
3217
  """
3286
3218
  The unique identifier of the trajectory. Use this identifier to execute the trajectory with the [executeTrajectory](executeTrajectory) endpoint.
3287
3219
 
3288
3220
  """
3289
- error: Optional[AddTrajectoryError] = None
3221
+ error: AddTrajectoryError | None = None
3290
3222
  """
3291
3223
  Always check this field first. If this field is present, the trajectory has an error and is only partially or not executable.
3292
3224
 
@@ -3329,7 +3261,7 @@ class TrajectoryData(BaseModel):
3329
3261
  Type specifier for server, set automatically.
3330
3262
 
3331
3263
  """
3332
- motion_group: Optional[str] = None
3264
+ motion_group: str | None = None
3333
3265
  """
3334
3266
  Identifier of the motion-group.
3335
3267
  """
@@ -3339,7 +3271,7 @@ class TrajectoryData(BaseModel):
3339
3271
  an equal number of corresponding timestamps.
3340
3272
 
3341
3273
  """
3342
- tcp: Optional[str] = None
3274
+ tcp: str | None = None
3343
3275
  """
3344
3276
  Unique identifier of the tool the trajectory is planned for.
3345
3277
  """
@@ -3359,14 +3291,14 @@ class InitializeMovementRequest(BaseModel):
3359
3291
 
3360
3292
  """
3361
3293
  trajectory: Annotated[
3362
- Union[TrajectoryId, TrajectoryData], Field(discriminator='message_type')
3294
+ TrajectoryId | TrajectoryData, Field(discriminator='message_type')
3363
3295
  ]
3364
3296
  """
3365
3297
  The trajectory which should be executed and locked to the connection.
3366
3298
 
3367
3299
  """
3368
- initial_location: Optional[Location] = None
3369
- response_coordinate_system: Optional[str] = None
3300
+ initial_location: Location | None = None
3301
+ response_coordinate_system: str | None = None
3370
3302
  """
3371
3303
  Unique identifier addressing a coordinate system to which the responses are transformed.
3372
3304
  If not set, world coordinate system is used.
@@ -3454,26 +3386,26 @@ class StartMovementRequest(BaseModel):
3454
3386
  Type specifier for server, set automatically.
3455
3387
 
3456
3388
  """
3457
- direction: Optional[Direction] = 'DIRECTION_FORWARD'
3458
- target_location: Optional[Location] = None
3389
+ direction: Direction | None = 'DIRECTION_FORWARD'
3390
+ target_location: Location | None = None
3459
3391
  """
3460
3392
  The target location to which the motion group moves along the trajectory to.
3461
3393
  If `direction` and `target_location` are both specified, target location takes precedence.
3462
3394
  If neither is specified, the default is `DIRECTION_FORWARD`.
3463
3395
 
3464
3396
  """
3465
- set_outputs: Optional[List[SetIO]] = None
3397
+ set_outputs: list[SetIO] | None = None
3466
3398
  """
3467
3399
  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
3400
  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
3401
 
3470
3402
  """
3471
- start_on_io: Optional[StartOnIO] = None
3403
+ start_on_io: StartOnIO | None = None
3472
3404
  """
3473
3405
  Defines an input/output that is listened to before the movement. Execution starts if the defined comparator evaluates to `true`.
3474
3406
 
3475
3407
  """
3476
- pause_on_io: Optional[PauseOnIO] = None
3408
+ pause_on_io: PauseOnIO | None = None
3477
3409
  """
3478
3410
  Defines an input/output that is listened to during the movement. Execution pauses if the defined comparator evaluates to `true`.
3479
3411
 
@@ -3517,12 +3449,10 @@ class PlaybackSpeedRequest(BaseModel):
3517
3449
 
3518
3450
  class ExecuteTrajectoryRequest(RootModel):
3519
3451
  root: Annotated[
3520
- Union[
3521
- InitializeMovementRequest,
3522
- StartMovementRequest,
3523
- PauseMovementRequest,
3524
- PlaybackSpeedRequest,
3525
- ],
3452
+ InitializeMovementRequest
3453
+ | StartMovementRequest
3454
+ | PauseMovementRequest
3455
+ | PlaybackSpeedRequest,
3526
3456
  Field(discriminator='message_type', title='ExecuteTrajectoryRequest'),
3527
3457
  ]
3528
3458
 
@@ -3533,11 +3463,11 @@ class InitializeMovementResponse(BaseModel):
3533
3463
 
3534
3464
  """
3535
3465
 
3536
- message: Optional[str] = None
3466
+ message: str | None = None
3537
3467
  """
3538
3468
  Error message in case of invalid InitializeMovementRequest.
3539
3469
  """
3540
- add_trajectory_error: Optional[AddTrajectoryError] = None
3470
+ add_trajectory_error: AddTrajectoryError | None = None
3541
3471
  """
3542
3472
  Error can occur if joint trajectory was added by [InitializeMovementRequest](InitializeMovementRequest) and the trajectory is invalid.
3543
3473
 
@@ -3553,7 +3483,7 @@ class StartMovementResponse(BaseModel):
3553
3483
 
3554
3484
  """
3555
3485
 
3556
- message: Optional[str] = None
3486
+ message: str | None = None
3557
3487
  """
3558
3488
  Error message in case of invalid StartMovementResquest.
3559
3489
  """
@@ -3568,7 +3498,7 @@ class PauseMovementResponse(BaseModel):
3568
3498
 
3569
3499
  """
3570
3500
 
3571
- message: Optional[str] = None
3501
+ message: str | None = None
3572
3502
  """
3573
3503
  Error message in case of invalid PauseMovementResquest.
3574
3504
  """
@@ -3581,7 +3511,7 @@ class PlaybackSpeedResponse(BaseModel):
3581
3511
 
3582
3512
  """
3583
3513
 
3584
- message: Optional[str] = None
3514
+ message: str | None = None
3585
3515
  """
3586
3516
  Error message in case of invalid PlaybackSpeedRequest.
3587
3517
  """
@@ -3603,13 +3533,11 @@ class MovementErrorResponse(BaseModel):
3603
3533
 
3604
3534
  class ExecuteTrajectoryResponse(RootModel):
3605
3535
  root: Annotated[
3606
- Union[
3607
- InitializeMovementResponse,
3608
- StartMovementResponse,
3609
- PauseMovementResponse,
3610
- PlaybackSpeedResponse,
3611
- MovementErrorResponse,
3612
- ],
3536
+ InitializeMovementResponse
3537
+ | StartMovementResponse
3538
+ | PauseMovementResponse
3539
+ | PlaybackSpeedResponse
3540
+ | MovementErrorResponse,
3613
3541
  Field(discriminator='kind', title='ExecuteTrajectoryResponse'),
3614
3542
  ]
3615
3543
 
@@ -3628,12 +3556,12 @@ class InitializeJoggingRequest(BaseModel):
3628
3556
  """
3629
3557
  Identifier of the motion group.
3630
3558
  """
3631
- tcp: Optional[str] = None
3559
+ tcp: str | None = None
3632
3560
  """
3633
3561
  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
3562
 
3635
3563
  """
3636
- response_coordinate_system: Optional[str] = None
3564
+ response_coordinate_system: str | None = None
3637
3565
  """
3638
3566
  Unique identifier addressing a coordinate system to which the responses are transformed.
3639
3567
  If not set, world coordinate system is used.
@@ -3671,7 +3599,7 @@ class TcpVelocityRequest(BaseModel):
3671
3599
  """
3672
3600
  translation: Vector3d
3673
3601
  rotation: Vector3d
3674
- use_tool_coordinate_system: Optional[bool] = False
3602
+ use_tool_coordinate_system: bool | None = False
3675
3603
  """
3676
3604
  If true, TCP velocities are interpreted in the tool coordinate system, specified by the TCP.
3677
3605
  If false, TCP velocities are interpreted in the world coordinate system.
@@ -3694,12 +3622,10 @@ class PauseJoggingRequest(BaseModel):
3694
3622
 
3695
3623
  class ExecuteJoggingRequest(RootModel):
3696
3624
  root: Annotated[
3697
- Union[
3698
- InitializeJoggingRequest,
3699
- JointVelocityRequest,
3700
- TcpVelocityRequest,
3701
- PauseJoggingRequest,
3702
- ],
3625
+ InitializeJoggingRequest
3626
+ | JointVelocityRequest
3627
+ | TcpVelocityRequest
3628
+ | PauseJoggingRequest,
3703
3629
  Field(discriminator='message_type', title='ExecuteJoggingRequest'),
3704
3630
  ]
3705
3631
 
@@ -3710,7 +3636,7 @@ class InitializeJoggingResponse(BaseModel):
3710
3636
 
3711
3637
  """
3712
3638
 
3713
- message: Optional[str] = None
3639
+ message: str | None = None
3714
3640
  """
3715
3641
  Error message in case of invalid InitializeJoggingRequest.
3716
3642
  """
@@ -3723,7 +3649,7 @@ class PauseJoggingResponse(BaseModel):
3723
3649
 
3724
3650
  """
3725
3651
 
3726
- message: Optional[str] = None
3652
+ message: str | None = None
3727
3653
  """
3728
3654
  Error message in case of invalid PauseJoggingRequest.
3729
3655
  """
@@ -3736,7 +3662,7 @@ class TcpVelocityResponse(BaseModel):
3736
3662
 
3737
3663
  """
3738
3664
 
3739
- message: Optional[str] = None
3665
+ message: str | None = None
3740
3666
  """
3741
3667
  Error message in case of invalid TcpVelocityRequest.
3742
3668
  """
@@ -3749,7 +3675,7 @@ class JointVelocityResponse(BaseModel):
3749
3675
 
3750
3676
  """
3751
3677
 
3752
- message: Optional[str] = None
3678
+ message: str | None = None
3753
3679
  """
3754
3680
  Error message in case of invalid JointVelocityRequest.
3755
3681
  """
@@ -3758,13 +3684,11 @@ class JointVelocityResponse(BaseModel):
3758
3684
 
3759
3685
  class ExecuteJoggingResponse(RootModel):
3760
3686
  root: Annotated[
3761
- Union[
3762
- InitializeJoggingResponse,
3763
- PauseJoggingResponse,
3764
- TcpVelocityResponse,
3765
- JointVelocityResponse,
3766
- MovementErrorResponse,
3767
- ],
3687
+ InitializeJoggingResponse
3688
+ | PauseJoggingResponse
3689
+ | TcpVelocityResponse
3690
+ | JointVelocityResponse
3691
+ | MovementErrorResponse,
3768
3692
  Field(discriminator='kind', title='ExecuteJoggingResponse'),
3769
3693
  ]
3770
3694
 
@@ -3784,14 +3708,14 @@ class Program(BaseModel):
3784
3708
  title='Unique program identifier',
3785
3709
  ),
3786
3710
  ]
3787
- name: Annotated[Optional[str], Field(title='Program name')] = None
3788
- description: Annotated[Optional[str], Field(title='Program description')] = None
3711
+ name: Annotated[str | None, Field(title='Program name')] = None
3712
+ description: Annotated[str | None, Field(title='Program description')] = None
3789
3713
  app: Annotated[str, Field(title='The app containing the program.')]
3790
3714
  input_schema: Annotated[
3791
- Optional[Dict[str, Any]], Field(title='Program input json schema')
3715
+ dict[str, Any] | None, Field(title='Program input json schema')
3792
3716
  ] = None
3793
3717
  preconditions: Annotated[
3794
- Optional[Dict[str, Any]],
3718
+ dict[str, Any] | None,
3795
3719
  Field(title='Preconditions before the program can be started'),
3796
3720
  ] = None
3797
3721
 
@@ -3801,7 +3725,7 @@ class ProgramStartRequest(BaseModel):
3801
3725
  The state of a program run.
3802
3726
  """
3803
3727
 
3804
- arguments: Dict[str, Any]
3728
+ arguments: dict[str, Any]
3805
3729
  """
3806
3730
  The arguments to pass to the program.
3807
3731
  """
@@ -3832,7 +3756,7 @@ class ProgramRun(BaseModel):
3832
3756
  """
3833
3757
  Unique identifier of the program
3834
3758
  """
3835
- app: Annotated[Optional[str], Field(title='App Id')] = None
3759
+ app: Annotated[str | None, Field(title='App Id')] = None
3836
3760
  """
3837
3761
  Identifier of the app that produced the program run
3838
3762
  """
@@ -3840,35 +3764,35 @@ class ProgramRun(BaseModel):
3840
3764
  """
3841
3765
  State of the program run
3842
3766
  """
3843
- logs: Annotated[Optional[str], Field(title='Logs')] = None
3767
+ logs: Annotated[str | None, Field(title='Logs')] = None
3844
3768
  """
3845
3769
  Logs of the program run
3846
3770
  """
3847
- stdout: Annotated[Optional[str], Field(title='Stdout')] = None
3771
+ stdout: Annotated[str | None, Field(title='Stdout')] = None
3848
3772
  """
3849
3773
  Stdout of the program run
3850
3774
  """
3851
- stderr: Annotated[Optional[str], Field(title='Stderr')] = None
3775
+ stderr: Annotated[str | None, Field(title='Stderr')] = None
3852
3776
  """
3853
3777
  Stderr of the program run
3854
3778
  """
3855
- error: Annotated[Optional[str], Field(title='Error')] = None
3779
+ error: Annotated[str | None, Field(title='Error')] = None
3856
3780
  """
3857
3781
  Error message of the program run, if any
3858
3782
  """
3859
- traceback: Annotated[Optional[str], Field(title='Traceback')] = None
3783
+ traceback: Annotated[str | None, Field(title='Traceback')] = None
3860
3784
  """
3861
3785
  Traceback of the program run, if any
3862
3786
  """
3863
- start_time: Annotated[Optional[AwareDatetime], Field(title='Start Time')] = None
3787
+ start_time: Annotated[AwareDatetime | None, Field(title='Start Time')] = None
3864
3788
  """
3865
3789
  Start time of the program run in RFC3339 format
3866
3790
  """
3867
- end_time: Annotated[Optional[AwareDatetime], Field(title='End Time')] = None
3791
+ end_time: Annotated[AwareDatetime | None, Field(title='End Time')] = None
3868
3792
  """
3869
3793
  End time of the program run in RFC3339 format
3870
3794
  """
3871
- input_data: Annotated[Optional[Dict[str, Any]], Field(title='Input Data')] = None
3795
+ input_data: Annotated[dict[str, Any] | None, Field(title='Input Data')] = None
3872
3796
  """
3873
3797
  Input data of the program run
3874
3798
  """
@@ -3879,13 +3803,13 @@ class ValidationError2(BaseModel):
3879
3803
  A validation error of a program.
3880
3804
  """
3881
3805
 
3882
- loc: Annotated[List[int], Field(title='Location')]
3806
+ loc: Annotated[list[int], Field(title='Location')]
3883
3807
  msg: Annotated[str, Field(title='Message')]
3884
3808
  type: Annotated[str, Field(title='Error Type')]
3885
3809
 
3886
3810
 
3887
3811
  class HTTPValidationError(BaseModel):
3888
- detail: Annotated[Optional[List[ValidationError2]], Field(title='Detail')] = None
3812
+ detail: Annotated[list[ValidationError2] | None, Field(title='Detail')] = None
3889
3813
 
3890
3814
 
3891
3815
  class MotionGroupInfo(BaseModel):
@@ -3907,7 +3831,7 @@ class MotionGroupInfo(BaseModel):
3907
3831
 
3908
3832
 
3909
3833
  class MotionGroupInfos(RootModel):
3910
- root: List[MotionGroupInfo]
3834
+ root: list[MotionGroupInfo]
3911
3835
 
3912
3836
  def __getitem__(self, index: int) -> MotionGroupInfo:
3913
3837
  """
@@ -3940,22 +3864,22 @@ class MotionGroupJoints(BaseModel):
3940
3864
  Everything but positions is optional.
3941
3865
  """
3942
3866
 
3943
- positions: List[float]
3867
+ positions: list[float]
3944
3868
  """
3945
3869
  The joint positions of the motion group.
3946
3870
 
3947
3871
  """
3948
- velocities: Optional[List[float]] = None
3872
+ velocities: list[float] | None = None
3949
3873
  """
3950
3874
  The joint velocities of the motion group.
3951
3875
 
3952
3876
  """
3953
- accelerations: Optional[List[float]] = None
3877
+ accelerations: list[float] | None = None
3954
3878
  """
3955
3879
  The joint accelerations of the motion group.
3956
3880
 
3957
3881
  """
3958
- torques: Optional[List[float]] = None
3882
+ torques: list[float] | None = None
3959
3883
  """
3960
3884
  The joint torques of the motion group.
3961
3885
 
@@ -3963,13 +3887,13 @@ class MotionGroupJoints(BaseModel):
3963
3887
 
3964
3888
 
3965
3889
  class RobotTcpData(BaseModel):
3966
- name: Optional[str] = None
3890
+ name: str | None = None
3967
3891
  """
3968
3892
  A readable and changeable name for frontend visualization.
3969
3893
  """
3970
3894
  position: Vector3d
3971
- orientation: Optional[Orientation] = None
3972
- orientation_type: Optional[OrientationType] = 'ROTATION_VECTOR'
3895
+ orientation: Orientation | None = None
3896
+ orientation_type: OrientationType | None = 'ROTATION_VECTOR'
3973
3897
 
3974
3898
 
3975
3899
  class RobotTcp(RobotTcpData):
@@ -3981,7 +3905,7 @@ class RobotTcp(RobotTcpData):
3981
3905
 
3982
3906
  class RobotTcps(RootModel):
3983
3907
  root: Annotated[
3984
- List[RobotTcp],
3908
+ list[RobotTcp],
3985
3909
  Field(
3986
3910
  examples=[
3987
3911
  [
@@ -4087,7 +4011,7 @@ class ExternalJointStreamDatapoint(BaseModel):
4087
4011
 
4088
4012
 
4089
4013
  class ExternalJointStreamDatapoints(RootModel):
4090
- root: List[ExternalJointStreamDatapoint]
4014
+ root: list[ExternalJointStreamDatapoint]
4091
4015
 
4092
4016
  def __getitem__(self, index: int) -> ExternalJointStreamDatapoint:
4093
4017
  """
@@ -4133,7 +4057,7 @@ class MetadataObject(RootModel):
4133
4057
  A metadata object.
4134
4058
  """
4135
4059
 
4136
- root: Dict[str, str]
4060
+ root: dict[str, str]
4137
4061
 
4138
4062
 
4139
4063
  class BinaryObject(RootModel):
@@ -4156,13 +4080,13 @@ class BusIODescription(BaseModel):
4156
4080
  """
4157
4081
  direction: IODirection
4158
4082
  value_type: IOValueType
4159
- unit: Optional[UnitType] = None
4160
- min: Optional[IOBoundary] = None
4161
- max: Optional[IOBoundary] = None
4083
+ unit: UnitType | None = None
4084
+ min: IOBoundary | None = None
4085
+ max: IOBoundary | None = None
4162
4086
 
4163
4087
 
4164
4088
  class ListBusIODescriptionsResponse(RootModel):
4165
- root: List[BusIODescription]
4089
+ root: list[BusIODescription]
4166
4090
 
4167
4091
  def __getitem__(self, index: int) -> BusIODescription:
4168
4092
  """
@@ -4203,7 +4127,7 @@ class BusIOsStateEnum(Enum):
4203
4127
 
4204
4128
  class BusIOsState(BaseModel):
4205
4129
  state: BusIOsStateEnum
4206
- message: Optional[str] = None
4130
+ message: str | None = None
4207
4131
  """
4208
4132
  A message providing additional information on the input/output service, e.g., BUS service status, encountered errors.
4209
4133
  May be empty if no additional information is available.
@@ -4251,7 +4175,7 @@ class ProfinetSlotDescription(BaseModel):
4251
4175
  The API identifies the application relation (AR) that is using the slot.
4252
4176
 
4253
4177
  """
4254
- subslots: List[ProfinetSubSlotDescription]
4178
+ subslots: list[ProfinetSubSlotDescription]
4255
4179
  """
4256
4180
  An array of PROFINET subslots.
4257
4181
 
@@ -4269,14 +4193,14 @@ class ProfinetDescription(BaseModel):
4269
4193
  The device identifier of the PROFINET device, identifying the specific device within the vendor's range.
4270
4194
 
4271
4195
  """
4272
- slots: Optional[List[ProfinetSlotDescription]] = None
4273
- device_name: Annotated[Optional[str], Field(examples=['pnDevice'])] = None
4196
+ slots: list[ProfinetSlotDescription] | None = None
4197
+ device_name: Annotated[str | None, Field(examples=['pnDevice'])] = None
4274
4198
  """
4275
4199
  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
4200
  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
4201
 
4278
4202
  """
4279
- ip_config: Optional[BusIOProfinetIpConfig] = None
4203
+ ip_config: BusIOProfinetIpConfig | None = None
4280
4204
 
4281
4205
 
4282
4206
  class ProfinetIOTypeEnum(Enum):
@@ -4325,7 +4249,7 @@ class ProfinetIOData(BaseModel):
4325
4249
  The byte address is used to locate the specific input/output variable within the device's memory or data structure.
4326
4250
 
4327
4251
  """
4328
- bit_address: Annotated[Optional[int], Field(ge=0, le=7)] = None
4252
+ bit_address: Annotated[int | None, Field(ge=0, le=7)] = None
4329
4253
  """
4330
4254
  The bit address of the input/output variable within the byte or word address.
4331
4255
  The bit address is used to specify the exact bit within the byte or word that corresponds to the input/output variable.
@@ -4347,7 +4271,7 @@ class ProfinetIOs(RootModel):
4347
4271
  Array of PROFINET input/output variable configurations.
4348
4272
  """
4349
4273
 
4350
- root: List[ProfinetIO]
4274
+ root: list[ProfinetIO]
4351
4275
  """
4352
4276
  Array of PROFINET input/output variable configurations.
4353
4277
  """
@@ -4478,7 +4402,7 @@ class ModbusIOs(RootModel):
4478
4402
  Array of MODBUS input/output variable configurations.
4479
4403
  """
4480
4404
 
4481
- root: List[ModbusIO]
4405
+ root: list[ModbusIO]
4482
4406
  """
4483
4407
  Array of MODBUS input/output variable configurations.
4484
4408
  """
@@ -4525,7 +4449,7 @@ class ConfigurationResource(BaseModel):
4525
4449
  """
4526
4450
  Human-readable name of the configuration resource.
4527
4451
  """
4528
- children: Optional[ConfigurationResourceArray] = None
4452
+ children: ConfigurationResourceArray | None = None
4529
4453
 
4530
4454
 
4531
4455
  class ConfigurationResourceArray(RootModel):
@@ -4533,7 +4457,7 @@ class ConfigurationResourceArray(RootModel):
4533
4457
  Array of configuration resources.
4534
4458
  """
4535
4459
 
4536
- root: List[ConfigurationResource]
4460
+ root: list[ConfigurationResource]
4537
4461
  """
4538
4462
  Array of configuration resources.
4539
4463
  """