Script¶
The top-level T-code script and metadata structures. A TCodeScript
is a container for a list of T-code commands along with its Metadata.
Documentation¶
TCode script schemas: top-level script and metadata.
- pydantic model tcode_api.schemas.script.Metadata¶
TCode script metadata.
Show JSON schema
{ "title": "Metadata", "description": "TCode script metadata.", "type": "object", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "Metadata", "default": "Metadata", "title": "Type", "type": "string" }, "name": { "description": "Script name", "title": "Name", "type": "string" }, "timestamp": { "description": "ISO 8601 timestamp of when the script was generated.", "title": "Timestamp", "type": "string" }, "tcode_api_version": { "description": "tcode-api version used to generate this script.", "title": "Tcode Api Version", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Script description", "title": "Description" } }, "required": [ "name", "timestamp", "tcode_api_version" ] }
- Config:
strict: bool = True
extra: str = ignore
- Fields:
description (str | None)name (str)schema_version (Literal[1])tcode_api_version (str)timestamp (str)type (Literal['Metadata'])
-
field type:
Literal['Metadata'] = 'Metadata'¶
-
field schema_version:
Literal[1] = 1¶
-
field name:
str[Required]¶ Script name
-
field timestamp:
str[Required]¶ ISO 8601 timestamp of when the script was generated.
-
field tcode_api_version:
str[Required]¶ tcode-api version used to generate this script.
-
field description:
str|None= None¶ Script description
- pydantic model tcode_api.schemas.script.TCodeScript¶
Structure of a TCode script.
Show JSON schema
{ "title": "TCodeScript", "description": "Structure of a TCode script.", "type": "object", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "TCodeScript", "default": "TCodeScript", "title": "Type", "type": "string" }, "metadata": { "$ref": "#/$defs/Metadata", "description": "Script metadata, significantly includeing the tcode-api version used in generation." }, "commands": { "description": "TCode commands in order of execution.", "items": { "description": "Union type of all valid TCode commands.", "discriminator": { "mapping": { "ADD_LABWARE": "#/$defs/ADD_LABWARE", "ADD_PIPETTE_TIP_GROUP": "#/$defs/ADD_PIPETTE_TIP_GROUP", "ADD_ROBOT": "#/$defs/ADD_ROBOT", "ADD_TOOL": "#/$defs/ADD_TOOL", "ASPIRATE": "#/$defs/ASPIRATE", "CALIBRATE_LABWARE_HEIGHT": "#/$defs/CALIBRATE_LABWARE_HEIGHT", "CALIBRATE_LABWARE_HOLDER": "#/$defs/CALIBRATE_LABWARE_HOLDER", "CALIBRATE_LABWARE_WELL_DEPTH": "#/$defs/CALIBRATE_LABWARE_WELL_DEPTH", "CALIBRATE_TOOL": "#/$defs/CALIBRATE_TOOL", "COMMENT": "#/$defs/COMMENT", "CREATE_LABWARE": "#/$defs/CREATE_LABWARE", "DELETE_LABWARE": "#/$defs/DELETE_LABWARE", "DISCARD_PIPETTE_TIP_GROUP": "#/$defs/DISCARD_PIPETTE_TIP_GROUP", "DISPENSE": "#/$defs/DISPENSE", "MOVE_GRIPPER": "#/$defs/MOVE_GRIPPER", "MOVE_TO_JOINT_POSE": "#/$defs/MOVE_TO_JOINT_POSE", "MOVE_TO_LOCATION": "#/$defs/MOVE_TO_LOCATION", "PAUSE": "#/$defs/PAUSE", "PICK_UP_LABWARE": "#/$defs/PICK_UP_LABWARE", "PICK_UP_PIPETTE_TIP": "#/$defs/PICK_UP_PIPETTE_TIP", "PUT_DOWN_LABWARE": "#/$defs/PUT_DOWN_LABWARE", "PUT_DOWN_PIPETTE_TIP": "#/$defs/PUT_DOWN_PIPETTE_TIP", "REMOVE_LABWARE_LID": "#/$defs/REMOVE_LABWARE_LID", "REPLACE_LABWARE_LID": "#/$defs/REPLACE_LABWARE_LID", "RETRIEVE_PIPETTE_TIP_GROUP": "#/$defs/RETRIEVE_PIPETTE_TIP_GROUP", "RETRIEVE_TOOL": "#/$defs/RETRIEVE_TOOL", "RETURN_PIPETTE_TIP_GROUP": "#/$defs/RETURN_PIPETTE_TIP_GROUP", "RETURN_TOOL": "#/$defs/RETURN_TOOL", "SEND_WEBHOOK": "#/$defs/SEND_WEBHOOK", "SWAP_TO_TOOL": "#/$defs/SWAP_TO_TOOL", "WAIT": "#/$defs/WAIT" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/$defs/ASPIRATE" }, { "$ref": "#/$defs/ADD_LABWARE" }, { "$ref": "#/$defs/ADD_PIPETTE_TIP_GROUP" }, { "$ref": "#/$defs/ADD_ROBOT" }, { "$ref": "#/$defs/ADD_TOOL" }, { "$ref": "#/$defs/CALIBRATE_LABWARE_WELL_DEPTH" }, { "$ref": "#/$defs/CALIBRATE_LABWARE_HEIGHT" }, { "$ref": "#/$defs/CALIBRATE_LABWARE_HOLDER" }, { "$ref": "#/$defs/CALIBRATE_TOOL" }, { "$ref": "#/$defs/COMMENT" }, { "$ref": "#/$defs/CREATE_LABWARE" }, { "$ref": "#/$defs/DELETE_LABWARE" }, { "$ref": "#/$defs/DISCARD_PIPETTE_TIP_GROUP" }, { "$ref": "#/$defs/DISPENSE" }, { "$ref": "#/$defs/MOVE_GRIPPER" }, { "$ref": "#/$defs/MOVE_TO_LOCATION" }, { "$ref": "#/$defs/MOVE_TO_JOINT_POSE" }, { "$ref": "#/$defs/PAUSE" }, { "$ref": "#/$defs/PICK_UP_LABWARE" }, { "$ref": "#/$defs/PICK_UP_PIPETTE_TIP" }, { "$ref": "#/$defs/PUT_DOWN_LABWARE" }, { "$ref": "#/$defs/PUT_DOWN_PIPETTE_TIP" }, { "$ref": "#/$defs/REMOVE_LABWARE_LID" }, { "$ref": "#/$defs/REPLACE_LABWARE_LID" }, { "$ref": "#/$defs/RETRIEVE_PIPETTE_TIP_GROUP" }, { "$ref": "#/$defs/RETRIEVE_TOOL" }, { "$ref": "#/$defs/RETURN_PIPETTE_TIP_GROUP" }, { "$ref": "#/$defs/RETURN_TOOL" }, { "$ref": "#/$defs/SWAP_TO_TOOL" }, { "$ref": "#/$defs/SEND_WEBHOOK" }, { "$ref": "#/$defs/WAIT" } ] }, "title": "Commands", "type": "array" } }, "$defs": { "ADD_LABWARE": { "description": "Find a matching labware on the fleet and assign it the given id.\n\n:raises ValidatorError: ``ValidatorErrorCode.ID_EXISTS`` if ``id`` is already registered to\n a labware.", "properties": { "schema_version": { "const": 3, "default": 3, "title": "Schema Version", "type": "integer" }, "type": { "const": "ADD_LABWARE", "default": "ADD_LABWARE", "title": "Type", "type": "string" }, "id": { "description": "Identifier to assign to the resolved labware. This id is used in subsequent commands to reference this labware.", "title": "Id", "type": "string" }, "descriptor": { "description": "Minimal descriptor of the desired labware; resolved on the fleet.", "discriminator": { "mapping": { "Lid": "#/$defs/LidDescriptor", "PipetteTipBox": "#/$defs/PipetteTipBoxDescriptor", "Trash": "#/$defs/TrashDescriptor", "TubeHolder": "#/$defs/TubeHolderDescriptor", "WellPlate": "#/$defs/WellPlateDescriptor" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/$defs/LidDescriptor" }, { "$ref": "#/$defs/PipetteTipBoxDescriptor" }, { "$ref": "#/$defs/TrashDescriptor" }, { "$ref": "#/$defs/TubeHolderDescriptor" }, { "$ref": "#/$defs/WellPlateDescriptor" } ], "title": "Descriptor" }, "lid_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional identifier to assign to a lid associated with the labware. If provided, the labware descriptor must indicate that the labware has a lid.", "title": "Lid Id" } }, "required": [ "id", "descriptor" ], "title": "ADD_LABWARE", "type": "object" }, "ADD_PIPETTE_TIP_GROUP": { "description": "Find a matching group of pipette tips on the fleet and assign it the given id.\n\n:raises ValidatorError: ``ValidatorErrorCode.ID_EXISTS`` if ``id`` is already registered to\n a pipette tip group.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "ADD_PIPETTE_TIP_GROUP", "default": "ADD_PIPETTE_TIP_GROUP", "title": "Type", "type": "string" }, "id": { "description": "Identifier to assign to the resolved pipette tip group. This id is used in subsequent commands to reference this pipette tip group.", "title": "Id", "type": "string" }, "descriptor": { "$ref": "#/$defs/PipetteTipGroupDescriptor", "description": "Minimal descriptor of the desired pipette tip group; resolved on the fleet." } }, "required": [ "id", "descriptor" ], "title": "ADD_PIPETTE_TIP_GROUP", "type": "object" }, "ADD_ROBOT": { "description": "Find a matching robot on the fleet and assign it the given id.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "ADD_ROBOT", "default": "ADD_ROBOT", "title": "Type", "type": "string" }, "id": { "description": "Identifier to assign to the resolved robot. This id is used in subsequent commands to reference this robot.", "title": "Id", "type": "string" }, "descriptor": { "$ref": "#/$defs/RobotDescriptor", "description": "Minimal descriptor of the desired robot; resolved on the fleet." } }, "required": [ "id", "descriptor" ], "title": "ADD_ROBOT", "type": "object" }, "ADD_TOOL": { "description": "Find a matching tool on the fleet and assign it the given id.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "ADD_TOOL", "default": "ADD_TOOL", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "id": { "description": "Identifier to assign to the resolved tool. This id is used in subsequent commands to reference this tool.", "title": "Id", "type": "string" }, "descriptor": { "description": "Minimal descriptor of the desired tool; resolved on the fleet.", "discriminator": { "mapping": { "EightChannelPipette": "#/$defs/EightChannelPipetteDescriptor", "Gripper": "#/$defs/GripperDescriptor", "Probe": "#/$defs/ProbeDescriptor", "SingleChannelPipette": "#/$defs/SingleChannelPipetteDescriptor" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/$defs/SingleChannelPipetteDescriptor" }, { "$ref": "#/$defs/EightChannelPipetteDescriptor" }, { "$ref": "#/$defs/ProbeDescriptor" }, { "$ref": "#/$defs/GripperDescriptor" } ], "title": "Descriptor" } }, "required": [ "robot_id", "id", "descriptor" ], "title": "ADD_TOOL", "type": "object" }, "ASPIRATE": { "description": "Aspirate a given fluid volume at a given speed into the target robot's pipette.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "ASPIRATE", "default": "ASPIRATE", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "volume": { "$ref": "#/$defs/ValueWithUnits", "description": "Aspiration volume; expects volume units." }, "speed": { "$ref": "#/$defs/ValueWithUnits", "description": "Aspiration speed; expects volume/time units." } }, "required": [ "robot_id", "volume", "speed" ], "title": "ASPIRATE", "type": "object" }, "AxisAlignedRectangleDescription": { "description": "Description of an axis-aligned rectangle.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "AxisAlignedRectangle", "default": "AxisAlignedRectangle", "title": "Type", "type": "string" }, "x_length": { "$ref": "#/$defs/ValueWithUnits", "description": "The length of the rectangle along the X-axis of the parent object's coordinate system. expects length units." }, "y_length": { "$ref": "#/$defs/ValueWithUnits", "description": "The length of the rectangle along the Y-axis of the parent object's coordinate system. expects length units." } }, "required": [ "x_length", "y_length" ], "title": "AxisAlignedRectangleDescription", "type": "object" }, "AxisAlignedRectangleDescriptor": { "description": ":class:``AxisAlignedRectangleDescription`` with optional parameters.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "AxisAlignedRectangle", "default": "AxisAlignedRectangle", "title": "Type", "type": "string" }, "x_length": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The length of the rectangle along the X-axis of the parent object's coordinate system. expects length units." }, { "type": "null" } ], "default": null }, "y_length": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The length of the rectangle along the Y-axis of the parent object's coordinate system. expects length units." }, { "type": "null" } ], "default": null } }, "title": "AxisAlignedRectangleDescriptor", "type": "object" }, "CALIBRATE_LABWARE_HEIGHT": { "description": "Tune the height of a target labware by probing.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "CALIBRATE_LABWARE_HEIGHT", "default": "CALIBRATE_LABWARE_HEIGHT", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "location": { "anyOf": [ { "$ref": "#/$defs/LocationAsLabwareIndex" }, { "$ref": "#/$defs/LocationRelativeToLabware" } ], "description": "Location specifying which labware and where on the labware to probe.", "title": "Location" }, "persistent": { "description": "When true, all labware of the same type and brand will be modified. Otherwise, only the current in-place transform is applied.", "title": "Persistent", "type": "boolean" } }, "required": [ "robot_id", "location", "persistent" ], "title": "CALIBRATE_LABWARE_HEIGHT", "type": "object" }, "CALIBRATE_LABWARE_HOLDER": { "description": "Calibrate the position of a target labware holder (deck slot) on the target robot by probing\nor by teaching.\n\n- If a probe is held by the robot, the calibration will be performed by probing.\n- If a pipette is held by the robot, the calibration will be performed by teaching.\n - Only X, Y, and rotation around Z will be calibrated.\n - A tip box must be registered in the target holder\n\nThe pipette teach procedure is as follows:\n- Single Channel Pipette:\n - Move the pipette manifold to the center of the A1 tip location\n - Confirm via the UI that the pipette is in position\n - Move the pipette manifold to the center of the H12 tip location\n - Confirm via the UI that the pipette is in position\n- 8-Channel Pipette:\n - Move the pipette manifold to the center of the A1 tip location\n - Confirm via the UI that the pipette is in position\n - Move the pipette manifold to the center of the A12 tip location\n - Confirm via the UI that the pipette is in position\n\nNOTE: The UI confirmation steps are done via a websocket connection to the Tcode server\n\n:raises ValidatorError: ``ValidatorErrorCode.ID_NOT_FOUND`` if any of the following are true:\n * ``robot_id`` is not registered to a robot\n * The labware holder id referenced in ``location`` is not registered on the target robot\n\n:raises ValidatorError: ``ValidatorErrorCode.UNEXPECTED_TOOL`` if the targeted robot has a tool\n mounted that is not compatible with probing or teaching.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "CALIBRATE_LABWARE_HOLDER", "default": "CALIBRATE_LABWARE_HOLDER", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "location": { "$ref": "#/$defs/LocationAsLabwareHolder", "description": "The labware holder (probably a deck slot) to calibrate." } }, "required": [ "robot_id", "location" ], "title": "CALIBRATE_LABWARE_HOLDER", "type": "object" }, "CALIBRATE_LABWARE_WELL_DEPTH": { "description": "Tune the depth of a target labware's well by probing.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "CALIBRATE_LABWARE_WELL_DEPTH", "default": "CALIBRATE_LABWARE_WELL_DEPTH", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "location": { "anyOf": [ { "$ref": "#/$defs/LocationAsLabwareIndex" }, { "$ref": "#/$defs/LocationRelativeToLabware" } ], "description": "Location specifying which labware and where on the labware to probe.", "title": "Location" }, "persistent": { "description": "Whether calibration should persist beyond the current session.", "title": "Persistent", "type": "boolean" }, "modify_all_wells": { "default": true, "description": "If true, modify the depths of all wells; otherwise only the probed well.", "title": "Modify All Wells", "type": "boolean" } }, "required": [ "robot_id", "location", "persistent" ], "title": "CALIBRATE_LABWARE_WELL_DEPTH", "type": "object" }, "CALIBRATE_TOOL": { "description": "Calibrate the target robot's currently held tool for probing.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "CALIBRATE_TOOL", "default": "CALIBRATE_TOOL", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "z_only": { "description": "When true, calibrate only for z-axis probing. When false, calibrate x, y, and z.", "title": "Z Only", "type": "boolean" }, "persistent": { "default": false, "description": "Whether calibration should persist beyond the current session.", "title": "Persistent", "type": "boolean" } }, "required": [ "robot_id", "z_only" ], "title": "CALIBRATE_TOOL", "type": "object" }, "COMMENT": { "description": "A human-readable comment in the TCode script.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "COMMENT", "default": "COMMENT", "title": "Type", "type": "string" }, "text": { "description": "The comment text.", "title": "Text", "type": "string" } }, "required": [ "text" ], "title": "COMMENT", "type": "object" }, "CREATE_LABWARE": { "description": "Create a new physical labware on the targeted robot's deck.", "properties": { "schema_version": { "const": 3, "default": 3, "title": "Schema Version", "type": "integer" }, "type": { "const": "CREATE_LABWARE", "default": "CREATE_LABWARE", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "description": { "description": "Full description of the labware to create.", "discriminator": { "mapping": { "Lid": "#/$defs/LidDescription", "PipetteTipBox": "#/$defs/PipetteTipBoxDescription", "Trash": "#/$defs/TrashDescription", "TubeHolder": "#/$defs/TubeHolderDescription", "WellPlate": "#/$defs/WellPlateDescription" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/$defs/LidDescription" }, { "$ref": "#/$defs/PipetteTipBoxDescription" }, { "$ref": "#/$defs/TrashDescription" }, { "$ref": "#/$defs/TubeHolderDescription" }, { "$ref": "#/$defs/WellPlateDescription" } ], "title": "Description" }, "holder": { "description": "Holder in which to place the new labware.", "discriminator": { "mapping": { "LabwareHolderName": "#/$defs/LabwareHolderName", "LabwareId": "#/$defs/LabwareId" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/$defs/LabwareHolderName" }, { "$ref": "#/$defs/LabwareId" } ], "title": "Holder" } }, "required": [ "robot_id", "description", "holder" ], "title": "CREATE_LABWARE", "type": "object" }, "CircleDescription": { "description": "Description of a circle.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "Circle", "default": "Circle", "title": "Type", "type": "string" }, "diameter": { "$ref": "#/$defs/ValueWithUnits", "description": "Maximum distance across the circle. expects length units" } }, "required": [ "diameter" ], "title": "CircleDescription", "type": "object" }, "CircleDescriptor": { "description": "CircleDescription with optional parameters.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "Circle", "default": "Circle", "title": "Type", "type": "string" }, "diameter": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "Maximum distance across the circle. expects length units" }, { "type": "null" } ], "default": null } }, "title": "CircleDescriptor", "type": "object" }, "ConicalBottomDescription": { "description": "Description of a conical bottom well.\n\n:note: It is assumed that the conical portion of the well comes to a point at the bottom of the well", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "Conical", "default": "Conical", "title": "Type", "type": "string" }, "offset": { "$ref": "#/$defs/ValueWithUnits", "description": "The distance from the base to tip of the conical portion of the well. expects length units" } }, "required": [ "offset" ], "title": "ConicalBottomDescription", "type": "object" }, "ConicalBottomDescriptor": { "description": ":class:``ConicalBottomDescription`` with optional parameters.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "Conical", "default": "Conical", "title": "Type", "type": "string" }, "offset": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The distance from the base to tip of the conical portion of the well. expects length units" }, { "type": "null" } ], "default": null } }, "title": "ConicalBottomDescriptor", "type": "object" }, "DELETE_LABWARE": { "description": "Physically remove a labware from the robot's deck.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "DELETE_LABWARE", "default": "DELETE_LABWARE", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "labware_id": { "description": "Identifier for a target piece of ANSI-SLAS-compatible labware, assigned by previous :class:``ADD_LABWARE`` command.", "title": "Labware Id", "type": "string" } }, "required": [ "robot_id", "labware_id" ], "title": "DELETE_LABWARE", "type": "object" }, "DISCARD_PIPETTE_TIP_GROUP": { "description": "Dispose of the currently held pipette tip group.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "DISCARD_PIPETTE_TIP_GROUP", "default": "DISCARD_PIPETTE_TIP_GROUP", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" } }, "required": [ "robot_id" ], "title": "DISCARD_PIPETTE_TIP_GROUP", "type": "object" }, "DISPENSE": { "description": "Dispense a given fluid volume at a given speed.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "DISPENSE", "default": "DISPENSE", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "volume": { "$ref": "#/$defs/ValueWithUnits", "description": "Dispense volume; expects volume units." }, "speed": { "$ref": "#/$defs/ValueWithUnits", "description": "Dispense speed; expects volume/time units." } }, "required": [ "robot_id", "volume", "speed" ], "title": "DISPENSE", "type": "object" }, "EightChannelPipetteDescriptor": { "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "serial_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional serial number - allows unique identification of a robot or tool.", "title": "Serial Number" }, "min_volume": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits" }, { "type": "null" } ], "default": null, "description": "Minimum volume that the pipette can handle while maintianing promised tolerances. expects volume units (e.g. ul)." }, "max_volume": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits" }, { "type": "null" } ], "default": null, "description": "Maximum volume that the pipette can hold (spec, not reality). expects volume units (e.g. ul)." }, "max_speed": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits" }, { "type": "null" } ], "default": null, "description": "Maximum speed that the pipette can move fluid; expects volume per time units (e.g. ul/s)." }, "type": { "const": "EightChannelPipette", "default": "EightChannelPipette", "title": "Type", "type": "string" } }, "title": "EightChannelPipetteDescriptor", "type": "object" }, "FlatBottomDescription": { "description": ":class:``FlatBottomDescription`` with optional paramters.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "Flat", "default": "Flat", "title": "Type", "type": "string" } }, "title": "FlatBottomDescription", "type": "object" }, "FlatBottomDescriptor": { "description": "Descriptor for a flat bottom well.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "Flat", "default": "Flat", "title": "Type", "type": "string" } }, "title": "FlatBottomDescriptor", "type": "object" }, "GridDescription": { "description": "Description of a grid layout.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "Grid", "default": "Grid", "title": "Type", "type": "string" }, "row_count": { "description": "The number of rows in the grid.", "exclusiveMinimum": 0, "title": "Row Count", "type": "integer" }, "column_count": { "description": "The number of columns in the grid.", "exclusiveMinimum": 0, "title": "Column Count", "type": "integer" }, "row_pitch": { "$ref": "#/$defs/ValueWithUnits", "description": "The distance between the centers of adjacent rows in the grid. Expects length units." }, "column_pitch": { "$ref": "#/$defs/ValueWithUnits", "description": "The distance between the centers of adjacent columns in the grid. Expects length units." }, "row_offset": { "$ref": "#/$defs/ValueWithUnits", "description": "The offset distance from the grid's origin to the center of its parent, measured along the row axis. Modify this value when creating labware whose well grids aren't symmetric.Expects length units." }, "column_offset": { "$ref": "#/$defs/ValueWithUnits", "description": "The offset distance from the grid's origin to the center of its parent, measured along the column axis. Modify this value when creating labware whose well grids aren't symmetric.Expects length units." } }, "required": [ "row_count", "column_count", "row_pitch", "column_pitch", "row_offset", "column_offset" ], "title": "GridDescription", "type": "object" }, "GridDescriptor": { "description": ":class:``GridDescription`` with optional parameters.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "Grid", "default": "Grid", "title": "Type", "type": "string" }, "row_count": { "anyOf": [ { "description": "The number of rows in the grid.", "exclusiveMinimum": 0, "type": "integer" }, { "type": "null" } ], "default": null, "title": "Row Count" }, "column_count": { "anyOf": [ { "description": "The number of columns in the grid.", "exclusiveMinimum": 0, "type": "integer" }, { "type": "null" } ], "default": null, "title": "Column Count" }, "row_pitch": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The distance between the centers of adjacent rows in the grid. Expects length units." }, { "type": "null" } ], "default": null }, "column_pitch": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The distance between the centers of adjacent columns in the grid. Expects length units." }, { "type": "null" } ], "default": null }, "row_offset": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The offset distance from the grid's origin to the center of its parent, measured along the row axis. Modify this value when creating labware whose well grids aren't symmetric.Expects length units." }, { "type": "null" } ], "default": null }, "column_offset": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The offset distance from the grid's origin to the center of its parent, measured along the column axis. Modify this value when creating labware whose well grids aren't symmetric.Expects length units." }, { "type": "null" } ], "default": null } }, "title": "GridDescriptor", "type": "object" }, "GripperDescriptor": { "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "serial_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional serial number - allows unique identification of a robot or tool.", "title": "Serial Number" }, "type": { "const": "Gripper", "default": "Gripper", "title": "Type", "type": "string" } }, "title": "GripperDescriptor", "type": "object" }, "LabwareHolderDescriptor": { "description": "Descriptor for an entity that can hold labware.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "LabwareHolder", "default": "LabwareHolder", "title": "Type", "type": "string" } }, "title": "LabwareHolderDescriptor", "type": "object" }, "LabwareHolderName": { "description": "LabwareHolder specified by name and target robot.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "LabwareHolderName", "default": "LabwareHolderName", "title": "Type", "type": "string" }, "robot_id": { "description": "TCode-assigned robot id. Assigned previously with :class:``ADD_ROBOT`` command. ", "title": "Robot Id", "type": "string" }, "name": { "description": "Name of the labware holder, as defined in the robot's configuration. Most often, this will be a deck slot in the format \"DeckSlot_#\".", "title": "Name", "type": "string" } }, "required": [ "robot_id", "name" ], "title": "LabwareHolderName", "type": "object" }, "LabwareId": { "description": "LabwareHolder specifed by a TCode-assigned labware ID.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "LabwareId", "default": "LabwareId", "title": "Type", "type": "string" }, "id": { "description": "TCode ID of the labware to target, assigned previously by the :class:``ADD_LABWARE`` command.", "title": "Id", "type": "string" } }, "required": [ "id" ], "title": "LabwareId", "type": "object" }, "LidDescription": { "description": "Description of a plate lid.", "properties": { "schema_version": { "const": 3, "default": 3, "title": "Schema Version", "type": "integer" }, "tags": { "description": "List of additional string tags attached to the entity.", "items": { "type": "string" }, "title": "Tags", "type": "array" }, "named_tags": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "boolean" } ] }, "description": "Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.", "title": "Named Tags", "type": "object" }, "x_length": { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the x-axis of it's coordinate system. Expects length units." }, "y_length": { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the y-axis of it's coordinate system. Expects length units." }, "z_length": { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the z-axis of it's coordinate system. Expects length units." }, "type": { "const": "Lid", "default": "Lid", "title": "Type", "type": "string" }, "stackable": { "description": "Whether the lid supports stacking an ANSI-SLAS-compliant labware on top of it.", "title": "Stackable", "type": "boolean" } }, "required": [ "x_length", "y_length", "z_length", "stackable" ], "title": "LidDescription", "type": "object" }, "LidDescriptor": { "description": "LidDescription with optional parameters.", "properties": { "schema_version": { "const": 3, "default": 3, "title": "Schema Version", "type": "integer" }, "tags": { "description": "List of additional string tags attached to the entity.", "items": { "type": "string" }, "title": "Tags", "type": "array" }, "named_tags": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "boolean" } ] }, "description": "Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.", "title": "Named Tags", "type": "object" }, "x_length": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the x-axis of it's coordinate system. Expects length units." }, { "type": "null" } ], "default": null }, "y_length": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the y-axis of it's coordinate system. Expects length units." }, { "type": "null" } ], "default": null }, "z_length": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the z-axis of it's coordinate system. Expects length units." }, { "type": "null" } ], "default": null }, "type": { "const": "Lid", "default": "Lid", "title": "Type", "type": "string" }, "stackable": { "anyOf": [ { "description": "Whether the lid supports stacking an ANSI-SLAS-compliant labware on top of it.", "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Stackable" } }, "title": "LidDescriptor", "type": "object" }, "LocationAsLabwareHolder": { "description": "Location specified by a labware holder's name.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "LocationAsLabwareHolder", "default": "LocationAsLabwareHolder", "title": "Type", "type": "string" }, "robot_id": { "description": "ID of the robot on which the labware holder is located.", "title": "Robot Id", "type": "string" }, "labware_holder_name": { "description": "Name of the labware holder, as defined in the robot's configuration. Most often, this will be a deck slot in the format \"DeckSlot_#\".", "title": "Labware Holder Name", "type": "string" } }, "required": [ "robot_id", "labware_holder_name" ], "title": "LocationAsLabwareHolder", "type": "object" }, "LocationAsLabwareIndex": { "description": "Location specifed as a specific feature of a Labware (ex. bottom of well A1).", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "LocationAsLabwareIndex", "default": "LocationAsLabwareIndex", "title": "Type", "type": "string" }, "labware_id": { "description": "TCode ID of the labware to target, assigned previously by the :class:``ADD_LABWARE`` command.", "title": "Labware Id", "type": "string" }, "location_index": { "description": "Index into labware \"slots\". In a 96-well plate, for example, this index operates in row-major order (A1 is 0, A12 is 11, H12 is 95).", "title": "Location Index", "type": "integer" }, "well_part": { "description": "String instance of :class:``WellPartType``. Allows targeting of the top or bottom of a well selected with the ``location_index``.", "title": "Well Part", "type": "string" } }, "required": [ "labware_id", "location_index", "well_part" ], "title": "LocationAsLabwareIndex", "type": "object" }, "LocationAsNodeId": { "description": "Location specified by a node ID in the fleet's ``TransformTree``.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "LocationAsNodeId", "default": "LocationAsNodeId", "title": "Type", "type": "string" }, "node_id": { "description": "ID of the node in the fleet's ``TransformTree`` to target. This command is primarily intended for debugging, as it requires separate access to the fleet's internal ``TransformTree`` server.", "title": "Node Id", "type": "string" } }, "required": [ "node_id" ], "title": "LocationAsNodeId", "type": "object" }, "LocationRelativeToCurrentPosition": { "description": "Location specified by a transformation matrix relative to position of the robot's current control node.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "LocationRelativeToCurrentPosition", "default": "LocationRelativeToCurrentPosition", "title": "Type", "type": "string" }, "matrix": { "description": "4x4 transformation matrix represented as a list of 16 floats in row-major order. The transform is applied relative to the robot's current control node position.", "items": { "items": { "type": "number" }, "type": "array" }, "title": "Matrix", "type": "array" } }, "required": [ "matrix" ], "title": "LocationRelativeToCurrentPosition", "type": "object" }, "LocationRelativeToLabware": { "description": "Location specified by relative to a labware's..base node.\n\nThis location type is designed to define points on continuous-surface labware\n (ex. agar plates.)", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "LocationRelativeToLabware", "default": "LocationRelativeToLabware", "title": "Type", "type": "string" }, "labware_id": { "description": "TCode ID of the labware to target, assigned previously by the :class:``ADD_LABWARE`` command.", "title": "Labware Id", "type": "string" }, "matrix": { "description": "4x4 transformation matrix represented as a list of 16 floats in row-major order. The transform is applied relative to the labware's root node.", "items": { "items": { "type": "number" }, "type": "array" }, "title": "Matrix", "type": "array" } }, "required": [ "labware_id", "matrix" ], "title": "LocationRelativeToLabware", "type": "object" }, "LocationRelativeToRobot": { "description": "Location relative to the robot's root node.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "LocationRelativeToRobot", "default": "LocationRelativeToRobot", "title": "Type", "type": "string" }, "robot_id": { "description": "TCode ID of the robot to target, assigned previously by the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "matrix": { "description": "4x4 transformation matrix represented as a list of 16 floats in row-major order. The transform is applied relative to the robot's root node.", "items": { "items": { "type": "number" }, "type": "array" }, "title": "Matrix", "type": "array" } }, "required": [ "robot_id", "matrix" ], "title": "LocationRelativeToRobot", "type": "object" }, "LocationRelativeToWorld": { "description": "Location specified relative to the fleet's root node.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "LocationRelativeToWorld", "default": "LocationRelativeToWorld", "title": "Type", "type": "string" }, "matrix": { "description": "4x4 transformation matrix represented as a list of 16 floats in row-major order. The transform is applied relative to the fleet's root node.", "items": { "items": { "type": "number" }, "type": "array" }, "title": "Matrix", "type": "array" } }, "required": [ "matrix" ], "title": "LocationRelativeToWorld", "type": "object" }, "MOVE_GRIPPER": { "description": "Manually drive the target robot's gripper.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "MOVE_GRIPPER", "default": "MOVE_GRIPPER", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "gripper_state_type": { "description": "Gripper state type; expects a value from :class:``GripperStateType``.", "title": "Gripper State Type", "type": "integer" }, "finger_separation": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits" }, { "type": "null" } ], "default": null, "description": "Desired finger separation distance when setting width." } }, "required": [ "robot_id", "gripper_state_type" ], "title": "MOVE_GRIPPER", "type": "object" }, "MOVE_TO_JOINT_POSE": { "description": "Move the robot to the specified joint positions.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "MOVE_TO_JOINT_POSE", "default": "MOVE_TO_JOINT_POSE", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "joint_positions": { "description": "List of joint positions to move to.", "items": { "$ref": "#/$defs/ValueWithUnits" }, "title": "Joint Positions", "type": "array" }, "relative": { "description": "Whether joint positions are relative to the current pose.", "title": "Relative", "type": "boolean" } }, "required": [ "robot_id", "joint_positions", "relative" ], "title": "MOVE_TO_JOINT_POSE", "type": "object" }, "MOVE_TO_LOCATION": { "description": "Move the robot's control point to a specified location.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "MOVE_TO_LOCATION", "default": "MOVE_TO_LOCATION", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "location": { "description": "Target location to move to.", "discriminator": { "mapping": { "LocationAsLabwareHolder": "#/$defs/LocationAsLabwareHolder", "LocationAsLabwareIndex": "#/$defs/LocationAsLabwareIndex", "LocationAsNodeId": "#/$defs/LocationAsNodeId", "LocationRelativeToCurrentPosition": "#/$defs/LocationRelativeToCurrentPosition", "LocationRelativeToLabware": "#/$defs/LocationRelativeToLabware", "LocationRelativeToRobot": "#/$defs/LocationRelativeToRobot", "LocationRelativeToWorld": "#/$defs/LocationRelativeToWorld" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/$defs/LocationAsLabwareIndex" }, { "$ref": "#/$defs/LocationAsNodeId" }, { "$ref": "#/$defs/LocationRelativeToCurrentPosition" }, { "$ref": "#/$defs/LocationRelativeToLabware" }, { "$ref": "#/$defs/LocationAsLabwareHolder" }, { "$ref": "#/$defs/LocationRelativeToRobot" }, { "$ref": "#/$defs/LocationRelativeToWorld" } ], "title": "Location" }, "location_offset": { "description": "Optional offset transform applied to the target location.", "items": { "items": { "type": "number" }, "type": "array" }, "title": "Location Offset", "type": "array" }, "flange": { "anyOf": [ { "description": "Union type of all valid TCode Location specifications.", "discriminator": { "mapping": { "LocationAsLabwareHolder": "#/$defs/LocationAsLabwareHolder", "LocationAsLabwareIndex": "#/$defs/LocationAsLabwareIndex", "LocationAsNodeId": "#/$defs/LocationAsNodeId", "LocationRelativeToCurrentPosition": "#/$defs/LocationRelativeToCurrentPosition", "LocationRelativeToLabware": "#/$defs/LocationRelativeToLabware", "LocationRelativeToRobot": "#/$defs/LocationRelativeToRobot", "LocationRelativeToWorld": "#/$defs/LocationRelativeToWorld" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/$defs/LocationAsLabwareIndex" }, { "$ref": "#/$defs/LocationAsNodeId" }, { "$ref": "#/$defs/LocationRelativeToCurrentPosition" }, { "$ref": "#/$defs/LocationRelativeToLabware" }, { "$ref": "#/$defs/LocationAsLabwareHolder" }, { "$ref": "#/$defs/LocationRelativeToRobot" }, { "$ref": "#/$defs/LocationRelativeToWorld" } ] }, { "type": "null" } ], "default": null, "description": "Optional non-default control point.", "title": "Flange" }, "flange_offset": { "description": "Optional offset applied to the flange location.", "items": { "items": { "type": "number" }, "type": "array" }, "title": "Flange Offset", "type": "array" }, "path_type": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "Optional path type (:class:``PathType``).", "title": "Path Type" }, "trajectory_type": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "Optional trajectory type (:class:``TrajectoryType``).", "title": "Trajectory Type" } }, "required": [ "robot_id", "location" ], "title": "MOVE_TO_LOCATION", "type": "object" }, "Metadata": { "description": "TCode script metadata.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "Metadata", "default": "Metadata", "title": "Type", "type": "string" }, "name": { "description": "Script name", "title": "Name", "type": "string" }, "timestamp": { "description": "ISO 8601 timestamp of when the script was generated.", "title": "Timestamp", "type": "string" }, "tcode_api_version": { "description": "tcode-api version used to generate this script.", "title": "Tcode Api Version", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Script description", "title": "Description" } }, "required": [ "name", "timestamp", "tcode_api_version" ], "title": "Metadata", "type": "object" }, "PAUSE": { "description": "Pause execution until manually resumed.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "PAUSE", "default": "PAUSE", "title": "Type", "type": "string" } }, "title": "PAUSE", "type": "object" }, "PICK_UP_LABWARE": { "description": "Pick up a labware with the robot's plate gripper.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "PICK_UP_LABWARE", "default": "PICK_UP_LABWARE", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "labware_id": { "description": "Identifier for a target piece of ANSI-SLAS-compatible labware, assigned by previous :class:``ADD_LABWARE`` command.", "title": "Labware Id", "type": "string" }, "grasp_type": { "default": "UNSPECIFIED", "description": "Optional grasp type to use.", "title": "Grasp Type", "type": "string" }, "offset_transform": { "description": "Optional offset transform applied during pickup.", "items": { "items": { "type": "number" }, "type": "array" }, "title": "Offset Transform", "type": "array" } }, "required": [ "robot_id", "labware_id" ], "title": "PICK_UP_LABWARE", "type": "object" }, "PICK_UP_PIPETTE_TIP": { "description": "Pick up pipette tip(s) at the specified location.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "PICK_UP_PIPETTE_TIP", "default": "PICK_UP_PIPETTE_TIP", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "location": { "description": "Location at which to pick up the pipette tip(s).", "discriminator": { "mapping": { "LocationAsLabwareHolder": "#/$defs/LocationAsLabwareHolder", "LocationAsLabwareIndex": "#/$defs/LocationAsLabwareIndex", "LocationAsNodeId": "#/$defs/LocationAsNodeId", "LocationRelativeToCurrentPosition": "#/$defs/LocationRelativeToCurrentPosition", "LocationRelativeToLabware": "#/$defs/LocationRelativeToLabware", "LocationRelativeToRobot": "#/$defs/LocationRelativeToRobot", "LocationRelativeToWorld": "#/$defs/LocationRelativeToWorld" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/$defs/LocationAsLabwareIndex" }, { "$ref": "#/$defs/LocationAsNodeId" }, { "$ref": "#/$defs/LocationRelativeToCurrentPosition" }, { "$ref": "#/$defs/LocationRelativeToLabware" }, { "$ref": "#/$defs/LocationAsLabwareHolder" }, { "$ref": "#/$defs/LocationRelativeToRobot" }, { "$ref": "#/$defs/LocationRelativeToWorld" } ], "title": "Location" } }, "required": [ "robot_id", "location" ], "title": "PICK_UP_PIPETTE_TIP", "type": "object" }, "PUT_DOWN_LABWARE": { "description": "Put down the currently held labware.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "PUT_DOWN_LABWARE", "default": "PUT_DOWN_LABWARE", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "holder": { "description": "Holder in which to place the labware.", "discriminator": { "mapping": { "LabwareHolderName": "#/$defs/LabwareHolderName", "LabwareId": "#/$defs/LabwareId" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/$defs/LabwareHolderName" }, { "$ref": "#/$defs/LabwareId" } ], "title": "Holder" }, "offset_transform": { "description": "Optional offset transform applied during placement.", "items": { "items": { "type": "number" }, "type": "array" }, "title": "Offset Transform", "type": "array" } }, "required": [ "robot_id", "holder" ], "title": "PUT_DOWN_LABWARE", "type": "object" }, "PUT_DOWN_PIPETTE_TIP": { "description": "Put down the currently held pipette tip(s).", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "PUT_DOWN_PIPETTE_TIP", "default": "PUT_DOWN_PIPETTE_TIP", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "location": { "description": "Location at which to put down the pipette tip(s).", "discriminator": { "mapping": { "LocationAsLabwareHolder": "#/$defs/LocationAsLabwareHolder", "LocationAsLabwareIndex": "#/$defs/LocationAsLabwareIndex", "LocationAsNodeId": "#/$defs/LocationAsNodeId", "LocationRelativeToCurrentPosition": "#/$defs/LocationRelativeToCurrentPosition", "LocationRelativeToLabware": "#/$defs/LocationRelativeToLabware", "LocationRelativeToRobot": "#/$defs/LocationRelativeToRobot", "LocationRelativeToWorld": "#/$defs/LocationRelativeToWorld" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/$defs/LocationAsLabwareIndex" }, { "$ref": "#/$defs/LocationAsNodeId" }, { "$ref": "#/$defs/LocationRelativeToCurrentPosition" }, { "$ref": "#/$defs/LocationRelativeToLabware" }, { "$ref": "#/$defs/LocationAsLabwareHolder" }, { "$ref": "#/$defs/LocationRelativeToRobot" }, { "$ref": "#/$defs/LocationRelativeToWorld" } ], "title": "Location" } }, "required": [ "robot_id", "location" ], "title": "PUT_DOWN_PIPETTE_TIP", "type": "object" }, "PipetteTipBoxDescription": { "description": "Description of a pipette tip box.", "properties": { "schema_version": { "const": 3, "default": 3, "title": "Schema Version", "type": "integer" }, "tags": { "description": "List of additional string tags attached to the entity.", "items": { "type": "string" }, "title": "Tags", "type": "array" }, "named_tags": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "boolean" } ] }, "description": "Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.", "title": "Named Tags", "type": "object" }, "x_length": { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the x-axis of it's coordinate system. Expects length units." }, "y_length": { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the y-axis of it's coordinate system. Expects length units." }, "z_length": { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the z-axis of it's coordinate system. Expects length units." }, "type": { "const": "PipetteTipBox", "default": "PipetteTipBox", "title": "Type", "type": "string" }, "grid": { "$ref": "#/$defs/GridDescription", "description": "Layout of the pipette tip box slots. typically an 8*12 grid for a 96 tip box." }, "pipette_tip": { "$ref": "#/$defs/PipetteTipDescription", "description": "Description of the pipette tips used in the box. All pipette tips are assumed to be identical." }, "pipette_tip_layout": { "$ref": "#/$defs/PipetteTipLayout", "description": "Specifies which slots contain pipette tips.If not provided, it is assumed that all slots in the grid are filled with pipette tips." } }, "required": [ "x_length", "y_length", "z_length", "grid", "pipette_tip" ], "title": "PipetteTipBoxDescription", "type": "object" }, "PipetteTipBoxDescriptor": { "description": "PipetteTipBoxDescription with optional parameters.", "properties": { "schema_version": { "const": 3, "default": 3, "title": "Schema Version", "type": "integer" }, "tags": { "description": "List of additional string tags attached to the entity.", "items": { "type": "string" }, "title": "Tags", "type": "array" }, "named_tags": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "boolean" } ] }, "description": "Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.", "title": "Named Tags", "type": "object" }, "x_length": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the x-axis of it's coordinate system. Expects length units." }, { "type": "null" } ], "default": null }, "y_length": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the y-axis of it's coordinate system. Expects length units." }, { "type": "null" } ], "default": null }, "z_length": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the z-axis of it's coordinate system. Expects length units." }, { "type": "null" } ], "default": null }, "type": { "const": "PipetteTipBox", "default": "PipetteTipBox", "title": "Type", "type": "string" }, "grid": { "anyOf": [ { "$ref": "#/$defs/GridDescriptor" }, { "type": "null" } ], "default": null, "description": "Layout of the pipette tip box slots. typically an 8*12 grid for a 96 tip box." }, "pipette_tip": { "anyOf": [ { "$ref": "#/$defs/PipetteTipDescriptor" }, { "type": "null" } ], "default": null, "description": "Description of the pipette tips used in the box. All pipette tips are assumed to be identical." }, "pipette_tip_layout": { "anyOf": [ { "$ref": "#/$defs/PipetteTipLayout" }, { "type": "null" } ], "default": null, "description": "Specifies which slots contain pipette tips.If not provided, it is assumed that all slots in the grid are filled with pipette tips." } }, "title": "PipetteTipBoxDescriptor", "type": "object" }, "PipetteTipDescription": { "description": "Description of a pipette tip.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "tags": { "description": "List of additional string tags attached to the entity.", "items": { "type": "string" }, "title": "Tags", "type": "array" }, "named_tags": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "boolean" } ] }, "description": "Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.", "title": "Named Tags", "type": "object" }, "type": { "const": "PipetteTip", "default": "PipetteTip", "title": "Type", "type": "string" }, "has_filter": { "description": "Whether the pipette tip has an internal filter.", "title": "Has Filter", "type": "boolean" }, "height": { "$ref": "#/$defs/ValueWithUnits", "description": "total length of the pipette tip; expects length units" }, "flange_height": { "$ref": "#/$defs/ValueWithUnits", "description": "The distance from the top of the pipette tip to the flange which rests against the tip rack when the tip is racked. Expects length units." }, "max_volume": { "$ref": "#/$defs/ValueWithUnits", "description": "The maximum working fluid volume, as recommended by the manufacturer. Expects volume units." }, "min_volume": { "$ref": "#/$defs/ValueWithUnits", "description": "The minimum working fluid volume, as recommended by the manufacturer. Expects volume units." } }, "required": [ "has_filter", "height", "flange_height", "max_volume", "min_volume" ], "title": "PipetteTipDescription", "type": "object" }, "PipetteTipDescriptor": { "description": ":class:``PipetteTipDescription`` with optional parameters.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "tags": { "description": "List of additional string tags attached to the entity.", "items": { "type": "string" }, "title": "Tags", "type": "array" }, "named_tags": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "boolean" } ] }, "description": "Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.", "title": "Named Tags", "type": "object" }, "type": { "const": "PipetteTip", "default": "PipetteTip", "title": "Type", "type": "string" }, "has_filter": { "anyOf": [ { "description": "Whether the pipette tip has an internal filter.", "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Has Filter" }, "height": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "total length of the pipette tip; expects length units" }, { "type": "null" } ], "default": null }, "flange_height": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The distance from the top of the pipette tip to the flange which rests against the tip rack when the tip is racked. Expects length units." }, { "type": "null" } ], "default": null }, "max_volume": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The maximum working fluid volume, as recommended by the manufacturer. Expects volume units." }, { "type": "null" } ], "default": null }, "min_volume": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits" }, { "type": "null" } ], "default": null } }, "title": "PipetteTipDescriptor", "type": "object" }, "PipetteTipGroupDescriptor": { "description": "Grid layout of pipette tips.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "PipetteTipGroup", "default": "PipetteTipGroup", "title": "Type", "type": "string" }, "row_count": { "description": "Number of rows of pipette tips in this group. Rows are referenced relative to the tip group's coordinate system, NOT the labware's coordinate system. e.g. a 1*8 pipette tip group can lie along the column or row of a 96 tip rack.", "exclusiveMinimum": 0, "title": "Row Count", "type": "integer" }, "column_count": { "description": "Number of columns of pipette tips in this group. Columns are referenced relative to the tip group's coordinate system, NOT the labware's coordinate system. e.g. a 1*8 pipette tip group can lie along the column or row of a 96 tip rack.", "exclusiveMinimum": 0, "title": "Column Count", "type": "integer" }, "pipette_tip_tags": { "description": "Tags to apply to all pipette tips in this group. For a pipette tip group to match this descriptor, all pipette tips in the group must have all of these tags, but may have additional tags as well.", "items": { "type": "string" }, "title": "Pipette Tip Tags", "type": "array" }, "pipette_tip_named_tags": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "boolean" } ] }, "description": "Named tags to apply to all pipette tips in this group. For a pipette tip group to match this descriptor, all pipette tips in the group must have all of these named tags with matching values, but may have additional named tags as well.", "title": "Pipette Tip Named Tags", "type": "object" } }, "required": [ "row_count", "column_count" ], "title": "PipetteTipGroupDescriptor", "type": "object" }, "PipetteTipLayout": { "description": "Data structure representing the layout of pipette tips in a box.\n\n:note: This class is designed to allow non-standard use cases, like adding partially filled\n pipette tip boxes to the deck with the :class:``ADD_LABWARE`` command.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "PipetteTipLayout", "default": "PipetteTipLayout", "title": "Type", "type": "string" }, "layout": { "description": "A 2D list representing the layout of pipette tips in the box. The list contains either 0 or 1, where 1 represents a slot holding a pipette tip and 0 represents an empty slot.", "items": { "items": { "type": "integer" }, "type": "array" }, "title": "Layout", "type": "array" } }, "required": [ "layout" ], "title": "PipetteTipLayout", "type": "object" }, "ProbeDescriptor": { "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "serial_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional serial number - allows unique identification of a robot or tool.", "title": "Serial Number" }, "type": { "const": "Probe", "default": "Probe", "title": "Type", "type": "string" } }, "title": "ProbeDescriptor", "type": "object" }, "REMOVE_LABWARE_LID": { "description": "Remove the lid from the target labware.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "REMOVE_LABWARE_LID", "default": "REMOVE_LABWARE_LID", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "labware_id": { "description": "Identifier for a target piece of ANSI-SLAS-compatible labware, assigned by previous :class:``ADD_LABWARE`` command.", "title": "Labware Id", "type": "string" }, "storage_holder": { "anyOf": [ { "description": "Union type of all valid LabwareHolder specifications.", "discriminator": { "mapping": { "LabwareHolderName": "#/$defs/LabwareHolderName", "LabwareId": "#/$defs/LabwareId" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/$defs/LabwareHolderName" }, { "$ref": "#/$defs/LabwareId" } ] }, { "type": "null" } ], "default": null, "description": "Optional holder at which to store the removed lid.", "title": "Storage Holder" } }, "required": [ "robot_id", "labware_id" ], "title": "REMOVE_LABWARE_LID", "type": "object" }, "REPLACE_LABWARE_LID": { "description": "Replace the lid on the target labware.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "REPLACE_LABWARE_LID", "default": "REPLACE_LABWARE_LID", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "labware_id": { "description": "Identifier for a target piece of ANSI-SLAS-compatible labware, assigned by previous :class:``ADD_LABWARE`` command.", "title": "Labware Id", "type": "string" }, "lid_id": { "description": "Identifier for the targeted lid of a piece of ANSI-SLAS-compatible labware, assigned by previous :class:``ADD_LABWARE`` command via the ``lid_id`` argument.", "title": "Lid Id", "type": "string" } }, "required": [ "robot_id", "labware_id", "lid_id" ], "title": "REPLACE_LABWARE_LID", "type": "object" }, "RETRIEVE_PIPETTE_TIP_GROUP": { "description": "Pick up a pipette tip group using the held pipette.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "RETRIEVE_PIPETTE_TIP_GROUP", "default": "RETRIEVE_PIPETTE_TIP_GROUP", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "id": { "description": "Identifier for a target pipette tip group, assigned by previous :class:``ADD_PIPETTE_TIP_GROUP`` command.", "title": "Id", "type": "string" } }, "required": [ "robot_id", "id" ], "title": "RETRIEVE_PIPETTE_TIP_GROUP", "type": "object" }, "RETRIEVE_TOOL": { "description": "Pick up the target tool using the robot's empty flange.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "RETRIEVE_TOOL", "default": "RETRIEVE_TOOL", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "id": { "description": "Identifier for a target robot tool, assigned by previous :class:``ADD_TOOL`` command.", "title": "Id", "type": "string" } }, "required": [ "robot_id", "id" ], "title": "RETRIEVE_TOOL", "type": "object" }, "RETURN_PIPETTE_TIP_GROUP": { "description": "Return the currently held pipette tip group to its origin.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "RETURN_PIPETTE_TIP_GROUP", "default": "RETURN_PIPETTE_TIP_GROUP", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" } }, "required": [ "robot_id" ], "title": "RETURN_PIPETTE_TIP_GROUP", "type": "object" }, "RETURN_TOOL": { "description": "Return the currently held tool to the tool rack.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "RETURN_TOOL", "default": "RETURN_TOOL", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" } }, "required": [ "robot_id" ], "title": "RETURN_TOOL", "type": "object" }, "RobotDescriptor": { "description": "Descriptor for a robot in the fleet.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "serial_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional serial number - allows unique identification of a robot or tool.", "title": "Serial Number" }, "type": { "const": "Robot", "default": "Robot", "title": "Type", "type": "string" }, "tools": { "additionalProperties": { "description": "Union type of all valid tool descriptors.", "discriminator": { "mapping": { "EightChannelPipette": "#/$defs/EightChannelPipetteDescriptor", "Gripper": "#/$defs/GripperDescriptor", "Probe": "#/$defs/ProbeDescriptor", "SingleChannelPipette": "#/$defs/SingleChannelPipetteDescriptor" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/$defs/SingleChannelPipetteDescriptor" }, { "$ref": "#/$defs/EightChannelPipetteDescriptor" }, { "$ref": "#/$defs/ProbeDescriptor" }, { "$ref": "#/$defs/GripperDescriptor" } ] }, "description": "list of tools currently attached to the robot, with their respective serial numbers (if any) as keys. Not currently used by the system, and will likely change before implementation. ", "title": "Tools", "type": "object" }, "tool_holders": { "additionalProperties": { "$ref": "#/$defs/ToolHolderDescriptor" }, "description": "list of tool holders currently attached to the robot, with their respective serial numbers (if any) as keys. Not currently used by the system, and will likely change before implementation. ", "title": "Tool Holders", "type": "object" }, "labware_holders": { "additionalProperties": { "$ref": "#/$defs/LabwareHolderDescriptor" }, "description": "list of labware holders currently attached to the robot, with their respective serial numbers (if any) as keys. Not currently used by the system, and will likely change before implementation. ", "title": "Labware Holders", "type": "object" } }, "title": "RobotDescriptor", "type": "object" }, "RoundBottomDescription": { "description": "Descriptor for a well with a spherical bottom.\n\n:note: The bottom of the well is assumed to be a hemisphere whose radius is inferred from the well's diameter.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "Round", "default": "Round", "title": "Type", "type": "string" } }, "title": "RoundBottomDescription", "type": "object" }, "RoundBottomDescriptor": { "description": ":class:``RoundBottomDescription`` with optional parameters.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "Round", "default": "Round", "title": "Type", "type": "string" } }, "title": "RoundBottomDescriptor", "type": "object" }, "SEND_WEBHOOK": { "description": "Send an HTTP webhook request.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "SEND_WEBHOOK", "default": "SEND_WEBHOOK", "title": "Type", "type": "string" }, "pause_execution": { "description": "Whether to pause script execution after sending.", "title": "Pause Execution", "type": "boolean" }, "ignore_external_error": { "default": false, "description": "Whether to ignore errors from the destination server.", "title": "Ignore External Error", "type": "boolean" }, "url": { "description": "Destination URL including protocol.", "title": "Url", "type": "string" }, "payload": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional JSON payload (max 32 KiB).", "title": "Payload" } }, "required": [ "pause_execution", "url" ], "title": "SEND_WEBHOOK", "type": "object" }, "SWAP_TO_TOOL": { "description": "Return the currently held tool, then pick up the target tool.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "SWAP_TO_TOOL", "default": "SWAP_TO_TOOL", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "id": { "description": "Identifier for a target robot tool, assigned by previous :class:``ADD_TOOL`` command.", "title": "Id", "type": "string" } }, "required": [ "robot_id", "id" ], "title": "SWAP_TO_TOOL", "type": "object" }, "SingleChannelPipetteDescriptor": { "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "serial_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional serial number - allows unique identification of a robot or tool.", "title": "Serial Number" }, "min_volume": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits" }, { "type": "null" } ], "default": null, "description": "Minimum volume that the pipette can handle while maintianing promised tolerances. expects volume units (e.g. ul)." }, "max_volume": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits" }, { "type": "null" } ], "default": null, "description": "Maximum volume that the pipette can hold (spec, not reality). expects volume units (e.g. ul)." }, "max_speed": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits" }, { "type": "null" } ], "default": null, "description": "Maximum speed that the pipette can move fluid; expects volume per time units (e.g. ul/s)." }, "type": { "const": "SingleChannelPipette", "default": "SingleChannelPipette", "title": "Type", "type": "string" } }, "title": "SingleChannelPipetteDescriptor", "type": "object" }, "ToolHolderDescriptor": { "description": "Descriptor for an entity that can hold tools.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "ToolHolder", "default": "ToolHolder", "title": "Type", "type": "string" } }, "title": "ToolHolderDescriptor", "type": "object" }, "TrashDescription": { "description": "Description of a waste disposal container.", "properties": { "schema_version": { "const": 3, "default": 3, "title": "Schema Version", "type": "integer" }, "tags": { "description": "List of additional string tags attached to the entity.", "items": { "type": "string" }, "title": "Tags", "type": "array" }, "named_tags": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "boolean" } ] }, "description": "Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.", "title": "Named Tags", "type": "object" }, "x_length": { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the x-axis of it's coordinate system. Expects length units." }, "y_length": { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the y-axis of it's coordinate system. Expects length units." }, "z_length": { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the z-axis of it's coordinate system. Expects length units." }, "type": { "const": "Trash", "default": "Trash", "title": "Type", "type": "string" }, "well": { "$ref": "#/$defs/WellDescription", "description": "Description of the waste volume as a well." } }, "required": [ "x_length", "y_length", "z_length", "well" ], "title": "TrashDescription", "type": "object" }, "TrashDescriptor": { "description": ":class:``TrashDescription`` with optional parameters.", "properties": { "schema_version": { "const": 3, "default": 3, "title": "Schema Version", "type": "integer" }, "tags": { "description": "List of additional string tags attached to the entity.", "items": { "type": "string" }, "title": "Tags", "type": "array" }, "named_tags": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "boolean" } ] }, "description": "Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.", "title": "Named Tags", "type": "object" }, "x_length": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the x-axis of it's coordinate system. Expects length units." }, { "type": "null" } ], "default": null }, "y_length": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the y-axis of it's coordinate system. Expects length units." }, { "type": "null" } ], "default": null }, "z_length": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the z-axis of it's coordinate system. Expects length units." }, { "type": "null" } ], "default": null }, "type": { "const": "Trash", "default": "Trash", "title": "Type", "type": "string" }, "well": { "anyOf": [ { "$ref": "#/$defs/WellDescriptor" }, { "type": "null" } ], "default": null, "description": "Description of the waste volume as a well." } }, "title": "TrashDescriptor", "type": "object" }, "TubeDescription": { "description": "Description of a tube.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "tags": { "description": "List of additional string tags attached to the entity.", "items": { "type": "string" }, "title": "Tags", "type": "array" }, "named_tags": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "boolean" } ] }, "description": "Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.", "title": "Named Tags", "type": "object" }, "type": { "const": "Tube", "default": "Tube", "title": "Type", "type": "string" }, "depth": { "$ref": "#/$defs/ValueWithUnits", "description": "Distance from the top of the tube to the centered bottom of the tube. Expects length units." }, "shape": { "description": "The primary cross-sectional shape of the tube; typically the shape of the opening", "discriminator": { "mapping": { "AxisAlignedRectangle": "#/$defs/AxisAlignedRectangleDescription", "Circle": "#/$defs/CircleDescription" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/$defs/CircleDescription" }, { "$ref": "#/$defs/AxisAlignedRectangleDescription" } ], "title": "Shape" }, "bottom_shape": { "description": "The geometry of the bottom of the tube. ", "discriminator": { "mapping": { "Conical": "#/$defs/ConicalBottomDescription", "Flat": "#/$defs/FlatBottomDescription", "Round": "#/$defs/RoundBottomDescription", "V-Shape": "#/$defs/VBottomDescription" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/$defs/ConicalBottomDescription" }, { "$ref": "#/$defs/FlatBottomDescription" }, { "$ref": "#/$defs/RoundBottomDescription" }, { "$ref": "#/$defs/VBottomDescription" } ], "title": "Bottom Shape" }, "min_volume": { "$ref": "#/$defs/ValueWithUnits", "description": "The minimum working fluid volume, as recommended by the manufacturer. Expects volume units." }, "max_volume": { "$ref": "#/$defs/ValueWithUnits", "description": "The maximum working fluid volume, as recommended by the manufacturer. Expects volume units." }, "top_height": { "$ref": "#/$defs/ValueWithUnits", "description": "The height of the tube cap above the top of the tube. Expects length units." } }, "required": [ "depth", "shape", "bottom_shape", "min_volume", "max_volume", "top_height" ], "title": "TubeDescription", "type": "object" }, "TubeDescriptor": { "description": ":class:``TubeDescription`` with optional parameters.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "tags": { "description": "List of additional string tags attached to the entity.", "items": { "type": "string" }, "title": "Tags", "type": "array" }, "named_tags": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "boolean" } ] }, "description": "Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.", "title": "Named Tags", "type": "object" }, "type": { "const": "Tube", "default": "Tube", "title": "Type", "type": "string" }, "depth": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "Distance from the top of the tube to the centered bottom of the tube. Expects length units." }, { "type": "null" } ], "default": null }, "shape": { "anyOf": [ { "description": "Union type of all valid well shape descriptors.", "discriminator": { "mapping": { "AxisAlignedRectangle": "#/$defs/AxisAlignedRectangleDescriptor", "Circle": "#/$defs/CircleDescriptor" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/$defs/CircleDescriptor" }, { "$ref": "#/$defs/AxisAlignedRectangleDescriptor" } ] }, { "type": "null" } ], "default": null, "description": "The primary cross-sectional shape of the tube; typically the shape of the opening", "title": "Shape" }, "bottom_shape": { "anyOf": [ { "description": "Union type of all valid well bottom shape descriptors.", "discriminator": { "mapping": { "Conical": "#/$defs/ConicalBottomDescriptor", "Flat": "#/$defs/FlatBottomDescriptor", "Round": "#/$defs/RoundBottomDescriptor", "V-Shape": "#/$defs/VBottomDescriptor" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/$defs/ConicalBottomDescriptor" }, { "$ref": "#/$defs/FlatBottomDescriptor" }, { "$ref": "#/$defs/RoundBottomDescriptor" }, { "$ref": "#/$defs/VBottomDescriptor" } ] }, { "type": "null" } ], "default": null, "description": "The geometry of the bottom of the tube. ", "title": "Bottom Shape" }, "min_volume": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The minimum working fluid volume, as recommended by the manufacturer. Expects volume units." }, { "type": "null" } ], "default": null }, "max_volume": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The maximum working fluid volume, as recommended by the manufacturer. Expects volume units." }, { "type": "null" } ], "default": null }, "top_height": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The height of the tube cap above the top of the tube. Expects length units." }, { "type": "null" } ], "default": null } }, "title": "TubeDescriptor", "type": "object" }, "TubeHolderDescription": { "description": "Description of a tube holder.", "properties": { "schema_version": { "const": 3, "default": 3, "title": "Schema Version", "type": "integer" }, "tags": { "description": "List of additional string tags attached to the entity.", "items": { "type": "string" }, "title": "Tags", "type": "array" }, "named_tags": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "boolean" } ] }, "description": "Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.", "title": "Named Tags", "type": "object" }, "x_length": { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the x-axis of it's coordinate system. Expects length units." }, "y_length": { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the y-axis of it's coordinate system. Expects length units." }, "z_length": { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the z-axis of it's coordinate system. Expects length units." }, "type": { "const": "TubeHolder", "default": "TubeHolder", "title": "Type", "type": "string" }, "grid": { "$ref": "#/$defs/GridDescription", "description": "Grid defining the layout of tube slots in the tube holder." }, "tube": { "$ref": "#/$defs/TubeDescription", "description": "Description of a tube held by the tube holder. All tubes are assumed identical." } }, "required": [ "x_length", "y_length", "z_length", "grid", "tube" ], "title": "TubeHolderDescription", "type": "object" }, "TubeHolderDescriptor": { "description": ":class:``TubeHolderDescription`` with optional parameters.", "properties": { "schema_version": { "const": 3, "default": 3, "title": "Schema Version", "type": "integer" }, "tags": { "description": "List of additional string tags attached to the entity.", "items": { "type": "string" }, "title": "Tags", "type": "array" }, "named_tags": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "boolean" } ] }, "description": "Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.", "title": "Named Tags", "type": "object" }, "x_length": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the x-axis of it's coordinate system. Expects length units." }, { "type": "null" } ], "default": null }, "y_length": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the y-axis of it's coordinate system. Expects length units." }, { "type": "null" } ], "default": null }, "z_length": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the z-axis of it's coordinate system. Expects length units." }, { "type": "null" } ], "default": null }, "type": { "const": "TubeHolder", "default": "TubeHolder", "title": "Type", "type": "string" }, "grid": { "anyOf": [ { "$ref": "#/$defs/GridDescriptor" }, { "type": "null" } ], "default": null, "description": "Grid defining the layout of tube slots in the tube holder." }, "tube": { "anyOf": [ { "$ref": "#/$defs/TubeDescriptor" }, { "type": "null" } ], "default": null, "description": "Description of a tube held by the tube holder. All tubes are assumed identical." } }, "title": "TubeHolderDescriptor", "type": "object" }, "VBottomDescription": { "description": "Description of a V-bottom well (e.g. trough).", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "V-Shape", "default": "V-Shape", "title": "Type", "type": "string" }, "direction": { "description": "The axis of the well's coordinate system along which the spine of the V runs.", "enum": [ "x-axis", "y-axis" ], "title": "Direction", "type": "string" }, "offset": { "$ref": "#/$defs/ValueWithUnits", "description": "The height of the triangular portion of the well. Expects length units." } }, "required": [ "direction", "offset" ], "title": "VBottomDescription", "type": "object" }, "VBottomDescriptor": { "description": ":class:``VBottomDescription`` with optional parameters.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "V-Shape", "default": "V-Shape", "title": "Type", "type": "string" }, "direction": { "anyOf": [ { "description": "The axis of the well's coordinate system along which the spine of the V runs.", "enum": [ "x-axis", "y-axis" ], "type": "string" }, { "type": "null" } ], "default": null, "title": "Direction" }, "offset": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The height of the triangular portion of the well. Expects length units." }, { "type": "null" } ], "default": null } }, "title": "VBottomDescriptor", "type": "object" }, "ValueWithUnits": { "description": "A numeric value with associated units.\n\n:note: The following values are all equivalent:\n\n ``ValueWithUnits(magnitude=0.005, units=\"L\")``\n\n ``ValueWithUnits(magnitude=5, units=\"mL\")``\n\n ``ValueWithUnits(magnitude=5000, units=\"uL\")``\n\n ``ValueWithUnits(magnitude=5000, units=\"mm\u00b3\")``\n\n:note: In the python implementation, ``pint`` is used to resolve units. see `tcode_api.units`.", "properties": { "type": { "const": "ValueWithUnits", "default": "ValueWithUnits", "title": "Type", "type": "string" }, "magnitude": { "title": "Magnitude", "type": "number" }, "units": { "title": "Units", "type": "string" } }, "required": [ "magnitude", "units" ], "title": "ValueWithUnits", "type": "object" }, "WAIT": { "description": "Delay execution for a specified duration.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "type": { "const": "WAIT", "default": "WAIT", "title": "Type", "type": "string" }, "robot_id": { "description": "Identifier of the robot targeted by this command, previously defined with the :class:``ADD_ROBOT`` command.", "title": "Robot Id", "type": "string" }, "duration": { "$ref": "#/$defs/ValueWithUnits", "description": "Duration to wait; expects time units." } }, "required": [ "robot_id", "duration" ], "title": "WAIT", "type": "object" }, "WellDescription": { "description": "Description of a well in a labware.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "tags": { "description": "List of additional string tags attached to the entity.", "items": { "type": "string" }, "title": "Tags", "type": "array" }, "named_tags": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "boolean" } ] }, "description": "Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.", "title": "Named Tags", "type": "object" }, "type": { "const": "Well", "default": "Well", "title": "Type", "type": "string" }, "depth": { "$ref": "#/$defs/ValueWithUnits", "description": "Distance from the top of the well to the bottom of the inside of the well. expects length units" }, "shape": { "description": "The primary cross-sectional shape of the well, typically the shape of the opening.", "discriminator": { "mapping": { "AxisAlignedRectangle": "#/$defs/AxisAlignedRectangleDescription", "Circle": "#/$defs/CircleDescription" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/$defs/CircleDescription" }, { "$ref": "#/$defs/AxisAlignedRectangleDescription" } ], "title": "Shape" }, "bottom_shape": { "description": "The geometry of the bottom of the well. ", "discriminator": { "mapping": { "Conical": "#/$defs/ConicalBottomDescription", "Flat": "#/$defs/FlatBottomDescription", "Round": "#/$defs/RoundBottomDescription", "V-Shape": "#/$defs/VBottomDescription" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/$defs/ConicalBottomDescription" }, { "$ref": "#/$defs/FlatBottomDescription" }, { "$ref": "#/$defs/RoundBottomDescription" }, { "$ref": "#/$defs/VBottomDescription" } ], "title": "Bottom Shape" }, "min_volume": { "$ref": "#/$defs/ValueWithUnits", "description": "The minimum working fluid volume, as recommended by the manufacturer. Expects volume units." }, "max_volume": { "$ref": "#/$defs/ValueWithUnits", "description": "The maximum working fluid volume, as recommended by the manufacturer. Expects volume units." } }, "required": [ "depth", "shape", "bottom_shape", "min_volume", "max_volume" ], "title": "WellDescription", "type": "object" }, "WellDescriptor": { "description": ":class:``WellDescription`` with optional parameters.", "properties": { "schema_version": { "const": 1, "default": 1, "title": "Schema Version", "type": "integer" }, "tags": { "description": "List of additional string tags attached to the entity.", "items": { "type": "string" }, "title": "Tags", "type": "array" }, "named_tags": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "boolean" } ] }, "description": "Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.", "title": "Named Tags", "type": "object" }, "type": { "const": "Well", "default": "Well", "title": "Type", "type": "string" }, "depth": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "Distance from the top of the well to the bottom of the inside of the well. expects length units" }, { "type": "null" } ], "default": null }, "shape": { "anyOf": [ { "description": "Union type of all valid well shape descriptors.", "discriminator": { "mapping": { "AxisAlignedRectangle": "#/$defs/AxisAlignedRectangleDescriptor", "Circle": "#/$defs/CircleDescriptor" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/$defs/CircleDescriptor" }, { "$ref": "#/$defs/AxisAlignedRectangleDescriptor" } ] }, { "type": "null" } ], "default": null, "description": "The primary cross-sectional shape of the well, typically the shape of the opening.", "title": "Shape" }, "bottom_shape": { "anyOf": [ { "description": "Union type of all valid well bottom shape descriptors.", "discriminator": { "mapping": { "Conical": "#/$defs/ConicalBottomDescriptor", "Flat": "#/$defs/FlatBottomDescriptor", "Round": "#/$defs/RoundBottomDescriptor", "V-Shape": "#/$defs/VBottomDescriptor" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/$defs/ConicalBottomDescriptor" }, { "$ref": "#/$defs/FlatBottomDescriptor" }, { "$ref": "#/$defs/RoundBottomDescriptor" }, { "$ref": "#/$defs/VBottomDescriptor" } ] }, { "type": "null" } ], "default": null, "description": "The geometry of the bottom of the well. ", "title": "Bottom Shape" }, "min_volume": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The minimum working fluid volume, as recommended by the manufacturer. Expects volume units." }, { "type": "null" } ], "default": null }, "max_volume": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The maximum working fluid volume, as recommended by the manufacturer. Expects volume units." }, { "type": "null" } ], "default": null } }, "title": "WellDescriptor", "type": "object" }, "WellPlateDescription": { "description": "Description of a well plate.\n\n:note: The exception to the 'no optional attributes' rule for ``***Description`` classes\nis `lid_offset` and `lid`. These attributes default to None, assuming that a described\nlabware has no lid.", "properties": { "schema_version": { "const": 3, "default": 3, "title": "Schema Version", "type": "integer" }, "tags": { "description": "List of additional string tags attached to the entity.", "items": { "type": "string" }, "title": "Tags", "type": "array" }, "named_tags": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "boolean" } ] }, "description": "Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.", "title": "Named Tags", "type": "object" }, "x_length": { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the x-axis of it's coordinate system. Expects length units." }, "y_length": { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the y-axis of it's coordinate system. Expects length units." }, "z_length": { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the z-axis of it's coordinate system. Expects length units." }, "type": { "const": "WellPlate", "default": "WellPlate", "title": "Type", "type": "string" }, "grid": { "$ref": "#/$defs/GridDescription", "description": "Grid defining the well layout on the plate." }, "well": { "$ref": "#/$defs/WellDescription", "description": "Description of a single well on the plate, which is assumed to be shared by all wells." }, "lid_offset": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The offset from the top of the labware to the bottom of the lid. Expects length units. Only applicable if the labware has a lid." }, { "type": "null" } ], "default": null }, "lid": { "anyOf": [ { "$ref": "#/$defs/LidDescription" }, { "type": "null" } ], "default": null, "description": "Description of the lid, or None if the plate is un-liddable." } }, "required": [ "x_length", "y_length", "z_length", "grid", "well" ], "title": "WellPlateDescription", "type": "object" }, "WellPlateDescriptor": { "description": ":class:``WellPlateDescription`` with optional parameters.", "properties": { "schema_version": { "const": 3, "default": 3, "title": "Schema Version", "type": "integer" }, "tags": { "description": "List of additional string tags attached to the entity.", "items": { "type": "string" }, "title": "Tags", "type": "array" }, "named_tags": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "boolean" } ] }, "description": "Map of names and values of named tags attached to the entity. Values can be strings, numbers, or booleans.", "title": "Named Tags", "type": "object" }, "x_length": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the x-axis of it's coordinate system. Expects length units." }, { "type": "null" } ], "default": null }, "y_length": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the y-axis of it's coordinate system. Expects length units." }, { "type": "null" } ], "default": null }, "z_length": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The labware's extent along the z-axis of it's coordinate system. Expects length units." }, { "type": "null" } ], "default": null }, "type": { "const": "WellPlate", "default": "WellPlate", "title": "Type", "type": "string" }, "grid": { "anyOf": [ { "$ref": "#/$defs/GridDescriptor" }, { "type": "null" } ], "default": null, "description": "Grid defining the well layout on the plate." }, "well": { "anyOf": [ { "$ref": "#/$defs/WellDescriptor" }, { "type": "null" } ], "default": null, "description": "Description of a single well on the plate, which is assumed to be shared by all wells." }, "lid_offset": { "anyOf": [ { "$ref": "#/$defs/ValueWithUnits", "description": "The offset from the top of the labware to the bottom of the lid. Expects length units. Only applicable if the labware has a lid." }, { "type": "null" } ], "default": null }, "lid": { "anyOf": [ { "$ref": "#/$defs/LidDescriptor" }, { "type": "null" } ], "default": null, "description": "Description of the lid, or None if the plate is un-liddable." } }, "title": "WellPlateDescriptor", "type": "object" } }, "required": [ "metadata" ] }
- Config:
strict: bool = True
extra: str = ignore
- Fields:
commands (list[tcode_api.schemas.commands.aspirate.v1.ASPIRATE | tcode_api.schemas.commands.add_labware.v3.ADD_LABWARE | tcode_api.schemas.commands.add_pipette_tip_group.v1.ADD_PIPETTE_TIP_GROUP | tcode_api.schemas.commands.add_robot.v1.ADD_ROBOT | tcode_api.schemas.commands.add_tool.v1.ADD_TOOL | tcode_api.schemas.commands.calibrate_labware_well_depth.v1.CALIBRATE_LABWARE_WELL_DEPTH | tcode_api.schemas.commands.calibrate_labware_height.v1.CALIBRATE_LABWARE_HEIGHT | tcode_api.schemas.commands.calibrate_labware_holder.v1.CALIBRATE_LABWARE_HOLDER | tcode_api.schemas.commands.calibrate_tool.v1.CALIBRATE_TOOL | tcode_api.schemas.commands.comment.v1.COMMENT | tcode_api.schemas.commands.create_labware.v3.CREATE_LABWARE | tcode_api.schemas.commands.delete_labware.v1.DELETE_LABWARE | tcode_api.schemas.commands.discard_pipette_tip_group.v1.DISCARD_PIPETTE_TIP_GROUP | tcode_api.schemas.commands.dispense.v1.DISPENSE | tcode_api.schemas.commands.move_gripper.v1.MOVE_GRIPPER | tcode_api.schemas.commands.move_to_location.v1.MOVE_TO_LOCATION | tcode_api.schemas.commands.move_to_joint_pose.v1.MOVE_TO_JOINT_POSE | tcode_api.schemas.commands.pause.v1.PAUSE | tcode_api.schemas.commands.pick_up_labware.v1.PICK_UP_LABWARE | tcode_api.schemas.commands.pick_up_pipette_tip.v1.PICK_UP_PIPETTE_TIP | tcode_api.schemas.commands.put_down_labware.v1.PUT_DOWN_LABWARE | tcode_api.schemas.commands.put_down_pipette_tip.v1.PUT_DOWN_PIPETTE_TIP | tcode_api.schemas.commands.remove_labware_lid.v1.REMOVE_LABWARE_LID | tcode_api.schemas.commands.replace_labware_lid.v1.REPLACE_LABWARE_LID | tcode_api.schemas.commands.retrieve_pipette_tip_group.v1.RETRIEVE_PIPETTE_TIP_GROUP | tcode_api.schemas.commands.retrieve_tool.v1.RETRIEVE_TOOL | tcode_api.schemas.commands.return_pipette_tip_group.v1.RETURN_PIPETTE_TIP_GROUP | tcode_api.schemas.commands.return_tool.v1.RETURN_TOOL | tcode_api.schemas.commands.swap_to_tool.v1.SWAP_TO_TOOL | tcode_api.schemas.commands.send_webhook.v1.SEND_WEBHOOK | tcode_api.schemas.commands.wait.v1.WAIT])metadata (tcode_api.schemas.script.metadata.v1.Metadata)schema_version (Literal[1])type (Literal['TCodeScript'])
- classmethod new(name, description=None)¶
Create a new, empty TCode script with the given name and optional description.
- Parameters:
name (
str) – Name of the TCode script.description (
str|None) – Optional description of the TCode script.
- Return type:
- Returns:
A new, empty TCode script.
- classmethod read(file_object)¶
Load a TCode script from a file-like object.
- Parameters:
file_object (
TextIO) – A file-like object containing the TCode script.- Return type:
- Returns:
The loaded TCode script.
- field type: Literal['TCodeScript'] = 'TCodeScript'¶
- field schema_version: Literal[1] = 1¶
- field metadata: Metadata [Required]¶
Script metadata, significantly includeing the tcode-api version used in generation.
- field commands: list[TCode] [Optional]¶
TCode commands in order of execution.