Commands

Commands are the data structures that you send to your fleet as instructions.

A T-code script is a list of commands, typically beginning with a chunk of ADD_*** commands to define the entities that will be used in the script, then followed by various action commands to manipulate those entities.

Tip

An important concept to understand before diving into T-code commands is the ValueWithUnits class, used in many of the following commands to represent physical quantities such as distances, speeds, and volumes.

See Common Types for full documentation of ValueWithUnits and related types.

TCode command schemas: data structures sent to the fleet as instructions.

pydantic model tcode_api.schemas.commands.ADD_LABWARE

Find a matching labware on the fleet and assign it the given id.

Raises:

ValidatorErrorValidatorErrorCode.ID_EXISTS if id is already registered to a labware.

Show JSON schema
{
   "title": "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.",
   "type": "object",
   "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"
      }
   },
   "$defs": {
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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": [
      "id",
      "descriptor"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • descriptor (tcode_api.schemas.descriptions.labware.lid.v3.LidDescriptor | tcode_api.schemas.descriptions.labware.pipette_tip_box.v3.PipetteTipBoxDescriptor | tcode_api.schemas.descriptions.labware.trash.v3.TrashDescriptor | tcode_api.schemas.descriptions.labware.tube_holder.v3.TubeHolderDescriptor | tcode_api.schemas.descriptions.labware.well_plate.v3.WellPlateDescriptor)

  • id (str)

  • lid_id (str | None)

  • schema_version (Literal[3])

  • type (Literal['ADD_LABWARE'])

field descriptor: Annotated[LidDescriptor | PipetteTipBoxDescriptor | TrashDescriptor | TubeHolderDescriptor | WellPlateDescriptor] [Required]

Minimal descriptor of the desired labware; resolved on the fleet.

field id: str [Required]

Identifier to assign to the resolved labware. This id is used in subsequent commands to reference this labware.

field lid_id: str | None = None

Optional identifier to assign to a lid associated with the labware. If provided, the labware descriptor must indicate that the labware has a lid.

field schema_version: Literal[3] = 3
field type: Literal['ADD_LABWARE'] = 'ADD_LABWARE'
pydantic model tcode_api.schemas.commands.ADD_PIPETTE_TIP_GROUP

Find a matching group of pipette tips on the fleet and assign it the given id.

Raises:

ValidatorErrorValidatorErrorCode.ID_EXISTS if id is already registered to a pipette tip group.

Show JSON schema
{
   "title": "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.",
   "type": "object",
   "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."
      }
   },
   "$defs": {
      "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"
      }
   },
   "required": [
      "id",
      "descriptor"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • descriptor (tcode_api.schemas.descriptions.pipette_tip_group.v1.PipetteTipGroupDescriptor)

  • id (str)

  • schema_version (Literal[1])

  • type (Literal['ADD_PIPETTE_TIP_GROUP'])

field descriptor: PipetteTipGroupDescriptor [Required]

Minimal descriptor of the desired pipette tip group; resolved on the fleet.

field id: str [Required]

Identifier to assign to the resolved pipette tip group. This id is used in subsequent commands to reference this pipette tip group.

field schema_version: Literal[1] = 1
field type: Literal['ADD_PIPETTE_TIP_GROUP'] = 'ADD_PIPETTE_TIP_GROUP'
pydantic model tcode_api.schemas.commands.ADD_ROBOT

Find a matching robot on the fleet and assign it the given id.

Show JSON schema
{
   "title": "ADD_ROBOT",
   "description": "Find a matching robot on the fleet and assign it the given id.",
   "type": "object",
   "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."
      }
   },
   "$defs": {
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      }
   },
   "required": [
      "id",
      "descriptor"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • descriptor (tcode_api.schemas.descriptions.robot.v1.RobotDescriptor)

  • id (str)

  • schema_version (Literal[1])

  • type (Literal['ADD_ROBOT'])

field descriptor: RobotDescriptor [Required]

Minimal descriptor of the desired robot; resolved on the fleet.

field id: str [Required]

Identifier to assign to the resolved robot. This id is used in subsequent commands to reference this robot.

field schema_version: Literal[1] = 1
field type: Literal['ADD_ROBOT'] = 'ADD_ROBOT'
pydantic model tcode_api.schemas.commands.ADD_TOOL

Find a matching tool on the fleet and assign it the given id.

Show JSON schema
{
   "title": "ADD_TOOL",
   "description": "Find a matching tool on the fleet and assign it the given id.",
   "type": "object",
   "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"
      }
   },
   "$defs": {
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      }
   },
   "required": [
      "robot_id",
      "id",
      "descriptor"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • descriptor (tcode_api.schemas.descriptions.tool.pipette.single_channel_pipette.v1.SingleChannelPipetteDescriptor | tcode_api.schemas.descriptions.tool.pipette.eight_channel_pipette.v1.EightChannelPipetteDescriptor | tcode_api.schemas.descriptions.tool.probe.v1.ProbeDescriptor | tcode_api.schemas.descriptions.tool.gripper.v1.GripperDescriptor)

  • id (str)

  • schema_version (Literal[1])

  • type (Literal['ADD_TOOL'])

field descriptor: Annotated[SingleChannelPipetteDescriptor | EightChannelPipetteDescriptor | ProbeDescriptor | GripperDescriptor] [Required]

Minimal descriptor of the desired tool; resolved on the fleet.

field id: str [Required]

Identifier to assign to the resolved tool. This id is used in subsequent commands to reference this tool.

field schema_version: Literal[1] = 1
field type: Literal['ADD_TOOL'] = 'ADD_TOOL'
pydantic model tcode_api.schemas.commands.ASPIRATE

Aspirate a given fluid volume at a given speed into the target robot’s pipette.

Show JSON schema
{
   "title": "ASPIRATE",
   "description": "Aspirate a given fluid volume at a given speed into the target robot's pipette.",
   "type": "object",
   "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."
      }
   },
   "$defs": {
      "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"
      }
   },
   "required": [
      "robot_id",
      "volume",
      "speed"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • schema_version (Literal[1])

  • speed (tcode_api.schemas.common.value_with_units.ValueWithUnits)

  • type (Literal['ASPIRATE'])

  • volume (tcode_api.schemas.common.value_with_units.ValueWithUnits)

field schema_version: Literal[1] = 1
field speed: ValueWithUnits [Required]

Aspiration speed; expects volume/time units.

field type: Literal['ASPIRATE'] = 'ASPIRATE'
field volume: ValueWithUnits [Required]

Aspiration volume; expects volume units.

pydantic model tcode_api.schemas.commands.CALIBRATE_LABWARE_HEIGHT

Tune the height of a target labware by probing.

Show JSON schema
{
   "title": "CALIBRATE_LABWARE_HEIGHT",
   "description": "Tune the height of a target labware by probing.",
   "type": "object",
   "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"
      }
   },
   "$defs": {
      "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"
      },
      "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"
      }
   },
   "required": [
      "robot_id",
      "location",
      "persistent"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • location (tcode_api.schemas.location.location_as_labware_index.v1.LocationAsLabwareIndex | tcode_api.schemas.location.location_relative_to_labware.v1.LocationRelativeToLabware)

  • persistent (bool)

  • schema_version (Literal[1])

  • type (Literal['CALIBRATE_LABWARE_HEIGHT'])

field location: LocationAsLabwareIndex | LocationRelativeToLabware [Required]

Location specifying which labware and where on the labware to probe.

field persistent: bool [Required]

When true, all labware of the same type and brand will be modified. Otherwise, only the current in-place transform is applied.

field schema_version: Literal[1] = 1
field type: Literal['CALIBRATE_LABWARE_HEIGHT'] = 'CALIBRATE_LABWARE_HEIGHT'
pydantic model tcode_api.schemas.commands.CALIBRATE_LABWARE_HOLDER

Calibrate the position of a target labware holder (deck slot) on the target robot by probing or by teaching.

  • If a probe is held by the robot, the calibration will be performed by probing.

  • If a pipette is held by the robot, the calibration will be performed by teaching.
    • Only X, Y, and rotation around Z will be calibrated.

    • A tip box must be registered in the target holder

The pipette teach procedure is as follows: - Single Channel Pipette:

  • Move the pipette manifold to the center of the A1 tip location

  • Confirm via the UI that the pipette is in position

  • Move the pipette manifold to the center of the H12 tip location

  • Confirm via the UI that the pipette is in position

  • 8-Channel Pipette:
    • Move the pipette manifold to the center of the A1 tip location

    • Confirm via the UI that the pipette is in position

    • Move the pipette manifold to the center of the A12 tip location

    • Confirm via the UI that the pipette is in position

NOTE: The UI confirmation steps are done via a websocket connection to the Tcode server

Raises:
  • ValidatorErrorValidatorErrorCode.ID_NOT_FOUND if any of the following are true: * robot_id is not registered to a robot * The labware holder id referenced in location is not registered on the target robot

  • ValidatorErrorValidatorErrorCode.UNEXPECTED_TOOL if the targeted robot has a tool mounted that is not compatible with probing or teaching.

Show JSON schema
{
   "title": "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.",
   "type": "object",
   "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."
      }
   },
   "$defs": {
      "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"
      }
   },
   "required": [
      "robot_id",
      "location"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • location (tcode_api.schemas.location.location_as_labware_holder.v1.LocationAsLabwareHolder)

  • schema_version (Literal[1])

  • type (Literal['CALIBRATE_LABWARE_HOLDER'])

field location: LocationAsLabwareHolder [Required]

The labware holder (probably a deck slot) to calibrate.

field schema_version: Literal[1] = 1
field type: Literal['CALIBRATE_LABWARE_HOLDER'] = 'CALIBRATE_LABWARE_HOLDER'
pydantic model tcode_api.schemas.commands.CALIBRATE_LABWARE_WELL_DEPTH

Tune the depth of a target labware’s well by probing.

Show JSON schema
{
   "title": "CALIBRATE_LABWARE_WELL_DEPTH",
   "description": "Tune the depth of a target labware's well by probing.",
   "type": "object",
   "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"
      }
   },
   "$defs": {
      "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"
      },
      "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"
      }
   },
   "required": [
      "robot_id",
      "location",
      "persistent"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • location (tcode_api.schemas.location.location_as_labware_index.v1.LocationAsLabwareIndex | tcode_api.schemas.location.location_relative_to_labware.v1.LocationRelativeToLabware)

  • modify_all_wells (bool)

  • persistent (bool)

  • schema_version (Literal[1])

  • type (Literal['CALIBRATE_LABWARE_WELL_DEPTH'])

field location: LocationAsLabwareIndex | LocationRelativeToLabware [Required]

Location specifying which labware and where on the labware to probe.

field modify_all_wells: bool = True

If true, modify the depths of all wells; otherwise only the probed well.

field persistent: bool [Required]

Whether calibration should persist beyond the current session.

field schema_version: Literal[1] = 1
field type: Literal['CALIBRATE_LABWARE_WELL_DEPTH'] = 'CALIBRATE_LABWARE_WELL_DEPTH'
pydantic model tcode_api.schemas.commands.CALIBRATE_TOOL

Calibrate the target robot’s currently held tool for probing.

Show JSON schema
{
   "title": "CALIBRATE_TOOL",
   "description": "Calibrate the target robot's currently held tool for probing.",
   "type": "object",
   "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"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • persistent (bool)

  • schema_version (Literal[1])

  • type (Literal['CALIBRATE_TOOL'])

  • z_only (bool)

field persistent: bool = False

Whether calibration should persist beyond the current session.

field schema_version: Literal[1] = 1
field type: Literal['CALIBRATE_TOOL'] = 'CALIBRATE_TOOL'
field z_only: bool [Required]

When true, calibrate only for z-axis probing. When false, calibrate x, y, and z.

pydantic model tcode_api.schemas.commands.COMMENT

A human-readable comment in the TCode script.

Show JSON schema
{
   "title": "COMMENT",
   "description": "A human-readable comment in the TCode script.",
   "type": "object",
   "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"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • schema_version (Literal[1])

  • text (str)

  • type (Literal['COMMENT'])

field schema_version: Literal[1] = 1
field text: str [Required]

The comment text.

field type: Literal['COMMENT'] = 'COMMENT'
pydantic model tcode_api.schemas.commands.CREATE_LABWARE

Create a new physical labware on the targeted robot’s deck.

Show JSON schema
{
   "title": "CREATE_LABWARE",
   "description": "Create a new physical labware on the targeted robot's deck.",
   "type": "object",
   "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"
      }
   },
   "$defs": {
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      }
   },
   "required": [
      "robot_id",
      "description",
      "holder"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • description (tcode_api.schemas.descriptions.labware.lid.v3.LidDescription | tcode_api.schemas.descriptions.labware.pipette_tip_box.v3.PipetteTipBoxDescription | tcode_api.schemas.descriptions.labware.trash.v3.TrashDescription | tcode_api.schemas.descriptions.labware.tube_holder.v3.TubeHolderDescription | tcode_api.schemas.descriptions.labware.well_plate.v3.WellPlateDescription)

  • holder (tcode_api.schemas.labware_holder.labware_holder_name.v1.LabwareHolderName | tcode_api.schemas.labware_holder.labware_id.v1.LabwareId)

  • schema_version (Literal[3])

  • type (Literal['CREATE_LABWARE'])

field description: Annotated[LidDescription | PipetteTipBoxDescription | TrashDescription | TubeHolderDescription | WellPlateDescription] [Required]

Full description of the labware to create.

field holder: Annotated[LabwareHolderName | LabwareId] [Required]

Holder in which to place the new labware.

field schema_version: Literal[3] = 3
field type: Literal['CREATE_LABWARE'] = 'CREATE_LABWARE'
pydantic model tcode_api.schemas.commands.DELETE_LABWARE

Physically remove a labware from the robot’s deck.

Show JSON schema
{
   "title": "DELETE_LABWARE",
   "description": "Physically remove a labware from the robot's deck.",
   "type": "object",
   "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"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • labware_id (str)

  • schema_version (Literal[1])

  • type (Literal['DELETE_LABWARE'])

field labware_id: Annotated[str] [Required]

Identifier for a target piece of ANSI-SLAS-compatible labware, assigned by previous :class:ADD_LABWARE command.

field schema_version: Literal[1] = 1
field type: Literal['DELETE_LABWARE'] = 'DELETE_LABWARE'
pydantic model tcode_api.schemas.commands.DISCARD_PIPETTE_TIP_GROUP

Dispose of the currently held pipette tip group.

Show JSON schema
{
   "title": "DISCARD_PIPETTE_TIP_GROUP",
   "description": "Dispose of the currently held pipette tip group.",
   "type": "object",
   "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"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • schema_version (Literal[1])

  • type (Literal['DISCARD_PIPETTE_TIP_GROUP'])

field schema_version: Literal[1] = 1
field type: Literal['DISCARD_PIPETTE_TIP_GROUP'] = 'DISCARD_PIPETTE_TIP_GROUP'
pydantic model tcode_api.schemas.commands.DISPENSE

Dispense a given fluid volume at a given speed.

Show JSON schema
{
   "title": "DISPENSE",
   "description": "Dispense a given fluid volume at a given speed.",
   "type": "object",
   "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."
      }
   },
   "$defs": {
      "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"
      }
   },
   "required": [
      "robot_id",
      "volume",
      "speed"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • schema_version (Literal[1])

  • speed (tcode_api.schemas.common.value_with_units.ValueWithUnits)

  • type (Literal['DISPENSE'])

  • volume (tcode_api.schemas.common.value_with_units.ValueWithUnits)

field schema_version: Literal[1] = 1
field speed: ValueWithUnits [Required]

Dispense speed; expects volume/time units.

field type: Literal['DISPENSE'] = 'DISPENSE'
field volume: ValueWithUnits [Required]

Dispense volume; expects volume units.

pydantic model tcode_api.schemas.commands.MOVE_GRIPPER

Manually drive the target robot’s gripper.

Show JSON schema
{
   "title": "MOVE_GRIPPER",
   "description": "Manually drive the target robot's gripper.",
   "type": "object",
   "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."
      }
   },
   "$defs": {
      "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"
      }
   },
   "required": [
      "robot_id",
      "gripper_state_type"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • finger_separation (tcode_api.schemas.common.value_with_units.ValueWithUnits | None)

  • gripper_state_type (int)

  • schema_version (Literal[1])

  • type (Literal['MOVE_GRIPPER'])

field finger_separation: ValueWithUnits | None = None

Desired finger separation distance when setting width.

field gripper_state_type: int [Required]

Gripper state type; expects a value from :class:GripperStateType.

field schema_version: Literal[1] = 1
field type: Literal['MOVE_GRIPPER'] = 'MOVE_GRIPPER'
pydantic model tcode_api.schemas.commands.MOVE_TO_JOINT_POSE

Move the robot to the specified joint positions.

Show JSON schema
{
   "title": "MOVE_TO_JOINT_POSE",
   "description": "Move the robot to the specified joint positions.",
   "type": "object",
   "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"
      }
   },
   "$defs": {
      "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"
      }
   },
   "required": [
      "robot_id",
      "joint_positions",
      "relative"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • joint_positions (list[tcode_api.schemas.common.value_with_units.ValueWithUnits])

  • relative (bool)

  • schema_version (Literal[1])

  • type (Literal['MOVE_TO_JOINT_POSE'])

field joint_positions: list[ValueWithUnits] [Required]

List of joint positions to move to.

field relative: bool [Required]

Whether joint positions are relative to the current pose.

field schema_version: Literal[1] = 1
field type: Literal['MOVE_TO_JOINT_POSE'] = 'MOVE_TO_JOINT_POSE'
pydantic model tcode_api.schemas.commands.MOVE_TO_LOCATION

Move the robot’s control point to a specified location.

Show JSON schema
{
   "title": "MOVE_TO_LOCATION",
   "description": "Move the robot's control point to a specified location.",
   "type": "object",
   "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"
      }
   },
   "$defs": {
      "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"
      }
   },
   "required": [
      "robot_id",
      "location"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • flange (tcode_api.schemas.location.location_as_labware_index.v1.LocationAsLabwareIndex | tcode_api.schemas.location.location_as_node_id.v1.LocationAsNodeId | tcode_api.schemas.location.location_relative_to_current_position.v1.LocationRelativeToCurrentPosition | tcode_api.schemas.location.location_relative_to_labware.v1.LocationRelativeToLabware | tcode_api.schemas.location.location_as_labware_holder.v1.LocationAsLabwareHolder | tcode_api.schemas.location.location_relative_to_robot.v1.LocationRelativeToRobot | tcode_api.schemas.location.location_relative_to_world.v1.LocationRelativeToWorld | None)

  • flange_offset (list[list[float]])

  • location (tcode_api.schemas.location.location_as_labware_index.v1.LocationAsLabwareIndex | tcode_api.schemas.location.location_as_node_id.v1.LocationAsNodeId | tcode_api.schemas.location.location_relative_to_current_position.v1.LocationRelativeToCurrentPosition | tcode_api.schemas.location.location_relative_to_labware.v1.LocationRelativeToLabware | tcode_api.schemas.location.location_as_labware_holder.v1.LocationAsLabwareHolder | tcode_api.schemas.location.location_relative_to_robot.v1.LocationRelativeToRobot | tcode_api.schemas.location.location_relative_to_world.v1.LocationRelativeToWorld)

  • location_offset (list[list[float]])

  • path_type (int | None)

  • schema_version (Literal[1])

  • trajectory_type (int | None)

  • type (Literal['MOVE_TO_LOCATION'])

field flange: Optional[Annotated[LocationAsLabwareIndex | LocationAsNodeId | LocationRelativeToCurrentPosition | LocationRelativeToLabware | LocationAsLabwareHolder | LocationRelativeToRobot | LocationRelativeToWorld]] = None

Optional non-default control point.

field flange_offset: Annotated[list[list[float]]] [Optional]

Optional offset applied to the flange location.

field location: Annotated[LocationAsLabwareIndex | LocationAsNodeId | LocationRelativeToCurrentPosition | LocationRelativeToLabware | LocationAsLabwareHolder | LocationRelativeToRobot | LocationRelativeToWorld] [Required]

Target location to move to.

field location_offset: Annotated[list[list[float]]] [Optional]

Optional offset transform applied to the target location.

field path_type: int | None = None

Optional path type (:class:PathType).

field schema_version: Literal[1] = 1
field trajectory_type: int | None = None

Optional trajectory type (:class:TrajectoryType).

field type: Literal['MOVE_TO_LOCATION'] = 'MOVE_TO_LOCATION'
pydantic model tcode_api.schemas.commands.PAUSE

Pause execution until manually resumed.

Show JSON schema
{
   "title": "PAUSE",
   "description": "Pause execution until manually resumed.",
   "type": "object",
   "properties": {
      "schema_version": {
         "const": 1,
         "default": 1,
         "title": "Schema Version",
         "type": "integer"
      },
      "type": {
         "const": "PAUSE",
         "default": "PAUSE",
         "title": "Type",
         "type": "string"
      }
   }
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • schema_version (Literal[1])

  • type (Literal['PAUSE'])

field schema_version: Literal[1] = 1
field type: Literal['PAUSE'] = 'PAUSE'
pydantic model tcode_api.schemas.commands.PICK_UP_LABWARE

Pick up a labware with the robot’s plate gripper.

Show JSON schema
{
   "title": "PICK_UP_LABWARE",
   "description": "Pick up a labware with the robot's plate gripper.",
   "type": "object",
   "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"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • grasp_type (str)

  • labware_id (str)

  • offset_transform (list[list[float]])

  • schema_version (Literal[1])

  • type (Literal['PICK_UP_LABWARE'])

field grasp_type: str = 'UNSPECIFIED'

Optional grasp type to use.

field labware_id: Annotated[str] [Required]

Identifier for a target piece of ANSI-SLAS-compatible labware, assigned by previous :class:ADD_LABWARE command.

field offset_transform: Annotated[list[list[float]]] [Optional]

Optional offset transform applied during pickup.

field schema_version: Literal[1] = 1
field type: Literal['PICK_UP_LABWARE'] = 'PICK_UP_LABWARE'
pydantic model tcode_api.schemas.commands.PICK_UP_PIPETTE_TIP

Pick up pipette tip(s) at the specified location.

Show JSON schema
{
   "title": "PICK_UP_PIPETTE_TIP",
   "description": "Pick up pipette tip(s) at the specified location.",
   "type": "object",
   "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"
      }
   },
   "$defs": {
      "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"
      }
   },
   "required": [
      "robot_id",
      "location"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • location (tcode_api.schemas.location.location_as_labware_index.v1.LocationAsLabwareIndex | tcode_api.schemas.location.location_as_node_id.v1.LocationAsNodeId | tcode_api.schemas.location.location_relative_to_current_position.v1.LocationRelativeToCurrentPosition | tcode_api.schemas.location.location_relative_to_labware.v1.LocationRelativeToLabware | tcode_api.schemas.location.location_as_labware_holder.v1.LocationAsLabwareHolder | tcode_api.schemas.location.location_relative_to_robot.v1.LocationRelativeToRobot | tcode_api.schemas.location.location_relative_to_world.v1.LocationRelativeToWorld)

  • schema_version (Literal[1])

  • type (Literal['PICK_UP_PIPETTE_TIP'])

field location: Annotated[LocationAsLabwareIndex | LocationAsNodeId | LocationRelativeToCurrentPosition | LocationRelativeToLabware | LocationAsLabwareHolder | LocationRelativeToRobot | LocationRelativeToWorld] [Required]

Location at which to pick up the pipette tip(s).

field schema_version: Literal[1] = 1
field type: Literal['PICK_UP_PIPETTE_TIP'] = 'PICK_UP_PIPETTE_TIP'
pydantic model tcode_api.schemas.commands.PUT_DOWN_LABWARE

Put down the currently held labware.

Show JSON schema
{
   "title": "PUT_DOWN_LABWARE",
   "description": "Put down the currently held labware.",
   "type": "object",
   "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"
      }
   },
   "$defs": {
      "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"
      }
   },
   "required": [
      "robot_id",
      "holder"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • holder (tcode_api.schemas.labware_holder.labware_holder_name.v1.LabwareHolderName | tcode_api.schemas.labware_holder.labware_id.v1.LabwareId)

  • offset_transform (list[list[float]])

  • schema_version (Literal[1])

  • type (Literal['PUT_DOWN_LABWARE'])

field holder: Annotated[LabwareHolderName | LabwareId] [Required]

Holder in which to place the labware.

field offset_transform: Annotated[list[list[float]]] [Optional]

Optional offset transform applied during placement.

field schema_version: Literal[1] = 1
field type: Literal['PUT_DOWN_LABWARE'] = 'PUT_DOWN_LABWARE'
pydantic model tcode_api.schemas.commands.PUT_DOWN_PIPETTE_TIP

Put down the currently held pipette tip(s).

Show JSON schema
{
   "title": "PUT_DOWN_PIPETTE_TIP",
   "description": "Put down the currently held pipette tip(s).",
   "type": "object",
   "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"
      }
   },
   "$defs": {
      "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"
      }
   },
   "required": [
      "robot_id",
      "location"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • location (tcode_api.schemas.location.location_as_labware_index.v1.LocationAsLabwareIndex | tcode_api.schemas.location.location_as_node_id.v1.LocationAsNodeId | tcode_api.schemas.location.location_relative_to_current_position.v1.LocationRelativeToCurrentPosition | tcode_api.schemas.location.location_relative_to_labware.v1.LocationRelativeToLabware | tcode_api.schemas.location.location_as_labware_holder.v1.LocationAsLabwareHolder | tcode_api.schemas.location.location_relative_to_robot.v1.LocationRelativeToRobot | tcode_api.schemas.location.location_relative_to_world.v1.LocationRelativeToWorld)

  • schema_version (Literal[1])

  • type (Literal['PUT_DOWN_PIPETTE_TIP'])

field location: Annotated[LocationAsLabwareIndex | LocationAsNodeId | LocationRelativeToCurrentPosition | LocationRelativeToLabware | LocationAsLabwareHolder | LocationRelativeToRobot | LocationRelativeToWorld] [Required]

Location at which to put down the pipette tip(s).

field schema_version: Literal[1] = 1
field type: Literal['PUT_DOWN_PIPETTE_TIP'] = 'PUT_DOWN_PIPETTE_TIP'
pydantic model tcode_api.schemas.commands.REMOVE_LABWARE_LID

Remove the lid from the target labware.

Show JSON schema
{
   "title": "REMOVE_LABWARE_LID",
   "description": "Remove the lid from the target labware.",
   "type": "object",
   "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"
      }
   },
   "$defs": {
      "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"
      }
   },
   "required": [
      "robot_id",
      "labware_id"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • labware_id (str)

  • schema_version (Literal[1])

  • storage_holder (tcode_api.schemas.labware_holder.labware_holder_name.v1.LabwareHolderName | tcode_api.schemas.labware_holder.labware_id.v1.LabwareId | None)

  • type (Literal['REMOVE_LABWARE_LID'])

field labware_id: Annotated[str] [Required]

Identifier for a target piece of ANSI-SLAS-compatible labware, assigned by previous :class:ADD_LABWARE command.

field schema_version: Literal[1] = 1
field storage_holder: Optional[Annotated[LabwareHolderName | LabwareId]] = None

Optional holder at which to store the removed lid.

field type: Literal['REMOVE_LABWARE_LID'] = 'REMOVE_LABWARE_LID'
pydantic model tcode_api.schemas.commands.REPLACE_LABWARE_LID

Replace the lid on the target labware.

Show JSON schema
{
   "title": "REPLACE_LABWARE_LID",
   "description": "Replace the lid on the target labware.",
   "type": "object",
   "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"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • labware_id (str)

  • lid_id (str)

  • schema_version (Literal[1])

  • type (Literal['REPLACE_LABWARE_LID'])

field labware_id: Annotated[str] [Required]

Identifier for a target piece of ANSI-SLAS-compatible labware, assigned by previous :class:ADD_LABWARE command.

field lid_id: Annotated[str] [Required]

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.

field schema_version: Literal[1] = 1
field type: Literal['REPLACE_LABWARE_LID'] = 'REPLACE_LABWARE_LID'
pydantic model tcode_api.schemas.commands.RETRIEVE_PIPETTE_TIP_GROUP

Pick up a pipette tip group using the held pipette.

Show JSON schema
{
   "title": "RETRIEVE_PIPETTE_TIP_GROUP",
   "description": "Pick up a pipette tip group using the held pipette.",
   "type": "object",
   "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"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • id (str)

  • schema_version (Literal[1])

  • type (Literal['RETRIEVE_PIPETTE_TIP_GROUP'])

field id: Annotated[str] [Required]

Identifier for a target pipette tip group, assigned by previous :class:ADD_PIPETTE_TIP_GROUP command.

field schema_version: Literal[1] = 1
field type: Literal['RETRIEVE_PIPETTE_TIP_GROUP'] = 'RETRIEVE_PIPETTE_TIP_GROUP'
pydantic model tcode_api.schemas.commands.RETRIEVE_TOOL

Pick up the target tool using the robot’s empty flange.

Show JSON schema
{
   "title": "RETRIEVE_TOOL",
   "description": "Pick up the target tool using the robot's empty flange.",
   "type": "object",
   "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"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • id (str)

  • schema_version (Literal[1])

  • type (Literal['RETRIEVE_TOOL'])

field id: Annotated[str] [Required]

Identifier for a target robot tool, assigned by previous :class:ADD_TOOL command.

field schema_version: Literal[1] = 1
field type: Literal['RETRIEVE_TOOL'] = 'RETRIEVE_TOOL'
pydantic model tcode_api.schemas.commands.RETURN_PIPETTE_TIP_GROUP

Return the currently held pipette tip group to its origin.

Show JSON schema
{
   "title": "RETURN_PIPETTE_TIP_GROUP",
   "description": "Return the currently held pipette tip group to its origin.",
   "type": "object",
   "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"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • schema_version (Literal[1])

  • type (Literal['RETURN_PIPETTE_TIP_GROUP'])

field schema_version: Literal[1] = 1
field type: Literal['RETURN_PIPETTE_TIP_GROUP'] = 'RETURN_PIPETTE_TIP_GROUP'
pydantic model tcode_api.schemas.commands.RETURN_TOOL

Return the currently held tool to the tool rack.

Show JSON schema
{
   "title": "RETURN_TOOL",
   "description": "Return the currently held tool to the tool rack.",
   "type": "object",
   "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"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • schema_version (Literal[1])

  • type (Literal['RETURN_TOOL'])

field schema_version: Literal[1] = 1
field type: Literal['RETURN_TOOL'] = 'RETURN_TOOL'
pydantic model tcode_api.schemas.commands.SEND_WEBHOOK

Send an HTTP webhook request.

Show JSON schema
{
   "title": "SEND_WEBHOOK",
   "description": "Send an HTTP webhook request.",
   "type": "object",
   "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"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • ignore_external_error (bool)

  • pause_execution (bool)

  • payload (str | None)

  • schema_version (Literal[1])

  • type (Literal['SEND_WEBHOOK'])

  • url (str)

field ignore_external_error: bool = False

Whether to ignore errors from the destination server.

field pause_execution: bool [Required]

Whether to pause script execution after sending.

field payload: str | None = None

Optional JSON payload (max 32 KiB).

field schema_version: Literal[1] = 1
field type: Literal['SEND_WEBHOOK'] = 'SEND_WEBHOOK'
field url: str [Required]

Destination URL including protocol.

pydantic model tcode_api.schemas.commands.SWAP_TO_TOOL

Return the currently held tool, then pick up the target tool.

Show JSON schema
{
   "title": "SWAP_TO_TOOL",
   "description": "Return the currently held tool, then pick up the target tool.",
   "type": "object",
   "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"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • id (str)

  • schema_version (Literal[1])

  • type (Literal['SWAP_TO_TOOL'])

field id: Annotated[str] [Required]

Identifier for a target robot tool, assigned by previous :class:ADD_TOOL command.

field schema_version: Literal[1] = 1
field type: Literal['SWAP_TO_TOOL'] = 'SWAP_TO_TOOL'
pydantic model tcode_api.schemas.commands.WAIT

Delay execution for a specified duration.

Show JSON schema
{
   "title": "WAIT",
   "description": "Delay execution for a specified duration.",
   "type": "object",
   "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."
      }
   },
   "$defs": {
      "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"
      }
   },
   "required": [
      "robot_id",
      "duration"
   ]
}

Config:
  • strict: bool = True

  • extra: str = ignore

Fields:
  • duration (tcode_api.schemas.common.value_with_units.ValueWithUnits)

  • schema_version (Literal[1])

  • type (Literal['WAIT'])

field duration: ValueWithUnits [Required]

Duration to wait; expects time units.

field schema_version: Literal[1] = 1
field type: Literal['WAIT'] = 'WAIT'