{
    "openapi": "3.1.0",
    "info": {
        "title": "Wandelbots NOVA - Isaac Sim Extension API",
        "description": "This extension enables seamless connection between NVIDIA Isaac Sim\u2122 and Wandelbots NOVA. Wandelbots NOVA simplifies the programming of industrial robots and cobots from multiple brands, allowing users to easily configure various robot models and teach them through an intuitive interface or by leveraging their preferred programming languages via APIs. Start programming your favorite robot brands like ABB, FANUC, KUKA, Universal Robots and Yaskawa in an Omniverse simulation scene, benefitting from its realistic behaviour.\n\nThe API provides comprehensive capabilities including:\n- **Stage Management**: Load, save, and manipulate USD stages\n- **Prims & Scene Graph**: Create and modify scene primitives and hierarchies\n- **Cameras**: Configure virtual cameras and viewports for visualization\n- **Motion Groups**: Define and control robot motion groups and kinematics\n- **Teaching & Trajectory**: Record, playback, and execute robot trajectories\n- **Collision Detection**: Manage collision worlds and colliders for safe path planning\n- **Nucleus Integration**: Access Omniverse Nucleus storage and collaboration features\n- **UI Control**: Interact with the Isaac Sim user interface programmatically",
        "version": "2.48.0"
    },
    "paths": {
        "/stage/scene": {
            "get": {
                "tags": [
                    "Stage"
                ],
                "summary": "Get Active Scene",
                "description": "Fetches the current active scene in the scene",
                "operationId": "get_active_scene",
                "responses": {
                    "200": {
                        "description": "Successfully retrieved the active scene",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string",
                                    "title": "Response Get Active Scene"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Unable to fetch active scene"
                    }
                }
            },
            "put": {
                "tags": [
                    "Stage"
                ],
                "summary": "Open Scene",
                "description": "Opens the scene given path or uri of the scene",
                "operationId": "open_scene",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UsdStageModel",
                                "description": "the uri of the scene"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "204": {
                        "description": "Successfully loaded the scene"
                    },
                    "500": {
                        "description": "Unable to load scene from the USD file"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/stage/motion-groups": {
            "get": {
                "tags": [
                    "Stage"
                ],
                "summary": "List Stage Motion Groups",
                "description": "Fetches all the robot prim paths in the scene\n\nReturns:\n    list of robot prim paths",
                "operationId": "list_stage_motion_groups",
                "responses": {
                    "200": {
                        "description": "Successful Response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/StageMotionGroupsResponse"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/stage/units": {
            "get": {
                "tags": [
                    "Stage"
                ],
                "summary": "Get Stage Units",
                "description": "Retrieves the current unit scale of the scene.",
                "operationId": "get_stage_units",
                "responses": {
                    "200": {
                        "description": "Successfully retrieved the scene units",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/StageUnits"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Stage units are not supported"
                    },
                    "500": {
                        "description": "Internal server error"
                    }
                }
            },
            "put": {
                "tags": [
                    "Stage"
                ],
                "summary": "Update Stage Units",
                "description": "Sets units for the scene",
                "operationId": "update_stage_units",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StageUnits"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "204": {
                        "description": "Successfully set the scene units"
                    },
                    "500": {
                        "description": "Unable to set scene units"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/stage/simulation/timeline/{action}": {
            "patch": {
                "tags": [
                    "Stage"
                ],
                "summary": "Timeline Action",
                "description": "Controls the simulation in the scene\n\n- `play`: starts the simulation\n- `pause`: pauses the simulation\n- `stop`: stops the simulation",
                "operationId": "timeline_action",
                "parameters": [
                    {
                        "name": "action",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "enum": [
                                "play",
                                "pause",
                                "stop"
                            ],
                            "type": "string",
                            "title": "Action"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Successfully set the simulation state"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/stage/simulation": {
            "get": {
                "tags": [
                    "Stage"
                ],
                "summary": "Simulation State",
                "description": "Fetches if the simulation is running or stopped as a boolean",
                "operationId": "simulation_state",
                "responses": {
                    "200": {
                        "description": "Successfully retrieved simulation status",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SimulationState"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/stage/configuration": {
            "get": {
                "tags": [
                    "Stage"
                ],
                "summary": "Export Configuration",
                "description": "Exports the configured scene setup as a `.yaml` file",
                "operationId": "export_configuration",
                "responses": {
                    "200": {
                        "description": "Configuration exported successfully",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    },
                    "500": {
                        "description": "Could not export configuration"
                    }
                }
            },
            "post": {
                "tags": [
                    "Stage"
                ],
                "summary": "Import Configuration",
                "description": "Configures the scene using the uploaded configuration. It can have the following keys:\n\n- `scene`: uri of the scene which has to be loaded\n- `robots`: the robots which you want to configure\n- `streams`: the streams which you want to configure",
                "operationId": "import_configuration",
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/Body_import_configuration"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "204": {
                        "description": "Configuration loaded successfully"
                    },
                    "400": {
                        "description": "Invalid yaml file format or invalid configuration values for omniservice configuration"
                    },
                    "500": {
                        "description": "Internal server error: Configuration could not be applied"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/prims/poses": {
            "get": {
                "tags": [
                    "Prims"
                ],
                "summary": "Get Pose",
                "description": "Returns the current pose of a prim in WandelScript (WS) 6D format \u2014 a 3D position and 3D rotation vector.\nRotations are in radians, position in millimeters.\nThe pose can be returned in either local or world coordinate system.",
                "operationId": "get_pose",
                "parameters": [
                    {
                        "name": "coordinate_system",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "enum": [
                                "world",
                                "local"
                            ],
                            "type": "string",
                            "description": "pose in either world coordinates or local coordinates",
                            "default": "local",
                            "title": "Coordinate System"
                        },
                        "description": "pose in either world coordinates or local coordinates"
                    },
                    {
                        "name": "rotation_type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "enum": [
                                "cartesian",
                                "quaternions"
                            ],
                            "type": "string",
                            "description": "pose in either quaternions or cartesian vectors",
                            "default": "cartesian",
                            "title": "Rotation Type"
                        },
                        "description": "pose in either quaternions or cartesian vectors"
                    },
                    {
                        "name": "prim_path",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "Prim path of the object",
                            "title": "Prim Path"
                        },
                        "description": "Prim path of the object"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully retrieved the pose",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "$ref": "#/components/schemas/WSPose"
                                        },
                                        {
                                            "$ref": "#/components/schemas/QuatPose"
                                        }
                                    ],
                                    "title": "Response Get Pose"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Invalid prim path"
                    },
                    "500": {
                        "description": "Internal server error: Unable to fetch pose"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Prims"
                ],
                "summary": "Update Pose",
                "description": "Sets the pose of the given prim using WandelScript (WS) format \u2014 a 6D vector (3D position, 3D rotation).\nRotations are in radians. Position is in millimeters.",
                "operationId": "update_pose",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Body_update_pose"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Successfully set the pose"
                    },
                    "404": {
                        "description": "Invalid prim path"
                    },
                    "500": {
                        "description": "Internal server error: Unable to set pose for the prim"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/prims/poses/relative": {
            "get": {
                "tags": [
                    "Prims"
                ],
                "summary": "Get Relative Pose",
                "description": "Calculates the relative pose between two objects specified by their prim paths.\n\nSupports four modes of operation:\n\n|Mode|Description|\n|--|--|\n|`normal`| Computes prim1::prim2|\n|`inverse_first`| Computes ~prim1::prim2|\n|`inverse_second`| Computes prim1::~prim2|\n|`inverse_both`| Computes ~prim1::~prim2|\n\nThe resulting pose is returned in WandelScript (WS) 6D format.\nRotations are in radians, position in millimeters.\nThe coordinate system used depends on the rotation_type parameter: either 'cartesian' or 'quaternion'.",
                "operationId": "get_relative_pose",
                "parameters": [
                    {
                        "name": "mode",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "$ref": "#/components/schemas/RelativePoseMode",
                            "description": "The mode of operation",
                            "default": "normal"
                        },
                        "description": "The mode of operation"
                    },
                    {
                        "name": "rotation_type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "enum": [
                                "cartesian",
                                "quaternions"
                            ],
                            "type": "string",
                            "default": "cartesian",
                            "title": "Rotation Type"
                        }
                    },
                    {
                        "name": "prim_path_1",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "Prim path of the object",
                            "title": "Prim Path 1"
                        },
                        "description": "Prim path of the object"
                    },
                    {
                        "name": "prim_path_2",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "Prim path of the object",
                            "title": "Prim Path 2"
                        },
                        "description": "Prim path of the object"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully retrieved the relative pose",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "$ref": "#/components/schemas/WSPose"
                                        },
                                        {
                                            "$ref": "#/components/schemas/QuatPose"
                                        }
                                    ],
                                    "title": "Response Get Relative Pose"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "One or both prims not found in the scene"
                    },
                    "500": {
                        "description": "Internal server error: Unable to fetch relative pose"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Prims"
                ],
                "summary": "Apply Relative Pose",
                "description": "Applies a relative pose to a prim using WandelScript (WS) Cartesian format. This modifies the prim's pose by composing it with the input relative transform.\nIf `object_first` is True, the prim's pose is applied before the relative transform, otherwise, the relative transform is applied first.",
                "operationId": "apply_relative_pose",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Body_apply_relative_pose"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Relative pose set successfully"
                    },
                    "404": {
                        "description": "Invalid prim path"
                    },
                    "500": {
                        "description": "Unable to set relative pose for the prim"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/prims/labels": {
            "put": {
                "tags": [
                    "Prims"
                ],
                "summary": "Set Semantic Label",
                "description": "Sets a semantic label for an object to capture synthetic data. Can also assign multiple labels for a prim.",
                "operationId": "set_semantic_label",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Body_set_semantic_label"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Semantic label set successfully"
                    },
                    "404": {
                        "description": "Invalid prim path"
                    },
                    "422": {
                        "description": "Invalid label"
                    }
                }
            },
            "get": {
                "tags": [
                    "Prims"
                ],
                "summary": "List Semantic Labels",
                "description": "Fetches the semantic labels set for the object in the scene. Can also be multiple labels",
                "operationId": "list_semantic_labels",
                "parameters": [
                    {
                        "name": "prim_path",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "title": "Prim Path"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully retrieved semantic labels",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PrimsLabelsResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Invalid prim path"
                    },
                    "422": {
                        "description": "Invalid label"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Prims"
                ],
                "summary": "Clear Semantic Labels",
                "description": "Deletes semantic labels from the specified list of prim paths.",
                "operationId": "clear_semantic_labels",
                "parameters": [
                    {
                        "name": "prim_path",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "anyOf": [
                                {
                                    "type": "string"
                                },
                                {
                                    "type": "null"
                                }
                            ],
                            "title": "Prim Path"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Semantic labels removed successfully for the specified prim"
                    },
                    "404": {
                        "description": "Invalid prim path"
                    },
                    "500": {
                        "description": "Unable to remove semantic labels for the given prim"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/prims/poses/default": {
            "get": {
                "tags": [
                    "Prims"
                ],
                "summary": "List Default Poses",
                "description": "Returns a dictionary of prim paths to their saved default poses.",
                "operationId": "list_default_poses",
                "responses": {
                    "200": {
                        "description": "Successfully retrieved default poses",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "additionalProperties": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/WSPose"
                                            },
                                            {
                                                "$ref": "#/components/schemas/QuatPose"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    },
                                    "type": "object",
                                    "title": "Response List Default Poses"
                                }
                            }
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Prims"
                ],
                "summary": "Assign Default Poses",
                "description": "Sets default poses to the given prim and all its children prims. For this, the poses at runtime are overwritten\nas default. Can be used for resetting objects even when physics simulation is playing",
                "operationId": "assign_default_poses",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "string",
                                "title": "Prim Path",
                                "description": "Prim path of the object"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "204": {
                        "description": "Default poses set successfully"
                    },
                    "404": {
                        "description": "Invalid prim path"
                    },
                    "500": {
                        "description": "Failed to set default poses"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Prims"
                ],
                "summary": "Clear Default Poses",
                "description": "Deletes all the set default poses in the scene",
                "operationId": "clear_default_poses",
                "responses": {
                    "204": {
                        "description": "Default poses deleted successfully"
                    }
                }
            }
        },
        "/prims/poses/default/reset": {
            "post": {
                "tags": [
                    "Prims"
                ],
                "summary": "Reset Prim Poses To Default",
                "description": "Resets the prims to the default poses set given a prim path. Can be used for resetting objects even when physics simulation is playing.",
                "operationId": "reset_to_default_poses",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "string",
                                "title": "Prim Path",
                                "description": "Prim path of the object"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "204": {
                        "description": "Prims reset to default poses successfully"
                    },
                    "404": {
                        "description": "Invalid prim path"
                    },
                    "500": {
                        "description": "Failed to reset poses"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/prims/metadata": {
            "put": {
                "tags": [
                    "Prims"
                ],
                "summary": "Set Prim Metadata",
                "description": "This endpoint adds custom metadata to the given `prim_path`.\nThat means you can define a `type` and `category` for any `prim_path` from your scene.\n\nIn our current API, for tool (category), three types are supported: `GenericGripper`,\n`SurfaceGripper` and `Conveyor'. Nevertheless, you can add any string value to `category` and `type` you\nwish for.",
                "operationId": "set_prim_metadata",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Body_set_prim_metadata"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Metadata set successfully"
                    },
                    "404": {
                        "description": "Invalid prim path"
                    },
                    "500": {
                        "description": "Failed to set custom metadata on the prim"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Prims"
                ],
                "summary": "Remove Prim Metadata",
                "description": "Removes the added metadata to the prim",
                "operationId": "remove_prim_metadata",
                "parameters": [
                    {
                        "name": "prim_path",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "Prim path of the object",
                            "title": "Prim Path"
                        },
                        "description": "Prim path of the object"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Metadata removed successfully"
                    },
                    "404": {
                        "description": "Invalid prim path"
                    },
                    "500": {
                        "description": "Failed to remove custom metadata from the prim"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/prims/visibility": {
            "patch": {
                "tags": [
                    "Prims"
                ],
                "summary": "Set Prim Visibility",
                "description": "Makes the prim visible or hidden in the viewport given its prim path",
                "operationId": "set_prim_visibility",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Body_set_prim_visibility"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "204": {
                        "description": "Prim visibility updated successfully"
                    },
                    "404": {
                        "description": "Invalid prim path"
                    },
                    "500": {
                        "description": "Failed to update visibility of prim"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/prims/selected": {
            "get": {
                "tags": [
                    "Prims"
                ],
                "summary": "List Selected Prims",
                "description": "Returns all prims selected in the tree",
                "operationId": "list_selected_prims",
                "responses": {
                    "200": {
                        "description": "Prim selection",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PrimSelection"
                                }
                            }
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Prims"
                ],
                "summary": "Select Prims",
                "description": "Selects the prims in the UI by their prim path.",
                "operationId": "select_prims",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PrimSelection"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "204": {
                        "description": "Prim selected successfully"
                    },
                    "404": {
                        "description": "Invalid prim path"
                    },
                    "500": {
                        "description": "Could not select prim"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/prims/physics/joints": {
            "patch": {
                "tags": [
                    "Prims"
                ],
                "summary": "Set Joints",
                "description": "Enables or disables the joints for a prim.",
                "operationId": "set_joint_state",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Body_set_joint_state"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "204": {
                        "description": "Joint state updated successfully"
                    },
                    "404": {
                        "description": "Invalid prim path"
                    },
                    "500": {
                        "description": "Could not update joint state"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/periphery/cameras/prims": {
            "get": {
                "tags": [
                    "Periphery (Camera)"
                ],
                "summary": "List Camera Prims",
                "description": "Returns all camera prim paths defined in the current scene stage.",
                "operationId": "list_camera_prims",
                "responses": {
                    "200": {
                        "description": "List of camera prim paths in the scene",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CamerasPrimsResponse"
                                },
                                "example": [
                                    "/World/Camera1",
                                    "/World/Robot/Camera2"
                                ]
                            }
                        }
                    },
                    "500": {
                        "description": "Failed to retrieve camera prim paths from the stage"
                    }
                }
            }
        },
        "/periphery/cameras/active": {
            "get": {
                "tags": [
                    "Periphery (Camera)"
                ],
                "summary": "Get Active Camera",
                "description": "Returns the active camera prim path from the active viewport.",
                "operationId": "get_active_camera",
                "responses": {
                    "200": {
                        "description": "Active camera prim path",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string",
                                    "title": "Response Get Active Camera"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Could not fetch active camera viewport"
                    }
                }
            },
            "put": {
                "tags": [
                    "Periphery (Camera)"
                ],
                "summary": "Set Active Camera",
                "description": "Sets the given camera prim path as the active viewport camera.",
                "operationId": "set_active_camera",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "string",
                                "title": "Camera Path",
                                "description": "Prim path of the camera to be set as active"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "204": {
                        "description": "Successfully set active camera"
                    },
                    "404": {
                        "description": "Camera prim not found or invalid"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/periphery/cameras/capture/color": {
            "get": {
                "tags": [
                    "Periphery (Camera)"
                ],
                "summary": "Capture Color Image",
                "description": "Retrieves the raw RGB color image from the camera's point of view.\n\n- Returns a PNG image captured from the current camera.",
                "operationId": "capture_color_image",
                "parameters": [
                    {
                        "name": "camera_prim_path",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "Path of camera prim",
                            "title": "Camera Prim Path"
                        },
                        "description": "Path of camera prim"
                    },
                    {
                        "name": "width",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "description": "Image width in px",
                            "default": 640,
                            "title": "Width"
                        },
                        "description": "Image width in px"
                    },
                    {
                        "name": "height",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "description": "Image height in px",
                            "default": 480,
                            "title": "Height"
                        },
                        "description": "Image height in px"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully fetched color image from camera",
                        "content": {
                            "image/png": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Camera not configured"
                    },
                    "500": {
                        "description": "Could not fetch color image"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/periphery/cameras/capture/normals": {
            "get": {
                "tags": [
                    "Periphery (Camera)"
                ],
                "summary": "Capture Normals Image",
                "description": "Retrieves surface normal data from the camera's captured image.",
                "operationId": "capture_normals_image",
                "parameters": [
                    {
                        "name": "result_type",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "enum": [
                                "json",
                                "rgb_png"
                            ],
                            "type": "string",
                            "description": "Format which will be used to represent the captured data",
                            "title": "Result Type"
                        },
                        "description": "Format which will be used to represent the captured data"
                    },
                    {
                        "name": "camera_prim_path",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "Path of camera prim",
                            "title": "Camera Prim Path"
                        },
                        "description": "Path of camera prim"
                    },
                    {
                        "name": "width",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "description": "Image width in px",
                            "default": 640,
                            "title": "Width"
                        },
                        "description": "Image width in px"
                    },
                    {
                        "name": "height",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "description": "Image height in px",
                            "default": 480,
                            "title": "Height"
                        },
                        "description": "Image height in px"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully fetched normals data",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "array",
                                        "items": {
                                            "type": "array",
                                            "items": {
                                                "type": "number"
                                            }
                                        }
                                    },
                                    "title": "Response Capture Normals Image"
                                }
                            },
                            "image/png": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Camera not configured"
                    },
                    "500": {
                        "description": "Could not fetch normals"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/periphery/cameras/capture/depth": {
            "get": {
                "tags": [
                    "Periphery (Camera)"
                ],
                "summary": "Capture Depth Image",
                "description": "Retrieves depth (distance) data from the captured image.",
                "operationId": "capture_depth_image",
                "parameters": [
                    {
                        "name": "result_type",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "enum": [
                                "json",
                                "rgb_png"
                            ],
                            "type": "string",
                            "description": "Format which will be used to represent the captured data",
                            "title": "Result Type"
                        },
                        "description": "Format which will be used to represent the captured data"
                    },
                    {
                        "name": "near",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number",
                            "description": "Near clipping plane value.",
                            "default": 1e-05,
                            "title": "Near"
                        },
                        "description": "Near clipping plane value."
                    },
                    {
                        "name": "far",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number",
                            "description": "Far clipping plane value.",
                            "default": 100.0,
                            "title": "Far"
                        },
                        "description": "Far clipping plane value."
                    },
                    {
                        "name": "camera_prim_path",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "Path of camera prim",
                            "title": "Camera Prim Path"
                        },
                        "description": "Path of camera prim"
                    },
                    {
                        "name": "width",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "description": "Image width in px",
                            "default": 640,
                            "title": "Width"
                        },
                        "description": "Image width in px"
                    },
                    {
                        "name": "height",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "description": "Image height in px",
                            "default": 480,
                            "title": "Height"
                        },
                        "description": "Image height in px"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully fetched depth data",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "array",
                                        "items": {
                                            "type": "number"
                                        }
                                    },
                                    "title": "Response Capture Depth Image"
                                }
                            },
                            "image/png": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Camera not configured"
                    },
                    "500": {
                        "description": "Could not fetch depth data"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/periphery/cameras/capture/pointcloud": {
            "get": {
                "tags": [
                    "Periphery (Camera)"
                ],
                "summary": "Capture Pointcloud",
                "description": "Retrieves a point cloud from the camera's captured image.\n\n- Resulting data format depends on stage units (e.g., mm, cm, m).\n- `downscale_factor` determines compression level: 1.0 = full data, <1.0 = compressed.",
                "operationId": "capture_pointcloud",
                "parameters": [
                    {
                        "name": "downscale_factor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number",
                            "description": "Downscale factor for the point cloud. 1.0 = no compression, 0.1 = heavy compression",
                            "default": 1.0,
                            "title": "Downscale Factor"
                        },
                        "description": "Downscale factor for the point cloud. 1.0 = no compression, 0.1 = heavy compression"
                    },
                    {
                        "name": "camera_prim_path",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "Path of camera prim",
                            "title": "Camera Prim Path"
                        },
                        "description": "Path of camera prim"
                    },
                    {
                        "name": "width",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "description": "Image width in px",
                            "default": 640,
                            "title": "Width"
                        },
                        "description": "Image width in px"
                    },
                    {
                        "name": "height",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "description": "Image height in px",
                            "default": 480,
                            "title": "Height"
                        },
                        "description": "Image height in px"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully fetched point cloud data",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PointCloud"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Camera not configured"
                    },
                    "500": {
                        "description": "Could not fetch point cloud data"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/periphery/cameras/capture/bounding-box-2d": {
            "get": {
                "tags": [
                    "Periphery (Camera)"
                ],
                "summary": "Capture Boundingbox 2D",
                "description": "Retrieves 2D bounding box data for specified object classes from the scene.\nUse the `set_semantic_label` endpoint to assign labels to scene entities.",
                "operationId": "capture_boundingbox_2d",
                "parameters": [
                    {
                        "name": "result_type",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "enum": [
                                "json",
                                "rgb_png"
                            ],
                            "type": "string",
                            "description": "Format which will be used to represent the captured data",
                            "title": "Result Type"
                        },
                        "description": "Format which will be used to represent the captured data"
                    },
                    {
                        "name": "object_class",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            },
                            "description": "Classes of objects to include in the 2D bounding box output. If not specified, returns all labeled instances.",
                            "title": "Object Class"
                        },
                        "description": "Classes of objects to include in the 2D bounding box output. If not specified, returns all labeled instances."
                    },
                    {
                        "name": "camera_prim_path",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "Path of camera prim",
                            "title": "Camera Prim Path"
                        },
                        "description": "Path of camera prim"
                    },
                    {
                        "name": "width",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "description": "Image width in px",
                            "default": 640,
                            "title": "Width"
                        },
                        "description": "Image width in px"
                    },
                    {
                        "name": "height",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "description": "Image height in px",
                            "default": 480,
                            "title": "Height"
                        },
                        "description": "Image height in px"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully fetched 2D bounding box data",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/BoundingBox2D"
                                    },
                                    "title": "Response Capture Boundingbox 2D"
                                }
                            },
                            "image/png": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Camera not configured"
                    },
                    "500": {
                        "description": "Could not fetch 2D bounding box data"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/periphery/cameras/capture/bounding-box-3d": {
            "get": {
                "tags": [
                    "Periphery (Camera)"
                ],
                "summary": "Capture Boundingbox 3D",
                "description": "Retrieves 3D bounding box data for specified object classes from the scene.\nUse the `set_semantic_label` endpoint to assign labels to scene entities.",
                "operationId": "capture_boundingbox_3d",
                "parameters": [
                    {
                        "name": "object_class",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            },
                            "description": "Classes of objects to include in the 3D bounding box output. If not specified, returns all labeled instances.",
                            "title": "Object Class"
                        },
                        "description": "Classes of objects to include in the 3D bounding box output. If not specified, returns all labeled instances."
                    },
                    {
                        "name": "camera_prim_path",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "Path of camera prim",
                            "title": "Camera Prim Path"
                        },
                        "description": "Path of camera prim"
                    },
                    {
                        "name": "width",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "description": "Image width in px",
                            "default": 640,
                            "title": "Width"
                        },
                        "description": "Image width in px"
                    },
                    {
                        "name": "height",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "description": "Image height in px",
                            "default": 480,
                            "title": "Height"
                        },
                        "description": "Image height in px"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully fetched 3D bounding box data",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/BoundingBox3D"
                                    },
                                    "title": "Response Capture Boundingbox 3D"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Camera not configured"
                    },
                    "500": {
                        "description": "Could not fetch 3D bounding box data"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/periphery/cameras/capture/instance-segmentation": {
            "get": {
                "tags": [
                    "Periphery (Camera)"
                ],
                "summary": "Capture Instance Segmentation",
                "description": "Retrieves instance segmentation data for specified object classes, with each detected object uniquely identified.\nUse the `set_semantic_label` endpoint to assign labels to scene entities.",
                "operationId": "capture_instance_segmentation",
                "parameters": [
                    {
                        "name": "result_type",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "enum": [
                                "json",
                                "rgb_png"
                            ],
                            "type": "string",
                            "description": "Format which will be used to represent the captured data",
                            "title": "Result Type"
                        },
                        "description": "Format which will be used to represent the captured data"
                    },
                    {
                        "name": "object_class",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            },
                            "description": "Classes of objects to include in segmentation. If not specified, returns all labeled instances.",
                            "title": "Object Class"
                        },
                        "description": "Classes of objects to include in segmentation. If not specified, returns all labeled instances."
                    },
                    {
                        "name": "camera_prim_path",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "Path of camera prim",
                            "title": "Camera Prim Path"
                        },
                        "description": "Path of camera prim"
                    },
                    {
                        "name": "width",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "description": "Image width in px",
                            "default": 640,
                            "title": "Width"
                        },
                        "description": "Image width in px"
                    },
                    {
                        "name": "height",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "description": "Image height in px",
                            "default": 480,
                            "title": "Height"
                        },
                        "description": "Image height in px"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully fetched instance segmentation data",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/InstanceSegmentationData"
                                }
                            },
                            "image/png": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Camera not configured"
                    },
                    "500": {
                        "description": "Could not fetch segmentation data"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/periphery/cameras/capture/semantic-segmentation": {
            "get": {
                "tags": [
                    "Periphery (Camera)"
                ],
                "summary": "Capture Semantic Segmentation",
                "description": "Retrieves semantic segmentation data for specified object classes, with each detected entity uniquely labeled.\nIf no class is specified, data for all labeled objects in the scene is returned.\n\nUse the `set_semantic_label` endpoint to assign labels to scene entities.",
                "operationId": "capture_semantic_segmentation",
                "parameters": [
                    {
                        "name": "result_type",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "enum": [
                                "json",
                                "rgb_png"
                            ],
                            "type": "string",
                            "description": "Format which will be used to represent the captured data",
                            "title": "Result Type"
                        },
                        "description": "Format which will be used to represent the captured data"
                    },
                    {
                        "name": "object_class",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            },
                            "description": "The class of the object for which the data is to be fetched. If no labels are set in the scene, all bounding boxes could be returned.",
                            "title": "Object Class"
                        },
                        "description": "The class of the object for which the data is to be fetched. If no labels are set in the scene, all bounding boxes could be returned."
                    },
                    {
                        "name": "camera_prim_path",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "Path of camera prim",
                            "title": "Camera Prim Path"
                        },
                        "description": "Path of camera prim"
                    },
                    {
                        "name": "width",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "description": "Image width in px",
                            "default": 640,
                            "title": "Width"
                        },
                        "description": "Image width in px"
                    },
                    {
                        "name": "height",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "description": "Image height in px",
                            "default": 480,
                            "title": "Height"
                        },
                        "description": "Image height in px"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully fetched semantic segmentation data",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SemanticSegmentationData"
                                }
                            },
                            "image/png": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Camera not configured"
                    },
                    "500": {
                        "description": "Could not fetch segmentation data"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/ui/visibility": {
            "get": {
                "tags": [
                    "UI"
                ],
                "summary": "Get Visibility",
                "description": "Fetches if ui is visible and returns a boolean",
                "operationId": "get_visibility",
                "responses": {
                    "200": {
                        "description": "Successfully fetched if viewport is visible",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "boolean",
                                    "title": "Response Get Visibility"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Unable to fetch if ui is visible"
                    }
                }
            },
            "patch": {
                "tags": [
                    "UI"
                ],
                "summary": "Set Visibility",
                "description": "Updates the UI visibility state. If `hide=True`, the full UI is hidden and only the viewport is shown.",
                "operationId": "set_visibility",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "boolean",
                                "title": "Hide",
                                "description": "If True, hides UI otherwise makes it visible",
                                "default": false
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Successfully toggled ui visibility"
                    },
                    "500": {
                        "description": "Unable to fetch if ui is visible"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/teaching/ghost-objects/sources": {
            "get": {
                "tags": [
                    "Teaching"
                ],
                "summary": "List Ghost Object Sources",
                "description": "Return the prim paths of all prims that are sources for ghost objects i.e. tools.\nThese ghost object sources must follow a strict predicate `tool_` and the source ghost must be created in the scene.\nSource ghost is created by default during robot creation",
                "operationId": "list_ghost_object_sources",
                "responses": {
                    "200": {
                        "description": "Successfully retrieved the ghost objects",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "items": {
                                        "$ref": "#/components/schemas/GhostObjectSource"
                                    },
                                    "type": "array",
                                    "title": "Response List Ghost Object Sources"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error: Unable to fetch ghost object sources from the scene"
                    }
                }
            }
        },
        "/teaching/tcps/sources": {
            "get": {
                "tags": [
                    "Teaching"
                ],
                "summary": "List Tcp Sources",
                "description": "Return the prim paths of all tcps that are defined in the scene which follows a strict predicate `tcp_` or 'TCP_'",
                "operationId": "list_tcp_sources",
                "responses": {
                    "200": {
                        "description": "Successfully retrieved the tcp sources",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "items": {
                                        "$ref": "#/components/schemas/TCPSource"
                                    },
                                    "type": "array",
                                    "title": "Response List Tcp Sources"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error: Unable to fetch tcp sources from the scene"
                    }
                }
            }
        },
        "/teaching/ghost-objects": {
            "post": {
                "tags": [
                    "Teaching"
                ],
                "summary": "Create Ghost Object",
                "description": "Create a ghost object from the prim under the specified path.\nThis will clone the prim, apply the specified material and shift the origin of the prim.",
                "operationId": "create_ghost_object",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateGhostObject"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Successfully added ghost object to the scene"
                    },
                    "404": {
                        "description": "Invalid prim path"
                    },
                    "422": {
                        "description": "Source ghost object is not created. Make sure that the tool is in robot workspace and the robot is created"
                    },
                    "500": {
                        "description": "Internal server error: Unable to add ghost objects to the scene"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Teaching"
                ],
                "summary": "Clear Ghost Objects",
                "description": "Remove all ghost objects",
                "operationId": "clear_ghost_objects",
                "parameters": [
                    {
                        "name": "prim_path",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "title": "Prim Path"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Successfully deleted specified ghost objects"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            },
            "get": {
                "tags": [
                    "Teaching"
                ],
                "summary": "List Ghost Objects",
                "description": "Fetches all ghost objects defined in the scene",
                "operationId": "list_ghost_objects",
                "parameters": [
                    {
                        "name": "relative_to_prim",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "description": "Prim path to which the ghost object poses are relative",
                            "title": "Relative To Prim"
                        },
                        "description": "Prim path to which the ghost object poses are relative"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully fetched all the ghost objects in the scene",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/GhostObject"
                                    },
                                    "title": "Response List Ghost Objects"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Unable to fetch all the ghost objects in the scene"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/trajectory-planner/export": {
            "get": {
                "tags": [
                    "Trajectory Planner"
                ],
                "summary": "Export Trajectory Plans",
                "description": "Export all trajectory planner skills as NOVA-compatible planning requests.",
                "operationId": "export_trajectory_plans",
                "responses": {
                    "200": {
                        "description": "Trajectory plans exported with NOVA-compatible requests grouped by skill.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ExportedTrajectoryPlan"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/trajectory-planner/{skill_name}/export": {
            "get": {
                "tags": [
                    "Trajectory Planner"
                ],
                "summary": "Export Trajectory Plan Skill",
                "description": "Export a single trajectory planner skill by name.",
                "operationId": "export_trajectory_plan_skill",
                "parameters": [
                    {
                        "name": "skill_name",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "title": "Skill Name"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Single trajectory plan skill exported with NOVA-compatible requests.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ExportedSkill"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Skill not found."
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/manipulators/motion-groups": {
            "get": {
                "tags": [
                    "Manipulators (Motion-Group)"
                ],
                "summary": "List Motion Groups",
                "description": "Fetches all the motion_groups configured in the scene",
                "operationId": "list_motion_groups",
                "responses": {
                    "200": {
                        "description": "Successful Response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "additionalProperties": {
                                        "$ref": "#/components/schemas/MotionGroupConfiguration"
                                    },
                                    "type": "object",
                                    "title": "Response List Motion Groups"
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Manipulators (Motion-Group)"
                ],
                "summary": "Create Motion Group",
                "description": "Create and link a motion_group to a motion stream",
                "operationId": "create_motion_group",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/MotionGroupConfiguration"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "204": {
                        "description": "Motion-Group created. The connection will be established when the simulation is playing"
                    },
                    "400": {
                        "description": "Create motion_group is not possible with this configuration"
                    },
                    "409": {
                        "description": "A motion_group with this id already exists"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Manipulators (Motion-Group)"
                ],
                "summary": "Clear Motion Groups",
                "description": "Removes all motion_groups",
                "operationId": "clear_motion_groups",
                "responses": {
                    "204": {
                        "description": "Successful Response"
                    },
                    "404": {
                        "description": "Motion-Group not found"
                    }
                }
            }
        },
        "/manipulators/motion-groups/{prim_path}": {
            "put": {
                "tags": [
                    "Manipulators (Motion-Group)"
                ],
                "summary": "Update Motion Group Motion Stream",
                "description": "Update motion_group motion stream configuration.\nWhile it is possible to update the motion while simulating, its not guaranteed that all relations will directly pick up the new config",
                "operationId": "update_motion_group_stream",
                "parameters": [
                    {
                        "name": "prim_path",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "title": "Prim Path"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/MotionStreamConfiguration"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Successful Response"
                    },
                    "404": {
                        "description": "Motion-Group not found"
                    },
                    "400": {
                        "description": "Create motion_group is not possible with this configuration"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            },
            "get": {
                "tags": [
                    "Manipulators (Motion-Group)"
                ],
                "summary": "Get Motion Group",
                "description": "Get the configuration of a motion_group",
                "operationId": "get_motion_group",
                "parameters": [
                    {
                        "name": "prim_path",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "title": "Prim Path"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful Response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/MotionGroupConfiguration"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Motion-Group not found"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Manipulators (Motion-Group)"
                ],
                "summary": "Remove Motion Group",
                "description": "Remove a motion_group",
                "operationId": "remove_motion_group",
                "parameters": [
                    {
                        "name": "prim_path",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "title": "Prim Path"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Successful Response"
                    },
                    "404": {
                        "description": "Motion-Group not found"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/trajectories/": {
            "get": {
                "tags": [
                    "Trajectory"
                ],
                "summary": "List Trajectories",
                "description": "Lists all available trajectories within the stage.",
                "operationId": "list_trajectories",
                "responses": {
                    "200": {
                        "description": "Successful Response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "items": {
                                        "$ref": "#/components/schemas/TrajectoryObject"
                                    },
                                    "type": "array",
                                    "title": "Response List Trajectories"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Unable to list trajectories"
                    }
                }
            },
            "post": {
                "tags": [
                    "Trajectory"
                ],
                "summary": "Create Trajectory",
                "description": "Creates a new trajectory in the scene.",
                "operationId": "create_trajectory",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/TrajectoryData",
                                "description": "Trajectory data"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "201": {
                        "description": "Successful Response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/TrajectoryObject"
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "Trajectory already exists"
                    },
                    "500": {
                        "description": "Trajectory could not be created"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/trajectories/{name}": {
            "patch": {
                "tags": [
                    "Trajectory"
                ],
                "summary": "Update Trajectory",
                "description": "Updates an existing trajectory with new motion data.",
                "operationId": "update_trajectory",
                "parameters": [
                    {
                        "name": "name",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "Name of the trajectory to update",
                            "title": "Name"
                        },
                        "description": "Name of the trajectory to update"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchTrajectoryData",
                                "description": "Motion commands data"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful Response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/TrajectoryObject"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Trajectory not found"
                    },
                    "500": {
                        "description": "Unable to update trajectory"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Trajectory"
                ],
                "summary": "Remove Trajectory",
                "description": "Deletes a trajectory by name.",
                "operationId": "remove_trajectory",
                "parameters": [
                    {
                        "name": "name",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "Name of the trajectory to delete",
                            "title": "Name"
                        },
                        "description": "Name of the trajectory to delete"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Successful Response"
                    },
                    "404": {
                        "description": "Trajectory not found"
                    },
                    "500": {
                        "description": "Unable to delete trajectory"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/trajectories/{name}/markers": {
            "post": {
                "tags": [
                    "Trajectory"
                ],
                "summary": "Create Markers",
                "description": "Adds visual markers along a trajectory.",
                "operationId": "create_trajectory_markers",
                "parameters": [
                    {
                        "name": "name",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "Name of the trajectory to add markers to",
                            "title": "Name"
                        },
                        "description": "Name of the trajectory to add markers to"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/TrajectoryMarker",
                                "description": "Marker configuration"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Successful Response"
                    },
                    "404": {
                        "description": "Trajectory not found"
                    },
                    "500": {
                        "description": "Unable to create trajectory markers"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Trajectory"
                ],
                "summary": "Remove Markers",
                "description": "Removes all markers associated with a trajectory.",
                "operationId": "remove_trajectory_markers",
                "parameters": [
                    {
                        "name": "name",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "Name of the trajectory to delete markers from",
                            "title": "Name"
                        },
                        "description": "Name of the trajectory to delete markers from"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Successful Response"
                    },
                    "404": {
                        "description": "Trajectory not found"
                    },
                    "500": {
                        "description": "Unable to remove trajectory markers"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/physics/collision/sweep": {
            "post": {
                "tags": [
                    "Collision World"
                ],
                "summary": "Sweep Collisions",
                "description": "Performs a collision sweep with the specified volume and returns the colliders that were hit.",
                "operationId": "sweep_collisions",
                "parameters": [
                    {
                        "name": "relative_to_prim",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "anyOf": [
                                {
                                    "type": "string"
                                },
                                {
                                    "type": "null"
                                }
                            ],
                            "description": "Prim path to which the collision object poses are relative to. If not provided, world coordinates are used.",
                            "title": "Relative To Prim"
                        },
                        "description": "Prim path to which the collision object poses are relative to. If not provided, world coordinates are used."
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "anyOf": [
                                    {
                                        "$ref": "#/components/schemas/TreeSweepParameters"
                                    },
                                    {
                                        "$ref": "#/components/schemas/SphereSweepParameters"
                                    },
                                    {
                                        "$ref": "#/components/schemas/BoxSweepParameters"
                                    }
                                ],
                                "title": "Sweep Arguments"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful Response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "additionalProperties": {
                                        "$ref": "#/components/schemas/Collider"
                                    },
                                    "title": "Response Sweep Collisions"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/overlays/robot/visibility": {
            "put": {
                "tags": [
                    "Robot Overlay (Experimental)"
                ],
                "summary": "Set Robot Overlay Visibility",
                "description": "Show or hide the robot ghost for the given motion group.",
                "operationId": "set_robot_overlay_visibility",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/RobotOverlayVisibility"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "204": {
                        "description": "Successful Response"
                    },
                    "503": {
                        "description": "Overlay not ready"
                    },
                    "400": {
                        "description": "joint_positions required when visible is true"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/prims/physics/colliders/": {
            "patch": {
                "tags": [
                    "Prims"
                ],
                "summary": "Update Colliders",
                "description": "Enable or disable the colliders on a prim.",
                "operationId": "update_colliders",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/Body_update_colliders"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "204": {
                        "description": "Collider state updated successfully"
                    },
                    "404": {
                        "description": "Invalid prim path"
                    },
                    "500": {
                        "description": "Could not update collider state"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/nucleus/server": {
            "post": {
                "tags": [
                    "Nucleus"
                ],
                "summary": "Add Nucleus Server",
                "operationId": "add_nucleus_server_nucleus_server_post",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/NucleusServerModel"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "204": {
                        "description": "Successful Response"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/nucleus/servers": {
            "get": {
                "tags": [
                    "Nucleus"
                ],
                "summary": "List Nucleus Servers",
                "operationId": "list_nucleus_servers_nucleus_servers_get",
                "responses": {
                    "200": {
                        "description": "Successful Response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "additionalProperties": {
                                        "$ref": "#/components/schemas/NucleusServerMetadata"
                                    },
                                    "type": "object",
                                    "title": "Response List Nucleus Servers Nucleus Servers Get"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/nucleus/server/token": {
            "post": {
                "tags": [
                    "Nucleus"
                ],
                "summary": "Add Nucleus Api Token",
                "operationId": "add_nucleus_api_token_nucleus_server_token_post",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/NucleusTokenModel"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Successful Response"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Nucleus"
                ],
                "summary": "Remove Nucleus Api Token",
                "operationId": "remove_nucleus_api_token_nucleus_server_token_delete",
                "parameters": [
                    {
                        "name": "name",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "title": "Name"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Successful Response"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/nucleus/server/tokens": {
            "delete": {
                "tags": [
                    "Nucleus"
                ],
                "summary": "Remove All Nucleus Api Tokens",
                "operationId": "remove_all_nucleus_api_tokens_nucleus_server_tokens_delete",
                "responses": {
                    "204": {
                        "description": "Successful Response"
                    }
                }
            }
        },
        "/status": {
            "get": {
                "summary": "Get Status",
                "description": "This endpoint returns you the status of the service. Usually `OK` when it is running.",
                "operationId": "get_status_status_get",
                "responses": {
                    "200": {
                        "description": "Successful Response",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                }
            }
        },
        "/version": {
            "get": {
                "summary": "Get Versions",
                "description": "This endpoint returns you a list of installed extensions with their version accordingly.",
                "operationId": "get_versions_version_get",
                "responses": {
                    "200": {
                        "description": "Successful Response",
                        "content": {
                            "application/json": {
                                "schema": {}
                            }
                        }
                    }
                }
            }
        },
        "/auth/token": {
            "post": {
                "summary": "Authenticate",
                "description": "This Endpoint allows you to authenticate with Wandelbots NOVA using your access token.",
                "operationId": "authenticate",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "anyOf": [
                                    {
                                        "$ref": "#/components/schemas/Auth0Credentials"
                                    },
                                    {
                                        "$ref": "#/components/schemas/EntraIDCredentials"
                                    }
                                ],
                                "title": "Credentials",
                                "description": "Authentication credentials from NOVA"
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "204": {
                        "description": "Authenticated successfully"
                    },
                    "400": {
                        "description": "Authentication failed"
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HTTPValidationError"
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "Auth0Credentials": {
                "properties": {
                    "id": {
                        "type": "string",
                        "title": "Id",
                        "description": "Provide the id to find the matching Auth0 auth configuration.",
                        "default": "default"
                    },
                    "access_token": {
                        "type": "string",
                        "title": "Access Token",
                        "description": "Provide the access token obtained for authentication"
                    }
                },
                "type": "object",
                "required": [
                    "access_token"
                ],
                "title": "Auth0Credentials"
            },
            "Body_apply_relative_pose": {
                "properties": {
                    "relative_pose": {
                        "$ref": "#/components/schemas/WSPose",
                        "description": "relative pose to apply (WSPose object) in Cartesian coordinates"
                    },
                    "object_first": {
                        "type": "boolean",
                        "title": "Object First",
                        "description": "If True, apply object's pose first, then relative pose. If False, apply relative pose first.",
                        "default": false
                    },
                    "prim_path": {
                        "type": "string",
                        "title": "Prim Path",
                        "description": "Prim path of the object"
                    }
                },
                "type": "object",
                "required": [
                    "relative_pose",
                    "prim_path"
                ],
                "title": "Body_apply_relative_pose"
            },
            "Body_import_configuration": {
                "properties": {
                    "file": {
                        "type": "string",
                        "format": "binary",
                        "title": "File",
                        "description": "The file containing configuration for the scene in YAML format."
                    }
                },
                "type": "object",
                "required": [
                    "file"
                ],
                "title": "Body_import_configuration"
            },
            "Body_set_joint_state": {
                "properties": {
                    "enable": {
                        "type": "boolean",
                        "title": "Enable",
                        "description": "Set to true to enable joint, false to disable"
                    },
                    "prim_path": {
                        "type": "string",
                        "title": "Prim Path",
                        "description": "Prim path of the object"
                    }
                },
                "type": "object",
                "required": [
                    "enable",
                    "prim_path"
                ],
                "title": "Body_set_joint_state"
            },
            "Body_set_prim_metadata": {
                "properties": {
                    "metadata": {
                        "$ref": "#/components/schemas/CustomPrimData",
                        "description": "custom data to be added to the prim"
                    },
                    "prim_path": {
                        "type": "string",
                        "title": "Prim Path",
                        "description": "Prim path of the object"
                    }
                },
                "type": "object",
                "required": [
                    "metadata",
                    "prim_path"
                ],
                "title": "Body_set_prim_metadata"
            },
            "Body_set_prim_visibility": {
                "properties": {
                    "visibility": {
                        "type": "string",
                        "enum": [
                            "show",
                            "hide"
                        ],
                        "title": "Visibility",
                        "description": "set to `show` or `hide` the prim",
                        "default": "show"
                    },
                    "prim_path": {
                        "type": "string",
                        "title": "Prim Path",
                        "description": "Prim path of the object"
                    }
                },
                "type": "object",
                "required": [
                    "prim_path"
                ],
                "title": "Body_set_prim_visibility"
            },
            "Body_set_semantic_label": {
                "properties": {
                    "label": {
                        "type": "string",
                        "title": "Label",
                        "description": "label to be given for the object"
                    },
                    "prim_path": {
                        "type": "string",
                        "title": "Prim Path",
                        "description": "Prim path of the object"
                    }
                },
                "type": "object",
                "required": [
                    "label",
                    "prim_path"
                ],
                "title": "Body_set_semantic_label"
            },
            "Body_update_colliders": {
                "properties": {
                    "enable": {
                        "type": "boolean",
                        "title": "Enable",
                        "description": "Set to true to enable collider, false to disable"
                    },
                    "prim_path": {
                        "type": "string",
                        "title": "Prim Path",
                        "description": "Prim path of the object"
                    }
                },
                "type": "object",
                "required": [
                    "enable",
                    "prim_path"
                ],
                "title": "Body_update_colliders"
            },
            "Body_update_pose": {
                "properties": {
                    "input_pose": {
                        "$ref": "#/components/schemas/WSPose",
                        "description": "input pose of the object in WS format"
                    },
                    "prim_path": {
                        "type": "string",
                        "title": "Prim Path",
                        "description": "Prim path of the object"
                    }
                },
                "type": "object",
                "required": [
                    "input_pose",
                    "prim_path"
                ],
                "title": "Body_update_pose"
            },
            "BoundingBox2D": {
                "properties": {
                    "label": {
                        "type": "string",
                        "title": "Label",
                        "description": "Class label for the detected object"
                    },
                    "bbox": {
                        "items": {
                            "type": "number"
                        },
                        "type": "array",
                        "maxItems": 4,
                        "minItems": 4,
                        "title": "Bbox",
                        "description": "Bounding box coordinates [x_min, y_min, x_max, y_max]"
                    },
                    "prim_path": {
                        "type": "string",
                        "title": "Prim Path",
                        "description": "Path to the USD prim of the detected object"
                    },
                    "semantic_id": {
                        "type": "integer",
                        "title": "Semantic Id",
                        "description": "Semantic ID of the detected object"
                    }
                },
                "type": "object",
                "required": [
                    "label",
                    "bbox",
                    "prim_path",
                    "semantic_id"
                ],
                "title": "2D Bounding Box"
            },
            "BoundingBox3D": {
                "properties": {
                    "label": {
                        "type": "string",
                        "title": "Label",
                        "description": "Class label for the detected object"
                    },
                    "bbox": {
                        "items": {
                            "type": "number"
                        },
                        "type": "array",
                        "maxItems": 6,
                        "minItems": 6,
                        "title": "Bbox",
                        "description": "Bounding box coordinates [x_min, y_min, z_min, x_max, y_max, z_max]"
                    },
                    "prim_path": {
                        "type": "string",
                        "title": "Prim Path",
                        "description": "Path to the USD prim of the detected object"
                    },
                    "semantic_id": {
                        "type": "integer",
                        "title": "Semantic Id",
                        "description": "Semantic ID of the detected object"
                    },
                    "transform": {
                        "items": {
                            "items": {
                                "type": "number"
                            },
                            "type": "array"
                        },
                        "type": "array",
                        "maxItems": 4,
                        "minItems": 4,
                        "title": "Transform",
                        "description": "4x4 transformation matrix. Translation always uses mm"
                    }
                },
                "type": "object",
                "required": [
                    "label",
                    "bbox",
                    "prim_path",
                    "semantic_id",
                    "transform"
                ],
                "title": "3D Bounding Box"
            },
            "Box": {
                "properties": {
                    "shape_type": {
                        "type": "string",
                        "const": "box",
                        "title": "Shape Type",
                        "default": "box"
                    },
                    "size_x": {
                        "type": "number",
                        "title": "Size X",
                        "description": "Size in x direction [mm]"
                    },
                    "size_y": {
                        "type": "number",
                        "title": "Size Y",
                        "description": "Size in y direction [mm]"
                    },
                    "size_z": {
                        "type": "number",
                        "title": "Size Z",
                        "description": "Size in z direction [mm]"
                    },
                    "box_type": {
                        "type": "string",
                        "const": "FULL",
                        "title": "Box Type",
                        "default": "FULL"
                    }
                },
                "type": "object",
                "required": [
                    "size_x",
                    "size_y",
                    "size_z"
                ],
                "title": "Box"
            },
            "BoxSweepParameters": {
                "properties": {
                    "sweep_type": {
                        "type": "string",
                        "const": "box",
                        "title": "Sweep Type"
                    },
                    "half_extent": {
                        "items": {
                            "type": "number"
                        },
                        "type": "array",
                        "maxItems": 3,
                        "minItems": 3,
                        "title": "Half Extent",
                        "description": "Half extent of the box [stage_units]",
                        "default": [
                            5.0,
                            5.0,
                            5.0
                        ]
                    },
                    "sphere_radius": {
                        "type": "number",
                        "title": "Sphere Radius",
                        "default": 0.5
                    },
                    "position": {
                        "items": {
                            "type": "number"
                        },
                        "type": "array",
                        "maxItems": 3,
                        "minItems": 3,
                        "title": "Position",
                        "description": "Position of the box sweep [stage_units]",
                        "default": [
                            0.0,
                            0.0,
                            0.0
                        ]
                    },
                    "rotation": {
                        "items": {
                            "type": "number"
                        },
                        "type": "array",
                        "maxItems": 4,
                        "minItems": 4,
                        "title": "Rotation",
                        "description": "Rotation of the box sweep in quaternion format",
                        "default": [
                            0.0,
                            0.0,
                            0.0,
                            1.0
                        ]
                    },
                    "direction": {
                        "items": {
                            "type": "number"
                        },
                        "type": "array",
                        "maxItems": 3,
                        "minItems": 3,
                        "title": "Direction",
                        "description": "Direction of the box sweep",
                        "default": [
                            0.0,
                            0.0,
                            -1.0
                        ]
                    },
                    "max_distance": {
                        "type": "number",
                        "title": "Max Distance",
                        "description": "Sweep distance [stage_units]",
                        "default": 0.0
                    }
                },
                "type": "object",
                "required": [
                    "sweep_type"
                ],
                "title": "BoxSweepParameters"
            },
            "CamerasPrimsResponse": {
                "items": {
                    "type": "string"
                },
                "type": "array",
                "title": "CamerasPrimsResponse"
            },
            "Capsule": {
                "properties": {
                    "shape_type": {
                        "type": "string",
                        "const": "capsule",
                        "title": "Shape Type",
                        "default": "capsule"
                    },
                    "radius": {
                        "type": "number",
                        "title": "Radius",
                        "description": "Radius of the capsule [mm]"
                    },
                    "height": {
                        "type": "number",
                        "title": "Height",
                        "description": "Height of the capsule [mm]"
                    }
                },
                "type": "object",
                "required": [
                    "radius",
                    "height"
                ],
                "title": "Capsule"
            },
            "Collider": {
                "properties": {
                    "shape": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/ConvexHull"
                            },
                            {
                                "$ref": "#/components/schemas/Sphere"
                            },
                            {
                                "$ref": "#/components/schemas/Box"
                            },
                            {
                                "$ref": "#/components/schemas/Capsule"
                            },
                            {
                                "$ref": "#/components/schemas/Cylinder"
                            },
                            {
                                "$ref": "#/components/schemas/Plane"
                            }
                        ],
                        "title": "Shape"
                    },
                    "pose": {
                        "$ref": "#/components/schemas/Pose"
                    },
                    "prim_path": {
                        "type": "string",
                        "title": "Prim Path"
                    }
                },
                "type": "object",
                "required": [
                    "shape",
                    "pose",
                    "prim_path"
                ],
                "title": "Collider"
            },
            "ConvexHull": {
                "properties": {
                    "shape_type": {
                        "type": "string",
                        "const": "convex_hull",
                        "title": "Shape Type",
                        "default": "convex_hull"
                    },
                    "vertices": {
                        "items": {
                            "items": {
                                "type": "number"
                            },
                            "type": "array"
                        },
                        "type": "array",
                        "title": "Vertices"
                    }
                },
                "type": "object",
                "required": [
                    "vertices"
                ],
                "title": "ConvexHull"
            },
            "CreateGhostObject": {
                "properties": {
                    "prim_path": {
                        "type": "string",
                        "title": "Prim Path",
                        "description": "prim path of the object to clone"
                    },
                    "ref_pose": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/WSPose"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "description": "The TCP pose to which the ghost object has to be attached"
                    },
                    "tcp_prim_path": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "title": "Tcp Prim Path",
                        "description": "Prim path of the TCP which is used as ghost object transform origin"
                    }
                },
                "type": "object",
                "required": [
                    "prim_path"
                ],
                "title": "CreateGhostObject"
            },
            "CustomPrim": {
                "properties": {
                    "type": {
                        "type": "string",
                        "const": "custom",
                        "title": "Type",
                        "description": "Use a custom USD prim as marker"
                    },
                    "custom_prim_path": {
                        "type": "string",
                        "title": "Custom Prim Path",
                        "description": "Path to the custom USD prim"
                    }
                },
                "type": "object",
                "required": [
                    "type",
                    "custom_prim_path"
                ],
                "title": "CustomPrim"
            },
            "CustomPrimData": {
                "properties": {
                    "category": {
                        "type": "string",
                        "title": "Category"
                    },
                    "type": {
                        "type": "string",
                        "title": "Type"
                    }
                },
                "type": "object",
                "required": [
                    "category",
                    "type"
                ],
                "title": "CustomPrimData"
            },
            "Cylinder": {
                "properties": {
                    "shape_type": {
                        "type": "string",
                        "const": "cylinder",
                        "title": "Shape Type",
                        "default": "cylinder"
                    },
                    "radius": {
                        "type": "number",
                        "title": "Radius",
                        "description": "Radius of the cylinder [mm]"
                    },
                    "height": {
                        "type": "number",
                        "title": "Height",
                        "description": "Height of the cylinder [mm]"
                    }
                },
                "type": "object",
                "required": [
                    "radius",
                    "height"
                ],
                "title": "Cylinder"
            },
            "EntraIDCredentials": {
                "properties": {
                    "id": {
                        "type": "string",
                        "title": "Id",
                        "description": "Provide the id to find the matching Entra ID auth configuration."
                    },
                    "access_token": {
                        "type": "string",
                        "title": "Access Token",
                        "description": "Provide the access token obtained for authentication"
                    }
                },
                "type": "object",
                "required": [
                    "id",
                    "access_token"
                ],
                "title": "EntraIDCredentials"
            },
            "ExportedSkill": {
                "properties": {
                    "name": {
                        "type": "string",
                        "title": "Name"
                    },
                    "version": {
                        "type": "string",
                        "title": "Version",
                        "default": "v1"
                    },
                    "robot_prim_path": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "title": "Robot Prim Path"
                    },
                    "tcp_name": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "title": "Tcp Name"
                    },
                    "collision_setup": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "title": "Collision Setup"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "plan_trajectory",
                            "plan_collision_free"
                        ],
                        "title": "Type",
                        "default": "plan_trajectory"
                    },
                    "plan_trajectory_request": {
                        "anyOf": [
                            {
                                "additionalProperties": true,
                                "type": "object"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "title": "Plan Trajectory Request"
                    },
                    "plan_segmented_trajectory": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/SegmentedTrajectoryPlan"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "plan_collision_free_requests": {
                        "anyOf": [
                            {
                                "items": {
                                    "additionalProperties": true,
                                    "type": "object"
                                },
                                "type": "array"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "title": "Plan Collision Free Requests"
                    },
                    "metadata": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/SkillMetadata"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                },
                "type": "object",
                "required": [
                    "name"
                ],
                "title": "ExportedSkill"
            },
            "ExportedTrajectoryPlan": {
                "properties": {
                    "skills": {
                        "items": {
                            "$ref": "#/components/schemas/ExportedSkill"
                        },
                        "type": "array",
                        "title": "Skills"
                    }
                },
                "type": "object",
                "title": "ExportedTrajectoryPlan"
            },
            "GhostObject": {
                "properties": {
                    "name": {
                        "type": "string",
                        "title": "Name"
                    },
                    "prim_path": {
                        "type": "string",
                        "title": "Prim Path"
                    },
                    "robot_prim_path": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "title": "Robot Prim Path"
                    },
                    "pose": {
                        "$ref": "#/components/schemas/WSPose"
                    },
                    "preferred_joint_values": {
                        "anyOf": [
                            {
                                "items": {
                                    "type": "number"
                                },
                                "type": "array"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "title": "Preferred Joint Values"
                    }
                },
                "type": "object",
                "required": [
                    "name",
                    "prim_path",
                    "robot_prim_path",
                    "pose"
                ],
                "title": "GhostObject"
            },
            "GhostObjectSource": {
                "properties": {
                    "name": {
                        "type": "string",
                        "title": "Name"
                    },
                    "prim_path": {
                        "type": "string",
                        "title": "Prim Path"
                    }
                },
                "type": "object",
                "required": [
                    "name",
                    "prim_path"
                ],
                "title": "GhostObjectSource"
            },
            "GizmoPrim": {
                "properties": {
                    "type": {
                        "type": "string",
                        "const": "gizmo",
                        "title": "Type",
                        "description": "Use gizmo marker"
                    }
                },
                "type": "object",
                "required": [
                    "type"
                ],
                "title": "GizmoPrim"
            },
            "HTTPValidationError": {
                "properties": {
                    "detail": {
                        "items": {
                            "$ref": "#/components/schemas/ValidationError"
                        },
                        "type": "array",
                        "title": "Detail"
                    }
                },
                "type": "object",
                "title": "HTTPValidationError"
            },
            "InstanceSegmentationData": {
                "properties": {
                    "data": {
                        "items": {
                            "items": {
                                "type": "integer"
                            },
                            "type": "array"
                        },
                        "type": "array",
                        "title": "Data",
                        "description": "Pixel-to-label array"
                    },
                    "info": {
                        "$ref": "#/components/schemas/InstanceSegmentationInfo",
                        "description": "Instance segmentation metadata"
                    }
                },
                "type": "object",
                "required": [
                    "data",
                    "info"
                ],
                "title": "InstanceSegmentationData"
            },
            "InstanceSegmentationInfo": {
                "properties": {
                    "id_to_labels": {
                        "additionalProperties": {
                            "additionalProperties": {
                                "type": "string"
                            },
                            "type": "object"
                        },
                        "type": "object",
                        "title": "Id To Labels",
                        "description": "Mapping of instance IDs to their class labels"
                    }
                },
                "type": "object",
                "required": [
                    "id_to_labels"
                ],
                "title": "InstanceSegmentationInfo"
            },
            "MotionGroupConfiguration": {
                "properties": {
                    "name": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "title": "Name",
                        "description": "DEPRECATED: Name of motion group. This field is deprecated and the backend will ignore this field. We used this field to identify motion groups, but now we use the prim_path instead.",
                        "deprecated": true
                    },
                    "prim_path": {
                        "type": "string",
                        "title": "Prim Path",
                        "description": "Path to motion-group prim with ArticulationRootApi",
                        "example": "/World/universalrobots_ur10e"
                    },
                    "enabled": {
                        "type": "boolean",
                        "title": "Enabled",
                        "description": "Whether the motion group is connecting to a motion stream on simulation start",
                        "default": true
                    },
                    "motion_stream_configuration": {
                        "$ref": "#/components/schemas/MotionStreamConfiguration"
                    }
                },
                "type": "object",
                "required": [
                    "name",
                    "prim_path",
                    "motion_stream_configuration"
                ],
                "title": "MotionGroupConfiguration"
            },
            "MotionStreamConfiguration": {
                "properties": {
                    "host": {
                        "type": "string",
                        "title": "Host",
                        "description": "NOVA instance origin. May include protocol (http:// or https://).",
                        "example": "https://xyz.instance.wandelbots.io"
                    },
                    "secure_connection": {
                        "type": "boolean",
                        "title": "Secure Connection",
                        "description": "Wether connection to NOVA instance is secure",
                        "default": false
                    },
                    "cell": {
                        "type": "string",
                        "title": "Cell",
                        "example": "cell"
                    },
                    "motion_group": {
                        "type": "string",
                        "title": "Motion Group",
                        "example": "0@ur10e"
                    },
                    "controller": {
                        "type": "string",
                        "title": "Controller",
                        "description": "Id of controller. A of <A>@<B> is used if motion group has this format",
                        "example": "ur10e"
                    },
                    "response_rate": {
                        "type": "integer",
                        "title": "Response Rate",
                        "description": "Response rate of motion stream",
                        "default": 32
                    },
                    "use_external_joint_stream": {
                        "type": "boolean",
                        "title": "Use External Joint Stream",
                        "description": "If true the robot will use the external joint stream endpoint to synchronize its articulation state with Wandelbots NOVA.",
                        "default": false
                    }
                },
                "type": "object",
                "required": [
                    "host",
                    "cell",
                    "motion_group"
                ],
                "title": "MotionStreamConfiguration"
            },
            "NucleusServerMetadata": {
                "properties": {
                    "name": {
                        "type": "string",
                        "title": "Name"
                    },
                    "url": {
                        "type": "string",
                        "title": "Url"
                    },
                    "token_auth_configured": {
                        "anyOf": [
                            {
                                "type": "boolean"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "title": "Token Auth Configured"
                    },
                    "user_metadata": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/ServerUserMetadata"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                },
                "type": "object",
                "required": [
                    "name",
                    "url"
                ],
                "title": "NucleusServerMetadata"
            },
            "NucleusServerModel": {
                "properties": {
                    "name": {
                        "type": "string",
                        "title": "Name",
                        "description": "Display name for the Nucleus server connection."
                    },
                    "url": {
                        "type": "string",
                        "title": "Url",
                        "description": "Nucleus server URL, e.g. omniverse://nucleus.example.com."
                    }
                },
                "type": "object",
                "required": [
                    "name",
                    "url"
                ],
                "title": "NucleusServerModel"
            },
            "NucleusTokenModel": {
                "properties": {
                    "name": {
                        "type": "string",
                        "title": "Name",
                        "description": "Display name of the Nucleus server to authenticate."
                    },
                    "token": {
                        "type": "string",
                        "title": "Token",
                        "description": "API token used to authenticate against the Nucleus server."
                    }
                },
                "type": "object",
                "required": [
                    "name",
                    "token"
                ],
                "title": "NucleusTokenModel"
            },
            "PatchTrajectoryData": {
                "properties": {
                    "poses": {
                        "anyOf": [
                            {
                                "items": {
                                    "items": {
                                        "type": "number"
                                    },
                                    "type": "array"
                                },
                                "type": "array"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "title": "Poses",
                        "description": "List of cartesian poses to traverse"
                    },
                    "options": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/TrajectoryOptions"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "description": "Additional options for the trajectory"
                    }
                },
                "type": "object",
                "title": "PatchTrajectoryData"
            },
            "PlanTrajectorySegment": {
                "properties": {
                    "tcp_name": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "title": "Tcp Name"
                    },
                    "plan_trajectory_request": {
                        "additionalProperties": true,
                        "type": "object",
                        "title": "Plan Trajectory Request"
                    },
                    "blending": {
                        "anyOf": [
                            {
                                "additionalProperties": true,
                                "type": "object"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "title": "Blending"
                    }
                },
                "type": "object",
                "required": [
                    "plan_trajectory_request"
                ],
                "title": "PlanTrajectorySegment",
                "description": "One contiguous run of motion commands that share a single TCP.\n\nA ``PlanTrajectoryRequest`` can only carry one TCP (via\n``motion_group_setup.tcp_offset``), so a skill whose poses use different TCPs\nis exported as several segments. A consumer plans each segment individually and\nthen merges the resulting joint trajectories via the ``mergeTrajectories``\nendpoint, using ``blending`` as the inter-segment blend."
            },
            "Plane": {
                "properties": {
                    "shape_type": {
                        "type": "string",
                        "const": "plane",
                        "title": "Shape Type",
                        "default": "plane"
                    }
                },
                "type": "object",
                "title": "Plane"
            },
            "PointCloud": {
                "properties": {
                    "points": {
                        "items": {
                            "items": {
                                "type": "number"
                            },
                            "type": "array"
                        },
                        "type": "array",
                        "title": "Points",
                        "description": "List of 3D points in world coordinates"
                    },
                    "colors": {
                        "items": {
                            "items": {
                                "type": "number"
                            },
                            "type": "array"
                        },
                        "type": "array",
                        "title": "Colors",
                        "description": "List of RGB colors for each point"
                    },
                    "normals": {
                        "items": {
                            "items": {
                                "type": "number"
                            },
                            "type": "array"
                        },
                        "type": "array",
                        "title": "Normals",
                        "description": "List of surface normals for each point"
                    }
                },
                "type": "object",
                "required": [
                    "points",
                    "colors",
                    "normals"
                ],
                "title": "Point Cloud"
            },
            "Pose": {
                "properties": {
                    "position": {
                        "anyOf": [
                            {
                                "items": {
                                    "anyOf": [
                                        {
                                            "type": "number"
                                        },
                                        {
                                            "type": "integer"
                                        }
                                    ]
                                },
                                "type": "array",
                                "maxItems": 3,
                                "minItems": 3
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "title": "Position",
                        "description": "A three-dimensional vector [x, y, z] with double precision. "
                    },
                    "orientation": {
                        "anyOf": [
                            {
                                "items": {
                                    "anyOf": [
                                        {
                                            "type": "number"
                                        },
                                        {
                                            "type": "integer"
                                        }
                                    ]
                                },
                                "type": "array",
                                "maxItems": 3,
                                "minItems": 3
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "title": "Orientation",
                        "description": "Defines a rotation in 3D space. A three-dimensional Vector [rx, ry, rz] with double precision. Rotation is applied around the vector. The angle of rotation equals the length of the vector. "
                    }
                },
                "type": "object",
                "title": "Pose",
                "description": "Defines a pose in 3D space. A pose is a combination of a position and an orientation. The position is applied before the orientation. "
            },
            "PoseMetadata": {
                "properties": {
                    "prim_path": {
                        "type": "string",
                        "title": "Prim Path"
                    }
                },
                "type": "object",
                "required": [
                    "prim_path"
                ],
                "title": "PoseMetadata"
            },
            "PrimSelection": {
                "properties": {
                    "prim_paths": {
                        "items": {
                            "type": "string"
                        },
                        "type": "array",
                        "title": "Prim Paths",
                        "descirption": "Prims which will replace the selection"
                    }
                },
                "type": "object",
                "required": [
                    "prim_paths"
                ],
                "title": "PrimSelection"
            },
            "PrimsLabelsResponse": {
                "additionalProperties": {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "type": "object",
                "title": "PrimsLabelsResponse"
            },
            "QuatPose": {
                "properties": {
                    "pose": {
                        "items": {
                            "type": "number"
                        },
                        "type": "array",
                        "maxItems": 7,
                        "minItems": 7,
                        "title": "Pose",
                        "description": "Pose in quaternion vector format (WS)",
                        "default": [
                            0,
                            0,
                            0,
                            1,
                            0,
                            0,
                            0
                        ]
                    }
                },
                "type": "object",
                "title": "QuatPose"
            },
            "RelativePoseMode": {
                "type": "string",
                "enum": [
                    "normal",
                    "inverse_first",
                    "inverse_second",
                    "inverse_both"
                ],
                "title": "RelativePoseMode"
            },
            "RobotOverlayVisibility": {
                "properties": {
                    "motion_group_prim_path": {
                        "type": "string",
                        "title": "Motion Group Prim Path",
                        "description": "USD prim path of the motion group.",
                        "example": "/World/Robot/motion_group_0"
                    },
                    "visible": {
                        "type": "boolean",
                        "title": "Visible",
                        "description": "Whether to show or hide the robot overlay."
                    },
                    "joint_positions": {
                        "anyOf": [
                            {
                                "items": {
                                    "type": "number"
                                },
                                "type": "array"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "title": "Joint Positions",
                        "description": "Joint positions in radians. Required when visible is true."
                    }
                },
                "type": "object",
                "required": [
                    "motion_group_prim_path",
                    "visible"
                ],
                "title": "RobotOverlayVisibility"
            },
            "SegmentedTrajectoryPlan": {
                "properties": {
                    "motion_group_setup": {
                        "additionalProperties": true,
                        "type": "object",
                        "title": "Motion Group Setup"
                    },
                    "limits_override": {
                        "anyOf": [
                            {
                                "additionalProperties": true,
                                "type": "object"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "title": "Limits Override"
                    },
                    "collision_setups": {
                        "anyOf": [
                            {
                                "additionalProperties": true,
                                "type": "object"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "title": "Collision Setups"
                    },
                    "segments": {
                        "items": {
                            "$ref": "#/components/schemas/PlanTrajectorySegment"
                        },
                        "type": "array",
                        "title": "Segments"
                    }
                },
                "type": "object",
                "required": [
                    "motion_group_setup"
                ],
                "title": "SegmentedTrajectoryPlan",
                "description": "A segmented trajectory plan plus the shared settings to merge the segments.\n\nBecause a ``PlanTrajectoryRequest`` carries a single TCP, a multi-TCP skill is\nexported as one segment per contiguous same-TCP run. To reconstruct the motion,\na consumer plans each segment's ``plan_trajectory_request`` into a\n``JointTrajectory`` and then calls the ``mergeTrajectories`` endpoint::\n\n    MergeTrajectoriesRequest(\n        motion_group_setup=motion_group_setup,\n        trajectory_segments=[\n            MergeTrajectoriesSegment(\n                trajectory=<planned jt for segment i>,\n                blending=segments[i].blending,\n                limits_override=limits_override,\n                collision_setups=collision_setups,\n            )\n            for i in range(len(segments))\n        ],\n    )\n\n``limits_override`` and ``collision_setups`` are shared across all segments."
            },
            "SemanticSegmentationData": {
                "properties": {
                    "data": {
                        "items": {
                            "items": {
                                "type": "integer"
                            },
                            "type": "array"
                        },
                        "type": "array",
                        "title": "Data",
                        "description": "Pixel-to-label array"
                    },
                    "info": {
                        "$ref": "#/components/schemas/SemanticSegmentationInfo",
                        "description": "Semantic segmentation metadata"
                    }
                },
                "type": "object",
                "required": [
                    "data",
                    "info"
                ],
                "title": "SemanticSegmentationData"
            },
            "SemanticSegmentationInfo": {
                "properties": {
                    "id_to_labels": {
                        "additionalProperties": {
                            "additionalProperties": {
                                "type": "string"
                            },
                            "type": "object"
                        },
                        "type": "object",
                        "title": "Id To Labels",
                        "description": "Mapping of semantic IDs to their class labels and attributes"
                    }
                },
                "type": "object",
                "required": [
                    "id_to_labels"
                ],
                "title": "SemanticSegmentationInfo"
            },
            "ServerUserMetadata": {
                "properties": {
                    "username": {
                        "type": "string",
                        "title": "Username"
                    },
                    "groups": {
                        "items": {
                            "type": "string"
                        },
                        "type": "array",
                        "title": "Groups"
                    }
                },
                "type": "object",
                "required": [
                    "username",
                    "groups"
                ],
                "title": "ServerUserMetadata"
            },
            "SimulationState": {
                "properties": {
                    "timeline": {
                        "type": "string",
                        "enum": [
                            "playing",
                            "paused",
                            "stopped"
                        ],
                        "title": "Timeline",
                        "description": "State simulation timeline"
                    }
                },
                "type": "object",
                "title": "SimulationState"
            },
            "SkillMetadata": {
                "properties": {
                    "motion_group_prim_path": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "title": "Motion Group Prim Path"
                    },
                    "scene_path": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "title": "Scene Path"
                    },
                    "poses": {
                        "items": {
                            "$ref": "#/components/schemas/PoseMetadata"
                        },
                        "type": "array",
                        "title": "Poses"
                    }
                },
                "type": "object",
                "title": "SkillMetadata"
            },
            "Sphere": {
                "properties": {
                    "shape_type": {
                        "type": "string",
                        "const": "sphere",
                        "title": "Shape Type",
                        "default": "sphere"
                    },
                    "radius": {
                        "type": "number",
                        "title": "Radius",
                        "description": "Radius of the sphere [mm]"
                    }
                },
                "type": "object",
                "required": [
                    "radius"
                ],
                "title": "Sphere"
            },
            "SphereSweepParameters": {
                "properties": {
                    "sweep_type": {
                        "type": "string",
                        "const": "sphere",
                        "title": "Sweep Type"
                    },
                    "radius": {
                        "type": "number",
                        "title": "Radius",
                        "description": "Radius [stage_units]",
                        "default": 10.0
                    },
                    "position": {
                        "items": {
                            "type": "number"
                        },
                        "type": "array",
                        "maxItems": 3,
                        "minItems": 3,
                        "title": "Position",
                        "description": "Position of the sphere sweep [stage_units]",
                        "default": [
                            0.0,
                            0.0,
                            0.0
                        ]
                    },
                    "direction": {
                        "items": {
                            "type": "number"
                        },
                        "type": "array",
                        "maxItems": 3,
                        "minItems": 3,
                        "title": "Direction",
                        "description": "Direction of the sphere sweep",
                        "default": [
                            0.0,
                            0.0,
                            -1.0
                        ]
                    },
                    "max_distance": {
                        "type": "number",
                        "title": "Max Distance",
                        "description": "Sweep distance [stage_units]",
                        "default": 0.0
                    }
                },
                "type": "object",
                "required": [
                    "sweep_type"
                ],
                "title": "SphereSweepParameters"
            },
            "StageMotionGroupsResponse": {
                "items": {
                    "type": "string"
                },
                "type": "array",
                "title": "StageMotionGroupsResponse"
            },
            "StageUnits": {
                "properties": {
                    "meters_per_unit": {
                        "type": "number",
                        "title": "Meters Per Unit",
                        "description": "Unit for length (m/unit) e.g 10cm = 0.01",
                        "default": 1.0
                    }
                },
                "type": "object",
                "title": "StageUnits"
            },
            "TCPSource": {
                "properties": {
                    "name": {
                        "type": "string",
                        "title": "Name"
                    },
                    "prim_path": {
                        "type": "string",
                        "title": "Prim Path"
                    },
                    "value": {
                        "$ref": "#/components/schemas/WSPose"
                    }
                },
                "type": "object",
                "required": [
                    "name",
                    "prim_path",
                    "value"
                ],
                "title": "TCPSource"
            },
            "TrajectoryData": {
                "properties": {
                    "name": {
                        "type": "string",
                        "title": "Name",
                        "description": "Name of the trajectory to create",
                        "default": "triangle_example"
                    },
                    "parent_prim_path": {
                        "type": "string",
                        "title": "Parent Prim Path",
                        "description": "Parent prim path where the trajectories have to be created",
                        "default": "/World"
                    },
                    "poses": {
                        "items": {
                            "items": {
                                "type": "number"
                            },
                            "type": "array"
                        },
                        "type": "array",
                        "title": "Poses",
                        "description": "List of cartesian poses to traverse (example: colored triangle)",
                        "default": [
                            [
                                -112,
                                -400,
                                523,
                                0,
                                0,
                                0
                            ],
                            [
                                500,
                                212,
                                236,
                                0,
                                0,
                                0
                            ],
                            [
                                -276,
                                586,
                                530,
                                0,
                                0,
                                0
                            ],
                            [
                                -112,
                                -400,
                                523,
                                0,
                                0,
                                0
                            ]
                        ]
                    },
                    "options": {
                        "$ref": "#/components/schemas/TrajectoryOptions",
                        "description": "Additional options for the trajectory",
                        "example": {
                            "color": [
                                [
                                    206,
                                    0,
                                    88
                                ],
                                [
                                    144,
                                    59,
                                    128
                                ],
                                [
                                    83,
                                    118,
                                    167
                                ]
                            ],
                            "width": [
                                10.0,
                                30.0,
                                10.0
                            ]
                        }
                    }
                },
                "type": "object",
                "title": "TrajectoryData"
            },
            "TrajectoryMarker": {
                "properties": {
                    "prim": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/GizmoPrim"
                            },
                            {
                                "$ref": "#/components/schemas/CustomPrim"
                            }
                        ],
                        "title": "Prim",
                        "discriminator": {
                            "propertyName": "type",
                            "mapping": {
                                "custom": "#/components/schemas/CustomPrim",
                                "gizmo": "#/components/schemas/GizmoPrim"
                            }
                        }
                    },
                    "poses": {
                        "items": {
                            "items": {
                                "type": "number"
                            },
                            "type": "array"
                        },
                        "type": "array",
                        "title": "Poses",
                        "description": "List of cartesian poses to places markers at (example: triangle corners)",
                        "default": [
                            [
                                -112,
                                -400,
                                523,
                                0,
                                0,
                                0
                            ],
                            [
                                500,
                                212,
                                236,
                                0,
                                0,
                                0
                            ],
                            [
                                -276,
                                586,
                                530,
                                0,
                                0,
                                0
                            ]
                        ]
                    }
                },
                "type": "object",
                "required": [
                    "prim"
                ],
                "title": "TrajectoryMarker"
            },
            "TrajectoryObject": {
                "properties": {
                    "name": {
                        "type": "string",
                        "title": "Name",
                        "description": "Name of the trajectory"
                    },
                    "path": {
                        "type": "string",
                        "title": "Path",
                        "description": "Prim path of the trajectory"
                    },
                    "poses": {
                        "items": {
                            "items": {
                                "type": "number"
                            },
                            "type": "array"
                        },
                        "type": "array",
                        "title": "Poses",
                        "description": "List of cartesian poses to traverse"
                    },
                    "options": {
                        "$ref": "#/components/schemas/TrajectoryOptions",
                        "description": "Additional options for the trajectory"
                    }
                },
                "type": "object",
                "required": [
                    "name",
                    "path",
                    "poses",
                    "options"
                ],
                "title": "TrajectoryObject"
            },
            "TrajectoryOptions": {
                "properties": {
                    "color": {
                        "anyOf": [
                            {
                                "prefixItems": [
                                    {
                                        "type": "integer"
                                    },
                                    {
                                        "type": "integer"
                                    },
                                    {
                                        "type": "integer"
                                    }
                                ],
                                "type": "array",
                                "maxItems": 3,
                                "minItems": 3
                            },
                            {
                                "items": {
                                    "prefixItems": [
                                        {
                                            "type": "integer"
                                        },
                                        {
                                            "type": "integer"
                                        },
                                        {
                                            "type": "integer"
                                        }
                                    ],
                                    "type": "array",
                                    "maxItems": 3,
                                    "minItems": 3
                                },
                                "type": "array"
                            }
                        ],
                        "title": "Color",
                        "description": "Color of the trajectory. Either a single RGB tuple for uniform color, or a list of RGB tuples for per-segment colors",
                        "default": [
                            [
                                206,
                                0,
                                88
                            ],
                            [
                                144,
                                59,
                                128
                            ],
                            [
                                83,
                                118,
                                167
                            ]
                        ],
                        "example": [
                            [
                                206,
                                0,
                                88
                            ],
                            [
                                144,
                                59,
                                128
                            ],
                            [
                                83,
                                118,
                                167
                            ]
                        ]
                    },
                    "width": {
                        "anyOf": [
                            {
                                "type": "number"
                            },
                            {
                                "items": {
                                    "type": "number"
                                },
                                "type": "array"
                            }
                        ],
                        "title": "Width",
                        "description": "Width of the trajectory in mm. Either a single value for uniform width, or a list of values for per-segment widths",
                        "default": [
                            10.0,
                            30.0,
                            10.0
                        ],
                        "example": [
                            10.0,
                            30.0,
                            10.0
                        ]
                    }
                },
                "type": "object",
                "title": "TrajectoryOptions"
            },
            "TreeSweepParameters": {
                "properties": {
                    "sweep_type": {
                        "type": "string",
                        "const": "tree",
                        "title": "Sweep Type"
                    },
                    "base_prim_path": {
                        "type": "string",
                        "title": "Base Prim Path",
                        "description": "Base prim path to perform the tree sweep from",
                        "default": "/World"
                    }
                },
                "type": "object",
                "required": [
                    "sweep_type"
                ],
                "title": "TreeSweepParameters"
            },
            "UsdStageModel": {
                "properties": {
                    "uri": {
                        "type": "string",
                        "title": "USD stage to open",
                        "description": "USD Stage to open"
                    }
                },
                "type": "object",
                "required": [
                    "uri"
                ],
                "title": "UsdStageModel"
            },
            "ValidationError": {
                "properties": {
                    "loc": {
                        "items": {
                            "anyOf": [
                                {
                                    "type": "string"
                                },
                                {
                                    "type": "integer"
                                }
                            ]
                        },
                        "type": "array",
                        "title": "Location"
                    },
                    "msg": {
                        "type": "string",
                        "title": "Message"
                    },
                    "type": {
                        "type": "string",
                        "title": "Error Type"
                    }
                },
                "type": "object",
                "required": [
                    "loc",
                    "msg",
                    "type"
                ],
                "title": "ValidationError"
            },
            "WSPose": {
                "properties": {
                    "pose": {
                        "items": {
                            "type": "number"
                        },
                        "type": "array",
                        "maxItems": 6,
                        "minItems": 6,
                        "title": "Pose",
                        "description": "Pose in rotation vector format (WS)",
                        "default": [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ]
                    }
                },
                "type": "object",
                "title": "WSPose"
            }
        }
    }
}