{"title": "DummyStage", "properties": {"axis_inverted": {"title": "axis_inverted", "type": "object", "forms": [{"href": "/stage/axis_inverted", "op": ["readproperty"]}]}, "axis_names": {"description": "The names of the stage's axes, in order.", "title": "The names of the stage's axes, in order.", "type": "array", "items": {"type": "string"}, "forms": [{"href": "/stage/axis_names", "op": ["readproperty"]}]}, "moving": {"title": "moving", "type": "boolean", "forms": [{"href": "/stage/moving", "op": ["readproperty"]}]}, "position": {"description": "Current position of the stage.", "title": "Current position of the stage.", "type": "object", "forms": [{"href": "/stage/position", "op": ["readproperty"]}]}}, "actions": {"get_xyz_position": {"description": ":raises KeyError: if this stage does not have axes named \"x\", \"y\", and \"z\".\n\nThis method provides the interface expected by the camera_stage_mapping.", "title": "Return a tuple containing (x, y, z) position.", "forms": [{"href": "/stage/get_xyz_position", "op": ["invokeaction"]}], "input": {"description": "Represent the input of an action that never takes parameters.\n\nThis may be either an empty dictionary or ``None``.", "title": "get_xyz_position_input", "oneOf": [{"description": "A model representing an object that must have no keys.", "title": "StrictEmptyObject", "type": "object", "properties": {}}, {"type": "null"}]}, "output": {"title": "get_xyz_position_output", "type": "array", "items": [{"type": "integer"}, {"type": "integer"}, {"type": "integer"}], "maxItems": 3, "minItems": 3}}, "invert_axis_direction": {"description": ":param axis: The axis name (x, y or z) to invert.\n        ", "title": "Invert the direction setting of the given axis.", "forms": [{"href": "/stage/invert_axis_direction", "op": ["invokeaction"]}], "input": {"title": "invert_axis_direction_input", "type": "object", "properties": {"axis": {"title": "Axis", "enum": ["x", "y", "z"], "type": "string"}}, "required": ["axis"]}, "output": {"title": "invert_axis_direction_output"}}, "move_absolute": {"description": "Make an absolute move. Keyword arguments should be axis names.", "title": "Make an absolute move. Keyword arguments should be axis names.", "forms": [{"href": "/stage/move_absolute", "op": ["invokeaction"]}], "input": {"title": "move_absolute_input", "type": "object", "properties": {"block_cancellation": {"title": "Block Cancellation", "default": false, "type": "boolean"}}}, "output": {"title": "move_absolute_output"}}, "move_relative": {"description": "Make a relative move. Keyword arguments should be axis names.", "title": "Make a relative move. Keyword arguments should be axis names.", "forms": [{"href": "/stage/move_relative", "op": ["invokeaction"]}], "input": {"title": "move_relative_input", "type": "object", "properties": {"block_cancellation": {"title": "Block Cancellation", "default": false, "type": "boolean"}}}, "output": {"title": "move_relative_output"}}, "move_to_xyz_position": {"description": ":param cancel: A cancel hook for cancelling the move. This dependency should be\n    injected automatically by LabThings-FastAPI\n:param xyz_pos: The (x, y, z) position to move to.\n\n:raises KeyError: if this stage does not have axes named \"x\", \"y\", and \"z\".\n\nThis method provides the interface expected by the camera_stage_mapping.", "title": "Move to the location specified by an (x, y, z) tuple.", "forms": [{"href": "/stage/move_to_xyz_position", "op": ["invokeaction"]}], "input": {"title": "move_to_xyz_position_input", "type": "object", "properties": {"xyz_pos": {"title": "Xyz Pos", "type": "array", "items": [{"type": "integer"}, {"type": "integer"}, {"type": "integer"}], "maxItems": 3, "minItems": 3}}, "required": ["xyz_pos"]}, "output": {"title": "move_to_xyz_position_output", "type": "null"}}, "set_zero_position": {"description": "This action does not move the stage, but resets the position to zero.\nIt is intended for use after manually or automatically recentring the\nstage.", "title": "Make the current position zero in all axes.", "forms": [{"href": "/stage/set_zero_position", "op": ["invokeaction"]}], "input": {"description": "Represent the input of an action that never takes parameters.\n\nThis may be either an empty dictionary or ``None``.", "title": "set_zero_position_input", "oneOf": [{"description": "A model representing an object that must have no keys.", "title": "StrictEmptyObject", "type": "object", "properties": {}}, {"type": "null"}]}, "output": {"title": "set_zero_position_output"}}}, "base": "http://testserver/", "securityDefinitions": {"no_security": {"description": "No security", "scheme": "nosec"}}, "security": "no_security", "@context": "https://www.w3.org/2022/wot/td/v1.1"}